simp-select 1.0.5 → 1.0.6

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/.eslintignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /dist
2
2
  webpack.config.js
3
3
  store.ts
4
- postcss.config.js
4
+ postcss.config.js
5
+ src/polyfill.js
package/README.md ADDED
@@ -0,0 +1,107 @@
1
+ # simp-select
2
+
3
+ Replacing native select, multiselect
4
+
5
+ ## Features
6
+ - ~38 KB
7
+ - no dependencies
8
+ - select, multiselect
9
+ - Optgroup
10
+ - Search
11
+ - Mobile native select (setting)
12
+ -
13
+
14
+ ## Installation
15
+ ```
16
+ npm install simp-select --save
17
+ ```
18
+ Or you can load it via a script tag as follows:
19
+ ```
20
+ <script src="https://unpkg.com/simp-select@1.0.6/dist/simpleSelect.js" />
21
+ Or get last version
22
+ <script src="https://unpkg.com/simp-select" />
23
+ ```
24
+ ## Importing
25
+ ### ES6
26
+ ```
27
+ import SimpSelect from 'simp-select';
28
+ Types
29
+ import { ISimpleSelectProps, ISimpleSelectLocale } from 'simp-select/dist/types/simpleSelect.types';
30
+ ```
31
+ ### CommonJS
32
+ ```
33
+ var SimpSelect = require('simp-select');
34
+ ```
35
+ ### Global variable
36
+ the variable `SimpSelect` attached to `window` or `this` depending on what environment you are using
37
+
38
+ ## API
39
+ #### `new ScrollToVertical(selector, <options>)`
40
+
41
+ | Property | Value |
42
+ |-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
43
+ | **selector**(required) | string(css selector), HTMLSelectElement, HTMLSelectElement(Array, HTMLSelectElement) |
44
+ | **OPTIONS:** | |
45
+ | **countShowSelected**:number* | <p>default: **3** </p> Show count selected options. If more then this count, showed template: Selected: 4<p>Or - `data-simple-count-shows-selected="3"` - in select</p> |
46
+ | **isSearch**:boolean* | <p>default: **false** </p> Show input for filter items <p>Or - `data-simple-select-search="true"` - in select</p> |
47
+ | **isSearchInDropdown**:boolean* | <p>default: **false** </p> Show search input inside dropdown <p>Or - `data-simple-select-search-dropdown="true"` - in select</p> |
48
+ | **isConfirmInMulti**:boolean* | <p>default: **false** </p> Show buttons `OK` and `Cansel`. Only Multiselect <p>Or `data-simple-is-confirm="true" - in select`</> |
49
+ | **isConfirmInMultiOkClickOutside**:boolean | <p>default: **false** </p> Click outside like click by button `OK`. Only if `isConfirmInMulti=true` |
50
+ | **nativeOnDevice**:string[] | <p>default: **'Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'** </p> The system default select list is rendered on the matched device(Check useragent ). |
51
+ | **debounceTime**:number* | <p>default: **0** </p> The change event will not be triggered immediately, but after a specified amount of time. <p>Or `data-simple-debounce-time="1000"` in select</p> |
52
+ | **floatWidth**:number* | <p>default: **767** </p> Minimum screen width of device below which the dropdown is rendered like popup. <p>Or `data-simple-float-width="500" in select`</p> |
53
+ | **sepChars**:string | <p>default: **,** </p> Separator for selected element. Show |
54
+ | **selectAll**:boolean* | <p>default: **false**</p> Show button - `Select all` <p>Or `data-simple-select-all="true"` in select</p> |
55
+ | **selectAllAfterClose**:boolean | <p>default: **false**</p> Close dropdown after click for `select all` |
56
+ | **resetAll**:boolean* | <p>default: **false**</p> Show button - `Reset all` <p>Or `data-simple-reset-all="true"` in select</p> |
57
+ | **resetAllAfterClose**:boolean | <p>default: **true**</p> Close dropdown after click for `Reset all` |
58
+ | **isCloneClass**:boolean | <p>default: **true**</p> Clone class from native select to wrapper created select |
59
+ | **isUp**:boolean* | <p>default: **false**</p> Dropdown rendering the direction in which to open the dropdown (default: false) <p>Or `data-simple-up="true"` in select</p> |
60
+ | **detectNative**:function | <p>default: **none**</p> Return `true` if need rendering native select |
61
+ | **changeBodyLi**:function | <p>default: **none**</p> Custom <li>(body) item renderer |
62
+ | **locale**:{key: string} | <p>default: **simpleSelectLocale** **</p> Object of locales. ** |
63
+ | ***Options only DOM elements*** | |
64
+ | **data-simple-placeholder="text": Select** | Replace default placeholder (locale.title) |
65
+ | **data-simple-item-html-before="<div>before</div>: Select** | Add HTML before content (for item Li) |
66
+ | **data-simple-item-html-after="<div>after</div>": Select** | Add HTML after content (for item Li) |
67
+ | **data-simple-add-classes="class1 class2": Select** | Add classes for wrapper SimpSelect |
68
+ | **data-simple-html-before="<span>before</span>": option** | Add HTML before content (for item Li) |
69
+ | **data-simple-html-after="<span>after</span>": option** | Add HTML after content (for item Li) |
70
+ | ***Callbacks*** | |
71
+ | **callbackInitialization: (item:SimpleSelectItem) => void** | Before initialization |
72
+ | **callbackInitialized**:(item:SimpleSelectItem) => void; | After initialization |
73
+ | **callbackOpen**: (item:SimpleSelectItem) => void; | Open dropdown |
74
+ | **callbackClose**:Open dropdown | Close dropdown |
75
+ | **callbackDestroyInit**: (item:SimpleSelectItem) => void; | Before destroy SimpSelect |
76
+ | **callbackDestroy**: (item:SimpleSelectItem) => void; | After destroy SimpSelect |
77
+ | **callbackChangeSelect** :(e: Event, item:SimpleSelectItem) => void; | Change SimpSelect (change options) |
78
+ | ***Methods*** | |
79
+ | **reload**:select(DomElement).SimSelect.reload() | Reload SimpSelect. |
80
+ | **update**:select(DomElement).SimSelect.update() | Update SimpSelect. |
81
+ | **detach**:select(DomElement).SimSelect.detach() | detach SimpSelect. |
82
+
83
+ **Data attributes in DOM element(select) more important than initialization options.*
84
+ ```
85
+ **Object of locales.
86
+ const simpleSelectLocale: = {
87
+ noSearch: 'No matches for',
88
+ searchText: 'Search',
89
+ title: 'Select',
90
+ selected: 'Selected:',
91
+ all: 'all',
92
+ ok: 'Ok',
93
+ cansel: 'Cansel',
94
+ selectAll: 'Select all',
95
+ resetAll: 'Reset all',
96
+ };
97
+ ```
98
+
99
+
100
+ ## Example Usage
101
+ ```
102
+ import SimpleSelect from 'simp-select';
103
+
104
+ new SimpleSelect('select');
105
+ ```
106
+ ## Browser Support
107
+ Supported on all modern browsers (and IE 11)
@@ -21,25 +21,25 @@
21
21
  }
22
22
  .item {
23
23
  width: 250px;
24
- }</style><body><div id="app"></div><div class="items"><div class="item"><select id="select_first" disabled="disabled" 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-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><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><script>const sel = new SimpleSelect('select', {
25
- callbackOpen: (item) => {
26
- console.log('open', item);
27
- },
28
- callbackClose: (item) => {
29
- console.log('close', item);
30
- },
31
- callbackDestroy: (item) => {
32
- console.log('callbackDestroy', item);
33
- },
34
- // detectNative: () => {
35
- // return false;
24
+ }</style><body><div id="app"></div><div class="items"><div class="item"><select id="select_first" disabled="disabled" 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="false" 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 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><script>const sel = new SimpleSelect('select', {
25
+ // callbackOpen: (item) => {
26
+ // console.log('open', item);
27
+ // },
28
+ // callbackClose: (item) => {
29
+ // console.log('close', item);
30
+ // },
31
+ // callbackDestroy: (item) => {
32
+ // console.log('callbackDestroy', item);
33
+ // },
34
+ // // detectNative: () => {
35
+ // // return false;
36
+ // // },
37
+ // callbackChangeSelect: (e, that) => {
38
+ // console.group();
39
+ // console.log(e);
40
+ // console.log(that);
41
+ // console.groupEnd();
36
42
  // },
37
- callbackChangeSelect: (e, that) => {
38
- console.group();
39
- console.log(e);
40
- console.log(that);
41
- console.groupEnd();
42
- },
43
43
 
44
44
  // isUp: true,
45
45
  // sepChars: ',',
@@ -49,50 +49,50 @@
49
49
  // debounceTime: 2000
50
50
  })
51
51
  // @ts-ignore
52
- window['sel'] = sel;
53
-
54
- setTimeout(() => {
55
- console.log('first', sel.getSelectFirst());
56
-
57
- const second = document.getElementById('select_second');
58
-
59
- const id = second.getAttribute('data-simple-select-init');
60
-
61
- console.log('by id', sel.getSelectById(id));
62
- }, 1500)
63
-
64
- const app = document.querySelector('#app')
65
- const select = document.createElement('select');
66
- select.innerHTML = '<option value="1">1</option><option value="2">2</option>'
67
- app.innerHTML = `
68
- <div>
69
- <select class="addSelect">
70
- <option selected>new option 0</option>
71
- <option value='1'>new option</option>
72
- <option value='2'>new option2</option>
73
- <option value='3'>new option3</option>
74
- <select>
75
- </div>
76
- `
77
- app.append(select);
78
- const sel3 = new SimpleSelect(select)
79
- window['sel3'] = sel3;
80
-
81
- setTimeout(() => {
82
- const sel2 = new SimpleSelect('.addSelect', {
83
- locale: {
84
- noSearch: 'Не найдено: ',
85
- searchText: 'Поиск',
86
- title: 'Выбрать',
87
- selected: 'Выбрано:',
88
- all: 'все',
89
- cansel: 'Отмена',
90
- ok: 'OK',
91
- resetAll: 'reset all',
92
- selectAll: 'select all'
93
- }
94
- })
95
- window['sel2'] = sel2;
96
- }, 500)
52
+ // window['sel'] = sel;
53
+ //
54
+ // setTimeout(() => {
55
+ // console.log('first', sel.getSelectFirst());
56
+ //
57
+ // const second = document.getElementById('select_second');
58
+ //
59
+ // const id = second.getAttribute('data-simple-select-init');
60
+ //
61
+ // console.log('by id', sel.getSelectById(id));
62
+ // }, 1500)
63
+ //
64
+ // const app = document.querySelector('#app')
65
+ // const select = document.createElement('select');
66
+ // select.innerHTML = '<option value="1">1</option><option value="2">2</option>'
67
+ // app.innerHTML = `
68
+ // <div>
69
+ // <select class="addSelect">
70
+ // <option selected>new option 0</option>
71
+ // <option value='1'>new option</option>
72
+ // <option value='2'>new option2</option>
73
+ // <option value='3'>new option3</option>
74
+ // <select>
75
+ // </div>
76
+ // `
77
+ // app.append(select);
78
+ // const sel3 = new SimpleSelect(select)
79
+ // window['sel3'] = sel3;
80
+ //
81
+ // setTimeout(() => {
82
+ // const sel2 = new SimpleSelect('.addSelect', {
83
+ // locale: {
84
+ // noSearch: 'Не найдено: ',
85
+ // searchText: 'Поиск',
86
+ // title: 'Выбрать',
87
+ // selected: 'Выбрано:',
88
+ // all: 'все',
89
+ // cansel: 'Отмена',
90
+ // ok: 'OK',
91
+ // resetAll: 'reset all',
92
+ // selectAll: 'select all'
93
+ // }
94
+ // })
95
+ // window['sel2'] = sel2;
96
+ // }, 500)
97
97
 
98
98
  // setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)</script></body></html>
@@ -1,5 +1,6 @@
1
1
  import { ISimpleSelectOptions, ISimpleSelectProps } from './types/simpleSelect.types';
2
2
  import { selectorType } from './types/item.types';
3
+ import './polyfill.js';
3
4
  import { SimpleSelectItem } from './simpleSelectItem';
4
5
  import './style.css';
5
6
  export default class SimpleSelect {
@@ -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",cansel:"Cansel",selectAll:"Select all",resetAll:"Reset all"},t.simpleSelectionOptions={isSearch:!0,isSearchInDropdown:!1,countShowSelected:2,isConfirmInMulti:!1,isConfirmInMultiOkClickOutside:!1,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],locale:t.simpleSelectLocale,sepChars:",",isUp:!1,floatWidth:767,isCloneClass:!0,selectAll:!1,selectAllAfterClose:!0,resetAll:!1,resetAllAfterClose:!0},t.nameSelect="SimSel";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,h(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 u(e,t,i){return(t=h(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function h(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,h=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),u(a(n=h.call(this,e,t,i)),"closeOutsideHandler",void 0),u(a(n),"closeEscHandler",void 0),u(a(n),"changeListener",void 0),u(a(n),"searchHandler",void 0),u(a(n),"handleResize",void 0),u(a(n),"mql",null),u(a(n),"countOpen",0),u(a(n),"multiDebounceTime",0),u(a(n),"timeoutDebounceId",null),!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("(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="")})),this.state.subscribe("filterStr",(function(t){e.filterList(t)})),this.isNative||(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(){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))}},{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.$select.options;this.elemListBody&&(this.elemListBody.querySelectorAll("[data-sel-position]").forEach((function(t){var i=parseInt(t.dataset[(0,p.toCamelCase)("sel-position")],10);if(i||0===i){var s=e[i];s&&!s.disabled&&(s.selected="true"===t.dataset[(0,p.toCamelCase)("sel-opt-checked")])}})),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:"changeClickItem",value:function(e){if(e){var t=Number(e.dataset[(0,p.toCamelCase)("sel-position")])||0,i=this.$select.options[t];i&&!i.disabled&&(this.isMulti?this.options.isConfirmInMulti||this.isFloatWidth?"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")):(i.selected=!i.selected,this.createList(),this.multiDebounceChange()):(i.selected=!i.selected,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){if("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)),"Enter"===e.key){var t=e.target;t&&(0,p.toCamelCase)("sel-opt-item")in t.dataset&&(e.preventDefault(),e.stopPropagation(),this.changeClickItem(t))}}},{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(){this.state.getState("isOpen")?(this.elemWrap.classList.add("SimpleSel--open"),document.addEventListener("click",this.closeOutsideHandler),document.addEventListener("keyup",this.closeEscHandler),this.elemInputSearch&&this.elemInputSearch.focus(),this.options.callbackOpen&&this.options.callbackOpen(this),this.countOpen++):(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:"filterList",value:function(e){e=e.toLowerCase();var t=(0,p.cloneObj)(this.state.getState("items"));t.forEach((function(t){var i=!1;t.items.forEach((function(t){t.title.toLowerCase().includes(e)?(i=!0,t.isShowFilter=!0):t.isShowFilter=!1})),t.isShowFilter=i})),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),u=i(972),h=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,u.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,"elemDropDown",null),a(this,"elemDropDownClose",null),a(this,"elemListBody",null),a(this,"elemInputSearch",null),a(this,"elemTitle",void 0),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(h.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);var l=this.$select.dataset[(0,c.toCamelCase)("simple-is-confirm")];this.isMulti&&l&&(this.options.isConfirmInMulti="1"===l||"true"===l),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");this.$select.dataset[e]?this.titlePlaceholder=this.$select.dataset[e]||"":this.titlePlaceholder=this.options.locale.title;var t=(0,c.toCamelCase)("simple-reset-all");if(t in this.$select.dataset){var i=this.$select.dataset[t];this.options.resetAll=!("false"===i||"0"===i)}if(this.$select.hasAttribute("data-simple-select-all")){var s=this.$select.getAttribute("data-simple-select-all");this.options.selectAll=(0,c.ifTrueDataAttr)(s)}var n=this.$select.dataset[(0,c.toCamelCase)("simple-show-checkbox")];this.isMulti?this.isShowCheckbox=!(n&&!(0,c.ifTrueDataAttr)(n)):"true"===n&&(this.isShowCheckbox=!0);var o=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-before")];o&&(this.bodyLiHTMLBeforeFromSelect=o);var l=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-after")];l&&(this.bodyLiHTMLAfterFromSelect=l),this.$select.hasAttribute("data-simple-up")&&(this.options.isUp=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-up")))}},{key:"initDom",value:function(){var e=this;this.createList(!1),this.createHTML(),this.state.subscribe("items",(function(t){e.createListHTML(),e.createTitleHTML()})),this.state.subscribe("isOpen",(function(t){e.createListHTML(),e.createTitleHTML(),e.toggleTabIndex(t)})),this.state.subscribe("isFloat",(function(t){e.isFloatWidth=t;var i=(0,c.getClass)("float",!0);e.elemWrap.classList.toggle(i,t)}))}},{key:"toggleTabIndex",value:function(e){var t=e?0:-1;this.state.getState("isFloat")&&document.body.classList.toggle(this.bodyOpenClass,e),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.elemTop.append(this.elemTopBody);var e=h.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.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.append(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.prepend(this.elemControl);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.append(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.append(this.elemResetAll))}}},{key:"createIcon",value:function(){var e=document.createElement("span");e.className=(0,c.getClass)("icon"),this.elemTopBody.append(e)}},{key:"createDropDown",value:function(){this.isNative||(this.elemDropDown=document.createElement("div"),this.elemDropDown.className=(0,c.getClass)("body"),this.elemListBody=document.createElement("ul"),this.elemListBody.className=(0,c.getClass)("list"),this.elemWrap.append(this.elemDropDown),this.elemDropDown.append(this.elemListBody),this.elemDropDownClose=(0,c.createButton)(),this.elemDropDownClose.classList.add((0,c.getClass)("close")),this.elemDropDown.append(this.elemDropDownClose),this.isMulti&&this.createIsConfirmInMultiHTML(),this.handlerChangeChecked())}},{key:"createIsConfirmInMultiHTML",value:function(){var e,t=document.createElement("div"),i=(0,c.getClass)("bottom_control");this.confirmOk=(0,c.createButton)(),this.confirmNo=(0,c.createButton)(),t.append(this.confirmOk),t.append(this.confirmNo),this.confirmOk.innerHTML=this.options.locale.ok,this.confirmNo.innerHTML=this.options.locale.cansel,this.confirmOk.className="".concat(i," ").concat((0,c.getClass)("ok",!0,i)),this.confirmNo.className="".concat(i," ").concat((0,c.getClass)("no",!0,i));var s=(0,c.getClass)("bottom_controls");this.options.isConfirmInMulti||(s+=" ".concat((0,c.getClass)("hide",!0,s))),t.className=s,null===(e=this.elemDropDown)||void 0===e||e.append(t)}},{key:"createTitleHTML",value:function(){var e=this;this.elemTitle||(this.elemTitle=document.createElement("div"),this.elemTitle.className=(0,c.getClass)("title"),this.elemTopBody.prepend(this.elemTitle));var t=this.getChecked();this.elemTop.title="";var i=!t.length,s=this.titlePlaceholder;if(t.length){var n="";t.forEach((function(t,i){0!==i&&(n+="".concat(e.options.sepChars,'<span class="').concat((0,c.getClass)("sep_space",!0),'">&nbsp;</span>')),n+="".concat(t.title)})),this.elemTop.title=n;var o=this.options.countShowSelected,l=Number(this.$select.dataset.simpleCountShowsSelected);l&&l>0&&(o=l),t.length>o?(s="".concat(this.options.locale.selected," ").concat(t.length),this.$select.querySelectorAll("option").length===t.length&&(s+=" (".concat(this.options.locale.all,")"))):n&&(s=n)}this.elemTitle.innerHTML=s,this.elemTitle.classList.toggle("SimpleSel__title--placeholder",i),this.elemTitle.classList.toggle("SimpleSel__title--fill",!i),this.elemWrap.classList.toggle((0,c.getClass)("fill",!0),!i)}},{key:"createListHTML",value:function(){var e=this;if(this.elemListBody){var t="",i=0,s=0,n=0;this.state.getState("items").forEach((function(o){if(o.isGroup){var l=e.createLi(o),a=l.result,r=l.countShow,u=l.countChecked,h=l.countCheckedFull;t+='<div class="'.concat((0,c.getClass)("group_items"),'">'),t+=a,t+="</div>",s+=u,i+=r,n+=h}else{var p=e.createLi(o),d=p.result,m=p.countShow,f=p.countChecked,b=p.countCheckedFull;t+=d,i+=m,s+=f,n+=b}}));var o=this.state.getState("filterStr");o&&o.length&&0===i&&(t='<div class="'.concat((0,c.getClass)("no_match"),'">'),t="".concat(this.options.locale.noSearch,' "').concat(o,'"'),t+="</div>"),this.elemWrap.dataset.countChecked=s.toString(),this.elemWrap.dataset.countCheckedFull=n.toString(),this.isMulti&&(this.elemWrap.dataset.checkAllMulti=this.$select.options.length===s?"yes":"no"),this.elemListBody.innerHTML=t}}},{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="text",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(h.initClass,"_name_").concat(this.id);var i=(0,c.getClass)("search");t?this.elemDropDown&&(this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("dropdown",!0,i)),this.elemDropDown.prepend(this.elemInputSearch)):(this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("top",!0,i)),this.elemTop.append(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 u='data-sel-group-id="'.concat(e.idGroup,'"');u+=' data-sel-position="'.concat(l.position,'"'),u+=' data-sel-id="'.concat(l.id,'"'),l.value&&(u+=' data-sel-value="'.concat(l.value,'"')),u+=" data-sel-opt-item",u+=' data-sel-opt-checked="'.concat(l.checked,'"'),u+=' data-sel-opt-disabled="'.concat(l.disabled,'"'),i+='<li class="'.concat(r,'" ').concat(u,">");var h=t.createLiBody(l,t.$select.options[l.position]);i+="string"==typeof h?h:h.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")}}])&&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.toCamelCase=void 0;var s=i(737);t.toCamelCase=function(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))};t.createDataAttr=function(e){return"data-".concat(e)};t.ifTrueDataAttr=function(e){return!!e&&("true"===e||"1"===e)},t.triggerInputEvent=function(e){var t=new Event(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change",{bubbles:!0,cancelable:!0});e.dispatchEvent(t)};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),u=i(679),h=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,u.toCamelCase)(c.nameMark)),a(this,"dataNameMark",(0,u.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{getInstance: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 h.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(){var e={737:function(e,t){"use strict";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",cansel:"Cansel",selectAll:"Select all",resetAll:"Reset all"},t.simpleSelectionOptions={isSearch:!1,isSearchInDropdown:!1,countShowSelected:3,isConfirmInMulti:!1,isConfirmInMultiOkClickOutside:!1,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],locale:t.simpleSelectLocale,sepChars:",",isUp:!1,floatWidth:767,isCloneClass:!0,selectAll:!1,selectAllAfterClose:!0,resetAll:!1,resetAllAfterClose:!0},t.nameSelect="SimSel";t.nameMark="".concat("simple-select-","init"),t.initClass="SimpleSel"},874:function(e,t,i){"use strict";function n(e){return n="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},n(e)}function s(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,h(n.key),n)}}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,s=c(e);if(t){var o=c(this).constructor;i=Reflect.construct(s,arguments,o)}else i=s.apply(this,arguments);return function(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return r(e)}(this,i)}}function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(){return a="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,i){var n=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}(e,t);if(n){var s=Object.getOwnPropertyDescriptor(n,t);return s.get?s.get.call(arguments.length<3?e:i):s.value}},a.apply(this,arguments)}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function u(e,t,i){return(t=h(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function h(e){var t=function(e,t){if("object"!==n(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t||"default");if("object"!==n(s))return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===n(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,n,h=l(d);function d(e,t,i){var n,s;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),u(r(s=h.call(this,e,t,i)),"closeOutsideHandler",void 0),u(r(s),"closeEscHandler",void 0),u(r(s),"changeListener",void 0),u(r(s),"searchHandler",void 0),u(r(s),"handleResize",void 0),u(r(s),"mql",null),u(r(s),"countOpen",0),u(r(s),"multiDebounceTime",0),u(r(s),"timeoutDebounceId",null),!e)throw Error("Select is required");return s.init(),a((n=r(s),c(d.prototype)),"initDom",n).call(n),s.initAfterDom(),s}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.state.subscribe("filterStr",(function(t){e.filterList(t)})),this.isNative||(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(){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))}},{key:"debounce",value:function(e,t){var i=this;return function(){for(var n=arguments.length,s=new Array(n),o=0;o<n;o++)s[o]=arguments[o];i.timeoutDebounceId&&clearTimeout(i.timeoutDebounceId),i.timeoutDebounceId=setTimeout((function(){e.apply(void 0,s),i.timeoutDebounceId=null}),t)}}},{key:"confirmOkHandler",value:function(e){e.preventDefault(),this.confirmOkBuild()}},{key:"confirmOkBuild",value:function(){var e=this.$select.options;this.elemListBody&&(this.elemListBody.querySelectorAll("[data-sel-position]").forEach((function(t){var i=parseInt(t.dataset[(0,p.toCamelCase)("sel-position")],10);if(i||0===i){var n=e[i];n&&!n.disabled&&(n.selected="true"===t.dataset[(0,p.toCamelCase)("sel-opt-checked")])}})),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:"changeClickItem",value:function(e){if(e){var t=Number(e.dataset[(0,p.toCamelCase)("sel-position")])||0,i=this.$select.options[t];i&&!i.disabled&&(this.isMulti?this.options.isConfirmInMulti||this.isFloatWidth?"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")):(i.selected=!i.selected,this.createList(),this.multiDebounceChange()):(i.selected=!i.selected,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){if("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)),"Enter"===e.key){var t=e.target;t&&(0,p.toCamelCase)("sel-opt-item")in t.dataset&&(e.preventDefault(),e.stopPropagation(),this.changeClickItem(t))}}},{key:"keyBoardChangeChecked",value:function(e){var t=this.elemListBody.querySelectorAll('[data-sel-position]:not([data-sel-opt-disabled="true"])');if(t.length){var i,n=0;t.forEach((function(e,t){document.activeElement===e&&(n=t,i=e),e.removeAttribute("tabindex")})),(i=i?e?t[n+1]||t[0]:t[n-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&&this.elemInputSearch.focus(),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 n=this.state.getState("items");(0,p.compareObj)(n,t)||this.state.setState("items",t)}else this.state.setState("items",t)}},{key:"filterList",value:function(e){e=e.toLowerCase();var t=(0,p.cloneObj)(this.state.getState("items"));t.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})),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&&s(t.prototype,i),n&&s(t,n),Object.defineProperty(t,"prototype",{writable:!1}),d}(i(844).SimpleSelectItemDOM);t.SimpleSelectItem=d},844:function(e,t,i){"use strict";function n(e){return n="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},n(e)}function s(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,n=new Array(t);i<t;i++)n[i]=e[i];return n}function l(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function r(e,t,i){return(t=a(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e){var t=function(e,t){if("object"!==n(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t||"default");if("object"!==n(s))return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===n(t)?t:String(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleSelectItemDOM=void 0;var c=i(679),u=i(972),h=i(737),p=function(){function e(t,i,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r(this,"options",void 0),r(this,"$select",void 0),r(this,"id",void 0),r(this,"titlePlaceholder",void 0),r(this,"isDisabled",!1),r(this,"isMulti",void 0),r(this,"state",(0,u.store)({items:[],isOpen:!1,filterStr:"",isFloat:!1})),r(this,"classSelectInit",(0,c.getClass)("select_init")),r(this,"isNative",void 0),r(this,"elemWrap",document.createElement("div")),r(this,"elemTop",document.createElement("div")),r(this,"elemTopBody",document.createElement("div")),r(this,"elemDropDown",null),r(this,"elemDropDownClose",null),r(this,"elemListBody",null),r(this,"elemInputSearch",null),r(this,"elemTitle",void 0),r(this,"confirmOk",null),r(this,"confirmNo",null),r(this,"elemControl",null),r(this,"elemSelectAll",null),r(this,"elemResetAll",null),r(this,"cloneClasses",""),r(this,"isShowCheckbox",!1),r(this,"bodyLiHTMLBeforeFromSelect",null),r(this,"bodyLiHTMLAfterFromSelect",null),r(this,"isFloatWidth",!1),r(this,"bodyOpenClass","".concat(h.initClass,"--body_open"));var s=n.id,o=n.isNative;this.$select=t,this.isMulti=t.multiple,this.id=s,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,n;return t=e,(i=[{key:"optionOverride",value:function(){var e=(0,c.toCamelCase)("simple-placeholder");this.$select.dataset[e]?this.titlePlaceholder=this.$select.dataset[e]||"":this.titlePlaceholder=this.options.locale.title;var t=(0,c.toCamelCase)("simple-reset-all");if(t in this.$select.dataset){var i=this.$select.dataset[t];this.options.resetAll=!("false"===i||"0"===i)}if(this.$select.hasAttribute("data-simple-select-all")){var n=this.$select.getAttribute("data-simple-select-all");this.options.selectAll=(0,c.ifTrueDataAttr)(n)}var s=this.$select.dataset[(0,c.toCamelCase)("simple-show-checkbox")];this.isMulti?this.isShowCheckbox=!(s&&!(0,c.ifTrueDataAttr)(s)):"true"===s&&(this.isShowCheckbox=!0);var o=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-before")];o&&(this.bodyLiHTMLBeforeFromSelect=o);var l=this.$select.dataset[(0,c.toCamelCase)("simple-item-html-after")];l&&(this.bodyLiHTMLAfterFromSelect=l),this.$select.hasAttribute("data-simple-up")&&(this.options.isUp=(0,c.ifTrueDataAttr)(this.$select.getAttribute("data-simple-up")))}},{key:"initDom",value:function(){var e=this;this.createList(!1),this.createHTML(),this.state.subscribe("items",(function(t){e.createListHTML(),e.createTitleHTML()})),this.state.subscribe("isOpen",(function(t){e.createListHTML(),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):e.elemWrap.classList.remove(i)}))}},{key:"toggleTabIndex",value:function(e){var t=e?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.elemTop.appendChild(this.elemTopBody);var e=h.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.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.elemDropDown=document.createElement("div"),this.elemDropDown.className=(0,c.getClass)("body"),this.elemListBody=document.createElement("ul"),this.elemListBody.className=(0,c.getClass)("list"),this.elemWrap.appendChild(this.elemDropDown),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,t=document.createElement("div"),i=(0,c.getClass)("bottom_control");this.confirmOk=(0,c.createButton)(),this.confirmNo=(0,c.createButton)(),t.appendChild(this.confirmOk),t.appendChild(this.confirmNo),this.confirmOk.innerHTML=this.options.locale.ok,this.confirmNo.innerHTML=this.options.locale.cansel,this.confirmOk.className="".concat(i," ").concat((0,c.getClass)("ok",!0,i)),this.confirmNo.className="".concat(i," ").concat((0,c.getClass)("no",!0,i));var n=(0,c.getClass)("bottom_controls");this.options.isConfirmInMulti||(n+=" ".concat((0,c.getClass)("hide",!0,n))),t.className=n,null===(e=this.elemDropDown)||void 0===e||e.appendChild(t)}},{key:"createTitleHTML",value:function(){var e=this;this.elemTitle||(this.elemTitle=document.createElement("div"),this.elemTitle.className=(0,c.getClass)("title"),this.elemTopBody.insertBefore(this.elemTitle,this.elemTopBody.childNodes[0]));var t=this.getChecked();this.elemTop.title="";var i=!t.length,n=this.titlePlaceholder;if(t.length){var s="";t.forEach((function(t,i){0!==i&&(s+="".concat(e.options.sepChars,'<span class="').concat((0,c.getClass)("sep_space",!0),'">&nbsp;</span>')),s+="".concat(t.title)})),this.elemTop.title=s;var o=this.options.countShowSelected,l=Number(this.$select.dataset.simpleCountShowsSelected);l&&l>0&&(o=l),t.length>o?(n="".concat(this.options.locale.selected," ").concat(t.length),this.$select.querySelectorAll("option").length===t.length&&(n+=" (".concat(this.options.locale.all,")"))):s&&(n=s)}this.elemTitle.innerHTML=n,i?(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:"createListHTML",value:function(){var e=this;if(this.elemListBody){var t="",i=0,n=0,s=0;this.state.getState("items").forEach((function(o){if(o.isGroup){var l=e.createLi(o),r=l.result,a=l.countShow,u=l.countChecked,h=l.countCheckedFull;t+='<div class="'.concat((0,c.getClass)("group_items"),'">'),t+=r,t+="</div>",n+=u,i+=a,s+=h}else{var p=e.createLi(o),d=p.result,m=p.countShow,f=p.countChecked,b=p.countCheckedFull;t+=d,i+=m,n+=f,s+=b}}));var o=this.state.getState("filterStr");o&&o.length&&0===i&&(t='<div class="'.concat((0,c.getClass)("no_match"),'">'),t="".concat(this.options.locale.noSearch,' "').concat(o,'"'),t+="</div>"),this.elemWrap.dataset.countChecked=n.toString(),this.elemWrap.dataset.countCheckedFull=s.toString(),this.isMulti&&(this.elemWrap.dataset.checkAllMulti=this.$select.options.length===n?"yes":"no"),this.elemListBody.innerHTML=t}}},{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="text",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(h.initClass,"_name_").concat(this.id);var i=(0,c.getClass)("search");t?this.elemDropDown&&(this.elemInputSearch.className="".concat(i," ").concat((0,c.getClass)("dropdown",!0,i)),this.elemDropDown.insertBefore(this.elemInputSearch,this.elemDropDown.childNodes[0])):(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(s(t),s(e.items.filter((function(e){return e.checked}))))})),t}},{key:"createLi",value:function(e){var t=this,i="",n=0,s=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){n++;var r=(0,c.getClass)("list_item"),a=r;l.checked&&(s++,a+=" ".concat((0,c.getClass)("checked",!0,r)),l.value&&o++),l.disabled&&(a+=" ".concat((0,c.getClass)("disabled",!0,r))),l.value||(a+=" ".concat((0,c.getClass)("not_value",!0,r)));var u='data-sel-group-id="'.concat(e.idGroup,'"');u+=' data-sel-position="'.concat(l.position,'"'),u+=' data-sel-id="'.concat(l.id,'"'),l.value&&(u+=' data-sel-value="'.concat(l.value,'"')),u+=" data-sel-opt-item",u+=' data-sel-opt-checked="'.concat(l.checked,'"'),u+=' data-sel-opt-disabled="'.concat(l.disabled,'"'),i+='<li class="'.concat(a,'" ').concat(u,">");var h=t.createLiBody(l,t.$select.options[l.position]);i+="string"==typeof h?h:h.outerHTML,i+="</li>"}})),e.isGroup&&(i+="</ul>"),{result:i,countShow:n,countChecked:s,countCheckedFull:o}):{result:i,countShow:n,countChecked:s,countCheckedFull:o}}},{key:"createLiBody",value:function(e,t){var i=document.createElement("div");i.className=(0,c.getClass)("list_item_body");var n="";return this.isShowCheckbox&&(n='<span class="'.concat((0,c.getClass)("list_item_icon"),'"></span>')),this.bodyLiHTMLBeforeFromSelect&&(n+=this.bodyLiHTMLBeforeFromSelect),t.hasAttribute("data-simple-html-before")&&(n+=t.getAttribute("data-simple-html-before")),n+="".concat(e.title),this.bodyLiHTMLAfterFromSelect&&(n+=this.bodyLiHTMLAfterFromSelect),t.hasAttribute("data-simple-html-after")&&(n+=t.getAttribute("data-simple-html-after")),i.innerHTML=n,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")}}])&&l(t.prototype,i),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.SimpleSelectItemDOM=p},679:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createButton=t.cloneObj=t.compareObj=t.getClass=t.getCreateListItem=t.triggerInputEvent=t.ifTrueDataAttr=t.createDataAttr=t.toCamelCase=void 0;var n=i(737);t.toCamelCase=function(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))};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 n=new CustomEvent(t,{bubbles:!0,cancelable:!0});e.dispatchEvent(n)}};t.getCreateListItem=function(e,t,i){var n=e.querySelectorAll("option"),s=[];n.forEach((function(e,t){s.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:s,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]:n.initClass,s=t?"--":"__";return"".concat(i).concat(s).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){"use strict";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 n(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==i(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,t||"default");if("object"!==i(s))return s;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:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,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},r=function(e,l){var r=function(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){s(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}({},t),a=t[e]||0==t[e]?t[e]:null;t[e]=l,e in i&&i[e].forEach((function(e){return e(l,a,t)})),o.forEach((function(i){return i(e,r,t)}))};return e&&Object.keys(e).forEach((function(t){r(t,e[t])})),{getState:l,setState:r,subscribe:function(e,t){e in i||(i[e]=[]),i[e].push(t);var n=l(e);return t(n,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){"use strict";i.r(t)},245:function(){var e,t,i,n;Array.from||(Array.from=(e=Object.prototype.toString,t=function(t){return"function"==typeof t||"[object Function]"===e.call(t)},i=Math.pow(2,53)-1,n=function(e){var t=function(e){var t=Number(e);return isNaN(t)?0:0!==t&&isFinite(t)?(t>0?1:-1)*Math.floor(Math.abs(t)):t}(e);return Math.min(Math.max(t,0),i)},function(e){var i=Object(e);if(null==e)throw new TypeError("Array.from requires an array-like object - not null or undefined");var s,o=arguments.length>1?arguments[1]:void 0;if(void 0!==o){if(!t(o))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(s=arguments[2])}for(var l,r=n(i.length),a=t(this)?Object(new this(r)):new Array(r),c=0;c<r;)l=i[c],a[c]=o?void 0===s?o(l,c):o.call(s,l,c):l,c+=1;return a.length=r,a})),Array.prototype.forEach||(Array.prototype.forEach=function(e,t){var i,n;if(null==this)throw new TypeError(" this is null or not defined");var s=Object(this),o=s.length>>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(i=t),n=0;n<o;){var l;n in s&&(l=s[n],e.call(i,l,n,s)),n++}}),"undefined"!=typeof window&&window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(e,t){t=t||window;for(var i=0;i<this.length;i++)e.call(t,this[i],i,this)}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(Element.prototype.matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null}),function(){if("function"==typeof window.CustomEvent)return!1;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var i=document.createEvent("CustomEvent");return i.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),i}e.prototype=window.Event.prototype,window.CustomEvent=e}()}},t={};function i(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](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 n={};return function(){"use strict";var e=n;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 s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function o(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){r(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}function l(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,a(n.key),n)}}function r(e,t,i){return(t=a(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e){var i=function(e,i){if("object"!==t(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,i||"default");if("object"!==t(s))return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===i?String:Number)(e)}(e,"string");return"symbol"===t(i)?i:String(i)}i(245);var c=i(737),u=i(679),h=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),r(this,"callCount",Date.now()),r(this,"countInit",0),r(this,"$selects",[]),r(this,"options",void 0),r(this,"nameMarkTransform",(0,u.toCamelCase)(c.nameMark)),r(this,"dataNameMark",(0,u.createDataAttr)(c.nameMark)),r(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,n;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{getInstance: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 h.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),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();e.default=p}(),n=n.default}()}));
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,.SimpleSel__select_init{-webkit-box-sizing:border-box;box-sizing:border-box}.SimpleSel__select_init{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--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:max-height .25s,opacity .1s;transition:max-height .25s,opacity .1s;width:100%;z-index:3}.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}.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_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)}.SimpleSel__list_item_body:hover{background-color:#eae9e9;background-color:var(--simpS_color_light)}.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,.SimpleSel__select_init{-webkit-box-sizing:border-box;box-sizing:border-box}.SimpleSel__select_init{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--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:max-height .25s,opacity .1s;transition:max-height .25s,opacity .1s;width:100%;z-index:3}.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}.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!important}.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)}.SimpleSel__list_item_body:hover{background-color:#eae9e9;background-color:var(--simpS_color_light)}.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}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simp-select",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "simp-select - this plugin replaces the select",
5
5
  "main": "dist/simpleSelect.js",
6
6
  "types": "dist/simpleSelect.d.ts",
@@ -8,15 +8,14 @@ export const simpleSelectLocale: ISimpleSelectLocale = {
8
8
  all: 'all',
9
9
  ok: 'Ok',
10
10
  cansel: 'Cansel',
11
-
12
11
  selectAll: 'Select all',
13
12
  resetAll: 'Reset all',
14
13
  };
15
14
  export const simpleSelectionOptions: ISimpleSelectOptions = {
16
- isSearch: true,
15
+ isSearch: false,
17
16
  isSearchInDropdown: false,
18
17
 
19
- countShowSelected: 2,
18
+ countShowSelected: 3,
20
19
  isConfirmInMulti: false,
21
20
  isConfirmInMultiOkClickOutside: false,
22
21
 
@@ -58,7 +58,7 @@
58
58
  <div class="item">
59
59
  <select multiple
60
60
  data-simple-placeholder="custom placeholder"
61
- data-simple-is-confirm="true"
61
+ data-simple-is-confirm="false"
62
62
  data-simple-count-shows-selected="3">
63
63
  <option value="a1"
64
64
  data-simple-html-before="<span>|before| </span>"
@@ -95,6 +95,8 @@
95
95
 
96
96
  <div class="item">
97
97
  <select
98
+
99
+ data-simple-select-search-dropdown="true"
98
100
  data-simple-show-checkbox="true"
99
101
  class="color_red"
100
102
  data-simple-add-classes="class1"
@@ -116,16 +118,19 @@
116
118
  </select>
117
119
  </div>
118
120
 
119
- <select
120
- data-simple-add-classes="class1 class2"
121
- data-simple-item-html-before="<div>before</div>"
122
- data-simple-item-html-after="<div>after</div>"
123
- data-simple-select-search-dropdown="true"
124
- data-simple-up="true"
125
- >
126
- <option>Опция 5.1</option>
127
- <option>Опция 5.2</option>
128
- </select>
121
+ <div class="item">
122
+ <select
123
+ data-simple-add-classes="class1 class2"
124
+ data-simple-item-html-before="<div>before</div>"
125
+ data-simple-item-html-after="<div>after</div>"
126
+ data-simple-select-search-dropdown="true"
127
+ data-simple-up="true"
128
+ >
129
+ <option>Опция 5.1</option>
130
+ <option>Опция 5.2</option>
131
+ </select>
132
+ </div>
133
+
129
134
 
130
135
  <!--
131
136
 
@@ -134,15 +139,15 @@
134
139
  data-simple-select-search-dropdown
135
140
  data-simple-count-shows-selected="3"
136
141
  data-simple-is-confirm="true" // only multiselect
137
- data-simple-debounce-time // only multiselect
142
+ data-simple-debounce-time="1000" // only multiselect
138
143
  data-simple-placeholder="text"
139
144
  data-simple-reset-all="true" // only multiselect
140
145
  data-simple-select-all="true" // only multiselect
141
- data-simple-show-checkbox="true" // only not multiselect
146
+ !data-simple-show-checkbox="true" // only not multiselect
142
147
 
143
- data-simple-item-html-before="<div>before</div>"
144
- data-simple-item-html-after="<div>after</div>"
145
- data-simple-add-classes="class1 class2"
148
+ !data-simple-item-html-before="<div>before</div>"
149
+ !data-simple-item-html-after="<div>after</div>"
150
+ !data-simple-add-classes="class1 class2"
146
151
 
147
152
  data-simple-float-width="1000"
148
153
  data-simple-up="true"
@@ -171,24 +176,24 @@
171
176
  <script>
172
177
 
173
178
  const sel = new SimpleSelect('select', {
174
- callbackOpen: (item) => {
175
- console.log('open', item);
176
- },
177
- callbackClose: (item) => {
178
- console.log('close', item);
179
- },
180
- callbackDestroy: (item) => {
181
- console.log('callbackDestroy', item);
182
- },
183
- // detectNative: () => {
184
- // return false;
179
+ // callbackOpen: (item) => {
180
+ // console.log('open', item);
181
+ // },
182
+ // callbackClose: (item) => {
183
+ // console.log('close', item);
184
+ // },
185
+ // callbackDestroy: (item) => {
186
+ // console.log('callbackDestroy', item);
187
+ // },
188
+ // // detectNative: () => {
189
+ // // return false;
190
+ // // },
191
+ // callbackChangeSelect: (e, that) => {
192
+ // console.group();
193
+ // console.log(e);
194
+ // console.log(that);
195
+ // console.groupEnd();
185
196
  // },
186
- callbackChangeSelect: (e, that) => {
187
- console.group();
188
- console.log(e);
189
- console.log(that);
190
- console.groupEnd();
191
- },
192
197
 
193
198
  // isUp: true,
194
199
  // sepChars: ',',
@@ -198,53 +203,55 @@
198
203
  // debounceTime: 2000
199
204
  })
200
205
  // @ts-ignore
201
- window['sel'] = sel;
202
-
203
- setTimeout(() => {
204
- console.log('first', sel.getSelectFirst());
205
-
206
- const second = document.getElementById('select_second');
206
+ // window['sel'] = sel;
207
+ //
208
+ // setTimeout(() => {
209
+ // console.log('first', sel.getSelectFirst());
210
+ //
211
+ // const second = document.getElementById('select_second');
212
+ //
213
+ // const id = second.getAttribute('data-simple-select-init');
214
+ //
215
+ // console.log('by id', sel.getSelectById(id));
216
+ // }, 1500)
217
+ //
218
+ // const app = document.querySelector('#app')
219
+ // const select = document.createElement('select');
220
+ // select.innerHTML = '<option value="1">1</option><option value="2">2</option>'
221
+ // app.innerHTML = `
222
+ // <div>
223
+ // <select class="addSelect">
224
+ // <option selected>new option 0</option>
225
+ // <option value='1'>new option</option>
226
+ // <option value='2'>new option2</option>
227
+ // <option value='3'>new option3</option>
228
+ // <select>
229
+ // </div>
230
+ // `
231
+ // app.append(select);
232
+ // const sel3 = new SimpleSelect(select)
233
+ // window['sel3'] = sel3;
234
+ //
235
+ // setTimeout(() => {
236
+ // const sel2 = new SimpleSelect('.addSelect', {
237
+ // locale: {
238
+ // noSearch: 'Не найдено: ',
239
+ // searchText: 'Поиск',
240
+ // title: 'Выбрать',
241
+ // selected: 'Выбрано:',
242
+ // all: 'все',
243
+ // cansel: 'Отмена',
244
+ // ok: 'OK',
245
+ // resetAll: 'reset all',
246
+ // selectAll: 'select all'
247
+ // }
248
+ // })
249
+ // window['sel2'] = sel2;
250
+ // }, 500)
207
251
 
208
- const id = second.getAttribute('data-simple-select-init');
209
-
210
- console.log('by id', sel.getSelectById(id));
211
- }, 1500)
212
-
213
- const app = document.querySelector('#app')
214
- const select = document.createElement('select');
215
- select.innerHTML = '<option value="1">1</option><option value="2">2</option>'
216
- app.innerHTML = `
217
- <div>
218
- <select class="addSelect">
219
- <option selected>new option 0</option>
220
- <option value='1'>new option</option>
221
- <option value='2'>new option2</option>
222
- <option value='3'>new option3</option>
223
- <select>
224
- </div>
225
- `
226
- app.append(select);
227
- const sel3 = new SimpleSelect(select)
228
- window['sel3'] = sel3;
252
+ // setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
229
253
 
230
- setTimeout(() => {
231
- const sel2 = new SimpleSelect('.addSelect', {
232
- locale: {
233
- noSearch: 'Не найдено: ',
234
- searchText: 'Поиск',
235
- title: 'Выбрать',
236
- selected: 'Выбрано:',
237
- all: 'все',
238
- cansel: 'Отмена',
239
- ok: 'OK',
240
- resetAll: 'reset all',
241
- selectAll: 'select all'
242
- }
243
- })
244
- window['sel2'] = sel2;
245
- }, 500)
246
254
 
247
- // setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
248
255
 
249
256
  </script>
250
257
 
@@ -0,0 +1,136 @@
1
+ if (!Array.from) {
2
+ Array.from = (function () {
3
+ var toStr = Object.prototype.toString;
4
+ var isCallable = function (fn) {
5
+ return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
6
+ };
7
+ var toInteger = function (value) {
8
+ var number = Number(value);
9
+ if (isNaN(number)) { return 0; }
10
+ if (number === 0 || !isFinite(number)) { return number; }
11
+ return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
12
+ };
13
+ var maxSafeInteger = Math.pow(2, 53) - 1;
14
+ var toLength = function (value) {
15
+ var len = toInteger(value);
16
+ return Math.min(Math.max(len, 0), maxSafeInteger);
17
+ };
18
+
19
+ return function from(arrayLike/*, mapFn, thisArg */) {
20
+ var C = this;
21
+
22
+ var items = Object(arrayLike);
23
+
24
+ if (arrayLike == null) {
25
+ throw new TypeError('Array.from requires an array-like object - not null or undefined');
26
+ }
27
+
28
+ var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
29
+ var T;
30
+ if (typeof mapFn !== 'undefined') {
31
+ if (!isCallable(mapFn)) {
32
+ throw new TypeError('Array.from: when provided, the second argument must be a function');
33
+ }
34
+
35
+ if (arguments.length > 2) {
36
+ T = arguments[2];
37
+ }
38
+ }
39
+
40
+ var len = toLength(items.length);
41
+
42
+
43
+ var A = isCallable(C) ? Object(new C(len)) : new Array(len);
44
+
45
+ var k = 0;
46
+ var kValue;
47
+ while (k < len) {
48
+ kValue = items[k];
49
+ if (mapFn) {
50
+ A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
51
+ } else {
52
+ A[k] = kValue;
53
+ }
54
+ k += 1;
55
+ }
56
+ A.length = len;
57
+ return A;
58
+ };
59
+ }());
60
+ }
61
+
62
+ if (!Array.prototype.forEach) {
63
+ Array.prototype.forEach = function (callback, thisArg) {
64
+ var T, k;
65
+
66
+ if (this == null) {
67
+ throw new TypeError(" this is null or not defined");
68
+ }
69
+
70
+ var O = Object(this);
71
+
72
+ var len = O.length >>> 0;
73
+
74
+ if (typeof callback !== "function") {
75
+ throw new TypeError(callback + " is not a function");
76
+ }
77
+
78
+ if (arguments.length > 1) {
79
+ T = thisArg;
80
+ }
81
+
82
+ k = 0;
83
+
84
+ while (k < len) {
85
+ var kValue;
86
+
87
+ if (k in O) {
88
+ kValue = O[k];
89
+
90
+ callback.call(T, kValue, k, O);
91
+ }
92
+ k++;
93
+ }
94
+ };
95
+ }
96
+
97
+ if (typeof window !== 'undefined' && window.NodeList && !NodeList.prototype.forEach) {
98
+ NodeList.prototype.forEach = function (callback, thisArg) {
99
+ thisArg = thisArg || window;
100
+ for (var i = 0; i < this.length; i++) {
101
+ callback.call(thisArg, this[i], i, this);
102
+ }
103
+ };
104
+ }
105
+
106
+ if (!Element.prototype.matches) {
107
+ Element.prototype.matches = Element.prototype.msMatchesSelector ||
108
+ Element.prototype.webkitMatchesSelector;
109
+ }
110
+
111
+ if (!Element.prototype.closest) {
112
+ Element.prototype.closest = function(s) {
113
+ var el = this;
114
+
115
+ do {
116
+ if (Element.prototype.matches.call(el, s)) return el;
117
+ el = el.parentElement || el.parentNode;
118
+ } while (el !== null && el.nodeType === 1);
119
+ return null;
120
+ };
121
+ }
122
+
123
+ (function () {
124
+ if ( typeof window.CustomEvent === "function" ) return false; //If not IE
125
+
126
+ function CustomEvent ( event, params ) {
127
+ params = params || { bubbles: false, cancelable: false, detail: undefined };
128
+ var evt = document.createEvent( 'CustomEvent' );
129
+ evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
130
+ return evt;
131
+ }
132
+
133
+ CustomEvent.prototype = window.Event.prototype;
134
+
135
+ window.CustomEvent = CustomEvent;
136
+ })();
@@ -1,5 +1,6 @@
1
1
  import { ISimpleSelectOptions, ISimpleSelectProps } from './types/simpleSelect.types';
2
2
  import { selectorType } from './types/item.types';
3
+ import './polyfill.js';
3
4
 
4
5
  import {
5
6
  nameMark, nameSelect, simpleSelectionOptions,
@@ -54,7 +54,7 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
54
54
  }
55
55
 
56
56
  if (!this.isNative && this.options.floatWidth) {
57
- this.mql = window.matchMedia(`(max-width: ${this.options.floatWidth}px)`);
57
+ this.mql = window.matchMedia(`screen and (max-width: ${this.options.floatWidth}px)`);
58
58
  if (this.mql) {
59
59
  // @ts-ignore
60
60
  this.mql.onchange = this.handleResize;
@@ -67,16 +67,12 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
67
67
  if (!val && this.options.isConfirmInMulti) {
68
68
  this.createList();
69
69
  }
70
- if (val) {
70
+ if (!val) {
71
71
  if (this.elemInputSearch) {
72
72
  this.elemInputSearch.value = '';
73
+ this.state.setState('filterStr', '');
73
74
  }
74
75
  }
75
- // if (!val) {
76
- // if (this.options.isConfirmInMulti) {
77
- // this.triggerInit();
78
- // }
79
- // }
80
76
  });
81
77
 
82
78
  this.state.subscribe('filterStr', (val: string) => {
@@ -381,6 +377,11 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
381
377
  this.options.callbackOpen(this);
382
378
  }
383
379
  this.countOpen++;
380
+ if (this.elemDropDown) {
381
+ setTimeout(() => {
382
+ this.elemDropDown!.scrollTop = 0;
383
+ }, 10);
384
+ }
384
385
  } else {
385
386
  this.state.setState('filterList', '');
386
387
  this.elemWrap.classList.remove('SimpleSel--open');
@@ -444,7 +445,7 @@ export class SimpleSelectItem extends SimpleSelectItemDOM {
444
445
  items.forEach((group) => {
445
446
  let isShowGroup = false;
446
447
  group.items.forEach((item) => {
447
- if (item.title.toLowerCase().includes(val)) {
448
+ if (item.title.toLowerCase().indexOf(val) >= 0) {
448
449
  isShowGroup = true;
449
450
  item.isShowFilter = true;
450
451
  } else {
@@ -111,9 +111,8 @@ export class SimpleSelectItemDOM {
111
111
  this.options.changeBodyLi = options.changeBodyLi;
112
112
  }
113
113
 
114
- const dataConfirm = this.$select.dataset[toCamelCase('simple-is-confirm')];
115
- if (this.isMulti && dataConfirm) {
116
- this.options.isConfirmInMulti = dataConfirm === '1' || dataConfirm === 'true';
114
+ if (this.isMulti && this.$select.hasAttribute('data-simple-is-confirm')) {
115
+ this.options.isConfirmInMulti = ifTrueDataAttr(this.$select.getAttribute('data-simple-is-confirm'));
117
116
  }
118
117
 
119
118
  this.optionOverride();
@@ -184,7 +183,11 @@ export class SimpleSelectItemDOM {
184
183
  this.state.subscribe('isFloat', (val: boolean) => {
185
184
  this.isFloatWidth = val;
186
185
  const cls = getClass('float', true);
187
- this.elemWrap.classList.toggle(cls, val);
186
+ if (val) {
187
+ this.elemWrap.classList.add(cls);
188
+ } else {
189
+ this.elemWrap.classList.remove(cls);
190
+ }
188
191
  });
189
192
  }
190
193
 
@@ -192,7 +195,11 @@ export class SimpleSelectItemDOM {
192
195
  const tabIndex = isOpen ? 0 : -1;
193
196
 
194
197
  if (this.state.getState('isFloat')) {
195
- document.body.classList.toggle(this.bodyOpenClass, isOpen);
198
+ if (isOpen) {
199
+ document.body.classList.add(this.bodyOpenClass);
200
+ } else {
201
+ document.body.classList.remove(this.bodyOpenClass);
202
+ }
196
203
  }
197
204
 
198
205
  if (this.elemInputSearch) {
@@ -224,7 +231,7 @@ export class SimpleSelectItemDOM {
224
231
  this.elemTopBody.tabIndex = this.isDisabled ? -1 : 0;
225
232
 
226
233
  this.createIcon();
227
- this.elemTop.append(this.elemTopBody);
234
+ this.elemTop.appendChild(this.elemTopBody);
228
235
  let resClassesWrap = initClass;
229
236
  if (this.options.isCloneClass) {
230
237
  resClassesWrap += ` ${this.cloneClasses}`;
@@ -250,7 +257,7 @@ export class SimpleSelectItemDOM {
250
257
  parentElement.replaceChild(this.elemWrap, this.$select);
251
258
  this.elemWrap.appendChild(this.$select);
252
259
  }
253
- this.elemWrap.append(this.elemTop);
260
+ this.elemWrap.appendChild(this.elemTop);
254
261
 
255
262
  if (this.isNative) {
256
263
  this.$select.classList.add(getClass('native', true, this.classSelectInit));
@@ -276,7 +283,8 @@ export class SimpleSelectItemDOM {
276
283
  this.elemControl = document.createElement('div');
277
284
  this.elemControl.classList.add(getClass('controls'));
278
285
 
279
- this.elemDropDown.prepend(this.elemControl);
286
+ // this.elemDropDown.prepend(this.elemControl);
287
+ this.elemDropDown.insertBefore(this.elemControl, this.elemDropDown.childNodes[0]);
280
288
 
281
289
  const classControl = getClass('control');
282
290
  if (this.options.selectAll) {
@@ -285,7 +293,7 @@ export class SimpleSelectItemDOM {
285
293
 
286
294
  this.elemSelectAll.innerHTML = `<span class="${getClass('select_all__icon')}"></span> ${this.options.locale.selectAll}`;
287
295
 
288
- this.elemControl.append(this.elemSelectAll);
296
+ this.elemControl.appendChild(this.elemSelectAll);
289
297
  }
290
298
 
291
299
  if (this.options.resetAll) {
@@ -294,14 +302,14 @@ export class SimpleSelectItemDOM {
294
302
 
295
303
  this.elemResetAll.innerHTML = `<span class="${getClass('reset_all__icon')}"></span> ${this.options.locale.resetAll}`;
296
304
 
297
- this.elemControl.append(this.elemResetAll);
305
+ this.elemControl.appendChild(this.elemResetAll);
298
306
  }
299
307
  }
300
308
 
301
309
  private createIcon() {
302
310
  const icon = document.createElement('span');
303
311
  icon.className = getClass('icon');
304
- this.elemTopBody.append(icon);
312
+ this.elemTopBody.appendChild(icon);
305
313
  }
306
314
 
307
315
  private createDropDown() {
@@ -314,13 +322,13 @@ export class SimpleSelectItemDOM {
314
322
 
315
323
  this.elemListBody.className = getClass('list');
316
324
 
317
- this.elemWrap.append(this.elemDropDown);
318
- this.elemDropDown.append(this.elemListBody);
325
+ this.elemWrap.appendChild(this.elemDropDown);
326
+ this.elemDropDown.appendChild(this.elemListBody);
319
327
 
320
328
  this.elemDropDownClose = createButton();
321
329
  this.elemDropDownClose.classList.add(getClass('close'));
322
330
 
323
- this.elemDropDown.append(this.elemDropDownClose);
331
+ this.elemDropDown.appendChild(this.elemDropDownClose);
324
332
 
325
333
  if (this.isMulti) {
326
334
  this.createIsConfirmInMultiHTML();
@@ -334,8 +342,8 @@ export class SimpleSelectItemDOM {
334
342
  const classesItem = getClass('bottom_control');
335
343
  this.confirmOk = createButton();
336
344
  this.confirmNo = createButton();
337
- confirm.append(this.confirmOk);
338
- confirm.append(this.confirmNo);
345
+ confirm.appendChild(this.confirmOk);
346
+ confirm.appendChild(this.confirmNo);
339
347
 
340
348
  this.confirmOk.innerHTML = this.options.locale.ok;
341
349
  this.confirmNo.innerHTML = this.options.locale.cansel;
@@ -349,14 +357,15 @@ export class SimpleSelectItemDOM {
349
357
  }
350
358
  confirm.className = classes;
351
359
 
352
- this.elemDropDown?.append(confirm);
360
+ this.elemDropDown?.appendChild(confirm);
353
361
  }
354
362
 
355
363
  private createTitleHTML() {
356
364
  if (!this.elemTitle) {
357
365
  this.elemTitle = document.createElement('div');
358
366
  this.elemTitle.className = getClass('title');
359
- this.elemTopBody.prepend(this.elemTitle);
367
+ // this.elemTopBody.prepend(this.elemTitle);
368
+ this.elemTopBody.insertBefore(this.elemTitle, this.elemTopBody.childNodes[0]);
360
369
  }
361
370
 
362
371
  const itemsChecked = this.getChecked();
@@ -391,10 +400,15 @@ export class SimpleSelectItemDOM {
391
400
  }
392
401
 
393
402
  this.elemTitle.innerHTML = title;
394
- this.elemTitle.classList.toggle('SimpleSel__title--placeholder', isPlaceholder);
395
- this.elemTitle.classList.toggle('SimpleSel__title--fill', !isPlaceholder);
396
-
397
- this.elemWrap.classList.toggle(getClass('fill', true), !isPlaceholder);
403
+ if (isPlaceholder) {
404
+ this.elemTitle.classList.add('SimpleSel__title--placeholder');
405
+ this.elemTitle.classList.remove('SimpleSel__title--fill');
406
+ this.elemWrap.classList.remove(getClass('fill', true));
407
+ } else {
408
+ this.elemTitle.classList.remove('SimpleSel__title--placeholder');
409
+ this.elemTitle.classList.add('SimpleSel__title--fill');
410
+ this.elemWrap.classList.add(getClass('fill', true));
411
+ }
398
412
  }
399
413
 
400
414
  protected createListHTML() {
@@ -471,11 +485,12 @@ export class SimpleSelectItemDOM {
471
485
  if (isSearchInDropdown) {
472
486
  if (this.elemDropDown) {
473
487
  this.elemInputSearch.className = `${className} ${getClass('dropdown', true, className)}`;
474
- this.elemDropDown.prepend(this.elemInputSearch);
488
+ // this.elemDropDown.prepend(this.elemInputSearch);
489
+ this.elemDropDown.insertBefore(this.elemInputSearch, this.elemDropDown.childNodes[0]);
475
490
  }
476
491
  } else {
477
492
  this.elemInputSearch.className = `${className} ${getClass('top', true, className)}`;
478
- this.elemTop.append(this.elemInputSearch);
493
+ this.elemTop.appendChild(this.elemInputSearch);
479
494
  }
480
495
 
481
496
  this.inputSearchHandler();
package/src/style.css CHANGED
@@ -303,6 +303,9 @@
303
303
  margin-top: 5px;
304
304
  bottom: 0;
305
305
  }
306
+ .SimpleSel__bottom_controls--hide {
307
+ display: none !important;
308
+ }
306
309
  .SimpleSel__bottom_control--hide {
307
310
  display: none;
308
311
  }
@@ -13,11 +13,19 @@ export const ifTrueDataAttr = (attr: string | null): boolean => {
13
13
  };
14
14
 
15
15
  export function triggerInputEvent(element: HTMLElement, type = 'change') {
16
- const event = new Event(type, {
17
- bubbles: true,
18
- cancelable: true,
19
- });
20
- element.dispatchEvent(event);
16
+ try {
17
+ const event = new Event(type, {
18
+ bubbles: true,
19
+ cancelable: true,
20
+ });
21
+ element.dispatchEvent(event);
22
+ } catch (e) {
23
+ const event = new CustomEvent(type, {
24
+ bubbles: true,
25
+ cancelable: true,
26
+ });
27
+ element.dispatchEvent(event);
28
+ }
21
29
  }
22
30
 
23
31
  export const getCreateListItem = (item: HTMLSelectElement | HTMLOptGroupElement, idGroup: string, isGroup: boolean) => {