demo.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. /**
  2. * AdminLTE Demo Menu
  3. * ------------------
  4. * You should not use this file in production.
  5. * This file is for demo purposes only.
  6. */
  7. /* eslint-disable camelcase */
  8. (function ($) {
  9. 'use strict'
  10. function capitalizeFirstLetter(string) {
  11. return string.charAt(0).toUpperCase() + string.slice(1)
  12. }
  13. function createSkinBlock(colors, callback, noneSelected) {
  14. var $block = $('<select />', {
  15. class: noneSelected ? 'custom-select mb-3 border-0' : 'custom-select mb-3 text-light border-0 ' + colors[0].replace(/accent-|navbar-/, 'bg-')
  16. })
  17. if (noneSelected) {
  18. var $default = $('<option />', {
  19. text: 'None Selected'
  20. })
  21. if (callback) {
  22. $default.on('click', callback)
  23. }
  24. $block.append($default)
  25. }
  26. colors.forEach(function (color) {
  27. var $color = $('<option />', {
  28. class: (typeof color === 'object' ? color.join(' ') : color).replace('navbar-', 'bg-').replace('accent-', 'bg-'),
  29. text: capitalizeFirstLetter((typeof color === 'object' ? color.join(' ') : color).replace(/navbar-|accent-|bg-/, '').replace('-', ' '))
  30. })
  31. $block.append($color)
  32. $color.data('color', color)
  33. if (callback) {
  34. $color.on('click', callback)
  35. }
  36. })
  37. return $block
  38. }
  39. var $sidebar = $('.control-sidebar')
  40. var $container = $('<div />', {
  41. class: 'p-3 control-sidebar-content'
  42. })
  43. $sidebar.append($container)
  44. // Checkboxes
  45. $container.append(
  46. '<h5>Customize AdminLTE</h5><hr class="mb-2"/>'
  47. )
  48. var $dark_mode_checkbox = $('<input />', {
  49. type: 'checkbox',
  50. value: 1,
  51. checked: $('body').hasClass('dark-mode'),
  52. class: 'mr-1'
  53. }).on('click', function () {
  54. if ($(this).is(':checked')) {
  55. $('body').addClass('dark-mode')
  56. } else {
  57. $('body').removeClass('dark-mode')
  58. }
  59. })
  60. var $dark_mode_container = $('<div />', { class: 'mb-4' }).append($dark_mode_checkbox).append('<span>Dark Mode</span>')
  61. $container.append($dark_mode_container)
  62. $container.append('<h6>Header Options</h6>')
  63. var $header_fixed_checkbox = $('<input />', {
  64. type: 'checkbox',
  65. value: 1,
  66. checked: $('body').hasClass('layout-navbar-fixed'),
  67. class: 'mr-1'
  68. }).on('click', function () {
  69. if ($(this).is(':checked')) {
  70. $('body').addClass('layout-navbar-fixed')
  71. } else {
  72. $('body').removeClass('layout-navbar-fixed')
  73. }
  74. })
  75. var $header_fixed_container = $('<div />', { class: 'mb-1' }).append($header_fixed_checkbox).append('<span>Fixed</span>')
  76. $container.append($header_fixed_container)
  77. var $dropdown_legacy_offset_checkbox = $('<input />', {
  78. type: 'checkbox',
  79. value: 1,
  80. checked: $('.main-header').hasClass('dropdown-legacy'),
  81. class: 'mr-1'
  82. }).on('click', function () {
  83. if ($(this).is(':checked')) {
  84. $('.main-header').addClass('dropdown-legacy')
  85. } else {
  86. $('.main-header').removeClass('dropdown-legacy')
  87. }
  88. })
  89. var $dropdown_legacy_offset_container = $('<div />', { class: 'mb-1' }).append($dropdown_legacy_offset_checkbox).append('<span>Dropdown Legacy Offset</span>')
  90. $container.append($dropdown_legacy_offset_container)
  91. var $no_border_checkbox = $('<input />', {
  92. type: 'checkbox',
  93. value: 1,
  94. checked: $('.main-header').hasClass('border-bottom-0'),
  95. class: 'mr-1'
  96. }).on('click', function () {
  97. if ($(this).is(':checked')) {
  98. $('.main-header').addClass('border-bottom-0')
  99. } else {
  100. $('.main-header').removeClass('border-bottom-0')
  101. }
  102. })
  103. var $no_border_container = $('<div />', { class: 'mb-4' }).append($no_border_checkbox).append('<span>No border</span>')
  104. $container.append($no_border_container)
  105. $container.append('<h6>Sidebar Options</h6>')
  106. var $sidebar_collapsed_checkbox = $('<input />', {
  107. type: 'checkbox',
  108. value: 1,
  109. checked: $('body').hasClass('sidebar-collapse'),
  110. class: 'mr-1'
  111. }).on('click', function () {
  112. if ($(this).is(':checked')) {
  113. $('body').addClass('sidebar-collapse')
  114. $(window).trigger('resize')
  115. } else {
  116. $('body').removeClass('sidebar-collapse')
  117. $(window).trigger('resize')
  118. }
  119. })
  120. var $sidebar_collapsed_container = $('<div />', { class: 'mb-1' }).append($sidebar_collapsed_checkbox).append('<span>Collapsed</span>')
  121. $container.append($sidebar_collapsed_container)
  122. $(document).on('collapsed.lte.pushmenu', '[data-widget="pushmenu"]', function () {
  123. $sidebar_collapsed_checkbox.prop('checked', true)
  124. })
  125. $(document).on('shown.lte.pushmenu', '[data-widget="pushmenu"]', function () {
  126. $sidebar_collapsed_checkbox.prop('checked', false)
  127. })
  128. var $sidebar_fixed_checkbox = $('<input />', {
  129. type: 'checkbox',
  130. value: 1,
  131. checked: $('body').hasClass('layout-fixed'),
  132. class: 'mr-1'
  133. }).on('click', function () {
  134. if ($(this).is(':checked')) {
  135. $('body').addClass('layout-fixed')
  136. $(window).trigger('resize')
  137. } else {
  138. $('body').removeClass('layout-fixed')
  139. $(window).trigger('resize')
  140. }
  141. })
  142. var $sidebar_fixed_container = $('<div />', { class: 'mb-1' }).append($sidebar_fixed_checkbox).append('<span>Fixed</span>')
  143. $container.append($sidebar_fixed_container)
  144. var $sidebar_mini_checkbox = $('<input />', {
  145. type: 'checkbox',
  146. value: 1,
  147. checked: $('body').hasClass('sidebar-mini'),
  148. class: 'mr-1'
  149. }).on('click', function () {
  150. if ($(this).is(':checked')) {
  151. $('body').addClass('sidebar-mini')
  152. } else {
  153. $('body').removeClass('sidebar-mini')
  154. }
  155. })
  156. var $sidebar_mini_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_checkbox).append('<span>Sidebar Mini</span>')
  157. $container.append($sidebar_mini_container)
  158. var $sidebar_mini_md_checkbox = $('<input />', {
  159. type: 'checkbox',
  160. value: 1,
  161. checked: $('body').hasClass('sidebar-mini-md'),
  162. class: 'mr-1'
  163. }).on('click', function () {
  164. if ($(this).is(':checked')) {
  165. $('body').addClass('sidebar-mini-md')
  166. } else {
  167. $('body').removeClass('sidebar-mini-md')
  168. }
  169. })
  170. var $sidebar_mini_md_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_md_checkbox).append('<span>Sidebar Mini MD</span>')
  171. $container.append($sidebar_mini_md_container)
  172. var $sidebar_mini_xs_checkbox = $('<input />', {
  173. type: 'checkbox',
  174. value: 1,
  175. checked: $('body').hasClass('sidebar-mini-xs'),
  176. class: 'mr-1'
  177. }).on('click', function () {
  178. if ($(this).is(':checked')) {
  179. $('body').addClass('sidebar-mini-xs')
  180. } else {
  181. $('body').removeClass('sidebar-mini-xs')
  182. }
  183. })
  184. var $sidebar_mini_xs_container = $('<div />', { class: 'mb-1' }).append($sidebar_mini_xs_checkbox).append('<span>Sidebar Mini XS</span>')
  185. $container.append($sidebar_mini_xs_container)
  186. var $flat_sidebar_checkbox = $('<input />', {
  187. type: 'checkbox',
  188. value: 1,
  189. checked: $('.nav-sidebar').hasClass('nav-flat'),
  190. class: 'mr-1'
  191. }).on('click', function () {
  192. if ($(this).is(':checked')) {
  193. $('.nav-sidebar').addClass('nav-flat')
  194. } else {
  195. $('.nav-sidebar').removeClass('nav-flat')
  196. }
  197. })
  198. var $flat_sidebar_container = $('<div />', { class: 'mb-1' }).append($flat_sidebar_checkbox).append('<span>Nav Flat Style</span>')
  199. $container.append($flat_sidebar_container)
  200. var $legacy_sidebar_checkbox = $('<input />', {
  201. type: 'checkbox',
  202. value: 1,
  203. checked: $('.nav-sidebar').hasClass('nav-legacy'),
  204. class: 'mr-1'
  205. }).on('click', function () {
  206. if ($(this).is(':checked')) {
  207. $('.nav-sidebar').addClass('nav-legacy')
  208. } else {
  209. $('.nav-sidebar').removeClass('nav-legacy')
  210. }
  211. })
  212. var $legacy_sidebar_container = $('<div />', { class: 'mb-1' }).append($legacy_sidebar_checkbox).append('<span>Nav Legacy Style</span>')
  213. $container.append($legacy_sidebar_container)
  214. var $compact_sidebar_checkbox = $('<input />', {
  215. type: 'checkbox',
  216. value: 1,
  217. checked: $('.nav-sidebar').hasClass('nav-compact'),
  218. class: 'mr-1'
  219. }).on('click', function () {
  220. if ($(this).is(':checked')) {
  221. $('.nav-sidebar').addClass('nav-compact')
  222. } else {
  223. $('.nav-sidebar').removeClass('nav-compact')
  224. }
  225. })
  226. var $compact_sidebar_container = $('<div />', { class: 'mb-1' }).append($compact_sidebar_checkbox).append('<span>Nav Compact</span>')
  227. $container.append($compact_sidebar_container)
  228. var $child_indent_sidebar_checkbox = $('<input />', {
  229. type: 'checkbox',
  230. value: 1,
  231. checked: $('.nav-sidebar').hasClass('nav-child-indent'),
  232. class: 'mr-1'
  233. }).on('click', function () {
  234. if ($(this).is(':checked')) {
  235. $('.nav-sidebar').addClass('nav-child-indent')
  236. } else {
  237. $('.nav-sidebar').removeClass('nav-child-indent')
  238. }
  239. })
  240. var $child_indent_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_indent_sidebar_checkbox).append('<span>Nav Child Indent</span>')
  241. $container.append($child_indent_sidebar_container)
  242. var $child_hide_sidebar_checkbox = $('<input />', {
  243. type: 'checkbox',
  244. value: 1,
  245. checked: $('.nav-sidebar').hasClass('nav-collapse-hide-child'),
  246. class: 'mr-1'
  247. }).on('click', function () {
  248. if ($(this).is(':checked')) {
  249. $('.nav-sidebar').addClass('nav-collapse-hide-child')
  250. } else {
  251. $('.nav-sidebar').removeClass('nav-collapse-hide-child')
  252. }
  253. })
  254. var $child_hide_sidebar_container = $('<div />', { class: 'mb-1' }).append($child_hide_sidebar_checkbox).append('<span>Nav Child Hide on Collapse</span>')
  255. $container.append($child_hide_sidebar_container)
  256. var $no_expand_sidebar_checkbox = $('<input />', {
  257. type: 'checkbox',
  258. value: 1,
  259. checked: $('.main-sidebar').hasClass('sidebar-no-expand'),
  260. class: 'mr-1'
  261. }).on('click', function () {
  262. if ($(this).is(':checked')) {
  263. $('.main-sidebar').addClass('sidebar-no-expand')
  264. } else {
  265. $('.main-sidebar').removeClass('sidebar-no-expand')
  266. }
  267. })
  268. var $no_expand_sidebar_container = $('<div />', { class: 'mb-4' }).append($no_expand_sidebar_checkbox).append('<span>Disable Hover/Focus Auto-Expand</span>')
  269. $container.append($no_expand_sidebar_container)
  270. $container.append('<h6>Footer Options</h6>')
  271. var $footer_fixed_checkbox = $('<input />', {
  272. type: 'checkbox',
  273. value: 1,
  274. checked: $('body').hasClass('layout-footer-fixed'),
  275. class: 'mr-1'
  276. }).on('click', function () {
  277. if ($(this).is(':checked')) {
  278. $('body').addClass('layout-footer-fixed')
  279. } else {
  280. $('body').removeClass('layout-footer-fixed')
  281. }
  282. })
  283. var $footer_fixed_container = $('<div />', { class: 'mb-4' }).append($footer_fixed_checkbox).append('<span>Fixed</span>')
  284. $container.append($footer_fixed_container)
  285. $container.append('<h6>Small Text Options</h6>')
  286. var $text_sm_body_checkbox = $('<input />', {
  287. type: 'checkbox',
  288. value: 1,
  289. checked: $('body').hasClass('text-sm'),
  290. class: 'mr-1'
  291. }).on('click', function () {
  292. if ($(this).is(':checked')) {
  293. $('body').addClass('text-sm')
  294. } else {
  295. $('body').removeClass('text-sm')
  296. }
  297. })
  298. var $text_sm_body_container = $('<div />', { class: 'mb-1' }).append($text_sm_body_checkbox).append('<span>Body</span>')
  299. $container.append($text_sm_body_container)
  300. var $text_sm_header_checkbox = $('<input />', {
  301. type: 'checkbox',
  302. value: 1,
  303. checked: $('.main-header').hasClass('text-sm'),
  304. class: 'mr-1'
  305. }).on('click', function () {
  306. if ($(this).is(':checked')) {
  307. $('.main-header').addClass('text-sm')
  308. } else {
  309. $('.main-header').removeClass('text-sm')
  310. }
  311. })
  312. var $text_sm_header_container = $('<div />', { class: 'mb-1' }).append($text_sm_header_checkbox).append('<span>Navbar</span>')
  313. $container.append($text_sm_header_container)
  314. var $text_sm_brand_checkbox = $('<input />', {
  315. type: 'checkbox',
  316. value: 1,
  317. checked: $('.brand-link').hasClass('text-sm'),
  318. class: 'mr-1'
  319. }).on('click', function () {
  320. if ($(this).is(':checked')) {
  321. $('.brand-link').addClass('text-sm')
  322. } else {
  323. $('.brand-link').removeClass('text-sm')
  324. }
  325. })
  326. var $text_sm_brand_container = $('<div />', { class: 'mb-1' }).append($text_sm_brand_checkbox).append('<span>Brand</span>')
  327. $container.append($text_sm_brand_container)
  328. var $text_sm_sidebar_checkbox = $('<input />', {
  329. type: 'checkbox',
  330. value: 1,
  331. checked: $('.nav-sidebar').hasClass('text-sm'),
  332. class: 'mr-1'
  333. }).on('click', function () {
  334. if ($(this).is(':checked')) {
  335. $('.nav-sidebar').addClass('text-sm')
  336. } else {
  337. $('.nav-sidebar').removeClass('text-sm')
  338. }
  339. })
  340. var $text_sm_sidebar_container = $('<div />', { class: 'mb-1' }).append($text_sm_sidebar_checkbox).append('<span>Sidebar Nav</span>')
  341. $container.append($text_sm_sidebar_container)
  342. var $text_sm_footer_checkbox = $('<input />', {
  343. type: 'checkbox',
  344. value: 1,
  345. checked: $('.main-footer').hasClass('text-sm'),
  346. class: 'mr-1'
  347. }).on('click', function () {
  348. if ($(this).is(':checked')) {
  349. $('.main-footer').addClass('text-sm')
  350. } else {
  351. $('.main-footer').removeClass('text-sm')
  352. }
  353. })
  354. var $text_sm_footer_container = $('<div />', { class: 'mb-4' }).append($text_sm_footer_checkbox).append('<span>Footer</span>')
  355. $container.append($text_sm_footer_container)
  356. // Color Arrays
  357. var navbar_dark_skins = [
  358. 'navbar-primary',
  359. 'navbar-secondary',
  360. 'navbar-info',
  361. 'navbar-success',
  362. 'navbar-danger',
  363. 'navbar-indigo',
  364. 'navbar-purple',
  365. 'navbar-pink',
  366. 'navbar-navy',
  367. 'navbar-lightblue',
  368. 'navbar-teal',
  369. 'navbar-cyan',
  370. 'navbar-dark',
  371. 'navbar-gray-dark',
  372. 'navbar-gray'
  373. ]
  374. var navbar_light_skins = [
  375. 'navbar-light',
  376. 'navbar-warning',
  377. 'navbar-white',
  378. 'navbar-orange'
  379. ]
  380. var sidebar_colors = [
  381. 'bg-primary',
  382. 'bg-warning',
  383. 'bg-info',
  384. 'bg-danger',
  385. 'bg-success',
  386. 'bg-indigo',
  387. 'bg-lightblue',
  388. 'bg-navy',
  389. 'bg-purple',
  390. 'bg-fuchsia',
  391. 'bg-pink',
  392. 'bg-maroon',
  393. 'bg-orange',
  394. 'bg-lime',
  395. 'bg-teal',
  396. 'bg-olive'
  397. ]
  398. var accent_colors = [
  399. 'accent-primary',
  400. 'accent-warning',
  401. 'accent-info',
  402. 'accent-danger',
  403. 'accent-success',
  404. 'accent-indigo',
  405. 'accent-lightblue',
  406. 'accent-navy',
  407. 'accent-purple',
  408. 'accent-fuchsia',
  409. 'accent-pink',
  410. 'accent-maroon',
  411. 'accent-orange',
  412. 'accent-lime',
  413. 'accent-teal',
  414. 'accent-olive'
  415. ]
  416. var sidebar_skins = [
  417. 'sidebar-dark-primary',
  418. 'sidebar-dark-warning',
  419. 'sidebar-dark-info',
  420. 'sidebar-dark-danger',
  421. 'sidebar-dark-success',
  422. 'sidebar-dark-indigo',
  423. 'sidebar-dark-lightblue',
  424. 'sidebar-dark-navy',
  425. 'sidebar-dark-purple',
  426. 'sidebar-dark-fuchsia',
  427. 'sidebar-dark-pink',
  428. 'sidebar-dark-maroon',
  429. 'sidebar-dark-orange',
  430. 'sidebar-dark-lime',
  431. 'sidebar-dark-teal',
  432. 'sidebar-dark-olive',
  433. 'sidebar-light-primary',
  434. 'sidebar-light-warning',
  435. 'sidebar-light-info',
  436. 'sidebar-light-danger',
  437. 'sidebar-light-success',
  438. 'sidebar-light-indigo',
  439. 'sidebar-light-lightblue',
  440. 'sidebar-light-navy',
  441. 'sidebar-light-purple',
  442. 'sidebar-light-fuchsia',
  443. 'sidebar-light-pink',
  444. 'sidebar-light-maroon',
  445. 'sidebar-light-orange',
  446. 'sidebar-light-lime',
  447. 'sidebar-light-teal',
  448. 'sidebar-light-olive'
  449. ]
  450. // Navbar Variants
  451. $container.append('<h6>Navbar Variants</h6>')
  452. var $navbar_variants = $('<div />', {
  453. class: 'd-flex'
  454. })
  455. var navbar_all_colors = navbar_dark_skins.concat(navbar_light_skins)
  456. var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function () {
  457. var color = $(this).data('color')
  458. var $main_header = $('.main-header')
  459. $main_header.removeClass('navbar-dark').removeClass('navbar-light')
  460. navbar_all_colors.forEach(function (color) {
  461. $main_header.removeClass(color)
  462. })
  463. $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0 ')
  464. if (navbar_dark_skins.indexOf(color) > -1) {
  465. $main_header.addClass('navbar-dark')
  466. $(this).parent().addClass(color).addClass('text-light')
  467. } else {
  468. $main_header.addClass('navbar-light')
  469. $(this).parent().addClass(color)
  470. }
  471. $main_header.addClass(color)
  472. })
  473. var active_navbar_color = null
  474. $('.main-header')[0].classList.forEach(function (className) {
  475. if (navbar_all_colors.indexOf(className) > -1 && active_navbar_color === null) {
  476. active_navbar_color = className.replace('navbar-', 'bg-')
  477. }
  478. })
  479. $navbar_variants_colors.find('option.' + active_navbar_color).prop('selected', true)
  480. $navbar_variants_colors.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_navbar_color)
  481. $navbar_variants.append($navbar_variants_colors)
  482. $container.append($navbar_variants)
  483. // Sidebar Colors
  484. $container.append('<h6>Accent Color Variants</h6>')
  485. var $accent_variants = $('<div />', {
  486. class: 'd-flex'
  487. })
  488. $container.append($accent_variants)
  489. $container.append(createSkinBlock(accent_colors, function () {
  490. var color = $(this).data('color')
  491. var accent_class = color
  492. var $body = $('body')
  493. accent_colors.forEach(function (skin) {
  494. $body.removeClass(skin)
  495. })
  496. $body.addClass(accent_class)
  497. }, true))
  498. var active_accent_color = null
  499. $('body')[0].classList.forEach(function (className) {
  500. if (accent_colors.indexOf(className) > -1 && active_accent_color === null) {
  501. active_accent_color = className.replace('navbar-', 'bg-')
  502. }
  503. })
  504. // $accent_variants.find('option.' + active_accent_color).prop('selected', true)
  505. // $accent_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_accent_color)
  506. $container.append('<h6>Dark Sidebar Variants</h6>')
  507. var $sidebar_variants_dark = $('<div />', {
  508. class: 'd-flex'
  509. })
  510. $container.append($sidebar_variants_dark)
  511. var $sidebar_dark_variants = createSkinBlock(sidebar_colors, function () {
  512. var color = $(this).data('color')
  513. var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '')
  514. var $sidebar = $('.main-sidebar')
  515. sidebar_skins.forEach(function (skin) {
  516. $sidebar.removeClass(skin)
  517. $sidebar_light_variants.removeClass(skin.replace('sidebar-dark-', 'bg-')).removeClass('text-light')
  518. })
  519. $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)
  520. $sidebar_light_variants.find('option').prop('selected', false)
  521. $sidebar.addClass(sidebar_class)
  522. $('.sidebar').removeClass('os-theme-dark').addClass('os-theme-light')
  523. }, true)
  524. $container.append($sidebar_dark_variants)
  525. var active_sidebar_dark_color = null
  526. $('.main-sidebar')[0].classList.forEach(function (className) {
  527. var color = className.replace('sidebar-dark-', 'bg-')
  528. if (sidebar_colors.indexOf(color) > -1 && active_sidebar_dark_color === null) {
  529. active_sidebar_dark_color = color
  530. }
  531. })
  532. $sidebar_dark_variants.find('option.' + active_sidebar_dark_color).prop('selected', true)
  533. $sidebar_dark_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_dark_color)
  534. $container.append('<h6>Light Sidebar Variants</h6>')
  535. var $sidebar_variants_light = $('<div />', {
  536. class: 'd-flex'
  537. })
  538. $container.append($sidebar_variants_light)
  539. var $sidebar_light_variants = createSkinBlock(sidebar_colors, function () {
  540. var color = $(this).data('color')
  541. var sidebar_class = 'sidebar-light-' + color.replace('bg-', '')
  542. var $sidebar = $('.main-sidebar')
  543. sidebar_skins.forEach(function (skin) {
  544. $sidebar.removeClass(skin)
  545. $sidebar_dark_variants.removeClass(skin.replace('sidebar-light-', 'bg-')).removeClass('text-light')
  546. })
  547. $(this).parent().removeClass().addClass('custom-select mb-3 text-light border-0').addClass(color)
  548. $sidebar_dark_variants.find('option').prop('selected', false)
  549. $sidebar.addClass(sidebar_class)
  550. $('.sidebar').removeClass('os-theme-light').addClass('os-theme-dark')
  551. }, true)
  552. $container.append($sidebar_light_variants)
  553. var active_sidebar_light_color = null
  554. $('.main-sidebar')[0].classList.forEach(function (className) {
  555. var color = className.replace('sidebar-light-', 'bg-')
  556. if (sidebar_colors.indexOf(color) > -1 && active_sidebar_light_color === null) {
  557. active_sidebar_light_color = color
  558. }
  559. })
  560. if (active_sidebar_light_color !== null) {
  561. $sidebar_light_variants.find('option.' + active_sidebar_light_color).prop('selected', true)
  562. $sidebar_light_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_sidebar_light_color)
  563. }
  564. var logo_skins = navbar_all_colors
  565. $container.append('<h6>Brand Logo Variants</h6>')
  566. var $logo_variants = $('<div />', {
  567. class: 'd-flex'
  568. })
  569. $container.append($logo_variants)
  570. var $clear_btn = $('<a />', {
  571. href: '#'
  572. }).text('clear').on('click', function (e) {
  573. e.preventDefault()
  574. var $logo = $('.brand-link')
  575. logo_skins.forEach(function (skin) {
  576. $logo.removeClass(skin)
  577. })
  578. })
  579. var $brand_variants = createSkinBlock(logo_skins, function () {
  580. var color = $(this).data('color')
  581. var $logo = $('.brand-link')
  582. if (color === 'navbar-light' || color === 'navbar-white') {
  583. $logo.addClass('text-black')
  584. } else {
  585. $logo.removeClass('text-black')
  586. }
  587. logo_skins.forEach(function (skin) {
  588. $logo.removeClass(skin)
  589. })
  590. if (color) {
  591. $(this).parent().removeClass().addClass('custom-select mb-3 border-0').addClass(color).addClass(color !== 'navbar-light' && color !== 'navbar-white' ? 'text-light' : '')
  592. } else {
  593. $(this).parent().removeClass().addClass('custom-select mb-3 border-0')
  594. }
  595. $logo.addClass(color)
  596. }, true).append($clear_btn)
  597. $container.append($brand_variants)
  598. var active_brand_color = null
  599. $('.brand-link')[0].classList.forEach(function (className) {
  600. if (logo_skins.indexOf(className) > -1 && active_brand_color === null) {
  601. active_brand_color = className.replace('navbar-', 'bg-')
  602. }
  603. })
  604. if (active_brand_color) {
  605. $brand_variants.find('option.' + active_brand_color).prop('selected', true)
  606. $brand_variants.removeClass().addClass('custom-select mb-3 text-light border-0 ').addClass(active_brand_color)
  607. }
  608. })(jQuery)