PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.44
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.44
51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 All 40 releases
king-addons / includes / extensions / Maintenance_Mode / assets / admin.js

admin.js in King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder 51.1.44, at includes/extensions/Maintenance_Mode/assets/admin.js

112 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function($) {
2 'use strict';
3
4 function toggleSections(source) {
5 $('.kng-maintenance-section').removeClass('is-active');
6 $('.kng-maintenance-section[data-section="' + source + '"]').addClass('is-active');
7 }
8
9 function toggleTemplateContent(templateId) {
10 $('.kng-maintenance-content-block').removeClass('is-active');
11 $('.kng-maintenance-content-block[data-template="' + templateId + '"]').addClass('is-active');
12 }
13
14 $(document).ready(function() {
15 var $sourceInputs = $('input[name="kng_maintenance_settings[template_source]"]');
16 var activeSource = $sourceInputs.filter(':checked').val() || 'built_in';
17 toggleSections(activeSource);
18
19 var $templateInputs = $('input[name="kng_maintenance_settings[template_id]"]');
20 var activeTemplate = $templateInputs.filter(':checked').val() || 'minimal';
21 toggleTemplateContent(activeTemplate);
22
23 $sourceInputs.on('change', function() {
24 toggleSections($(this).val());
25 });
26
27 $templateInputs.on('change', function() {
28 toggleTemplateContent($(this).val());
29 });
30
31 var $segment = $('#ka-v3-theme-segment');
32 var $buttons = $segment.find('.ka-v3-segmented-btn');
33 var mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
34 var mode = ($segment.attr('data-active') || 'dark').toString();
35 var mqlHandler = null;
36
37 function saveUISetting(value) {
38 if (!window.KNGMaintenance) {
39 return;
40 }
41 $.post(KNGMaintenance.ajaxUrl, {
42 action: 'king_addons_save_dashboard_ui',
43 nonce: KNGMaintenance.themeNonce,
44 key: 'theme_mode',
45 value: value
46 });
47 }
48
49 function updateSegment(activeMode) {
50 $segment.attr('data-active', activeMode);
51 $buttons.each(function() {
52 var theme = ($(this).data('theme') || 'dark').toString();
53 $(this).attr('aria-pressed', theme === activeMode ? 'true' : 'false');
54 });
55 }
56
57 function applyTheme(isDark) {
58 $('body').toggleClass('ka-v3-dark', isDark);
59 document.documentElement.classList.toggle('ka-v3-dark', isDark);
60 }
61
62 function setThemeMode(nextMode, save) {
63 mode = (nextMode || 'dark').toString();
64 updateSegment(mode);
65
66 if (mqlHandler && mql) {
67 if (mql.removeEventListener) {
68 mql.removeEventListener('change', mqlHandler);
69 } else if (mql.removeListener) {
70 mql.removeListener(mqlHandler);
71 }
72 mqlHandler = null;
73 }
74
75 if (mode === 'auto') {
76 applyTheme(!!(mql && mql.matches));
77 mqlHandler = function(e) {
78 if (mode !== 'auto') {
79 return;
80 }
81 applyTheme(!!e.matches);
82 };
83 if (mql) {
84 if (mql.addEventListener) {
85 mql.addEventListener('change', mqlHandler);
86 } else if (mql.addListener) {
87 mql.addListener(mqlHandler);
88 }
89 }
90 } else {
91 applyTheme(mode === 'dark');
92 }
93
94 if (save) {
95 saveUISetting(mode);
96 }
97 }
98
99 $segment.on('click', '.ka-v3-segmented-btn', function(e) {
100 e.preventDefault();
101 setThemeMode(($(this).data('theme') || 'dark').toString(), true);
102 });
103
104 window.kaV3ToggleDark = function() {
105 var isDark = $('body').hasClass('ka-v3-dark');
106 setThemeMode(isDark ? 'light' : 'dark', true);
107 };
108
109 setThemeMode(mode, false);
110 });
111 })(jQuery);
112