34 lines
986 B
JavaScript
34 lines
986 B
JavaScript
|
(function (window) {
|
||
|
"use strict";
|
||
|
|
||
|
window.Litespeed.container.get('view').add(
|
||
|
{
|
||
|
selector: 'data-forms-switch',
|
||
|
repeat: false,
|
||
|
controller: function(element) {
|
||
|
let input = window.document.createElement('input');
|
||
|
input.type = 'checkbox';
|
||
|
input.className = 'switch';
|
||
|
|
||
|
let syncA = function () {
|
||
|
element.value = (input.checked) ? 'on' : 'off';
|
||
|
};
|
||
|
|
||
|
let syncB = function () {
|
||
|
input.checked = (element.value === 'on');
|
||
|
};
|
||
|
|
||
|
input.addEventListener('input', syncA);
|
||
|
input.addEventListener('change', syncA);
|
||
|
|
||
|
element.addEventListener('input', syncB);
|
||
|
element.addEventListener('change', syncB);
|
||
|
|
||
|
syncA();
|
||
|
|
||
|
element.parentNode.insertBefore(input, element);
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
})(window);
|