simp-select 1.0.19 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +2 -1
- package/README.md +2 -2
- package/dist/demo/index.html +30 -1
- package/dist/simpleSelect.js +1 -1
- package/dist/simpleSelectItem.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/utils/simpleSelection.utils.d.ts +10 -0
- package/docs/index.html +109 -1
- package/package.json +1 -1
- package/src/demo/index.html +44 -1
- package/src/simpleSelectItem.ts +24 -1
- package/src/simpleSelectItemDOM.ts +13 -2
- package/src/utils/simpleSelection.utils.ts +18 -0
package/.eslintrc
CHANGED
@@ -13,6 +13,7 @@
|
|
13
13
|
"no-plusplus": "off",
|
14
14
|
"@typescript-eslint/no-this-alias": "off",
|
15
15
|
"@typescript-eslint/ban-ts-comment": "off",
|
16
|
+
"@typescript-eslint/no-explicit-any": "off",
|
16
17
|
"import/no-cycle": "off",
|
17
18
|
"import/prefer-default-export": "off",
|
18
19
|
"class-methods-use-this": "off",
|
@@ -26,4 +27,4 @@
|
|
26
27
|
"parserOptions": {
|
27
28
|
"project": "./tsconfig.json"
|
28
29
|
}
|
29
|
-
}
|
30
|
+
}
|
package/README.md
CHANGED
@@ -17,8 +17,8 @@ npm install simp-select --save
|
|
17
17
|
```
|
18
18
|
Or you can load it via a script tag as follows:
|
19
19
|
```
|
20
|
-
<script src="https://unpkg.com/simp-select@1.0
|
21
|
-
<script src="https://unpkg.com/simp-select@1.0
|
20
|
+
<script src="https://unpkg.com/simp-select@1.1.0/dist/simpleSelect.js" ></script>
|
21
|
+
<script src="https://unpkg.com/simp-select@1.1.0/dist/polyfill.js" ></script> - for IE 11
|
22
22
|
Or get last version
|
23
23
|
<script src="https://unpkg.com/simp-select"></script>
|
24
24
|
```
|
package/dist/demo/index.html
CHANGED
@@ -22,7 +22,36 @@
|
|
22
22
|
.item {
|
23
23
|
display: block;
|
24
24
|
width: 250px;
|
25
|
-
}</style><body><div id="app"></div><div class="items"><div class="item"><select multiple="multiple" data-simple-placeholder="custom width float" data-simple-float-width="1000"><option value="custom-1">custom float 1</option><option value="custom-2">custom float 2</option></select></div><div class="item"><select multiple="multiple" data-simple-placeholder="none float" data-simple-float-none="true"><option value="custom-none-1">none float 1</option><option value="custom-none-2">none float 2</option></select></div><div class="item"><select id="select_first" data-simple-placeholder="Custom title" data-simple-is-only-placeholder="true" multiple="multiple"><option value="a1">a 1</option><option value="a2">a 2</option><option value="a3">a 3</option><option value="a4">a 4</option><option value="a5">a 5</option></select></div><div class="item"><select multiple="multiple" data-simple-placeholder="custom placeholder" data-simple-is-confirm="true" data-simple-count-shows-selected="3"><option value="a1" data-simple-html-before="<span>|before| </span>" data-simple-html-after="<span> |after|</div>">b 1</option><option value="a22" disabled="disabled">b 2 dis</option><option value="a3">b 3</option><option value="a4">b 4</option><option value="a5">b 5</option></select></div><div class="item"><select id="select_second" data-simple-is-confirm="false" data-simple-reset-all="false" data-simple-select-all="true" data-simple-item-html-before="<span>before</span>" multiple="multiple" data-simple-debounce-time="1000"><optgroup label="Группа 1"><option value="1.1">multiple Опция 1.1</option></optgroup><optgroup label="Группа 2"><option value="2.1">multiple Опция 2.1</option><option value="2.2">multiple Опция 2.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="3.1">multiple Опция 3.1</option><option value="3.2">multiple Опция 3.2</option><option value="3.3">multiple Опция 3.3</option></optgroup></select></div><div class="item"><select data-simple-select-search-dropdown="true" data-simple-show-checkbox="true" class="color_red" data-simple-add-classes="class1" data-simple-select-search="false"><optgroup label="Группа 1"><option value="1">Опция 1.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 2.1</option><option value="1">Опция 2.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 3.1</option><option value="1">Опция 3.2</option><option value="1">Опция 3.3</option></optgroup></select></div><div class="item"><select multiple="multiple" data-simple-select-search="true" data-simple-placeholder="multi and search"><option value="1">multi 1.1</option><option value="1">multi 2.1</option><option value="1">multi 2.2</option><option value="1">multi 3.1</option><option value="1">multi 3.2</option><option value="1">multi 3.3</option></select></div><div class="item"><select data-simple-add-classes="class1 class2" data-simple-item-html-before="<div>before</div>" data-simple-item-html-after="<div>after</div>" data-simple-select-search-dropdown="true" data-simple-up="true"><option>Опция 5.1</option><option>Опция 5.2</option></select></div></div><div><p>Group checkbox</p><div class="items"><label class="item"><select data-simple-select-search-dropdown="true" data-simple-show-checkbox="true" data-simple-always-open="true" class="color_red" data-simple-add-classes="class1" data-simple-select-search="false"><optgroup label="Группа 1"><option value="1">Опция 6.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 6.1</option><option value="1">Опция 6.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 6.1</option><option value="1">Опция 6.2</option><option value="1">Опция 6.3</option></optgroup></select></label> <label class="item"><select data-simple-select-search="true" data-simple-always-open="true" multiple="multiple"><optgroup label="Группа 1"><option value="1">Опция 7.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 7.1</option><option value="1">Опция 7.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 7.1</option><option value="1">Опция 7.2</option><option value="1">Опция 7.3</option></optgroup></select></label> <label class="item"><select data-simple-select-search-dropdown="true" data-simple-always-open="true" data-simple-remove-top="true" multiple="multiple"><optgroup label="Группа 1"><option value="1">Опция 8.1</option></optgroup><optgroup label="Группа 2"><option value="1" disabled="disabled">Опция 8.1</option><option value="1">Опция 8.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 8.1</option><option value="1">Опция 8.2</option><option value="1">Опция 8.3</option></optgroup></select></label></div></div><script>const
|
25
|
+
}</style><body><div id="app"></div><div class="items"><div class="item"><select multiple="multiple" data-simple-placeholder="custom width float" data-simple-float-width="1000"><option value="custom-1">custom float 1</option><option value="custom-2">custom float 2</option></select></div><div class="item"><select multiple="multiple" data-simple-placeholder="none float" data-simple-float-none="true"><option value="custom-none-1">none float 1</option><option value="custom-none-2">none float 2</option></select></div><div class="item"><select id="select_first" data-simple-placeholder="Custom title" data-simple-is-only-placeholder="true" multiple="multiple"><option value="a1">a 1</option><option value="a2">a 2</option><option value="a3">a 3</option><option value="a4">a 4</option><option value="a5">a 5</option></select></div><div class="item"><select multiple="multiple" data-simple-placeholder="custom placeholder" data-simple-is-confirm="true" data-simple-count-shows-selected="3"><option value="a1" data-simple-html-before="<span>|before| </span>" data-simple-html-after="<span> |after|</div>">b 1</option><option value="a22" disabled="disabled">b 2 dis</option><option value="a3">b 3</option><option value="a4">b 4</option><option value="a5">b 5</option></select></div><div class="item"><select id="select_second" data-simple-is-confirm="false" data-simple-reset-all="false" data-simple-select-all="true" data-simple-item-html-before="<span>before</span>" multiple="multiple" data-simple-debounce-time="1000"><optgroup label="Группа 1"><option value="1.1">multiple Опция 1.1</option></optgroup><optgroup label="Группа 2"><option value="2.1">multiple Опция 2.1</option><option value="2.2">multiple Опция 2.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="3.1">multiple Опция 3.1</option><option value="3.2">multiple Опция 3.2</option><option value="3.3">multiple Опция 3.3</option></optgroup></select></div><div class="item"><select data-simple-select-search-dropdown="true" data-simple-show-checkbox="true" class="color_red" data-simple-add-classes="class1" data-simple-select-search="false"><optgroup label="Группа 1"><option value="1">Опция 1.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 2.1</option><option value="1">Опция 2.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 3.1</option><option value="1">Опция 3.2</option><option value="1">Опция 3.3</option></optgroup></select></div><div class="item"><select multiple="multiple" data-simple-select-search="true" data-simple-placeholder="multi and search"><option value="1">multi 1.1</option><option value="1">multi 2.1</option><option value="1">multi 2.2</option><option value="1">multi 3.1</option><option value="1">multi 3.2</option><option value="1">multi 3.3</option></select></div><div class="item"><select data-simple-add-classes="class1 class2" data-simple-item-html-before="<div>before</div>" data-simple-item-html-after="<div>after</div>" data-simple-select-search-dropdown="true" data-simple-up="true"><option>Опция 5.1</option><option>Опция 5.2</option></select></div><div class="item"><select multiple="multiple" data-simple-reset-all="true" data-simple-select-all="true" data-simple-is-confirm="true" data-simple-placeholder="Custom events" id="customEvents"><option value="custom-events-1">none events 1</option><option value="custom-events-2">none events 2</option><option value="custom-events-3">none events 2</option><option value="custom-events-4">none events 2</option></select></div></div><div><p>Group checkbox</p><div class="items"><label class="item"><select data-simple-select-search-dropdown="true" data-simple-show-checkbox="true" data-simple-always-open="true" class="color_red" data-simple-add-classes="class1" data-simple-select-search="false"><optgroup label="Группа 1"><option value="1">Опция 6.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 6.1</option><option value="1">Опция 6.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 6.1</option><option value="1">Опция 6.2</option><option value="1">Опция 6.3</option></optgroup></select></label> <label class="item"><select data-simple-select-search="true" data-simple-always-open="true" multiple="multiple"><optgroup label="Группа 1"><option value="1">Опция 7.1</option></optgroup><optgroup label="Группа 2"><option value="1">Опция 7.1</option><option value="1">Опция 7.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 7.1</option><option value="1">Опция 7.2</option><option value="1">Опция 7.3</option></optgroup></select></label> <label class="item"><select data-simple-select-search-dropdown="true" data-simple-always-open="true" data-simple-remove-top="true" multiple="multiple"><optgroup label="Группа 1"><option value="1">Опция 8.1</option></optgroup><optgroup label="Группа 2"><option value="1" disabled="disabled">Опция 8.1</option><option value="1">Опция 8.2</option></optgroup><optgroup label="Группа 3" disabled="disabled"><option value="1">Опция 8.1</option><option value="1">Опция 8.2</option><option value="1">Опция 8.3</option></optgroup></select></label></div></div><script>const $customEvents = document.getElementById('customEvents');
|
26
|
+
$customEvents.addEventListener('change', (e) => {
|
27
|
+
console.log('change', e);
|
28
|
+
});
|
29
|
+
$customEvents.addEventListener('simpSelect:createListBuild', (e) => {
|
30
|
+
console.log('createListBuild', e);
|
31
|
+
});
|
32
|
+
$customEvents.addEventListener('simpSelect:open.before', (e) => {
|
33
|
+
console.log('open.before', e);
|
34
|
+
});
|
35
|
+
$customEvents.addEventListener('simpSelect:open.after', (e) => {
|
36
|
+
console.log('open.after', e);
|
37
|
+
});
|
38
|
+
$customEvents.addEventListener('simpSelect:close.before', (e) => {
|
39
|
+
console.log('close.before', e);
|
40
|
+
});
|
41
|
+
$customEvents.addEventListener('simpSelect:close.after', (e) => {
|
42
|
+
console.log('close.after', e);
|
43
|
+
});
|
44
|
+
$customEvents.addEventListener('simpSelect:selectAll', (e) => {
|
45
|
+
console.log('selectAll', e);
|
46
|
+
});
|
47
|
+
$customEvents.addEventListener('simpSelect:resetAll', (e) => {
|
48
|
+
console.log('resetAll', e);
|
49
|
+
});
|
50
|
+
$customEvents.addEventListener('simpSelect:updateHistory', (e) => {
|
51
|
+
console.log('updateHistory', e);
|
52
|
+
});
|
53
|
+
|
54
|
+
const sel = new SimpleSelect('select', {
|
26
55
|
// callbackOpen: (item) => {
|
27
56
|
// console.log('open', item);
|
28
57
|
// },
|
package/dist/simpleSelect.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("SimpleSelect",[],t):"object"==typeof exports?exports.SimpleSelect=t():e.SimpleSelect=t()}("undefined"==typeof self?this:self,(function(){return function(){"use strict";var e={737:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.initClass=t.nameMark=t.nameSelect=t.simpleSelectionOptions=t.simpleSelectLocale=void 0,t.simpleSelectLocale={noSearch:"No matches for",searchText:"Search",title:"Select",selected:"Selected:",all:"all",ok:"Ok",cancel:"Cancel",selectAll:"Select all",resetAll:"Reset all"},t.simpleSelectionOptions={isSearch:!1,searchTypeInput:"search",isSearchInDropdown:!1,countShowSelected:3,isOnlyPlaceholder:!1,historyMaxSize:0,isRemoveTop:!1,isConfirmInMulti:!1,isConfirmInMultiOkClickOutside:!1,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],locale:t.simpleSelectLocale,sepChars:",",isUp:!1,isAlwaysOpen:!1,isAlwaysOpenShowDisabledTabindex:!1,floatWidth:767,isCloneClass:!0,selectAll:!1,selectAllAfterClose:!0,resetAll:!1,resetAllAfterClose:!0},t.nameSelect="SimpSelect";t.nameMark="".concat("simple-select-","init"),t.initClass="SimpleSel"},874:function(e,t,i){function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function n(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,u(s.key),s)}}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var i,n=c(e);if(t){var o=c(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return function(e,t){if(t&&("object"===s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return a(e)}(this,i)}}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function r(){return r="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,i){var s=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}(e,t);if(s){var n=Object.getOwnPropertyDescriptor(s,t);return n.get?n.get.call(arguments.length<3?e:i):n.value}},r.apply(this,arguments)}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function h(e,t,i){return(t=u(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function u(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleSelectItem=void 0;var p=i(679),d=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)}(d,e);var t,i,s,u=l(d);function d(e,t,i){var s,n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),h(a(n=u.call(this,e,t,i)),"closeOutsideHandler",void 0),h(a(n),"closeEscHandler",void 0),h(a(n),"changeListener",void 0),h(a(n),"searchHandler",void 0),h(a(n),"handleResize",void 0),h(a(n),"mql",null),h(a(n),"countOpen",0),h(a(n),"multiDebounceTime",0),h(a(n),"timeoutDebounceId",null),h(a(n),"history",[]),!e)throw Error("Select is required");return n.init(),r((s=a(n),c(d.prototype)),"initDom",s).call(s),n.initAfterDom(),n}return t=d,i=[{key:"init",value:function(){var e=this;this.changeListener=this.changeListenerInit.bind(this),this.$select.addEventListener("change",this.changeListener),this.searchHandler=this.searchHandlerInit.bind(this),this.closeOutsideHandler=this.closeOutsideHandlerInit.bind(this),this.closeEscHandler=this.closeEscHandlerInit.bind(this),this.handleResize=this.handleResizeInit.bind(this),this.options.callbackInitialization&&this.options.callbackInitialization(this),!this.isNative&&this.options.floatWidth&&(this.mql=window.matchMedia("screen and (max-width: ".concat(this.options.floatWidth,"px)")),this.mql&&(this.mql.onchange=this.handleResize,this.handleResizeInit(this.mql))),this.state.subscribe("isOpen",(function(t){e.toggleOpenHandler(),!t&&e.options.isConfirmInMulti&&e.createList(),t||e.elemInputSearch&&(e.elemInputSearch.value="",e.state.setState("filterStr",""))})),this.isNative||this.options.isAlwaysOpen||(this.elemTopBody.onclick=this.clickToggleOpen.bind(this),this.elemTopBody.onkeyup=this.clickToggleOpen.bind(this))}},{key:"handleResizeInit",value:function(e){e&&(e.matches?this.state.setState("isFloat",!0):this.state.setState("isFloat",!1))}},{key:"initAfterDom",value:function(){var e=this;this.confirmOk&&(this.confirmOk.onclick=this.confirmOkHandler.bind(this)),this.confirmNo&&(this.confirmNo.onclick=this.confirmNoHandler.bind(this)),this.options.callbackInitialized&&this.options.callbackInitialized(this),this.isMulti&&!this.options.isConfirmInMulti&&((0,p.toCamelCase)("simple-debounce-time")in this.$select.dataset?this.multiDebounceTime=Number(this.$select.dataset[(0,p.toCamelCase)("simple-debounce-time")]):(this.options.debounceTime||0===this.options.debounceTime)&&(this.multiDebounceTime=this.options.debounceTime)),this.multiDebounceTime&&(this.multiDebounceChange=this.debounce(this.multiDebounceChange.bind(this),this.multiDebounceTime)),this.elemSelectAll&&(this.elemSelectAll.onclick=this.selectAllHandler.bind(this)),this.elemResetAll&&(this.elemResetAll.onclick=this.resetAllHandler.bind(this)),this.elemDropDownClose&&(this.elemDropDownClose.onclick=this.closeHandler.bind(this)),this.elemListBody&&this.elemListBody.addEventListener("keyup",(function(t){if("Enter"===t.key){var i=t.target;if(i&&(0,p.toCamelCase)("sel-opt-item")in i.dataset){t.preventDefault(),t.stopPropagation(),e.changeClickItem(i);var s=i.dataset[(0,p.toCamelCase)("sel-position")],n=e.elemListBody.querySelector('[data-sel-position="'.concat(s,'"]'));n&&n.focus()}}}))}},{key:"debounce",value:function(e,t){var i=this;return function(){for(var s=arguments.length,n=new Array(s),o=0;o<s;o++)n[o]=arguments[o];i.timeoutDebounceId&&clearTimeout(i.timeoutDebounceId),i.timeoutDebounceId=setTimeout((function(){e.apply(void 0,n),i.timeoutDebounceId=null}),t)}}},{key:"confirmOkHandler",value:function(e){e.preventDefault(),this.confirmOkBuild()}},{key:"confirmOkBuild",value:function(){var e=this,t=this.$select.options;this.elemListBody&&(this.elemListBody.querySelectorAll("[data-sel-position]").forEach((function(i){var s=parseInt(i.dataset[(0,p.toCamelCase)("sel-position")],10);if(s||0===s){var n=t[s];if(n&&!n.disabled){var o="true"===i.dataset[(0,p.toCamelCase)("sel-opt-checked")];o!==n.selected&&e.addHistory(n,o),n.selected=o}}})),this.state.setState("isOpen",!1),this.triggerInit())}},{key:"confirmNoHandler",value:function(e){e.preventDefault(),this.state.setState("isOpen",!1)}},{key:"closeHandler",value:function(e){e.preventDefault(),this.state.setState("isOpen",!1)}},{key:"selectAllHandler",value:function(e){e.preventDefault(),Array.from(this.$select.options).forEach((function(e){e.disabled||(e.selected=!0)})),this.createList(),this.options.selectAllAfterClose&&this.state.setState("isOpen",!1),this.triggerInit()}},{key:"resetAllHandler",value:function(e){e.preventDefault(),Array.from(this.$select.options).forEach((function(e){e.disabled||(e.selected=!1)})),this.createList(),this.options.selectAllAfterClose&&this.state.setState("isOpen",!1),this.triggerInit()}},{key:"triggerSetup",value:function(e){if(0===e.button){var t=e.target.closest("li");t&&this.changeClickItem(t)}}},{key:"changeClickItemDom",value:function(e){"true"===e.dataset[(0,p.toCamelCase)("sel-opt-checked")]?(e.dataset[(0,p.toCamelCase)("sel-opt-checked")]="false",e.classList.remove("SimpleSel__list_item--checked")):(e.dataset[(0,p.toCamelCase)("sel-opt-checked")]="true",e.classList.add("SimpleSel__list_item--checked"))}},{key:"addHistory",value:function(e,t){this.options.historyMaxSize>0&&(this.history.push({value:e.value,text:e.innerHTML,selected:t,indexOption:e.index}),this.history.length>this.options.historyMaxSize&&(this.history=this.history.slice(this.history.length-this.options.historyMaxSize)))}},{key:"changeClickItem",value:function(e){if(e){var t=Number(e.dataset[(0,p.toCamelCase)("sel-position")])||0,i=this.$select.options[t];if(i&&!i.disabled)if(this.isMulti)if(this.options.isConfirmInMulti||this.isFloatWidth)this.changeClickItemDom(e);else{var s=!i.selected;i.selected=s,this.addHistory(i,s),this.changeClickItemDom(e),this.createList(),this.multiDebounceChange()}else i.selected=!0,this.addHistory(i,!0),this.createList(),this.state.setState("isOpen",!1),this.triggerInit()}}},{key:"multiDebounceChange",value:function(){this.triggerInit()}},{key:"triggerInit",value:function(){(0,p.triggerInputEvent)(this.$select)}},{key:"clickToggleOpen",value:function(e){e.preventDefault(),this.isDisabled||("click"!==e.type?e instanceof KeyboardEvent&&"Enter"===e.key&&this.state.setState("isOpen",!this.state.getState("isOpen")):this.state.setState("isOpen",!this.state.getState("isOpen")))}},{key:"closeOutsideHandlerInit",value:function(e){var t=e.target;t&&(this.elemWrap.contains(t)||(this.options.isConfirmInMulti&&this.options.isConfirmInMultiOkClickOutside&&this.confirmOkBuild(),this.state.setState("isOpen",!1)))}},{key:"closeEscHandlerInit",value:function(e){"Escape"===e.code&&(e.preventDefault(),e.stopPropagation(),this.state.setState("isOpen",!1)),"Tab"===e.code&&(e.preventDefault(),e.stopPropagation(),this.elemWrap.contains(e.target)||this.state.setState("isOpen",!1)),"ArrowUp"!==e.key&&"ArrowDown"!==e.key||(e.preventDefault(),e.stopPropagation(),this.keyBoardChangeChecked("ArrowDown"===e.key))}},{key:"keyBoardChangeChecked",value:function(e){var t=this.elemListBody.querySelectorAll('[data-sel-position]:not([data-sel-opt-disabled="true"])');if(t.length){var i,s=0;t.forEach((function(e,t){document.activeElement===e&&(s=t,i=e),e.removeAttribute("tabindex")})),(i=i?e?t[s+1]||t[0]:t[s-1]||t[t.length-1]:e?t[0]:t[t.length-1]).tabIndex=0,i.focus()}}},{key:"searchHandlerInit",value:function(e){var t=e.target;if(t){var i=t.value;this.state.setState("filterStr",i)}}},{key:"toggleOpenHandler",value:function(){var e=this;this.state.getState("isOpen")?(this.elemWrap.classList.add("SimpleSel--open"),document.addEventListener("click",this.closeOutsideHandler),document.addEventListener("keyup",this.closeEscHandler),this.elemInputSearch&&setTimeout((function(){e.elemInputSearch.focus()}),50),this.options.callbackOpen&&this.options.callbackOpen(this),this.countOpen++,this.elemDropDown&&setTimeout((function(){e.elemDropDown.scrollTop=0}),10)):(this.state.setState("filterList",""),this.elemWrap.classList.remove("SimpleSel--open"),document.removeEventListener("click",this.closeOutsideHandler),document.removeEventListener("keyup",this.closeEscHandler),this.timeoutDebounceId&&(clearTimeout(this.timeoutDebounceId),this.triggerInit()),this.options.callbackClose&&this.countOpen>0&&this.options.callbackClose(this))}},{key:"changeListenerInit",value:function(e){this.options.callbackChangeSelect&&this.options.callbackChangeSelect(e,this),this.createList(!0)}},{key:"getSelect",value:function(){return this.$select}},{key:"handlerChangeChecked",value:function(){this.elemListBody&&(this.elemListBody.onmouseup=this.triggerSetup.bind(this))}},{key:"createList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[],i=this.$select.querySelectorAll("optgroup");if(i&&i.length?i.forEach((function(e,i){t.push((0,p.getCreateListItem)(e,(i+1).toString(),!0))})):t.push((0,p.getCreateListItem)(this.$select,"1",!1)),e){var s=this.state.getState("items");(0,p.compareObj)(s,t)||this.state.setState("items",t)}else this.state.setState("items",t)}},{key:"inputSearchHandler",value:function(){this.elemInputSearch&&this.elemInputSearch.addEventListener("input",this.searchHandler)}},{key:"detachItem",value:function(){this.options.callbackDestroyInit&&this.options.callbackDestroyInit(this);var e=this.elemWrap.parentNode;this.$select.removeEventListener("change",this.changeListener),this.elemInputSearch&&this.elemInputSearch.removeEventListener("input",this.searchHandler),this.confirmOk&&(this.confirmOk.onclick=null),this.confirmNo&&(this.confirmNo.onclick=null),e.replaceChild(this.$select,this.elemWrap),this.$select.classList.remove(this.classSelectInit),this.elemTopBody&&(this.elemTopBody.onclick=null,this.elemTopBody.onkeyup=null),this.elemListBody&&(this.elemListBody.onmouseup=null),this.elemSelectAll&&(this.elemSelectAll.onclick=null),this.elemResetAll&&(this.elemResetAll.onclick=null),this.options.callbackDestroy&&this.options.callbackDestroy(this),this.elemDropDownClose&&(this.elemDropDownClose.onclick=null),this.mql&&(this.mql.onchange=null,this.mql=null)}}],i&&n(t.prototype,i),s&&n(t,s),Object.defineProperty(t,"prototype",{writable:!1}),d}(i(844).SimpleSelectItemDOM);t.SimpleSelectItem=d},844:function(e,t,i){function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function n(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function l(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,r(s.key),s)}}function a(e,t,i){return(t=r(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleSelectItemDOM=void 0;var c=i(679),h=i(972),u=i(737),p=function(){function e(t,i,s){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"options",void 0),a(this,"$select",void 0),a(this,"id",void 0),a(this,"titlePlaceholder",void 0),a(this,"isDisabled",!1),a(this,"isMulti",void 0),a(this,"state",(0,h.store)({items:[],isOpen:!1,filterStr:"",isFloat:!1})),a(this,"classSelectInit",(0,c.getClass)("select_init")),a(this,"isNative",void 0),a(this,"elemWrap",document.createElement("div")),a(this,"elemTop",document.createElement("div")),a(this,"elemTopBody",document.createElement("div")),a(this,"elemDropDownWrap",null),a(this,"elemDropDown",null),a(this,"elemDropDownClose",null),a(this,"elemListBody",null),a(this,"elemInputSearch",null),a(this,"elemTitle",void 0),a(this,"confirmWrap",null),a(this,"confirmOk",null),a(this,"confirmNo",null),a(this,"elemControl",null),a(this,"elemSelectAll",null),a(this,"elemResetAll",null),a(this,"cloneClasses",""),a(this,"isShowCheckbox",!1),a(this,"bodyLiHTMLBeforeFromSelect",null),a(this,"bodyLiHTMLAfterFromSelect",null),a(this,"isFloatWidth",!1),a(this,"bodyOpenClass","".concat(u.initClass,"--body_open"));var n=s.id,o=s.isNative;this.$select=t,this.isMulti=t.multiple,this.id=n,this.isNative=o,this.options=(0,c.cloneObj)(i),this.options.isCloneClass&&(this.cloneClasses=this.$select.className),i.callbackInitialization&&(this.options.callbackInitialization=i.callbackInitialization),i.callbackInitialized&&(this.options.callbackInitialized=i.callbackInitialized),i.callbackOpen&&(this.options.callbackOpen=i.callbackOpen),i.callbackClose&&(this.options.callbackClose=i.callbackClose),i.callbackDestroyInit&&(this.options.callbackDestroyInit=i.callbackDestroyInit),i.callbackDestroy&&(this.options.callbackDestroy=i.callbackDestroy),i.callbackChangeSelect&&(this.options.callbackChangeSelect=i.callbackChangeSelect),i.changeBodyLi&&(this.options.changeBodyLi=i.changeBodyLi),this.isMulti&&this.$select.hasAttribute("data-simple-is-confirm")&&(this.options.isConfirmInMulti=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-is-confirm"))),this.optionOverride(),this.isDisabled=this.$select.disabled}var t,i,s;return t=e,i=[{key:"optionOverride",value:function(){var e=(0,c.toCamelCase)("simple-placeholder");if(this.$select.dataset[e]?this.titlePlaceholder=this.$select.dataset[e]||"":this.titlePlaceholder=this.options.locale.title,this.$select.hasAttribute("data-simple-reset-all")&&(this.options.resetAll=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-reset-all"))),this.$select.hasAttribute("data-simple-select-all")){var t=this.$select.getAttribute("data-simple-select-all");this.options.selectAll=(0,c.ifTrueDataAttr)(t)}var i=this.$select.dataset[(0,c.toCamelCase)("simple-show-checkbox")];this.isMulti?this.isShowCheckbox=!(i&&!(0,c.ifTrueDataAttr)(i)):"true"===i&&(this.isShowCheckbox=!0);var s=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-before")];s&&(this.bodyLiHTMLBeforeFromSelect=s);var n=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-after")];if(n&&(this.bodyLiHTMLAfterFromSelect=n),this.$select.hasAttribute("data-simple-up")&&(this.options.isUp=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-up"))),this.$select.hasAttribute("data-simple-is-only-placeholder")&&(this.options.isOnlyPlaceholder=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-is-only-placeholder"))),this.$select.hasAttribute("data-simple-remove-top")&&(this.options.isRemoveTop=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-remove-top"))),this.$select.hasAttribute("data-simple-float-none")&&(this.isFloatWidth=!1,this.options.floatWidth=0),this.$select.hasAttribute("data-simple-float-width")){var o=Number(this.$select.dataset[(0,c.toCamelCase)("simple-float-width")]);o&&(this.options.floatWidth=o)}this.$select.hasAttribute("data-simple-always-open")&&(this.options.isAlwaysOpen=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-always-open")),this.isNative=!1,this.isFloatWidth=!1,this.options.floatWidth=0)}},{key:"initDom",value:function(){var e=this;this.createList(!1),this.createHTML(),this.state.subscribe("filterStr",(function(t){e.createListHTML(!0)})),this.state.subscribe("items",(function(t){e.createListHTML(!0),e.createTitleHTML()})),this.state.subscribe("isOpen",(function(t){e.createListHTML(!1),e.createTitleHTML(),e.toggleTabIndex(t)})),this.state.subscribe("isFloat",(function(t){e.isFloatWidth=t;var i=(0,c.getClass)("float",!0);t?(e.elemWrap.classList.add(i),!document.body.classList.contains(e.bodyOpenClass)&&e.state.getState("isOpen")&&document.body.classList.add(e.bodyOpenClass)):(e.elemWrap.classList.remove(i),document.body.classList.contains(e.bodyOpenClass)&&document.body.classList.remove(e.bodyOpenClass))}))}},{key:"toggleTabIndex",value:function(e){var t=e||this.options.isAlwaysOpen?0:-1;this.state.getState("isFloat")&&(e?document.body.classList.add(this.bodyOpenClass):document.body.classList.remove(this.bodyOpenClass)),this.elemInputSearch&&(this.elemInputSearch.tabIndex=t),this.elemResetAll&&(this.elemResetAll.tabIndex=t),this.elemSelectAll&&(this.elemSelectAll.tabIndex=t),this.confirmOk&&(this.confirmOk.tabIndex=t),this.confirmNo&&(this.confirmNo.tabIndex=t)}},{key:"updateHTML",value:function(){this.createList(!0)}},{key:"createHTML",value:function(){this.$select.classList.add(this.classSelectInit),this.$select.tabIndex=-1,this.elemTopBody.className=(0,c.getClass)("top_body"),this.elemTopBody.tabIndex=this.isDisabled?-1:0,this.createIcon(),this.options.isRemoveTop||this.elemTop.appendChild(this.elemTopBody);var e=u.initClass;this.options.isCloneClass&&(e+=" ".concat(this.cloneClasses)),this.$select.hasAttribute("data-simple-add-classes")&&(e+=" ".concat(this.$select.getAttribute("data-simple-add-classes"))),this.isDisabled&&(e+=" ".concat((0,c.getClass)("disabled",!0))),this.options.isAlwaysOpen&&(e+=" ".concat((0,c.getClass)("always_open",!0))),this.options.isUp&&(e+=" ".concat((0,c.getClass)("up",!0))),e+=" ".concat(this.isMulti?(0,c.getClass)("multi",!0):(0,c.getClass)("single",!0)),this.elemWrap.className=e,this.elemWrap.dataset.countAll=this.$select.options.length.toString(),this.elemTop.className=(0,c.getClass)("top");var t=this.$select.parentNode;t&&(t.replaceChild(this.elemWrap,this.$select),this.elemWrap.appendChild(this.$select)),this.elemWrap.appendChild(this.elemTop),this.isNative?(this.$select.classList.add((0,c.getClass)("native",!0,this.classSelectInit)),this.elemWrap.classList.add((0,c.getClass)("native",!0))):(this.createDropDown(),this.createControlHTML(),this.createInputHTML()),this.createTitleHTML()}},{key:"createControlHTML",value:function(){if(this.elemDropDown&&this.isMulti&&(this.options.selectAll||this.options.resetAll)){this.elemControl=document.createElement("div"),this.elemControl.classList.add((0,c.getClass)("controls")),this.elemDropDown.insertBefore(this.elemControl,this.elemDropDown.childNodes[0]);var e=(0,c.getClass)("control");this.options.selectAll&&(this.elemSelectAll=(0,c.createButton)(),this.elemSelectAll.className="".concat(e," ").concat((0,c.getClass)("select_all",!0,e)),this.elemSelectAll.innerHTML='<span class="'.concat((0,c.getClass)("select_all__icon"),'"></span> ').concat(this.options.locale.selectAll),this.elemControl.appendChild(this.elemSelectAll)),this.options.resetAll&&(this.elemResetAll=(0,c.createButton)(),this.elemResetAll.className="".concat(e," ").concat((0,c.getClass)("reset_all",!0,e)),this.elemResetAll.innerHTML='<span class="'.concat((0,c.getClass)("reset_all__icon"),'"></span> ').concat(this.options.locale.resetAll),this.elemControl.appendChild(this.elemResetAll))}}},{key:"createIcon",value:function(){var e=document.createElement("span");e.className=(0,c.getClass)("icon"),this.elemTopBody.appendChild(e)}},{key:"createDropDown",value:function(){this.isNative||(this.elemDropDownWrap=document.createElement("div"),this.elemDropDownWrap.className=(0,c.getClass)("body"),this.options.isAlwaysOpen&&this.elemDropDownWrap.classList.add((0,c.getClass)("body-always_open",!0)),this.elemDropDown=document.createElement("div"),this.elemDropDown.className=(0,c.getClass)("body_wrap"),this.elemListBody=document.createElement("ul"),this.elemListBody.className=(0,c.getClass)("list"),this.elemDropDownWrap.append(this.elemDropDown),this.elemWrap.appendChild(this.elemDropDownWrap),this.elemDropDown.appendChild(this.elemListBody),this.elemDropDownClose=(0,c.createButton)(),this.elemDropDownClose.classList.add((0,c.getClass)("close")),this.elemDropDown.appendChild(this.elemDropDownClose),this.isMulti&&this.createIsConfirmInMultiHTML(),this.handlerChangeChecked())}},{key:"createIsConfirmInMultiHTML",value:function(){var e;this.confirmWrap=document.createElement("div");var t=(0,c.getClass)("bottom_control");this.confirmOk=(0,c.createButton)(),this.confirmNo=(0,c.createButton)(),this.confirmWrap.appendChild(this.confirmOk),this.confirmWrap.appendChild(this.confirmNo),this.confirmOk.innerHTML=this.options.locale.ok,this.confirmNo.innerHTML=this.options.locale.cancel,this.confirmOk.className="".concat(t," ").concat((0,c.getClass)("ok",!0,t)),this.confirmNo.className="".concat(t," ").concat((0,c.getClass)("no",!0,t));var i=(0,c.getClass)("bottom_controls");this.options.isConfirmInMulti||(i+=" ".concat((0,c.getClass)("hide",!0,i))),this.confirmWrap.className=i,null===(e=this.elemDropDown)||void 0===e||e.appendChild(this.confirmWrap)}},{key:"createTitleHTML",value:function(){var e=this;if(!this.options.isRemoveTop){if(!this.elemTitle){this.elemTitle=document.createElement("div");var t=(0,c.getClass)("title");this.options.isOnlyPlaceholder&&(t+=" ".concat((0,c.getClass)("only-placeholder",!0,t))),this.elemTitle.className=t,this.elemTopBody.insertBefore(this.elemTitle,this.elemTopBody.childNodes[0])}var i=this.getChecked();this.elemTop.title="";var s=!i.length,n=this.titlePlaceholder;if(i.length&&!this.options.isOnlyPlaceholder){var o="";i.forEach((function(t,i){0!==i&&(o+="".concat(e.options.sepChars,'<span class="').concat((0,c.getClass)("sep_space",!0),'"> </span>')),o+="".concat(t.title)})),this.elemTop.title=o;var l=this.options.countShowSelected,a=Number(this.$select.dataset.simpleCountShowsSelected);a&&a>0&&(l=a),i.length>l?(n="".concat(this.options.locale.selected," ").concat(i.length),this.$select.querySelectorAll("option").length===i.length&&(n+=" (".concat(this.options.locale.all,")"))):o&&(n=o)}this.elemTitle.innerHTML=n,s?(this.elemTitle.classList.add("SimpleSel__title--placeholder"),this.elemTitle.classList.remove("SimpleSel__title--fill"),this.elemWrap.classList.remove((0,c.getClass)("fill",!0))):(this.elemTitle.classList.remove("SimpleSel__title--placeholder"),this.elemTitle.classList.add("SimpleSel__title--fill"),this.elemWrap.classList.add((0,c.getClass)("fill",!0)))}}},{key:"filterList",value:function(){var e=this.state.getState("filterStr"),t=this.state.getState("items");if(!e)return t;e=e.toLowerCase();var i=(0,c.cloneObj)(t);return i.forEach((function(t){var i=!1;t.items.forEach((function(t){t.title.toLowerCase().indexOf(e)>=0?(i=!0,t.isShowFilter=!0):t.isShowFilter=!1})),t.isShowFilter=i})),i}},{key:"createListHTML",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.elemListBody){var i="",s=0,n=0,o=0;(t?this.filterList():this.state.getState("items")).forEach((function(t){if(t.isGroup){var l=e.createLi(t),a=l.result,r=l.countShow,h=l.countChecked,u=l.countCheckedFull;i+='<div class="'.concat((0,c.getClass)("group_items"),'">'),i+=a,i+="</div>",n+=h,s+=r,o+=u}else{var p=e.createLi(t),d=p.result,m=p.countShow,f=p.countChecked,b=p.countCheckedFull;i+=d,s+=m,n+=f,o+=b}}));var l=this.state.getState("filterStr");l&&l.length&&0===s&&(i='<div class="'.concat((0,c.getClass)("no_match"),'">'),i="".concat(this.options.locale.noSearch,' "').concat(l,'"'),i+="</div>"),this.elemWrap.dataset.countChecked=n.toString(),this.elemWrap.dataset.countCheckedFull=o.toString(),this.isMulti&&(this.elemWrap.dataset.checkAllMulti=this.$select.options.length===n?"yes":"no"),i=(0,c.removeExtraSpaces)(i),this.elemListBody.innerHTML!==i&&(this.elemListBody.innerHTML=i)}}},{key:"createInputHTML",value:function(){var e=this.options.isSearch,t=this.options.isSearchInDropdown;if("simpleSelectSearch"in this.$select.dataset&&(e="false"!==this.$select.dataset.simpleSelectSearch),"simpleSelectSearchDropdown"in this.$select.dataset&&(t="false"!==this.$select.dataset.simpleSelectSearchDropdown),e||t){this.elemInputSearch=document.createElement("input"),this.elemInputSearch.type=this.options.searchTypeInput,this.elemInputSearch.tabIndex=-1,this.elemInputSearch.autocomplete="off",this.elemInputSearch.ariaAutoComplete="none",this.elemInputSearch.inputMode="off",this.elemInputSearch.placeholder=this.options.locale.searchText,this.elemInputSearch.name="".concat(u.initClass,"_name_").concat(this.id);var i=(0,c.getClass)("search");if(t){if(this.elemDropDown){var s=document.createElement("div");s.className=(0,c.getClass)("search_wrap"),this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("dropdown",!0,i)),s.appendChild(this.elemInputSearch),this.elemDropDown.insertBefore(s,this.elemDropDown.childNodes[0])}}else this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("top",!0,i)),this.elemTop.appendChild(this.elemInputSearch);this.inputSearchHandler()}}},{key:"getChecked",value:function(){var e=this.state.getState("items"),t=[];return e.forEach((function(e){t=[].concat(n(t),n(e.items.filter((function(e){return e.checked}))))})),t}},{key:"createLi",value:function(e){var t=this,i="",s=0,n=0,o=0;return e.isShowFilter?(e.isGroup&&(i+='<label class="'.concat((0,c.getClass)("group_title"),'">').concat(e.titleGroup,"</label>"),i+='<ul class="'.concat((0,c.getClass)("group"),'">')),e.items.forEach((function(l){if(l.isShowFilter){s++;var a=(0,c.getClass)("list_item"),r=a;l.checked&&(n++,r+=" ".concat((0,c.getClass)("checked",!0,a)),l.value&&o++),l.disabled&&(r+=" ".concat((0,c.getClass)("disabled",!0,a))),l.value||(r+=" ".concat((0,c.getClass)("not_value",!0,a)));var h='data-sel-group-id="'.concat(e.idGroup,'"');h+="data-sel-opt-item",h+=' data-sel-position="'.concat(l.position,'"'),h+=' data-sel-id="'.concat(l.id,'"'),l.value&&(h+=' data-sel-value="'.concat(l.value,'"')),h+=' data-sel-opt-checked="'.concat(l.checked,'"'),h+=' data-sel-opt-disabled="'.concat(l.disabled,'"'),t.options.isAlwaysOpen?l.disabled&&!t.options.isAlwaysOpenShowDisabledTabindex?h+=' tabindex="-1"':h+=' tabindex="0"':h+=' tabindex="-1"',i+='<li class="'.concat(r,'" ').concat(h,">");var u=t.createLiBody(l,t.$select.options[l.position]);i+="string"==typeof u?u:u.outerHTML,i+="</li>"}})),e.isGroup&&(i+="</ul>"),{result:i,countShow:s,countChecked:n,countCheckedFull:o}):{result:i,countShow:s,countChecked:n,countCheckedFull:o}}},{key:"createLiBody",value:function(e,t){var i=document.createElement("div");i.className=(0,c.getClass)("list_item_body");var s="";return this.isShowCheckbox&&(s='<span class="'.concat((0,c.getClass)("list_item_icon"),'"></span>')),this.bodyLiHTMLBeforeFromSelect&&(s+=this.bodyLiHTMLBeforeFromSelect),t.hasAttribute("data-simple-html-before")&&(s+=t.getAttribute("data-simple-html-before")),s+="".concat(e.title),this.bodyLiHTMLAfterFromSelect&&(s+=this.bodyLiHTMLAfterFromSelect),t.hasAttribute("data-simple-html-after")&&(s+=t.getAttribute("data-simple-html-after")),i.innerHTML=s,this.options.changeBodyLi?this.options.changeBodyLi(i,t):i}},{key:"handlerChangeChecked",value:function(){console.error("This method need redefine")}},{key:"createList",value:function(e){console.error("This method need redefine")}},{key:"inputSearchHandler",value:function(){console.error("This method need redefine")}}],i&&l(t.prototype,i),s&&l(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.SimpleSelectItemDOM=p},679:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.createButton=t.cloneObj=t.compareObj=t.getClass=t.getCreateListItem=t.triggerInputEvent=t.ifTrueDataAttr=t.createDataAttr=t.removeExtraSpaces=t.toCamelCase=void 0;var s=i(737);t.toCamelCase=function(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))};t.removeExtraSpaces=function(e){return e.replace(/\s+/g," ").trim()};t.createDataAttr=function(e){return"data-".concat(e)};t.ifTrueDataAttr=function(e){return!!e&&("true"===e||"1"===e)},t.triggerInputEvent=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";try{var i=new Event(t,{bubbles:!0,cancelable:!0});e.dispatchEvent(i)}catch(i){var s=new CustomEvent(t,{bubbles:!0,cancelable:!0});e.dispatchEvent(s)}};t.getCreateListItem=function(e,t,i){var s=e.querySelectorAll("option"),n=[];s.forEach((function(e,t){n.push({id:(t+1).toString(),position:e.index,title:e.innerHTML,value:e.getAttribute("value"),checked:e.selected,disabled:e.disabled,isShowFilter:!0})}));var o={isGroup:i,idGroup:t,items:n,isShowFilter:!0};return e instanceof HTMLOptGroupElement&&(o.titleGroup=e.label||"",o.isDisabledGroup=e.disabled||!1),o};t.getClass=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.initClass,n=t?"--":"__";return"".concat(i).concat(n).concat(e)};t.compareObj=function(e,t){return JSON.stringify(e)===JSON.stringify(t)};t.cloneObj=function(e){return JSON.parse(JSON.stringify(e))};t.createButton=function(){var e=document.createElement("button");return e.type="button",e.tabIndex=-1,e}},972:function(e,t){function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function n(e,t,s){return(t=function(e){var t=function(e,t){if("object"!==i(e)||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var n=s.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===i(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Object.defineProperty(t,"__esModule",{value:!0}),t.store=void 0,t.store=function(e){var t={},i={},o=[],l=function(e){return e?e in t?t[e]:null:t},a=function(e,l){var a=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?s(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):s(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({},t),r=t[e]||0==t[e]?t[e]:null;t[e]=l,e in i&&i[e].forEach((function(e){return e(l,r,t)})),o.forEach((function(i){return i(e,a,t)}))};return e&&Object.keys(e).forEach((function(t){a(t,e[t])})),{getState:l,setState:a,subscribe:function(e,t){e in i||(i[e]=[]),i[e].push(t);var s=l(e);return t(s,null,l()),function(){i[e]=i[e].filter((function(e){return e!==t}))}},subscribeAll:function(e){return o.push(e),e(null,null,l()),function(){o=o.filter((function(t){return t!==e}))}},unSubscribe:function(e,t){e in i&&(i[e]=i[e].filter((function(e){return e!==t})))}}}},181:function(e,t,i){i.r(t)}},t={};function i(s){var n=t[s];if(void 0!==n)return n.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,i),o.exports}i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return function(){var e=s;function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?n(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,r(s.key),s)}}function a(e,t,i){return(t=r(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e){var i=function(e,i){if("object"!==t(e)||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var n=s.call(e,i||"default");if("object"!==t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===i?String:Number)(e)}(e,"string");return"symbol"===t(i)?i:String(i)}var c=i(737),h=i(679),u=i(874);i(181);var p=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"callCount",Date.now()),a(this,"countInit",0),a(this,"$selects",[]),a(this,"options",void 0),a(this,"nameMarkTransform",(0,h.toCamelCase)(c.nameMark)),a(this,"dataNameMark",(0,h.createDataAttr)(c.nameMark)),a(this,"isNative",void 0),t||(t="select"),this.options=o(o({},c.simpleSelectionOptions),i),"string"==typeof t?this.init(Array.from(document.querySelectorAll(t))):t instanceof HTMLSelectElement?this.init([t]):t instanceof NodeList?this.init(Array.from(t)):Array.isArray(t)?this.init(t):console.warn("Wrong selector: ",t)}var t,i,s;return t=e,(i=[{key:"detectMobile",value:function(){if(this.options.detectNative)this.isNative=this.options.detectNative();else{for(var e=navigator.userAgent||navigator.vendor||window.opera,t=!1,i=0;i<this.options.nativeOnDevice.length;i++)e.toString().toLowerCase().indexOf(this.options.nativeOnDevice[i].toLowerCase())>0&&this.options.nativeOnDevice[i]&&(t=!0);this.isNative=t}}},{key:"init",value:function(e){var t=this;this.detectMobile(),e.forEach((function(e){t.build(e)}))}},{key:"createMethods",value:function(e){var t=this;return{getHistory:function(){return e.history},getHistoryLast:function(){return e.history.length?e.history[e.history.length-1]:null},getHistoryFirst:function(){return e.history.length?e.history[0]:null},getNativeSelect:function(){return e.getSelect()},reload:function(){t.rebuild(e)},update:function(){e.updateHTML()},detach:function(){t.detach(e)}}}},{key:"setMethods",value:function(e){e.$select[c.nameSelect]=this.createMethods(e)}},{key:"setMethodsClear",value:function(e){delete e.$select[c.nameSelect]}},{key:"build",value:function(e){if(this.nameMarkTransform in e.dataset)console.warn("This element has already been initialized",e);else{this.countInit+=1;var t="".concat(this.callCount,"-").concat(this.countInit);e.setAttribute(this.dataNameMark,t);var i=new u.SimpleSelectItem(e,this.options,{id:t,isNative:this.isNative});this.$selects.push(i),this.setMethods(i)}}},{key:"detach",value:function(e){e.detachItem(),e.$select.removeAttribute(this.dataNameMark),this.setMethodsClear(e),this.$selects=this.$selects.filter((function(t){return t!==e}))}},{key:"rebuild",value:function(e){var t=e.$select;this.detach(e),this.build(t)}},{key:"getSelects",value:function(){return this.$selects}},{key:"getSelectFirst",value:function(){return this.createMethods(this.$selects[0])}},{key:"getSelectById",value:function(e){var t=this.$selects.filter((function(t){return t.id===e}))[0];return t?this.createMethods(t):null}}])&&l(t.prototype,i),s&&l(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();e.default=p}(),s=s.default}()}));
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("SimpleSelect",[],t):"object"==typeof exports?exports.SimpleSelect=t():e.SimpleSelect=t()}("undefined"==typeof self?this:self,(function(){return function(){"use strict";var e={737:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.initClass=t.nameMark=t.nameSelect=t.simpleSelectionOptions=t.simpleSelectLocale=void 0,t.simpleSelectLocale={noSearch:"No matches for",searchText:"Search",title:"Select",selected:"Selected:",all:"all",ok:"Ok",cancel:"Cancel",selectAll:"Select all",resetAll:"Reset all"},t.simpleSelectionOptions={isSearch:!1,searchTypeInput:"search",isSearchInDropdown:!1,countShowSelected:3,isOnlyPlaceholder:!1,historyMaxSize:0,isRemoveTop:!1,isConfirmInMulti:!1,isConfirmInMultiOkClickOutside:!1,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],locale:t.simpleSelectLocale,sepChars:",",isUp:!1,isAlwaysOpen:!1,isAlwaysOpenShowDisabledTabindex:!1,floatWidth:767,isCloneClass:!0,selectAll:!1,selectAllAfterClose:!0,resetAll:!1,resetAllAfterClose:!0},t.nameSelect="SimpSelect";t.nameMark="".concat("simple-select-","init"),t.initClass="SimpleSel"},874:function(e,t,i){function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function n(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,u(s.key),s)}}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var i,n=c(e);if(t){var o=c(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return function(e,t){if(t&&("object"===s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return a(e)}(this,i)}}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function r(){return r="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,i){var s=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}(e,t);if(s){var n=Object.getOwnPropertyDescriptor(s,t);return n.get?n.get.call(arguments.length<3?e:i):n.value}},r.apply(this,arguments)}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function h(e,t,i){return(t=u(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function u(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleSelectItem=void 0;var p=i(679),d=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)}(d,e);var t,i,s,u=l(d);function d(e,t,i){var s,n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),h(a(n=u.call(this,e,t,i)),"closeOutsideHandler",void 0),h(a(n),"closeEscHandler",void 0),h(a(n),"changeListener",void 0),h(a(n),"searchHandler",void 0),h(a(n),"handleResize",void 0),h(a(n),"mql",null),h(a(n),"isInitialized",!1),h(a(n),"countOpen",0),h(a(n),"multiDebounceTime",0),h(a(n),"timeoutDebounceId",null),h(a(n),"history",[]),!e)throw Error("Select is required");return n.init(),r((s=a(n),c(d.prototype)),"initDom",s).call(s),n.initAfterDom(),setTimeout((function(){n.isInitialized=!0}),10),n}return t=d,i=[{key:"init",value:function(){var e=this;this.changeListener=this.changeListenerInit.bind(this),this.$select.addEventListener("change",this.changeListener),this.searchHandler=this.searchHandlerInit.bind(this),this.closeOutsideHandler=this.closeOutsideHandlerInit.bind(this),this.closeEscHandler=this.closeEscHandlerInit.bind(this),this.handleResize=this.handleResizeInit.bind(this),this.options.callbackInitialization&&this.options.callbackInitialization(this),!this.isNative&&this.options.floatWidth&&(this.mql=window.matchMedia("screen and (max-width: ".concat(this.options.floatWidth,"px)")),this.mql&&(this.mql.onchange=this.handleResize,this.handleResizeInit(this.mql))),this.state.subscribe("isOpen",(function(t){e.isInitialized&&(0,p.triggerCustomEvent)(e.$select,"".concat(t?"open":"close",".before"),{item:e}),e.toggleOpenHandler(),!t&&e.options.isConfirmInMulti&&e.createList(),t||e.elemInputSearch&&(e.elemInputSearch.value="",e.state.setState("filterStr","")),e.isInitialized&&(0,p.triggerCustomEvent)(e.$select,"".concat(t?"open":"close",".after"),{item:e})})),this.isNative||this.options.isAlwaysOpen||(this.elemTopBody.onclick=this.clickToggleOpen.bind(this),this.elemTopBody.onkeyup=this.clickToggleOpen.bind(this))}},{key:"handleResizeInit",value:function(e){e&&(e.matches?this.state.setState("isFloat",!0):this.state.setState("isFloat",!1))}},{key:"initAfterDom",value:function(){var e=this;this.confirmOk&&(this.confirmOk.onclick=this.confirmOkHandler.bind(this)),this.confirmNo&&(this.confirmNo.onclick=this.confirmNoHandler.bind(this)),this.options.callbackInitialized&&this.options.callbackInitialized(this),this.isMulti&&!this.options.isConfirmInMulti&&((0,p.toCamelCase)("simple-debounce-time")in this.$select.dataset?this.multiDebounceTime=Number(this.$select.dataset[(0,p.toCamelCase)("simple-debounce-time")]):(this.options.debounceTime||0===this.options.debounceTime)&&(this.multiDebounceTime=this.options.debounceTime)),this.multiDebounceTime&&(this.multiDebounceChange=this.debounce(this.multiDebounceChange.bind(this),this.multiDebounceTime)),this.elemSelectAll&&(this.elemSelectAll.onclick=this.selectAllHandler.bind(this)),this.elemResetAll&&(this.elemResetAll.onclick=this.resetAllHandler.bind(this)),this.elemDropDownClose&&(this.elemDropDownClose.onclick=this.closeHandler.bind(this)),this.elemListBody&&this.elemListBody.addEventListener("keyup",(function(t){if("Enter"===t.key){var i=t.target;if(i&&(0,p.toCamelCase)("sel-opt-item")in i.dataset){t.preventDefault(),t.stopPropagation(),e.changeClickItem(i);var s=i.dataset[(0,p.toCamelCase)("sel-position")],n=e.elemListBody.querySelector('[data-sel-position="'.concat(s,'"]'));n&&n.focus()}}}))}},{key:"debounce",value:function(e,t){var i=this;return function(){for(var s=arguments.length,n=new Array(s),o=0;o<s;o++)n[o]=arguments[o];i.timeoutDebounceId&&clearTimeout(i.timeoutDebounceId),i.timeoutDebounceId=setTimeout((function(){e.apply(void 0,n),i.timeoutDebounceId=null}),t)}}},{key:"confirmOkHandler",value:function(e){e.preventDefault(),this.confirmOkBuild()}},{key:"confirmOkBuild",value:function(){var e=this,t=this.$select.options;this.elemListBody&&(this.elemListBody.querySelectorAll("[data-sel-position]").forEach((function(i){var s=parseInt(i.dataset[(0,p.toCamelCase)("sel-position")],10);if(s||0===s){var n=t[s];if(n&&!n.disabled){var o="true"===i.dataset[(0,p.toCamelCase)("sel-opt-checked")];o!==n.selected&&e.addHistory(n,o),n.selected=o}}})),this.state.setState("isOpen",!1),this.triggerInit(),(0,p.triggerCustomEvent)(this.$select,"multiConfirm",{item:this}))}},{key:"confirmNoHandler",value:function(e){e.preventDefault(),this.state.setState("isOpen",!1),(0,p.triggerCustomEvent)(this.$select,"multiCancel",{item:this})}},{key:"closeHandler",value:function(e){e.preventDefault(),this.state.setState("isOpen",!1)}},{key:"selectAllHandler",value:function(e){e.preventDefault(),Array.from(this.$select.options).forEach((function(e){e.disabled||(e.selected=!0)})),this.createList(),this.options.selectAllAfterClose&&this.state.setState("isOpen",!1),this.triggerInit(),(0,p.triggerCustomEvent)(this.$select,"selectAll",{item:this})}},{key:"resetAllHandler",value:function(e){e.preventDefault(),Array.from(this.$select.options).forEach((function(e){e.disabled||(e.selected=!1)})),this.createList(),this.options.selectAllAfterClose&&this.state.setState("isOpen",!1),this.triggerInit(),(0,p.triggerCustomEvent)(this.$select,"resetAll",{item:this})}},{key:"triggerSetup",value:function(e){if(0===e.button){var t=e.target.closest("li");t&&this.changeClickItem(t)}}},{key:"changeClickItemDom",value:function(e){"true"===e.dataset[(0,p.toCamelCase)("sel-opt-checked")]?(e.dataset[(0,p.toCamelCase)("sel-opt-checked")]="false",e.classList.remove("SimpleSel__list_item--checked")):(e.dataset[(0,p.toCamelCase)("sel-opt-checked")]="true",e.classList.add("SimpleSel__list_item--checked"))}},{key:"addHistory",value:function(e,t){this.options.historyMaxSize>0&&(this.history.push({value:e.value,text:e.innerHTML,selected:t,indexOption:e.index}),this.history.length>this.options.historyMaxSize&&(this.history=this.history.slice(this.history.length-this.options.historyMaxSize)),(0,p.triggerCustomEvent)(this.$select,"updateHistory",{item:this,history:this.history}))}},{key:"changeClickItem",value:function(e){if(e){var t=Number(e.dataset[(0,p.toCamelCase)("sel-position")])||0,i=this.$select.options[t];if(i&&!i.disabled)if(this.isMulti)if(this.options.isConfirmInMulti||this.isFloatWidth)this.changeClickItemDom(e);else{var s=!i.selected;i.selected=s,this.addHistory(i,s),this.changeClickItemDom(e),this.createList(),this.multiDebounceChange()}else i.selected=!0,this.addHistory(i,!0),this.createList(),this.state.setState("isOpen",!1),this.triggerInit()}}},{key:"multiDebounceChange",value:function(){this.triggerInit()}},{key:"triggerInit",value:function(){(0,p.triggerInputEvent)(this.$select)}},{key:"clickToggleOpen",value:function(e){e.preventDefault(),this.isDisabled||("click"!==e.type?e instanceof KeyboardEvent&&"Enter"===e.key&&this.state.setState("isOpen",!this.state.getState("isOpen")):this.state.setState("isOpen",!this.state.getState("isOpen")))}},{key:"closeOutsideHandlerInit",value:function(e){var t=e.target;t&&(this.elemWrap.contains(t)||(this.options.isConfirmInMulti&&this.options.isConfirmInMultiOkClickOutside&&this.confirmOkBuild(),this.state.setState("isOpen",!1)))}},{key:"closeEscHandlerInit",value:function(e){"Escape"===e.code&&(e.preventDefault(),e.stopPropagation(),this.state.setState("isOpen",!1)),"Tab"===e.code&&(e.preventDefault(),e.stopPropagation(),this.elemWrap.contains(e.target)||this.state.setState("isOpen",!1)),"ArrowUp"!==e.key&&"ArrowDown"!==e.key||(e.preventDefault(),e.stopPropagation(),this.keyBoardChangeChecked("ArrowDown"===e.key))}},{key:"keyBoardChangeChecked",value:function(e){var t=this.elemListBody.querySelectorAll('[data-sel-position]:not([data-sel-opt-disabled="true"])');if(t.length){var i,s=0;t.forEach((function(e,t){document.activeElement===e&&(s=t,i=e),e.removeAttribute("tabindex")})),(i=i?e?t[s+1]||t[0]:t[s-1]||t[t.length-1]:e?t[0]:t[t.length-1]).tabIndex=0,i.focus()}}},{key:"searchHandlerInit",value:function(e){var t=e.target;if(t){var i=t.value;this.state.setState("filterStr",i)}}},{key:"toggleOpenHandler",value:function(){var e=this;this.state.getState("isOpen")?(this.elemWrap.classList.add("SimpleSel--open"),document.addEventListener("click",this.closeOutsideHandler),document.addEventListener("keyup",this.closeEscHandler),this.elemInputSearch&&setTimeout((function(){e.elemInputSearch.focus()}),50),this.options.callbackOpen&&this.options.callbackOpen(this),this.countOpen++,this.elemDropDown&&setTimeout((function(){e.elemDropDown.scrollTop=0}),10)):(this.state.setState("filterList",""),this.elemWrap.classList.remove("SimpleSel--open"),document.removeEventListener("click",this.closeOutsideHandler),document.removeEventListener("keyup",this.closeEscHandler),this.timeoutDebounceId&&(clearTimeout(this.timeoutDebounceId),this.triggerInit()),this.options.callbackClose&&this.countOpen>0&&this.options.callbackClose(this))}},{key:"changeListenerInit",value:function(e){this.options.callbackChangeSelect&&this.options.callbackChangeSelect(e,this),this.createList(!0)}},{key:"getSelect",value:function(){return this.$select}},{key:"handlerChangeChecked",value:function(){this.elemListBody&&(this.elemListBody.onmouseup=this.triggerSetup.bind(this))}},{key:"createList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[],i=this.$select.querySelectorAll("optgroup");if(i&&i.length?i.forEach((function(e,i){t.push((0,p.getCreateListItem)(e,(i+1).toString(),!0))})):t.push((0,p.getCreateListItem)(this.$select,"1",!1)),e){var s=this.state.getState("items");(0,p.compareObj)(s,t)||this.state.setState("items",t)}else this.state.setState("items",t)}},{key:"inputSearchHandler",value:function(){this.elemInputSearch&&this.elemInputSearch.addEventListener("input",this.searchHandler)}},{key:"detachItem",value:function(){this.options.callbackDestroyInit&&this.options.callbackDestroyInit(this);var e=this.elemWrap.parentNode;this.$select.removeEventListener("change",this.changeListener),this.elemInputSearch&&this.elemInputSearch.removeEventListener("input",this.searchHandler),this.confirmOk&&(this.confirmOk.onclick=null),this.confirmNo&&(this.confirmNo.onclick=null),e.replaceChild(this.$select,this.elemWrap),this.$select.classList.remove(this.classSelectInit),this.elemTopBody&&(this.elemTopBody.onclick=null,this.elemTopBody.onkeyup=null),this.elemListBody&&(this.elemListBody.onmouseup=null),this.elemSelectAll&&(this.elemSelectAll.onclick=null),this.elemResetAll&&(this.elemResetAll.onclick=null),this.options.callbackDestroy&&this.options.callbackDestroy(this),this.elemDropDownClose&&(this.elemDropDownClose.onclick=null),this.mql&&(this.mql.onchange=null,this.mql=null)}}],i&&n(t.prototype,i),s&&n(t,s),Object.defineProperty(t,"prototype",{writable:!1}),d}(i(844).SimpleSelectItemDOM);t.SimpleSelectItem=d},844:function(e,t,i){function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function n(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);"Object"===i&&e.constructor&&(i=e.constructor.name);if("Map"===i||"Set"===i)return Array.from(e);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function l(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,r(s.key),s)}}function a(e,t,i){return(t=r(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===s(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleSelectItemDOM=void 0;var c=i(679),h=i(972),u=i(737),p=function(){function e(t,i,s){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"options",void 0),a(this,"$select",void 0),a(this,"id",void 0),a(this,"titlePlaceholder",void 0),a(this,"isDisabled",!1),a(this,"isMulti",void 0),a(this,"state",(0,h.store)({items:[],isOpen:!1,filterStr:"",isFloat:!1})),a(this,"classSelectInit",(0,c.getClass)("select_init")),a(this,"isNative",void 0),a(this,"elemWrap",document.createElement("div")),a(this,"elemTop",document.createElement("div")),a(this,"elemTopBody",document.createElement("div")),a(this,"elemDropDownWrap",null),a(this,"elemDropDown",null),a(this,"elemDropDownClose",null),a(this,"elemListBody",null),a(this,"elemInputSearch",null),a(this,"elemTitle",void 0),a(this,"confirmWrap",null),a(this,"confirmOk",null),a(this,"confirmNo",null),a(this,"elemControl",null),a(this,"elemSelectAll",null),a(this,"elemResetAll",null),a(this,"cloneClasses",""),a(this,"isShowCheckbox",!1),a(this,"bodyLiHTMLBeforeFromSelect",null),a(this,"bodyLiHTMLAfterFromSelect",null),a(this,"isFloatWidth",!1),a(this,"bodyOpenClass","".concat(u.initClass,"--body_open"));var n=s.id,o=s.isNative;this.$select=t,this.isMulti=t.multiple,this.id=n,this.isNative=o,this.options=(0,c.cloneObj)(i),this.options.isCloneClass&&(this.cloneClasses=this.$select.className),i.callbackInitialization&&(this.options.callbackInitialization=i.callbackInitialization),i.callbackInitialized&&(this.options.callbackInitialized=i.callbackInitialized),i.callbackOpen&&(this.options.callbackOpen=i.callbackOpen),i.callbackClose&&(this.options.callbackClose=i.callbackClose),i.callbackDestroyInit&&(this.options.callbackDestroyInit=i.callbackDestroyInit),i.callbackDestroy&&(this.options.callbackDestroy=i.callbackDestroy),i.callbackChangeSelect&&(this.options.callbackChangeSelect=i.callbackChangeSelect),i.changeBodyLi&&(this.options.changeBodyLi=i.changeBodyLi),this.isMulti&&this.$select.hasAttribute("data-simple-is-confirm")&&(this.options.isConfirmInMulti=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-is-confirm"))),this.optionOverride(),this.isDisabled=this.$select.disabled}var t,i,s;return t=e,i=[{key:"optionOverride",value:function(){var e=(0,c.toCamelCase)("simple-placeholder");if(this.$select.dataset[e]?this.titlePlaceholder=this.$select.dataset[e]||"":this.titlePlaceholder=this.options.locale.title,this.$select.hasAttribute("data-simple-reset-all")&&(this.options.resetAll=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-reset-all"))),this.$select.hasAttribute("data-simple-select-all")){var t=this.$select.getAttribute("data-simple-select-all");this.options.selectAll=(0,c.ifTrueDataAttr)(t)}var i=this.$select.dataset[(0,c.toCamelCase)("simple-show-checkbox")];this.isMulti?this.isShowCheckbox=!(i&&!(0,c.ifTrueDataAttr)(i)):"true"===i&&(this.isShowCheckbox=!0);var s=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-before")];s&&(this.bodyLiHTMLBeforeFromSelect=s);var n=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-after")];if(n&&(this.bodyLiHTMLAfterFromSelect=n),this.$select.hasAttribute("data-simple-up")&&(this.options.isUp=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-up"))),this.$select.hasAttribute("data-simple-is-only-placeholder")&&(this.options.isOnlyPlaceholder=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-is-only-placeholder"))),this.$select.hasAttribute("data-simple-remove-top")&&(this.options.isRemoveTop=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-remove-top"))),this.$select.hasAttribute("data-simple-float-none")&&(this.isFloatWidth=!1,this.options.floatWidth=0),this.$select.hasAttribute("data-simple-float-width")){var o=Number(this.$select.dataset[(0,c.toCamelCase)("simple-float-width")]);o&&(this.options.floatWidth=o)}this.$select.hasAttribute("data-simple-always-open")&&(this.options.isAlwaysOpen=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-always-open")),this.isNative=!1,this.isFloatWidth=!1,this.options.floatWidth=0)}},{key:"initDom",value:function(){var e=this;this.createList(!1),this.createHTML(),this.state.subscribe("filterStr",(function(t){e.createListHTML(!0)})),this.state.subscribe("items",(function(t){e.createListHTML(!0),e.createTitleHTML()})),this.state.subscribe("isOpen",(function(t){e.createListHTML(!1),e.createTitleHTML(),e.toggleTabIndex(t)})),this.state.subscribe("isFloat",(function(t){e.isFloatWidth=t;var i=(0,c.getClass)("float",!0);t?(e.elemWrap.classList.add(i),!document.body.classList.contains(e.bodyOpenClass)&&e.state.getState("isOpen")&&document.body.classList.add(e.bodyOpenClass)):(e.elemWrap.classList.remove(i),document.body.classList.contains(e.bodyOpenClass)&&document.body.classList.remove(e.bodyOpenClass))}))}},{key:"toggleTabIndex",value:function(e){var t=e||this.options.isAlwaysOpen?0:-1;this.state.getState("isFloat")&&(e?document.body.classList.add(this.bodyOpenClass):document.body.classList.remove(this.bodyOpenClass)),this.elemInputSearch&&(this.elemInputSearch.tabIndex=t),this.elemResetAll&&(this.elemResetAll.tabIndex=t),this.elemSelectAll&&(this.elemSelectAll.tabIndex=t),this.confirmOk&&(this.confirmOk.tabIndex=t),this.confirmNo&&(this.confirmNo.tabIndex=t)}},{key:"updateHTML",value:function(){this.createList(!0)}},{key:"createHTML",value:function(){this.$select.classList.add(this.classSelectInit),this.$select.tabIndex=-1,this.elemTopBody.className=(0,c.getClass)("top_body"),this.elemTopBody.tabIndex=this.isDisabled?-1:0,this.createIcon(),this.options.isRemoveTop||this.elemTop.appendChild(this.elemTopBody);var e=u.initClass;this.options.isCloneClass&&(e+=" ".concat(this.cloneClasses)),this.$select.hasAttribute("data-simple-add-classes")&&(e+=" ".concat(this.$select.getAttribute("data-simple-add-classes"))),this.isDisabled&&(e+=" ".concat((0,c.getClass)("disabled",!0))),this.options.isAlwaysOpen&&(e+=" ".concat((0,c.getClass)("always_open",!0))),this.options.isUp&&(e+=" ".concat((0,c.getClass)("up",!0))),e+=" ".concat(this.isMulti?(0,c.getClass)("multi",!0):(0,c.getClass)("single",!0)),this.elemWrap.className=e,this.elemWrap.dataset.countAll=this.$select.options.length.toString(),this.elemTop.className=(0,c.getClass)("top");var t=this.$select.parentNode;t&&(t.replaceChild(this.elemWrap,this.$select),this.elemWrap.appendChild(this.$select)),this.elemWrap.appendChild(this.elemTop),this.isNative?(this.$select.classList.add((0,c.getClass)("native",!0,this.classSelectInit)),this.elemWrap.classList.add((0,c.getClass)("native",!0))):(this.createDropDown(),this.createControlHTML(),this.createInputHTML()),this.createTitleHTML()}},{key:"createControlHTML",value:function(){if(this.elemDropDown&&this.isMulti&&(this.options.selectAll||this.options.resetAll)){this.elemControl=document.createElement("div"),this.elemControl.classList.add((0,c.getClass)("controls")),this.elemDropDown.insertBefore(this.elemControl,this.elemDropDown.childNodes[0]);var e=(0,c.getClass)("control");this.options.selectAll&&(this.elemSelectAll=(0,c.createButton)(),this.elemSelectAll.className="".concat(e," ").concat((0,c.getClass)("select_all",!0,e)),this.elemSelectAll.innerHTML='<span class="'.concat((0,c.getClass)("select_all__icon"),'"></span> ').concat(this.options.locale.selectAll),this.elemControl.appendChild(this.elemSelectAll)),this.options.resetAll&&(this.elemResetAll=(0,c.createButton)(),this.elemResetAll.className="".concat(e," ").concat((0,c.getClass)("reset_all",!0,e)),this.elemResetAll.innerHTML='<span class="'.concat((0,c.getClass)("reset_all__icon"),'"></span> ').concat(this.options.locale.resetAll),this.elemControl.appendChild(this.elemResetAll))}}},{key:"createIcon",value:function(){var e=document.createElement("span");e.className=(0,c.getClass)("icon"),this.elemTopBody.appendChild(e)}},{key:"createDropDown",value:function(){this.isNative||(this.elemDropDownWrap=document.createElement("div"),this.elemDropDownWrap.className=(0,c.getClass)("body"),this.options.isAlwaysOpen&&this.elemDropDownWrap.classList.add((0,c.getClass)("body-always_open",!0)),this.elemDropDown=document.createElement("div"),this.elemDropDown.className=(0,c.getClass)("body_wrap"),this.elemListBody=document.createElement("ul"),this.elemListBody.className=(0,c.getClass)("list"),this.elemDropDownWrap.append(this.elemDropDown),this.elemWrap.appendChild(this.elemDropDownWrap),this.elemDropDown.appendChild(this.elemListBody),this.elemDropDownClose=(0,c.createButton)(),this.elemDropDownClose.classList.add((0,c.getClass)("close")),this.elemDropDown.appendChild(this.elemDropDownClose),this.isMulti&&this.createIsConfirmInMultiHTML(),this.handlerChangeChecked())}},{key:"createIsConfirmInMultiHTML",value:function(){var e;this.confirmWrap=document.createElement("div");var t=(0,c.getClass)("bottom_control");this.confirmOk=(0,c.createButton)(),this.confirmNo=(0,c.createButton)(),this.confirmWrap.appendChild(this.confirmOk),this.confirmWrap.appendChild(this.confirmNo),this.confirmOk.innerHTML=this.options.locale.ok,this.confirmNo.innerHTML=this.options.locale.cancel,this.confirmOk.className="".concat(t," ").concat((0,c.getClass)("ok",!0,t)),this.confirmNo.className="".concat(t," ").concat((0,c.getClass)("no",!0,t));var i=(0,c.getClass)("bottom_controls");this.options.isConfirmInMulti||(i+=" ".concat((0,c.getClass)("hide",!0,i))),this.confirmWrap.className=i,null===(e=this.elemDropDown)||void 0===e||e.appendChild(this.confirmWrap)}},{key:"createTitleHTML",value:function(){var e=this;if(!this.options.isRemoveTop){if(!this.elemTitle){this.elemTitle=document.createElement("div");var t=(0,c.getClass)("title");this.options.isOnlyPlaceholder&&(t+=" ".concat((0,c.getClass)("only-placeholder",!0,t))),this.elemTitle.className=t,this.elemTopBody.insertBefore(this.elemTitle,this.elemTopBody.childNodes[0])}var i=this.getChecked();this.elemTop.title="";var s=!i.length,n=this.titlePlaceholder;if(i.length&&!this.options.isOnlyPlaceholder){var o="";i.forEach((function(t,i){0!==i&&(o+="".concat(e.options.sepChars,'<span class="').concat((0,c.getClass)("sep_space",!0),'"> </span>')),o+="".concat(t.title)})),this.elemTop.title=o;var l=this.options.countShowSelected,a=Number(this.$select.dataset.simpleCountShowsSelected);a&&a>0&&(l=a),i.length>l?(n="".concat(this.options.locale.selected," ").concat(i.length),this.$select.querySelectorAll("option").length===i.length&&(n+=" (".concat(this.options.locale.all,")"))):o&&(n=o)}this.elemTitle.innerHTML=n,s?(this.elemTitle.classList.add("SimpleSel__title--placeholder"),this.elemTitle.classList.remove("SimpleSel__title--fill"),this.elemWrap.classList.remove((0,c.getClass)("fill",!0))):(this.elemTitle.classList.remove("SimpleSel__title--placeholder"),this.elemTitle.classList.add("SimpleSel__title--fill"),this.elemWrap.classList.add((0,c.getClass)("fill",!0)))}}},{key:"filterList",value:function(){var e=this.state.getState("filterStr"),t=this.state.getState("items");if(!e)return t;e=e.toLowerCase();var i=(0,c.cloneObj)(t);return i.forEach((function(t){var i=!1;t.items.forEach((function(t){t.title.toLowerCase().indexOf(e)>=0?(i=!0,t.isShowFilter=!0):t.isShowFilter=!1})),t.isShowFilter=i})),i}},{key:"createListHTML",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.elemListBody){var i="",s=0,n=0,o=0;(t?this.filterList():this.state.getState("items")).forEach((function(t){if(t.isGroup){var l=e.createLi(t),a=l.result,r=l.countShow,h=l.countChecked,u=l.countCheckedFull;i+='<div class="'.concat((0,c.getClass)("group_items"),'">'),i+=a,i+="</div>",n+=h,s+=r,o+=u}else{var p=e.createLi(t),d=p.result,m=p.countShow,f=p.countChecked,y=p.countCheckedFull;i+=d,s+=m,n+=f,o+=y}}));var l=this.state.getState("filterStr");l&&l.length&&0===s&&(i='<div class="'.concat((0,c.getClass)("no_match"),'">'),i="".concat(this.options.locale.noSearch,' "').concat(l,'"'),i+="</div>"),this.elemWrap.dataset.countChecked=n.toString(),this.elemWrap.dataset.countCheckedFull=o.toString(),this.isMulti&&(this.elemWrap.dataset.checkAllMulti=this.$select.options.length===n?"yes":"no"),i=(0,c.removeExtraSpaces)(i),(0,c.compareStringWithClearSpace)(this.elemListBody.innerHTML,i)||(this.elemListBody.innerHTML=i,(0,c.triggerCustomEvent)(this.$select,"createListBuild",{item:this}))}}},{key:"createInputHTML",value:function(){var e=this.options.isSearch,t=this.options.isSearchInDropdown;if("simpleSelectSearch"in this.$select.dataset&&(e="false"!==this.$select.dataset.simpleSelectSearch),"simpleSelectSearchDropdown"in this.$select.dataset&&(t="false"!==this.$select.dataset.simpleSelectSearchDropdown),e||t){this.elemInputSearch=document.createElement("input"),this.elemInputSearch.type=this.options.searchTypeInput,this.elemInputSearch.tabIndex=-1,this.elemInputSearch.autocomplete="off",this.elemInputSearch.ariaAutoComplete="none",this.elemInputSearch.inputMode="off",this.elemInputSearch.placeholder=this.options.locale.searchText,this.elemInputSearch.name="".concat(u.initClass,"_name_").concat(this.id);var i=(0,c.getClass)("search");if(t){if(this.elemDropDown){var s=document.createElement("div");s.className=(0,c.getClass)("search_wrap"),this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("dropdown",!0,i)),s.appendChild(this.elemInputSearch),this.elemDropDown.insertBefore(s,this.elemDropDown.childNodes[0])}}else this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("top",!0,i)),this.elemTop.appendChild(this.elemInputSearch);this.inputSearchHandler()}}},{key:"getChecked",value:function(){var e=this.state.getState("items"),t=[];return e.forEach((function(e){t=[].concat(n(t),n(e.items.filter((function(e){return e.checked}))))})),t}},{key:"createLi",value:function(e){var t=this,i="",s=0,n=0,o=0;return e.isShowFilter?(e.isGroup&&(i+='<label class="'.concat((0,c.getClass)("group_title"),'">').concat(e.titleGroup,"</label>"),i+='<ul class="'.concat((0,c.getClass)("group"),'">')),e.items.forEach((function(l){if(l.isShowFilter){s++;var a=(0,c.getClass)("list_item"),r=a;l.checked&&(n++,r+=" ".concat((0,c.getClass)("checked",!0,a)),l.value&&o++),l.disabled&&(r+=" ".concat((0,c.getClass)("disabled",!0,a))),l.value||(r+=" ".concat((0,c.getClass)("not_value",!0,a)));var h='data-sel-group-id="'.concat(e.idGroup,'"');h+="data-sel-opt-item",h+=' data-sel-position="'.concat(l.position,'"'),h+=' data-sel-id="'.concat(l.id,'"'),l.value&&(h+=' data-sel-value="'.concat(l.value,'"')),h+=' data-sel-opt-checked="'.concat(l.checked,'"'),h+=' data-sel-opt-disabled="'.concat(l.disabled,'"'),t.options.isAlwaysOpen?l.disabled&&!t.options.isAlwaysOpenShowDisabledTabindex?h+=' tabindex="-1"':h+=' tabindex="0"':h+=' tabindex="-1"',i+='<li class="'.concat(r,'" ').concat(h,">");var u=t.createLiBody(l,t.$select.options[l.position]);i+="string"==typeof u?u:u.outerHTML,i+="</li>"}})),e.isGroup&&(i+="</ul>"),{result:i,countShow:s,countChecked:n,countCheckedFull:o}):{result:i,countShow:s,countChecked:n,countCheckedFull:o}}},{key:"createLiBody",value:function(e,t){var i=document.createElement("div");i.className=(0,c.getClass)("list_item_body");var s="";return this.isShowCheckbox&&(s='<span class="'.concat((0,c.getClass)("list_item_icon"),'"></span>')),this.bodyLiHTMLBeforeFromSelect&&(s+=this.bodyLiHTMLBeforeFromSelect),t.hasAttribute("data-simple-html-before")&&(s+=t.getAttribute("data-simple-html-before")),s+="".concat(e.title),this.bodyLiHTMLAfterFromSelect&&(s+=this.bodyLiHTMLAfterFromSelect),t.hasAttribute("data-simple-html-after")&&(s+=t.getAttribute("data-simple-html-after")),i.innerHTML=s,this.options.changeBodyLi?this.options.changeBodyLi(i,t):i}},{key:"handlerChangeChecked",value:function(){console.error("This method need redefine")}},{key:"createList",value:function(e){console.error("This method need redefine")}},{key:"inputSearchHandler",value:function(){console.error("This method need redefine")}}],i&&l(t.prototype,i),s&&l(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.SimpleSelectItemDOM=p},679:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.createButton=t.cloneObj=t.compareObj=t.getClass=t.getCreateListItem=t.triggerInputEvent=t.triggerCustomEvent=t.ifTrueDataAttr=t.createDataAttr=t.compareStringWithClearSpace=t.clearSpaceAndEmptyAttr=t.removeExtraSpaces=t.toCamelCase=void 0;var s=i(737);t.toCamelCase=function(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))};t.removeExtraSpaces=function(e){return e.replace(/\s+/g," ").trim()};t.clearSpaceAndEmptyAttr=function(e){return e.replace(/\s+|=""/g,"")};t.compareStringWithClearSpace=function(e,i){return(0,t.clearSpaceAndEmptyAttr)(e)===(0,t.clearSpaceAndEmptyAttr)(i)};t.createDataAttr=function(e){return"data-".concat(e)};t.ifTrueDataAttr=function(e){return!!e&&("true"===e||"1"===e)},t.triggerCustomEvent=function(e,t,i){var s=new CustomEvent("simpSelect:".concat(t),{detail:i});e.dispatchEvent(s)},t.triggerInputEvent=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";try{var i=new Event(t,{bubbles:!0,cancelable:!0});e.dispatchEvent(i)}catch(i){var s=new CustomEvent(t,{bubbles:!0,cancelable:!0});e.dispatchEvent(s)}};t.getCreateListItem=function(e,t,i){var s=e.querySelectorAll("option"),n=[];s.forEach((function(e,t){n.push({id:(t+1).toString(),position:e.index,title:e.innerHTML,value:e.getAttribute("value"),checked:e.selected,disabled:e.disabled,isShowFilter:!0})}));var o={isGroup:i,idGroup:t,items:n,isShowFilter:!0};return e instanceof HTMLOptGroupElement&&(o.titleGroup=e.label||"",o.isDisabledGroup=e.disabled||!1),o};t.getClass=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.initClass,n=t?"--":"__";return"".concat(i).concat(n).concat(e)};t.compareObj=function(e,t){return JSON.stringify(e)===JSON.stringify(t)};t.cloneObj=function(e){return JSON.parse(JSON.stringify(e))};t.createButton=function(){var e=document.createElement("button");return e.type="button",e.tabIndex=-1,e}},972:function(e,t){function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function n(e,t,s){return(t=function(e){var t=function(e,t){if("object"!==i(e)||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var n=s.call(e,t||"default");if("object"!==i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===i(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}Object.defineProperty(t,"__esModule",{value:!0}),t.store=void 0,t.store=function(e){var t={},i={},o=[],l=function(e){return e?e in t?t[e]:null:t},a=function(e,l){var a=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?s(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):s(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({},t),r=t[e]||0==t[e]?t[e]:null;t[e]=l,e in i&&i[e].forEach((function(e){return e(l,r,t)})),o.forEach((function(i){return i(e,a,t)}))};return e&&Object.keys(e).forEach((function(t){a(t,e[t])})),{getState:l,setState:a,subscribe:function(e,t){e in i||(i[e]=[]),i[e].push(t);var s=l(e);return t(s,null,l()),function(){i[e]=i[e].filter((function(e){return e!==t}))}},subscribeAll:function(e){return o.push(e),e(null,null,l()),function(){o=o.filter((function(t){return t!==e}))}},unSubscribe:function(e,t){e in i&&(i[e]=i[e].filter((function(e){return e!==t})))}}}},181:function(e,t,i){i.r(t)}},t={};function i(s){var n=t[s];if(void 0!==n)return n.exports;var o=t[s]={exports:{}};return e[s](o,o.exports,i),o.exports}i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return function(){var e=s;function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}function n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?n(Object(i),!0).forEach((function(t){a(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):n(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function l(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,r(s.key),s)}}function a(e,t,i){return(t=r(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e){var i=function(e,i){if("object"!==t(e)||null===e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var n=s.call(e,i||"default");if("object"!==t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===i?String:Number)(e)}(e,"string");return"symbol"===t(i)?i:String(i)}var c=i(737),h=i(679),u=i(874);i(181);var p=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"callCount",Date.now()),a(this,"countInit",0),a(this,"$selects",[]),a(this,"options",void 0),a(this,"nameMarkTransform",(0,h.toCamelCase)(c.nameMark)),a(this,"dataNameMark",(0,h.createDataAttr)(c.nameMark)),a(this,"isNative",void 0),t||(t="select"),this.options=o(o({},c.simpleSelectionOptions),i),"string"==typeof t?this.init(Array.from(document.querySelectorAll(t))):t instanceof HTMLSelectElement?this.init([t]):t instanceof NodeList?this.init(Array.from(t)):Array.isArray(t)?this.init(t):console.warn("Wrong selector: ",t)}var t,i,s;return t=e,(i=[{key:"detectMobile",value:function(){if(this.options.detectNative)this.isNative=this.options.detectNative();else{for(var e=navigator.userAgent||navigator.vendor||window.opera,t=!1,i=0;i<this.options.nativeOnDevice.length;i++)e.toString().toLowerCase().indexOf(this.options.nativeOnDevice[i].toLowerCase())>0&&this.options.nativeOnDevice[i]&&(t=!0);this.isNative=t}}},{key:"init",value:function(e){var t=this;this.detectMobile(),e.forEach((function(e){t.build(e)}))}},{key:"createMethods",value:function(e){var t=this;return{getHistory:function(){return e.history},getHistoryLast:function(){return e.history.length?e.history[e.history.length-1]:null},getHistoryFirst:function(){return e.history.length?e.history[0]:null},getNativeSelect:function(){return e.getSelect()},reload:function(){t.rebuild(e)},update:function(){e.updateHTML()},detach:function(){t.detach(e)}}}},{key:"setMethods",value:function(e){e.$select[c.nameSelect]=this.createMethods(e)}},{key:"setMethodsClear",value:function(e){delete e.$select[c.nameSelect]}},{key:"build",value:function(e){if(this.nameMarkTransform in e.dataset)console.warn("This element has already been initialized",e);else{this.countInit+=1;var t="".concat(this.callCount,"-").concat(this.countInit);e.setAttribute(this.dataNameMark,t);var i=new u.SimpleSelectItem(e,this.options,{id:t,isNative:this.isNative});this.$selects.push(i),this.setMethods(i)}}},{key:"detach",value:function(e){e.detachItem(),e.$select.removeAttribute(this.dataNameMark),this.setMethodsClear(e),this.$selects=this.$selects.filter((function(t){return t!==e}))}},{key:"rebuild",value:function(e){var t=e.$select;this.detach(e),this.build(t)}},{key:"getSelects",value:function(){return this.$selects}},{key:"getSelectFirst",value:function(){return this.createMethods(this.$selects[0])}},{key:"getSelectById",value:function(e){var t=this.$selects.filter((function(t){return t.id===e}))[0];return t?this.createMethods(t):null}}])&&l(t.prototype,i),s&&l(t,s),Object.defineProperty(t,"prototype",{writable:!1}),e}();e.default=p}(),s=s.default}()}));
|
@@ -9,6 +9,7 @@ export declare class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
9
9
|
searchHandler: (e: Event) => void;
|
10
10
|
handleResize: (e: MediaQueryList | null) => void;
|
11
11
|
mql: MediaQueryList | null;
|
12
|
+
isInitialized: boolean;
|
12
13
|
countOpen: number;
|
13
14
|
multiDebounceTime: number;
|
14
15
|
timeoutDebounceId: NodeJS.Timeout | null;
|
package/dist/style.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--simpS_bg:#fff;--simpS_pad_hor:15px;--simpS_height_top:40px;--simpS_color:#27272a;--simpS_color_light:#eae9e9;--simpS_color_cheked:#d9d7d7;--simpS_color_yes:green;--simpS_color_no:red;--simpS_color_placeholder:#5d5c5c;--simpS_color_dis:#8b8b8b;--simpS_radius:4px;--simpS_f_size:16px;--simpS_f_shadow:0 0 3px 0 var(--simpS_color);--simpS_size_check:20px;--simpS_li_h:36px;--simpS_btn_h:34px;--simpS_btn_bg:#f9f9f9;--simpS_btn_bg_reverse:#eeecec}.SimpleSel{-webkit-box-sizing:border-box;box-sizing:border-box;color:#27272a;color:var(--simpS_color);font-size:16px;font-size:var(--simpS_f_size);position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SimpleSel--disabled{color:#8b8b8b;color:var(--simpS_color_dis);opacity:.8}.SimpleSel *,.SimpleSel :after,.SimpleSel :before{-webkit-box-sizing:border-box;box-sizing:border-box}.SimpleSel--float .SimpleSel__select_init{visibility:hidden}.SimpleSel__select_init{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;opacity:0;position:absolute;right:0;top:0;width:100%}.SimpleSel__select_init--native{z-index:5}.SimpleSel__bottom_control,.SimpleSel__control{-webkit-font-smoothing:inherit;-moz-osx-font-smoothing:inherit;-ms-flex-line-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-content:center;align-items:center;-webkit-appearance:none;background-color:#f9f9f9;background-color:var(--simpS_btn_bg);border:none;border-radius:0;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font:inherit;height:34px;height:var(--simpS_btn_h);justify-content:center;line-height:normal;margin:0;outline:none;overflow:visible;padding:1px 10px;text-align:center;width:auto}.SimpleSel__bottom_control:hover,.SimpleSel__control:hover{background-color:#eeecec;background-color:var(--simpS_btn_bg_reverse)}.SimpleSel__list_item_icon,.SimpleSel__reset_all__icon,.SimpleSel__select_all__icon{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:1px solid;border-radius:4px;border-radius:var(--simpS_radius);display:-webkit-box;display:-ms-flexbox;display:flex;height:20px;height:var(--simpS_size_check);justify-content:center;margin-right:7px;position:relative;width:20px;width:var(--simpS_size_check)}.SimpleSel__list_item_icon:before,.SimpleSel__select_all__icon:before{border:solid;border-width:0 2px 2px 0;content:"";display:block;height:11px;height:calc(var(--simpS_size_check)/2 + 1px);left:4px;top:1px;-webkit-transform:rotate(45deg) translate(-17%,-10%);transform:rotate(45deg) translate(-17%,-10%);-webkit-transition:all .25s;transition:all .25s;width:6.66667px;width:calc(var(--simpS_size_check)/3)}.SimpleSel__top{position:relative}.SimpleSel__top_body{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;background-color:#fff;background-color:var(--simpS_bg);border:2px solid;border-radius:4px;border-radius:var(--simpS_radius);color:currentColor;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;height:var(--simpS_height_top);justify-content:space-between;padding:5px 0 5px 15px;padding:5px 0 5px var(--simpS_pad_hor);position:relative}.SimpleSel--disabled .SimpleSel__top_body{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SimpleSel__top_body:focus-visible{-webkit-box-shadow:0 0 3px 0 #27272a;box-shadow:0 0 3px 0 #27272a;-webkit-box-shadow:var(--simpS_f_shadow);box-shadow:var(--simpS_f_shadow)}.SimpleSel__title{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.SimpleSel__icon{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;height:var(--simpS_height_top);justify-content:center;position:relative;width:40px;width:var(--simpS_height_top)}.SimpleSel__icon:after{border-bottom:2px solid;border-right:2px solid;content:"";display:inline;height:.5em;left:50%;position:absolute;top:calc(50% - 2px);-webkit-transform:rotate(45deg) translate(-50%,-50%);transform:rotate(45deg) translate(-50%,-50%);-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:transform .25s,top .25s;transition:transform .25s,top .25s;width:.5em}.SimpleSel--open .SimpleSel__icon:after{top:calc(50% + 2px);-webkit-transform:rotate(225deg) translate(-50%,-50%);transform:rotate(225deg) translate(-50%,-50%)}.SimpleSel--always_open .SimpleSel__icon{display:none}.SimpleSel--single[data-count-checked-full="0"] .SimpleSel__title,.SimpleSel__list_item--not_value,.SimpleSel__title--placeholder{color:#5d5c5c;color:var(--simpS_color_placeholder)}.SimpleSel__body{background-color:#fff;background-color:var(--simpS_bg);border:1px solid;border-radius:4px;border-radius:var(--simpS_radius);max-height:0;opacity:0;overflow:hidden;overflow-y:auto;position:absolute;-webkit-transition:all .25s;transition:all .25s;visibility:hidden;width:100%;z-index:3}.SimpleSel--body-always_open{max-height:none;opacity:1;position:relative;top:auto;visibility:visible}.SimpleSel:not(.SimpleSel--up) .SimpleSel--multi{margin-top:2px;top:100%}.SimpleSel--up:not(.SimpleSel--float) .SimpleSel__body{bottom:100%;margin-bottom:2px}.SimpleSel--open .SimpleSel__body{max-height:230px;opacity:1;visibility:visible}.SimpleSel__search_wrap{padding:5px 10px}.SimpleSel__search{border-radius:4px;border-radius:var(--simpS_radius);padding:2px 15px;padding:2px var(--simpS_pad_hor);width:100%}.SimpleSel__search--top{display:none;height:100%;left:0;opacity:0;position:absolute;top:0}.SimpleSel--open .SimpleSel__search--top{display:block;opacity:1}.SimpleSel__search--dropdown{border:none;border-bottom:1px solid;border-radius:0;height:34px;height:var(--simpS_btn_h)}.SimpleSel__controls{border-bottom:1px solid;display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel__control{-webkit-box-flex:1;-ms-flex:1;flex:1}.SimpleSel__control+.SimpleSel__control{border-left:1px solid}.SimpleSel__select_all__icon{border-color:green;border-color:var(--simpS_color_yes);border-radius:50%;color:#d9d7d7;color:var(--simpS_color_cheked)}.SimpleSel[data-count-checked-full="0"] .SimpleSel__select_all__icon{color:#eae9e9;color:var(--simpS_color_light)}.SimpleSel[data-check-all-multi=yes] .SimpleSel__select_all__icon{color:green;color:var(--simpS_color_yes)}.SimpleSel__reset_all__icon{border-radius:50%;color:red;color:var(--simpS_color_no);position:relative}.SimpleSel__reset_all__icon:after,.SimpleSel__reset_all__icon:before{background-color:currentColor;content:" ";height:60%;left:8px;left:calc(var(--simpS_f_size)/2);position:absolute;width:2px}.SimpleSel__reset_all__icon:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.SimpleSel__reset_all__icon:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.SimpleSel__bottom_controls{border-top:1px solid;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:5px;position:sticky}.SimpleSel__bottom_controls--hide{display:none}.SimpleSel--float .SimpleSel__bottom_controls--hide{display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel__bottom_control--hide{display:none}.SimpleSel__bottom_control{-webkit-box-flex:1;-ms-flex:1;flex:1}.SimpleSel__bottom_control--ok{text-transform:uppercase}.SimpleSel__bottom_control+.SimpleSel__bottom_control{border-left:1px solid}.SimpleSel__list{list-style-type:none;margin:0;padding:0}.SimpleSel__group_items:not(:first-child){margin-top:5px}.SimpleSel__group_title{background-color:#eae9e9;background-color:var(--simpS_color_light);display:block;font-size:1.02em;font-weight:700;margin-bottom:2px;padding:6px 10px}.SimpleSel__group{list-style-type:none;margin:0;padding:0}.SimpleSel__list_item{cursor:pointer}.SimpleSel__list_item:not(:last-child){border-bottom:1px solid #eae9e9;border-bottom:1px solid var(--simpS_color_light)}.SimpleSel__list_item--disabled{cursor:default;opacity:.5}.SimpleSel__list_item_body{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:36px;min-height:var(--simpS_li_h);padding:5px 15px;padding:5px var(--simpS_pad_hor)}@media (hover:hover){.SimpleSel__list_item:not(.SimpleSel__list_item--disabled) .SimpleSel__list_item_body:hover{background-color:#eae9e9;background-color:var(--simpS_color_light);cursor:pointer}}.SimpleSel--single .SimpleSel__list_item--checked{background-color:#d9d7d7;background-color:var(--simpS_color_cheked)}.SimpleSel__list_item:not(.SimpleSel__list_item--checked) .SimpleSel__list_item_icon:before{height:0;opacity:0;width:0}.SimpleSel__close{display:none}.SimpleSel--body_open{overflow:hidden;position:relative}.SimpleSel--float .SimpleSel__body{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:none;-ms-flex-direction:column;flex-direction:column;left:50%;max-height:90%;max-width:90%;overflow:hidden;overflow-y:auto;position:fixed;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.SimpleSel--open{z-index:7}.SimpleSel--float .SimpleSel__bottom_control--hide,.SimpleSel--float.SimpleSel--open .SimpleSel__body{display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel--float .SimpleSel__list{-webkit-box-flex:1;-ms-flex:1;flex:1}
|
1
|
+
:root{--simpS_bg:#fff;--simpS_pad_hor:15px;--simpS_height_top:40px;--simpS_color:#27272a;--simpS_color_light:#eae9e9;--simpS_color_cheked:#d9d7d7;--simpS_color_yes:green;--simpS_color_no:red;--simpS_color_placeholder:#5d5c5c;--simpS_color_dis:#8b8b8b;--simpS_radius:4px;--simpS_f_size:16px;--simpS_f_shadow:0 0 3px 0 var(--simpS_color);--simpS_size_check:20px;--simpS_li_h:36px;--simpS_btn_h:34px;--simpS_btn_bg:#f9f9f9;--simpS_btn_bg_reverse:#eeecec}.SimpleSel{-webkit-box-sizing:border-box;box-sizing:border-box;color:#27272a;color:var(--simpS_color);font-size:16px;font-size:var(--simpS_f_size);position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SimpleSel--disabled{color:#8b8b8b;color:var(--simpS_color_dis);opacity:.8}.SimpleSel *,.SimpleSel :after,.SimpleSel :before{-webkit-box-sizing:border-box;box-sizing:border-box}.SimpleSel--float .SimpleSel__select_init{visibility:hidden}.SimpleSel__select_init{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:0;height:100%;opacity:0;position:absolute;right:0;top:0;width:100%}.SimpleSel__select_init--native{z-index:5}.SimpleSel__bottom_control,.SimpleSel__control{-webkit-font-smoothing:inherit;-moz-osx-font-smoothing:inherit;-ms-flex-line-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-content:center;align-items:center;-webkit-appearance:none;background-color:#f9f9f9;background-color:var(--simpS_btn_bg);border:none;border-radius:0;color:inherit;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font:inherit;height:34px;height:var(--simpS_btn_h);justify-content:center;line-height:normal;margin:0;outline:none;overflow:visible;padding:1px 10px;text-align:center;width:auto}.SimpleSel__bottom_control:hover,.SimpleSel__control:hover{background-color:#eeecec;background-color:var(--simpS_btn_bg_reverse)}.SimpleSel__list_item_icon,.SimpleSel__reset_all__icon,.SimpleSel__select_all__icon{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:1px solid;border-radius:4px;border-radius:var(--simpS_radius);display:-webkit-box;display:-ms-flexbox;display:flex;height:20px;height:var(--simpS_size_check);justify-content:center;margin-right:7px;position:relative;width:20px;width:var(--simpS_size_check)}.SimpleSel__list_item_icon:before,.SimpleSel__select_all__icon:before{border:solid;border-width:0 2px 2px 0;content:"";display:block;height:11px;height:calc(var(--simpS_size_check)/2 + 1px);left:4px;top:1px;-webkit-transform:rotate(45deg) translate(-17%,-10%);transform:rotate(45deg) translate(-17%,-10%);-webkit-transition:all .25s;transition:all .25s;width:6.66667px;width:calc(var(--simpS_size_check)/3)}.SimpleSel__top{position:relative}.SimpleSel__top_body{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;align-items:center;background-color:#fff;background-color:var(--simpS_bg);border:2px solid;border-radius:4px;border-radius:var(--simpS_radius);color:currentColor;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;height:var(--simpS_height_top);justify-content:space-between;padding:5px 0 5px 15px;padding:5px 0 5px var(--simpS_pad_hor);position:relative}.SimpleSel--disabled .SimpleSel__top_body{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.SimpleSel__top_body:focus-visible{-webkit-box-shadow:0 0 3px 0 #27272a;box-shadow:0 0 3px 0 #27272a;-webkit-box-shadow:var(--simpS_f_shadow);box-shadow:var(--simpS_f_shadow)}.SimpleSel__title{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.SimpleSel__icon{-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;height:var(--simpS_height_top);justify-content:center;position:relative;width:40px;width:var(--simpS_height_top)}.SimpleSel__icon:after{border-bottom:2px solid;border-right:2px solid;content:"";display:inline;height:.5em;left:50%;position:absolute;top:calc(50% - 2px);-webkit-transform:rotate(45deg) translate(-50%,-50%);transform:rotate(45deg) translate(-50%,-50%);-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:transform .25s,top .25s;transition:transform .25s,top .25s;width:.5em}.SimpleSel--open .SimpleSel__icon:after{top:calc(50% + 2px);-webkit-transform:rotate(225deg) translate(-50%,-50%);transform:rotate(225deg) translate(-50%,-50%)}.SimpleSel--always_open .SimpleSel__icon{display:none}.SimpleSel--single[data-count-checked-full="0"] .SimpleSel__title,.SimpleSel__list_item--not_value,.SimpleSel__title--placeholder{color:#5d5c5c;color:var(--simpS_color_placeholder)}.SimpleSel__body{background-color:#fff;background-color:var(--simpS_bg);border:1px solid;border-radius:4px;border-radius:var(--simpS_radius);max-height:0;opacity:0;overflow:hidden;overflow-y:auto;position:absolute;-webkit-transition:all .25s;transition:all .25s;visibility:hidden;width:100%;z-index:3}.SimpleSel--body-always_open{max-height:none;opacity:1;position:relative;top:auto;visibility:visible}.SimpleSel:not(.SimpleSel--up) .SimpleSel--multi{margin-top:2px;top:100%}.SimpleSel--up:not(.SimpleSel--float) .SimpleSel__body{bottom:100%;margin-bottom:2px}.SimpleSel--open .SimpleSel__body{max-height:230px;opacity:1;visibility:visible}.SimpleSel__search_wrap{padding:5px 10px}.SimpleSel__search{border-radius:4px;border-radius:var(--simpS_radius);padding:2px 15px;padding:2px var(--simpS_pad_hor);width:100%}.SimpleSel__search--top{display:none;height:100%;left:0;opacity:0;position:absolute;top:0}.SimpleSel--open .SimpleSel__search--top{display:block;opacity:1}.SimpleSel__search--dropdown{border:none;border-bottom:1px solid;border-radius:0;height:34px;height:var(--simpS_btn_h)}.SimpleSel__controls{border-bottom:1px solid;display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel__control{-webkit-box-flex:1;-ms-flex:1;flex:1}.SimpleSel__control+.SimpleSel__control{border-left:1px solid}.SimpleSel__select_all__icon{border-color:green;border-color:var(--simpS_color_yes);border-radius:50%;color:#d9d7d7;color:var(--simpS_color_cheked)}.SimpleSel[data-count-checked-full="0"] .SimpleSel__select_all__icon{color:#eae9e9;color:var(--simpS_color_light)}.SimpleSel[data-check-all-multi=yes] .SimpleSel__select_all__icon{color:green;color:var(--simpS_color_yes)}.SimpleSel__reset_all__icon{border-radius:50%;color:red;color:var(--simpS_color_no);position:relative}.SimpleSel__reset_all__icon:after,.SimpleSel__reset_all__icon:before{background-color:currentColor;content:" ";height:60%;left:8px;left:calc(var(--simpS_f_size)/2);position:absolute;width:2px}.SimpleSel__reset_all__icon:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.SimpleSel__reset_all__icon:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.SimpleSel__bottom_controls{border-top:1px solid;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:5px;position:sticky}.SimpleSel__bottom_controls--hide{display:none}.SimpleSel--float .SimpleSel__bottom_controls--hide{display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel__bottom_control--hide{display:none}.SimpleSel__bottom_control{-webkit-box-flex:1;-ms-flex:1;flex:1}.SimpleSel__bottom_control--ok{text-transform:uppercase}.SimpleSel__bottom_control+.SimpleSel__bottom_control{border-left:1px solid}.SimpleSel__list{list-style-type:none;margin:0;padding:0}.SimpleSel__group_items:not(:first-child){margin-top:5px}.SimpleSel__group_title{background-color:#eae9e9;background-color:var(--simpS_color_light);display:block;font-size:1.02em;font-weight:700;margin-bottom:2px;padding:6px 10px}.SimpleSel__group{list-style-type:none;margin:0;padding:0}.SimpleSel__list_item{cursor:pointer}.SimpleSel__list_item:not(:last-child){border-bottom:1px solid #eae9e9;border-bottom:1px solid var(--simpS_color_light)}.SimpleSel__list_item--disabled{cursor:default;opacity:.5}.SimpleSel__list_item_body{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:36px;min-height:var(--simpS_li_h);padding:5px 15px;padding:5px var(--simpS_pad_hor)}@media (hover:hover){.SimpleSel__list_item:not(.SimpleSel__list_item--disabled) .SimpleSel__list_item_body:hover{background-color:#eae9e9;background-color:var(--simpS_color_light);cursor:pointer}}.SimpleSel--single .SimpleSel__list_item--checked{background-color:#d9d7d7;background-color:var(--simpS_color_cheked)}.SimpleSel__list_item:not(.SimpleSel__list_item--checked) .SimpleSel__list_item_icon:before{height:0;opacity:0;width:0}.SimpleSel__close{display:none}.SimpleSel--body_open{overflow:hidden;position:relative}.SimpleSel--float .SimpleSel__body{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:none;-ms-flex-direction:column;flex-direction:column;left:50%;max-height:90%;max-width:90%;overflow:hidden;overflow-y:auto;position:fixed;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.SimpleSel--open{z-index:7}.SimpleSel--float .SimpleSel__bottom_control--hide,.SimpleSel--float.SimpleSel--open .SimpleSel__body{display:-webkit-box;display:-ms-flexbox;display:flex}.SimpleSel--float .SimpleSel__list{-webkit-box-flex:1;-ms-flex:1;flex:1}
|
@@ -1,11 +1,21 @@
|
|
1
1
|
import { IOptionItems } from '../types/item.types';
|
2
|
+
import { SimpleSelectItemDOM } from '../simpleSelectItemDOM';
|
2
3
|
export declare const toCamelCase: (input: string) => string;
|
3
4
|
export declare const removeExtraSpaces: (str: string) => string;
|
5
|
+
export declare const clearSpaceAndEmptyAttr: (str: string) => string;
|
6
|
+
export declare const compareStringWithClearSpace: (str1: string, str2: string) => boolean;
|
4
7
|
export declare const createDataAttr: (name: string) => string;
|
5
8
|
export declare const ifTrueDataAttr: (attr: string | null) => boolean;
|
9
|
+
type triggerCustomEventType = 'open.before' | 'open.after' | 'close.before' | 'close.after' | 'createListBuild' | 'resetAll' | 'selectAll' | 'multiConfirm' | 'multiCancel' | 'updateHistory';
|
10
|
+
type triggerCustomEventDataType = {
|
11
|
+
item: SimpleSelectItemDOM;
|
12
|
+
[key: string]: any;
|
13
|
+
};
|
14
|
+
export declare function triggerCustomEvent(element: HTMLElement, type: triggerCustomEventType, data: triggerCustomEventDataType): void;
|
6
15
|
export declare function triggerInputEvent(element: HTMLElement, type?: string): void;
|
7
16
|
export declare const getCreateListItem: (item: HTMLSelectElement | HTMLOptGroupElement, idGroup: string, isGroup: boolean) => IOptionItems;
|
8
17
|
export declare const getClass: (cls: string, mod?: boolean, classInit?: string) => string;
|
9
18
|
export declare const compareObj: <T1, T2>(obj1: T1, obj2: T2) => boolean;
|
10
19
|
export declare const cloneObj: <T>(obj: T) => T;
|
11
20
|
export declare const createButton: () => HTMLButtonElement;
|
21
|
+
export {};
|
package/docs/index.html
CHANGED
@@ -1310,6 +1310,114 @@
|
|
1310
1310
|
</div>
|
1311
1311
|
|
1312
1312
|
|
1313
|
+
|
1314
|
+
|
1315
|
+
<div class="container">
|
1316
|
+
<details>
|
1317
|
+
<summary class="description">Custom Dom Events</summary>
|
1318
|
+
<pre class="code"><code class="language-html" id="code_24">
|
1319
|
+
window.addEventListener('load', () => {
|
1320
|
+
new SimpleSelect('#example_24_select', {
|
1321
|
+
isUp: true
|
1322
|
+
})
|
1323
|
+
const $customEvents = document.getElementById('example_24_select');
|
1324
|
+
$customEvents.addEventListener('change', (e) => {
|
1325
|
+
console.log('change', e);
|
1326
|
+
});
|
1327
|
+
$customEvents.addEventListener('simpSelect:createListBuild', (e) => {
|
1328
|
+
console.log('createListBuild', e);
|
1329
|
+
});
|
1330
|
+
$customEvents.addEventListener('simpSelect:open.before', (e) => {
|
1331
|
+
console.log('open.before', e);
|
1332
|
+
});
|
1333
|
+
$customEvents.addEventListener('simpSelect:open.after', (e) => {
|
1334
|
+
console.log('open.after', e);
|
1335
|
+
});
|
1336
|
+
$customEvents.addEventListener('simpSelect:close.before', (e) => {
|
1337
|
+
console.log('close.before', e);
|
1338
|
+
});
|
1339
|
+
$customEvents.addEventListener('simpSelect:close.after', (e) => {
|
1340
|
+
console.log('close.after', e);
|
1341
|
+
});
|
1342
|
+
$customEvents.addEventListener('simpSelect:selectAll', (e) => {
|
1343
|
+
console.log('selectAll', e);
|
1344
|
+
});
|
1345
|
+
$customEvents.addEventListener('simpSelect:resetAll', (e) => {
|
1346
|
+
console.log('resetAll', e);
|
1347
|
+
});
|
1348
|
+
$customEvents.addEventListener('simpSelect:updateHistory', (e) => {
|
1349
|
+
console.log('updateHistory', e);
|
1350
|
+
});
|
1351
|
+
})
|
1352
|
+
</code></pre>
|
1353
|
+
</details>
|
1354
|
+
|
1355
|
+
<div class="items">
|
1356
|
+
<div class="item" id="example_24">
|
1357
|
+
<select
|
1358
|
+
multiple
|
1359
|
+
data-simple-reset-all="true"
|
1360
|
+
data-simple-select-all="true"
|
1361
|
+
data-simple-is-confirm="true"
|
1362
|
+
data-simple-placeholder="Custom Dom Events"
|
1363
|
+
id="example_24_select"
|
1364
|
+
>
|
1365
|
+
<option value="Item 1">Item 1</option>
|
1366
|
+
<option value="Item 2">Item 2</option>
|
1367
|
+
<option value="Item 3">Item 3</option>
|
1368
|
+
<option value="Item 4">Item 4</option>
|
1369
|
+
<option value="Item 5">Item 5</option>
|
1370
|
+
<option value="Item 6">Item 6</option>
|
1371
|
+
</select>
|
1372
|
+
<script>
|
1373
|
+
window.addEventListener('load', () => {
|
1374
|
+
new SimpleSelect('#example_24_select', {
|
1375
|
+
isUp: true
|
1376
|
+
})
|
1377
|
+
const $customEvents = document.getElementById('example_24_select');
|
1378
|
+
$customEvents.addEventListener('change', (e) => {
|
1379
|
+
console.log('change', e);
|
1380
|
+
});
|
1381
|
+
$customEvents.addEventListener('simpSelect:createListBuild', (e) => {
|
1382
|
+
console.log('createListBuild', e);
|
1383
|
+
});
|
1384
|
+
$customEvents.addEventListener('simpSelect:open.before', (e) => {
|
1385
|
+
console.log('open.before', e);
|
1386
|
+
});
|
1387
|
+
$customEvents.addEventListener('simpSelect:open.after', (e) => {
|
1388
|
+
console.log('open.after', e);
|
1389
|
+
});
|
1390
|
+
$customEvents.addEventListener('simpSelect:close.before', (e) => {
|
1391
|
+
console.log('close.before', e);
|
1392
|
+
});
|
1393
|
+
$customEvents.addEventListener('simpSelect:close.after', (e) => {
|
1394
|
+
console.log('close.after', e);
|
1395
|
+
});
|
1396
|
+
$customEvents.addEventListener('simpSelect:selectAll', (e) => {
|
1397
|
+
console.log('selectAll', e);
|
1398
|
+
});
|
1399
|
+
$customEvents.addEventListener('simpSelect:resetAll', (e) => {
|
1400
|
+
console.log('resetAll', e);
|
1401
|
+
});
|
1402
|
+
$customEvents.addEventListener('simpSelect:updateHistory', (e) => {
|
1403
|
+
console.log('updateHistory', e);
|
1404
|
+
});
|
1405
|
+
})
|
1406
|
+
</script>
|
1407
|
+
</div>
|
1408
|
+
|
1409
|
+
<script>
|
1410
|
+
pasteCode({
|
1411
|
+
codeId: 'code_17',
|
1412
|
+
firstId: 'example_17_1',
|
1413
|
+
secondId: 'example_17_2',
|
1414
|
+
lineBreakText: 'OR'
|
1415
|
+
});
|
1416
|
+
</script>
|
1417
|
+
</div>
|
1418
|
+
</div>
|
1419
|
+
|
1420
|
+
|
1313
1421
|
<!--
|
1314
1422
|
|
1315
1423
|
<div class="container">
|
@@ -1364,4 +1472,4 @@
|
|
1364
1472
|
|
1365
1473
|
|
1366
1474
|
</body>
|
1367
|
-
</html>
|
1475
|
+
</html>
|
package/package.json
CHANGED
package/src/demo/index.html
CHANGED
@@ -168,6 +168,21 @@
|
|
168
168
|
<option>Опция 5.2</option>
|
169
169
|
</select>
|
170
170
|
</div>
|
171
|
+
<div class="item">
|
172
|
+
<select
|
173
|
+
multiple
|
174
|
+
data-simple-reset-all="true"
|
175
|
+
data-simple-select-all="true"
|
176
|
+
data-simple-is-confirm="true"
|
177
|
+
data-simple-placeholder="Custom events"
|
178
|
+
id="customEvents"
|
179
|
+
>
|
180
|
+
<option value="custom-events-1">none events 1</option>
|
181
|
+
<option value="custom-events-2">none events 2</option>
|
182
|
+
<option value="custom-events-3">none events 2</option>
|
183
|
+
<option value="custom-events-4">none events 2</option>
|
184
|
+
</select>
|
185
|
+
</div>
|
171
186
|
|
172
187
|
</div>
|
173
188
|
|
@@ -285,6 +300,34 @@
|
|
285
300
|
-->
|
286
301
|
|
287
302
|
<script>
|
303
|
+
const $customEvents = document.getElementById('customEvents');
|
304
|
+
$customEvents.addEventListener('change', (e) => {
|
305
|
+
console.log('change', e);
|
306
|
+
});
|
307
|
+
$customEvents.addEventListener('simpSelect:createListBuild', (e) => {
|
308
|
+
console.log('createListBuild', e);
|
309
|
+
});
|
310
|
+
$customEvents.addEventListener('simpSelect:open.before', (e) => {
|
311
|
+
console.log('open.before', e);
|
312
|
+
});
|
313
|
+
$customEvents.addEventListener('simpSelect:open.after', (e) => {
|
314
|
+
console.log('open.after', e);
|
315
|
+
});
|
316
|
+
$customEvents.addEventListener('simpSelect:close.before', (e) => {
|
317
|
+
console.log('close.before', e);
|
318
|
+
});
|
319
|
+
$customEvents.addEventListener('simpSelect:close.after', (e) => {
|
320
|
+
console.log('close.after', e);
|
321
|
+
});
|
322
|
+
$customEvents.addEventListener('simpSelect:selectAll', (e) => {
|
323
|
+
console.log('selectAll', e);
|
324
|
+
});
|
325
|
+
$customEvents.addEventListener('simpSelect:resetAll', (e) => {
|
326
|
+
console.log('resetAll', e);
|
327
|
+
});
|
328
|
+
$customEvents.addEventListener('simpSelect:updateHistory', (e) => {
|
329
|
+
console.log('updateHistory', e);
|
330
|
+
});
|
288
331
|
|
289
332
|
const sel = new SimpleSelect('select', {
|
290
333
|
// callbackOpen: (item) => {
|
@@ -372,4 +415,4 @@
|
|
372
415
|
|
373
416
|
|
374
417
|
</body>
|
375
|
-
</html>
|
418
|
+
</html>
|
package/src/simpleSelectItem.ts
CHANGED
@@ -3,7 +3,7 @@ import { IHistoryItem, IOptionItems } from './types/item.types';
|
|
3
3
|
import {
|
4
4
|
compareObj,
|
5
5
|
getCreateListItem,
|
6
|
-
toCamelCase,
|
6
|
+
toCamelCase, triggerCustomEvent,
|
7
7
|
triggerInputEvent,
|
8
8
|
} from './utils/simpleSelection.utils';
|
9
9
|
import { SimpleSelectItemDOM } from './simpleSelectItemDOM';
|
@@ -21,6 +21,8 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
21
21
|
|
22
22
|
mql: MediaQueryList | null = null;
|
23
23
|
|
24
|
+
isInitialized = false;
|
25
|
+
|
24
26
|
countOpen = 0;
|
25
27
|
|
26
28
|
multiDebounceTime = 0;
|
@@ -38,6 +40,10 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
38
40
|
this.init();
|
39
41
|
super.initDom();
|
40
42
|
this.initAfterDom();
|
43
|
+
|
44
|
+
setTimeout(() => {
|
45
|
+
this.isInitialized = true;
|
46
|
+
}, 10);
|
41
47
|
}
|
42
48
|
|
43
49
|
init() {
|
@@ -64,6 +70,11 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
64
70
|
}
|
65
71
|
|
66
72
|
this.state.subscribe('isOpen', (val: IOptionItems[]) => {
|
73
|
+
if (this.isInitialized) {
|
74
|
+
triggerCustomEvent(this.$select, `${val ? 'open' : 'close'}.before`, {
|
75
|
+
item: this,
|
76
|
+
});
|
77
|
+
}
|
67
78
|
this.toggleOpenHandler();
|
68
79
|
if (!val && this.options.isConfirmInMulti) {
|
69
80
|
this.createList();
|
@@ -74,6 +85,12 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
74
85
|
this.state.setState('filterStr', '');
|
75
86
|
}
|
76
87
|
}
|
88
|
+
|
89
|
+
if (this.isInitialized) {
|
90
|
+
triggerCustomEvent(this.$select, `${val ? 'open' : 'close'}.after`, {
|
91
|
+
item: this,
|
92
|
+
});
|
93
|
+
}
|
77
94
|
});
|
78
95
|
|
79
96
|
// this.state.subscribe('filterStr', (val: string) => {
|
@@ -200,11 +217,14 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
200
217
|
});
|
201
218
|
this.state.setState('isOpen', false);
|
202
219
|
this.triggerInit();
|
220
|
+
triggerCustomEvent(this.$select, 'multiConfirm', { item: this });
|
203
221
|
}
|
204
222
|
|
205
223
|
confirmNoHandler(e:MouseEvent) {
|
206
224
|
e.preventDefault();
|
207
225
|
this.state.setState('isOpen', false);
|
226
|
+
|
227
|
+
triggerCustomEvent(this.$select, 'multiCancel', { item: this });
|
208
228
|
}
|
209
229
|
|
210
230
|
closeHandler(e:MouseEvent) {
|
@@ -225,6 +245,7 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
225
245
|
this.state.setState('isOpen', false);
|
226
246
|
}
|
227
247
|
this.triggerInit();
|
248
|
+
triggerCustomEvent(this.$select, 'selectAll', { item: this });
|
228
249
|
}
|
229
250
|
|
230
251
|
resetAllHandler(e:MouseEvent) {
|
@@ -240,6 +261,7 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
240
261
|
this.state.setState('isOpen', false);
|
241
262
|
}
|
242
263
|
this.triggerInit();
|
264
|
+
triggerCustomEvent(this.$select, 'resetAll', { item: this });
|
243
265
|
}
|
244
266
|
|
245
267
|
// click for LI
|
@@ -273,6 +295,7 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
|
|
273
295
|
if (this.history.length > this.options.historyMaxSize) {
|
274
296
|
this.history = this.history.slice(this.history.length - this.options.historyMaxSize);
|
275
297
|
}
|
298
|
+
triggerCustomEvent(this.$select, 'updateHistory', { item: this, history: this.history });
|
276
299
|
}
|
277
300
|
}
|
278
301
|
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import { IItemLocalOptions, ISimpleSelectOptions } from './types/simpleSelect.types';
|
2
2
|
import {
|
3
|
-
cloneObj,
|
3
|
+
cloneObj,
|
4
|
+
compareStringWithClearSpace,
|
5
|
+
createButton,
|
6
|
+
getClass,
|
7
|
+
ifTrueDataAttr,
|
8
|
+
removeExtraSpaces,
|
9
|
+
toCamelCase,
|
10
|
+
triggerCustomEvent,
|
4
11
|
} from './utils/simpleSelection.utils';
|
5
12
|
import { ICreateLiReturn, IOptionItem, IOptionItems } from './types/item.types';
|
6
13
|
import { store } from './utils/store';
|
@@ -545,8 +552,12 @@ export class SimpleSelectItemDOM {
|
|
545
552
|
}
|
546
553
|
|
547
554
|
resBodyList = removeExtraSpaces(resBodyList);
|
548
|
-
|
555
|
+
|
556
|
+
if (!compareStringWithClearSpace(this.elemListBody.innerHTML, resBodyList)) {
|
549
557
|
this.elemListBody.innerHTML = resBodyList;
|
558
|
+
triggerCustomEvent(this.$select, 'createListBuild', {
|
559
|
+
item: this,
|
560
|
+
});
|
550
561
|
}
|
551
562
|
}
|
552
563
|
|
@@ -1,9 +1,14 @@
|
|
1
1
|
import { IOptionItem, IOptionItems } from '../types/item.types';
|
2
2
|
import { initClass } from '../const/simpleSelection.const';
|
3
|
+
import { SimpleSelectItemDOM } from '../simpleSelectItemDOM';
|
3
4
|
|
4
5
|
export const toCamelCase = (input:string):string => input.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
5
6
|
|
6
7
|
export const removeExtraSpaces = (str:string):string => str.replace(/\s+/g, ' ').trim();
|
8
|
+
export const clearSpaceAndEmptyAttr = (str:string):string => str.replace(/\s+|=""/g, '');
|
9
|
+
|
10
|
+
// eslint-disable-next-line max-len
|
11
|
+
export const compareStringWithClearSpace = (str1:string, str2:string):boolean => clearSpaceAndEmptyAttr(str1) === clearSpaceAndEmptyAttr(str2);
|
7
12
|
|
8
13
|
export const createDataAttr = (name: string):string => `data-${name}`;
|
9
14
|
|
@@ -14,6 +19,19 @@ export const ifTrueDataAttr = (attr: string | null): boolean => {
|
|
14
19
|
return attr === 'true' || attr === '1';
|
15
20
|
};
|
16
21
|
|
22
|
+
type triggerCustomEventType = 'open.before' | 'open.after' | 'close.before' | 'close.after' | 'createListBuild'
|
23
|
+
| 'resetAll' | 'selectAll' | 'multiConfirm' | 'multiCancel' | 'updateHistory';
|
24
|
+
type triggerCustomEventDataType = {
|
25
|
+
item: SimpleSelectItemDOM,
|
26
|
+
[key: string]: any
|
27
|
+
};
|
28
|
+
export function triggerCustomEvent(element: HTMLElement, type: triggerCustomEventType, data: triggerCustomEventDataType) {
|
29
|
+
const myCustomEvent = new CustomEvent(`simpSelect:${type}`, {
|
30
|
+
detail: data,
|
31
|
+
});
|
32
|
+
element.dispatchEvent(myCustomEvent);
|
33
|
+
}
|
34
|
+
|
17
35
|
export function triggerInputEvent(element: HTMLElement, type = 'change') {
|
18
36
|
try {
|
19
37
|
const event = new Event(type, {
|