From 56b09effa4b85c7c0839d96b06f663e56c50d838 Mon Sep 17 00:00:00 2001
From: Irina-anat <116644910+Irina-anat@users.noreply.github.com>
Date: Sat, 13 Jan 2024 12:48:14 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Irina-an?=
=?UTF-8?q?at/cat-search@1f13b57af1eac7dffcabd74cf18ac7bbebb132b3=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
index.290ee0e1.js | 2 ++
index.f83c412d.js.map => index.290ee0e1.js.map | 2 +-
index.f83c412d.js => index.5280651f.js | 4 ++--
index.5280651f.js.map | 1 +
index.c53cc19b.js | 2 --
index.c53cc19b.js.map | 1 -
index.html | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
create mode 100644 index.290ee0e1.js
rename index.f83c412d.js.map => index.290ee0e1.js.map (64%)
rename index.f83c412d.js => index.5280651f.js (99%)
create mode 100644 index.5280651f.js.map
delete mode 100644 index.c53cc19b.js
delete mode 100644 index.c53cc19b.js.map
diff --git a/index.290ee0e1.js b/index.290ee0e1.js
new file mode 100644
index 0000000..a85f938
--- /dev/null
+++ b/index.290ee0e1.js
@@ -0,0 +1,2 @@
+function t(t){return t&&t.__esModule?t.default:t}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function s(t){return fetch(`https://api.thecatapi.com/v1/images/search?api_key=live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm&breed_ids=${t}`).then((t=>{if(!t.ok)throw new Error(t.status);return t.json()}))}function i(t){const{url:e,breeds:s}=t;return`
\n
\n
\n `}var n={};n=function(){function t(){return Math.random().toString(36).substring(2,10)}function e(t,e){function s(t,s){return s&&t&&t.classList&&t.classList.contains(s)||s&&t&&t.dataset&&t.dataset.id&&t.dataset.id===e?t:null}function i(t,e){return t&&t!==document?s(t,e)?t:i(t.parentNode,e):null}return s(t,e)||i(t,e)}function s(t,e=50,s=!1){let i;return function(...n){const o=self,a=()=>{i=null,s||t.apply(o,n)},l=s&&!i;clearTimeout(i),i=setTimeout(a,e),l&&t.apply(o,n)}}function i(t,e){return JSON.stringify(t)===JSON.stringify(e)}function n(t){const e=t.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(t=>"-"+t.toLowerCase()));return t[0]===t[0].toUpperCase()?e.substring(1):e}class o{constructor(e){if(this.id=e.id&&""!==e.id?e.id:t(),this.label=e.label||"",this.selectAll=void 0!==e.selectAll&&e.selectAll,this.selectAllText=e.selectAllText||"Select All",this.closable=e.closable||"off",this.options=[],e.options)for(const t of e.options)this.options.push(new a(t))}}class a{constructor(e){this.id=e.id&&""!==e.id?e.id:t(),this.value=void 0===e.value?e.text:e.value,this.text=e.text||"",this.html=e.html||"",this.selected=void 0!==e.selected&&e.selected,this.display=void 0===e.display||e.display,this.disabled=void 0!==e.disabled&&e.disabled,this.mandatory=void 0!==e.mandatory&&e.mandatory,this.placeholder=void 0!==e.placeholder&&e.placeholder,this.class=e.class||"",this.style=e.style||"",this.data=e.data||{}}}class l{constructor(t,e){this.selectType="single",this.data=[],this.selectType=t,this.setData(e)}validateDataArray(t){if(!Array.isArray(t))return new Error("Data must be an array");for(let e of t){if(!(e instanceof o||"label"in e))return e instanceof a||"text"in e?this.validateOption(e):new Error("Data object must be a valid optgroup or option");if(!("label"in e))return new Error("Optgroup must have a label");if("options"in e&&e.options)for(let t of e.options)return this.validateOption(t)}return null}validateOption(t){return"text"in t?null:new Error("Option must have a text")}partialToFullData(t){let e=[];return t.forEach((t=>{if(t instanceof o||"label"in t){let s=[];"options"in t&&t.options&&t.options.forEach((t=>{s.push(new a(t))})),s.length>0&&e.push(new o(t))}(t instanceof a||"text"in t)&&e.push(new a(t))})),e}setData(t){this.data=this.partialToFullData(t),"single"===this.selectType&&this.setSelectedBy("value",this.getSelected())}getData(){return this.filter(null,!0)}getDataOptions(){return this.filter(null,!1)}addOption(t){this.setData(this.getData().concat(new a(t)))}setSelectedBy(t,e){let s=null,i=!1;for(let n of this.data){if(n instanceof o)for(let o of n.options)s||(s=o),o.selected=!i&&e.includes(o[t]),o.selected&&"single"===this.selectType&&(i=!0);n instanceof a&&(s||(s=n),n.selected=!i&&e.includes(n[t]),n.selected&&"single"===this.selectType&&(i=!0))}"single"===this.selectType&&s&&!i&&(s.selected=!0)}getSelected(){let t=this.getSelectedOptions(),e=[];return t.forEach((t=>{e.push(t.value)})),e}getSelectedOptions(){return this.filter((t=>t.selected),!1)}getSelectedIDs(){let t=this.getSelectedOptions(),e=[];return t.forEach((t=>{e.push(t.id)})),e}getOptgroupByID(t){for(let e of this.data)if(e instanceof o&&e.id===t)return e;return null}getOptionByID(t){let e=this.filter((e=>e.id===t),!1);return e.length?e[0]:null}getSelectType(){return this.selectType}getFirstOption(){let t=null;for(let e of this.data)if(e instanceof o?t=e.options[0]:e instanceof a&&(t=e),t)break;return t}search(t,e){return""===(t=t.trim())?this.getData():this.filter((s=>e(s,t)),!0)}filter(t,e){const s=[];return this.data.forEach((i=>{if(i instanceof o){let n=[];if(i.options.forEach((i=>{t&&!t(i)||(e?n.push(new a(i)):s.push(new a(i)))})),n.length>0){let t=new o(i);t.options=n,s.push(t)}}i instanceof a&&(t&&!t(i)||s.push(new a(i)))})),s}}class r{constructor(t,e,s){this.classes={main:"ss-main",placeholder:"ss-placeholder",values:"ss-values",single:"ss-single",max:"ss-max",value:"ss-value",valueText:"ss-value-text",valueDelete:"ss-value-delete",valueOut:"ss-value-out",deselect:"ss-deselect",deselectPath:"M10,10 L90,90 M10,90 L90,10",arrow:"ss-arrow",arrowClose:"M10,30 L50,70 L90,30",arrowOpen:"M10,70 L50,30 L90,70",content:"ss-content",openAbove:"ss-open-above",openBelow:"ss-open-below",search:"ss-search",searchHighlighter:"ss-search-highlight",searching:"ss-searching",addable:"ss-addable",addablePath:"M50,10 L50,90 M10,50 L90,50",list:"ss-list",optgroup:"ss-optgroup",optgroupLabel:"ss-optgroup-label",optgroupLabelText:"ss-optgroup-label-text",optgroupActions:"ss-optgroup-actions",optgroupSelectAll:"ss-selectall",optgroupSelectAllBox:"M60,10 L10,10 L10,90 L90,90 L90,50",optgroupSelectAllCheck:"M30,45 L50,70 L90,10",optgroupClosable:"ss-closable",option:"ss-option",optionDelete:"M10,10 L90,90 M10,90 L90,10",highlighted:"ss-highlighted",open:"ss-open",close:"ss-close",selected:"ss-selected",error:"ss-error",disabled:"ss-disabled",hide:"ss-hide"},this.store=e,this.settings=t,this.callbacks=s,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation.appendChild(this.content.main)}enable(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}disable(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}open(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add("up"===this.settings.openPosition?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();const t=this.store.getSelectedOptions();if(t.length){const e=t[t.length-1].id,s=this.content.list.querySelector('[data-id="'+e+'"]');s&&this.ensureElementInView(this.content.list,s)}}close(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}updateClassStyles(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),""!==this.settings.style&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length)for(const t of this.settings.class)""!==t.trim()&&(this.main.main.classList.add(t.trim()),this.content.main.classList.add(t.trim()));"relative"===this.settings.contentPosition&&this.content.main.classList.add("ss-"+this.settings.contentPosition)}updateAriaAttributes(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","false"),this.content.main.setAttribute("role","listbox")}mainDiv(){var t;const e=document.createElement("div");e.dataset.id=this.settings.id,e.setAttribute("aria-label",this.settings.ariaLabel),e.tabIndex=0,e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return this.callbacks.open(),"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Enter":case" ":this.callbacks.open();const e=this.content.list.querySelector("."+this.classes.highlighted);return e&&e.click(),!1;case"Escape":return this.callbacks.close(),!1}return!1},e.onclick=t=>{this.settings.disabled||(this.settings.isOpen?this.callbacks.close():this.callbacks.open())};const s=document.createElement("div");s.classList.add(this.classes.values),e.appendChild(s);const i=document.createElement("div");i.classList.add(this.classes.deselect);const n=null===(t=this.store)||void 0===t?void 0:t.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&n&&n.length<=0?i.classList.add(this.classes.hide):i.classList.remove(this.classes.hide),i.onclick=t=>{if(t.stopPropagation(),this.settings.disabled)return;let e=!0;const s=this.store.getSelectedOptions(),i=[];if(this.callbacks.beforeChange&&(e=!0===this.callbacks.beforeChange(i,s)),e){if(this.settings.isMultiple)this.callbacks.setSelected([],!1),this.updateDeselectAll();else{const t=this.store.getFirstOption(),e=t?t.value:"";this.callbacks.setSelected(e,!1)}this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(this.store.getSelectedOptions())}};const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100");const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.deselectPath),o.appendChild(a),i.appendChild(o),e.appendChild(i);const l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.classList.add(this.classes.arrow),l.setAttribute("viewBox","0 0 100 100");const r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&l.classList.add(this.classes.hide),l.appendChild(r),e.appendChild(l),{main:e,values:s,deselect:{main:i,svg:o,path:a},arrow:{main:l,path:r}}}mainFocus(t){"click"!==t&&this.main.main.focus({preventScroll:!0})}placeholder(){const t=this.store.filter((t=>t.placeholder),!1);let e=this.settings.placeholderText;t.length&&(""!==t[0].html?e=t[0].html:""!==t[0].text&&(e=t[0].text));const s=document.createElement("div");return s.classList.add(this.classes.placeholder),s.innerHTML=e,s}renderValues(){this.settings.isMultiple?(this.renderMultipleValues(),this.updateDeselectAll()):this.renderSingleValue()}renderSingleValue(){const t=this.store.filter((t=>t.selected&&!t.placeholder),!1),e=t.length>0?t[0]:null;if(e){const t=document.createElement("div");t.classList.add(this.classes.single),e.html?t.innerHTML=e.html:t.innerText=e.text,this.main.values.innerHTML=t.outerHTML}else this.main.values.innerHTML=this.placeholder().outerHTML;this.settings.allowDeselect&&t.length?this.main.deselect.main.classList.remove(this.classes.hide):this.main.deselect.main.classList.add(this.classes.hide)}renderMultipleValues(){let t=this.main.values.childNodes,e=this.store.filter((t=>t.selected&&t.display),!1);if(0===e.length)return void(this.main.values.innerHTML=this.placeholder().outerHTML);{const t=this.main.values.querySelector("."+this.classes.placeholder);t&&t.remove()}if(e.length>this.settings.maxValuesShown){const t=document.createElement("div");return t.classList.add(this.classes.max),t.textContent=this.settings.maxValuesMessage.replace("{number}",e.length.toString()),void(this.main.values.innerHTML=t.outerHTML)}{const t=this.main.values.querySelector("."+this.classes.max);t&&t.remove()}let s=[];for(let i=0;it.id===o),!1).length||s.push(n))}for(const t of s)t.classList.add(this.classes.valueOut),setTimeout((()=>{this.main.values.hasChildNodes()&&this.main.values.contains(t)&&this.main.values.removeChild(t)}),100);t=this.main.values.childNodes;for(let s=0;s{if(e.preventDefault(),e.stopPropagation(),this.settings.disabled)return;let s=!0;const i=this.store.getSelectedOptions(),n=i.filter((e=>e.selected&&e.id!==t.id),!0);if(!(this.settings.minSelected&&n.length{this.callbacks.search(t.target.value)}),100),e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Escape":return this.callbacks.close(),!1;case"Enter":case" ":if(this.callbacks.addable&&t.ctrlKey)return i.click(),!1;{const t=this.content.list.querySelector("."+this.classes.highlighted);if(t)return t.click(),!1}return!0}return!0},t.appendChild(e),this.callbacks.addable){i.classList.add(this.classes.addable);const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 100 100");const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("d",this.classes.addablePath),e.appendChild(s),i.appendChild(e),i.onclick=t=>{if(t.preventDefault(),t.stopPropagation(),!this.callbacks.addable)return;const e=this.content.search.input.value.trim();if(""===e)return void this.content.search.input.focus();const s=t=>{let e=new a(t);if(this.callbacks.addOption(e),this.settings.isMultiple){let t=this.store.getSelected();t.push(e.value),this.callbacks.setSelected(t,!0)}else this.callbacks.setSelected([e.value],!0);this.callbacks.search(""),this.settings.closeOnSelect&&setTimeout((()=>{this.callbacks.close()}),100)},i=this.callbacks.addable(e);!1!==i&&null!=i&&(i instanceof Promise?i.then((t=>{s("string"==typeof t?{text:t,value:t}:t)})):s("string"==typeof i?{text:i,value:i}:i))},t.appendChild(i),n.addable={main:i,svg:e,path:s}}return n}searchFocus(){this.content.search.input.focus()}getOptions(t=!1,e=!1,s=!1){let i="."+this.classes.option;return t&&(i+=":not(."+this.classes.placeholder+")"),e&&(i+=":not(."+this.classes.disabled+")"),s&&(i+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(i))}highlight(t){const e=this.getOptions(!0,!0,!0);if(0===e.length)return;if(1===e.length&&!e[0].classList.contains(this.classes.highlighted))return void e[0].classList.add(this.classes.highlighted);let s=!1;for(const t of e)t.classList.contains(this.classes.highlighted)&&(s=!0);if(!s)for(const t of e)if(t.classList.contains(this.classes.selected)){t.classList.add(this.classes.highlighted);break}for(let s=0;s=0?s-1:e.length-1];o.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,o);const a=o.parentElement;if(a&&a.classList.contains(this.classes.close)){const t=a.querySelector("."+this.classes.optgroupLabel);t&&t.click()}return}e["down"===t?0:e.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,e["down"===t?0:e.length-1])}listDiv(){const t=document.createElement("div");return t.classList.add(this.classes.list),t}renderError(t){this.content.list.innerHTML="";const e=document.createElement("div");e.classList.add(this.classes.error),e.textContent=t,this.content.list.appendChild(e)}renderSearching(){this.content.list.innerHTML="";const t=document.createElement("div");t.classList.add(this.classes.searching),t.textContent=this.settings.searchingText,this.content.list.appendChild(t)}renderOptions(t){if(this.content.list.innerHTML="",0===t.length){const t=document.createElement("div");return t.classList.add(this.classes.search),t.innerHTML=this.settings.searchText,void this.content.list.appendChild(t)}for(const e of t){if(e instanceof o){const t=document.createElement("div");t.classList.add(this.classes.optgroup);const s=document.createElement("div");s.classList.add(this.classes.optgroupLabel),t.appendChild(s);const i=document.createElement("div");i.classList.add(this.classes.optgroupLabelText),i.textContent=e.label,s.appendChild(i);const n=document.createElement("div");if(n.classList.add(this.classes.optgroupActions),s.appendChild(n),this.settings.isMultiple&&e.selectAll){const t=document.createElement("div");t.classList.add(this.classes.optgroupSelectAll);let s=!0;for(const t of e.options)if(!t.selected){s=!1;break}s&&t.classList.add(this.classes.selected);const i=document.createElement("span");i.textContent=e.selectAllText,t.appendChild(i);const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),t.appendChild(o);const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.optgroupSelectAllBox),o.appendChild(a);const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.optgroupSelectAllCheck),o.appendChild(l),t.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation();const i=this.store.getSelected();if(s){const t=i.filter((t=>{for(const s of e.options)if(t===s.value)return!1;return!0}));this.callbacks.setSelected(t,!0)}else{const t=i.concat(e.options.map((t=>t.value)));for(const t of e.options)this.store.getOptionByID(t.id)||this.callbacks.addOption(t);this.callbacks.setSelected(t,!0)}})),n.appendChild(t)}if("off"!==e.closable){const i=document.createElement("div");i.classList.add(this.classes.optgroupClosable);const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.classList.add(this.classes.arrow),i.appendChild(o);const a=document.createElementNS("http://www.w3.org/2000/svg","path");o.appendChild(a),e.options.some((t=>t.selected))||""!==this.content.search.input.value.trim()?(i.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):"open"===e.closable?(t.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):"close"===e.closable&&(t.classList.add(this.classes.close),a.setAttribute("d",this.classes.arrowClose)),s.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation(),t.classList.contains(this.classes.close)?(t.classList.remove(this.classes.close),t.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):(t.classList.remove(this.classes.open),t.classList.add(this.classes.close),a.setAttribute("d",this.classes.arrowClose))})),n.appendChild(i)}t.appendChild(s);for(const s of e.options)t.appendChild(this.option(s));this.content.list.appendChild(t)}e instanceof a&&this.content.list.appendChild(this.option(e))}}option(t){if(t.placeholder){const t=document.createElement("div");return t.classList.add(this.classes.option),t.classList.add(this.classes.hide),t}const e=document.createElement("div");return e.dataset.id=t.id,e.id=t.id,e.classList.add(this.classes.option),e.setAttribute("role","option"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.style&&(e.style.cssText=t.style),this.settings.searchHighlight&&""!==this.content.search.input.value.trim()?e.innerHTML=this.highlightText(""!==t.html?t.html:t.text,this.content.search.input.value,this.classes.searchHighlighter):""!==t.html?e.innerHTML=t.html:e.textContent=t.text,this.settings.showOptionTooltips&&e.textContent&&e.setAttribute("title",e.textContent),t.display||e.classList.add(this.classes.hide),t.disabled&&e.classList.add(this.classes.disabled),t.selected&&this.settings.hideSelected&&e.classList.add(this.classes.hide),t.selected?(e.classList.add(this.classes.selected),e.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",e.id)):(e.classList.remove(this.classes.selected),e.setAttribute("aria-selected","false")),e.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation();const s=this.store.getSelected(),i=e.currentTarget,n=String(i.dataset.id);if(t.disabled||t.selected&&!this.settings.allowDeselect)return;if(this.settings.isMultiple&&this.settings.maxSelected<=s.length&&!t.selected||this.settings.isMultiple&&this.settings.minSelected>=s.length&&t.selected)return;let o=!1;const a=this.store.getSelectedOptions();let l=[];this.settings.isMultiple&&(l=t.selected?a.filter((t=>t.id!==n)):a.concat(t)),this.settings.isMultiple||(l=t.selected?[]:[t]),this.callbacks.beforeChange||(o=!0),this.callbacks.beforeChange&&(o=!1!==this.callbacks.beforeChange(l,a)),o&&(this.store.getOptionByID(n)||this.callbacks.addOption(t),this.callbacks.setSelected(l.map((t=>t.value)),!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(l))})),e}destroy(){this.main.main.remove(),this.content.main.remove()}highlightText(t,e,s){let i=t;const n=new RegExp("("+e.trim()+")(?![^<]*>[^<>]*)","i");if(!t.match(n))return t;const o=t.match(n).index,a=o+t.match(n)[0].toString().length,l=t.substring(o,a);return i=i.replace(n,`${l}`),i}moveContentAbove(){const t=this.main.main.offsetHeight,e=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);const s=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(t+e-1)+"px 0px 0px 0px",this.content.main.style.top=s.top+s.height+window.scrollY+"px",this.content.main.style.left=s.left+window.scrollX+"px",this.content.main.style.width=s.width+"px"}moveContentBelow(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);const t=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px","relative"!==this.settings.contentPosition&&(this.content.main.style.top=t.top+t.height+window.scrollY+"px",this.content.main.style.left=t.left+window.scrollX+"px",this.content.main.style.width=t.width+"px")}ensureElementInView(t,e){const s=t.scrollTop+t.offsetTop,i=s+t.clientHeight,n=e.offsetTop,o=n+e.clientHeight;ni&&(t.scrollTop+=o-i)}putContent(){const t=this.main.main.offsetHeight,e=this.main.main.getBoundingClientRect(),s=this.content.main.offsetHeight;return window.innerHeight-(e.top+t)<=s&&e.top>s?"up":"down"}updateDeselectAll(){if(!this.store||!this.settings)return;const t=this.store.getSelectedOptions(),e=t&&t.length>0,s=this.settings.isMultiple,i=this.settings.allowDeselect,n=this.main.deselect.main,o=this.classes.hide;!i||s&&!e?n.classList.add(o):n.classList.remove(o)}}class c{constructor(t){this.listen=!1,this.observer=null,this.select=t,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}enable(){this.select.disabled=!1}disable(){this.select.disabled=!0}hideUI(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}showUI(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}changeListen(t){this.listen=t,t&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),t||this.observer&&this.observer.disconnect()}valueChange(t){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedValues()),!0}observeCall(t){if(!this.listen)return;let e=!1,s=!1,i=!1;for(const n of t)n.target===this.select&&("disabled"===n.attributeName&&(s=!0),"class"===n.attributeName&&(e=!0)),"OPTGROUP"!==n.target.nodeName&&"OPTION"!==n.target.nodeName||(i=!0);e&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),s&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),i&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}getData(){let t=[];const e=this.select.childNodes;for(const s of e)"OPTGROUP"===s.nodeName&&t.push(this.getDataFromOptgroup(s)),"OPTION"===s.nodeName&&t.push(this.getDataFromOption(s));return t}getDataFromOptgroup(t){let e={id:t.id,label:t.label,selectAll:!!t.dataset&&"true"===t.dataset.selectall,selectAllText:t.dataset?t.dataset.selectalltext:"Select all",closable:t.dataset?t.dataset.closable:"off",options:[]};const s=t.childNodes;for(const t of s)"OPTION"===t.nodeName&&e.options.push(this.getDataFromOption(t));return e}getDataFromOption(t){return{id:t.id,value:t.value,text:t.text,html:t.dataset&&t.dataset.html?t.dataset.html:"",selected:t.selected,display:"none"!==t.style.display,disabled:t.disabled,mandatory:!!t.dataset&&"true"===t.dataset.mandatory,placeholder:"true"===t.dataset.placeholder,class:t.className,style:t.style.cssText,data:t.dataset}}getSelectedValues(){let t=[];const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(e.value)}}if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(e.value)}}return t}setSelected(t){this.changeListen(!1);const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}this.changeListen(!0)}updateSelect(t,e,s){this.changeListen(!1),t&&(this.select.dataset.id=t),e&&(this.select.style.cssText=e),s&&(this.select.className="",s.forEach((t=>{""!==t.trim()&&this.select.classList.add(t.trim())}))),this.changeListen(!0)}updateOptions(t){this.changeListen(!1),this.select.innerHTML="";for(const e of t)e instanceof o&&this.select.appendChild(this.createOptgroup(e)),e instanceof a&&this.select.appendChild(this.createOption(e));this.select.dispatchEvent(new Event("change")),this.changeListen(!0)}createOptgroup(t){const e=document.createElement("optgroup");if(e.id=t.id,e.label=t.label,t.selectAll&&(e.dataset.selectAll="true"),"off"!==t.closable&&(e.dataset.closable=t.closable),t.options)for(const s of t.options)e.appendChild(this.createOption(s));return e}createOption(t){const e=document.createElement("option");return e.id=t.id,e.value=t.value,e.innerHTML=t.text,""!==t.html&&e.setAttribute("data-html",t.html),t.selected&&(e.selected=t.selected),t.disabled&&(e.disabled=!0),!1===t.display&&(e.style.display="none"),t.placeholder&&e.setAttribute("data-placeholder","true"),t.mandatory&&e.setAttribute("data-mandatory","true"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.data&&"object"==typeof t.data&&Object.keys(t.data).forEach((s=>{e.setAttribute("data-"+n(s),t.data[s])})),e}destroy(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}class h{constructor(e){this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,e||(e={}),this.id="ss-"+t(),this.style=e.style||"",this.class=e.class||[],this.disabled=void 0!==e.disabled&&e.disabled,this.alwaysOpen=void 0!==e.alwaysOpen&&e.alwaysOpen,this.showSearch=void 0===e.showSearch||e.showSearch,this.ariaLabel=e.ariaLabel||"Combobox",this.searchPlaceholder=e.searchPlaceholder||"Search",this.searchText=e.searchText||"No Results",this.searchingText=e.searchingText||"Searching...",this.searchHighlight=void 0!==e.searchHighlight&&e.searchHighlight,this.closeOnSelect=void 0===e.closeOnSelect||e.closeOnSelect,this.contentLocation=e.contentLocation||document.body,this.contentPosition=e.contentPosition||"absolute",this.openPosition=e.openPosition||"auto",this.placeholderText=void 0!==e.placeholderText?e.placeholderText:"Select Value",this.allowDeselect=void 0!==e.allowDeselect&&e.allowDeselect,this.hideSelected=void 0!==e.hideSelected&&e.hideSelected,this.keepOrder=void 0!==e.keepOrder&&e.keepOrder,this.showOptionTooltips=void 0!==e.showOptionTooltips&&e.showOptionTooltips,this.minSelected=e.minSelected||0,this.maxSelected=e.maxSelected||1e3,this.timeoutDelay=e.timeoutDelay||200,this.maxValuesShown=e.maxValuesShown||20,this.maxValuesMessage=e.maxValuesMessage||"{number} selected"}}class d{constructor(t){var i;if(this.events={search:void 0,searchFilter:(t,e)=>-1!==t.text.toLowerCase().indexOf(e.toLowerCase()),addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.windowScroll=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.documentClick=t=>{this.settings.isOpen&&t.target&&!e(t.target,this.settings.id)&&this.close(t.type)},this.windowVisibilityChange=()=>{document.hidden&&this.close()},this.selectEl="string"==typeof t.select?document.querySelector(t.select):t.select,!this.selectEl)return void(t.events&&t.events.error&&t.events.error(new Error("Could not find select element")));if("SELECT"!==this.selectEl.tagName)return void(t.events&&t.events.error&&t.events.error(new Error("Element isnt of type select")));this.selectEl.dataset.ssid&&this.destroy(),this.settings=new h(t.settings);const n=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(const e in t.events)t.events.hasOwnProperty(e)&&(-1!==n.indexOf(e)?this.events[e]=s(t.events[e],100):this.events[e]=t.events[e]);this.settings.disabled=(null===(i=t.settings)||void 0===i?void 0:i.disabled)?t.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new c(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=t=>{this.setSelected(t)},this.select.onClassChange=t=>{this.settings.class=t,this.render.updateClassStyles()},this.select.onDisabledChange=t=>{t?this.disable():this.enable()},this.select.onOptionsChange=t=>{this.setData(t)},this.store=new l(this.settings.isMultiple?"multiple":"single",t.data?t.data:this.select.getData()),t.data&&this.select.updateOptions(this.store.getData());const o={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new r(this.settings,this.store,o),this.render.renderValues(),this.render.renderOptions(this.store.getData());const a=this.selectEl.getAttribute("aria-label"),d=this.selectEl.getAttribute("aria-labelledby");a?this.render.main.main.setAttribute("aria-label",a):d&&this.render.main.main.setAttribute("aria-labelledby",d),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}enable(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}disable(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}getData(){return this.store.getData()}setData(t){const e=this.store.getSelected(),s=this.store.validateDataArray(t);if(s)return void(this.events.error&&this.events.error(s));this.store.setData(t);const n=this.store.getData();this.select.updateOptions(n),this.render.renderValues(),this.render.renderOptions(n),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}getSelected(){return this.store.getSelected()}setSelected(t,e=!0){const s=this.store.getSelected();this.store.setSelectedBy("value",Array.isArray(t)?t:[t]);const n=this.store.getData();this.select.updateOptions(n),this.render.renderValues(),""!==this.render.content.search.input.value?this.search(this.render.content.search.input.value):this.render.renderOptions(n),e&&this.events.afterChange&&!i(s,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}addOption(t){const e=this.store.getSelected();this.store.getDataOptions().some((e=>{var s;return e.value===(null!==(s=t.value)&&void 0!==s?s:t.text)}))||this.store.addOption(t);const s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}open(){this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout((()=>{this.events.afterOpen&&this.events.afterOpen(),this.settings.isOpen&&(this.settings.isFullOpen=!0),document.addEventListener("click",this.documentClick)}),this.settings.timeoutDelay),"absolute"===this.settings.contentPosition&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}close(t=null){this.settings.isOpen&&!this.settings.alwaysOpen&&(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),""!==this.render.content.search.input.value&&this.search(""),this.render.mainFocus(t),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout((()=>{this.events.afterClose&&this.events.afterClose(),document.removeEventListener("click",this.documentClick)}),this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}search(t){if(this.render.content.search.input.value!==t&&(this.render.content.search.input.value=t),!this.events.search)return void this.render.renderOptions(""===t?this.store.getData():this.store.search(t,this.events.searchFilter));this.render.renderSearching();const e=this.events.search(t,this.store.getSelectedOptions());e instanceof Promise?e.then((t=>{this.render.renderOptions(this.store.partialToFullData(t))})).catch((t=>{this.render.renderError("string"==typeof t?t:t.message)})):Array.isArray(e)?this.render.renderOptions(this.store.partialToFullData(e)):this.render.renderError("Search event must return a promise or an array of data")}destroy(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}return d}();var o,a,l={};o=void 0!==e?e:"undefined"!=typeof window?window:l,a=function(t){if(void 0===t&&void 0===t.document)return!1;var e,s="Success",i="Failure",n="Warning",o="Info",a={wrapID:"NotiflixNotifyWrap",overlayID:"NotiflixNotifyOverlay",width:"280px",position:"right-top",distance:"10px",opacity:1,borderRadius:"5px",rtl:!1,timeout:3e3,messageMaxLength:110,backOverlay:!1,backOverlayColor:"rgba(0,0,0,0.5)",plainText:!0,showOnlyTheLastOne:!1,clickToClose:!1,pauseOnHover:!0,ID:"NotiflixNotify",className:"notiflix-notify",zindex:4001,fontFamily:"Quicksand",fontSize:"13px",cssAnimation:!0,cssAnimationDuration:400,cssAnimationStyle:"fade",closeButton:!1,useIcon:!0,useFontAwesome:!1,fontAwesomeIconStyle:"basic",fontAwesomeIconSize:"34px",success:{background:"#32c682",textColor:"#fff",childClassName:"notiflix-notify-success",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-check-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(50,198,130,0.2)"},failure:{background:"#ff5549",textColor:"#fff",childClassName:"notiflix-notify-failure",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-times-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(255,85,73,0.2)"},warning:{background:"#eebf31",textColor:"#fff",childClassName:"notiflix-notify-warning",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-exclamation-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(238,191,49,0.2)"},info:{background:"#26c0d3",textColor:"#fff",childClassName:"notiflix-notify-info",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-info-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(38,192,211,0.2)"}},l=function(t){return console.error("%c Notiflix Error ","padding:2px;border-radius:20px;color:#fff;background:#ff5549","\n"+t+"\n\nVisit documentation page to learn more: https://notiflix.github.io/documentation")},r=function(e){return e||(e="head"),null!==t.document[e]||(l('\nNotiflix needs to be appended to the "<'+e+'>" element, but you called it before the "<'+e+'>" element has been created.'),!1)},c=function(){var t={},e=!1,s=0;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],s++);for(var i=function(s){for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(e&&"[object Object]"===Object.prototype.toString.call(s[i])?t[i]=c(t[i],s[i]):t[i]=s[i])};sdiv{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:"Quicksand",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}'},d=0,p=function(l,h,p,u){if(!r("body"))return!1;e||m.Notify.init({});var f=c(!0,e,{});if("object"==typeof p&&!Array.isArray(p)||"object"==typeof u&&!Array.isArray(u)){var g={};"object"==typeof p?g=p:"object"==typeof u&&(g=u),e=c(!0,e,g)}var b,v,y=e[l.toLocaleLowerCase("en")];d++,"string"!=typeof h&&(h="Notiflix "+l),e.plainText&&(b=h,(v=t.document.createElement("div")).innerHTML=b,h=v.textContent||v.innerText||""),!e.plainText&&h.length>e.messageMaxLength&&(e=c(!0,e,{closeButton:!0,messageMaxLength:150}),h='Possible HTML Tags Error: The "plainText" option is "false" and the notification content length is more than the "messageMaxLength" option.'),h.length>e.messageMaxLength&&(h=h.substring(0,e.messageMaxLength)+"..."),"shadow"===e.fontAwesomeIconStyle&&(y.fontAwesomeIconColor=y.background),e.cssAnimation||(e.cssAnimationDuration=0);var x=t.document.getElementById(a.wrapID)||t.document.createElement("div");if(x.id=a.wrapID,x.style.width=e.width,x.style.zIndex=e.zindex,x.style.opacity=e.opacity,"center-center"===e.position?(x.style.left=e.distance,x.style.top=e.distance,x.style.right=e.distance,x.style.bottom=e.distance,x.style.margin="auto",x.classList.add("nx-flex-center-center"),x.style.maxHeight="calc((100vh - "+e.distance+") - "+e.distance+")",x.style.display="flex",x.style.flexWrap="wrap",x.style.flexDirection="column",x.style.justifyContent="center",x.style.alignItems="center",x.style.pointerEvents="none"):"center-top"===e.position?(x.style.left=e.distance,x.style.right=e.distance,x.style.top=e.distance,x.style.bottom="auto",x.style.margin="auto"):"center-bottom"===e.position?(x.style.left=e.distance,x.style.right=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.margin="auto"):"right-bottom"===e.position?(x.style.right=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.left="auto"):"left-top"===e.position?(x.style.left=e.distance,x.style.top=e.distance,x.style.right="auto",x.style.bottom="auto"):"left-bottom"===e.position?(x.style.left=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.right="auto"):(x.style.right=e.distance,x.style.top=e.distance,x.style.left="auto",x.style.bottom="auto"),e.backOverlay){var w=t.document.getElementById(a.overlayID)||t.document.createElement("div");w.id=a.overlayID,w.style.width="100%",w.style.height="100%",w.style.position="fixed",w.style.zIndex=e.zindex-1,w.style.left=0,w.style.top=0,w.style.right=0,w.style.bottom=0,w.style.background=y.backOverlayColor||e.backOverlayColor,w.className=e.cssAnimation?"nx-with-animation":"",w.style.animationDuration=e.cssAnimation?e.cssAnimationDuration+"ms":"",t.document.getElementById(a.overlayID)||t.document.body.appendChild(w)}t.document.getElementById(a.wrapID)||t.document.body.appendChild(x);var k=t.document.createElement("div");k.id=e.ID+"-"+d,k.className=e.className+" "+y.childClassName+" "+(e.cssAnimation?"nx-with-animation":"")+" "+(e.useIcon?"nx-with-icon":"")+" nx-"+e.cssAnimationStyle+" "+(e.closeButton&&"function"!=typeof p?"nx-with-close-button":"")+" "+("function"==typeof p?"nx-with-callback":"")+" "+(e.clickToClose?"nx-notify-click-to-close":""),k.style.fontSize=e.fontSize,k.style.color=y.textColor,k.style.background=y.background,k.style.borderRadius=e.borderRadius,k.style.pointerEvents="all",e.rtl&&(k.setAttribute("dir","rtl"),k.classList.add("nx-rtl-on")),k.style.fontFamily='"'+e.fontFamily+'", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',e.cssAnimation&&(k.style.animationDuration=e.cssAnimationDuration+"ms");var C="";if(e.closeButton&&"function"!=typeof p&&(C=''),e.useIcon)if(e.useFontAwesome)k.innerHTML=''+h+""+(e.closeButton?C:"");else{var L="";l===s?L='':l===i?L='':l===n?L='':l===o&&(L=''),k.innerHTML=L+''+h+""+(e.closeButton?C:"")}else k.innerHTML=''+h+""+(e.closeButton?C:"");if("left-bottom"===e.position||"right-bottom"===e.position){var N=t.document.getElementById(a.wrapID);N.insertBefore(k,N.firstChild)}else t.document.getElementById(a.wrapID).appendChild(k);var O=t.document.getElementById(k.id);if(O){var S,A,E=function(){O.classList.add("nx-remove");var e=t.document.getElementById(a.overlayID);e&&x.childElementCount<=0&&e.classList.add("nx-remove"),clearTimeout(S)},T=function(){if(O&&null!==O.parentNode&&O.parentNode.removeChild(O),x.childElementCount<=0&&null!==x.parentNode){x.parentNode.removeChild(x);var e=t.document.getElementById(a.overlayID);e&&null!==e.parentNode&&e.parentNode.removeChild(e)}clearTimeout(A)};if(e.closeButton&&"function"!=typeof p&&t.document.getElementById(k.id).querySelector("span.nx-close-button").addEventListener("click",(function(){E();var t=setTimeout((function(){T(),clearTimeout(t)}),e.cssAnimationDuration)})),("function"==typeof p||e.clickToClose)&&O.addEventListener("click",(function(){"function"==typeof p&&p(),E();var t=setTimeout((function(){T(),clearTimeout(t)}),e.cssAnimationDuration)})),!e.closeButton&&"function"!=typeof p){var D=function(){S=setTimeout((function(){E()}),e.timeout),A=setTimeout((function(){T()}),e.timeout+e.cssAnimationDuration)};D(),e.pauseOnHover&&(O.addEventListener("mouseenter",(function(){O.classList.add("nx-paused"),clearTimeout(S),clearTimeout(A)})),O.addEventListener("mouseleave",(function(){O.classList.remove("nx-paused"),D()})))}}if(e.showOnlyTheLastOne&&d>0)for(var I=t.document.querySelectorAll("[id^="+e.ID+"-]:not([id="+e.ID+"-"+d+"])"),M=0;M{if(!t.ok)throw new Error(t.statusText);return t.json()})).then((e=>{e.forEach((t=>{h.push({text:t.name,value:t.id})})),new(t(n))({select:r,data:h})})).catch((t=>console.log(t))),r.addEventListener("change",(function(t){const e=t.currentTarget.value;console.log(e),s(e).then((t=>{c.innerHTML=i(t[0])})).catch((t=>console.log(t)))}));
+//# sourceMappingURL=index.290ee0e1.js.map
diff --git a/index.f83c412d.js.map b/index.290ee0e1.js.map
similarity index 64%
rename from index.f83c412d.js.map
rename to index.290ee0e1.js.map
index 3407eb4..98da8b5 100644
--- a/index.f83c412d.js.map
+++ b/index.290ee0e1.js.map
@@ -1 +1 @@
-{"mappings":"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","sources":["src/cat-api.js","node_modules/@swc/helpers/lib/_class_call_check.js","node_modules/@swc/helpers/lib/_create_class.js","node_modules/slim-select/dist/slimselect.umd.js","node_modules/notiflix/build/notiflix-notify-aio.js","src/index.js"],"sourcesContent":["const BASE_URL = 'https://api.thecatapi.com/v1';\nconst API_KEY = 'live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm';\n\nfunction fetchBreeds() {\n const URL = `${BASE_URL}/breeds?api_key=${API_KEY}`\n return fetch(URL).then(resp => {\n if (!resp.ok) {\n throw new Error(resp.statusText)\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\nfunction fetchCatByBreed(breedId) {\n const URL = `${BASE_URL}/images/search?api_key=${API_KEY}&breed_ids=${breedId}`\n return fetch(URL)\n .then(resp => {\n if (!resp.ok) {\n throw new Error(resp.status);\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\n\nexport { fetchBreeds, fetchCatByBreed };","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _classCallCheck;\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _createClass;\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SlimSelect = factory());\n})(this, (function () { 'use strict';\n\n function generateID() {\n return Math.random().toString(36).substring(2, 10);\n }\n function hasClassInTree(element, className) {\n function hasClass(e, c) {\n if (c && e && e.classList && e.classList.contains(c)) {\n return e;\n }\n if (c && e && e.dataset && e.dataset.id && e.dataset.id === className) {\n return e;\n }\n return null;\n }\n function parentByClass(e, c) {\n if (!e || e === document) {\n return null;\n }\n else if (hasClass(e, c)) {\n return e;\n }\n else {\n return parentByClass(e.parentNode, c);\n }\n }\n return hasClass(element, className) || parentByClass(element, className);\n }\n function debounce(func, wait = 50, immediate = false) {\n let timeout;\n return function (...args) {\n const context = self;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n function isEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n function kebabCase(str) {\n const result = str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match) => '-' + match.toLowerCase());\n return str[0] === str[0].toUpperCase() ? result.substring(1) : result;\n }\n\n class Optgroup {\n constructor(optgroup) {\n this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;\n this.label = optgroup.label || '';\n this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;\n this.selectAllText = optgroup.selectAllText || 'Select All';\n this.closable = optgroup.closable || 'off';\n this.options = [];\n if (optgroup.options) {\n for (const o of optgroup.options) {\n this.options.push(new Option(o));\n }\n }\n }\n }\n class Option {\n constructor(option) {\n this.id = !option.id || option.id === '' ? generateID() : option.id;\n this.value = option.value === undefined ? option.text : option.value;\n this.text = option.text || '';\n this.html = option.html || '';\n this.selected = option.selected !== undefined ? option.selected : false;\n this.display = option.display !== undefined ? option.display : true;\n this.disabled = option.disabled !== undefined ? option.disabled : false;\n this.mandatory = option.mandatory !== undefined ? option.mandatory : false;\n this.placeholder = option.placeholder !== undefined ? option.placeholder : false;\n this.class = option.class || '';\n this.style = option.style || '';\n this.data = option.data || {};\n }\n }\n class Store {\n constructor(type, data) {\n this.selectType = 'single';\n this.data = [];\n this.selectType = type;\n this.setData(data);\n }\n validateDataArray(data) {\n if (!Array.isArray(data)) {\n return new Error('Data must be an array');\n }\n for (let dataObj of data) {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n if (!('label' in dataObj)) {\n return new Error('Optgroup must have a label');\n }\n if ('options' in dataObj && dataObj.options) {\n for (let option of dataObj.options) {\n return this.validateOption(option);\n }\n }\n }\n else if (dataObj instanceof Option || 'text' in dataObj) {\n return this.validateOption(dataObj);\n }\n else {\n return new Error('Data object must be a valid optgroup or option');\n }\n }\n return null;\n }\n validateOption(option) {\n if (!('text' in option)) {\n return new Error('Option must have a text');\n }\n return null;\n }\n partialToFullData(data) {\n let dataFinal = [];\n data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n let optOptions = [];\n if ('options' in dataObj && dataObj.options) {\n dataObj.options.forEach((option) => {\n optOptions.push(new Option(option));\n });\n }\n if (optOptions.length > 0) {\n dataFinal.push(new Optgroup(dataObj));\n }\n }\n if (dataObj instanceof Option || 'text' in dataObj) {\n dataFinal.push(new Option(dataObj));\n }\n });\n return dataFinal;\n }\n setData(data) {\n this.data = this.partialToFullData(data);\n if (this.selectType === 'single') {\n this.setSelectedBy('value', this.getSelected());\n }\n }\n getData() {\n return this.filter(null, true);\n }\n getDataOptions() {\n return this.filter(null, false);\n }\n addOption(option) {\n this.setData(this.getData().concat(new Option(option)));\n }\n setSelectedBy(selectedType, selectedValues) {\n let firstOption = null;\n let hasSelected = false;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n for (let option of dataObj.options) {\n if (!firstOption) {\n firstOption = option;\n }\n option.selected = hasSelected ? false : selectedValues.includes(option[selectedType]);\n if (option.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (dataObj instanceof Option) {\n if (!firstOption) {\n firstOption = dataObj;\n }\n dataObj.selected = hasSelected ? false : selectedValues.includes(dataObj[selectedType]);\n if (dataObj.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (this.selectType === 'single' && firstOption && !hasSelected) {\n firstOption.selected = true;\n }\n }\n getSelected() {\n let selectedOptions = this.getSelectedOptions();\n let selectedValues = [];\n selectedOptions.forEach((option) => {\n selectedValues.push(option.value);\n });\n return selectedValues;\n }\n getSelectedOptions() {\n return this.filter((opt) => {\n return opt.selected;\n }, false);\n }\n getSelectedIDs() {\n let selectedOptions = this.getSelectedOptions();\n let selectedIDs = [];\n selectedOptions.forEach((op) => {\n selectedIDs.push(op.id);\n });\n return selectedIDs;\n }\n getOptgroupByID(id) {\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup && dataObj.id === id) {\n return dataObj;\n }\n }\n return null;\n }\n getOptionByID(id) {\n let options = this.filter((opt) => {\n return opt.id === id;\n }, false);\n return options.length ? options[0] : null;\n }\n getSelectType() {\n return this.selectType;\n }\n getFirstOption() {\n let option = null;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n option = dataObj.options[0];\n }\n else if (dataObj instanceof Option) {\n option = dataObj;\n }\n if (option) {\n break;\n }\n }\n return option;\n }\n search(search, searchFilter) {\n search = search.trim();\n if (search === '') {\n return this.getData();\n }\n return this.filter((opt) => {\n return searchFilter(opt, search);\n }, true);\n }\n filter(filter, includeOptgroup) {\n const dataSearch = [];\n this.data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup) {\n let optOptions = [];\n dataObj.options.forEach((option) => {\n if (!filter || filter(option)) {\n if (!includeOptgroup) {\n dataSearch.push(new Option(option));\n }\n else {\n optOptions.push(new Option(option));\n }\n }\n });\n if (optOptions.length > 0) {\n let optgroup = new Optgroup(dataObj);\n optgroup.options = optOptions;\n dataSearch.push(optgroup);\n }\n }\n if (dataObj instanceof Option) {\n if (!filter || filter(dataObj)) {\n dataSearch.push(new Option(dataObj));\n }\n }\n });\n return dataSearch;\n }\n }\n\n class Render {\n constructor(settings, store, callbacks) {\n this.classes = {\n main: 'ss-main',\n placeholder: 'ss-placeholder',\n values: 'ss-values',\n single: 'ss-single',\n max: 'ss-max',\n value: 'ss-value',\n valueText: 'ss-value-text',\n valueDelete: 'ss-value-delete',\n valueOut: 'ss-value-out',\n deselect: 'ss-deselect',\n deselectPath: 'M10,10 L90,90 M10,90 L90,10',\n arrow: 'ss-arrow',\n arrowClose: 'M10,30 L50,70 L90,30',\n arrowOpen: 'M10,70 L50,30 L90,70',\n content: 'ss-content',\n openAbove: 'ss-open-above',\n openBelow: 'ss-open-below',\n search: 'ss-search',\n searchHighlighter: 'ss-search-highlight',\n searching: 'ss-searching',\n addable: 'ss-addable',\n addablePath: 'M50,10 L50,90 M10,50 L90,50',\n list: 'ss-list',\n optgroup: 'ss-optgroup',\n optgroupLabel: 'ss-optgroup-label',\n optgroupLabelText: 'ss-optgroup-label-text',\n optgroupActions: 'ss-optgroup-actions',\n optgroupSelectAll: 'ss-selectall',\n optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',\n optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',\n optgroupClosable: 'ss-closable',\n option: 'ss-option',\n optionDelete: 'M10,10 L90,90 M10,90 L90,10',\n highlighted: 'ss-highlighted',\n open: 'ss-open',\n close: 'ss-close',\n selected: 'ss-selected',\n error: 'ss-error',\n disabled: 'ss-disabled',\n hide: 'ss-hide',\n };\n this.store = store;\n this.settings = settings;\n this.callbacks = callbacks;\n this.main = this.mainDiv();\n this.content = this.contentDiv();\n this.updateClassStyles();\n this.updateAriaAttributes();\n this.settings.contentLocation.appendChild(this.content.main);\n }\n enable() {\n this.main.main.classList.remove(this.classes.disabled);\n this.content.search.input.disabled = false;\n }\n disable() {\n this.main.main.classList.add(this.classes.disabled);\n this.content.search.input.disabled = true;\n }\n open() {\n this.main.arrow.path.setAttribute('d', this.classes.arrowOpen);\n this.main.main.classList.add(this.settings.openPosition === 'up' ? this.classes.openAbove : this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'true');\n this.moveContent();\n const selectedOptions = this.store.getSelectedOptions();\n if (selectedOptions.length) {\n const selectedId = selectedOptions[selectedOptions.length - 1].id;\n const selectedOption = this.content.list.querySelector('[data-id=\"' + selectedId + '\"]');\n if (selectedOption) {\n this.ensureElementInView(this.content.list, selectedOption);\n }\n }\n }\n close() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.main.arrow.path.setAttribute('d', this.classes.arrowClose);\n }\n updateClassStyles() {\n this.main.main.className = '';\n this.main.main.removeAttribute('style');\n this.content.main.className = '';\n this.content.main.removeAttribute('style');\n this.main.main.classList.add(this.classes.main);\n this.content.main.classList.add(this.classes.content);\n if (this.settings.style !== '') {\n this.main.main.style.cssText = this.settings.style;\n this.content.main.style.cssText = this.settings.style;\n }\n if (this.settings.class.length) {\n for (const c of this.settings.class) {\n if (c.trim() !== '') {\n this.main.main.classList.add(c.trim());\n this.content.main.classList.add(c.trim());\n }\n }\n }\n if (this.settings.contentPosition === 'relative') {\n this.content.main.classList.add('ss-' + this.settings.contentPosition);\n }\n }\n updateAriaAttributes() {\n this.main.main.role = 'combobox';\n this.main.main.setAttribute('aria-haspopup', 'listbox');\n this.main.main.setAttribute('aria-controls', this.content.main.id);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.setAttribute('role', 'listbox');\n }\n mainDiv() {\n var _a;\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n main.setAttribute('aria-label', this.settings.ariaLabel);\n main.tabIndex = 0;\n main.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n this.callbacks.open();\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Enter':\n case ' ':\n this.callbacks.open();\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n }\n return false;\n case 'Escape':\n this.callbacks.close();\n return false;\n }\n return false;\n };\n main.onclick = (e) => {\n if (this.settings.disabled) {\n return;\n }\n this.settings.isOpen ? this.callbacks.close() : this.callbacks.open();\n };\n const values = document.createElement('div');\n values.classList.add(this.classes.values);\n main.appendChild(values);\n const deselect = document.createElement('div');\n deselect.classList.add(this.classes.deselect);\n const selectedOptions = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getSelectedOptions();\n if (!this.settings.allowDeselect || (this.settings.isMultiple && selectedOptions && selectedOptions.length <= 0)) {\n deselect.classList.add(this.classes.hide);\n }\n else {\n deselect.classList.remove(this.classes.hide);\n }\n deselect.onclick = (e) => {\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = [];\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n if (this.settings.isMultiple) {\n this.callbacks.setSelected([], false);\n this.updateDeselectAll();\n }\n else {\n const firstOption = this.store.getFirstOption();\n const value = firstOption ? firstOption.value : '';\n this.callbacks.setSelected(value, false);\n }\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(this.store.getSelectedOptions());\n }\n }\n };\n const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deselectSvg.setAttribute('viewBox', '0 0 100 100');\n const deselectPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deselectPath.setAttribute('d', this.classes.deselectPath);\n deselectSvg.appendChild(deselectPath);\n deselect.appendChild(deselectSvg);\n main.appendChild(deselect);\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.classList.add(this.classes.arrow);\n arrow.setAttribute('viewBox', '0 0 100 100');\n const arrowPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrowPath.setAttribute('d', this.classes.arrowClose);\n if (this.settings.alwaysOpen) {\n arrow.classList.add(this.classes.hide);\n }\n arrow.appendChild(arrowPath);\n main.appendChild(arrow);\n return {\n main: main,\n values: values,\n deselect: {\n main: deselect,\n svg: deselectSvg,\n path: deselectPath,\n },\n arrow: {\n main: arrow,\n path: arrowPath,\n },\n };\n }\n mainFocus(eventType) {\n if (eventType !== 'click') {\n this.main.main.focus({ preventScroll: true });\n }\n }\n placeholder() {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n let placeholderText = this.settings.placeholderText;\n if (placeholderOption.length) {\n if (placeholderOption[0].html !== '') {\n placeholderText = placeholderOption[0].html;\n }\n else if (placeholderOption[0].text !== '') {\n placeholderText = placeholderOption[0].text;\n }\n }\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.placeholder);\n placeholder.innerHTML = placeholderText;\n return placeholder;\n }\n renderValues() {\n if (!this.settings.isMultiple) {\n this.renderSingleValue();\n return;\n }\n this.renderMultipleValues();\n this.updateDeselectAll();\n }\n renderSingleValue() {\n const selected = this.store.filter((o) => {\n return o.selected && !o.placeholder;\n }, false);\n const selectedSingle = selected.length > 0 ? selected[0] : null;\n if (!selectedSingle) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n }\n else {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.single);\n if (selectedSingle.html) {\n singleValue.innerHTML = selectedSingle.html;\n }\n else {\n singleValue.innerText = selectedSingle.text;\n }\n this.main.values.innerHTML = singleValue.outerHTML;\n }\n if (!this.settings.allowDeselect || !selected.length) {\n this.main.deselect.main.classList.add(this.classes.hide);\n }\n else {\n this.main.deselect.main.classList.remove(this.classes.hide);\n }\n }\n renderMultipleValues() {\n let currentNodes = this.main.values.childNodes;\n let selectedOptions = this.store.filter((opt) => {\n return opt.selected && opt.display;\n }, false);\n if (selectedOptions.length === 0) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n return;\n }\n else {\n const placeholder = this.main.values.querySelector('.' + this.classes.placeholder);\n if (placeholder) {\n placeholder.remove();\n }\n }\n if (selectedOptions.length > this.settings.maxValuesShown) {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.max);\n singleValue.textContent = this.settings.maxValuesMessage.replace('{number}', selectedOptions.length.toString());\n this.main.values.innerHTML = singleValue.outerHTML;\n return;\n }\n else {\n const maxValuesMessage = this.main.values.querySelector('.' + this.classes.max);\n if (maxValuesMessage) {\n maxValuesMessage.remove();\n }\n }\n let removeNodes = [];\n for (let i = 0; i < currentNodes.length; i++) {\n const node = currentNodes[i];\n const id = node.getAttribute('data-id');\n if (id) {\n const found = selectedOptions.filter((opt) => {\n return opt.id === id;\n }, false);\n if (!found.length) {\n removeNodes.push(node);\n }\n }\n }\n for (const n of removeNodes) {\n n.classList.add(this.classes.valueOut);\n setTimeout(() => {\n if (this.main.values.hasChildNodes() && this.main.values.contains(n)) {\n this.main.values.removeChild(n);\n }\n }, 100);\n }\n currentNodes = this.main.values.childNodes;\n for (let d = 0; d < selectedOptions.length; d++) {\n let shouldAdd = true;\n for (let i = 0; i < currentNodes.length; i++) {\n if (selectedOptions[d].id === String(currentNodes[i].dataset.id)) {\n shouldAdd = false;\n }\n }\n if (shouldAdd) {\n if (this.settings.keepOrder) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else {\n if (currentNodes.length === 0) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else if (d === 0) {\n this.main.values.insertBefore(this.multipleValue(selectedOptions[d]), currentNodes[d]);\n }\n else {\n currentNodes[d - 1].insertAdjacentElement('afterend', this.multipleValue(selectedOptions[d]));\n }\n }\n }\n }\n }\n multipleValue(option) {\n const value = document.createElement('div');\n value.classList.add(this.classes.value);\n value.dataset.id = option.id;\n const text = document.createElement('div');\n text.classList.add(this.classes.valueText);\n text.innerText = option.text;\n value.appendChild(text);\n if (!option.mandatory) {\n const deleteDiv = document.createElement('div');\n deleteDiv.classList.add(this.classes.valueDelete);\n deleteDiv.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = before.filter((o) => {\n return o.selected && o.id !== option.id;\n }, true);\n if (this.settings.minSelected && after.length < this.settings.minSelected) {\n return;\n }\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n let selectedValues = [];\n for (const o of after) {\n if (o instanceof Optgroup) {\n for (const c of o.options) {\n selectedValues.push(c.value);\n }\n }\n if (o instanceof Option) {\n selectedValues.push(o.value);\n }\n }\n this.callbacks.setSelected(selectedValues, false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n this.updateDeselectAll();\n }\n };\n const deleteSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deleteSvg.setAttribute('viewBox', '0 0 100 100');\n const deletePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deletePath.setAttribute('d', this.classes.optionDelete);\n deleteSvg.appendChild(deletePath);\n deleteDiv.appendChild(deleteSvg);\n value.appendChild(deleteDiv);\n }\n return value;\n }\n contentDiv() {\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n const search = this.searchDiv();\n main.appendChild(search.main);\n const list = this.listDiv();\n main.appendChild(list);\n return {\n main: main,\n search: search,\n list: list,\n };\n }\n moveContent() {\n if (this.settings.contentPosition === 'relative') {\n this.moveContentBelow();\n return;\n }\n if (this.settings.openPosition === 'down') {\n this.moveContentBelow();\n return;\n }\n else if (this.settings.openPosition === 'up') {\n this.moveContentAbove();\n return;\n }\n if (this.putContent() === 'up') {\n this.moveContentAbove();\n }\n else {\n this.moveContentBelow();\n }\n }\n searchDiv() {\n const main = document.createElement('div');\n const input = document.createElement('input');\n const addable = document.createElement('div');\n main.classList.add(this.classes.search);\n const searchReturn = {\n main,\n input,\n };\n if (!this.settings.showSearch) {\n main.classList.add(this.classes.hide);\n input.readOnly = true;\n }\n input.type = 'search';\n input.placeholder = this.settings.searchPlaceholder;\n input.tabIndex = -1;\n input.setAttribute('aria-label', this.settings.searchPlaceholder);\n input.setAttribute('autocapitalize', 'off');\n input.setAttribute('autocomplete', 'off');\n input.setAttribute('autocorrect', 'off');\n input.oninput = debounce((e) => {\n this.callbacks.search(e.target.value);\n }, 100);\n input.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Escape':\n this.callbacks.close();\n return false;\n case 'Enter':\n case ' ':\n if (this.callbacks.addable && e.ctrlKey) {\n addable.click();\n return false;\n }\n else {\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n }\n return true;\n }\n return true;\n };\n main.appendChild(input);\n if (this.callbacks.addable) {\n addable.classList.add(this.classes.addable);\n const plus = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n plus.setAttribute('viewBox', '0 0 100 100');\n const plusPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n plusPath.setAttribute('d', this.classes.addablePath);\n plus.appendChild(plusPath);\n addable.appendChild(plus);\n addable.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!this.callbacks.addable) {\n return;\n }\n const inputValue = this.content.search.input.value.trim();\n if (inputValue === '') {\n this.content.search.input.focus();\n return;\n }\n const runFinish = (oo) => {\n let newOption = new Option(oo);\n this.callbacks.addOption(newOption);\n if (this.settings.isMultiple) {\n let values = this.store.getSelected();\n values.push(newOption.value);\n this.callbacks.setSelected(values, true);\n }\n else {\n this.callbacks.setSelected([newOption.value], true);\n }\n this.callbacks.search('');\n if (this.settings.closeOnSelect) {\n setTimeout(() => {\n this.callbacks.close();\n }, 100);\n }\n };\n const addableValue = this.callbacks.addable(inputValue);\n if (addableValue === false || addableValue === undefined || addableValue === null) {\n return;\n }\n if (addableValue instanceof Promise) {\n addableValue.then((value) => {\n if (typeof value === 'string') {\n runFinish({\n text: value,\n value: value,\n });\n }\n else {\n runFinish(value);\n }\n });\n }\n else if (typeof addableValue === 'string') {\n runFinish({\n text: addableValue,\n value: addableValue,\n });\n }\n else {\n runFinish(addableValue);\n }\n return;\n };\n main.appendChild(addable);\n searchReturn.addable = {\n main: addable,\n svg: plus,\n path: plusPath,\n };\n }\n return searchReturn;\n }\n searchFocus() {\n this.content.search.input.focus();\n }\n getOptions(notPlaceholder = false, notDisabled = false, notHidden = false) {\n let query = '.' + this.classes.option;\n if (notPlaceholder) {\n query += ':not(.' + this.classes.placeholder + ')';\n }\n if (notDisabled) {\n query += ':not(.' + this.classes.disabled + ')';\n }\n if (notHidden) {\n query += ':not(.' + this.classes.hide + ')';\n }\n return Array.from(this.content.list.querySelectorAll(query));\n }\n highlight(dir) {\n const options = this.getOptions(true, true, true);\n if (options.length === 0) {\n return;\n }\n if (options.length === 1) {\n if (!options[0].classList.contains(this.classes.highlighted)) {\n options[0].classList.add(this.classes.highlighted);\n return;\n }\n }\n let highlighted = false;\n for (const o of options) {\n if (o.classList.contains(this.classes.highlighted)) {\n highlighted = true;\n }\n }\n if (!highlighted) {\n for (const o of options) {\n if (o.classList.contains(this.classes.selected)) {\n o.classList.add(this.classes.highlighted);\n break;\n }\n }\n }\n for (let i = 0; i < options.length; i++) {\n if (options[i].classList.contains(this.classes.highlighted)) {\n const prevOption = options[i];\n prevOption.classList.remove(this.classes.highlighted);\n const prevParent = prevOption.parentElement;\n if (prevParent && prevParent.classList.contains(this.classes.open)) {\n const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];\n selectOption.classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, selectOption);\n const selectParent = selectOption.parentElement;\n if (selectParent && selectParent.classList.contains(this.classes.close)) {\n const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n return;\n }\n }\n options[dir === 'down' ? 0 : options.length - 1].classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, options[dir === 'down' ? 0 : options.length - 1]);\n }\n listDiv() {\n const options = document.createElement('div');\n options.classList.add(this.classes.list);\n return options;\n }\n renderError(error) {\n this.content.list.innerHTML = '';\n const errorDiv = document.createElement('div');\n errorDiv.classList.add(this.classes.error);\n errorDiv.textContent = error;\n this.content.list.appendChild(errorDiv);\n }\n renderSearching() {\n this.content.list.innerHTML = '';\n const searchingDiv = document.createElement('div');\n searchingDiv.classList.add(this.classes.searching);\n searchingDiv.textContent = this.settings.searchingText;\n this.content.list.appendChild(searchingDiv);\n }\n renderOptions(data) {\n this.content.list.innerHTML = '';\n if (data.length === 0) {\n const noResults = document.createElement('div');\n noResults.classList.add(this.classes.search);\n noResults.innerHTML = this.settings.searchText;\n this.content.list.appendChild(noResults);\n return;\n }\n for (const d of data) {\n if (d instanceof Optgroup) {\n const optgroupEl = document.createElement('div');\n optgroupEl.classList.add(this.classes.optgroup);\n const optgroupLabel = document.createElement('div');\n optgroupLabel.classList.add(this.classes.optgroupLabel);\n optgroupEl.appendChild(optgroupLabel);\n const optgroupLabelText = document.createElement('div');\n optgroupLabelText.classList.add(this.classes.optgroupLabelText);\n optgroupLabelText.textContent = d.label;\n optgroupLabel.appendChild(optgroupLabelText);\n const optgroupActions = document.createElement('div');\n optgroupActions.classList.add(this.classes.optgroupActions);\n optgroupLabel.appendChild(optgroupActions);\n if (this.settings.isMultiple && d.selectAll) {\n const selectAll = document.createElement('div');\n selectAll.classList.add(this.classes.optgroupSelectAll);\n let allSelected = true;\n for (const o of d.options) {\n if (!o.selected) {\n allSelected = false;\n break;\n }\n }\n if (allSelected) {\n selectAll.classList.add(this.classes.selected);\n }\n const selectAllText = document.createElement('span');\n selectAllText.textContent = d.selectAllText;\n selectAll.appendChild(selectAllText);\n const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n selectAllSvg.setAttribute('viewBox', '0 0 100 100');\n selectAll.appendChild(selectAllSvg);\n const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);\n selectAllSvg.appendChild(selectAllBox);\n const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);\n selectAllSvg.appendChild(selectAllCheck);\n selectAll.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const currentSelected = this.store.getSelected();\n if (allSelected) {\n const newSelected = currentSelected.filter((s) => {\n for (const o of d.options) {\n if (s === o.value) {\n return false;\n }\n }\n return true;\n });\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n else {\n const newSelected = currentSelected.concat(d.options.map((o) => o.value));\n for (const o of d.options) {\n if (!this.store.getOptionByID(o.id)) {\n this.callbacks.addOption(o);\n }\n }\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n });\n optgroupActions.appendChild(selectAll);\n }\n if (d.closable !== 'off') {\n const optgroupClosable = document.createElement('div');\n optgroupClosable.classList.add(this.classes.optgroupClosable);\n const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');\n optgroupClosableSvg.classList.add(this.classes.arrow);\n optgroupClosable.appendChild(optgroupClosableSvg);\n const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n optgroupClosableSvg.appendChild(optgroupClosableArrow);\n if (d.options.some((o) => o.selected) || this.content.search.input.value.trim() !== '') {\n optgroupClosable.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'open') {\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'close') {\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n optgroupLabel.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (optgroupEl.classList.contains(this.classes.close)) {\n optgroupEl.classList.remove(this.classes.close);\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else {\n optgroupEl.classList.remove(this.classes.open);\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n });\n optgroupActions.appendChild(optgroupClosable);\n }\n optgroupEl.appendChild(optgroupLabel);\n for (const o of d.options) {\n optgroupEl.appendChild(this.option(o));\n }\n this.content.list.appendChild(optgroupEl);\n }\n if (d instanceof Option) {\n this.content.list.appendChild(this.option(d));\n }\n }\n }\n option(option) {\n if (option.placeholder) {\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.option);\n placeholder.classList.add(this.classes.hide);\n return placeholder;\n }\n const optionEl = document.createElement('div');\n optionEl.dataset.id = option.id;\n optionEl.id = option.id;\n optionEl.classList.add(this.classes.option);\n optionEl.setAttribute('role', 'option');\n if (option.class) {\n option.class.split(' ').forEach((dataClass) => {\n optionEl.classList.add(dataClass);\n });\n }\n if (option.style) {\n optionEl.style.cssText = option.style;\n }\n if (this.settings.searchHighlight && this.content.search.input.value.trim() !== '') {\n optionEl.innerHTML = this.highlightText(option.html !== '' ? option.html : option.text, this.content.search.input.value, this.classes.searchHighlighter);\n }\n else if (option.html !== '') {\n optionEl.innerHTML = option.html;\n }\n else {\n optionEl.textContent = option.text;\n }\n if (this.settings.showOptionTooltips && optionEl.textContent) {\n optionEl.setAttribute('title', optionEl.textContent);\n }\n if (!option.display) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.disabled) {\n optionEl.classList.add(this.classes.disabled);\n }\n if (option.selected && this.settings.hideSelected) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.selected) {\n optionEl.classList.add(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'true');\n this.main.main.setAttribute('aria-activedescendant', optionEl.id);\n }\n else {\n optionEl.classList.remove(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'false');\n }\n optionEl.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const selectedOptions = this.store.getSelected();\n const element = e.currentTarget;\n const elementID = String(element.dataset.id);\n if (option.disabled || (option.selected && !this.settings.allowDeselect)) {\n return;\n }\n if ((this.settings.isMultiple && this.settings.maxSelected <= selectedOptions.length && !option.selected) ||\n (this.settings.isMultiple && this.settings.minSelected >= selectedOptions.length && option.selected)) {\n return;\n }\n let shouldUpdate = false;\n const before = this.store.getSelectedOptions();\n let after = [];\n if (this.settings.isMultiple) {\n if (option.selected) {\n after = before.filter((o) => o.id !== elementID);\n }\n else {\n after = before.concat(option);\n }\n }\n if (!this.settings.isMultiple) {\n if (option.selected) {\n after = [];\n }\n else {\n after = [option];\n }\n }\n if (!this.callbacks.beforeChange) {\n shouldUpdate = true;\n }\n if (this.callbacks.beforeChange) {\n if (this.callbacks.beforeChange(after, before) === false) {\n shouldUpdate = false;\n }\n else {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n if (!this.store.getOptionByID(elementID)) {\n this.callbacks.addOption(option);\n }\n this.callbacks.setSelected(after.map((o) => o.value), false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n }\n });\n return optionEl;\n }\n destroy() {\n this.main.main.remove();\n this.content.main.remove();\n }\n highlightText(str, search, className) {\n let completedString = str;\n const regex = new RegExp('(' + search.trim() + ')(?![^<]*>[^<>]*)', 'i');\n if (!str.match(regex)) {\n return str;\n }\n const matchStartPosition = str.match(regex).index;\n const matchEndPosition = matchStartPosition + str.match(regex)[0].toString().length;\n const originalTextFoundByRegex = str.substring(matchStartPosition, matchEndPosition);\n completedString = completedString.replace(regex, `${originalTextFoundByRegex}`);\n return completedString;\n }\n moveContentAbove() {\n const mainHeight = this.main.main.offsetHeight;\n const contentHeight = this.content.main.offsetHeight;\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.classList.add(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.content.main.classList.add(this.classes.openAbove);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-' + (mainHeight + contentHeight - 1) + 'px 0px 0px 0px';\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n moveContentBelow() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.add(this.classes.openBelow);\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.add(this.classes.openBelow);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-1px 0px 0px 0px';\n if (this.settings.contentPosition !== 'relative') {\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n }\n ensureElementInView(container, element) {\n const cTop = container.scrollTop + container.offsetTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n if (eTop < cTop) {\n container.scrollTop -= cTop - eTop;\n }\n else if (eBottom > cBottom) {\n container.scrollTop += eBottom - cBottom;\n }\n }\n putContent() {\n const mainHeight = this.main.main.offsetHeight;\n const mainRect = this.main.main.getBoundingClientRect();\n const contentHeight = this.content.main.offsetHeight;\n const spaceBelow = window.innerHeight - (mainRect.top + mainHeight);\n if (spaceBelow <= contentHeight) {\n if (mainRect.top > contentHeight) {\n return 'up';\n }\n else {\n return 'down';\n }\n }\n return 'down';\n }\n updateDeselectAll() {\n if (!this.store || !this.settings) {\n return;\n }\n const selected = this.store.getSelectedOptions();\n const hasSelectedItems = selected && selected.length > 0;\n const isMultiple = this.settings.isMultiple;\n const allowDeselect = this.settings.allowDeselect;\n const deselectButton = this.main.deselect.main;\n const hideClass = this.classes.hide;\n if (allowDeselect && !(isMultiple && !hasSelectedItems)) {\n deselectButton.classList.remove(hideClass);\n }\n else {\n deselectButton.classList.add(hideClass);\n }\n }\n }\n\n class Select {\n constructor(select) {\n this.listen = false;\n this.observer = null;\n this.select = select;\n this.valueChange = this.valueChange.bind(this);\n this.select.addEventListener('change', this.valueChange, {\n passive: true,\n });\n this.observer = new MutationObserver(this.observeCall.bind(this));\n this.changeListen(true);\n }\n enable() {\n this.select.disabled = false;\n }\n disable() {\n this.select.disabled = true;\n }\n hideUI() {\n this.select.tabIndex = -1;\n this.select.style.display = 'none';\n this.select.setAttribute('aria-hidden', 'true');\n }\n showUI() {\n this.select.removeAttribute('tabindex');\n this.select.style.display = '';\n this.select.removeAttribute('aria-hidden');\n }\n changeListen(listen) {\n this.listen = listen;\n if (listen) {\n if (this.observer) {\n this.observer.observe(this.select, {\n subtree: true,\n childList: true,\n attributes: true,\n });\n }\n }\n if (!listen) {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n }\n valueChange(ev) {\n if (this.listen && this.onValueChange) {\n this.onValueChange(this.getSelectedValues());\n }\n return true;\n }\n observeCall(mutations) {\n if (!this.listen) {\n return;\n }\n let classChanged = false;\n let disabledChanged = false;\n let optgroupOptionChanged = false;\n for (const m of mutations) {\n if (m.target === this.select) {\n if (m.attributeName === 'disabled') {\n disabledChanged = true;\n }\n if (m.attributeName === 'class') {\n classChanged = true;\n }\n }\n if (m.target.nodeName === 'OPTGROUP' || m.target.nodeName === 'OPTION') {\n optgroupOptionChanged = true;\n }\n }\n if (classChanged && this.onClassChange) {\n this.onClassChange(this.select.className.split(' '));\n }\n if (disabledChanged && this.onDisabledChange) {\n this.changeListen(false);\n this.onDisabledChange(this.select.disabled);\n this.changeListen(true);\n }\n if (optgroupOptionChanged && this.onOptionsChange) {\n this.changeListen(false);\n this.onOptionsChange(this.getData());\n this.changeListen(true);\n }\n }\n getData() {\n let data = [];\n const nodes = this.select.childNodes;\n for (const n of nodes) {\n if (n.nodeName === 'OPTGROUP') {\n data.push(this.getDataFromOptgroup(n));\n }\n if (n.nodeName === 'OPTION') {\n data.push(this.getDataFromOption(n));\n }\n }\n return data;\n }\n getDataFromOptgroup(optgroup) {\n let data = {\n id: optgroup.id,\n label: optgroup.label,\n selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,\n selectAllText: optgroup.dataset ? optgroup.dataset.selectalltext : 'Select all',\n closable: optgroup.dataset ? optgroup.dataset.closable : 'off',\n options: [],\n };\n const options = optgroup.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTION') {\n data.options.push(this.getDataFromOption(o));\n }\n }\n return data;\n }\n getDataFromOption(option) {\n return {\n id: option.id,\n value: option.value,\n text: option.text,\n html: option.dataset && option.dataset.html ? option.dataset.html : '',\n selected: option.selected,\n display: option.style.display === 'none' ? false : true,\n disabled: option.disabled,\n mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,\n placeholder: option.dataset.placeholder === 'true',\n class: option.className,\n style: option.style.cssText,\n data: option.dataset,\n };\n }\n getSelectedValues() {\n let values = [];\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroupOptions = o.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n return values;\n }\n setSelected(value) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = value.includes(option.value);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = value.includes(option.value);\n }\n }\n this.changeListen(true);\n }\n updateSelect(id, style, classes) {\n this.changeListen(false);\n if (id) {\n this.select.dataset.id = id;\n }\n if (style) {\n this.select.style.cssText = style;\n }\n if (classes) {\n this.select.className = '';\n classes.forEach((c) => {\n if (c.trim() !== '') {\n this.select.classList.add(c.trim());\n }\n });\n }\n this.changeListen(true);\n }\n updateOptions(data) {\n this.changeListen(false);\n this.select.innerHTML = '';\n for (const d of data) {\n if (d instanceof Optgroup) {\n this.select.appendChild(this.createOptgroup(d));\n }\n if (d instanceof Option) {\n this.select.appendChild(this.createOption(d));\n }\n }\n this.select.dispatchEvent(new Event('change'));\n this.changeListen(true);\n }\n createOptgroup(optgroup) {\n const optgroupEl = document.createElement('optgroup');\n optgroupEl.id = optgroup.id;\n optgroupEl.label = optgroup.label;\n if (optgroup.selectAll) {\n optgroupEl.dataset.selectAll = 'true';\n }\n if (optgroup.closable !== 'off') {\n optgroupEl.dataset.closable = optgroup.closable;\n }\n if (optgroup.options) {\n for (const o of optgroup.options) {\n optgroupEl.appendChild(this.createOption(o));\n }\n }\n return optgroupEl;\n }\n createOption(info) {\n const optionEl = document.createElement('option');\n optionEl.id = info.id;\n optionEl.value = info.value;\n optionEl.innerHTML = info.text;\n if (info.html !== '') {\n optionEl.setAttribute('data-html', info.html);\n }\n if (info.selected) {\n optionEl.selected = info.selected;\n }\n if (info.disabled) {\n optionEl.disabled = true;\n }\n if (info.display === false) {\n optionEl.style.display = 'none';\n }\n if (info.placeholder) {\n optionEl.setAttribute('data-placeholder', 'true');\n }\n if (info.mandatory) {\n optionEl.setAttribute('data-mandatory', 'true');\n }\n if (info.class) {\n info.class.split(' ').forEach((optionClass) => {\n optionEl.classList.add(optionClass);\n });\n }\n if (info.data && typeof info.data === 'object') {\n Object.keys(info.data).forEach((key) => {\n optionEl.setAttribute('data-' + kebabCase(key), info.data[key]);\n });\n }\n return optionEl;\n }\n destroy() {\n this.changeListen(false);\n this.select.removeEventListener('change', this.valueChange);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n delete this.select.dataset.id;\n this.showUI();\n }\n }\n\n class Settings {\n constructor(settings) {\n this.id = '';\n this.style = '';\n this.class = [];\n this.isMultiple = false;\n this.isOpen = false;\n this.isFullOpen = false;\n this.intervalMove = null;\n if (!settings) {\n settings = {};\n }\n this.id = 'ss-' + generateID();\n this.style = settings.style || '';\n this.class = settings.class || [];\n this.disabled = settings.disabled !== undefined ? settings.disabled : false;\n this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false;\n this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true;\n this.ariaLabel = settings.ariaLabel || 'Combobox';\n this.searchPlaceholder = settings.searchPlaceholder || 'Search';\n this.searchText = settings.searchText || 'No Results';\n this.searchingText = settings.searchingText || 'Searching...';\n this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false;\n this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true;\n this.contentLocation = settings.contentLocation || document.body;\n this.contentPosition = settings.contentPosition || 'absolute';\n this.openPosition = settings.openPosition || 'auto';\n this.placeholderText = settings.placeholderText !== undefined ? settings.placeholderText : 'Select Value';\n this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;\n this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;\n this.keepOrder = settings.keepOrder !== undefined ? settings.keepOrder : false;\n this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;\n this.minSelected = settings.minSelected || 0;\n this.maxSelected = settings.maxSelected || 1000;\n this.timeoutDelay = settings.timeoutDelay || 200;\n this.maxValuesShown = settings.maxValuesShown || 20;\n this.maxValuesMessage = settings.maxValuesMessage || '{number} selected';\n }\n }\n\n class SlimSelect {\n constructor(config) {\n var _a;\n this.events = {\n search: undefined,\n searchFilter: (opt, search) => {\n return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;\n },\n addable: undefined,\n beforeChange: undefined,\n afterChange: undefined,\n beforeOpen: undefined,\n afterOpen: undefined,\n beforeClose: undefined,\n afterClose: undefined,\n };\n this.windowResize = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.windowScroll = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.documentClick = (e) => {\n if (!this.settings.isOpen) {\n return;\n }\n if (e.target && !hasClassInTree(e.target, this.settings.id)) {\n this.close(e.type);\n }\n };\n this.windowVisibilityChange = () => {\n if (document.hidden) {\n this.close();\n }\n };\n this.selectEl = (typeof config.select === 'string' ? document.querySelector(config.select) : config.select);\n if (!this.selectEl) {\n if (config.events && config.events.error) {\n config.events.error(new Error('Could not find select element'));\n }\n return;\n }\n if (this.selectEl.tagName !== 'SELECT') {\n if (config.events && config.events.error) {\n config.events.error(new Error('Element isnt of type select'));\n }\n return;\n }\n if (this.selectEl.dataset.ssid) {\n this.destroy();\n }\n this.settings = new Settings(config.settings);\n const debounceEvents = ['afterChange', 'beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'];\n for (const key in config.events) {\n if (!config.events.hasOwnProperty(key)) {\n continue;\n }\n if (debounceEvents.indexOf(key) !== -1) {\n this.events[key] = debounce(config.events[key], 100);\n }\n else {\n this.events[key] = config.events[key];\n }\n }\n this.settings.disabled = ((_a = config.settings) === null || _a === void 0 ? void 0 : _a.disabled) ? config.settings.disabled : this.selectEl.disabled;\n this.settings.isMultiple = this.selectEl.multiple;\n this.settings.style = this.selectEl.style.cssText;\n this.settings.class = this.selectEl.className.split(' ');\n this.select = new Select(this.selectEl);\n this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class);\n this.select.hideUI();\n this.select.onValueChange = (values) => {\n this.setSelected(values);\n };\n this.select.onClassChange = (classes) => {\n this.settings.class = classes;\n this.render.updateClassStyles();\n };\n this.select.onDisabledChange = (disabled) => {\n if (disabled) {\n this.disable();\n }\n else {\n this.enable();\n }\n };\n this.select.onOptionsChange = (data) => {\n this.setData(data);\n };\n this.store = new Store(this.settings.isMultiple ? 'multiple' : 'single', config.data ? config.data : this.select.getData());\n if (config.data) {\n this.select.updateOptions(this.store.getData());\n }\n const renderCallbacks = {\n open: this.open.bind(this),\n close: this.close.bind(this),\n addable: this.events.addable ? this.events.addable : undefined,\n setSelected: this.setSelected.bind(this),\n addOption: this.addOption.bind(this),\n search: this.search.bind(this),\n beforeChange: this.events.beforeChange,\n afterChange: this.events.afterChange,\n };\n this.render = new Render(this.settings, this.store, renderCallbacks);\n this.render.renderValues();\n this.render.renderOptions(this.store.getData());\n const selectAriaLabel = this.selectEl.getAttribute('aria-label');\n const selectAriaLabelledBy = this.selectEl.getAttribute('aria-labelledby');\n if (selectAriaLabel) {\n this.render.main.main.setAttribute('aria-label', selectAriaLabel);\n }\n else if (selectAriaLabelledBy) {\n this.render.main.main.setAttribute('aria-labelledby', selectAriaLabelledBy);\n }\n if (this.selectEl.parentNode) {\n this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);\n }\n window.addEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.addEventListener('scroll', this.windowScroll, false);\n }\n document.addEventListener('visibilitychange', this.windowVisibilityChange);\n if (this.settings.disabled) {\n this.disable();\n }\n if (this.settings.alwaysOpen) {\n this.open();\n }\n this.selectEl.slim = this;\n }\n enable() {\n this.settings.disabled = false;\n this.select.enable();\n this.render.enable();\n }\n disable() {\n this.settings.disabled = true;\n this.select.disable();\n this.render.disable();\n }\n getData() {\n return this.store.getData();\n }\n setData(data) {\n const selected = this.store.getSelected();\n const err = this.store.validateDataArray(data);\n if (err) {\n if (this.events.error) {\n this.events.error(err);\n }\n return;\n }\n this.store.setData(data);\n const dataClean = this.store.getData();\n this.select.updateOptions(dataClean);\n this.render.renderValues();\n this.render.renderOptions(dataClean);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n getSelected() {\n return this.store.getSelected();\n }\n setSelected(value, runAfterChange = true) {\n const selected = this.store.getSelected();\n this.store.setSelectedBy('value', Array.isArray(value) ? value : [value]);\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n if (this.render.content.search.input.value !== '') {\n this.search(this.render.content.search.input.value);\n }\n else {\n this.render.renderOptions(data);\n }\n if (runAfterChange && this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n addOption(option) {\n const selected = this.store.getSelected();\n if (!this.store.getDataOptions().some((o) => { var _a; return o.value === ((_a = option.value) !== null && _a !== void 0 ? _a : option.text); })) {\n this.store.addOption(option);\n }\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n this.render.renderOptions(data);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n open() {\n if (this.settings.disabled || this.settings.isOpen) {\n return;\n }\n if (this.events.beforeOpen) {\n this.events.beforeOpen();\n }\n this.render.open();\n if (this.settings.showSearch) {\n this.render.searchFocus();\n }\n this.settings.isOpen = true;\n setTimeout(() => {\n if (this.events.afterOpen) {\n this.events.afterOpen();\n }\n if (this.settings.isOpen) {\n this.settings.isFullOpen = true;\n }\n document.addEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.contentPosition === 'absolute') {\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n this.settings.intervalMove = setInterval(this.render.moveContent.bind(this.render), 500);\n }\n }\n close(eventType = null) {\n if (!this.settings.isOpen || this.settings.alwaysOpen) {\n return;\n }\n if (this.events.beforeClose) {\n this.events.beforeClose();\n }\n this.render.close();\n if (this.render.content.search.input.value !== '') {\n this.search('');\n }\n this.render.mainFocus(eventType);\n this.settings.isOpen = false;\n this.settings.isFullOpen = false;\n setTimeout(() => {\n if (this.events.afterClose) {\n this.events.afterClose();\n }\n document.removeEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n }\n search(value) {\n if (this.render.content.search.input.value !== value) {\n this.render.content.search.input.value = value;\n }\n if (!this.events.search) {\n this.render.renderOptions(value === '' ? this.store.getData() : this.store.search(value, this.events.searchFilter));\n return;\n }\n this.render.renderSearching();\n const searchResp = this.events.search(value, this.store.getSelectedOptions());\n if (searchResp instanceof Promise) {\n searchResp\n .then((data) => {\n this.render.renderOptions(this.store.partialToFullData(data));\n })\n .catch((err) => {\n this.render.renderError(typeof err === 'string' ? err : err.message);\n });\n return;\n }\n else if (Array.isArray(searchResp)) {\n this.render.renderOptions(this.store.partialToFullData(searchResp));\n }\n else {\n this.render.renderError('Search event must return a promise or an array of data');\n }\n }\n destroy() {\n document.removeEventListener('click', this.documentClick);\n window.removeEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.removeEventListener('scroll', this.windowScroll, false);\n }\n document.removeEventListener('visibilitychange', this.windowVisibilityChange);\n this.store.setData([]);\n this.render.destroy();\n this.select.destroy();\n }\n }\n\n return SlimSelect;\n\n}));\n","/*\n* Notiflix Notify AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Notiflix = factory(root);\n }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n 'use strict';\n\n // COMMON: SSR check: begin\n if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n return false;\n }\n // COMMON: SSR check: end\n\n // COMMON: Variables: begin\n var notiflixNamespace = 'Notiflix';\n var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n // COMMON: Variables: end\n\n // NOTIFY: Default Settings: begin\n var typesNotify = {\n Success: 'Success',\n Failure: 'Failure',\n Warning: 'Warning',\n Info: 'Info',\n };\n var newNotifySettings;\n var notifySettings = {\n wrapID: 'NotiflixNotifyWrap', // can not customizable\n overlayID: 'NotiflixNotifyOverlay', // can not customizable\n width: '280px',\n position: 'right-top', // 'right-top' - 'right-bottom' - 'left-top' - 'left-bottom' - 'center-top' - 'center-bottom' - 'center-center'\n distance: '10px',\n opacity: 1,\n borderRadius: '5px',\n rtl: false,\n timeout: 3000,\n messageMaxLength: 110,\n backOverlay: false,\n backOverlayColor: 'rgba(0,0,0,0.5)',\n plainText: true,\n showOnlyTheLastOne: false,\n clickToClose: false,\n pauseOnHover: true,\n\n ID: 'NotiflixNotify',\n className: 'notiflix-notify',\n zindex: 4001,\n fontFamily: 'Quicksand',\n fontSize: '13px',\n cssAnimation: true,\n cssAnimationDuration: 400,\n cssAnimationStyle: 'fade', // 'fade' - 'zoom' - 'from-right' - 'from-top' - 'from-bottom' - 'from-left'\n closeButton: false,\n useIcon: true,\n useFontAwesome: false,\n fontAwesomeIconStyle: 'basic', // 'basic' - 'shadow'\n fontAwesomeIconSize: '34px',\n\n success: {\n background: '#32c682',\n textColor: '#fff',\n childClassName: 'notiflix-notify-success',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-check-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(50,198,130,0.2)',\n },\n\n failure: {\n background: '#ff5549',\n textColor: '#fff',\n childClassName: 'notiflix-notify-failure',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-times-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(255,85,73,0.2)',\n },\n\n warning: {\n background: '#eebf31',\n textColor: '#fff',\n childClassName: 'notiflix-notify-warning',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-exclamation-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(238,191,49,0.2)',\n },\n\n info: {\n background: '#26c0d3',\n textColor: '#fff',\n childClassName: 'notiflix-notify-info',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-info-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(38,192,211,0.2)',\n },\n };\n // NOTIFY: Default Settings: end\n\n // COMMON: Console Error: begin\n var commonConsoleError = function (message) {\n return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n };\n // COMMON: Console Error: end\n\n // COMMON: Check Head or Body: begin\n var commonCheckHeadOrBody = function (element) {\n if (!element) { element = 'head'; }\n if (window.document[element] === null) {\n commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n return false;\n }\n return true;\n };\n // COMMON: Check Head or Body: end\n\n // COMMON: Set Internal CSS Codes: begin\n var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n // check doc head\n if (!commonCheckHeadOrBody('head')) { return false; }\n\n // internal css\n if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n var internalCSS = window.document.createElement('style');\n internalCSS.id = styleElementId;\n internalCSS.innerHTML = getInternalCSSCodes();\n window.document.head.appendChild(internalCSS);\n }\n };\n // COMMON: Set Internal CSS Codes: end\n\n // COMMON: Extend Options: begin\n var commonExtendOptions = function () {\n // variables\n var extended = {};\n var deep = false;\n var i = 0;\n // check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n // merge the object into the extended object\n var merge = function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // if property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n // loop through each object and conduct a merge\n for (; i < arguments.length; i++) {\n merge(arguments[i]);\n }\n return extended;\n };\n // COMMON: Extend Options: end\n\n // COMMON: Get Plaintext: begin\n var commonGetPlaintext = function (html) {\n var htmlPool = window.document.createElement('div');\n htmlPool.innerHTML = html;\n return htmlPool.textContent || htmlPool.innerText || '';\n };\n // COMMON: Get Plaintext: end\n\n // NOTIFY: Get Internal CSS Codes: begin\n var notifyGetInternalCSSCodes = function () {\n var notifyCSS = '[id^=NotiflixNotifyWrap]{pointer-events:none;position:fixed;z-index:4001;opacity:1;right:10px;top:10px;width:280px;max-width:96%;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent}[id^=NotiflixNotifyWrap].nx-flex-center-center{max-height:calc(100vh - 20px);overflow-x:hidden;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:auto}[id^=NotiflixNotifyWrap]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixNotifyWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyOverlay]{-webkit-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;transition:background .3s ease-in-out}[id^=NotiflixNotifyWrap]>div{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}';\n return notifyCSS || null;\n };\n // NOTIFY: Get Internal CSS Codes: end\n\n // NOTIFY: Create: begin\n var notifyCreateCounter = 0;\n var notifyCreate = function (notifyType, message, callbackOrOptions, options) {\n // check doc body\n if (!commonCheckHeadOrBody('body')) { return false; }\n\n // if not initialized pretend like init\n if (!newNotifySettings) {\n Notiflix.Notify.init({});\n }\n\n // create a backup for new settings\n var newNotifySettingsBackup = commonExtendOptions(true, newNotifySettings, {});\n\n // check callbackOrOptions and options: begin\n if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n // new options\n var newOptions = {};\n if (typeof callbackOrOptions === 'object') {\n newOptions = callbackOrOptions;\n } else if (typeof options === 'object') {\n newOptions = options;\n }\n\n // extend new settings with the new options\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newOptions);\n }\n // check callbackOrOptions and options: end\n\n // notify type\n var theType = newNotifySettings[notifyType.toLocaleLowerCase('en')];\n\n // notify counter\n notifyCreateCounter++;\n\n // check the message: begin\n if (typeof message !== 'string') {\n message = 'Notiflix ' + notifyType;\n }\n // check the message: end\n\n // if plainText is true => HTML tags not allowed: begin\n if (newNotifySettings.plainText) {\n message = commonGetPlaintext(message); // message plain text\n }\n // if plainText is true => HTML tags not allowed: end\n\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: begin\n if (!newNotifySettings.plainText && message.length > newNotifySettings.messageMaxLength) {\n // extend settings for error massege\n newNotifySettings = commonExtendOptions(true, newNotifySettings, { closeButton: true, messageMaxLength: 150 });\n // error message\n message = 'Possible HTML Tags Error: The \"plainText\" option is \"false\" and the notification content length is more than the \"messageMaxLength\" option.';\n }\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: end\n\n // check message max length: begin\n if (message.length > newNotifySettings.messageMaxLength) {\n message = message.substring(0, newNotifySettings.messageMaxLength) + '...';\n }\n // check message max length: end\n\n // font awesome icon style: begin\n if (newNotifySettings.fontAwesomeIconStyle === 'shadow') {\n theType.fontAwesomeIconColor = theType.background;\n }\n // font awesome icon style: end\n\n // if cssAnimaion is false => duration: begin\n if (!newNotifySettings.cssAnimation) {\n newNotifySettings.cssAnimationDuration = 0;\n }\n // if cssAnimaion is false => duration: end\n\n // notify wrap: begin\n var ntflxNotifyWrap = window.document.getElementById(notifySettings.wrapID) || window.document.createElement('div');\n ntflxNotifyWrap.id = notifySettings.wrapID;\n ntflxNotifyWrap.style.width = newNotifySettings.width;\n ntflxNotifyWrap.style.zIndex = newNotifySettings.zindex;\n ntflxNotifyWrap.style.opacity = newNotifySettings.opacity;\n\n // wrap position: begin\n if (newNotifySettings.position === 'center-center') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.margin = 'auto';\n ntflxNotifyWrap.classList.add('nx-flex-center-center');\n ntflxNotifyWrap.style.maxHeight = 'calc((100vh - ' + newNotifySettings.distance + ') - ' + newNotifySettings.distance + ')';\n ntflxNotifyWrap.style.display = 'flex';\n ntflxNotifyWrap.style.flexWrap = 'wrap';\n ntflxNotifyWrap.style.flexDirection = 'column';\n ntflxNotifyWrap.style.justifyContent = 'center';\n ntflxNotifyWrap.style.alignItems = 'center';\n ntflxNotifyWrap.style.pointerEvents = 'none';\n } else if (newNotifySettings.position === 'center-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'center-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'right-bottom') {\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.left = 'auto';\n } else if (newNotifySettings.position === 'left-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n } else if (newNotifySettings.position === 'left-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.right = 'auto';\n } else { // 'right-top' or else\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.left = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n }\n // wrap position: end\n\n // if background overlay is true: begin\n if (newNotifySettings.backOverlay) {\n var ntflxNotifyOverlay = window.document.getElementById(notifySettings.overlayID) || window.document.createElement('div');\n ntflxNotifyOverlay.id = notifySettings.overlayID;\n ntflxNotifyOverlay.style.width = '100%';\n ntflxNotifyOverlay.style.height = '100%';\n ntflxNotifyOverlay.style.position = 'fixed';\n ntflxNotifyOverlay.style.zIndex = newNotifySettings.zindex - 1;\n ntflxNotifyOverlay.style.left = 0;\n ntflxNotifyOverlay.style.top = 0;\n ntflxNotifyOverlay.style.right = 0;\n ntflxNotifyOverlay.style.bottom = 0;\n ntflxNotifyOverlay.style.background = theType.backOverlayColor || newNotifySettings.backOverlayColor;\n ntflxNotifyOverlay.className = newNotifySettings.cssAnimation ? 'nx-with-animation' : '';\n ntflxNotifyOverlay.style.animationDuration = newNotifySettings.cssAnimation ? newNotifySettings.cssAnimationDuration + 'ms' : '';\n\n if (!window.document.getElementById(notifySettings.overlayID)) {\n window.document.body.appendChild(ntflxNotifyOverlay);\n }\n }\n // if background overlay is true: end\n\n if (!window.document.getElementById(notifySettings.wrapID)) {\n window.document.body.appendChild(ntflxNotifyWrap);\n }\n // notify wrap: end\n\n // notify content: begin\n var ntflxNotify = window.document.createElement('div');\n ntflxNotify.id = newNotifySettings.ID + '-' + notifyCreateCounter;\n ntflxNotify.className = newNotifySettings.className + ' ' + theType.childClassName + ' ' + (newNotifySettings.cssAnimation ? 'nx-with-animation' : '') + ' ' + (newNotifySettings.useIcon ? 'nx-with-icon' : '') + ' nx-' + newNotifySettings.cssAnimationStyle + ' ' + (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function' ? 'nx-with-close-button' : '') + ' ' + (typeof callbackOrOptions === 'function' ? 'nx-with-callback' : '') + ' ' + (newNotifySettings.clickToClose ? 'nx-notify-click-to-close' : '');\n ntflxNotify.style.fontSize = newNotifySettings.fontSize;\n ntflxNotify.style.color = theType.textColor;\n ntflxNotify.style.background = theType.background;\n ntflxNotify.style.borderRadius = newNotifySettings.borderRadius;\n ntflxNotify.style.pointerEvents = 'all';\n\n // rtl: begin\n if (newNotifySettings.rtl) {\n ntflxNotify.setAttribute('dir', 'rtl');\n ntflxNotify.classList.add('nx-rtl-on');\n }\n // rtl: end\n\n // font-family: begin\n ntflxNotify.style.fontFamily = '\"' + newNotifySettings.fontFamily + '\", ' + defaultFontFamily;\n // font-family: end\n\n // use css animation: begin\n if (newNotifySettings.cssAnimation) {\n ntflxNotify.style.animationDuration = newNotifySettings.cssAnimationDuration + 'ms';\n }\n // use css animation: end\n\n // close button element: begin\n var closeButtonHTML = '';\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n closeButtonHTML = '';\n }\n // close buttpon element: end\n\n // use icon: begin\n if (newNotifySettings.useIcon) {\n // use font awesome\n if (newNotifySettings.useFontAwesome) {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use notiflix icon\n else {\n var svgIcon = '';\n if (notifyType === typesNotify.Success) { // success\n svgIcon = '';\n } else if (notifyType === typesNotify.Failure) { // failure\n svgIcon = '';\n } else if (notifyType === typesNotify.Warning) { // warning\n svgIcon = '';\n } else if (notifyType === typesNotify.Info) { // info\n svgIcon = '';\n }\n ntflxNotify.innerHTML = svgIcon + '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n }\n // without icon\n else {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use icon: end\n // notify content: end\n\n // notify append or prepend: begin\n if (newNotifySettings.position === 'left-bottom' || newNotifySettings.position === 'right-bottom') { // the new one will be first\n var notifyWrap = window.document.getElementById(notifySettings.wrapID);\n notifyWrap.insertBefore(ntflxNotify, notifyWrap.firstChild);\n } else {\n window.document.getElementById(notifySettings.wrapID).appendChild(ntflxNotify);\n }\n // notify append or prepend: end\n\n // remove by timeout or click: begin\n var eachNotifyElement = window.document.getElementById(ntflxNotify.id);\n if (eachNotifyElement) {\n // timeout variables\n var timeoutHide;\n var timeoutRemove;\n\n // hide notify elm and hide overlay: begin\n var hideNotifyElementsAndOverlay = function () {\n eachNotifyElement.classList.add('nx-remove');\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && ntflxNotifyWrap.childElementCount <= 0) {\n removeOverlay.classList.add('nx-remove');\n }\n clearTimeout(timeoutHide);\n };\n // hide notify elm and hide overlay: end\n\n // remove notify elm and wrapper: begin\n var removeNotifyElmentsAndWrapper = function () {\n if (eachNotifyElement && eachNotifyElement.parentNode !== null) {\n eachNotifyElement.parentNode.removeChild(eachNotifyElement);\n }\n if (ntflxNotifyWrap.childElementCount <= 0 && ntflxNotifyWrap.parentNode !== null) { // if childs count === 0 remove wrap\n ntflxNotifyWrap.parentNode.removeChild(ntflxNotifyWrap);\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && removeOverlay.parentNode !== null) {\n removeOverlay.parentNode.removeChild(removeOverlay);\n }\n }\n clearTimeout(timeoutRemove);\n };\n // remove notify elm and wrapper: end\n\n // if has close button and callbackOrOptions is not a function: begin\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n var closeButtonElm = window.document.getElementById(ntflxNotify.id).querySelector('span.nx-close-button');\n closeButtonElm.addEventListener('click', function () {\n hideNotifyElementsAndOverlay();\n var clickToCloseTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(clickToCloseTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if has close button and callbackOrOptions is not a function: end\n\n // if callbackOrOptions or click to close: begin\n if (typeof callbackOrOptions === 'function' || newNotifySettings.clickToClose) {\n eachNotifyElement.addEventListener('click', function () {\n if (typeof callbackOrOptions === 'function') {\n callbackOrOptions();\n }\n hideNotifyElementsAndOverlay();\n var callbackTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(callbackTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if callbackOrOptions or click to close: end\n\n // else auto remove: begin\n if (!newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n // auto remove: begin\n var autoRemove = function () {\n timeoutHide = setTimeout(function () {\n hideNotifyElementsAndOverlay();\n }, newNotifySettings.timeout);\n timeoutRemove = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n }, newNotifySettings.timeout + newNotifySettings.cssAnimationDuration);\n };\n autoRemove();\n // auto remove: end\n\n // pause auto remove: begin\n if (newNotifySettings.pauseOnHover) {\n eachNotifyElement.addEventListener('mouseenter', function () {\n eachNotifyElement.classList.add('nx-paused');\n clearTimeout(timeoutHide);\n clearTimeout(timeoutRemove);\n });\n eachNotifyElement.addEventListener('mouseleave', function () {\n eachNotifyElement.classList.remove('nx-paused');\n autoRemove();\n });\n }\n // pause auto remove: end\n }\n // else auto remove: end\n }\n // remove by timeout or click: end\n\n // notify - show only the last one: begin\n if (newNotifySettings.showOnlyTheLastOne && notifyCreateCounter > 0) {\n var allNotifyElmNotTheLastOne = window.document.querySelectorAll('[id^=' + newNotifySettings.ID + '-]:not([id=' + newNotifySettings.ID + '-' + notifyCreateCounter + '])');\n for (var i = 0; i < allNotifyElmNotTheLastOne.length; i++) {\n var eachNotifyElmNotLastOne = allNotifyElmNotTheLastOne[i];\n if (eachNotifyElmNotLastOne.parentNode !== null) {\n eachNotifyElmNotLastOne.parentNode.removeChild(eachNotifyElmNotLastOne);\n }\n }\n }\n // notify - show only the last one: end\n\n // extend new settings with the backup settings\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newNotifySettingsBackup);\n\n };\n // NOTIFY: Create: end\n\n var Notiflix = {\n Notify: {\n // Init\n init: function (userNotifyOptions) {\n // extend options\n newNotifySettings = commonExtendOptions(true, notifySettings, userNotifyOptions);\n // internal css if exist\n commonSetInternalCSSCodes(notifyGetInternalCSSCodes, 'NotiflixNotifyInternalCSS');\n },\n // Merge First Init\n merge: function (userNotifyExtendOptions) {\n // if initialized already\n if (newNotifySettings) {\n newNotifySettings = commonExtendOptions(true, newNotifySettings, userNotifyExtendOptions);\n }\n // initialize first\n else {\n commonConsoleError('You have to initialize the Notify module before call Merge function.');\n return false;\n }\n },\n // Success\n success: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Success, message, callbackOrOptions, options);\n },\n // Failure\n failure: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Failure, message, callbackOrOptions, options);\n },\n // Warning\n warning: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Warning, message, callbackOrOptions, options);\n },\n // Info\n info: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Info, message, callbackOrOptions, options);\n },\n },\n };\n\n if (typeof window.Notiflix === 'object') {\n return commonExtendOptions(true, window.Notiflix, { Notify: Notiflix.Notify });\n } else {\n return { Notify: Notiflix.Notify };\n }\n\n});","import { fetchBreeds, fetchCatByBreed } from './cat-api';\nimport SlimSelect from 'slim-select'\nimport { Notify } from 'notiflix/build/notiflix-notify-aio';\nimport 'slim-select/dist/slimselect.css';\n\nconst breedSelect = document.querySelector('.breed-select');\nconst catInfo = document.querySelector('.cat-info');\nconst loader = document.querySelector('.loader');\nconst error = document.querySelector('.error');\n\nlet storedBreeds = [];\n\nfetchBreeds()\n .then(data => {\n data.forEach(breed => {\n storedBreeds.push({ text: breed.name, value: breed.id });\n });\n new SlimSelect({\n select: breedSelect,\n data: storedBreeds\n });\n })\n .catch(e => console.log(e));\n\n//console.log(storedBreeds)\n \nbreedSelect.addEventListener('change', onSelectBreed);\n\nfunction onSelectBreed(event) {\n const breedId = event.currentTarget.value;\n fetchCatByBreed(breedId)\n .then(data => {\n const { url, breeds, wikipedia_url } = data[0]; \n catInfo.innerHTML = `\n
\n
\n ${breeds[0].name}
\n
${breeds[0].description}
\n
Temperament: ${breeds[0].temperament}
\n
Link to Wikipedia page\n
`\n })\n .catch(e=> console.log(e));\n};\n\n \n \n\n\n"],"names":["$ae0c329fb0fb36dc$var$BASE_URL","$ae0c329fb0fb36dc$var$API_KEY","$ae0c329fb0fb36dc$export$57b7d3a597416aa2","breedId","URL","concat","fetch","then","resp","ok","Error","status","json","Object","defineProperty","$665014edacbfe17b$exports","value","default","instance","Constructor","TypeError","$74e7f8130373505f$var$_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","$74e7f8130373505f$exports","protoProps","staticProps","prototype","$72df7f47b4163a4e$exports","generateID","Math","random","toString","substring","hasClassInTree","element","className","hasClass","e","c","classList","contains","dataset","id","parentByClass","document","parentNode","debounce","func","timeout","wait","arguments","immediate","_len","args","Array","_key","context","self","later","apply","callNow","clearTimeout","setTimeout","isEqual","a","b","JSON","stringify","kebabCase","str","result","replace","match","toLowerCase","toUpperCase","Optgroup1","Optgroup","optgroup","this","label","selectAll","undefined","selectAllText","closable","options","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","o","push","Option1","err","return","Option","option","text","html","selected","display","disabled","mandatory","placeholder","class","style","data","Store1","Store","type","selectType","setData","isArray","dataObj","validateOption","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_step1","_iterator1","dataFinal","forEach","optOptions","partialToFullData","setSelectedBy","getSelected","filter","getData","selectedType","selectedValues","firstOption","hasSelected","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","includes","selectedOptions","getSelectedOptions","opt","selectedIDs","op","search","searchFilter","trim","includeOptgroup","dataSearch","Render1","Render","settings","store","callbacks","classes","main","values","single","max","valueText","valueDelete","valueOut","deselect","deselectPath","arrow","arrowClose","arrowOpen","content","openAbove","openBelow","searchHighlighter","searching","addable","addablePath","list","optgroupLabel","optgroupLabelText","optgroupActions","optgroupSelectAll","optgroupSelectAllBox","optgroupSelectAllCheck","optgroupClosable","optionDelete","highlighted","open","close","error","hide","mainDiv","contentDiv","updateClassStyles","updateAriaAttributes","contentLocation","appendChild","remove","input","add","path","setAttribute","openPosition","moveContent","selectedId","selectedOption","querySelector","ensureElementInView","removeAttribute","cssText","contentPosition","role","_a","createElement","ariaLabel","tabIndex","onkeydown","_this","highlight","click","onclick","isOpen","allowDeselect","isMultiple","stopPropagation","shouldDelete","before","after","beforeChange","setSelected","updateDeselectAll","getFirstOption","closeOnSelect","afterChange","deselectSvg","createElementNS","arrowPath","alwaysOpen","svg","eventType","focus","preventScroll","placeholderOption","placeholderText","placeholder1","innerHTML","renderMultipleValues","renderSingleValue","selectedSingle","singleValue","innerText","outerHTML","node","currentNodes","getAttribute","removeNodes","childNodes","maxValuesShown","textContent","maxValuesMessage","i2","_loop","_step3","n","_this1","hasChildNodes","removeChild","_loop1","d","shouldAdd","i1","String","keepOrder","multipleValue","insertBefore","insertAdjacentElement","deleteDiv","preventDefault","minSelected","o1","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","deleteSvg","deletePath","searchDiv","listDiv","putContent","moveContentAbove","moveContentBelow","searchReturn","showSearch","readOnly","searchPlaceholder","oninput","_this3","ctrlKey","plus","plusPath","_this2","inputValue","runFinish","oo","newOption","addOption","_this4","addableValue","Promise","notPlaceholder","notDisabled","notHidden","query","from","querySelectorAll","dir","getOptions","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","o2","prevOption","prevParent","parentElement","selectOption","selectParent","optgroupLabel1","errorDiv","searchingDiv","searchingText","noResults","searchText","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step71","_step7","optgroupEl","allSelected","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step5","_iterator5","err1","selectAllSvg","selectAllBox","selectAllCheck","addEventListener","currentSelected","_this6","newSelected","s","newSelected1","map","_iteratorNormalCompletion10","_didIteratorError10","_iteratorError10","_step10","_iterator10","o4","getOptionByID","optgroupClosableSvg","optgroupClosableArrow","some","_this5","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step6","_iterator6","o3","_iterator7","optionEl","split","dataClass","searchHighlight","highlightText","showOptionTooltips","hideSelected","currentTarget","elementID","maxSelected","shouldUpdate","completedString","regex","RegExp","matchStartPosition","index","matchEndPosition","originalTextFoundByRegex","mainHeight","offsetHeight","contentHeight","containerRect","getBoundingClientRect","margin","top","height","window","scrollY","left","scrollX","width","container","cTop","scrollTop","offsetTop","cBottom","clientHeight","eTop","eBottom","mainRect","innerHeight","hasSelectedItems","deselectButton","hideClass","Select1","Select","select","listen","observer","valueChange","bind","passive","MutationObserver","observeCall","changeListen","observe","subtree","childList","attributes","disconnect","ev","onValueChange","getSelectedValues","mutations","classChanged","disabledChanged","optgroupOptionChanged","m","attributeName","nodeName","onClassChange","onDisabledChange","onOptionsChange","nodes","getDataFromOptgroup","getDataFromOption","selectall","selectalltext","optgroupOptions","_iteratorNormalCompletion11","_didIteratorError11","_iteratorError11","_step11","_iterator11","option2","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_step12","_iterator12","option3","createOptgroup","createOption","dispatchEvent","Event","info","optionClass","keys","removeEventListener","showUI","Settings1","Settings","isFullOpen","intervalMove","body","timeoutDelay","SlimSelect1","SlimSelect","config","events","indexOf","beforeOpen","afterOpen","beforeClose","afterClose","windowResize","render","windowScroll","documentClick","windowVisibilityChange","hidden","selectEl","tagName","ssid","destroy","debounceEvents","hasOwnProperty","multiple","updateSelect","hideUI","disable","enable","updateOptions","renderCallbacks","renderValues","renderOptions","selectAriaLabel","selectAriaLabelledBy","nextSibling","slim","validateDataArray","dataClean","runAfterChange","getDataOptions","searchFocus","clearInterval","setInterval","mainFocus","renderSearching","searchResp","catch","renderError","message","factory","root","$parcel$global","$c72c4ee5f4be9835$exports","newNotifySettings","typesNotify","notifySettings","wrapID","overlayID","position","distance","opacity","borderRadius","rtl","messageMaxLength","backOverlay","backOverlayColor","plainText","showOnlyTheLastOne","clickToClose","pauseOnHover","ID","zindex","fontFamily","fontSize","cssAnimation","cssAnimationDuration","cssAnimationStyle","closeButton","useIcon","useFontAwesome","fontAwesomeIconStyle","fontAwesomeIconSize","success","background","textColor","childClassName","notiflixIconColor","fontAwesomeClassName","fontAwesomeIconColor","failure","warning","commonConsoleError","console","commonCheckHeadOrBody","commonExtendOptions","extended","deep","call","merge","obj","prop","notifyGetInternalCSSCodes","notifyCreateCounter","notifyCreate","notifyType","callbackOrOptions","Notiflix","Notify","init","newNotifySettingsBackup","newOptions","htmlPool","theType","toLocaleLowerCase","ntflxNotifyWrap","getElementById","zIndex","right","bottom","maxHeight","flexWrap","flexDirection","justifyContent","alignItems","pointerEvents","ntflxNotifyOverlay","animationDuration","ntflxNotify","color","closeButtonHTML","svgIcon","notifyWrap","firstChild","eachNotifyElement","timeoutHide","timeoutRemove","hideNotifyElementsAndOverlay","removeOverlay","childElementCount","removeNotifyElmentsAndWrapper","clickToCloseTimeout","callbackTimeout","autoRemove","allNotifyElmNotTheLastOne","eachNotifyElmNotLastOne","userNotifyOptions","getInternalCSSCodes","styleElementId","internalCSS","head","commonSetInternalCSSCodes","userNotifyExtendOptions","define","amd","$b8f9b7833fa37166$var$breedSelect","$b8f9b7833fa37166$var$catInfo","$b8f9b7833fa37166$var$storedBreeds","statusText","breed","name","$parcel$interopDefault","log","event","ref","url","breeds","wikipedia_url","description","temperament"],"version":3,"file":"index.f83c412d.js.map"}
\ No newline at end of file
+{"mappings":"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","sources":["src/cat-api.js","src/createMarkup.js","node_modules/slim-select/dist/slimselect.umd.js","node_modules/notiflix/build/notiflix-notify-aio.js","src/index.js"],"sourcesContent":["const BASE_URL = 'https://api.thecatapi.com/v1';\nconst API_KEY = 'live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm';\n\nfunction fetchBreeds() {\n const URL = `${BASE_URL}/breeds?api_key=${API_KEY}`\n return fetch(URL).then(resp => {\n if (!resp.ok) {\n throw new Error(resp.statusText)\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\nfunction fetchCatByBreed(breedId) {\n const URL = `${BASE_URL}/images/search?api_key=${API_KEY}&breed_ids=${breedId}`\n return fetch(URL)\n .then(resp => {\n if (!resp.ok) {\n throw new Error(resp.status);\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\n\nexport { fetchBreeds, fetchCatByBreed };","function createMarkup(catData) {\n const { url, breeds } = catData;\n return `\n
\n
\n \n
${breeds[0].name}
\n
${breeds[0].description}
\n
Temperament: ${breeds[0].temperament}
\n
Link to Wikipedia page\n
`;\n};\n\nexport { createMarkup };","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SlimSelect = factory());\n})(this, (function () { 'use strict';\n\n function generateID() {\n return Math.random().toString(36).substring(2, 10);\n }\n function hasClassInTree(element, className) {\n function hasClass(e, c) {\n if (c && e && e.classList && e.classList.contains(c)) {\n return e;\n }\n if (c && e && e.dataset && e.dataset.id && e.dataset.id === className) {\n return e;\n }\n return null;\n }\n function parentByClass(e, c) {\n if (!e || e === document) {\n return null;\n }\n else if (hasClass(e, c)) {\n return e;\n }\n else {\n return parentByClass(e.parentNode, c);\n }\n }\n return hasClass(element, className) || parentByClass(element, className);\n }\n function debounce(func, wait = 50, immediate = false) {\n let timeout;\n return function (...args) {\n const context = self;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n function isEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n function kebabCase(str) {\n const result = str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match) => '-' + match.toLowerCase());\n return str[0] === str[0].toUpperCase() ? result.substring(1) : result;\n }\n\n class Optgroup {\n constructor(optgroup) {\n this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;\n this.label = optgroup.label || '';\n this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;\n this.selectAllText = optgroup.selectAllText || 'Select All';\n this.closable = optgroup.closable || 'off';\n this.options = [];\n if (optgroup.options) {\n for (const o of optgroup.options) {\n this.options.push(new Option(o));\n }\n }\n }\n }\n class Option {\n constructor(option) {\n this.id = !option.id || option.id === '' ? generateID() : option.id;\n this.value = option.value === undefined ? option.text : option.value;\n this.text = option.text || '';\n this.html = option.html || '';\n this.selected = option.selected !== undefined ? option.selected : false;\n this.display = option.display !== undefined ? option.display : true;\n this.disabled = option.disabled !== undefined ? option.disabled : false;\n this.mandatory = option.mandatory !== undefined ? option.mandatory : false;\n this.placeholder = option.placeholder !== undefined ? option.placeholder : false;\n this.class = option.class || '';\n this.style = option.style || '';\n this.data = option.data || {};\n }\n }\n class Store {\n constructor(type, data) {\n this.selectType = 'single';\n this.data = [];\n this.selectType = type;\n this.setData(data);\n }\n validateDataArray(data) {\n if (!Array.isArray(data)) {\n return new Error('Data must be an array');\n }\n for (let dataObj of data) {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n if (!('label' in dataObj)) {\n return new Error('Optgroup must have a label');\n }\n if ('options' in dataObj && dataObj.options) {\n for (let option of dataObj.options) {\n return this.validateOption(option);\n }\n }\n }\n else if (dataObj instanceof Option || 'text' in dataObj) {\n return this.validateOption(dataObj);\n }\n else {\n return new Error('Data object must be a valid optgroup or option');\n }\n }\n return null;\n }\n validateOption(option) {\n if (!('text' in option)) {\n return new Error('Option must have a text');\n }\n return null;\n }\n partialToFullData(data) {\n let dataFinal = [];\n data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n let optOptions = [];\n if ('options' in dataObj && dataObj.options) {\n dataObj.options.forEach((option) => {\n optOptions.push(new Option(option));\n });\n }\n if (optOptions.length > 0) {\n dataFinal.push(new Optgroup(dataObj));\n }\n }\n if (dataObj instanceof Option || 'text' in dataObj) {\n dataFinal.push(new Option(dataObj));\n }\n });\n return dataFinal;\n }\n setData(data) {\n this.data = this.partialToFullData(data);\n if (this.selectType === 'single') {\n this.setSelectedBy('value', this.getSelected());\n }\n }\n getData() {\n return this.filter(null, true);\n }\n getDataOptions() {\n return this.filter(null, false);\n }\n addOption(option) {\n this.setData(this.getData().concat(new Option(option)));\n }\n setSelectedBy(selectedType, selectedValues) {\n let firstOption = null;\n let hasSelected = false;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n for (let option of dataObj.options) {\n if (!firstOption) {\n firstOption = option;\n }\n option.selected = hasSelected ? false : selectedValues.includes(option[selectedType]);\n if (option.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (dataObj instanceof Option) {\n if (!firstOption) {\n firstOption = dataObj;\n }\n dataObj.selected = hasSelected ? false : selectedValues.includes(dataObj[selectedType]);\n if (dataObj.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (this.selectType === 'single' && firstOption && !hasSelected) {\n firstOption.selected = true;\n }\n }\n getSelected() {\n let selectedOptions = this.getSelectedOptions();\n let selectedValues = [];\n selectedOptions.forEach((option) => {\n selectedValues.push(option.value);\n });\n return selectedValues;\n }\n getSelectedOptions() {\n return this.filter((opt) => {\n return opt.selected;\n }, false);\n }\n getSelectedIDs() {\n let selectedOptions = this.getSelectedOptions();\n let selectedIDs = [];\n selectedOptions.forEach((op) => {\n selectedIDs.push(op.id);\n });\n return selectedIDs;\n }\n getOptgroupByID(id) {\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup && dataObj.id === id) {\n return dataObj;\n }\n }\n return null;\n }\n getOptionByID(id) {\n let options = this.filter((opt) => {\n return opt.id === id;\n }, false);\n return options.length ? options[0] : null;\n }\n getSelectType() {\n return this.selectType;\n }\n getFirstOption() {\n let option = null;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n option = dataObj.options[0];\n }\n else if (dataObj instanceof Option) {\n option = dataObj;\n }\n if (option) {\n break;\n }\n }\n return option;\n }\n search(search, searchFilter) {\n search = search.trim();\n if (search === '') {\n return this.getData();\n }\n return this.filter((opt) => {\n return searchFilter(opt, search);\n }, true);\n }\n filter(filter, includeOptgroup) {\n const dataSearch = [];\n this.data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup) {\n let optOptions = [];\n dataObj.options.forEach((option) => {\n if (!filter || filter(option)) {\n if (!includeOptgroup) {\n dataSearch.push(new Option(option));\n }\n else {\n optOptions.push(new Option(option));\n }\n }\n });\n if (optOptions.length > 0) {\n let optgroup = new Optgroup(dataObj);\n optgroup.options = optOptions;\n dataSearch.push(optgroup);\n }\n }\n if (dataObj instanceof Option) {\n if (!filter || filter(dataObj)) {\n dataSearch.push(new Option(dataObj));\n }\n }\n });\n return dataSearch;\n }\n }\n\n class Render {\n constructor(settings, store, callbacks) {\n this.classes = {\n main: 'ss-main',\n placeholder: 'ss-placeholder',\n values: 'ss-values',\n single: 'ss-single',\n max: 'ss-max',\n value: 'ss-value',\n valueText: 'ss-value-text',\n valueDelete: 'ss-value-delete',\n valueOut: 'ss-value-out',\n deselect: 'ss-deselect',\n deselectPath: 'M10,10 L90,90 M10,90 L90,10',\n arrow: 'ss-arrow',\n arrowClose: 'M10,30 L50,70 L90,30',\n arrowOpen: 'M10,70 L50,30 L90,70',\n content: 'ss-content',\n openAbove: 'ss-open-above',\n openBelow: 'ss-open-below',\n search: 'ss-search',\n searchHighlighter: 'ss-search-highlight',\n searching: 'ss-searching',\n addable: 'ss-addable',\n addablePath: 'M50,10 L50,90 M10,50 L90,50',\n list: 'ss-list',\n optgroup: 'ss-optgroup',\n optgroupLabel: 'ss-optgroup-label',\n optgroupLabelText: 'ss-optgroup-label-text',\n optgroupActions: 'ss-optgroup-actions',\n optgroupSelectAll: 'ss-selectall',\n optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',\n optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',\n optgroupClosable: 'ss-closable',\n option: 'ss-option',\n optionDelete: 'M10,10 L90,90 M10,90 L90,10',\n highlighted: 'ss-highlighted',\n open: 'ss-open',\n close: 'ss-close',\n selected: 'ss-selected',\n error: 'ss-error',\n disabled: 'ss-disabled',\n hide: 'ss-hide',\n };\n this.store = store;\n this.settings = settings;\n this.callbacks = callbacks;\n this.main = this.mainDiv();\n this.content = this.contentDiv();\n this.updateClassStyles();\n this.updateAriaAttributes();\n this.settings.contentLocation.appendChild(this.content.main);\n }\n enable() {\n this.main.main.classList.remove(this.classes.disabled);\n this.content.search.input.disabled = false;\n }\n disable() {\n this.main.main.classList.add(this.classes.disabled);\n this.content.search.input.disabled = true;\n }\n open() {\n this.main.arrow.path.setAttribute('d', this.classes.arrowOpen);\n this.main.main.classList.add(this.settings.openPosition === 'up' ? this.classes.openAbove : this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'true');\n this.moveContent();\n const selectedOptions = this.store.getSelectedOptions();\n if (selectedOptions.length) {\n const selectedId = selectedOptions[selectedOptions.length - 1].id;\n const selectedOption = this.content.list.querySelector('[data-id=\"' + selectedId + '\"]');\n if (selectedOption) {\n this.ensureElementInView(this.content.list, selectedOption);\n }\n }\n }\n close() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.main.arrow.path.setAttribute('d', this.classes.arrowClose);\n }\n updateClassStyles() {\n this.main.main.className = '';\n this.main.main.removeAttribute('style');\n this.content.main.className = '';\n this.content.main.removeAttribute('style');\n this.main.main.classList.add(this.classes.main);\n this.content.main.classList.add(this.classes.content);\n if (this.settings.style !== '') {\n this.main.main.style.cssText = this.settings.style;\n this.content.main.style.cssText = this.settings.style;\n }\n if (this.settings.class.length) {\n for (const c of this.settings.class) {\n if (c.trim() !== '') {\n this.main.main.classList.add(c.trim());\n this.content.main.classList.add(c.trim());\n }\n }\n }\n if (this.settings.contentPosition === 'relative') {\n this.content.main.classList.add('ss-' + this.settings.contentPosition);\n }\n }\n updateAriaAttributes() {\n this.main.main.role = 'combobox';\n this.main.main.setAttribute('aria-haspopup', 'listbox');\n this.main.main.setAttribute('aria-controls', this.content.main.id);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.setAttribute('role', 'listbox');\n }\n mainDiv() {\n var _a;\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n main.setAttribute('aria-label', this.settings.ariaLabel);\n main.tabIndex = 0;\n main.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n this.callbacks.open();\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Enter':\n case ' ':\n this.callbacks.open();\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n }\n return false;\n case 'Escape':\n this.callbacks.close();\n return false;\n }\n return false;\n };\n main.onclick = (e) => {\n if (this.settings.disabled) {\n return;\n }\n this.settings.isOpen ? this.callbacks.close() : this.callbacks.open();\n };\n const values = document.createElement('div');\n values.classList.add(this.classes.values);\n main.appendChild(values);\n const deselect = document.createElement('div');\n deselect.classList.add(this.classes.deselect);\n const selectedOptions = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getSelectedOptions();\n if (!this.settings.allowDeselect || (this.settings.isMultiple && selectedOptions && selectedOptions.length <= 0)) {\n deselect.classList.add(this.classes.hide);\n }\n else {\n deselect.classList.remove(this.classes.hide);\n }\n deselect.onclick = (e) => {\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = [];\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n if (this.settings.isMultiple) {\n this.callbacks.setSelected([], false);\n this.updateDeselectAll();\n }\n else {\n const firstOption = this.store.getFirstOption();\n const value = firstOption ? firstOption.value : '';\n this.callbacks.setSelected(value, false);\n }\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(this.store.getSelectedOptions());\n }\n }\n };\n const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deselectSvg.setAttribute('viewBox', '0 0 100 100');\n const deselectPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deselectPath.setAttribute('d', this.classes.deselectPath);\n deselectSvg.appendChild(deselectPath);\n deselect.appendChild(deselectSvg);\n main.appendChild(deselect);\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.classList.add(this.classes.arrow);\n arrow.setAttribute('viewBox', '0 0 100 100');\n const arrowPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrowPath.setAttribute('d', this.classes.arrowClose);\n if (this.settings.alwaysOpen) {\n arrow.classList.add(this.classes.hide);\n }\n arrow.appendChild(arrowPath);\n main.appendChild(arrow);\n return {\n main: main,\n values: values,\n deselect: {\n main: deselect,\n svg: deselectSvg,\n path: deselectPath,\n },\n arrow: {\n main: arrow,\n path: arrowPath,\n },\n };\n }\n mainFocus(eventType) {\n if (eventType !== 'click') {\n this.main.main.focus({ preventScroll: true });\n }\n }\n placeholder() {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n let placeholderText = this.settings.placeholderText;\n if (placeholderOption.length) {\n if (placeholderOption[0].html !== '') {\n placeholderText = placeholderOption[0].html;\n }\n else if (placeholderOption[0].text !== '') {\n placeholderText = placeholderOption[0].text;\n }\n }\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.placeholder);\n placeholder.innerHTML = placeholderText;\n return placeholder;\n }\n renderValues() {\n if (!this.settings.isMultiple) {\n this.renderSingleValue();\n return;\n }\n this.renderMultipleValues();\n this.updateDeselectAll();\n }\n renderSingleValue() {\n const selected = this.store.filter((o) => {\n return o.selected && !o.placeholder;\n }, false);\n const selectedSingle = selected.length > 0 ? selected[0] : null;\n if (!selectedSingle) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n }\n else {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.single);\n if (selectedSingle.html) {\n singleValue.innerHTML = selectedSingle.html;\n }\n else {\n singleValue.innerText = selectedSingle.text;\n }\n this.main.values.innerHTML = singleValue.outerHTML;\n }\n if (!this.settings.allowDeselect || !selected.length) {\n this.main.deselect.main.classList.add(this.classes.hide);\n }\n else {\n this.main.deselect.main.classList.remove(this.classes.hide);\n }\n }\n renderMultipleValues() {\n let currentNodes = this.main.values.childNodes;\n let selectedOptions = this.store.filter((opt) => {\n return opt.selected && opt.display;\n }, false);\n if (selectedOptions.length === 0) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n return;\n }\n else {\n const placeholder = this.main.values.querySelector('.' + this.classes.placeholder);\n if (placeholder) {\n placeholder.remove();\n }\n }\n if (selectedOptions.length > this.settings.maxValuesShown) {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.max);\n singleValue.textContent = this.settings.maxValuesMessage.replace('{number}', selectedOptions.length.toString());\n this.main.values.innerHTML = singleValue.outerHTML;\n return;\n }\n else {\n const maxValuesMessage = this.main.values.querySelector('.' + this.classes.max);\n if (maxValuesMessage) {\n maxValuesMessage.remove();\n }\n }\n let removeNodes = [];\n for (let i = 0; i < currentNodes.length; i++) {\n const node = currentNodes[i];\n const id = node.getAttribute('data-id');\n if (id) {\n const found = selectedOptions.filter((opt) => {\n return opt.id === id;\n }, false);\n if (!found.length) {\n removeNodes.push(node);\n }\n }\n }\n for (const n of removeNodes) {\n n.classList.add(this.classes.valueOut);\n setTimeout(() => {\n if (this.main.values.hasChildNodes() && this.main.values.contains(n)) {\n this.main.values.removeChild(n);\n }\n }, 100);\n }\n currentNodes = this.main.values.childNodes;\n for (let d = 0; d < selectedOptions.length; d++) {\n let shouldAdd = true;\n for (let i = 0; i < currentNodes.length; i++) {\n if (selectedOptions[d].id === String(currentNodes[i].dataset.id)) {\n shouldAdd = false;\n }\n }\n if (shouldAdd) {\n if (this.settings.keepOrder) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else {\n if (currentNodes.length === 0) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else if (d === 0) {\n this.main.values.insertBefore(this.multipleValue(selectedOptions[d]), currentNodes[d]);\n }\n else {\n currentNodes[d - 1].insertAdjacentElement('afterend', this.multipleValue(selectedOptions[d]));\n }\n }\n }\n }\n }\n multipleValue(option) {\n const value = document.createElement('div');\n value.classList.add(this.classes.value);\n value.dataset.id = option.id;\n const text = document.createElement('div');\n text.classList.add(this.classes.valueText);\n text.innerText = option.text;\n value.appendChild(text);\n if (!option.mandatory) {\n const deleteDiv = document.createElement('div');\n deleteDiv.classList.add(this.classes.valueDelete);\n deleteDiv.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = before.filter((o) => {\n return o.selected && o.id !== option.id;\n }, true);\n if (this.settings.minSelected && after.length < this.settings.minSelected) {\n return;\n }\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n let selectedValues = [];\n for (const o of after) {\n if (o instanceof Optgroup) {\n for (const c of o.options) {\n selectedValues.push(c.value);\n }\n }\n if (o instanceof Option) {\n selectedValues.push(o.value);\n }\n }\n this.callbacks.setSelected(selectedValues, false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n this.updateDeselectAll();\n }\n };\n const deleteSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deleteSvg.setAttribute('viewBox', '0 0 100 100');\n const deletePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deletePath.setAttribute('d', this.classes.optionDelete);\n deleteSvg.appendChild(deletePath);\n deleteDiv.appendChild(deleteSvg);\n value.appendChild(deleteDiv);\n }\n return value;\n }\n contentDiv() {\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n const search = this.searchDiv();\n main.appendChild(search.main);\n const list = this.listDiv();\n main.appendChild(list);\n return {\n main: main,\n search: search,\n list: list,\n };\n }\n moveContent() {\n if (this.settings.contentPosition === 'relative') {\n this.moveContentBelow();\n return;\n }\n if (this.settings.openPosition === 'down') {\n this.moveContentBelow();\n return;\n }\n else if (this.settings.openPosition === 'up') {\n this.moveContentAbove();\n return;\n }\n if (this.putContent() === 'up') {\n this.moveContentAbove();\n }\n else {\n this.moveContentBelow();\n }\n }\n searchDiv() {\n const main = document.createElement('div');\n const input = document.createElement('input');\n const addable = document.createElement('div');\n main.classList.add(this.classes.search);\n const searchReturn = {\n main,\n input,\n };\n if (!this.settings.showSearch) {\n main.classList.add(this.classes.hide);\n input.readOnly = true;\n }\n input.type = 'search';\n input.placeholder = this.settings.searchPlaceholder;\n input.tabIndex = -1;\n input.setAttribute('aria-label', this.settings.searchPlaceholder);\n input.setAttribute('autocapitalize', 'off');\n input.setAttribute('autocomplete', 'off');\n input.setAttribute('autocorrect', 'off');\n input.oninput = debounce((e) => {\n this.callbacks.search(e.target.value);\n }, 100);\n input.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Escape':\n this.callbacks.close();\n return false;\n case 'Enter':\n case ' ':\n if (this.callbacks.addable && e.ctrlKey) {\n addable.click();\n return false;\n }\n else {\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n }\n return true;\n }\n return true;\n };\n main.appendChild(input);\n if (this.callbacks.addable) {\n addable.classList.add(this.classes.addable);\n const plus = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n plus.setAttribute('viewBox', '0 0 100 100');\n const plusPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n plusPath.setAttribute('d', this.classes.addablePath);\n plus.appendChild(plusPath);\n addable.appendChild(plus);\n addable.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!this.callbacks.addable) {\n return;\n }\n const inputValue = this.content.search.input.value.trim();\n if (inputValue === '') {\n this.content.search.input.focus();\n return;\n }\n const runFinish = (oo) => {\n let newOption = new Option(oo);\n this.callbacks.addOption(newOption);\n if (this.settings.isMultiple) {\n let values = this.store.getSelected();\n values.push(newOption.value);\n this.callbacks.setSelected(values, true);\n }\n else {\n this.callbacks.setSelected([newOption.value], true);\n }\n this.callbacks.search('');\n if (this.settings.closeOnSelect) {\n setTimeout(() => {\n this.callbacks.close();\n }, 100);\n }\n };\n const addableValue = this.callbacks.addable(inputValue);\n if (addableValue === false || addableValue === undefined || addableValue === null) {\n return;\n }\n if (addableValue instanceof Promise) {\n addableValue.then((value) => {\n if (typeof value === 'string') {\n runFinish({\n text: value,\n value: value,\n });\n }\n else {\n runFinish(value);\n }\n });\n }\n else if (typeof addableValue === 'string') {\n runFinish({\n text: addableValue,\n value: addableValue,\n });\n }\n else {\n runFinish(addableValue);\n }\n return;\n };\n main.appendChild(addable);\n searchReturn.addable = {\n main: addable,\n svg: plus,\n path: plusPath,\n };\n }\n return searchReturn;\n }\n searchFocus() {\n this.content.search.input.focus();\n }\n getOptions(notPlaceholder = false, notDisabled = false, notHidden = false) {\n let query = '.' + this.classes.option;\n if (notPlaceholder) {\n query += ':not(.' + this.classes.placeholder + ')';\n }\n if (notDisabled) {\n query += ':not(.' + this.classes.disabled + ')';\n }\n if (notHidden) {\n query += ':not(.' + this.classes.hide + ')';\n }\n return Array.from(this.content.list.querySelectorAll(query));\n }\n highlight(dir) {\n const options = this.getOptions(true, true, true);\n if (options.length === 0) {\n return;\n }\n if (options.length === 1) {\n if (!options[0].classList.contains(this.classes.highlighted)) {\n options[0].classList.add(this.classes.highlighted);\n return;\n }\n }\n let highlighted = false;\n for (const o of options) {\n if (o.classList.contains(this.classes.highlighted)) {\n highlighted = true;\n }\n }\n if (!highlighted) {\n for (const o of options) {\n if (o.classList.contains(this.classes.selected)) {\n o.classList.add(this.classes.highlighted);\n break;\n }\n }\n }\n for (let i = 0; i < options.length; i++) {\n if (options[i].classList.contains(this.classes.highlighted)) {\n const prevOption = options[i];\n prevOption.classList.remove(this.classes.highlighted);\n const prevParent = prevOption.parentElement;\n if (prevParent && prevParent.classList.contains(this.classes.open)) {\n const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];\n selectOption.classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, selectOption);\n const selectParent = selectOption.parentElement;\n if (selectParent && selectParent.classList.contains(this.classes.close)) {\n const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n return;\n }\n }\n options[dir === 'down' ? 0 : options.length - 1].classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, options[dir === 'down' ? 0 : options.length - 1]);\n }\n listDiv() {\n const options = document.createElement('div');\n options.classList.add(this.classes.list);\n return options;\n }\n renderError(error) {\n this.content.list.innerHTML = '';\n const errorDiv = document.createElement('div');\n errorDiv.classList.add(this.classes.error);\n errorDiv.textContent = error;\n this.content.list.appendChild(errorDiv);\n }\n renderSearching() {\n this.content.list.innerHTML = '';\n const searchingDiv = document.createElement('div');\n searchingDiv.classList.add(this.classes.searching);\n searchingDiv.textContent = this.settings.searchingText;\n this.content.list.appendChild(searchingDiv);\n }\n renderOptions(data) {\n this.content.list.innerHTML = '';\n if (data.length === 0) {\n const noResults = document.createElement('div');\n noResults.classList.add(this.classes.search);\n noResults.innerHTML = this.settings.searchText;\n this.content.list.appendChild(noResults);\n return;\n }\n for (const d of data) {\n if (d instanceof Optgroup) {\n const optgroupEl = document.createElement('div');\n optgroupEl.classList.add(this.classes.optgroup);\n const optgroupLabel = document.createElement('div');\n optgroupLabel.classList.add(this.classes.optgroupLabel);\n optgroupEl.appendChild(optgroupLabel);\n const optgroupLabelText = document.createElement('div');\n optgroupLabelText.classList.add(this.classes.optgroupLabelText);\n optgroupLabelText.textContent = d.label;\n optgroupLabel.appendChild(optgroupLabelText);\n const optgroupActions = document.createElement('div');\n optgroupActions.classList.add(this.classes.optgroupActions);\n optgroupLabel.appendChild(optgroupActions);\n if (this.settings.isMultiple && d.selectAll) {\n const selectAll = document.createElement('div');\n selectAll.classList.add(this.classes.optgroupSelectAll);\n let allSelected = true;\n for (const o of d.options) {\n if (!o.selected) {\n allSelected = false;\n break;\n }\n }\n if (allSelected) {\n selectAll.classList.add(this.classes.selected);\n }\n const selectAllText = document.createElement('span');\n selectAllText.textContent = d.selectAllText;\n selectAll.appendChild(selectAllText);\n const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n selectAllSvg.setAttribute('viewBox', '0 0 100 100');\n selectAll.appendChild(selectAllSvg);\n const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);\n selectAllSvg.appendChild(selectAllBox);\n const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);\n selectAllSvg.appendChild(selectAllCheck);\n selectAll.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const currentSelected = this.store.getSelected();\n if (allSelected) {\n const newSelected = currentSelected.filter((s) => {\n for (const o of d.options) {\n if (s === o.value) {\n return false;\n }\n }\n return true;\n });\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n else {\n const newSelected = currentSelected.concat(d.options.map((o) => o.value));\n for (const o of d.options) {\n if (!this.store.getOptionByID(o.id)) {\n this.callbacks.addOption(o);\n }\n }\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n });\n optgroupActions.appendChild(selectAll);\n }\n if (d.closable !== 'off') {\n const optgroupClosable = document.createElement('div');\n optgroupClosable.classList.add(this.classes.optgroupClosable);\n const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');\n optgroupClosableSvg.classList.add(this.classes.arrow);\n optgroupClosable.appendChild(optgroupClosableSvg);\n const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n optgroupClosableSvg.appendChild(optgroupClosableArrow);\n if (d.options.some((o) => o.selected) || this.content.search.input.value.trim() !== '') {\n optgroupClosable.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'open') {\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'close') {\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n optgroupLabel.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (optgroupEl.classList.contains(this.classes.close)) {\n optgroupEl.classList.remove(this.classes.close);\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else {\n optgroupEl.classList.remove(this.classes.open);\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n });\n optgroupActions.appendChild(optgroupClosable);\n }\n optgroupEl.appendChild(optgroupLabel);\n for (const o of d.options) {\n optgroupEl.appendChild(this.option(o));\n }\n this.content.list.appendChild(optgroupEl);\n }\n if (d instanceof Option) {\n this.content.list.appendChild(this.option(d));\n }\n }\n }\n option(option) {\n if (option.placeholder) {\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.option);\n placeholder.classList.add(this.classes.hide);\n return placeholder;\n }\n const optionEl = document.createElement('div');\n optionEl.dataset.id = option.id;\n optionEl.id = option.id;\n optionEl.classList.add(this.classes.option);\n optionEl.setAttribute('role', 'option');\n if (option.class) {\n option.class.split(' ').forEach((dataClass) => {\n optionEl.classList.add(dataClass);\n });\n }\n if (option.style) {\n optionEl.style.cssText = option.style;\n }\n if (this.settings.searchHighlight && this.content.search.input.value.trim() !== '') {\n optionEl.innerHTML = this.highlightText(option.html !== '' ? option.html : option.text, this.content.search.input.value, this.classes.searchHighlighter);\n }\n else if (option.html !== '') {\n optionEl.innerHTML = option.html;\n }\n else {\n optionEl.textContent = option.text;\n }\n if (this.settings.showOptionTooltips && optionEl.textContent) {\n optionEl.setAttribute('title', optionEl.textContent);\n }\n if (!option.display) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.disabled) {\n optionEl.classList.add(this.classes.disabled);\n }\n if (option.selected && this.settings.hideSelected) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.selected) {\n optionEl.classList.add(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'true');\n this.main.main.setAttribute('aria-activedescendant', optionEl.id);\n }\n else {\n optionEl.classList.remove(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'false');\n }\n optionEl.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const selectedOptions = this.store.getSelected();\n const element = e.currentTarget;\n const elementID = String(element.dataset.id);\n if (option.disabled || (option.selected && !this.settings.allowDeselect)) {\n return;\n }\n if ((this.settings.isMultiple && this.settings.maxSelected <= selectedOptions.length && !option.selected) ||\n (this.settings.isMultiple && this.settings.minSelected >= selectedOptions.length && option.selected)) {\n return;\n }\n let shouldUpdate = false;\n const before = this.store.getSelectedOptions();\n let after = [];\n if (this.settings.isMultiple) {\n if (option.selected) {\n after = before.filter((o) => o.id !== elementID);\n }\n else {\n after = before.concat(option);\n }\n }\n if (!this.settings.isMultiple) {\n if (option.selected) {\n after = [];\n }\n else {\n after = [option];\n }\n }\n if (!this.callbacks.beforeChange) {\n shouldUpdate = true;\n }\n if (this.callbacks.beforeChange) {\n if (this.callbacks.beforeChange(after, before) === false) {\n shouldUpdate = false;\n }\n else {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n if (!this.store.getOptionByID(elementID)) {\n this.callbacks.addOption(option);\n }\n this.callbacks.setSelected(after.map((o) => o.value), false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n }\n });\n return optionEl;\n }\n destroy() {\n this.main.main.remove();\n this.content.main.remove();\n }\n highlightText(str, search, className) {\n let completedString = str;\n const regex = new RegExp('(' + search.trim() + ')(?![^<]*>[^<>]*)', 'i');\n if (!str.match(regex)) {\n return str;\n }\n const matchStartPosition = str.match(regex).index;\n const matchEndPosition = matchStartPosition + str.match(regex)[0].toString().length;\n const originalTextFoundByRegex = str.substring(matchStartPosition, matchEndPosition);\n completedString = completedString.replace(regex, `${originalTextFoundByRegex}`);\n return completedString;\n }\n moveContentAbove() {\n const mainHeight = this.main.main.offsetHeight;\n const contentHeight = this.content.main.offsetHeight;\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.classList.add(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.content.main.classList.add(this.classes.openAbove);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-' + (mainHeight + contentHeight - 1) + 'px 0px 0px 0px';\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n moveContentBelow() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.add(this.classes.openBelow);\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.add(this.classes.openBelow);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-1px 0px 0px 0px';\n if (this.settings.contentPosition !== 'relative') {\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n }\n ensureElementInView(container, element) {\n const cTop = container.scrollTop + container.offsetTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n if (eTop < cTop) {\n container.scrollTop -= cTop - eTop;\n }\n else if (eBottom > cBottom) {\n container.scrollTop += eBottom - cBottom;\n }\n }\n putContent() {\n const mainHeight = this.main.main.offsetHeight;\n const mainRect = this.main.main.getBoundingClientRect();\n const contentHeight = this.content.main.offsetHeight;\n const spaceBelow = window.innerHeight - (mainRect.top + mainHeight);\n if (spaceBelow <= contentHeight) {\n if (mainRect.top > contentHeight) {\n return 'up';\n }\n else {\n return 'down';\n }\n }\n return 'down';\n }\n updateDeselectAll() {\n if (!this.store || !this.settings) {\n return;\n }\n const selected = this.store.getSelectedOptions();\n const hasSelectedItems = selected && selected.length > 0;\n const isMultiple = this.settings.isMultiple;\n const allowDeselect = this.settings.allowDeselect;\n const deselectButton = this.main.deselect.main;\n const hideClass = this.classes.hide;\n if (allowDeselect && !(isMultiple && !hasSelectedItems)) {\n deselectButton.classList.remove(hideClass);\n }\n else {\n deselectButton.classList.add(hideClass);\n }\n }\n }\n\n class Select {\n constructor(select) {\n this.listen = false;\n this.observer = null;\n this.select = select;\n this.valueChange = this.valueChange.bind(this);\n this.select.addEventListener('change', this.valueChange, {\n passive: true,\n });\n this.observer = new MutationObserver(this.observeCall.bind(this));\n this.changeListen(true);\n }\n enable() {\n this.select.disabled = false;\n }\n disable() {\n this.select.disabled = true;\n }\n hideUI() {\n this.select.tabIndex = -1;\n this.select.style.display = 'none';\n this.select.setAttribute('aria-hidden', 'true');\n }\n showUI() {\n this.select.removeAttribute('tabindex');\n this.select.style.display = '';\n this.select.removeAttribute('aria-hidden');\n }\n changeListen(listen) {\n this.listen = listen;\n if (listen) {\n if (this.observer) {\n this.observer.observe(this.select, {\n subtree: true,\n childList: true,\n attributes: true,\n });\n }\n }\n if (!listen) {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n }\n valueChange(ev) {\n if (this.listen && this.onValueChange) {\n this.onValueChange(this.getSelectedValues());\n }\n return true;\n }\n observeCall(mutations) {\n if (!this.listen) {\n return;\n }\n let classChanged = false;\n let disabledChanged = false;\n let optgroupOptionChanged = false;\n for (const m of mutations) {\n if (m.target === this.select) {\n if (m.attributeName === 'disabled') {\n disabledChanged = true;\n }\n if (m.attributeName === 'class') {\n classChanged = true;\n }\n }\n if (m.target.nodeName === 'OPTGROUP' || m.target.nodeName === 'OPTION') {\n optgroupOptionChanged = true;\n }\n }\n if (classChanged && this.onClassChange) {\n this.onClassChange(this.select.className.split(' '));\n }\n if (disabledChanged && this.onDisabledChange) {\n this.changeListen(false);\n this.onDisabledChange(this.select.disabled);\n this.changeListen(true);\n }\n if (optgroupOptionChanged && this.onOptionsChange) {\n this.changeListen(false);\n this.onOptionsChange(this.getData());\n this.changeListen(true);\n }\n }\n getData() {\n let data = [];\n const nodes = this.select.childNodes;\n for (const n of nodes) {\n if (n.nodeName === 'OPTGROUP') {\n data.push(this.getDataFromOptgroup(n));\n }\n if (n.nodeName === 'OPTION') {\n data.push(this.getDataFromOption(n));\n }\n }\n return data;\n }\n getDataFromOptgroup(optgroup) {\n let data = {\n id: optgroup.id,\n label: optgroup.label,\n selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,\n selectAllText: optgroup.dataset ? optgroup.dataset.selectalltext : 'Select all',\n closable: optgroup.dataset ? optgroup.dataset.closable : 'off',\n options: [],\n };\n const options = optgroup.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTION') {\n data.options.push(this.getDataFromOption(o));\n }\n }\n return data;\n }\n getDataFromOption(option) {\n return {\n id: option.id,\n value: option.value,\n text: option.text,\n html: option.dataset && option.dataset.html ? option.dataset.html : '',\n selected: option.selected,\n display: option.style.display === 'none' ? false : true,\n disabled: option.disabled,\n mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,\n placeholder: option.dataset.placeholder === 'true',\n class: option.className,\n style: option.style.cssText,\n data: option.dataset,\n };\n }\n getSelectedValues() {\n let values = [];\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroupOptions = o.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n return values;\n }\n setSelected(value) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = value.includes(option.value);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = value.includes(option.value);\n }\n }\n this.changeListen(true);\n }\n updateSelect(id, style, classes) {\n this.changeListen(false);\n if (id) {\n this.select.dataset.id = id;\n }\n if (style) {\n this.select.style.cssText = style;\n }\n if (classes) {\n this.select.className = '';\n classes.forEach((c) => {\n if (c.trim() !== '') {\n this.select.classList.add(c.trim());\n }\n });\n }\n this.changeListen(true);\n }\n updateOptions(data) {\n this.changeListen(false);\n this.select.innerHTML = '';\n for (const d of data) {\n if (d instanceof Optgroup) {\n this.select.appendChild(this.createOptgroup(d));\n }\n if (d instanceof Option) {\n this.select.appendChild(this.createOption(d));\n }\n }\n this.select.dispatchEvent(new Event('change'));\n this.changeListen(true);\n }\n createOptgroup(optgroup) {\n const optgroupEl = document.createElement('optgroup');\n optgroupEl.id = optgroup.id;\n optgroupEl.label = optgroup.label;\n if (optgroup.selectAll) {\n optgroupEl.dataset.selectAll = 'true';\n }\n if (optgroup.closable !== 'off') {\n optgroupEl.dataset.closable = optgroup.closable;\n }\n if (optgroup.options) {\n for (const o of optgroup.options) {\n optgroupEl.appendChild(this.createOption(o));\n }\n }\n return optgroupEl;\n }\n createOption(info) {\n const optionEl = document.createElement('option');\n optionEl.id = info.id;\n optionEl.value = info.value;\n optionEl.innerHTML = info.text;\n if (info.html !== '') {\n optionEl.setAttribute('data-html', info.html);\n }\n if (info.selected) {\n optionEl.selected = info.selected;\n }\n if (info.disabled) {\n optionEl.disabled = true;\n }\n if (info.display === false) {\n optionEl.style.display = 'none';\n }\n if (info.placeholder) {\n optionEl.setAttribute('data-placeholder', 'true');\n }\n if (info.mandatory) {\n optionEl.setAttribute('data-mandatory', 'true');\n }\n if (info.class) {\n info.class.split(' ').forEach((optionClass) => {\n optionEl.classList.add(optionClass);\n });\n }\n if (info.data && typeof info.data === 'object') {\n Object.keys(info.data).forEach((key) => {\n optionEl.setAttribute('data-' + kebabCase(key), info.data[key]);\n });\n }\n return optionEl;\n }\n destroy() {\n this.changeListen(false);\n this.select.removeEventListener('change', this.valueChange);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n delete this.select.dataset.id;\n this.showUI();\n }\n }\n\n class Settings {\n constructor(settings) {\n this.id = '';\n this.style = '';\n this.class = [];\n this.isMultiple = false;\n this.isOpen = false;\n this.isFullOpen = false;\n this.intervalMove = null;\n if (!settings) {\n settings = {};\n }\n this.id = 'ss-' + generateID();\n this.style = settings.style || '';\n this.class = settings.class || [];\n this.disabled = settings.disabled !== undefined ? settings.disabled : false;\n this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false;\n this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true;\n this.ariaLabel = settings.ariaLabel || 'Combobox';\n this.searchPlaceholder = settings.searchPlaceholder || 'Search';\n this.searchText = settings.searchText || 'No Results';\n this.searchingText = settings.searchingText || 'Searching...';\n this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false;\n this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true;\n this.contentLocation = settings.contentLocation || document.body;\n this.contentPosition = settings.contentPosition || 'absolute';\n this.openPosition = settings.openPosition || 'auto';\n this.placeholderText = settings.placeholderText !== undefined ? settings.placeholderText : 'Select Value';\n this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;\n this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;\n this.keepOrder = settings.keepOrder !== undefined ? settings.keepOrder : false;\n this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;\n this.minSelected = settings.minSelected || 0;\n this.maxSelected = settings.maxSelected || 1000;\n this.timeoutDelay = settings.timeoutDelay || 200;\n this.maxValuesShown = settings.maxValuesShown || 20;\n this.maxValuesMessage = settings.maxValuesMessage || '{number} selected';\n }\n }\n\n class SlimSelect {\n constructor(config) {\n var _a;\n this.events = {\n search: undefined,\n searchFilter: (opt, search) => {\n return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;\n },\n addable: undefined,\n beforeChange: undefined,\n afterChange: undefined,\n beforeOpen: undefined,\n afterOpen: undefined,\n beforeClose: undefined,\n afterClose: undefined,\n };\n this.windowResize = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.windowScroll = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.documentClick = (e) => {\n if (!this.settings.isOpen) {\n return;\n }\n if (e.target && !hasClassInTree(e.target, this.settings.id)) {\n this.close(e.type);\n }\n };\n this.windowVisibilityChange = () => {\n if (document.hidden) {\n this.close();\n }\n };\n this.selectEl = (typeof config.select === 'string' ? document.querySelector(config.select) : config.select);\n if (!this.selectEl) {\n if (config.events && config.events.error) {\n config.events.error(new Error('Could not find select element'));\n }\n return;\n }\n if (this.selectEl.tagName !== 'SELECT') {\n if (config.events && config.events.error) {\n config.events.error(new Error('Element isnt of type select'));\n }\n return;\n }\n if (this.selectEl.dataset.ssid) {\n this.destroy();\n }\n this.settings = new Settings(config.settings);\n const debounceEvents = ['afterChange', 'beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'];\n for (const key in config.events) {\n if (!config.events.hasOwnProperty(key)) {\n continue;\n }\n if (debounceEvents.indexOf(key) !== -1) {\n this.events[key] = debounce(config.events[key], 100);\n }\n else {\n this.events[key] = config.events[key];\n }\n }\n this.settings.disabled = ((_a = config.settings) === null || _a === void 0 ? void 0 : _a.disabled) ? config.settings.disabled : this.selectEl.disabled;\n this.settings.isMultiple = this.selectEl.multiple;\n this.settings.style = this.selectEl.style.cssText;\n this.settings.class = this.selectEl.className.split(' ');\n this.select = new Select(this.selectEl);\n this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class);\n this.select.hideUI();\n this.select.onValueChange = (values) => {\n this.setSelected(values);\n };\n this.select.onClassChange = (classes) => {\n this.settings.class = classes;\n this.render.updateClassStyles();\n };\n this.select.onDisabledChange = (disabled) => {\n if (disabled) {\n this.disable();\n }\n else {\n this.enable();\n }\n };\n this.select.onOptionsChange = (data) => {\n this.setData(data);\n };\n this.store = new Store(this.settings.isMultiple ? 'multiple' : 'single', config.data ? config.data : this.select.getData());\n if (config.data) {\n this.select.updateOptions(this.store.getData());\n }\n const renderCallbacks = {\n open: this.open.bind(this),\n close: this.close.bind(this),\n addable: this.events.addable ? this.events.addable : undefined,\n setSelected: this.setSelected.bind(this),\n addOption: this.addOption.bind(this),\n search: this.search.bind(this),\n beforeChange: this.events.beforeChange,\n afterChange: this.events.afterChange,\n };\n this.render = new Render(this.settings, this.store, renderCallbacks);\n this.render.renderValues();\n this.render.renderOptions(this.store.getData());\n const selectAriaLabel = this.selectEl.getAttribute('aria-label');\n const selectAriaLabelledBy = this.selectEl.getAttribute('aria-labelledby');\n if (selectAriaLabel) {\n this.render.main.main.setAttribute('aria-label', selectAriaLabel);\n }\n else if (selectAriaLabelledBy) {\n this.render.main.main.setAttribute('aria-labelledby', selectAriaLabelledBy);\n }\n if (this.selectEl.parentNode) {\n this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);\n }\n window.addEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.addEventListener('scroll', this.windowScroll, false);\n }\n document.addEventListener('visibilitychange', this.windowVisibilityChange);\n if (this.settings.disabled) {\n this.disable();\n }\n if (this.settings.alwaysOpen) {\n this.open();\n }\n this.selectEl.slim = this;\n }\n enable() {\n this.settings.disabled = false;\n this.select.enable();\n this.render.enable();\n }\n disable() {\n this.settings.disabled = true;\n this.select.disable();\n this.render.disable();\n }\n getData() {\n return this.store.getData();\n }\n setData(data) {\n const selected = this.store.getSelected();\n const err = this.store.validateDataArray(data);\n if (err) {\n if (this.events.error) {\n this.events.error(err);\n }\n return;\n }\n this.store.setData(data);\n const dataClean = this.store.getData();\n this.select.updateOptions(dataClean);\n this.render.renderValues();\n this.render.renderOptions(dataClean);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n getSelected() {\n return this.store.getSelected();\n }\n setSelected(value, runAfterChange = true) {\n const selected = this.store.getSelected();\n this.store.setSelectedBy('value', Array.isArray(value) ? value : [value]);\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n if (this.render.content.search.input.value !== '') {\n this.search(this.render.content.search.input.value);\n }\n else {\n this.render.renderOptions(data);\n }\n if (runAfterChange && this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n addOption(option) {\n const selected = this.store.getSelected();\n if (!this.store.getDataOptions().some((o) => { var _a; return o.value === ((_a = option.value) !== null && _a !== void 0 ? _a : option.text); })) {\n this.store.addOption(option);\n }\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n this.render.renderOptions(data);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n open() {\n if (this.settings.disabled || this.settings.isOpen) {\n return;\n }\n if (this.events.beforeOpen) {\n this.events.beforeOpen();\n }\n this.render.open();\n if (this.settings.showSearch) {\n this.render.searchFocus();\n }\n this.settings.isOpen = true;\n setTimeout(() => {\n if (this.events.afterOpen) {\n this.events.afterOpen();\n }\n if (this.settings.isOpen) {\n this.settings.isFullOpen = true;\n }\n document.addEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.contentPosition === 'absolute') {\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n this.settings.intervalMove = setInterval(this.render.moveContent.bind(this.render), 500);\n }\n }\n close(eventType = null) {\n if (!this.settings.isOpen || this.settings.alwaysOpen) {\n return;\n }\n if (this.events.beforeClose) {\n this.events.beforeClose();\n }\n this.render.close();\n if (this.render.content.search.input.value !== '') {\n this.search('');\n }\n this.render.mainFocus(eventType);\n this.settings.isOpen = false;\n this.settings.isFullOpen = false;\n setTimeout(() => {\n if (this.events.afterClose) {\n this.events.afterClose();\n }\n document.removeEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n }\n search(value) {\n if (this.render.content.search.input.value !== value) {\n this.render.content.search.input.value = value;\n }\n if (!this.events.search) {\n this.render.renderOptions(value === '' ? this.store.getData() : this.store.search(value, this.events.searchFilter));\n return;\n }\n this.render.renderSearching();\n const searchResp = this.events.search(value, this.store.getSelectedOptions());\n if (searchResp instanceof Promise) {\n searchResp\n .then((data) => {\n this.render.renderOptions(this.store.partialToFullData(data));\n })\n .catch((err) => {\n this.render.renderError(typeof err === 'string' ? err : err.message);\n });\n return;\n }\n else if (Array.isArray(searchResp)) {\n this.render.renderOptions(this.store.partialToFullData(searchResp));\n }\n else {\n this.render.renderError('Search event must return a promise or an array of data');\n }\n }\n destroy() {\n document.removeEventListener('click', this.documentClick);\n window.removeEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.removeEventListener('scroll', this.windowScroll, false);\n }\n document.removeEventListener('visibilitychange', this.windowVisibilityChange);\n this.store.setData([]);\n this.render.destroy();\n this.select.destroy();\n }\n }\n\n return SlimSelect;\n\n}));\n","/*\n* Notiflix Notify AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Notiflix = factory(root);\n }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n 'use strict';\n\n // COMMON: SSR check: begin\n if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n return false;\n }\n // COMMON: SSR check: end\n\n // COMMON: Variables: begin\n var notiflixNamespace = 'Notiflix';\n var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n // COMMON: Variables: end\n\n // NOTIFY: Default Settings: begin\n var typesNotify = {\n Success: 'Success',\n Failure: 'Failure',\n Warning: 'Warning',\n Info: 'Info',\n };\n var newNotifySettings;\n var notifySettings = {\n wrapID: 'NotiflixNotifyWrap', // can not customizable\n overlayID: 'NotiflixNotifyOverlay', // can not customizable\n width: '280px',\n position: 'right-top', // 'right-top' - 'right-bottom' - 'left-top' - 'left-bottom' - 'center-top' - 'center-bottom' - 'center-center'\n distance: '10px',\n opacity: 1,\n borderRadius: '5px',\n rtl: false,\n timeout: 3000,\n messageMaxLength: 110,\n backOverlay: false,\n backOverlayColor: 'rgba(0,0,0,0.5)',\n plainText: true,\n showOnlyTheLastOne: false,\n clickToClose: false,\n pauseOnHover: true,\n\n ID: 'NotiflixNotify',\n className: 'notiflix-notify',\n zindex: 4001,\n fontFamily: 'Quicksand',\n fontSize: '13px',\n cssAnimation: true,\n cssAnimationDuration: 400,\n cssAnimationStyle: 'fade', // 'fade' - 'zoom' - 'from-right' - 'from-top' - 'from-bottom' - 'from-left'\n closeButton: false,\n useIcon: true,\n useFontAwesome: false,\n fontAwesomeIconStyle: 'basic', // 'basic' - 'shadow'\n fontAwesomeIconSize: '34px',\n\n success: {\n background: '#32c682',\n textColor: '#fff',\n childClassName: 'notiflix-notify-success',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-check-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(50,198,130,0.2)',\n },\n\n failure: {\n background: '#ff5549',\n textColor: '#fff',\n childClassName: 'notiflix-notify-failure',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-times-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(255,85,73,0.2)',\n },\n\n warning: {\n background: '#eebf31',\n textColor: '#fff',\n childClassName: 'notiflix-notify-warning',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-exclamation-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(238,191,49,0.2)',\n },\n\n info: {\n background: '#26c0d3',\n textColor: '#fff',\n childClassName: 'notiflix-notify-info',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-info-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(38,192,211,0.2)',\n },\n };\n // NOTIFY: Default Settings: end\n\n // COMMON: Console Error: begin\n var commonConsoleError = function (message) {\n return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n };\n // COMMON: Console Error: end\n\n // COMMON: Check Head or Body: begin\n var commonCheckHeadOrBody = function (element) {\n if (!element) { element = 'head'; }\n if (window.document[element] === null) {\n commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n return false;\n }\n return true;\n };\n // COMMON: Check Head or Body: end\n\n // COMMON: Set Internal CSS Codes: begin\n var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n // check doc head\n if (!commonCheckHeadOrBody('head')) { return false; }\n\n // internal css\n if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n var internalCSS = window.document.createElement('style');\n internalCSS.id = styleElementId;\n internalCSS.innerHTML = getInternalCSSCodes();\n window.document.head.appendChild(internalCSS);\n }\n };\n // COMMON: Set Internal CSS Codes: end\n\n // COMMON: Extend Options: begin\n var commonExtendOptions = function () {\n // variables\n var extended = {};\n var deep = false;\n var i = 0;\n // check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n // merge the object into the extended object\n var merge = function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // if property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n // loop through each object and conduct a merge\n for (; i < arguments.length; i++) {\n merge(arguments[i]);\n }\n return extended;\n };\n // COMMON: Extend Options: end\n\n // COMMON: Get Plaintext: begin\n var commonGetPlaintext = function (html) {\n var htmlPool = window.document.createElement('div');\n htmlPool.innerHTML = html;\n return htmlPool.textContent || htmlPool.innerText || '';\n };\n // COMMON: Get Plaintext: end\n\n // NOTIFY: Get Internal CSS Codes: begin\n var notifyGetInternalCSSCodes = function () {\n var notifyCSS = '[id^=NotiflixNotifyWrap]{pointer-events:none;position:fixed;z-index:4001;opacity:1;right:10px;top:10px;width:280px;max-width:96%;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent}[id^=NotiflixNotifyWrap].nx-flex-center-center{max-height:calc(100vh - 20px);overflow-x:hidden;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:auto}[id^=NotiflixNotifyWrap]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixNotifyWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyOverlay]{-webkit-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;transition:background .3s ease-in-out}[id^=NotiflixNotifyWrap]>div{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}';\n return notifyCSS || null;\n };\n // NOTIFY: Get Internal CSS Codes: end\n\n // NOTIFY: Create: begin\n var notifyCreateCounter = 0;\n var notifyCreate = function (notifyType, message, callbackOrOptions, options) {\n // check doc body\n if (!commonCheckHeadOrBody('body')) { return false; }\n\n // if not initialized pretend like init\n if (!newNotifySettings) {\n Notiflix.Notify.init({});\n }\n\n // create a backup for new settings\n var newNotifySettingsBackup = commonExtendOptions(true, newNotifySettings, {});\n\n // check callbackOrOptions and options: begin\n if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n // new options\n var newOptions = {};\n if (typeof callbackOrOptions === 'object') {\n newOptions = callbackOrOptions;\n } else if (typeof options === 'object') {\n newOptions = options;\n }\n\n // extend new settings with the new options\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newOptions);\n }\n // check callbackOrOptions and options: end\n\n // notify type\n var theType = newNotifySettings[notifyType.toLocaleLowerCase('en')];\n\n // notify counter\n notifyCreateCounter++;\n\n // check the message: begin\n if (typeof message !== 'string') {\n message = 'Notiflix ' + notifyType;\n }\n // check the message: end\n\n // if plainText is true => HTML tags not allowed: begin\n if (newNotifySettings.plainText) {\n message = commonGetPlaintext(message); // message plain text\n }\n // if plainText is true => HTML tags not allowed: end\n\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: begin\n if (!newNotifySettings.plainText && message.length > newNotifySettings.messageMaxLength) {\n // extend settings for error massege\n newNotifySettings = commonExtendOptions(true, newNotifySettings, { closeButton: true, messageMaxLength: 150 });\n // error message\n message = 'Possible HTML Tags Error: The \"plainText\" option is \"false\" and the notification content length is more than the \"messageMaxLength\" option.';\n }\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: end\n\n // check message max length: begin\n if (message.length > newNotifySettings.messageMaxLength) {\n message = message.substring(0, newNotifySettings.messageMaxLength) + '...';\n }\n // check message max length: end\n\n // font awesome icon style: begin\n if (newNotifySettings.fontAwesomeIconStyle === 'shadow') {\n theType.fontAwesomeIconColor = theType.background;\n }\n // font awesome icon style: end\n\n // if cssAnimaion is false => duration: begin\n if (!newNotifySettings.cssAnimation) {\n newNotifySettings.cssAnimationDuration = 0;\n }\n // if cssAnimaion is false => duration: end\n\n // notify wrap: begin\n var ntflxNotifyWrap = window.document.getElementById(notifySettings.wrapID) || window.document.createElement('div');\n ntflxNotifyWrap.id = notifySettings.wrapID;\n ntflxNotifyWrap.style.width = newNotifySettings.width;\n ntflxNotifyWrap.style.zIndex = newNotifySettings.zindex;\n ntflxNotifyWrap.style.opacity = newNotifySettings.opacity;\n\n // wrap position: begin\n if (newNotifySettings.position === 'center-center') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.margin = 'auto';\n ntflxNotifyWrap.classList.add('nx-flex-center-center');\n ntflxNotifyWrap.style.maxHeight = 'calc((100vh - ' + newNotifySettings.distance + ') - ' + newNotifySettings.distance + ')';\n ntflxNotifyWrap.style.display = 'flex';\n ntflxNotifyWrap.style.flexWrap = 'wrap';\n ntflxNotifyWrap.style.flexDirection = 'column';\n ntflxNotifyWrap.style.justifyContent = 'center';\n ntflxNotifyWrap.style.alignItems = 'center';\n ntflxNotifyWrap.style.pointerEvents = 'none';\n } else if (newNotifySettings.position === 'center-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'center-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'right-bottom') {\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.left = 'auto';\n } else if (newNotifySettings.position === 'left-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n } else if (newNotifySettings.position === 'left-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.right = 'auto';\n } else { // 'right-top' or else\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.left = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n }\n // wrap position: end\n\n // if background overlay is true: begin\n if (newNotifySettings.backOverlay) {\n var ntflxNotifyOverlay = window.document.getElementById(notifySettings.overlayID) || window.document.createElement('div');\n ntflxNotifyOverlay.id = notifySettings.overlayID;\n ntflxNotifyOverlay.style.width = '100%';\n ntflxNotifyOverlay.style.height = '100%';\n ntflxNotifyOverlay.style.position = 'fixed';\n ntflxNotifyOverlay.style.zIndex = newNotifySettings.zindex - 1;\n ntflxNotifyOverlay.style.left = 0;\n ntflxNotifyOverlay.style.top = 0;\n ntflxNotifyOverlay.style.right = 0;\n ntflxNotifyOverlay.style.bottom = 0;\n ntflxNotifyOverlay.style.background = theType.backOverlayColor || newNotifySettings.backOverlayColor;\n ntflxNotifyOverlay.className = newNotifySettings.cssAnimation ? 'nx-with-animation' : '';\n ntflxNotifyOverlay.style.animationDuration = newNotifySettings.cssAnimation ? newNotifySettings.cssAnimationDuration + 'ms' : '';\n\n if (!window.document.getElementById(notifySettings.overlayID)) {\n window.document.body.appendChild(ntflxNotifyOverlay);\n }\n }\n // if background overlay is true: end\n\n if (!window.document.getElementById(notifySettings.wrapID)) {\n window.document.body.appendChild(ntflxNotifyWrap);\n }\n // notify wrap: end\n\n // notify content: begin\n var ntflxNotify = window.document.createElement('div');\n ntflxNotify.id = newNotifySettings.ID + '-' + notifyCreateCounter;\n ntflxNotify.className = newNotifySettings.className + ' ' + theType.childClassName + ' ' + (newNotifySettings.cssAnimation ? 'nx-with-animation' : '') + ' ' + (newNotifySettings.useIcon ? 'nx-with-icon' : '') + ' nx-' + newNotifySettings.cssAnimationStyle + ' ' + (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function' ? 'nx-with-close-button' : '') + ' ' + (typeof callbackOrOptions === 'function' ? 'nx-with-callback' : '') + ' ' + (newNotifySettings.clickToClose ? 'nx-notify-click-to-close' : '');\n ntflxNotify.style.fontSize = newNotifySettings.fontSize;\n ntflxNotify.style.color = theType.textColor;\n ntflxNotify.style.background = theType.background;\n ntflxNotify.style.borderRadius = newNotifySettings.borderRadius;\n ntflxNotify.style.pointerEvents = 'all';\n\n // rtl: begin\n if (newNotifySettings.rtl) {\n ntflxNotify.setAttribute('dir', 'rtl');\n ntflxNotify.classList.add('nx-rtl-on');\n }\n // rtl: end\n\n // font-family: begin\n ntflxNotify.style.fontFamily = '\"' + newNotifySettings.fontFamily + '\", ' + defaultFontFamily;\n // font-family: end\n\n // use css animation: begin\n if (newNotifySettings.cssAnimation) {\n ntflxNotify.style.animationDuration = newNotifySettings.cssAnimationDuration + 'ms';\n }\n // use css animation: end\n\n // close button element: begin\n var closeButtonHTML = '';\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n closeButtonHTML = '';\n }\n // close buttpon element: end\n\n // use icon: begin\n if (newNotifySettings.useIcon) {\n // use font awesome\n if (newNotifySettings.useFontAwesome) {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use notiflix icon\n else {\n var svgIcon = '';\n if (notifyType === typesNotify.Success) { // success\n svgIcon = '';\n } else if (notifyType === typesNotify.Failure) { // failure\n svgIcon = '';\n } else if (notifyType === typesNotify.Warning) { // warning\n svgIcon = '';\n } else if (notifyType === typesNotify.Info) { // info\n svgIcon = '';\n }\n ntflxNotify.innerHTML = svgIcon + '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n }\n // without icon\n else {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use icon: end\n // notify content: end\n\n // notify append or prepend: begin\n if (newNotifySettings.position === 'left-bottom' || newNotifySettings.position === 'right-bottom') { // the new one will be first\n var notifyWrap = window.document.getElementById(notifySettings.wrapID);\n notifyWrap.insertBefore(ntflxNotify, notifyWrap.firstChild);\n } else {\n window.document.getElementById(notifySettings.wrapID).appendChild(ntflxNotify);\n }\n // notify append or prepend: end\n\n // remove by timeout or click: begin\n var eachNotifyElement = window.document.getElementById(ntflxNotify.id);\n if (eachNotifyElement) {\n // timeout variables\n var timeoutHide;\n var timeoutRemove;\n\n // hide notify elm and hide overlay: begin\n var hideNotifyElementsAndOverlay = function () {\n eachNotifyElement.classList.add('nx-remove');\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && ntflxNotifyWrap.childElementCount <= 0) {\n removeOverlay.classList.add('nx-remove');\n }\n clearTimeout(timeoutHide);\n };\n // hide notify elm and hide overlay: end\n\n // remove notify elm and wrapper: begin\n var removeNotifyElmentsAndWrapper = function () {\n if (eachNotifyElement && eachNotifyElement.parentNode !== null) {\n eachNotifyElement.parentNode.removeChild(eachNotifyElement);\n }\n if (ntflxNotifyWrap.childElementCount <= 0 && ntflxNotifyWrap.parentNode !== null) { // if childs count === 0 remove wrap\n ntflxNotifyWrap.parentNode.removeChild(ntflxNotifyWrap);\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && removeOverlay.parentNode !== null) {\n removeOverlay.parentNode.removeChild(removeOverlay);\n }\n }\n clearTimeout(timeoutRemove);\n };\n // remove notify elm and wrapper: end\n\n // if has close button and callbackOrOptions is not a function: begin\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n var closeButtonElm = window.document.getElementById(ntflxNotify.id).querySelector('span.nx-close-button');\n closeButtonElm.addEventListener('click', function () {\n hideNotifyElementsAndOverlay();\n var clickToCloseTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(clickToCloseTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if has close button and callbackOrOptions is not a function: end\n\n // if callbackOrOptions or click to close: begin\n if (typeof callbackOrOptions === 'function' || newNotifySettings.clickToClose) {\n eachNotifyElement.addEventListener('click', function () {\n if (typeof callbackOrOptions === 'function') {\n callbackOrOptions();\n }\n hideNotifyElementsAndOverlay();\n var callbackTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(callbackTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if callbackOrOptions or click to close: end\n\n // else auto remove: begin\n if (!newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n // auto remove: begin\n var autoRemove = function () {\n timeoutHide = setTimeout(function () {\n hideNotifyElementsAndOverlay();\n }, newNotifySettings.timeout);\n timeoutRemove = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n }, newNotifySettings.timeout + newNotifySettings.cssAnimationDuration);\n };\n autoRemove();\n // auto remove: end\n\n // pause auto remove: begin\n if (newNotifySettings.pauseOnHover) {\n eachNotifyElement.addEventListener('mouseenter', function () {\n eachNotifyElement.classList.add('nx-paused');\n clearTimeout(timeoutHide);\n clearTimeout(timeoutRemove);\n });\n eachNotifyElement.addEventListener('mouseleave', function () {\n eachNotifyElement.classList.remove('nx-paused');\n autoRemove();\n });\n }\n // pause auto remove: end\n }\n // else auto remove: end\n }\n // remove by timeout or click: end\n\n // notify - show only the last one: begin\n if (newNotifySettings.showOnlyTheLastOne && notifyCreateCounter > 0) {\n var allNotifyElmNotTheLastOne = window.document.querySelectorAll('[id^=' + newNotifySettings.ID + '-]:not([id=' + newNotifySettings.ID + '-' + notifyCreateCounter + '])');\n for (var i = 0; i < allNotifyElmNotTheLastOne.length; i++) {\n var eachNotifyElmNotLastOne = allNotifyElmNotTheLastOne[i];\n if (eachNotifyElmNotLastOne.parentNode !== null) {\n eachNotifyElmNotLastOne.parentNode.removeChild(eachNotifyElmNotLastOne);\n }\n }\n }\n // notify - show only the last one: end\n\n // extend new settings with the backup settings\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newNotifySettingsBackup);\n\n };\n // NOTIFY: Create: end\n\n var Notiflix = {\n Notify: {\n // Init\n init: function (userNotifyOptions) {\n // extend options\n newNotifySettings = commonExtendOptions(true, notifySettings, userNotifyOptions);\n // internal css if exist\n commonSetInternalCSSCodes(notifyGetInternalCSSCodes, 'NotiflixNotifyInternalCSS');\n },\n // Merge First Init\n merge: function (userNotifyExtendOptions) {\n // if initialized already\n if (newNotifySettings) {\n newNotifySettings = commonExtendOptions(true, newNotifySettings, userNotifyExtendOptions);\n }\n // initialize first\n else {\n commonConsoleError('You have to initialize the Notify module before call Merge function.');\n return false;\n }\n },\n // Success\n success: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Success, message, callbackOrOptions, options);\n },\n // Failure\n failure: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Failure, message, callbackOrOptions, options);\n },\n // Warning\n warning: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Warning, message, callbackOrOptions, options);\n },\n // Info\n info: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Info, message, callbackOrOptions, options);\n },\n },\n };\n\n if (typeof window.Notiflix === 'object') {\n return commonExtendOptions(true, window.Notiflix, { Notify: Notiflix.Notify });\n } else {\n return { Notify: Notiflix.Notify };\n }\n\n});","import { fetchBreeds, fetchCatByBreed } from './cat-api';\nimport { createMarkup } from './createMarkup';\nimport SlimSelect from 'slim-select'\nimport { Notify } from 'notiflix/build/notiflix-notify-aio';\nimport 'slim-select/dist/slimselect.css';\n\n\nconst breedSelect = document.querySelector('.breed-select');\nconst catInfo = document.querySelector('.cat-info');\nconst loader = document.querySelector('.loader');\nconst error = document.querySelector('.error');\n\nlet storedBreeds = [];\n\nfetchBreeds()\n .then(data => {\n data.forEach(breed => {\n storedBreeds.push({ text: breed.name, value: breed.id });\n });\n new SlimSelect({\n select: breedSelect,\n data: storedBreeds\n });\n })\n .catch(err => console.log(err));\n\n//console.log(storedBreeds)\n \nbreedSelect.addEventListener('change', onSelectBreed);\n\nfunction onSelectBreed(event) {\n const breedId = event.currentTarget.value;\n console.log(breedId);\n fetchCatByBreed(breedId)\n .then(data => {\n catInfo.innerHTML = createMarkup(data[0]);\n })\n .catch(err => console.log(err));\n};\n\n\n \n\n\n"],"names":["$6b5f202d1456c0af$export$57b7d3a597416aa2","breedId","fetch","then","resp","ok","Error","status","json","$fdd6bbb96af63f6e$export$24783e9f3a24abe4","catData","url","breeds","name","description","temperament","wikipedia_url","$f753f16ae3da2a89$exports","generateID","Math","random","toString","substring","hasClassInTree","element","className","hasClass","e","c","classList","contains","dataset","id","parentByClass","document","parentNode","debounce","func","wait","immediate","timeout","args","context","self","later","apply","callNow","clearTimeout","setTimeout","isEqual","a","b","JSON","stringify","kebabCase","str","result","replace","match","toLowerCase","toUpperCase","Optgroup","constructor","optgroup","this","label","selectAll","undefined","selectAllText","closable","options","o","push","Option","option","value","text","html","selected","display","disabled","mandatory","placeholder","class","style","data","Store","type","selectType","setData","validateDataArray","Array","isArray","dataObj","validateOption","partialToFullData","dataFinal","forEach","optOptions","length","setSelectedBy","getSelected","getData","filter","getDataOptions","addOption","concat","selectedType","selectedValues","firstOption","hasSelected","includes","selectedOptions","getSelectedOptions","opt","getSelectedIDs","selectedIDs","op","getOptgroupByID","getOptionByID","getSelectType","getFirstOption","search","searchFilter","trim","includeOptgroup","dataSearch","Render","settings","store","callbacks","classes","main","values","single","max","valueText","valueDelete","valueOut","deselect","deselectPath","arrow","arrowClose","arrowOpen","content","openAbove","openBelow","searchHighlighter","searching","addable","addablePath","list","optgroupLabel","optgroupLabelText","optgroupActions","optgroupSelectAll","optgroupSelectAllBox","optgroupSelectAllCheck","optgroupClosable","optionDelete","highlighted","open","close","error","hide","mainDiv","contentDiv","updateClassStyles","updateAriaAttributes","contentLocation","appendChild","enable","remove","input","disable","add","path","setAttribute","openPosition","moveContent","selectedId","selectedOption","querySelector","ensureElementInView","removeAttribute","cssText","contentPosition","role","_a","createElement","ariaLabel","tabIndex","onkeydown","key","highlight","click","onclick","isOpen","allowDeselect","isMultiple","stopPropagation","shouldDelete","before","after","beforeChange","setSelected","updateDeselectAll","closeOnSelect","afterChange","deselectSvg","createElementNS","arrowPath","alwaysOpen","svg","mainFocus","eventType","focus","preventScroll","placeholderOption","placeholderText","innerHTML","renderValues","renderMultipleValues","renderSingleValue","selectedSingle","singleValue","innerText","outerHTML","currentNodes","childNodes","maxValuesShown","textContent","maxValuesMessage","removeNodes","i","node","getAttribute","n","hasChildNodes","removeChild","d","shouldAdd","String","keepOrder","multipleValue","insertBefore","insertAdjacentElement","deleteDiv","preventDefault","minSelected","deleteSvg","deletePath","searchDiv","listDiv","putContent","moveContentAbove","moveContentBelow","searchReturn","showSearch","readOnly","searchPlaceholder","oninput","target","ctrlKey","plus","plusPath","inputValue","runFinish","oo","newOption","addableValue","Promise","searchFocus","getOptions","notPlaceholder","notDisabled","notHidden","query","from","querySelectorAll","dir","prevOption","prevParent","parentElement","selectOption","selectParent","renderError","errorDiv","renderSearching","searchingDiv","searchingText","renderOptions","noResults","searchText","optgroupEl","allSelected","o1","selectAllSvg","selectAllBox","selectAllCheck","addEventListener","currentSelected","newSelected","s","map","o5","optgroupClosableSvg","optgroupClosableArrow","some","o2","optionEl","split","dataClass","searchHighlight","highlightText","showOptionTooltips","hideSelected","currentTarget","elementID","maxSelected","shouldUpdate","destroy","completedString","regex","RegExp","matchStartPosition","index","matchEndPosition","originalTextFoundByRegex","mainHeight","offsetHeight","contentHeight","containerRect","getBoundingClientRect","margin","top","height","window","scrollY","left","scrollX","width","container","cTop","scrollTop","offsetTop","cBottom","clientHeight","eTop","eBottom","mainRect","innerHeight","hasSelectedItems","deselectButton","hideClass","Select","select","listen","observer","valueChange","bind","passive","MutationObserver","observeCall","changeListen","hideUI","showUI","observe","subtree","childList","attributes","disconnect","ev","onValueChange","getSelectedValues","mutations","classChanged","disabledChanged","optgroupOptionChanged","m","attributeName","nodeName","onClassChange","onDisabledChange","onOptionsChange","nodes","getDataFromOptgroup","getDataFromOption","selectall","selectalltext","optgroupOptions","updateSelect","updateOptions","createOptgroup","createOption","dispatchEvent","Event","info","optionClass","Object","keys","removeEventListener","Settings","isFullOpen","intervalMove","body","timeoutDelay","SlimSelect","config","events","indexOf","beforeOpen","afterOpen","beforeClose","afterClose","windowResize","render","windowScroll","documentClick","windowVisibilityChange","hidden","selectEl","tagName","ssid","debounceEvents","hasOwnProperty","multiple","renderCallbacks","selectAriaLabel","selectAriaLabelledBy","nextSibling","slim","err","dataClean","runAfterChange","clearInterval","setInterval","searchResp","catch","message","factory","root","$parcel$global","$db8fed00f4c020c9$exports","newNotifySettings","typesNotify","notifySettings","wrapID","overlayID","position","distance","opacity","borderRadius","rtl","messageMaxLength","backOverlay","backOverlayColor","plainText","showOnlyTheLastOne","clickToClose","pauseOnHover","ID","zindex","fontFamily","fontSize","cssAnimation","cssAnimationDuration","cssAnimationStyle","closeButton","useIcon","useFontAwesome","fontAwesomeIconStyle","fontAwesomeIconSize","success","background","textColor","childClassName","notiflixIconColor","fontAwesomeClassName","fontAwesomeIconColor","failure","warning","commonConsoleError","console","commonCheckHeadOrBody","commonExtendOptions","extended","deep","prototype","call","arguments","merge","obj","prop","notifyGetInternalCSSCodes","notifyCreateCounter","notifyCreate","notifyType","callbackOrOptions","Notiflix","Notify","init","newNotifySettingsBackup","newOptions","htmlPool","theType","toLocaleLowerCase","ntflxNotifyWrap","getElementById","zIndex","right","bottom","maxHeight","flexWrap","flexDirection","justifyContent","alignItems","pointerEvents","ntflxNotifyOverlay","animationDuration","ntflxNotify","color","closeButtonHTML","svgIcon","notifyWrap","firstChild","eachNotifyElement","timeoutHide","timeoutRemove","hideNotifyElementsAndOverlay","removeOverlay","childElementCount","removeNotifyElmentsAndWrapper","clickToCloseTimeout","callbackTimeout","autoRemove","allNotifyElmNotTheLastOne","eachNotifyElmNotLastOne","userNotifyOptions","getInternalCSSCodes","styleElementId","internalCSS","head","commonSetInternalCSSCodes","userNotifyExtendOptions","define","amd","$1f0dc3b9307be026$var$breedSelect","$1f0dc3b9307be026$var$catInfo","$1f0dc3b9307be026$var$storedBreeds","statusText","breed","$parcel$interopDefault","log","event"],"version":3,"file":"index.290ee0e1.js.map"}
\ No newline at end of file
diff --git a/index.f83c412d.js b/index.5280651f.js
similarity index 99%
rename from index.f83c412d.js
rename to index.5280651f.js
index 35cbc6d..059c788 100644
--- a/index.f83c412d.js
+++ b/index.5280651f.js
@@ -1,2 +1,2 @@
-!function(){function e(e){return e&&e.__esModule?e.default:e}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="https://api.thecatapi.com/v1",s="live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm";function n(e){var t="".concat(i,"/images/search?api_key=").concat(s,"&breed_ids=").concat(e);return fetch(t).then((function(e){if(!e.ok)throw new Error(e.status);return e.json()}))}var a={},o={};Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")};var l={};function r(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:50,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var n=arguments.length,a=new Array(n),o=0;o0&&t.push(new r(e))}(e instanceof c||"text"in e)&&t.push(new c(e))})),t}},{key:"setData",value:function(e){this.data=this.partialToFullData(e),"single"===this.selectType&&this.setSelectedBy("value",this.getSelected())}},{key:"getData",value:function(){return this.filter(null,!0)}},{key:"getDataOptions",value:function(){return this.filter(null,!1)}},{key:"addOption",value:function(e){this.setData(this.getData().concat(new c(e)))}},{key:"setSelectedBy",value:function(e,t){var i=null,s=!1,n=!0,a=!1,o=void 0;try{for(var l,d=this.data[Symbol.iterator]();!(n=(l=d.next()).done);n=!0){var h=l.value,u=!0,f=!1,p=void 0;if(h instanceof r)try{for(var m,v=h.options[Symbol.iterator]();!(u=(m=v.next()).done);u=!0){var y=m.value;i||(i=y),y.selected=!s&&t.includes(y[e]),y.selected&&"single"===this.selectType&&(s=!0)}}catch(e){f=!0,p=e}finally{try{u||null==v.return||v.return()}finally{if(f)throw p}}h instanceof c&&(i||(i=h),h.selected=!s&&t.includes(h[e]),h.selected&&"single"===this.selectType&&(s=!0))}}catch(e){a=!0,o=e}finally{try{n||null==d.return||d.return()}finally{if(a)throw o}}"single"===this.selectType&&i&&!s&&(i.selected=!0)}},{key:"getSelected",value:function(){var e=this.getSelectedOptions(),t=[];return e.forEach((function(e){t.push(e.value)})),t}},{key:"getSelectedOptions",value:function(){return this.filter((function(e){return e.selected}),!1)}},{key:"getSelectedIDs",value:function(){var e=this.getSelectedOptions(),t=[];return e.forEach((function(e){t.push(e.id)})),t}},{key:"getOptgroupByID",value:function(e){var t=!0,i=!1,s=void 0;try{for(var n,a=this.data[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;if(o instanceof r&&o.id===e)return o}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}return null}},{key:"getOptionByID",value:function(e){var t=this.filter((function(t){return t.id===e}),!1);return t.length?t[0]:null}},{key:"getSelectType",value:function(){return this.selectType}},{key:"getFirstOption",value:function(){var e=null,t=!0,i=!1,s=void 0;try{for(var n,a=this.data[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;if(o instanceof r?e=o.options[0]:o instanceof c&&(e=o),e)break}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}return e}},{key:"search",value:function(e,t){return""===(e=e.trim())?this.getData():this.filter((function(i){return t(i,e)}),!0)}},{key:"filter",value:function(e,t){var i=[];return this.data.forEach((function(s){if(s instanceof r){var n=[];if(s.options.forEach((function(s){e&&!e(s)||(t?n.push(new c(s)):i.push(new c(s)))})),n.length>0){var a=new r(s);a.options=n,i.push(a)}}s instanceof c&&(e&&!e(s)||i.push(new c(s)))})),i}}]),t}(),h=function(){function t(i,s,n){e(o)(this,t),this.classes={main:"ss-main",placeholder:"ss-placeholder",values:"ss-values",single:"ss-single",max:"ss-max",value:"ss-value",valueText:"ss-value-text",valueDelete:"ss-value-delete",valueOut:"ss-value-out",deselect:"ss-deselect",deselectPath:"M10,10 L90,90 M10,90 L90,10",arrow:"ss-arrow",arrowClose:"M10,30 L50,70 L90,30",arrowOpen:"M10,70 L50,30 L90,70",content:"ss-content",openAbove:"ss-open-above",openBelow:"ss-open-below",search:"ss-search",searchHighlighter:"ss-search-highlight",searching:"ss-searching",addable:"ss-addable",addablePath:"M50,10 L50,90 M10,50 L90,50",list:"ss-list",optgroup:"ss-optgroup",optgroupLabel:"ss-optgroup-label",optgroupLabelText:"ss-optgroup-label-text",optgroupActions:"ss-optgroup-actions",optgroupSelectAll:"ss-selectall",optgroupSelectAllBox:"M60,10 L10,10 L10,90 L90,90 L90,50",optgroupSelectAllCheck:"M30,45 L50,70 L90,10",optgroupClosable:"ss-closable",option:"ss-option",optionDelete:"M10,10 L90,90 M10,90 L90,10",highlighted:"ss-highlighted",open:"ss-open",close:"ss-close",selected:"ss-selected",error:"ss-error",disabled:"ss-disabled",hide:"ss-hide"},this.store=s,this.settings=i,this.callbacks=n,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation.appendChild(this.content.main)}return e(l)(t,[{key:"enable",value:function(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}},{key:"disable",value:function(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}},{key:"open",value:function(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add("up"===this.settings.openPosition?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();var e=this.store.getSelectedOptions();if(e.length){var t=e[e.length-1].id,i=this.content.list.querySelector('[data-id="'+t+'"]');i&&this.ensureElementInView(this.content.list,i)}}},{key:"close",value:function(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}},{key:"updateClassStyles",value:function(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),""!==this.settings.style&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length){var e=!0,t=!1,i=void 0;try{for(var s,n=this.settings.class[Symbol.iterator]();!(e=(s=n.next()).done);e=!0){var a=s.value;""!==a.trim()&&(this.main.main.classList.add(a.trim()),this.content.main.classList.add(a.trim()))}}catch(e){t=!0,i=e}finally{try{e||null==n.return||n.return()}finally{if(t)throw i}}}"relative"===this.settings.contentPosition&&this.content.main.classList.add("ss-"+this.settings.contentPosition)}},{key:"updateAriaAttributes",value:function(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","false"),this.content.main.setAttribute("role","listbox")}},{key:"mainDiv",value:function(){var e,t=this,i=document.createElement("div");i.dataset.id=this.settings.id,i.setAttribute("aria-label",this.settings.ariaLabel),i.tabIndex=0,i.onkeydown=function(e){switch(e.key){case"ArrowUp":case"ArrowDown":return t.callbacks.open(),"ArrowDown"===e.key?t.highlight("down"):t.highlight("up"),!1;case"Tab":return t.callbacks.close(),!0;case"Enter":case" ":t.callbacks.open();var i=t.content.list.querySelector("."+t.classes.highlighted);return i&&i.click(),!1;case"Escape":return t.callbacks.close(),!1}return!1},i.onclick=function(e){t.settings.disabled||(t.settings.isOpen?t.callbacks.close():t.callbacks.open())};var s=document.createElement("div");s.classList.add(this.classes.values),i.appendChild(s);var n=document.createElement("div");n.classList.add(this.classes.deselect);var a=null===(e=this.store)||void 0===e?void 0:e.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&a&&a.length<=0?n.classList.add(this.classes.hide):n.classList.remove(this.classes.hide),n.onclick=function(e){if(e.stopPropagation(),!t.settings.disabled){var i=!0,s=t.store.getSelectedOptions(),n=[];if(t.callbacks.beforeChange&&(i=!0===t.callbacks.beforeChange(n,s)),i){if(t.settings.isMultiple)t.callbacks.setSelected([],!1),t.updateDeselectAll();else{var a=t.store.getFirstOption(),o=a?a.value:"";t.callbacks.setSelected(o,!1)}t.settings.closeOnSelect&&t.callbacks.close(),t.callbacks.afterChange&&t.callbacks.afterChange(t.store.getSelectedOptions())}}};var o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100");var l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.deselectPath),o.appendChild(l),n.appendChild(o),i.appendChild(n);var r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.classList.add(this.classes.arrow),r.setAttribute("viewBox","0 0 100 100");var c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&r.classList.add(this.classes.hide),r.appendChild(c),i.appendChild(r),{main:i,values:s,deselect:{main:n,svg:o,path:l},arrow:{main:r,path:c}}}},{key:"mainFocus",value:function(e){"click"!==e&&this.main.main.focus({preventScroll:!0})}},{key:"placeholder",value:function(){var e=this.store.filter((function(e){return e.placeholder}),!1),t=this.settings.placeholderText;e.length&&(""!==e[0].html?t=e[0].html:""!==e[0].text&&(t=e[0].text));var i=document.createElement("div");return i.classList.add(this.classes.placeholder),i.innerHTML=t,i}},{key:"renderValues",value:function(){this.settings.isMultiple?(this.renderMultipleValues(),this.updateDeselectAll()):this.renderSingleValue()}},{key:"renderSingleValue",value:function(){var e=this.store.filter((function(e){return e.selected&&!e.placeholder}),!1),t=e.length>0?e[0]:null;if(t){var i=document.createElement("div");i.classList.add(this.classes.single),t.html?i.innerHTML=t.html:i.innerText=t.text,this.main.values.innerHTML=i.outerHTML}else this.main.values.innerHTML=this.placeholder().outerHTML;this.settings.allowDeselect&&e.length?this.main.deselect.main.classList.remove(this.classes.hide):this.main.deselect.main.classList.add(this.classes.hide)}},{key:"renderMultipleValues",value:function(){var e=function(e){var s=t[e],n=s.getAttribute("data-id");n&&(i.filter((function(e){return e.id===n}),!1).length||o.push(s))},t=this.main.values.childNodes,i=this.store.filter((function(e){return e.selected&&e.display}),!1);if(0!==i.length){var s=this.main.values.querySelector("."+this.classes.placeholder);if(s&&s.remove(),i.length>this.settings.maxValuesShown){var n=document.createElement("div");return n.classList.add(this.classes.max),n.textContent=this.settings.maxValuesMessage.replace("{number}",i.length.toString()),void(this.main.values.innerHTML=n.outerHTML)}var a=this.main.values.querySelector("."+this.classes.max);a&&a.remove();for(var o=[],l=0;l0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s="."+this.classes.option;return e&&(s+=":not(."+this.classes.placeholder+")"),t&&(s+=":not(."+this.classes.disabled+")"),i&&(s+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(s))}},{key:"highlight",value:function(e){var t=this.getOptions(!0,!0,!0);if(0!==t.length)if(1!==t.length||t[0].classList.contains(this.classes.highlighted)){var i=!1,s=!0,n=!1,a=void 0;try{for(var o,l=t[Symbol.iterator]();!(s=(o=l.next()).done);s=!0)o.value.classList.contains(this.classes.highlighted)&&(i=!0)}catch(e){n=!0,a=e}finally{try{s||null==l.return||l.return()}finally{if(n)throw a}}if(!i){var r=!0,c=!1,d=void 0;try{for(var h,u=t[Symbol.iterator]();!(r=(h=u.next()).done);r=!0){var f=h.value;if(f.classList.contains(this.classes.selected)){f.classList.add(this.classes.highlighted);break}}}catch(e){c=!0,d=e}finally{try{r||null==u.return||u.return()}finally{if(c)throw d}}}for(var p=0;p=0?p-1:t.length-1];g.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,g);var b=g.parentElement;if(b&&b.classList.contains(this.classes.close)){var x=b.querySelector("."+this.classes.optgroupLabel);x&&x.click()}return}t["down"===e?0:t.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,t["down"===e?0:t.length-1])}else t[0].classList.add(this.classes.highlighted)}},{key:"listDiv",value:function(){var e=document.createElement("div");return e.classList.add(this.classes.list),e}},{key:"renderError",value:function(e){this.content.list.innerHTML="";var t=document.createElement("div");t.classList.add(this.classes.error),t.textContent=e,this.content.list.appendChild(t)}},{key:"renderSearching",value:function(){this.content.list.innerHTML="";var e=document.createElement("div");e.classList.add(this.classes.searching),e.textContent=this.settings.searchingText,this.content.list.appendChild(e)}},{key:"renderOptions",value:function(e){if(this.content.list.innerHTML="",0===e.length){var t=document.createElement("div");return t.classList.add(this.classes.search),t.innerHTML=this.settings.searchText,void this.content.list.appendChild(t)}var i=!0,s=!1,n=void 0;try{for(var a,o=this,l=function(e,t){var i=t.value;if(i instanceof r){var s=document.createElement("div");s.classList.add(o.classes.optgroup);var n=document.createElement("div");n.classList.add(o.classes.optgroupLabel),s.appendChild(n);var a=document.createElement("div");a.classList.add(o.classes.optgroupLabelText),a.textContent=i.label,n.appendChild(a);var l=document.createElement("div");if(l.classList.add(o.classes.optgroupActions),n.appendChild(l),o.settings.isMultiple&&i.selectAll){var d=o,h=document.createElement("div");h.classList.add(o.classes.optgroupSelectAll);var u=!0,f=!0,p=!1,m=void 0;try{for(var v,y=i.options[Symbol.iterator]();!(f=(v=y.next()).done);f=!0)if(!v.value.selected){u=!1;break}}catch(e){p=!0,m=e}finally{try{f||null==y.return||y.return()}finally{if(p)throw m}}u&&h.classList.add(o.classes.selected);var g=document.createElement("span");g.textContent=i.selectAllText,h.appendChild(g);var b=document.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox","0 0 100 100"),h.appendChild(b);var x=document.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("d",o.classes.optgroupSelectAllBox),b.appendChild(x);var w=document.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d",o.classes.optgroupSelectAllCheck),b.appendChild(w),h.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation();var t=d.store.getSelected();if(u){var s=t.filter((function(e){var t=!0,s=!1,n=void 0;try{for(var a,o=i.options[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)if(e===a.value.value)return!1}catch(e){s=!0,n=e}finally{try{t||null==o.return||o.return()}finally{if(s)throw n}}return!0}));d.callbacks.setSelected(s,!0)}else{var n=t.concat(i.options.map((function(e){return e.value}))),a=!0,o=!1,l=void 0;try{for(var r,c=i.options[Symbol.iterator]();!(a=(r=c.next()).done);a=!0){var h=r.value;d.store.getOptionByID(h.id)||d.callbacks.addOption(h)}}catch(e){o=!0,l=e}finally{try{a||null==c.return||c.return()}finally{if(o)throw l}}d.callbacks.setSelected(n,!0)}})),l.appendChild(h)}if("off"!==i.closable){var k=o,C=document.createElement("div");C.classList.add(o.classes.optgroupClosable);var L=document.createElementNS("http://www.w3.org/2000/svg","svg");L.setAttribute("viewBox","0 0 100 100"),L.classList.add(o.classes.arrow),C.appendChild(L);var S=document.createElementNS("http://www.w3.org/2000/svg","path");L.appendChild(S),i.options.some((function(e){return e.selected}))||""!==o.content.search.input.value.trim()?(C.classList.add(o.classes.open),S.setAttribute("d",o.classes.arrowOpen)):"open"===i.closable?(s.classList.add(o.classes.open),S.setAttribute("d",o.classes.arrowOpen)):"close"===i.closable&&(s.classList.add(o.classes.close),S.setAttribute("d",o.classes.arrowClose)),n.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),s.classList.contains(k.classes.close)?(s.classList.remove(k.classes.close),s.classList.add(k.classes.open),S.setAttribute("d",k.classes.arrowOpen)):(s.classList.remove(k.classes.open),s.classList.add(k.classes.close),S.setAttribute("d",k.classes.arrowClose))})),l.appendChild(C)}s.appendChild(n);var N=!0,O=!1,A=void 0;try{for(var E,T=i.options[Symbol.iterator]();!(N=(E=T.next()).done);N=!0){var D=E.value;s.appendChild(o.option(D))}}catch(e){O=!0,A=e}finally{try{N||null==T.return||T.return()}finally{if(O)throw A}}o.content.list.appendChild(s)}i instanceof c&&o.content.list.appendChild(o.option(i))},d=e[Symbol.iterator]();!(i=(a=d.next()).done);i=!0)l(d,a)}catch(e){s=!0,n=e}finally{try{i||null==d.return||d.return()}finally{if(s)throw n}}}},{key:"option",value:function(e){var t=this;if(e.placeholder){var i=document.createElement("div");return i.classList.add(this.classes.option),i.classList.add(this.classes.hide),i}var s=document.createElement("div");return s.dataset.id=e.id,s.id=e.id,s.classList.add(this.classes.option),s.setAttribute("role","option"),e.class&&e.class.split(" ").forEach((function(e){s.classList.add(e)})),e.style&&(s.style.cssText=e.style),this.settings.searchHighlight&&""!==this.content.search.input.value.trim()?s.innerHTML=this.highlightText(""!==e.html?e.html:e.text,this.content.search.input.value,this.classes.searchHighlighter):""!==e.html?s.innerHTML=e.html:s.textContent=e.text,this.settings.showOptionTooltips&&s.textContent&&s.setAttribute("title",s.textContent),e.display||s.classList.add(this.classes.hide),e.disabled&&s.classList.add(this.classes.disabled),e.selected&&this.settings.hideSelected&&s.classList.add(this.classes.hide),e.selected?(s.classList.add(this.classes.selected),s.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",s.id)):(s.classList.remove(this.classes.selected),s.setAttribute("aria-selected","false")),s.addEventListener("click",(function(i){i.preventDefault(),i.stopPropagation();var s=t.store.getSelected(),n=i.currentTarget,a=String(n.dataset.id);if(!(e.disabled||e.selected&&!t.settings.allowDeselect||t.settings.isMultiple&&t.settings.maxSelected<=s.length&&!e.selected||t.settings.isMultiple&&t.settings.minSelected>=s.length&&e.selected)){var o=!1,l=t.store.getSelectedOptions(),r=[];t.settings.isMultiple&&(r=e.selected?l.filter((function(e){return e.id!==a})):l.concat(e)),t.settings.isMultiple||(r=e.selected?[]:[e]),t.callbacks.beforeChange||(o=!0),t.callbacks.beforeChange&&(o=!1!==t.callbacks.beforeChange(r,l)),o&&(t.store.getOptionByID(a)||t.callbacks.addOption(e),t.callbacks.setSelected(r.map((function(e){return e.value})),!1),t.settings.closeOnSelect&&t.callbacks.close(),t.callbacks.afterChange&&t.callbacks.afterChange(r))}})),s}},{key:"destroy",value:function(){this.main.main.remove(),this.content.main.remove()}},{key:"highlightText",value:function(e,t,i){var s=e,n=new RegExp("("+t.trim()+")(?![^<]*>[^<>]*)","i");if(!e.match(n))return e;var a=e.match(n).index,o=a+e.match(n)[0].toString().length,l=e.substring(a,o);return s=s.replace(n,'').concat(l,""))}},{key:"moveContentAbove",value:function(){var e=this.main.main.offsetHeight,t=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);var i=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(e+t-1)+"px 0px 0px 0px",this.content.main.style.top=i.top+i.height+window.scrollY+"px",this.content.main.style.left=i.left+window.scrollX+"px",this.content.main.style.width=i.width+"px"}},{key:"moveContentBelow",value:function(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);var e=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px","relative"!==this.settings.contentPosition&&(this.content.main.style.top=e.top+e.height+window.scrollY+"px",this.content.main.style.left=e.left+window.scrollX+"px",this.content.main.style.width=e.width+"px")}},{key:"ensureElementInView",value:function(e,t){var i=e.scrollTop+e.offsetTop,s=i+e.clientHeight,n=t.offsetTop,a=n+t.clientHeight;ns&&(e.scrollTop+=a-s)}},{key:"putContent",value:function(){var e=this.main.main.offsetHeight,t=this.main.main.getBoundingClientRect(),i=this.content.main.offsetHeight;return window.innerHeight-(t.top+e)<=i&&t.top>i?"up":"down"}},{key:"updateDeselectAll",value:function(){if(this.store&&this.settings){var e=this.store.getSelectedOptions(),t=e&&e.length>0,i=this.settings.isMultiple,s=this.settings.allowDeselect,n=this.main.deselect.main,a=this.classes.hide;!s||i&&!t?n.classList.add(a):n.classList.remove(a)}}}]),t}(),u=function(){function t(i){e(o)(this,t),this.listen=!1,this.observer=null,this.select=i,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}return e(l)(t,[{key:"enable",value:function(){this.select.disabled=!1}},{key:"disable",value:function(){this.select.disabled=!0}},{key:"hideUI",value:function(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}},{key:"showUI",value:function(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}},{key:"changeListen",value:function(e){this.listen=e,e&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),e||this.observer&&this.observer.disconnect()}},{key:"valueChange",value:function(e){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedValues()),!0}},{key:"observeCall",value:function(e){if(this.listen){var t=!1,i=!1,s=!1,n=!0,a=!1,o=void 0;try{for(var l,r=e[Symbol.iterator]();!(n=(l=r.next()).done);n=!0){var c=l.value;c.target===this.select&&("disabled"===c.attributeName&&(i=!0),"class"===c.attributeName&&(t=!0)),"OPTGROUP"!==c.target.nodeName&&"OPTION"!==c.target.nodeName||(s=!0)}}catch(e){a=!0,o=e}finally{try{n||null==r.return||r.return()}finally{if(a)throw o}}t&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),i&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),s&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}}},{key:"getData",value:function(){var e=[],t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;"OPTGROUP"===l.nodeName&&e.push(this.getDataFromOptgroup(l)),"OPTION"===l.nodeName&&e.push(this.getDataFromOption(l))}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return e}},{key:"getDataFromOptgroup",value:function(e){var t={id:e.id,label:e.label,selectAll:!!e.dataset&&"true"===e.dataset.selectall,selectAllText:e.dataset?e.dataset.selectalltext:"Select all",closable:e.dataset?e.dataset.closable:"off",options:[]},i=e.childNodes,s=!0,n=!1,a=void 0;try{for(var o,l=i[Symbol.iterator]();!(s=(o=l.next()).done);s=!0){var r=o.value;"OPTION"===r.nodeName&&t.options.push(this.getDataFromOption(r))}}catch(e){n=!0,a=e}finally{try{s||null==l.return||l.return()}finally{if(n)throw a}}return t}},{key:"getDataFromOption",value:function(e){return{id:e.id,value:e.value,text:e.text,html:e.dataset&&e.dataset.html?e.dataset.html:"",selected:e.selected,display:"none"!==e.style.display,disabled:e.disabled,mandatory:!!e.dataset&&"true"===e.dataset.mandatory,placeholder:"true"===e.dataset.placeholder,class:e.className,style:e.style.cssText,data:e.dataset}}},{key:"getSelectedValues",value:function(){var e=[],t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;if("OPTGROUP"===l.nodeName){var r=l.childNodes,c=!0,d=!1,h=void 0;try{for(var u,f=r[Symbol.iterator]();!(c=(u=f.next()).done);c=!0){var p=u.value;if("OPTION"===p.nodeName){var m=p;m.selected&&e.push(m.value)}}}catch(e){d=!0,h=e}finally{try{c||null==f.return||f.return()}finally{if(d)throw h}}}if("OPTION"===l.nodeName){var v=l;v.selected&&e.push(v.value)}}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return e}},{key:"setSelected",value:function(e){this.changeListen(!1);var t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;if("OPTGROUP"===l.nodeName){var r=l.childNodes,c=!0,d=!1,h=void 0;try{for(var u,f=r[Symbol.iterator]();!(c=(u=f.next()).done);c=!0){var p=u.value;if("OPTION"===p.nodeName){var m=p;m.selected=e.includes(m.value)}}}catch(e){d=!0,h=e}finally{try{c||null==f.return||f.return()}finally{if(d)throw h}}}if("OPTION"===l.nodeName){var v=l;v.selected=e.includes(v.value)}}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}this.changeListen(!0)}},{key:"updateSelect",value:function(e,t,i){if(this.changeListen(!1),e&&(this.select.dataset.id=e),t&&(this.select.style.cssText=t),i){var s=this;this.select.className="",i.forEach((function(e){""!==e.trim()&&s.select.classList.add(e.trim())}))}this.changeListen(!0)}},{key:"updateOptions",value:function(e){this.changeListen(!1),this.select.innerHTML="";var t=!0,i=!1,s=void 0;try{for(var n,a=e[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;o instanceof r&&this.select.appendChild(this.createOptgroup(o)),o instanceof c&&this.select.appendChild(this.createOption(o))}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}this.select.dispatchEvent(new Event("change")),this.changeListen(!0)}},{key:"createOptgroup",value:function(e){var t=document.createElement("optgroup");t.id=e.id,t.label=e.label,e.selectAll&&(t.dataset.selectAll="true"),"off"!==e.closable&&(t.dataset.closable=e.closable);var i=!0,s=!1,n=void 0;if(e.options)try{for(var a,o=e.options[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;t.appendChild(this.createOption(l))}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return t}},{key:"createOption",value:function(e){var t=document.createElement("option");return t.id=e.id,t.value=e.value,t.innerHTML=e.text,""!==e.html&&t.setAttribute("data-html",e.html),e.selected&&(t.selected=e.selected),e.disabled&&(t.disabled=!0),!1===e.display&&(t.style.display="none"),e.placeholder&&t.setAttribute("data-placeholder","true"),e.mandatory&&t.setAttribute("data-mandatory","true"),e.class&&e.class.split(" ").forEach((function(e){t.classList.add(e)})),e.data&&"object"==typeof e.data&&Object.keys(e.data).forEach((function(i){t.setAttribute("data-"+a(i),e.data[i])})),t}},{key:"destroy",value:function(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}]),t}(),f=function i(s){e(o)(this,i),this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,s||(s={}),this.id="ss-"+t(),this.style=s.style||"",this.class=s.class||[],this.disabled=void 0!==s.disabled&&s.disabled,this.alwaysOpen=void 0!==s.alwaysOpen&&s.alwaysOpen,this.showSearch=void 0===s.showSearch||s.showSearch,this.ariaLabel=s.ariaLabel||"Combobox",this.searchPlaceholder=s.searchPlaceholder||"Search",this.searchText=s.searchText||"No Results",this.searchingText=s.searchingText||"Searching...",this.searchHighlight=void 0!==s.searchHighlight&&s.searchHighlight,this.closeOnSelect=void 0===s.closeOnSelect||s.closeOnSelect,this.contentLocation=s.contentLocation||document.body,this.contentPosition=s.contentPosition||"absolute",this.openPosition=s.openPosition||"auto",this.placeholderText=void 0!==s.placeholderText?s.placeholderText:"Select Value",this.allowDeselect=void 0!==s.allowDeselect&&s.allowDeselect,this.hideSelected=void 0!==s.hideSelected&&s.hideSelected,this.keepOrder=void 0!==s.keepOrder&&s.keepOrder,this.showOptionTooltips=void 0!==s.showOptionTooltips&&s.showOptionTooltips,this.minSelected=s.minSelected||0,this.maxSelected=s.maxSelected||1e3,this.timeoutDelay=s.timeoutDelay||200,this.maxValuesShown=s.maxValuesShown||20,this.maxValuesMessage=s.maxValuesMessage||"{number} selected"},p=function(){function t(n){var a,l=this;if(e(o)(this,t),this.events={search:void 0,searchFilter:function(e,t){return-1!==e.text.toLowerCase().indexOf(t.toLowerCase())},addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=s((function(){(l.settings.isOpen||l.settings.isFullOpen)&&l.render.moveContent()})),this.windowScroll=s((function(){(l.settings.isOpen||l.settings.isFullOpen)&&l.render.moveContent()})),this.documentClick=function(e){l.settings.isOpen&&e.target&&!i(e.target,l.settings.id)&&l.close(e.type)},this.windowVisibilityChange=function(){document.hidden&&l.close()},this.selectEl="string"==typeof n.select?document.querySelector(n.select):n.select,this.selectEl)if("SELECT"===this.selectEl.tagName){this.selectEl.dataset.ssid&&this.destroy(),this.settings=new f(n.settings);var r=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(var c in n.events)n.events.hasOwnProperty(c)&&(-1!==r.indexOf(c)?this.events[c]=s(n.events[c],100):this.events[c]=n.events[c]);this.settings.disabled=(null===(a=n.settings)||void 0===a?void 0:a.disabled)?n.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new u(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=function(e){l.setSelected(e)},this.select.onClassChange=function(e){l.settings.class=e,l.render.updateClassStyles()},this.select.onDisabledChange=function(e){e?l.disable():l.enable()},this.select.onOptionsChange=function(e){l.setData(e)},this.store=new d(this.settings.isMultiple?"multiple":"single",n.data?n.data:this.select.getData()),n.data&&this.select.updateOptions(this.store.getData());var p={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new h(this.settings,this.store,p),this.render.renderValues(),this.render.renderOptions(this.store.getData());var m=this.selectEl.getAttribute("aria-label"),v=this.selectEl.getAttribute("aria-labelledby");m?this.render.main.main.setAttribute("aria-label",m):v&&this.render.main.main.setAttribute("aria-labelledby",v),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}else n.events&&n.events.error&&n.events.error(new Error("Element isnt of type select"));else n.events&&n.events.error&&n.events.error(new Error("Could not find select element"))}return e(l)(t,[{key:"enable",value:function(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}},{key:"disable",value:function(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}},{key:"getData",value:function(){return this.store.getData()}},{key:"setData",value:function(e){var t=this.store.getSelected(),i=this.store.validateDataArray(e);if(i)this.events.error&&this.events.error(i);else{this.store.setData(e);var s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!n(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}}},{key:"getSelected",value:function(){return this.store.getSelected()}},{key:"setSelected",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.store.getSelected();this.store.setSelectedBy("value",Array.isArray(e)?e:[e]);var s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),""!==this.render.content.search.input.value?this.search(this.render.content.search.input.value):this.render.renderOptions(s),t&&this.events.afterChange&&!n(i,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}},{key:"addOption",value:function(e){var t=this.store.getSelected();this.store.getDataOptions().some((function(t){var i;return t.value===(null!==(i=e.value)&&void 0!==i?i:e.text)}))||this.store.addOption(e);var i=this.store.getData();this.select.updateOptions(i),this.render.renderValues(),this.render.renderOptions(i),this.events.afterChange&&!n(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}},{key:"open",value:function(){var e=this;this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout((function(){e.events.afterOpen&&e.events.afterOpen(),e.settings.isOpen&&(e.settings.isFullOpen=!0),document.addEventListener("click",e.documentClick)}),this.settings.timeoutDelay),"absolute"===this.settings.contentPosition&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}},{key:"close",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this;this.settings.isOpen&&!this.settings.alwaysOpen&&(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),""!==this.render.content.search.input.value&&this.search(""),this.render.mainFocus(e),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout((function(){t.events.afterClose&&t.events.afterClose(),document.removeEventListener("click",t.documentClick)}),this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}},{key:"search",value:function(e){if(this.render.content.search.input.value!==e&&(this.render.content.search.input.value=e),this.events.search){this.render.renderSearching();var t=this.events.search(e,this.store.getSelectedOptions());if(t instanceof Promise){var i=this;t.then((function(e){i.render.renderOptions(i.store.partialToFullData(e))})).catch((function(e){i.render.renderError("string"==typeof e?e:e.message)}))}else Array.isArray(t)?this.render.renderOptions(this.store.partialToFullData(t)):this.render.renderError("Search event must return a promise or an array of data")}else this.render.renderOptions(""===e?this.store.getData():this.store.search(e,this.events.searchFilter))}},{key:"destroy",value:function(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}]),t}();return p}();var c,d,h={};c=void 0!==t?t:"undefined"!=typeof window?window:h,d=function(e){"use strict";if(void 0===e&&void 0===e.document)return!1;var t,i="Success",s="Failure",n="Warning",a="Info",o={wrapID:"NotiflixNotifyWrap",overlayID:"NotiflixNotifyOverlay",width:"280px",position:"right-top",distance:"10px",opacity:1,borderRadius:"5px",rtl:!1,timeout:3e3,messageMaxLength:110,backOverlay:!1,backOverlayColor:"rgba(0,0,0,0.5)",plainText:!0,showOnlyTheLastOne:!1,clickToClose:!1,pauseOnHover:!0,ID:"NotiflixNotify",className:"notiflix-notify",zindex:4001,fontFamily:"Quicksand",fontSize:"13px",cssAnimation:!0,cssAnimationDuration:400,cssAnimationStyle:"fade",closeButton:!1,useIcon:!0,useFontAwesome:!1,fontAwesomeIconStyle:"basic",fontAwesomeIconSize:"34px",success:{background:"#32c682",textColor:"#fff",childClassName:"notiflix-notify-success",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-check-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(50,198,130,0.2)"},failure:{background:"#ff5549",textColor:"#fff",childClassName:"notiflix-notify-failure",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-times-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(255,85,73,0.2)"},warning:{background:"#eebf31",textColor:"#fff",childClassName:"notiflix-notify-warning",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-exclamation-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(238,191,49,0.2)"},info:{background:"#26c0d3",textColor:"#fff",childClassName:"notiflix-notify-info",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-info-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(38,192,211,0.2)"}},l=function(e){return console.error("%c Notiflix Error ","padding:2px;border-radius:20px;color:#fff;background:#ff5549","\n"+e+"\n\nVisit documentation page to learn more: https://notiflix.github.io/documentation")},r=function(t){return t||(t="head"),null!==e.document[t]||(l('\nNotiflix needs to be appended to the "<'+t+'>" element, but you called it before the "<'+t+'>" element has been created.'),!1)},c=function(){var e={},t=!1,i=0;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],i++);for(var s=function(i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t&&"[object Object]"===Object.prototype.toString.call(i[s])?e[s]=c(e[s],i[s]):e[s]=i[s])};idiv{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:"Quicksand",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}'},h=0,u=function(l,d,u,p){if(!r("body"))return!1;t||f.Notify.init({});var m=c(!0,t,{});if("object"==typeof u&&!Array.isArray(u)||"object"==typeof p&&!Array.isArray(p)){var v={};"object"==typeof u?v=u:"object"==typeof p&&(v=p),t=c(!0,t,v)}var y,g,b=t[l.toLocaleLowerCase("en")];h++,"string"!=typeof d&&(d="Notiflix "+l),t.plainText&&(y=d,(g=e.document.createElement("div")).innerHTML=y,d=g.textContent||g.innerText||""),!t.plainText&&d.length>t.messageMaxLength&&(t=c(!0,t,{closeButton:!0,messageMaxLength:150}),d='Possible HTML Tags Error: The "plainText" option is "false" and the notification content length is more than the "messageMaxLength" option.'),d.length>t.messageMaxLength&&(d=d.substring(0,t.messageMaxLength)+"..."),"shadow"===t.fontAwesomeIconStyle&&(b.fontAwesomeIconColor=b.background),t.cssAnimation||(t.cssAnimationDuration=0);var x=e.document.getElementById(o.wrapID)||e.document.createElement("div");if(x.id=o.wrapID,x.style.width=t.width,x.style.zIndex=t.zindex,x.style.opacity=t.opacity,"center-center"===t.position?(x.style.left=t.distance,x.style.top=t.distance,x.style.right=t.distance,x.style.bottom=t.distance,x.style.margin="auto",x.classList.add("nx-flex-center-center"),x.style.maxHeight="calc((100vh - "+t.distance+") - "+t.distance+")",x.style.display="flex",x.style.flexWrap="wrap",x.style.flexDirection="column",x.style.justifyContent="center",x.style.alignItems="center",x.style.pointerEvents="none"):"center-top"===t.position?(x.style.left=t.distance,x.style.right=t.distance,x.style.top=t.distance,x.style.bottom="auto",x.style.margin="auto"):"center-bottom"===t.position?(x.style.left=t.distance,x.style.right=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.margin="auto"):"right-bottom"===t.position?(x.style.right=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.left="auto"):"left-top"===t.position?(x.style.left=t.distance,x.style.top=t.distance,x.style.right="auto",x.style.bottom="auto"):"left-bottom"===t.position?(x.style.left=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.right="auto"):(x.style.right=t.distance,x.style.top=t.distance,x.style.left="auto",x.style.bottom="auto"),t.backOverlay){var w=e.document.getElementById(o.overlayID)||e.document.createElement("div");w.id=o.overlayID,w.style.width="100%",w.style.height="100%",w.style.position="fixed",w.style.zIndex=t.zindex-1,w.style.left=0,w.style.top=0,w.style.right=0,w.style.bottom=0,w.style.background=b.backOverlayColor||t.backOverlayColor,w.className=t.cssAnimation?"nx-with-animation":"",w.style.animationDuration=t.cssAnimation?t.cssAnimationDuration+"ms":"",e.document.getElementById(o.overlayID)||e.document.body.appendChild(w)}e.document.getElementById(o.wrapID)||e.document.body.appendChild(x);var k=e.document.createElement("div");k.id=t.ID+"-"+h,k.className=t.className+" "+b.childClassName+" "+(t.cssAnimation?"nx-with-animation":"")+" "+(t.useIcon?"nx-with-icon":"")+" nx-"+t.cssAnimationStyle+" "+(t.closeButton&&"function"!=typeof u?"nx-with-close-button":"")+" "+("function"==typeof u?"nx-with-callback":"")+" "+(t.clickToClose?"nx-notify-click-to-close":""),k.style.fontSize=t.fontSize,k.style.color=b.textColor,k.style.background=b.background,k.style.borderRadius=t.borderRadius,k.style.pointerEvents="all",t.rtl&&(k.setAttribute("dir","rtl"),k.classList.add("nx-rtl-on")),k.style.fontFamily='"'+t.fontFamily+'", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',t.cssAnimation&&(k.style.animationDuration=t.cssAnimationDuration+"ms");var C="";if(t.closeButton&&"function"!=typeof u&&(C=''),t.useIcon)if(t.useFontAwesome)k.innerHTML=''+d+""+(t.closeButton?C:"");else{var L="";l===i?L='':l===s?L='':l===n?L='':l===a&&(L=''),k.innerHTML=L+''+d+""+(t.closeButton?C:"")}else k.innerHTML=''+d+""+(t.closeButton?C:"");if("left-bottom"===t.position||"right-bottom"===t.position){var S=e.document.getElementById(o.wrapID);S.insertBefore(k,S.firstChild)}else e.document.getElementById(o.wrapID).appendChild(k);var N=e.document.getElementById(k.id);if(N){var O,A,E=function(){N.classList.add("nx-remove");var t=e.document.getElementById(o.overlayID);t&&x.childElementCount<=0&&t.classList.add("nx-remove"),clearTimeout(O)},T=function(){if(N&&null!==N.parentNode&&N.parentNode.removeChild(N),x.childElementCount<=0&&null!==x.parentNode){x.parentNode.removeChild(x);var t=e.document.getElementById(o.overlayID);t&&null!==t.parentNode&&t.parentNode.removeChild(t)}clearTimeout(A)};if(t.closeButton&&"function"!=typeof u&&e.document.getElementById(k.id).querySelector("span.nx-close-button").addEventListener("click",(function(){E();var e=setTimeout((function(){T(),clearTimeout(e)}),t.cssAnimationDuration)})),("function"==typeof u||t.clickToClose)&&N.addEventListener("click",(function(){"function"==typeof u&&u(),E();var e=setTimeout((function(){T(),clearTimeout(e)}),t.cssAnimationDuration)})),!t.closeButton&&"function"!=typeof u){var D=function(){O=setTimeout((function(){E()}),t.timeout),A=setTimeout((function(){T()}),t.timeout+t.cssAnimationDuration)};D(),t.pauseOnHover&&(N.addEventListener("mouseenter",(function(){N.classList.add("nx-paused"),clearTimeout(O),clearTimeout(A)})),N.addEventListener("mouseleave",(function(){N.classList.remove("nx-paused"),D()})))}}if(t.showOnlyTheLastOne&&h>0)for(var I=e.document.querySelectorAll("[id^="+t.ID+"-]:not([id="+t.ID+"-"+h+"])"),M=0;M\n \n \n ').concat(s[0].name,"
\n
").concat(s[0].description,"
\n
Temperament: ").concat(s[0].temperament,'
\n
Link to Wikipedia page\n
')})).catch((function(e){return console.log(e)}))}))}();
-//# sourceMappingURL=index.f83c412d.js.map
+!function(){function e(e){return e&&e.__esModule?e.default:e}var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="https://api.thecatapi.com/v1",s="live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm";function n(e){var t="".concat(i,"/images/search?api_key=").concat(s,"&breed_ids=").concat(e);return fetch(t).then((function(e){if(!e.ok)throw new Error(e.status);return e.json()}))}var a={},o={};Object.defineProperty(o,"__esModule",{value:!0}),o.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")};var l={};function r(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:50,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(){for(var n=arguments.length,a=new Array(n),o=0;o0&&t.push(new r(e))}(e instanceof c||"text"in e)&&t.push(new c(e))})),t}},{key:"setData",value:function(e){this.data=this.partialToFullData(e),"single"===this.selectType&&this.setSelectedBy("value",this.getSelected())}},{key:"getData",value:function(){return this.filter(null,!0)}},{key:"getDataOptions",value:function(){return this.filter(null,!1)}},{key:"addOption",value:function(e){this.setData(this.getData().concat(new c(e)))}},{key:"setSelectedBy",value:function(e,t){var i=null,s=!1,n=!0,a=!1,o=void 0;try{for(var l,d=this.data[Symbol.iterator]();!(n=(l=d.next()).done);n=!0){var h=l.value,u=!0,f=!1,p=void 0;if(h instanceof r)try{for(var m,v=h.options[Symbol.iterator]();!(u=(m=v.next()).done);u=!0){var y=m.value;i||(i=y),y.selected=!s&&t.includes(y[e]),y.selected&&"single"===this.selectType&&(s=!0)}}catch(e){f=!0,p=e}finally{try{u||null==v.return||v.return()}finally{if(f)throw p}}h instanceof c&&(i||(i=h),h.selected=!s&&t.includes(h[e]),h.selected&&"single"===this.selectType&&(s=!0))}}catch(e){a=!0,o=e}finally{try{n||null==d.return||d.return()}finally{if(a)throw o}}"single"===this.selectType&&i&&!s&&(i.selected=!0)}},{key:"getSelected",value:function(){var e=this.getSelectedOptions(),t=[];return e.forEach((function(e){t.push(e.value)})),t}},{key:"getSelectedOptions",value:function(){return this.filter((function(e){return e.selected}),!1)}},{key:"getSelectedIDs",value:function(){var e=this.getSelectedOptions(),t=[];return e.forEach((function(e){t.push(e.id)})),t}},{key:"getOptgroupByID",value:function(e){var t=!0,i=!1,s=void 0;try{for(var n,a=this.data[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;if(o instanceof r&&o.id===e)return o}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}return null}},{key:"getOptionByID",value:function(e){var t=this.filter((function(t){return t.id===e}),!1);return t.length?t[0]:null}},{key:"getSelectType",value:function(){return this.selectType}},{key:"getFirstOption",value:function(){var e=null,t=!0,i=!1,s=void 0;try{for(var n,a=this.data[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;if(o instanceof r?e=o.options[0]:o instanceof c&&(e=o),e)break}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}return e}},{key:"search",value:function(e,t){return""===(e=e.trim())?this.getData():this.filter((function(i){return t(i,e)}),!0)}},{key:"filter",value:function(e,t){var i=[];return this.data.forEach((function(s){if(s instanceof r){var n=[];if(s.options.forEach((function(s){e&&!e(s)||(t?n.push(new c(s)):i.push(new c(s)))})),n.length>0){var a=new r(s);a.options=n,i.push(a)}}s instanceof c&&(e&&!e(s)||i.push(new c(s)))})),i}}]),t}(),h=function(){function t(i,s,n){e(o)(this,t),this.classes={main:"ss-main",placeholder:"ss-placeholder",values:"ss-values",single:"ss-single",max:"ss-max",value:"ss-value",valueText:"ss-value-text",valueDelete:"ss-value-delete",valueOut:"ss-value-out",deselect:"ss-deselect",deselectPath:"M10,10 L90,90 M10,90 L90,10",arrow:"ss-arrow",arrowClose:"M10,30 L50,70 L90,30",arrowOpen:"M10,70 L50,30 L90,70",content:"ss-content",openAbove:"ss-open-above",openBelow:"ss-open-below",search:"ss-search",searchHighlighter:"ss-search-highlight",searching:"ss-searching",addable:"ss-addable",addablePath:"M50,10 L50,90 M10,50 L90,50",list:"ss-list",optgroup:"ss-optgroup",optgroupLabel:"ss-optgroup-label",optgroupLabelText:"ss-optgroup-label-text",optgroupActions:"ss-optgroup-actions",optgroupSelectAll:"ss-selectall",optgroupSelectAllBox:"M60,10 L10,10 L10,90 L90,90 L90,50",optgroupSelectAllCheck:"M30,45 L50,70 L90,10",optgroupClosable:"ss-closable",option:"ss-option",optionDelete:"M10,10 L90,90 M10,90 L90,10",highlighted:"ss-highlighted",open:"ss-open",close:"ss-close",selected:"ss-selected",error:"ss-error",disabled:"ss-disabled",hide:"ss-hide"},this.store=s,this.settings=i,this.callbacks=n,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation.appendChild(this.content.main)}return e(l)(t,[{key:"enable",value:function(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}},{key:"disable",value:function(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}},{key:"open",value:function(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add("up"===this.settings.openPosition?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();var e=this.store.getSelectedOptions();if(e.length){var t=e[e.length-1].id,i=this.content.list.querySelector('[data-id="'+t+'"]');i&&this.ensureElementInView(this.content.list,i)}}},{key:"close",value:function(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}},{key:"updateClassStyles",value:function(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),""!==this.settings.style&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length){var e=!0,t=!1,i=void 0;try{for(var s,n=this.settings.class[Symbol.iterator]();!(e=(s=n.next()).done);e=!0){var a=s.value;""!==a.trim()&&(this.main.main.classList.add(a.trim()),this.content.main.classList.add(a.trim()))}}catch(e){t=!0,i=e}finally{try{e||null==n.return||n.return()}finally{if(t)throw i}}}"relative"===this.settings.contentPosition&&this.content.main.classList.add("ss-"+this.settings.contentPosition)}},{key:"updateAriaAttributes",value:function(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","false"),this.content.main.setAttribute("role","listbox")}},{key:"mainDiv",value:function(){var e,t=this,i=document.createElement("div");i.dataset.id=this.settings.id,i.setAttribute("aria-label",this.settings.ariaLabel),i.tabIndex=0,i.onkeydown=function(e){switch(e.key){case"ArrowUp":case"ArrowDown":return t.callbacks.open(),"ArrowDown"===e.key?t.highlight("down"):t.highlight("up"),!1;case"Tab":return t.callbacks.close(),!0;case"Enter":case" ":t.callbacks.open();var i=t.content.list.querySelector("."+t.classes.highlighted);return i&&i.click(),!1;case"Escape":return t.callbacks.close(),!1}return!1},i.onclick=function(e){t.settings.disabled||(t.settings.isOpen?t.callbacks.close():t.callbacks.open())};var s=document.createElement("div");s.classList.add(this.classes.values),i.appendChild(s);var n=document.createElement("div");n.classList.add(this.classes.deselect);var a=null===(e=this.store)||void 0===e?void 0:e.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&a&&a.length<=0?n.classList.add(this.classes.hide):n.classList.remove(this.classes.hide),n.onclick=function(e){if(e.stopPropagation(),!t.settings.disabled){var i=!0,s=t.store.getSelectedOptions(),n=[];if(t.callbacks.beforeChange&&(i=!0===t.callbacks.beforeChange(n,s)),i){if(t.settings.isMultiple)t.callbacks.setSelected([],!1),t.updateDeselectAll();else{var a=t.store.getFirstOption(),o=a?a.value:"";t.callbacks.setSelected(o,!1)}t.settings.closeOnSelect&&t.callbacks.close(),t.callbacks.afterChange&&t.callbacks.afterChange(t.store.getSelectedOptions())}}};var o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100");var l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.deselectPath),o.appendChild(l),n.appendChild(o),i.appendChild(n);var r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.classList.add(this.classes.arrow),r.setAttribute("viewBox","0 0 100 100");var c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&r.classList.add(this.classes.hide),r.appendChild(c),i.appendChild(r),{main:i,values:s,deselect:{main:n,svg:o,path:l},arrow:{main:r,path:c}}}},{key:"mainFocus",value:function(e){"click"!==e&&this.main.main.focus({preventScroll:!0})}},{key:"placeholder",value:function(){var e=this.store.filter((function(e){return e.placeholder}),!1),t=this.settings.placeholderText;e.length&&(""!==e[0].html?t=e[0].html:""!==e[0].text&&(t=e[0].text));var i=document.createElement("div");return i.classList.add(this.classes.placeholder),i.innerHTML=t,i}},{key:"renderValues",value:function(){this.settings.isMultiple?(this.renderMultipleValues(),this.updateDeselectAll()):this.renderSingleValue()}},{key:"renderSingleValue",value:function(){var e=this.store.filter((function(e){return e.selected&&!e.placeholder}),!1),t=e.length>0?e[0]:null;if(t){var i=document.createElement("div");i.classList.add(this.classes.single),t.html?i.innerHTML=t.html:i.innerText=t.text,this.main.values.innerHTML=i.outerHTML}else this.main.values.innerHTML=this.placeholder().outerHTML;this.settings.allowDeselect&&e.length?this.main.deselect.main.classList.remove(this.classes.hide):this.main.deselect.main.classList.add(this.classes.hide)}},{key:"renderMultipleValues",value:function(){var e=function(e){var s=t[e],n=s.getAttribute("data-id");n&&(i.filter((function(e){return e.id===n}),!1).length||o.push(s))},t=this.main.values.childNodes,i=this.store.filter((function(e){return e.selected&&e.display}),!1);if(0!==i.length){var s=this.main.values.querySelector("."+this.classes.placeholder);if(s&&s.remove(),i.length>this.settings.maxValuesShown){var n=document.createElement("div");return n.classList.add(this.classes.max),n.textContent=this.settings.maxValuesMessage.replace("{number}",i.length.toString()),void(this.main.values.innerHTML=n.outerHTML)}var a=this.main.values.querySelector("."+this.classes.max);a&&a.remove();for(var o=[],l=0;l0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s="."+this.classes.option;return e&&(s+=":not(."+this.classes.placeholder+")"),t&&(s+=":not(."+this.classes.disabled+")"),i&&(s+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(s))}},{key:"highlight",value:function(e){var t=this.getOptions(!0,!0,!0);if(0!==t.length)if(1!==t.length||t[0].classList.contains(this.classes.highlighted)){var i=!1,s=!0,n=!1,a=void 0;try{for(var o,l=t[Symbol.iterator]();!(s=(o=l.next()).done);s=!0)o.value.classList.contains(this.classes.highlighted)&&(i=!0)}catch(e){n=!0,a=e}finally{try{s||null==l.return||l.return()}finally{if(n)throw a}}if(!i){var r=!0,c=!1,d=void 0;try{for(var h,u=t[Symbol.iterator]();!(r=(h=u.next()).done);r=!0){var f=h.value;if(f.classList.contains(this.classes.selected)){f.classList.add(this.classes.highlighted);break}}}catch(e){c=!0,d=e}finally{try{r||null==u.return||u.return()}finally{if(c)throw d}}}for(var p=0;p=0?p-1:t.length-1];g.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,g);var b=g.parentElement;if(b&&b.classList.contains(this.classes.close)){var x=b.querySelector("."+this.classes.optgroupLabel);x&&x.click()}return}t["down"===e?0:t.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,t["down"===e?0:t.length-1])}else t[0].classList.add(this.classes.highlighted)}},{key:"listDiv",value:function(){var e=document.createElement("div");return e.classList.add(this.classes.list),e}},{key:"renderError",value:function(e){this.content.list.innerHTML="";var t=document.createElement("div");t.classList.add(this.classes.error),t.textContent=e,this.content.list.appendChild(t)}},{key:"renderSearching",value:function(){this.content.list.innerHTML="";var e=document.createElement("div");e.classList.add(this.classes.searching),e.textContent=this.settings.searchingText,this.content.list.appendChild(e)}},{key:"renderOptions",value:function(e){if(this.content.list.innerHTML="",0===e.length){var t=document.createElement("div");return t.classList.add(this.classes.search),t.innerHTML=this.settings.searchText,void this.content.list.appendChild(t)}var i=!0,s=!1,n=void 0;try{for(var a,o=this,l=function(e,t){var i=t.value;if(i instanceof r){var s=document.createElement("div");s.classList.add(o.classes.optgroup);var n=document.createElement("div");n.classList.add(o.classes.optgroupLabel),s.appendChild(n);var a=document.createElement("div");a.classList.add(o.classes.optgroupLabelText),a.textContent=i.label,n.appendChild(a);var l=document.createElement("div");if(l.classList.add(o.classes.optgroupActions),n.appendChild(l),o.settings.isMultiple&&i.selectAll){var d=o,h=document.createElement("div");h.classList.add(o.classes.optgroupSelectAll);var u=!0,f=!0,p=!1,m=void 0;try{for(var v,y=i.options[Symbol.iterator]();!(f=(v=y.next()).done);f=!0)if(!v.value.selected){u=!1;break}}catch(e){p=!0,m=e}finally{try{f||null==y.return||y.return()}finally{if(p)throw m}}u&&h.classList.add(o.classes.selected);var g=document.createElement("span");g.textContent=i.selectAllText,h.appendChild(g);var b=document.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("viewBox","0 0 100 100"),h.appendChild(b);var x=document.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("d",o.classes.optgroupSelectAllBox),b.appendChild(x);var w=document.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("d",o.classes.optgroupSelectAllCheck),b.appendChild(w),h.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation();var t=d.store.getSelected();if(u){var s=t.filter((function(e){var t=!0,s=!1,n=void 0;try{for(var a,o=i.options[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)if(e===a.value.value)return!1}catch(e){s=!0,n=e}finally{try{t||null==o.return||o.return()}finally{if(s)throw n}}return!0}));d.callbacks.setSelected(s,!0)}else{var n=t.concat(i.options.map((function(e){return e.value}))),a=!0,o=!1,l=void 0;try{for(var r,c=i.options[Symbol.iterator]();!(a=(r=c.next()).done);a=!0){var h=r.value;d.store.getOptionByID(h.id)||d.callbacks.addOption(h)}}catch(e){o=!0,l=e}finally{try{a||null==c.return||c.return()}finally{if(o)throw l}}d.callbacks.setSelected(n,!0)}})),l.appendChild(h)}if("off"!==i.closable){var k=o,C=document.createElement("div");C.classList.add(o.classes.optgroupClosable);var L=document.createElementNS("http://www.w3.org/2000/svg","svg");L.setAttribute("viewBox","0 0 100 100"),L.classList.add(o.classes.arrow),C.appendChild(L);var S=document.createElementNS("http://www.w3.org/2000/svg","path");L.appendChild(S),i.options.some((function(e){return e.selected}))||""!==o.content.search.input.value.trim()?(C.classList.add(o.classes.open),S.setAttribute("d",o.classes.arrowOpen)):"open"===i.closable?(s.classList.add(o.classes.open),S.setAttribute("d",o.classes.arrowOpen)):"close"===i.closable&&(s.classList.add(o.classes.close),S.setAttribute("d",o.classes.arrowClose)),n.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),s.classList.contains(k.classes.close)?(s.classList.remove(k.classes.close),s.classList.add(k.classes.open),S.setAttribute("d",k.classes.arrowOpen)):(s.classList.remove(k.classes.open),s.classList.add(k.classes.close),S.setAttribute("d",k.classes.arrowClose))})),l.appendChild(C)}s.appendChild(n);var N=!0,O=!1,A=void 0;try{for(var E,T=i.options[Symbol.iterator]();!(N=(E=T.next()).done);N=!0){var D=E.value;s.appendChild(o.option(D))}}catch(e){O=!0,A=e}finally{try{N||null==T.return||T.return()}finally{if(O)throw A}}o.content.list.appendChild(s)}i instanceof c&&o.content.list.appendChild(o.option(i))},d=e[Symbol.iterator]();!(i=(a=d.next()).done);i=!0)l(d,a)}catch(e){s=!0,n=e}finally{try{i||null==d.return||d.return()}finally{if(s)throw n}}}},{key:"option",value:function(e){var t=this;if(e.placeholder){var i=document.createElement("div");return i.classList.add(this.classes.option),i.classList.add(this.classes.hide),i}var s=document.createElement("div");return s.dataset.id=e.id,s.id=e.id,s.classList.add(this.classes.option),s.setAttribute("role","option"),e.class&&e.class.split(" ").forEach((function(e){s.classList.add(e)})),e.style&&(s.style.cssText=e.style),this.settings.searchHighlight&&""!==this.content.search.input.value.trim()?s.innerHTML=this.highlightText(""!==e.html?e.html:e.text,this.content.search.input.value,this.classes.searchHighlighter):""!==e.html?s.innerHTML=e.html:s.textContent=e.text,this.settings.showOptionTooltips&&s.textContent&&s.setAttribute("title",s.textContent),e.display||s.classList.add(this.classes.hide),e.disabled&&s.classList.add(this.classes.disabled),e.selected&&this.settings.hideSelected&&s.classList.add(this.classes.hide),e.selected?(s.classList.add(this.classes.selected),s.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",s.id)):(s.classList.remove(this.classes.selected),s.setAttribute("aria-selected","false")),s.addEventListener("click",(function(i){i.preventDefault(),i.stopPropagation();var s=t.store.getSelected(),n=i.currentTarget,a=String(n.dataset.id);if(!(e.disabled||e.selected&&!t.settings.allowDeselect||t.settings.isMultiple&&t.settings.maxSelected<=s.length&&!e.selected||t.settings.isMultiple&&t.settings.minSelected>=s.length&&e.selected)){var o=!1,l=t.store.getSelectedOptions(),r=[];t.settings.isMultiple&&(r=e.selected?l.filter((function(e){return e.id!==a})):l.concat(e)),t.settings.isMultiple||(r=e.selected?[]:[e]),t.callbacks.beforeChange||(o=!0),t.callbacks.beforeChange&&(o=!1!==t.callbacks.beforeChange(r,l)),o&&(t.store.getOptionByID(a)||t.callbacks.addOption(e),t.callbacks.setSelected(r.map((function(e){return e.value})),!1),t.settings.closeOnSelect&&t.callbacks.close(),t.callbacks.afterChange&&t.callbacks.afterChange(r))}})),s}},{key:"destroy",value:function(){this.main.main.remove(),this.content.main.remove()}},{key:"highlightText",value:function(e,t,i){var s=e,n=new RegExp("("+t.trim()+")(?![^<]*>[^<>]*)","i");if(!e.match(n))return e;var a=e.match(n).index,o=a+e.match(n)[0].toString().length,l=e.substring(a,o);return s=s.replace(n,'').concat(l,""))}},{key:"moveContentAbove",value:function(){var e=this.main.main.offsetHeight,t=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);var i=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(e+t-1)+"px 0px 0px 0px",this.content.main.style.top=i.top+i.height+window.scrollY+"px",this.content.main.style.left=i.left+window.scrollX+"px",this.content.main.style.width=i.width+"px"}},{key:"moveContentBelow",value:function(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);var e=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px","relative"!==this.settings.contentPosition&&(this.content.main.style.top=e.top+e.height+window.scrollY+"px",this.content.main.style.left=e.left+window.scrollX+"px",this.content.main.style.width=e.width+"px")}},{key:"ensureElementInView",value:function(e,t){var i=e.scrollTop+e.offsetTop,s=i+e.clientHeight,n=t.offsetTop,a=n+t.clientHeight;ns&&(e.scrollTop+=a-s)}},{key:"putContent",value:function(){var e=this.main.main.offsetHeight,t=this.main.main.getBoundingClientRect(),i=this.content.main.offsetHeight;return window.innerHeight-(t.top+e)<=i&&t.top>i?"up":"down"}},{key:"updateDeselectAll",value:function(){if(this.store&&this.settings){var e=this.store.getSelectedOptions(),t=e&&e.length>0,i=this.settings.isMultiple,s=this.settings.allowDeselect,n=this.main.deselect.main,a=this.classes.hide;!s||i&&!t?n.classList.add(a):n.classList.remove(a)}}}]),t}(),u=function(){function t(i){e(o)(this,t),this.listen=!1,this.observer=null,this.select=i,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}return e(l)(t,[{key:"enable",value:function(){this.select.disabled=!1}},{key:"disable",value:function(){this.select.disabled=!0}},{key:"hideUI",value:function(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}},{key:"showUI",value:function(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}},{key:"changeListen",value:function(e){this.listen=e,e&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),e||this.observer&&this.observer.disconnect()}},{key:"valueChange",value:function(e){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedValues()),!0}},{key:"observeCall",value:function(e){if(this.listen){var t=!1,i=!1,s=!1,n=!0,a=!1,o=void 0;try{for(var l,r=e[Symbol.iterator]();!(n=(l=r.next()).done);n=!0){var c=l.value;c.target===this.select&&("disabled"===c.attributeName&&(i=!0),"class"===c.attributeName&&(t=!0)),"OPTGROUP"!==c.target.nodeName&&"OPTION"!==c.target.nodeName||(s=!0)}}catch(e){a=!0,o=e}finally{try{n||null==r.return||r.return()}finally{if(a)throw o}}t&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),i&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),s&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}}},{key:"getData",value:function(){var e=[],t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;"OPTGROUP"===l.nodeName&&e.push(this.getDataFromOptgroup(l)),"OPTION"===l.nodeName&&e.push(this.getDataFromOption(l))}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return e}},{key:"getDataFromOptgroup",value:function(e){var t={id:e.id,label:e.label,selectAll:!!e.dataset&&"true"===e.dataset.selectall,selectAllText:e.dataset?e.dataset.selectalltext:"Select all",closable:e.dataset?e.dataset.closable:"off",options:[]},i=e.childNodes,s=!0,n=!1,a=void 0;try{for(var o,l=i[Symbol.iterator]();!(s=(o=l.next()).done);s=!0){var r=o.value;"OPTION"===r.nodeName&&t.options.push(this.getDataFromOption(r))}}catch(e){n=!0,a=e}finally{try{s||null==l.return||l.return()}finally{if(n)throw a}}return t}},{key:"getDataFromOption",value:function(e){return{id:e.id,value:e.value,text:e.text,html:e.dataset&&e.dataset.html?e.dataset.html:"",selected:e.selected,display:"none"!==e.style.display,disabled:e.disabled,mandatory:!!e.dataset&&"true"===e.dataset.mandatory,placeholder:"true"===e.dataset.placeholder,class:e.className,style:e.style.cssText,data:e.dataset}}},{key:"getSelectedValues",value:function(){var e=[],t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;if("OPTGROUP"===l.nodeName){var r=l.childNodes,c=!0,d=!1,h=void 0;try{for(var u,f=r[Symbol.iterator]();!(c=(u=f.next()).done);c=!0){var p=u.value;if("OPTION"===p.nodeName){var m=p;m.selected&&e.push(m.value)}}}catch(e){d=!0,h=e}finally{try{c||null==f.return||f.return()}finally{if(d)throw h}}}if("OPTION"===l.nodeName){var v=l;v.selected&&e.push(v.value)}}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return e}},{key:"setSelected",value:function(e){this.changeListen(!1);var t=this.select.childNodes,i=!0,s=!1,n=void 0;try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;if("OPTGROUP"===l.nodeName){var r=l.childNodes,c=!0,d=!1,h=void 0;try{for(var u,f=r[Symbol.iterator]();!(c=(u=f.next()).done);c=!0){var p=u.value;if("OPTION"===p.nodeName){var m=p;m.selected=e.includes(m.value)}}}catch(e){d=!0,h=e}finally{try{c||null==f.return||f.return()}finally{if(d)throw h}}}if("OPTION"===l.nodeName){var v=l;v.selected=e.includes(v.value)}}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}this.changeListen(!0)}},{key:"updateSelect",value:function(e,t,i){if(this.changeListen(!1),e&&(this.select.dataset.id=e),t&&(this.select.style.cssText=t),i){var s=this;this.select.className="",i.forEach((function(e){""!==e.trim()&&s.select.classList.add(e.trim())}))}this.changeListen(!0)}},{key:"updateOptions",value:function(e){this.changeListen(!1),this.select.innerHTML="";var t=!0,i=!1,s=void 0;try{for(var n,a=e[Symbol.iterator]();!(t=(n=a.next()).done);t=!0){var o=n.value;o instanceof r&&this.select.appendChild(this.createOptgroup(o)),o instanceof c&&this.select.appendChild(this.createOption(o))}}catch(e){i=!0,s=e}finally{try{t||null==a.return||a.return()}finally{if(i)throw s}}this.select.dispatchEvent(new Event("change")),this.changeListen(!0)}},{key:"createOptgroup",value:function(e){var t=document.createElement("optgroup");t.id=e.id,t.label=e.label,e.selectAll&&(t.dataset.selectAll="true"),"off"!==e.closable&&(t.dataset.closable=e.closable);var i=!0,s=!1,n=void 0;if(e.options)try{for(var a,o=e.options[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;t.appendChild(this.createOption(l))}}catch(e){s=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw n}}return t}},{key:"createOption",value:function(e){var t=document.createElement("option");return t.id=e.id,t.value=e.value,t.innerHTML=e.text,""!==e.html&&t.setAttribute("data-html",e.html),e.selected&&(t.selected=e.selected),e.disabled&&(t.disabled=!0),!1===e.display&&(t.style.display="none"),e.placeholder&&t.setAttribute("data-placeholder","true"),e.mandatory&&t.setAttribute("data-mandatory","true"),e.class&&e.class.split(" ").forEach((function(e){t.classList.add(e)})),e.data&&"object"==typeof e.data&&Object.keys(e.data).forEach((function(i){t.setAttribute("data-"+a(i),e.data[i])})),t}},{key:"destroy",value:function(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}]),t}(),f=function i(s){e(o)(this,i),this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,s||(s={}),this.id="ss-"+t(),this.style=s.style||"",this.class=s.class||[],this.disabled=void 0!==s.disabled&&s.disabled,this.alwaysOpen=void 0!==s.alwaysOpen&&s.alwaysOpen,this.showSearch=void 0===s.showSearch||s.showSearch,this.ariaLabel=s.ariaLabel||"Combobox",this.searchPlaceholder=s.searchPlaceholder||"Search",this.searchText=s.searchText||"No Results",this.searchingText=s.searchingText||"Searching...",this.searchHighlight=void 0!==s.searchHighlight&&s.searchHighlight,this.closeOnSelect=void 0===s.closeOnSelect||s.closeOnSelect,this.contentLocation=s.contentLocation||document.body,this.contentPosition=s.contentPosition||"absolute",this.openPosition=s.openPosition||"auto",this.placeholderText=void 0!==s.placeholderText?s.placeholderText:"Select Value",this.allowDeselect=void 0!==s.allowDeselect&&s.allowDeselect,this.hideSelected=void 0!==s.hideSelected&&s.hideSelected,this.keepOrder=void 0!==s.keepOrder&&s.keepOrder,this.showOptionTooltips=void 0!==s.showOptionTooltips&&s.showOptionTooltips,this.minSelected=s.minSelected||0,this.maxSelected=s.maxSelected||1e3,this.timeoutDelay=s.timeoutDelay||200,this.maxValuesShown=s.maxValuesShown||20,this.maxValuesMessage=s.maxValuesMessage||"{number} selected"},p=function(){function t(n){var a,l=this;if(e(o)(this,t),this.events={search:void 0,searchFilter:function(e,t){return-1!==e.text.toLowerCase().indexOf(t.toLowerCase())},addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=s((function(){(l.settings.isOpen||l.settings.isFullOpen)&&l.render.moveContent()})),this.windowScroll=s((function(){(l.settings.isOpen||l.settings.isFullOpen)&&l.render.moveContent()})),this.documentClick=function(e){l.settings.isOpen&&e.target&&!i(e.target,l.settings.id)&&l.close(e.type)},this.windowVisibilityChange=function(){document.hidden&&l.close()},this.selectEl="string"==typeof n.select?document.querySelector(n.select):n.select,this.selectEl)if("SELECT"===this.selectEl.tagName){this.selectEl.dataset.ssid&&this.destroy(),this.settings=new f(n.settings);var r=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(var c in n.events)n.events.hasOwnProperty(c)&&(-1!==r.indexOf(c)?this.events[c]=s(n.events[c],100):this.events[c]=n.events[c]);this.settings.disabled=(null===(a=n.settings)||void 0===a?void 0:a.disabled)?n.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new u(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=function(e){l.setSelected(e)},this.select.onClassChange=function(e){l.settings.class=e,l.render.updateClassStyles()},this.select.onDisabledChange=function(e){e?l.disable():l.enable()},this.select.onOptionsChange=function(e){l.setData(e)},this.store=new d(this.settings.isMultiple?"multiple":"single",n.data?n.data:this.select.getData()),n.data&&this.select.updateOptions(this.store.getData());var p={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new h(this.settings,this.store,p),this.render.renderValues(),this.render.renderOptions(this.store.getData());var m=this.selectEl.getAttribute("aria-label"),v=this.selectEl.getAttribute("aria-labelledby");m?this.render.main.main.setAttribute("aria-label",m):v&&this.render.main.main.setAttribute("aria-labelledby",v),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}else n.events&&n.events.error&&n.events.error(new Error("Element isnt of type select"));else n.events&&n.events.error&&n.events.error(new Error("Could not find select element"))}return e(l)(t,[{key:"enable",value:function(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}},{key:"disable",value:function(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}},{key:"getData",value:function(){return this.store.getData()}},{key:"setData",value:function(e){var t=this.store.getSelected(),i=this.store.validateDataArray(e);if(i)this.events.error&&this.events.error(i);else{this.store.setData(e);var s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!n(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}}},{key:"getSelected",value:function(){return this.store.getSelected()}},{key:"setSelected",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.store.getSelected();this.store.setSelectedBy("value",Array.isArray(e)?e:[e]);var s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),""!==this.render.content.search.input.value?this.search(this.render.content.search.input.value):this.render.renderOptions(s),t&&this.events.afterChange&&!n(i,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}},{key:"addOption",value:function(e){var t=this.store.getSelected();this.store.getDataOptions().some((function(t){var i;return t.value===(null!==(i=e.value)&&void 0!==i?i:e.text)}))||this.store.addOption(e);var i=this.store.getData();this.select.updateOptions(i),this.render.renderValues(),this.render.renderOptions(i),this.events.afterChange&&!n(t,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}},{key:"open",value:function(){var e=this;this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout((function(){e.events.afterOpen&&e.events.afterOpen(),e.settings.isOpen&&(e.settings.isFullOpen=!0),document.addEventListener("click",e.documentClick)}),this.settings.timeoutDelay),"absolute"===this.settings.contentPosition&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}},{key:"close",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this;this.settings.isOpen&&!this.settings.alwaysOpen&&(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),""!==this.render.content.search.input.value&&this.search(""),this.render.mainFocus(e),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout((function(){t.events.afterClose&&t.events.afterClose(),document.removeEventListener("click",t.documentClick)}),this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}},{key:"search",value:function(e){if(this.render.content.search.input.value!==e&&(this.render.content.search.input.value=e),this.events.search){this.render.renderSearching();var t=this.events.search(e,this.store.getSelectedOptions());if(t instanceof Promise){var i=this;t.then((function(e){i.render.renderOptions(i.store.partialToFullData(e))})).catch((function(e){i.render.renderError("string"==typeof e?e:e.message)}))}else Array.isArray(t)?this.render.renderOptions(this.store.partialToFullData(t)):this.render.renderError("Search event must return a promise or an array of data")}else this.render.renderOptions(""===e?this.store.getData():this.store.search(e,this.events.searchFilter))}},{key:"destroy",value:function(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}]),t}();return p}();var c,d,h={};c=void 0!==t?t:"undefined"!=typeof window?window:h,d=function(e){"use strict";if(void 0===e&&void 0===e.document)return!1;var t,i="Success",s="Failure",n="Warning",a="Info",o={wrapID:"NotiflixNotifyWrap",overlayID:"NotiflixNotifyOverlay",width:"280px",position:"right-top",distance:"10px",opacity:1,borderRadius:"5px",rtl:!1,timeout:3e3,messageMaxLength:110,backOverlay:!1,backOverlayColor:"rgba(0,0,0,0.5)",plainText:!0,showOnlyTheLastOne:!1,clickToClose:!1,pauseOnHover:!0,ID:"NotiflixNotify",className:"notiflix-notify",zindex:4001,fontFamily:"Quicksand",fontSize:"13px",cssAnimation:!0,cssAnimationDuration:400,cssAnimationStyle:"fade",closeButton:!1,useIcon:!0,useFontAwesome:!1,fontAwesomeIconStyle:"basic",fontAwesomeIconSize:"34px",success:{background:"#32c682",textColor:"#fff",childClassName:"notiflix-notify-success",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-check-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(50,198,130,0.2)"},failure:{background:"#ff5549",textColor:"#fff",childClassName:"notiflix-notify-failure",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-times-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(255,85,73,0.2)"},warning:{background:"#eebf31",textColor:"#fff",childClassName:"notiflix-notify-warning",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-exclamation-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(238,191,49,0.2)"},info:{background:"#26c0d3",textColor:"#fff",childClassName:"notiflix-notify-info",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-info-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(38,192,211,0.2)"}},l=function(e){return console.error("%c Notiflix Error ","padding:2px;border-radius:20px;color:#fff;background:#ff5549","\n"+e+"\n\nVisit documentation page to learn more: https://notiflix.github.io/documentation")},r=function(t){return t||(t="head"),null!==e.document[t]||(l('\nNotiflix needs to be appended to the "<'+t+'>" element, but you called it before the "<'+t+'>" element has been created.'),!1)},c=function(){var e={},t=!1,i=0;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],i++);for(var s=function(i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(t&&"[object Object]"===Object.prototype.toString.call(i[s])?e[s]=c(e[s],i[s]):e[s]=i[s])};idiv{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:"Quicksand",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}'},h=0,u=function(l,d,u,p){if(!r("body"))return!1;t||f.Notify.init({});var m=c(!0,t,{});if("object"==typeof u&&!Array.isArray(u)||"object"==typeof p&&!Array.isArray(p)){var v={};"object"==typeof u?v=u:"object"==typeof p&&(v=p),t=c(!0,t,v)}var y,g,b=t[l.toLocaleLowerCase("en")];h++,"string"!=typeof d&&(d="Notiflix "+l),t.plainText&&(y=d,(g=e.document.createElement("div")).innerHTML=y,d=g.textContent||g.innerText||""),!t.plainText&&d.length>t.messageMaxLength&&(t=c(!0,t,{closeButton:!0,messageMaxLength:150}),d='Possible HTML Tags Error: The "plainText" option is "false" and the notification content length is more than the "messageMaxLength" option.'),d.length>t.messageMaxLength&&(d=d.substring(0,t.messageMaxLength)+"..."),"shadow"===t.fontAwesomeIconStyle&&(b.fontAwesomeIconColor=b.background),t.cssAnimation||(t.cssAnimationDuration=0);var x=e.document.getElementById(o.wrapID)||e.document.createElement("div");if(x.id=o.wrapID,x.style.width=t.width,x.style.zIndex=t.zindex,x.style.opacity=t.opacity,"center-center"===t.position?(x.style.left=t.distance,x.style.top=t.distance,x.style.right=t.distance,x.style.bottom=t.distance,x.style.margin="auto",x.classList.add("nx-flex-center-center"),x.style.maxHeight="calc((100vh - "+t.distance+") - "+t.distance+")",x.style.display="flex",x.style.flexWrap="wrap",x.style.flexDirection="column",x.style.justifyContent="center",x.style.alignItems="center",x.style.pointerEvents="none"):"center-top"===t.position?(x.style.left=t.distance,x.style.right=t.distance,x.style.top=t.distance,x.style.bottom="auto",x.style.margin="auto"):"center-bottom"===t.position?(x.style.left=t.distance,x.style.right=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.margin="auto"):"right-bottom"===t.position?(x.style.right=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.left="auto"):"left-top"===t.position?(x.style.left=t.distance,x.style.top=t.distance,x.style.right="auto",x.style.bottom="auto"):"left-bottom"===t.position?(x.style.left=t.distance,x.style.bottom=t.distance,x.style.top="auto",x.style.right="auto"):(x.style.right=t.distance,x.style.top=t.distance,x.style.left="auto",x.style.bottom="auto"),t.backOverlay){var w=e.document.getElementById(o.overlayID)||e.document.createElement("div");w.id=o.overlayID,w.style.width="100%",w.style.height="100%",w.style.position="fixed",w.style.zIndex=t.zindex-1,w.style.left=0,w.style.top=0,w.style.right=0,w.style.bottom=0,w.style.background=b.backOverlayColor||t.backOverlayColor,w.className=t.cssAnimation?"nx-with-animation":"",w.style.animationDuration=t.cssAnimation?t.cssAnimationDuration+"ms":"",e.document.getElementById(o.overlayID)||e.document.body.appendChild(w)}e.document.getElementById(o.wrapID)||e.document.body.appendChild(x);var k=e.document.createElement("div");k.id=t.ID+"-"+h,k.className=t.className+" "+b.childClassName+" "+(t.cssAnimation?"nx-with-animation":"")+" "+(t.useIcon?"nx-with-icon":"")+" nx-"+t.cssAnimationStyle+" "+(t.closeButton&&"function"!=typeof u?"nx-with-close-button":"")+" "+("function"==typeof u?"nx-with-callback":"")+" "+(t.clickToClose?"nx-notify-click-to-close":""),k.style.fontSize=t.fontSize,k.style.color=b.textColor,k.style.background=b.background,k.style.borderRadius=t.borderRadius,k.style.pointerEvents="all",t.rtl&&(k.setAttribute("dir","rtl"),k.classList.add("nx-rtl-on")),k.style.fontFamily='"'+t.fontFamily+'", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',t.cssAnimation&&(k.style.animationDuration=t.cssAnimationDuration+"ms");var C="";if(t.closeButton&&"function"!=typeof u&&(C=''),t.useIcon)if(t.useFontAwesome)k.innerHTML=''+d+""+(t.closeButton?C:"");else{var L="";l===i?L='':l===s?L='':l===n?L='':l===a&&(L=''),k.innerHTML=L+''+d+""+(t.closeButton?C:"")}else k.innerHTML=''+d+""+(t.closeButton?C:"");if("left-bottom"===t.position||"right-bottom"===t.position){var S=e.document.getElementById(o.wrapID);S.insertBefore(k,S.firstChild)}else e.document.getElementById(o.wrapID).appendChild(k);var N=e.document.getElementById(k.id);if(N){var O,A,E=function(){N.classList.add("nx-remove");var t=e.document.getElementById(o.overlayID);t&&x.childElementCount<=0&&t.classList.add("nx-remove"),clearTimeout(O)},T=function(){if(N&&null!==N.parentNode&&N.parentNode.removeChild(N),x.childElementCount<=0&&null!==x.parentNode){x.parentNode.removeChild(x);var t=e.document.getElementById(o.overlayID);t&&null!==t.parentNode&&t.parentNode.removeChild(t)}clearTimeout(A)};if(t.closeButton&&"function"!=typeof u&&e.document.getElementById(k.id).querySelector("span.nx-close-button").addEventListener("click",(function(){E();var e=setTimeout((function(){T(),clearTimeout(e)}),t.cssAnimationDuration)})),("function"==typeof u||t.clickToClose)&&N.addEventListener("click",(function(){"function"==typeof u&&u(),E();var e=setTimeout((function(){T(),clearTimeout(e)}),t.cssAnimationDuration)})),!t.closeButton&&"function"!=typeof u){var D=function(){O=setTimeout((function(){E()}),t.timeout),A=setTimeout((function(){T()}),t.timeout+t.cssAnimationDuration)};D(),t.pauseOnHover&&(N.addEventListener("mouseenter",(function(){N.classList.add("nx-paused"),clearTimeout(O),clearTimeout(A)})),N.addEventListener("mouseleave",(function(){N.classList.remove("nx-paused"),D()})))}}if(t.showOnlyTheLastOne&&h>0)for(var I=e.document.querySelectorAll("[id^="+t.ID+"-]:not([id="+t.ID+"-"+h+"])"),M=0;M\n \n \n \n
').concat(s[0].name,"
\n
").concat(s[0].description,"
\n
Temperament: ").concat(s[0].temperament,'
\n
Link to Wikipedia page\n
'))})).catch((function(e){return console.log(e)}))}))}();
+//# sourceMappingURL=index.5280651f.js.map
diff --git a/index.5280651f.js.map b/index.5280651f.js.map
new file mode 100644
index 0000000..7a93251
--- /dev/null
+++ b/index.5280651f.js.map
@@ -0,0 +1 @@
+{"mappings":"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","sources":["src/cat-api.js","node_modules/@swc/helpers/lib/_class_call_check.js","node_modules/@swc/helpers/lib/_create_class.js","node_modules/slim-select/dist/slimselect.umd.js","node_modules/notiflix/build/notiflix-notify-aio.js","src/index.js","src/createMarkup.js"],"sourcesContent":["const BASE_URL = 'https://api.thecatapi.com/v1';\nconst API_KEY = 'live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm';\n\nfunction fetchBreeds() {\n const URL = `${BASE_URL}/breeds?api_key=${API_KEY}`\n return fetch(URL).then(resp => {\n if (!resp.ok) {\n throw new Error(resp.statusText)\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\nfunction fetchCatByBreed(breedId) {\n const URL = `${BASE_URL}/images/search?api_key=${API_KEY}&breed_ids=${breedId}`\n return fetch(URL)\n .then(resp => {\n if (!resp.ok) {\n throw new Error(resp.status);\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\n\nexport { fetchBreeds, fetchCatByBreed };","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _classCallCheck;\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _createClass;\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SlimSelect = factory());\n})(this, (function () { 'use strict';\n\n function generateID() {\n return Math.random().toString(36).substring(2, 10);\n }\n function hasClassInTree(element, className) {\n function hasClass(e, c) {\n if (c && e && e.classList && e.classList.contains(c)) {\n return e;\n }\n if (c && e && e.dataset && e.dataset.id && e.dataset.id === className) {\n return e;\n }\n return null;\n }\n function parentByClass(e, c) {\n if (!e || e === document) {\n return null;\n }\n else if (hasClass(e, c)) {\n return e;\n }\n else {\n return parentByClass(e.parentNode, c);\n }\n }\n return hasClass(element, className) || parentByClass(element, className);\n }\n function debounce(func, wait = 50, immediate = false) {\n let timeout;\n return function (...args) {\n const context = self;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n function isEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n function kebabCase(str) {\n const result = str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match) => '-' + match.toLowerCase());\n return str[0] === str[0].toUpperCase() ? result.substring(1) : result;\n }\n\n class Optgroup {\n constructor(optgroup) {\n this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;\n this.label = optgroup.label || '';\n this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;\n this.selectAllText = optgroup.selectAllText || 'Select All';\n this.closable = optgroup.closable || 'off';\n this.options = [];\n if (optgroup.options) {\n for (const o of optgroup.options) {\n this.options.push(new Option(o));\n }\n }\n }\n }\n class Option {\n constructor(option) {\n this.id = !option.id || option.id === '' ? generateID() : option.id;\n this.value = option.value === undefined ? option.text : option.value;\n this.text = option.text || '';\n this.html = option.html || '';\n this.selected = option.selected !== undefined ? option.selected : false;\n this.display = option.display !== undefined ? option.display : true;\n this.disabled = option.disabled !== undefined ? option.disabled : false;\n this.mandatory = option.mandatory !== undefined ? option.mandatory : false;\n this.placeholder = option.placeholder !== undefined ? option.placeholder : false;\n this.class = option.class || '';\n this.style = option.style || '';\n this.data = option.data || {};\n }\n }\n class Store {\n constructor(type, data) {\n this.selectType = 'single';\n this.data = [];\n this.selectType = type;\n this.setData(data);\n }\n validateDataArray(data) {\n if (!Array.isArray(data)) {\n return new Error('Data must be an array');\n }\n for (let dataObj of data) {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n if (!('label' in dataObj)) {\n return new Error('Optgroup must have a label');\n }\n if ('options' in dataObj && dataObj.options) {\n for (let option of dataObj.options) {\n return this.validateOption(option);\n }\n }\n }\n else if (dataObj instanceof Option || 'text' in dataObj) {\n return this.validateOption(dataObj);\n }\n else {\n return new Error('Data object must be a valid optgroup or option');\n }\n }\n return null;\n }\n validateOption(option) {\n if (!('text' in option)) {\n return new Error('Option must have a text');\n }\n return null;\n }\n partialToFullData(data) {\n let dataFinal = [];\n data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n let optOptions = [];\n if ('options' in dataObj && dataObj.options) {\n dataObj.options.forEach((option) => {\n optOptions.push(new Option(option));\n });\n }\n if (optOptions.length > 0) {\n dataFinal.push(new Optgroup(dataObj));\n }\n }\n if (dataObj instanceof Option || 'text' in dataObj) {\n dataFinal.push(new Option(dataObj));\n }\n });\n return dataFinal;\n }\n setData(data) {\n this.data = this.partialToFullData(data);\n if (this.selectType === 'single') {\n this.setSelectedBy('value', this.getSelected());\n }\n }\n getData() {\n return this.filter(null, true);\n }\n getDataOptions() {\n return this.filter(null, false);\n }\n addOption(option) {\n this.setData(this.getData().concat(new Option(option)));\n }\n setSelectedBy(selectedType, selectedValues) {\n let firstOption = null;\n let hasSelected = false;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n for (let option of dataObj.options) {\n if (!firstOption) {\n firstOption = option;\n }\n option.selected = hasSelected ? false : selectedValues.includes(option[selectedType]);\n if (option.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (dataObj instanceof Option) {\n if (!firstOption) {\n firstOption = dataObj;\n }\n dataObj.selected = hasSelected ? false : selectedValues.includes(dataObj[selectedType]);\n if (dataObj.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (this.selectType === 'single' && firstOption && !hasSelected) {\n firstOption.selected = true;\n }\n }\n getSelected() {\n let selectedOptions = this.getSelectedOptions();\n let selectedValues = [];\n selectedOptions.forEach((option) => {\n selectedValues.push(option.value);\n });\n return selectedValues;\n }\n getSelectedOptions() {\n return this.filter((opt) => {\n return opt.selected;\n }, false);\n }\n getSelectedIDs() {\n let selectedOptions = this.getSelectedOptions();\n let selectedIDs = [];\n selectedOptions.forEach((op) => {\n selectedIDs.push(op.id);\n });\n return selectedIDs;\n }\n getOptgroupByID(id) {\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup && dataObj.id === id) {\n return dataObj;\n }\n }\n return null;\n }\n getOptionByID(id) {\n let options = this.filter((opt) => {\n return opt.id === id;\n }, false);\n return options.length ? options[0] : null;\n }\n getSelectType() {\n return this.selectType;\n }\n getFirstOption() {\n let option = null;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n option = dataObj.options[0];\n }\n else if (dataObj instanceof Option) {\n option = dataObj;\n }\n if (option) {\n break;\n }\n }\n return option;\n }\n search(search, searchFilter) {\n search = search.trim();\n if (search === '') {\n return this.getData();\n }\n return this.filter((opt) => {\n return searchFilter(opt, search);\n }, true);\n }\n filter(filter, includeOptgroup) {\n const dataSearch = [];\n this.data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup) {\n let optOptions = [];\n dataObj.options.forEach((option) => {\n if (!filter || filter(option)) {\n if (!includeOptgroup) {\n dataSearch.push(new Option(option));\n }\n else {\n optOptions.push(new Option(option));\n }\n }\n });\n if (optOptions.length > 0) {\n let optgroup = new Optgroup(dataObj);\n optgroup.options = optOptions;\n dataSearch.push(optgroup);\n }\n }\n if (dataObj instanceof Option) {\n if (!filter || filter(dataObj)) {\n dataSearch.push(new Option(dataObj));\n }\n }\n });\n return dataSearch;\n }\n }\n\n class Render {\n constructor(settings, store, callbacks) {\n this.classes = {\n main: 'ss-main',\n placeholder: 'ss-placeholder',\n values: 'ss-values',\n single: 'ss-single',\n max: 'ss-max',\n value: 'ss-value',\n valueText: 'ss-value-text',\n valueDelete: 'ss-value-delete',\n valueOut: 'ss-value-out',\n deselect: 'ss-deselect',\n deselectPath: 'M10,10 L90,90 M10,90 L90,10',\n arrow: 'ss-arrow',\n arrowClose: 'M10,30 L50,70 L90,30',\n arrowOpen: 'M10,70 L50,30 L90,70',\n content: 'ss-content',\n openAbove: 'ss-open-above',\n openBelow: 'ss-open-below',\n search: 'ss-search',\n searchHighlighter: 'ss-search-highlight',\n searching: 'ss-searching',\n addable: 'ss-addable',\n addablePath: 'M50,10 L50,90 M10,50 L90,50',\n list: 'ss-list',\n optgroup: 'ss-optgroup',\n optgroupLabel: 'ss-optgroup-label',\n optgroupLabelText: 'ss-optgroup-label-text',\n optgroupActions: 'ss-optgroup-actions',\n optgroupSelectAll: 'ss-selectall',\n optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',\n optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',\n optgroupClosable: 'ss-closable',\n option: 'ss-option',\n optionDelete: 'M10,10 L90,90 M10,90 L90,10',\n highlighted: 'ss-highlighted',\n open: 'ss-open',\n close: 'ss-close',\n selected: 'ss-selected',\n error: 'ss-error',\n disabled: 'ss-disabled',\n hide: 'ss-hide',\n };\n this.store = store;\n this.settings = settings;\n this.callbacks = callbacks;\n this.main = this.mainDiv();\n this.content = this.contentDiv();\n this.updateClassStyles();\n this.updateAriaAttributes();\n this.settings.contentLocation.appendChild(this.content.main);\n }\n enable() {\n this.main.main.classList.remove(this.classes.disabled);\n this.content.search.input.disabled = false;\n }\n disable() {\n this.main.main.classList.add(this.classes.disabled);\n this.content.search.input.disabled = true;\n }\n open() {\n this.main.arrow.path.setAttribute('d', this.classes.arrowOpen);\n this.main.main.classList.add(this.settings.openPosition === 'up' ? this.classes.openAbove : this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'true');\n this.moveContent();\n const selectedOptions = this.store.getSelectedOptions();\n if (selectedOptions.length) {\n const selectedId = selectedOptions[selectedOptions.length - 1].id;\n const selectedOption = this.content.list.querySelector('[data-id=\"' + selectedId + '\"]');\n if (selectedOption) {\n this.ensureElementInView(this.content.list, selectedOption);\n }\n }\n }\n close() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.main.arrow.path.setAttribute('d', this.classes.arrowClose);\n }\n updateClassStyles() {\n this.main.main.className = '';\n this.main.main.removeAttribute('style');\n this.content.main.className = '';\n this.content.main.removeAttribute('style');\n this.main.main.classList.add(this.classes.main);\n this.content.main.classList.add(this.classes.content);\n if (this.settings.style !== '') {\n this.main.main.style.cssText = this.settings.style;\n this.content.main.style.cssText = this.settings.style;\n }\n if (this.settings.class.length) {\n for (const c of this.settings.class) {\n if (c.trim() !== '') {\n this.main.main.classList.add(c.trim());\n this.content.main.classList.add(c.trim());\n }\n }\n }\n if (this.settings.contentPosition === 'relative') {\n this.content.main.classList.add('ss-' + this.settings.contentPosition);\n }\n }\n updateAriaAttributes() {\n this.main.main.role = 'combobox';\n this.main.main.setAttribute('aria-haspopup', 'listbox');\n this.main.main.setAttribute('aria-controls', this.content.main.id);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.setAttribute('role', 'listbox');\n }\n mainDiv() {\n var _a;\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n main.setAttribute('aria-label', this.settings.ariaLabel);\n main.tabIndex = 0;\n main.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n this.callbacks.open();\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Enter':\n case ' ':\n this.callbacks.open();\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n }\n return false;\n case 'Escape':\n this.callbacks.close();\n return false;\n }\n return false;\n };\n main.onclick = (e) => {\n if (this.settings.disabled) {\n return;\n }\n this.settings.isOpen ? this.callbacks.close() : this.callbacks.open();\n };\n const values = document.createElement('div');\n values.classList.add(this.classes.values);\n main.appendChild(values);\n const deselect = document.createElement('div');\n deselect.classList.add(this.classes.deselect);\n const selectedOptions = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getSelectedOptions();\n if (!this.settings.allowDeselect || (this.settings.isMultiple && selectedOptions && selectedOptions.length <= 0)) {\n deselect.classList.add(this.classes.hide);\n }\n else {\n deselect.classList.remove(this.classes.hide);\n }\n deselect.onclick = (e) => {\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = [];\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n if (this.settings.isMultiple) {\n this.callbacks.setSelected([], false);\n this.updateDeselectAll();\n }\n else {\n const firstOption = this.store.getFirstOption();\n const value = firstOption ? firstOption.value : '';\n this.callbacks.setSelected(value, false);\n }\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(this.store.getSelectedOptions());\n }\n }\n };\n const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deselectSvg.setAttribute('viewBox', '0 0 100 100');\n const deselectPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deselectPath.setAttribute('d', this.classes.deselectPath);\n deselectSvg.appendChild(deselectPath);\n deselect.appendChild(deselectSvg);\n main.appendChild(deselect);\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.classList.add(this.classes.arrow);\n arrow.setAttribute('viewBox', '0 0 100 100');\n const arrowPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrowPath.setAttribute('d', this.classes.arrowClose);\n if (this.settings.alwaysOpen) {\n arrow.classList.add(this.classes.hide);\n }\n arrow.appendChild(arrowPath);\n main.appendChild(arrow);\n return {\n main: main,\n values: values,\n deselect: {\n main: deselect,\n svg: deselectSvg,\n path: deselectPath,\n },\n arrow: {\n main: arrow,\n path: arrowPath,\n },\n };\n }\n mainFocus(eventType) {\n if (eventType !== 'click') {\n this.main.main.focus({ preventScroll: true });\n }\n }\n placeholder() {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n let placeholderText = this.settings.placeholderText;\n if (placeholderOption.length) {\n if (placeholderOption[0].html !== '') {\n placeholderText = placeholderOption[0].html;\n }\n else if (placeholderOption[0].text !== '') {\n placeholderText = placeholderOption[0].text;\n }\n }\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.placeholder);\n placeholder.innerHTML = placeholderText;\n return placeholder;\n }\n renderValues() {\n if (!this.settings.isMultiple) {\n this.renderSingleValue();\n return;\n }\n this.renderMultipleValues();\n this.updateDeselectAll();\n }\n renderSingleValue() {\n const selected = this.store.filter((o) => {\n return o.selected && !o.placeholder;\n }, false);\n const selectedSingle = selected.length > 0 ? selected[0] : null;\n if (!selectedSingle) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n }\n else {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.single);\n if (selectedSingle.html) {\n singleValue.innerHTML = selectedSingle.html;\n }\n else {\n singleValue.innerText = selectedSingle.text;\n }\n this.main.values.innerHTML = singleValue.outerHTML;\n }\n if (!this.settings.allowDeselect || !selected.length) {\n this.main.deselect.main.classList.add(this.classes.hide);\n }\n else {\n this.main.deselect.main.classList.remove(this.classes.hide);\n }\n }\n renderMultipleValues() {\n let currentNodes = this.main.values.childNodes;\n let selectedOptions = this.store.filter((opt) => {\n return opt.selected && opt.display;\n }, false);\n if (selectedOptions.length === 0) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n return;\n }\n else {\n const placeholder = this.main.values.querySelector('.' + this.classes.placeholder);\n if (placeholder) {\n placeholder.remove();\n }\n }\n if (selectedOptions.length > this.settings.maxValuesShown) {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.max);\n singleValue.textContent = this.settings.maxValuesMessage.replace('{number}', selectedOptions.length.toString());\n this.main.values.innerHTML = singleValue.outerHTML;\n return;\n }\n else {\n const maxValuesMessage = this.main.values.querySelector('.' + this.classes.max);\n if (maxValuesMessage) {\n maxValuesMessage.remove();\n }\n }\n let removeNodes = [];\n for (let i = 0; i < currentNodes.length; i++) {\n const node = currentNodes[i];\n const id = node.getAttribute('data-id');\n if (id) {\n const found = selectedOptions.filter((opt) => {\n return opt.id === id;\n }, false);\n if (!found.length) {\n removeNodes.push(node);\n }\n }\n }\n for (const n of removeNodes) {\n n.classList.add(this.classes.valueOut);\n setTimeout(() => {\n if (this.main.values.hasChildNodes() && this.main.values.contains(n)) {\n this.main.values.removeChild(n);\n }\n }, 100);\n }\n currentNodes = this.main.values.childNodes;\n for (let d = 0; d < selectedOptions.length; d++) {\n let shouldAdd = true;\n for (let i = 0; i < currentNodes.length; i++) {\n if (selectedOptions[d].id === String(currentNodes[i].dataset.id)) {\n shouldAdd = false;\n }\n }\n if (shouldAdd) {\n if (this.settings.keepOrder) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else {\n if (currentNodes.length === 0) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else if (d === 0) {\n this.main.values.insertBefore(this.multipleValue(selectedOptions[d]), currentNodes[d]);\n }\n else {\n currentNodes[d - 1].insertAdjacentElement('afterend', this.multipleValue(selectedOptions[d]));\n }\n }\n }\n }\n }\n multipleValue(option) {\n const value = document.createElement('div');\n value.classList.add(this.classes.value);\n value.dataset.id = option.id;\n const text = document.createElement('div');\n text.classList.add(this.classes.valueText);\n text.innerText = option.text;\n value.appendChild(text);\n if (!option.mandatory) {\n const deleteDiv = document.createElement('div');\n deleteDiv.classList.add(this.classes.valueDelete);\n deleteDiv.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = before.filter((o) => {\n return o.selected && o.id !== option.id;\n }, true);\n if (this.settings.minSelected && after.length < this.settings.minSelected) {\n return;\n }\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n let selectedValues = [];\n for (const o of after) {\n if (o instanceof Optgroup) {\n for (const c of o.options) {\n selectedValues.push(c.value);\n }\n }\n if (o instanceof Option) {\n selectedValues.push(o.value);\n }\n }\n this.callbacks.setSelected(selectedValues, false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n this.updateDeselectAll();\n }\n };\n const deleteSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deleteSvg.setAttribute('viewBox', '0 0 100 100');\n const deletePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deletePath.setAttribute('d', this.classes.optionDelete);\n deleteSvg.appendChild(deletePath);\n deleteDiv.appendChild(deleteSvg);\n value.appendChild(deleteDiv);\n }\n return value;\n }\n contentDiv() {\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n const search = this.searchDiv();\n main.appendChild(search.main);\n const list = this.listDiv();\n main.appendChild(list);\n return {\n main: main,\n search: search,\n list: list,\n };\n }\n moveContent() {\n if (this.settings.contentPosition === 'relative') {\n this.moveContentBelow();\n return;\n }\n if (this.settings.openPosition === 'down') {\n this.moveContentBelow();\n return;\n }\n else if (this.settings.openPosition === 'up') {\n this.moveContentAbove();\n return;\n }\n if (this.putContent() === 'up') {\n this.moveContentAbove();\n }\n else {\n this.moveContentBelow();\n }\n }\n searchDiv() {\n const main = document.createElement('div');\n const input = document.createElement('input');\n const addable = document.createElement('div');\n main.classList.add(this.classes.search);\n const searchReturn = {\n main,\n input,\n };\n if (!this.settings.showSearch) {\n main.classList.add(this.classes.hide);\n input.readOnly = true;\n }\n input.type = 'search';\n input.placeholder = this.settings.searchPlaceholder;\n input.tabIndex = -1;\n input.setAttribute('aria-label', this.settings.searchPlaceholder);\n input.setAttribute('autocapitalize', 'off');\n input.setAttribute('autocomplete', 'off');\n input.setAttribute('autocorrect', 'off');\n input.oninput = debounce((e) => {\n this.callbacks.search(e.target.value);\n }, 100);\n input.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Escape':\n this.callbacks.close();\n return false;\n case 'Enter':\n case ' ':\n if (this.callbacks.addable && e.ctrlKey) {\n addable.click();\n return false;\n }\n else {\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n }\n return true;\n }\n return true;\n };\n main.appendChild(input);\n if (this.callbacks.addable) {\n addable.classList.add(this.classes.addable);\n const plus = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n plus.setAttribute('viewBox', '0 0 100 100');\n const plusPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n plusPath.setAttribute('d', this.classes.addablePath);\n plus.appendChild(plusPath);\n addable.appendChild(plus);\n addable.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!this.callbacks.addable) {\n return;\n }\n const inputValue = this.content.search.input.value.trim();\n if (inputValue === '') {\n this.content.search.input.focus();\n return;\n }\n const runFinish = (oo) => {\n let newOption = new Option(oo);\n this.callbacks.addOption(newOption);\n if (this.settings.isMultiple) {\n let values = this.store.getSelected();\n values.push(newOption.value);\n this.callbacks.setSelected(values, true);\n }\n else {\n this.callbacks.setSelected([newOption.value], true);\n }\n this.callbacks.search('');\n if (this.settings.closeOnSelect) {\n setTimeout(() => {\n this.callbacks.close();\n }, 100);\n }\n };\n const addableValue = this.callbacks.addable(inputValue);\n if (addableValue === false || addableValue === undefined || addableValue === null) {\n return;\n }\n if (addableValue instanceof Promise) {\n addableValue.then((value) => {\n if (typeof value === 'string') {\n runFinish({\n text: value,\n value: value,\n });\n }\n else {\n runFinish(value);\n }\n });\n }\n else if (typeof addableValue === 'string') {\n runFinish({\n text: addableValue,\n value: addableValue,\n });\n }\n else {\n runFinish(addableValue);\n }\n return;\n };\n main.appendChild(addable);\n searchReturn.addable = {\n main: addable,\n svg: plus,\n path: plusPath,\n };\n }\n return searchReturn;\n }\n searchFocus() {\n this.content.search.input.focus();\n }\n getOptions(notPlaceholder = false, notDisabled = false, notHidden = false) {\n let query = '.' + this.classes.option;\n if (notPlaceholder) {\n query += ':not(.' + this.classes.placeholder + ')';\n }\n if (notDisabled) {\n query += ':not(.' + this.classes.disabled + ')';\n }\n if (notHidden) {\n query += ':not(.' + this.classes.hide + ')';\n }\n return Array.from(this.content.list.querySelectorAll(query));\n }\n highlight(dir) {\n const options = this.getOptions(true, true, true);\n if (options.length === 0) {\n return;\n }\n if (options.length === 1) {\n if (!options[0].classList.contains(this.classes.highlighted)) {\n options[0].classList.add(this.classes.highlighted);\n return;\n }\n }\n let highlighted = false;\n for (const o of options) {\n if (o.classList.contains(this.classes.highlighted)) {\n highlighted = true;\n }\n }\n if (!highlighted) {\n for (const o of options) {\n if (o.classList.contains(this.classes.selected)) {\n o.classList.add(this.classes.highlighted);\n break;\n }\n }\n }\n for (let i = 0; i < options.length; i++) {\n if (options[i].classList.contains(this.classes.highlighted)) {\n const prevOption = options[i];\n prevOption.classList.remove(this.classes.highlighted);\n const prevParent = prevOption.parentElement;\n if (prevParent && prevParent.classList.contains(this.classes.open)) {\n const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];\n selectOption.classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, selectOption);\n const selectParent = selectOption.parentElement;\n if (selectParent && selectParent.classList.contains(this.classes.close)) {\n const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n return;\n }\n }\n options[dir === 'down' ? 0 : options.length - 1].classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, options[dir === 'down' ? 0 : options.length - 1]);\n }\n listDiv() {\n const options = document.createElement('div');\n options.classList.add(this.classes.list);\n return options;\n }\n renderError(error) {\n this.content.list.innerHTML = '';\n const errorDiv = document.createElement('div');\n errorDiv.classList.add(this.classes.error);\n errorDiv.textContent = error;\n this.content.list.appendChild(errorDiv);\n }\n renderSearching() {\n this.content.list.innerHTML = '';\n const searchingDiv = document.createElement('div');\n searchingDiv.classList.add(this.classes.searching);\n searchingDiv.textContent = this.settings.searchingText;\n this.content.list.appendChild(searchingDiv);\n }\n renderOptions(data) {\n this.content.list.innerHTML = '';\n if (data.length === 0) {\n const noResults = document.createElement('div');\n noResults.classList.add(this.classes.search);\n noResults.innerHTML = this.settings.searchText;\n this.content.list.appendChild(noResults);\n return;\n }\n for (const d of data) {\n if (d instanceof Optgroup) {\n const optgroupEl = document.createElement('div');\n optgroupEl.classList.add(this.classes.optgroup);\n const optgroupLabel = document.createElement('div');\n optgroupLabel.classList.add(this.classes.optgroupLabel);\n optgroupEl.appendChild(optgroupLabel);\n const optgroupLabelText = document.createElement('div');\n optgroupLabelText.classList.add(this.classes.optgroupLabelText);\n optgroupLabelText.textContent = d.label;\n optgroupLabel.appendChild(optgroupLabelText);\n const optgroupActions = document.createElement('div');\n optgroupActions.classList.add(this.classes.optgroupActions);\n optgroupLabel.appendChild(optgroupActions);\n if (this.settings.isMultiple && d.selectAll) {\n const selectAll = document.createElement('div');\n selectAll.classList.add(this.classes.optgroupSelectAll);\n let allSelected = true;\n for (const o of d.options) {\n if (!o.selected) {\n allSelected = false;\n break;\n }\n }\n if (allSelected) {\n selectAll.classList.add(this.classes.selected);\n }\n const selectAllText = document.createElement('span');\n selectAllText.textContent = d.selectAllText;\n selectAll.appendChild(selectAllText);\n const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n selectAllSvg.setAttribute('viewBox', '0 0 100 100');\n selectAll.appendChild(selectAllSvg);\n const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);\n selectAllSvg.appendChild(selectAllBox);\n const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);\n selectAllSvg.appendChild(selectAllCheck);\n selectAll.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const currentSelected = this.store.getSelected();\n if (allSelected) {\n const newSelected = currentSelected.filter((s) => {\n for (const o of d.options) {\n if (s === o.value) {\n return false;\n }\n }\n return true;\n });\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n else {\n const newSelected = currentSelected.concat(d.options.map((o) => o.value));\n for (const o of d.options) {\n if (!this.store.getOptionByID(o.id)) {\n this.callbacks.addOption(o);\n }\n }\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n });\n optgroupActions.appendChild(selectAll);\n }\n if (d.closable !== 'off') {\n const optgroupClosable = document.createElement('div');\n optgroupClosable.classList.add(this.classes.optgroupClosable);\n const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');\n optgroupClosableSvg.classList.add(this.classes.arrow);\n optgroupClosable.appendChild(optgroupClosableSvg);\n const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n optgroupClosableSvg.appendChild(optgroupClosableArrow);\n if (d.options.some((o) => o.selected) || this.content.search.input.value.trim() !== '') {\n optgroupClosable.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'open') {\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'close') {\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n optgroupLabel.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (optgroupEl.classList.contains(this.classes.close)) {\n optgroupEl.classList.remove(this.classes.close);\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else {\n optgroupEl.classList.remove(this.classes.open);\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n });\n optgroupActions.appendChild(optgroupClosable);\n }\n optgroupEl.appendChild(optgroupLabel);\n for (const o of d.options) {\n optgroupEl.appendChild(this.option(o));\n }\n this.content.list.appendChild(optgroupEl);\n }\n if (d instanceof Option) {\n this.content.list.appendChild(this.option(d));\n }\n }\n }\n option(option) {\n if (option.placeholder) {\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.option);\n placeholder.classList.add(this.classes.hide);\n return placeholder;\n }\n const optionEl = document.createElement('div');\n optionEl.dataset.id = option.id;\n optionEl.id = option.id;\n optionEl.classList.add(this.classes.option);\n optionEl.setAttribute('role', 'option');\n if (option.class) {\n option.class.split(' ').forEach((dataClass) => {\n optionEl.classList.add(dataClass);\n });\n }\n if (option.style) {\n optionEl.style.cssText = option.style;\n }\n if (this.settings.searchHighlight && this.content.search.input.value.trim() !== '') {\n optionEl.innerHTML = this.highlightText(option.html !== '' ? option.html : option.text, this.content.search.input.value, this.classes.searchHighlighter);\n }\n else if (option.html !== '') {\n optionEl.innerHTML = option.html;\n }\n else {\n optionEl.textContent = option.text;\n }\n if (this.settings.showOptionTooltips && optionEl.textContent) {\n optionEl.setAttribute('title', optionEl.textContent);\n }\n if (!option.display) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.disabled) {\n optionEl.classList.add(this.classes.disabled);\n }\n if (option.selected && this.settings.hideSelected) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.selected) {\n optionEl.classList.add(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'true');\n this.main.main.setAttribute('aria-activedescendant', optionEl.id);\n }\n else {\n optionEl.classList.remove(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'false');\n }\n optionEl.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const selectedOptions = this.store.getSelected();\n const element = e.currentTarget;\n const elementID = String(element.dataset.id);\n if (option.disabled || (option.selected && !this.settings.allowDeselect)) {\n return;\n }\n if ((this.settings.isMultiple && this.settings.maxSelected <= selectedOptions.length && !option.selected) ||\n (this.settings.isMultiple && this.settings.minSelected >= selectedOptions.length && option.selected)) {\n return;\n }\n let shouldUpdate = false;\n const before = this.store.getSelectedOptions();\n let after = [];\n if (this.settings.isMultiple) {\n if (option.selected) {\n after = before.filter((o) => o.id !== elementID);\n }\n else {\n after = before.concat(option);\n }\n }\n if (!this.settings.isMultiple) {\n if (option.selected) {\n after = [];\n }\n else {\n after = [option];\n }\n }\n if (!this.callbacks.beforeChange) {\n shouldUpdate = true;\n }\n if (this.callbacks.beforeChange) {\n if (this.callbacks.beforeChange(after, before) === false) {\n shouldUpdate = false;\n }\n else {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n if (!this.store.getOptionByID(elementID)) {\n this.callbacks.addOption(option);\n }\n this.callbacks.setSelected(after.map((o) => o.value), false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n }\n });\n return optionEl;\n }\n destroy() {\n this.main.main.remove();\n this.content.main.remove();\n }\n highlightText(str, search, className) {\n let completedString = str;\n const regex = new RegExp('(' + search.trim() + ')(?![^<]*>[^<>]*)', 'i');\n if (!str.match(regex)) {\n return str;\n }\n const matchStartPosition = str.match(regex).index;\n const matchEndPosition = matchStartPosition + str.match(regex)[0].toString().length;\n const originalTextFoundByRegex = str.substring(matchStartPosition, matchEndPosition);\n completedString = completedString.replace(regex, `${originalTextFoundByRegex}`);\n return completedString;\n }\n moveContentAbove() {\n const mainHeight = this.main.main.offsetHeight;\n const contentHeight = this.content.main.offsetHeight;\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.classList.add(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.content.main.classList.add(this.classes.openAbove);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-' + (mainHeight + contentHeight - 1) + 'px 0px 0px 0px';\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n moveContentBelow() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.add(this.classes.openBelow);\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.add(this.classes.openBelow);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-1px 0px 0px 0px';\n if (this.settings.contentPosition !== 'relative') {\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n }\n ensureElementInView(container, element) {\n const cTop = container.scrollTop + container.offsetTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n if (eTop < cTop) {\n container.scrollTop -= cTop - eTop;\n }\n else if (eBottom > cBottom) {\n container.scrollTop += eBottom - cBottom;\n }\n }\n putContent() {\n const mainHeight = this.main.main.offsetHeight;\n const mainRect = this.main.main.getBoundingClientRect();\n const contentHeight = this.content.main.offsetHeight;\n const spaceBelow = window.innerHeight - (mainRect.top + mainHeight);\n if (spaceBelow <= contentHeight) {\n if (mainRect.top > contentHeight) {\n return 'up';\n }\n else {\n return 'down';\n }\n }\n return 'down';\n }\n updateDeselectAll() {\n if (!this.store || !this.settings) {\n return;\n }\n const selected = this.store.getSelectedOptions();\n const hasSelectedItems = selected && selected.length > 0;\n const isMultiple = this.settings.isMultiple;\n const allowDeselect = this.settings.allowDeselect;\n const deselectButton = this.main.deselect.main;\n const hideClass = this.classes.hide;\n if (allowDeselect && !(isMultiple && !hasSelectedItems)) {\n deselectButton.classList.remove(hideClass);\n }\n else {\n deselectButton.classList.add(hideClass);\n }\n }\n }\n\n class Select {\n constructor(select) {\n this.listen = false;\n this.observer = null;\n this.select = select;\n this.valueChange = this.valueChange.bind(this);\n this.select.addEventListener('change', this.valueChange, {\n passive: true,\n });\n this.observer = new MutationObserver(this.observeCall.bind(this));\n this.changeListen(true);\n }\n enable() {\n this.select.disabled = false;\n }\n disable() {\n this.select.disabled = true;\n }\n hideUI() {\n this.select.tabIndex = -1;\n this.select.style.display = 'none';\n this.select.setAttribute('aria-hidden', 'true');\n }\n showUI() {\n this.select.removeAttribute('tabindex');\n this.select.style.display = '';\n this.select.removeAttribute('aria-hidden');\n }\n changeListen(listen) {\n this.listen = listen;\n if (listen) {\n if (this.observer) {\n this.observer.observe(this.select, {\n subtree: true,\n childList: true,\n attributes: true,\n });\n }\n }\n if (!listen) {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n }\n valueChange(ev) {\n if (this.listen && this.onValueChange) {\n this.onValueChange(this.getSelectedValues());\n }\n return true;\n }\n observeCall(mutations) {\n if (!this.listen) {\n return;\n }\n let classChanged = false;\n let disabledChanged = false;\n let optgroupOptionChanged = false;\n for (const m of mutations) {\n if (m.target === this.select) {\n if (m.attributeName === 'disabled') {\n disabledChanged = true;\n }\n if (m.attributeName === 'class') {\n classChanged = true;\n }\n }\n if (m.target.nodeName === 'OPTGROUP' || m.target.nodeName === 'OPTION') {\n optgroupOptionChanged = true;\n }\n }\n if (classChanged && this.onClassChange) {\n this.onClassChange(this.select.className.split(' '));\n }\n if (disabledChanged && this.onDisabledChange) {\n this.changeListen(false);\n this.onDisabledChange(this.select.disabled);\n this.changeListen(true);\n }\n if (optgroupOptionChanged && this.onOptionsChange) {\n this.changeListen(false);\n this.onOptionsChange(this.getData());\n this.changeListen(true);\n }\n }\n getData() {\n let data = [];\n const nodes = this.select.childNodes;\n for (const n of nodes) {\n if (n.nodeName === 'OPTGROUP') {\n data.push(this.getDataFromOptgroup(n));\n }\n if (n.nodeName === 'OPTION') {\n data.push(this.getDataFromOption(n));\n }\n }\n return data;\n }\n getDataFromOptgroup(optgroup) {\n let data = {\n id: optgroup.id,\n label: optgroup.label,\n selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,\n selectAllText: optgroup.dataset ? optgroup.dataset.selectalltext : 'Select all',\n closable: optgroup.dataset ? optgroup.dataset.closable : 'off',\n options: [],\n };\n const options = optgroup.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTION') {\n data.options.push(this.getDataFromOption(o));\n }\n }\n return data;\n }\n getDataFromOption(option) {\n return {\n id: option.id,\n value: option.value,\n text: option.text,\n html: option.dataset && option.dataset.html ? option.dataset.html : '',\n selected: option.selected,\n display: option.style.display === 'none' ? false : true,\n disabled: option.disabled,\n mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,\n placeholder: option.dataset.placeholder === 'true',\n class: option.className,\n style: option.style.cssText,\n data: option.dataset,\n };\n }\n getSelectedValues() {\n let values = [];\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroupOptions = o.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n return values;\n }\n setSelected(value) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = value.includes(option.value);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = value.includes(option.value);\n }\n }\n this.changeListen(true);\n }\n updateSelect(id, style, classes) {\n this.changeListen(false);\n if (id) {\n this.select.dataset.id = id;\n }\n if (style) {\n this.select.style.cssText = style;\n }\n if (classes) {\n this.select.className = '';\n classes.forEach((c) => {\n if (c.trim() !== '') {\n this.select.classList.add(c.trim());\n }\n });\n }\n this.changeListen(true);\n }\n updateOptions(data) {\n this.changeListen(false);\n this.select.innerHTML = '';\n for (const d of data) {\n if (d instanceof Optgroup) {\n this.select.appendChild(this.createOptgroup(d));\n }\n if (d instanceof Option) {\n this.select.appendChild(this.createOption(d));\n }\n }\n this.select.dispatchEvent(new Event('change'));\n this.changeListen(true);\n }\n createOptgroup(optgroup) {\n const optgroupEl = document.createElement('optgroup');\n optgroupEl.id = optgroup.id;\n optgroupEl.label = optgroup.label;\n if (optgroup.selectAll) {\n optgroupEl.dataset.selectAll = 'true';\n }\n if (optgroup.closable !== 'off') {\n optgroupEl.dataset.closable = optgroup.closable;\n }\n if (optgroup.options) {\n for (const o of optgroup.options) {\n optgroupEl.appendChild(this.createOption(o));\n }\n }\n return optgroupEl;\n }\n createOption(info) {\n const optionEl = document.createElement('option');\n optionEl.id = info.id;\n optionEl.value = info.value;\n optionEl.innerHTML = info.text;\n if (info.html !== '') {\n optionEl.setAttribute('data-html', info.html);\n }\n if (info.selected) {\n optionEl.selected = info.selected;\n }\n if (info.disabled) {\n optionEl.disabled = true;\n }\n if (info.display === false) {\n optionEl.style.display = 'none';\n }\n if (info.placeholder) {\n optionEl.setAttribute('data-placeholder', 'true');\n }\n if (info.mandatory) {\n optionEl.setAttribute('data-mandatory', 'true');\n }\n if (info.class) {\n info.class.split(' ').forEach((optionClass) => {\n optionEl.classList.add(optionClass);\n });\n }\n if (info.data && typeof info.data === 'object') {\n Object.keys(info.data).forEach((key) => {\n optionEl.setAttribute('data-' + kebabCase(key), info.data[key]);\n });\n }\n return optionEl;\n }\n destroy() {\n this.changeListen(false);\n this.select.removeEventListener('change', this.valueChange);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n delete this.select.dataset.id;\n this.showUI();\n }\n }\n\n class Settings {\n constructor(settings) {\n this.id = '';\n this.style = '';\n this.class = [];\n this.isMultiple = false;\n this.isOpen = false;\n this.isFullOpen = false;\n this.intervalMove = null;\n if (!settings) {\n settings = {};\n }\n this.id = 'ss-' + generateID();\n this.style = settings.style || '';\n this.class = settings.class || [];\n this.disabled = settings.disabled !== undefined ? settings.disabled : false;\n this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false;\n this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true;\n this.ariaLabel = settings.ariaLabel || 'Combobox';\n this.searchPlaceholder = settings.searchPlaceholder || 'Search';\n this.searchText = settings.searchText || 'No Results';\n this.searchingText = settings.searchingText || 'Searching...';\n this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false;\n this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true;\n this.contentLocation = settings.contentLocation || document.body;\n this.contentPosition = settings.contentPosition || 'absolute';\n this.openPosition = settings.openPosition || 'auto';\n this.placeholderText = settings.placeholderText !== undefined ? settings.placeholderText : 'Select Value';\n this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;\n this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;\n this.keepOrder = settings.keepOrder !== undefined ? settings.keepOrder : false;\n this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;\n this.minSelected = settings.minSelected || 0;\n this.maxSelected = settings.maxSelected || 1000;\n this.timeoutDelay = settings.timeoutDelay || 200;\n this.maxValuesShown = settings.maxValuesShown || 20;\n this.maxValuesMessage = settings.maxValuesMessage || '{number} selected';\n }\n }\n\n class SlimSelect {\n constructor(config) {\n var _a;\n this.events = {\n search: undefined,\n searchFilter: (opt, search) => {\n return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;\n },\n addable: undefined,\n beforeChange: undefined,\n afterChange: undefined,\n beforeOpen: undefined,\n afterOpen: undefined,\n beforeClose: undefined,\n afterClose: undefined,\n };\n this.windowResize = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.windowScroll = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.documentClick = (e) => {\n if (!this.settings.isOpen) {\n return;\n }\n if (e.target && !hasClassInTree(e.target, this.settings.id)) {\n this.close(e.type);\n }\n };\n this.windowVisibilityChange = () => {\n if (document.hidden) {\n this.close();\n }\n };\n this.selectEl = (typeof config.select === 'string' ? document.querySelector(config.select) : config.select);\n if (!this.selectEl) {\n if (config.events && config.events.error) {\n config.events.error(new Error('Could not find select element'));\n }\n return;\n }\n if (this.selectEl.tagName !== 'SELECT') {\n if (config.events && config.events.error) {\n config.events.error(new Error('Element isnt of type select'));\n }\n return;\n }\n if (this.selectEl.dataset.ssid) {\n this.destroy();\n }\n this.settings = new Settings(config.settings);\n const debounceEvents = ['afterChange', 'beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'];\n for (const key in config.events) {\n if (!config.events.hasOwnProperty(key)) {\n continue;\n }\n if (debounceEvents.indexOf(key) !== -1) {\n this.events[key] = debounce(config.events[key], 100);\n }\n else {\n this.events[key] = config.events[key];\n }\n }\n this.settings.disabled = ((_a = config.settings) === null || _a === void 0 ? void 0 : _a.disabled) ? config.settings.disabled : this.selectEl.disabled;\n this.settings.isMultiple = this.selectEl.multiple;\n this.settings.style = this.selectEl.style.cssText;\n this.settings.class = this.selectEl.className.split(' ');\n this.select = new Select(this.selectEl);\n this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class);\n this.select.hideUI();\n this.select.onValueChange = (values) => {\n this.setSelected(values);\n };\n this.select.onClassChange = (classes) => {\n this.settings.class = classes;\n this.render.updateClassStyles();\n };\n this.select.onDisabledChange = (disabled) => {\n if (disabled) {\n this.disable();\n }\n else {\n this.enable();\n }\n };\n this.select.onOptionsChange = (data) => {\n this.setData(data);\n };\n this.store = new Store(this.settings.isMultiple ? 'multiple' : 'single', config.data ? config.data : this.select.getData());\n if (config.data) {\n this.select.updateOptions(this.store.getData());\n }\n const renderCallbacks = {\n open: this.open.bind(this),\n close: this.close.bind(this),\n addable: this.events.addable ? this.events.addable : undefined,\n setSelected: this.setSelected.bind(this),\n addOption: this.addOption.bind(this),\n search: this.search.bind(this),\n beforeChange: this.events.beforeChange,\n afterChange: this.events.afterChange,\n };\n this.render = new Render(this.settings, this.store, renderCallbacks);\n this.render.renderValues();\n this.render.renderOptions(this.store.getData());\n const selectAriaLabel = this.selectEl.getAttribute('aria-label');\n const selectAriaLabelledBy = this.selectEl.getAttribute('aria-labelledby');\n if (selectAriaLabel) {\n this.render.main.main.setAttribute('aria-label', selectAriaLabel);\n }\n else if (selectAriaLabelledBy) {\n this.render.main.main.setAttribute('aria-labelledby', selectAriaLabelledBy);\n }\n if (this.selectEl.parentNode) {\n this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);\n }\n window.addEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.addEventListener('scroll', this.windowScroll, false);\n }\n document.addEventListener('visibilitychange', this.windowVisibilityChange);\n if (this.settings.disabled) {\n this.disable();\n }\n if (this.settings.alwaysOpen) {\n this.open();\n }\n this.selectEl.slim = this;\n }\n enable() {\n this.settings.disabled = false;\n this.select.enable();\n this.render.enable();\n }\n disable() {\n this.settings.disabled = true;\n this.select.disable();\n this.render.disable();\n }\n getData() {\n return this.store.getData();\n }\n setData(data) {\n const selected = this.store.getSelected();\n const err = this.store.validateDataArray(data);\n if (err) {\n if (this.events.error) {\n this.events.error(err);\n }\n return;\n }\n this.store.setData(data);\n const dataClean = this.store.getData();\n this.select.updateOptions(dataClean);\n this.render.renderValues();\n this.render.renderOptions(dataClean);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n getSelected() {\n return this.store.getSelected();\n }\n setSelected(value, runAfterChange = true) {\n const selected = this.store.getSelected();\n this.store.setSelectedBy('value', Array.isArray(value) ? value : [value]);\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n if (this.render.content.search.input.value !== '') {\n this.search(this.render.content.search.input.value);\n }\n else {\n this.render.renderOptions(data);\n }\n if (runAfterChange && this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n addOption(option) {\n const selected = this.store.getSelected();\n if (!this.store.getDataOptions().some((o) => { var _a; return o.value === ((_a = option.value) !== null && _a !== void 0 ? _a : option.text); })) {\n this.store.addOption(option);\n }\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n this.render.renderOptions(data);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n open() {\n if (this.settings.disabled || this.settings.isOpen) {\n return;\n }\n if (this.events.beforeOpen) {\n this.events.beforeOpen();\n }\n this.render.open();\n if (this.settings.showSearch) {\n this.render.searchFocus();\n }\n this.settings.isOpen = true;\n setTimeout(() => {\n if (this.events.afterOpen) {\n this.events.afterOpen();\n }\n if (this.settings.isOpen) {\n this.settings.isFullOpen = true;\n }\n document.addEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.contentPosition === 'absolute') {\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n this.settings.intervalMove = setInterval(this.render.moveContent.bind(this.render), 500);\n }\n }\n close(eventType = null) {\n if (!this.settings.isOpen || this.settings.alwaysOpen) {\n return;\n }\n if (this.events.beforeClose) {\n this.events.beforeClose();\n }\n this.render.close();\n if (this.render.content.search.input.value !== '') {\n this.search('');\n }\n this.render.mainFocus(eventType);\n this.settings.isOpen = false;\n this.settings.isFullOpen = false;\n setTimeout(() => {\n if (this.events.afterClose) {\n this.events.afterClose();\n }\n document.removeEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n }\n search(value) {\n if (this.render.content.search.input.value !== value) {\n this.render.content.search.input.value = value;\n }\n if (!this.events.search) {\n this.render.renderOptions(value === '' ? this.store.getData() : this.store.search(value, this.events.searchFilter));\n return;\n }\n this.render.renderSearching();\n const searchResp = this.events.search(value, this.store.getSelectedOptions());\n if (searchResp instanceof Promise) {\n searchResp\n .then((data) => {\n this.render.renderOptions(this.store.partialToFullData(data));\n })\n .catch((err) => {\n this.render.renderError(typeof err === 'string' ? err : err.message);\n });\n return;\n }\n else if (Array.isArray(searchResp)) {\n this.render.renderOptions(this.store.partialToFullData(searchResp));\n }\n else {\n this.render.renderError('Search event must return a promise or an array of data');\n }\n }\n destroy() {\n document.removeEventListener('click', this.documentClick);\n window.removeEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.removeEventListener('scroll', this.windowScroll, false);\n }\n document.removeEventListener('visibilitychange', this.windowVisibilityChange);\n this.store.setData([]);\n this.render.destroy();\n this.select.destroy();\n }\n }\n\n return SlimSelect;\n\n}));\n","/*\n* Notiflix Notify AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Notiflix = factory(root);\n }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n 'use strict';\n\n // COMMON: SSR check: begin\n if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n return false;\n }\n // COMMON: SSR check: end\n\n // COMMON: Variables: begin\n var notiflixNamespace = 'Notiflix';\n var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n // COMMON: Variables: end\n\n // NOTIFY: Default Settings: begin\n var typesNotify = {\n Success: 'Success',\n Failure: 'Failure',\n Warning: 'Warning',\n Info: 'Info',\n };\n var newNotifySettings;\n var notifySettings = {\n wrapID: 'NotiflixNotifyWrap', // can not customizable\n overlayID: 'NotiflixNotifyOverlay', // can not customizable\n width: '280px',\n position: 'right-top', // 'right-top' - 'right-bottom' - 'left-top' - 'left-bottom' - 'center-top' - 'center-bottom' - 'center-center'\n distance: '10px',\n opacity: 1,\n borderRadius: '5px',\n rtl: false,\n timeout: 3000,\n messageMaxLength: 110,\n backOverlay: false,\n backOverlayColor: 'rgba(0,0,0,0.5)',\n plainText: true,\n showOnlyTheLastOne: false,\n clickToClose: false,\n pauseOnHover: true,\n\n ID: 'NotiflixNotify',\n className: 'notiflix-notify',\n zindex: 4001,\n fontFamily: 'Quicksand',\n fontSize: '13px',\n cssAnimation: true,\n cssAnimationDuration: 400,\n cssAnimationStyle: 'fade', // 'fade' - 'zoom' - 'from-right' - 'from-top' - 'from-bottom' - 'from-left'\n closeButton: false,\n useIcon: true,\n useFontAwesome: false,\n fontAwesomeIconStyle: 'basic', // 'basic' - 'shadow'\n fontAwesomeIconSize: '34px',\n\n success: {\n background: '#32c682',\n textColor: '#fff',\n childClassName: 'notiflix-notify-success',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-check-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(50,198,130,0.2)',\n },\n\n failure: {\n background: '#ff5549',\n textColor: '#fff',\n childClassName: 'notiflix-notify-failure',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-times-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(255,85,73,0.2)',\n },\n\n warning: {\n background: '#eebf31',\n textColor: '#fff',\n childClassName: 'notiflix-notify-warning',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-exclamation-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(238,191,49,0.2)',\n },\n\n info: {\n background: '#26c0d3',\n textColor: '#fff',\n childClassName: 'notiflix-notify-info',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-info-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(38,192,211,0.2)',\n },\n };\n // NOTIFY: Default Settings: end\n\n // COMMON: Console Error: begin\n var commonConsoleError = function (message) {\n return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n };\n // COMMON: Console Error: end\n\n // COMMON: Check Head or Body: begin\n var commonCheckHeadOrBody = function (element) {\n if (!element) { element = 'head'; }\n if (window.document[element] === null) {\n commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n return false;\n }\n return true;\n };\n // COMMON: Check Head or Body: end\n\n // COMMON: Set Internal CSS Codes: begin\n var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n // check doc head\n if (!commonCheckHeadOrBody('head')) { return false; }\n\n // internal css\n if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n var internalCSS = window.document.createElement('style');\n internalCSS.id = styleElementId;\n internalCSS.innerHTML = getInternalCSSCodes();\n window.document.head.appendChild(internalCSS);\n }\n };\n // COMMON: Set Internal CSS Codes: end\n\n // COMMON: Extend Options: begin\n var commonExtendOptions = function () {\n // variables\n var extended = {};\n var deep = false;\n var i = 0;\n // check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n // merge the object into the extended object\n var merge = function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // if property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n // loop through each object and conduct a merge\n for (; i < arguments.length; i++) {\n merge(arguments[i]);\n }\n return extended;\n };\n // COMMON: Extend Options: end\n\n // COMMON: Get Plaintext: begin\n var commonGetPlaintext = function (html) {\n var htmlPool = window.document.createElement('div');\n htmlPool.innerHTML = html;\n return htmlPool.textContent || htmlPool.innerText || '';\n };\n // COMMON: Get Plaintext: end\n\n // NOTIFY: Get Internal CSS Codes: begin\n var notifyGetInternalCSSCodes = function () {\n var notifyCSS = '[id^=NotiflixNotifyWrap]{pointer-events:none;position:fixed;z-index:4001;opacity:1;right:10px;top:10px;width:280px;max-width:96%;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent}[id^=NotiflixNotifyWrap].nx-flex-center-center{max-height:calc(100vh - 20px);overflow-x:hidden;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:auto}[id^=NotiflixNotifyWrap]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixNotifyWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyOverlay]{-webkit-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;transition:background .3s ease-in-out}[id^=NotiflixNotifyWrap]>div{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}';\n return notifyCSS || null;\n };\n // NOTIFY: Get Internal CSS Codes: end\n\n // NOTIFY: Create: begin\n var notifyCreateCounter = 0;\n var notifyCreate = function (notifyType, message, callbackOrOptions, options) {\n // check doc body\n if (!commonCheckHeadOrBody('body')) { return false; }\n\n // if not initialized pretend like init\n if (!newNotifySettings) {\n Notiflix.Notify.init({});\n }\n\n // create a backup for new settings\n var newNotifySettingsBackup = commonExtendOptions(true, newNotifySettings, {});\n\n // check callbackOrOptions and options: begin\n if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n // new options\n var newOptions = {};\n if (typeof callbackOrOptions === 'object') {\n newOptions = callbackOrOptions;\n } else if (typeof options === 'object') {\n newOptions = options;\n }\n\n // extend new settings with the new options\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newOptions);\n }\n // check callbackOrOptions and options: end\n\n // notify type\n var theType = newNotifySettings[notifyType.toLocaleLowerCase('en')];\n\n // notify counter\n notifyCreateCounter++;\n\n // check the message: begin\n if (typeof message !== 'string') {\n message = 'Notiflix ' + notifyType;\n }\n // check the message: end\n\n // if plainText is true => HTML tags not allowed: begin\n if (newNotifySettings.plainText) {\n message = commonGetPlaintext(message); // message plain text\n }\n // if plainText is true => HTML tags not allowed: end\n\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: begin\n if (!newNotifySettings.plainText && message.length > newNotifySettings.messageMaxLength) {\n // extend settings for error massege\n newNotifySettings = commonExtendOptions(true, newNotifySettings, { closeButton: true, messageMaxLength: 150 });\n // error message\n message = 'Possible HTML Tags Error: The \"plainText\" option is \"false\" and the notification content length is more than the \"messageMaxLength\" option.';\n }\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: end\n\n // check message max length: begin\n if (message.length > newNotifySettings.messageMaxLength) {\n message = message.substring(0, newNotifySettings.messageMaxLength) + '...';\n }\n // check message max length: end\n\n // font awesome icon style: begin\n if (newNotifySettings.fontAwesomeIconStyle === 'shadow') {\n theType.fontAwesomeIconColor = theType.background;\n }\n // font awesome icon style: end\n\n // if cssAnimaion is false => duration: begin\n if (!newNotifySettings.cssAnimation) {\n newNotifySettings.cssAnimationDuration = 0;\n }\n // if cssAnimaion is false => duration: end\n\n // notify wrap: begin\n var ntflxNotifyWrap = window.document.getElementById(notifySettings.wrapID) || window.document.createElement('div');\n ntflxNotifyWrap.id = notifySettings.wrapID;\n ntflxNotifyWrap.style.width = newNotifySettings.width;\n ntflxNotifyWrap.style.zIndex = newNotifySettings.zindex;\n ntflxNotifyWrap.style.opacity = newNotifySettings.opacity;\n\n // wrap position: begin\n if (newNotifySettings.position === 'center-center') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.margin = 'auto';\n ntflxNotifyWrap.classList.add('nx-flex-center-center');\n ntflxNotifyWrap.style.maxHeight = 'calc((100vh - ' + newNotifySettings.distance + ') - ' + newNotifySettings.distance + ')';\n ntflxNotifyWrap.style.display = 'flex';\n ntflxNotifyWrap.style.flexWrap = 'wrap';\n ntflxNotifyWrap.style.flexDirection = 'column';\n ntflxNotifyWrap.style.justifyContent = 'center';\n ntflxNotifyWrap.style.alignItems = 'center';\n ntflxNotifyWrap.style.pointerEvents = 'none';\n } else if (newNotifySettings.position === 'center-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'center-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'right-bottom') {\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.left = 'auto';\n } else if (newNotifySettings.position === 'left-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n } else if (newNotifySettings.position === 'left-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.right = 'auto';\n } else { // 'right-top' or else\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.left = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n }\n // wrap position: end\n\n // if background overlay is true: begin\n if (newNotifySettings.backOverlay) {\n var ntflxNotifyOverlay = window.document.getElementById(notifySettings.overlayID) || window.document.createElement('div');\n ntflxNotifyOverlay.id = notifySettings.overlayID;\n ntflxNotifyOverlay.style.width = '100%';\n ntflxNotifyOverlay.style.height = '100%';\n ntflxNotifyOverlay.style.position = 'fixed';\n ntflxNotifyOverlay.style.zIndex = newNotifySettings.zindex - 1;\n ntflxNotifyOverlay.style.left = 0;\n ntflxNotifyOverlay.style.top = 0;\n ntflxNotifyOverlay.style.right = 0;\n ntflxNotifyOverlay.style.bottom = 0;\n ntflxNotifyOverlay.style.background = theType.backOverlayColor || newNotifySettings.backOverlayColor;\n ntflxNotifyOverlay.className = newNotifySettings.cssAnimation ? 'nx-with-animation' : '';\n ntflxNotifyOverlay.style.animationDuration = newNotifySettings.cssAnimation ? newNotifySettings.cssAnimationDuration + 'ms' : '';\n\n if (!window.document.getElementById(notifySettings.overlayID)) {\n window.document.body.appendChild(ntflxNotifyOverlay);\n }\n }\n // if background overlay is true: end\n\n if (!window.document.getElementById(notifySettings.wrapID)) {\n window.document.body.appendChild(ntflxNotifyWrap);\n }\n // notify wrap: end\n\n // notify content: begin\n var ntflxNotify = window.document.createElement('div');\n ntflxNotify.id = newNotifySettings.ID + '-' + notifyCreateCounter;\n ntflxNotify.className = newNotifySettings.className + ' ' + theType.childClassName + ' ' + (newNotifySettings.cssAnimation ? 'nx-with-animation' : '') + ' ' + (newNotifySettings.useIcon ? 'nx-with-icon' : '') + ' nx-' + newNotifySettings.cssAnimationStyle + ' ' + (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function' ? 'nx-with-close-button' : '') + ' ' + (typeof callbackOrOptions === 'function' ? 'nx-with-callback' : '') + ' ' + (newNotifySettings.clickToClose ? 'nx-notify-click-to-close' : '');\n ntflxNotify.style.fontSize = newNotifySettings.fontSize;\n ntflxNotify.style.color = theType.textColor;\n ntflxNotify.style.background = theType.background;\n ntflxNotify.style.borderRadius = newNotifySettings.borderRadius;\n ntflxNotify.style.pointerEvents = 'all';\n\n // rtl: begin\n if (newNotifySettings.rtl) {\n ntflxNotify.setAttribute('dir', 'rtl');\n ntflxNotify.classList.add('nx-rtl-on');\n }\n // rtl: end\n\n // font-family: begin\n ntflxNotify.style.fontFamily = '\"' + newNotifySettings.fontFamily + '\", ' + defaultFontFamily;\n // font-family: end\n\n // use css animation: begin\n if (newNotifySettings.cssAnimation) {\n ntflxNotify.style.animationDuration = newNotifySettings.cssAnimationDuration + 'ms';\n }\n // use css animation: end\n\n // close button element: begin\n var closeButtonHTML = '';\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n closeButtonHTML = '';\n }\n // close buttpon element: end\n\n // use icon: begin\n if (newNotifySettings.useIcon) {\n // use font awesome\n if (newNotifySettings.useFontAwesome) {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use notiflix icon\n else {\n var svgIcon = '';\n if (notifyType === typesNotify.Success) { // success\n svgIcon = '';\n } else if (notifyType === typesNotify.Failure) { // failure\n svgIcon = '';\n } else if (notifyType === typesNotify.Warning) { // warning\n svgIcon = '';\n } else if (notifyType === typesNotify.Info) { // info\n svgIcon = '';\n }\n ntflxNotify.innerHTML = svgIcon + '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n }\n // without icon\n else {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use icon: end\n // notify content: end\n\n // notify append or prepend: begin\n if (newNotifySettings.position === 'left-bottom' || newNotifySettings.position === 'right-bottom') { // the new one will be first\n var notifyWrap = window.document.getElementById(notifySettings.wrapID);\n notifyWrap.insertBefore(ntflxNotify, notifyWrap.firstChild);\n } else {\n window.document.getElementById(notifySettings.wrapID).appendChild(ntflxNotify);\n }\n // notify append or prepend: end\n\n // remove by timeout or click: begin\n var eachNotifyElement = window.document.getElementById(ntflxNotify.id);\n if (eachNotifyElement) {\n // timeout variables\n var timeoutHide;\n var timeoutRemove;\n\n // hide notify elm and hide overlay: begin\n var hideNotifyElementsAndOverlay = function () {\n eachNotifyElement.classList.add('nx-remove');\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && ntflxNotifyWrap.childElementCount <= 0) {\n removeOverlay.classList.add('nx-remove');\n }\n clearTimeout(timeoutHide);\n };\n // hide notify elm and hide overlay: end\n\n // remove notify elm and wrapper: begin\n var removeNotifyElmentsAndWrapper = function () {\n if (eachNotifyElement && eachNotifyElement.parentNode !== null) {\n eachNotifyElement.parentNode.removeChild(eachNotifyElement);\n }\n if (ntflxNotifyWrap.childElementCount <= 0 && ntflxNotifyWrap.parentNode !== null) { // if childs count === 0 remove wrap\n ntflxNotifyWrap.parentNode.removeChild(ntflxNotifyWrap);\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && removeOverlay.parentNode !== null) {\n removeOverlay.parentNode.removeChild(removeOverlay);\n }\n }\n clearTimeout(timeoutRemove);\n };\n // remove notify elm and wrapper: end\n\n // if has close button and callbackOrOptions is not a function: begin\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n var closeButtonElm = window.document.getElementById(ntflxNotify.id).querySelector('span.nx-close-button');\n closeButtonElm.addEventListener('click', function () {\n hideNotifyElementsAndOverlay();\n var clickToCloseTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(clickToCloseTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if has close button and callbackOrOptions is not a function: end\n\n // if callbackOrOptions or click to close: begin\n if (typeof callbackOrOptions === 'function' || newNotifySettings.clickToClose) {\n eachNotifyElement.addEventListener('click', function () {\n if (typeof callbackOrOptions === 'function') {\n callbackOrOptions();\n }\n hideNotifyElementsAndOverlay();\n var callbackTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(callbackTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if callbackOrOptions or click to close: end\n\n // else auto remove: begin\n if (!newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n // auto remove: begin\n var autoRemove = function () {\n timeoutHide = setTimeout(function () {\n hideNotifyElementsAndOverlay();\n }, newNotifySettings.timeout);\n timeoutRemove = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n }, newNotifySettings.timeout + newNotifySettings.cssAnimationDuration);\n };\n autoRemove();\n // auto remove: end\n\n // pause auto remove: begin\n if (newNotifySettings.pauseOnHover) {\n eachNotifyElement.addEventListener('mouseenter', function () {\n eachNotifyElement.classList.add('nx-paused');\n clearTimeout(timeoutHide);\n clearTimeout(timeoutRemove);\n });\n eachNotifyElement.addEventListener('mouseleave', function () {\n eachNotifyElement.classList.remove('nx-paused');\n autoRemove();\n });\n }\n // pause auto remove: end\n }\n // else auto remove: end\n }\n // remove by timeout or click: end\n\n // notify - show only the last one: begin\n if (newNotifySettings.showOnlyTheLastOne && notifyCreateCounter > 0) {\n var allNotifyElmNotTheLastOne = window.document.querySelectorAll('[id^=' + newNotifySettings.ID + '-]:not([id=' + newNotifySettings.ID + '-' + notifyCreateCounter + '])');\n for (var i = 0; i < allNotifyElmNotTheLastOne.length; i++) {\n var eachNotifyElmNotLastOne = allNotifyElmNotTheLastOne[i];\n if (eachNotifyElmNotLastOne.parentNode !== null) {\n eachNotifyElmNotLastOne.parentNode.removeChild(eachNotifyElmNotLastOne);\n }\n }\n }\n // notify - show only the last one: end\n\n // extend new settings with the backup settings\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newNotifySettingsBackup);\n\n };\n // NOTIFY: Create: end\n\n var Notiflix = {\n Notify: {\n // Init\n init: function (userNotifyOptions) {\n // extend options\n newNotifySettings = commonExtendOptions(true, notifySettings, userNotifyOptions);\n // internal css if exist\n commonSetInternalCSSCodes(notifyGetInternalCSSCodes, 'NotiflixNotifyInternalCSS');\n },\n // Merge First Init\n merge: function (userNotifyExtendOptions) {\n // if initialized already\n if (newNotifySettings) {\n newNotifySettings = commonExtendOptions(true, newNotifySettings, userNotifyExtendOptions);\n }\n // initialize first\n else {\n commonConsoleError('You have to initialize the Notify module before call Merge function.');\n return false;\n }\n },\n // Success\n success: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Success, message, callbackOrOptions, options);\n },\n // Failure\n failure: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Failure, message, callbackOrOptions, options);\n },\n // Warning\n warning: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Warning, message, callbackOrOptions, options);\n },\n // Info\n info: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Info, message, callbackOrOptions, options);\n },\n },\n };\n\n if (typeof window.Notiflix === 'object') {\n return commonExtendOptions(true, window.Notiflix, { Notify: Notiflix.Notify });\n } else {\n return { Notify: Notiflix.Notify };\n }\n\n});","import { fetchBreeds, fetchCatByBreed } from './cat-api';\nimport { createMarkup } from './createMarkup';\nimport SlimSelect from 'slim-select'\nimport { Notify } from 'notiflix/build/notiflix-notify-aio';\nimport 'slim-select/dist/slimselect.css';\n\n\nconst breedSelect = document.querySelector('.breed-select');\nconst catInfo = document.querySelector('.cat-info');\nconst loader = document.querySelector('.loader');\nconst error = document.querySelector('.error');\n\nlet storedBreeds = [];\n\nfetchBreeds()\n .then(data => {\n data.forEach(breed => {\n storedBreeds.push({ text: breed.name, value: breed.id });\n });\n new SlimSelect({\n select: breedSelect,\n data: storedBreeds\n });\n })\n .catch(err => console.log(err));\n\n//console.log(storedBreeds)\n \nbreedSelect.addEventListener('change', onSelectBreed);\n\nfunction onSelectBreed(event) {\n const breedId = event.currentTarget.value;\n console.log(breedId);\n fetchCatByBreed(breedId)\n .then(data => {\n catInfo.innerHTML = createMarkup(data[0]);\n })\n .catch(err => console.log(err));\n};\n\n\n \n\n\n","function createMarkup(catData) {\n const { url, breeds } = catData;\n return `\n
\n
\n \n
${breeds[0].name}
\n
${breeds[0].description}
\n
Temperament: ${breeds[0].temperament}
\n
Link to Wikipedia page\n
`;\n};\n\nexport { createMarkup };"],"names":["$ae0c329fb0fb36dc$var$BASE_URL","$ae0c329fb0fb36dc$var$API_KEY","$ae0c329fb0fb36dc$export$57b7d3a597416aa2","breedId","URL","concat","fetch","then","resp","ok","Error","status","json","Object","defineProperty","$665014edacbfe17b$exports","value","default","instance","Constructor","TypeError","$74e7f8130373505f$var$_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","$74e7f8130373505f$exports","protoProps","staticProps","prototype","$72df7f47b4163a4e$exports","generateID","Math","random","toString","substring","hasClassInTree","element","className","hasClass","e","c","classList","contains","dataset","id","parentByClass","document","parentNode","debounce","func","timeout","wait","arguments","immediate","_len","args","Array","_key","context","self","later","apply","callNow","clearTimeout","setTimeout","isEqual","a","b","JSON","stringify","kebabCase","str","result","replace","match","toLowerCase","toUpperCase","Optgroup1","Optgroup","optgroup","this","label","selectAll","undefined","selectAllText","closable","options","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","o","push","Option1","err","return","Option","option","text","html","selected","display","disabled","mandatory","placeholder","class","style","data","Store1","Store","type","selectType","setData","isArray","dataObj","validateOption","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_step1","_iterator1","dataFinal","forEach","optOptions","partialToFullData","setSelectedBy","getSelected","filter","getData","selectedType","selectedValues","firstOption","hasSelected","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","includes","selectedOptions","getSelectedOptions","opt","selectedIDs","op","search","searchFilter","trim","includeOptgroup","dataSearch","Render1","Render","settings","store","callbacks","classes","main","values","single","max","valueText","valueDelete","valueOut","deselect","deselectPath","arrow","arrowClose","arrowOpen","content","openAbove","openBelow","searchHighlighter","searching","addable","addablePath","list","optgroupLabel","optgroupLabelText","optgroupActions","optgroupSelectAll","optgroupSelectAllBox","optgroupSelectAllCheck","optgroupClosable","optionDelete","highlighted","open","close","error","hide","mainDiv","contentDiv","updateClassStyles","updateAriaAttributes","contentLocation","appendChild","remove","input","add","path","setAttribute","openPosition","moveContent","selectedId","selectedOption","querySelector","ensureElementInView","removeAttribute","cssText","contentPosition","role","_a","createElement","ariaLabel","tabIndex","onkeydown","_this","highlight","click","onclick","isOpen","allowDeselect","isMultiple","stopPropagation","shouldDelete","before","after","beforeChange","setSelected","updateDeselectAll","getFirstOption","closeOnSelect","afterChange","deselectSvg","createElementNS","arrowPath","alwaysOpen","svg","eventType","focus","preventScroll","placeholderOption","placeholderText","placeholder1","innerHTML","renderMultipleValues","renderSingleValue","selectedSingle","singleValue","innerText","outerHTML","node","currentNodes","getAttribute","removeNodes","childNodes","maxValuesShown","textContent","maxValuesMessage","i2","_loop","_step3","n","_this1","hasChildNodes","removeChild","_loop1","d","shouldAdd","i1","String","keepOrder","multipleValue","insertBefore","insertAdjacentElement","deleteDiv","preventDefault","minSelected","o1","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","deleteSvg","deletePath","searchDiv","listDiv","putContent","moveContentAbove","moveContentBelow","searchReturn","showSearch","readOnly","searchPlaceholder","oninput","_this3","ctrlKey","plus","plusPath","_this2","inputValue","runFinish","oo","newOption","addOption","_this4","addableValue","Promise","notPlaceholder","notDisabled","notHidden","query","from","querySelectorAll","dir","getOptions","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","o2","prevOption","prevParent","parentElement","selectOption","selectParent","optgroupLabel1","errorDiv","searchingDiv","searchingText","noResults","searchText","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step71","_step7","optgroupEl","allSelected","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step5","_iterator5","err1","selectAllSvg","selectAllBox","selectAllCheck","addEventListener","currentSelected","_this6","newSelected","s","newSelected1","map","_iteratorNormalCompletion10","_didIteratorError10","_iteratorError10","_step10","_iterator10","o4","getOptionByID","optgroupClosableSvg","optgroupClosableArrow","some","_this5","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step6","_iterator6","o3","_iterator7","optionEl","split","dataClass","searchHighlight","highlightText","showOptionTooltips","hideSelected","currentTarget","elementID","maxSelected","shouldUpdate","completedString","regex","RegExp","matchStartPosition","index","matchEndPosition","originalTextFoundByRegex","mainHeight","offsetHeight","contentHeight","containerRect","getBoundingClientRect","margin","top","height","window","scrollY","left","scrollX","width","container","cTop","scrollTop","offsetTop","cBottom","clientHeight","eTop","eBottom","mainRect","innerHeight","hasSelectedItems","deselectButton","hideClass","Select1","Select","select","listen","observer","valueChange","bind","passive","MutationObserver","observeCall","changeListen","observe","subtree","childList","attributes","disconnect","ev","onValueChange","getSelectedValues","mutations","classChanged","disabledChanged","optgroupOptionChanged","m","attributeName","nodeName","onClassChange","onDisabledChange","onOptionsChange","nodes","getDataFromOptgroup","getDataFromOption","selectall","selectalltext","optgroupOptions","_iteratorNormalCompletion11","_didIteratorError11","_iteratorError11","_step11","_iterator11","option2","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_step12","_iterator12","option3","createOptgroup","createOption","dispatchEvent","Event","info","optionClass","keys","removeEventListener","showUI","Settings1","Settings","isFullOpen","intervalMove","body","timeoutDelay","SlimSelect1","SlimSelect","config","events","indexOf","beforeOpen","afterOpen","beforeClose","afterClose","windowResize","render","windowScroll","documentClick","windowVisibilityChange","hidden","selectEl","tagName","ssid","destroy","debounceEvents","hasOwnProperty","multiple","updateSelect","hideUI","disable","enable","updateOptions","renderCallbacks","renderValues","renderOptions","selectAriaLabel","selectAriaLabelledBy","nextSibling","slim","validateDataArray","dataClean","runAfterChange","getDataOptions","searchFocus","clearInterval","setInterval","mainFocus","renderSearching","searchResp","catch","renderError","message","factory","root","$parcel$global","$c72c4ee5f4be9835$exports","newNotifySettings","typesNotify","notifySettings","wrapID","overlayID","position","distance","opacity","borderRadius","rtl","messageMaxLength","backOverlay","backOverlayColor","plainText","showOnlyTheLastOne","clickToClose","pauseOnHover","ID","zindex","fontFamily","fontSize","cssAnimation","cssAnimationDuration","cssAnimationStyle","closeButton","useIcon","useFontAwesome","fontAwesomeIconStyle","fontAwesomeIconSize","success","background","textColor","childClassName","notiflixIconColor","fontAwesomeClassName","fontAwesomeIconColor","failure","warning","commonConsoleError","console","commonCheckHeadOrBody","commonExtendOptions","extended","deep","call","merge","obj","prop","notifyGetInternalCSSCodes","notifyCreateCounter","notifyCreate","notifyType","callbackOrOptions","Notiflix","Notify","init","newNotifySettingsBackup","newOptions","htmlPool","theType","toLocaleLowerCase","ntflxNotifyWrap","getElementById","zIndex","right","bottom","maxHeight","flexWrap","flexDirection","justifyContent","alignItems","pointerEvents","ntflxNotifyOverlay","animationDuration","ntflxNotify","color","closeButtonHTML","svgIcon","notifyWrap","firstChild","eachNotifyElement","timeoutHide","timeoutRemove","hideNotifyElementsAndOverlay","removeOverlay","childElementCount","removeNotifyElmentsAndWrapper","clickToCloseTimeout","callbackTimeout","autoRemove","allNotifyElmNotTheLastOne","eachNotifyElmNotLastOne","userNotifyOptions","getInternalCSSCodes","styleElementId","internalCSS","head","commonSetInternalCSSCodes","userNotifyExtendOptions","define","amd","$b8f9b7833fa37166$var$breedSelect","$b8f9b7833fa37166$var$catInfo","$b8f9b7833fa37166$var$storedBreeds","statusText","breed","name","$parcel$interopDefault","log","event","catData","url","breeds","description","temperament","wikipedia_url"],"version":3,"file":"index.5280651f.js.map"}
\ No newline at end of file
diff --git a/index.c53cc19b.js b/index.c53cc19b.js
deleted file mode 100644
index a1c5926..0000000
--- a/index.c53cc19b.js
+++ /dev/null
@@ -1,2 +0,0 @@
-function t(t){return t&&t.__esModule?t.default:t}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function s(t){return fetch(`https://api.thecatapi.com/v1/images/search?api_key=live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm&breed_ids=${t}`).then((t=>{if(!t.ok)throw new Error(t.status);return t.json()}))}var i={};i=function(){function t(){return Math.random().toString(36).substring(2,10)}function e(t,e){function s(t,s){return s&&t&&t.classList&&t.classList.contains(s)||s&&t&&t.dataset&&t.dataset.id&&t.dataset.id===e?t:null}function i(t,e){return t&&t!==document?s(t,e)?t:i(t.parentNode,e):null}return s(t,e)||i(t,e)}function s(t,e=50,s=!1){let i;return function(...n){const o=self,a=()=>{i=null,s||t.apply(o,n)},l=s&&!i;clearTimeout(i),i=setTimeout(a,e),l&&t.apply(o,n)}}function i(t,e){return JSON.stringify(t)===JSON.stringify(e)}function n(t){const e=t.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(t=>"-"+t.toLowerCase()));return t[0]===t[0].toUpperCase()?e.substring(1):e}class o{constructor(e){if(this.id=e.id&&""!==e.id?e.id:t(),this.label=e.label||"",this.selectAll=void 0!==e.selectAll&&e.selectAll,this.selectAllText=e.selectAllText||"Select All",this.closable=e.closable||"off",this.options=[],e.options)for(const t of e.options)this.options.push(new a(t))}}class a{constructor(e){this.id=e.id&&""!==e.id?e.id:t(),this.value=void 0===e.value?e.text:e.value,this.text=e.text||"",this.html=e.html||"",this.selected=void 0!==e.selected&&e.selected,this.display=void 0===e.display||e.display,this.disabled=void 0!==e.disabled&&e.disabled,this.mandatory=void 0!==e.mandatory&&e.mandatory,this.placeholder=void 0!==e.placeholder&&e.placeholder,this.class=e.class||"",this.style=e.style||"",this.data=e.data||{}}}class l{constructor(t,e){this.selectType="single",this.data=[],this.selectType=t,this.setData(e)}validateDataArray(t){if(!Array.isArray(t))return new Error("Data must be an array");for(let e of t){if(!(e instanceof o||"label"in e))return e instanceof a||"text"in e?this.validateOption(e):new Error("Data object must be a valid optgroup or option");if(!("label"in e))return new Error("Optgroup must have a label");if("options"in e&&e.options)for(let t of e.options)return this.validateOption(t)}return null}validateOption(t){return"text"in t?null:new Error("Option must have a text")}partialToFullData(t){let e=[];return t.forEach((t=>{if(t instanceof o||"label"in t){let s=[];"options"in t&&t.options&&t.options.forEach((t=>{s.push(new a(t))})),s.length>0&&e.push(new o(t))}(t instanceof a||"text"in t)&&e.push(new a(t))})),e}setData(t){this.data=this.partialToFullData(t),"single"===this.selectType&&this.setSelectedBy("value",this.getSelected())}getData(){return this.filter(null,!0)}getDataOptions(){return this.filter(null,!1)}addOption(t){this.setData(this.getData().concat(new a(t)))}setSelectedBy(t,e){let s=null,i=!1;for(let n of this.data){if(n instanceof o)for(let o of n.options)s||(s=o),o.selected=!i&&e.includes(o[t]),o.selected&&"single"===this.selectType&&(i=!0);n instanceof a&&(s||(s=n),n.selected=!i&&e.includes(n[t]),n.selected&&"single"===this.selectType&&(i=!0))}"single"===this.selectType&&s&&!i&&(s.selected=!0)}getSelected(){let t=this.getSelectedOptions(),e=[];return t.forEach((t=>{e.push(t.value)})),e}getSelectedOptions(){return this.filter((t=>t.selected),!1)}getSelectedIDs(){let t=this.getSelectedOptions(),e=[];return t.forEach((t=>{e.push(t.id)})),e}getOptgroupByID(t){for(let e of this.data)if(e instanceof o&&e.id===t)return e;return null}getOptionByID(t){let e=this.filter((e=>e.id===t),!1);return e.length?e[0]:null}getSelectType(){return this.selectType}getFirstOption(){let t=null;for(let e of this.data)if(e instanceof o?t=e.options[0]:e instanceof a&&(t=e),t)break;return t}search(t,e){return""===(t=t.trim())?this.getData():this.filter((s=>e(s,t)),!0)}filter(t,e){const s=[];return this.data.forEach((i=>{if(i instanceof o){let n=[];if(i.options.forEach((i=>{t&&!t(i)||(e?n.push(new a(i)):s.push(new a(i)))})),n.length>0){let t=new o(i);t.options=n,s.push(t)}}i instanceof a&&(t&&!t(i)||s.push(new a(i)))})),s}}class r{constructor(t,e,s){this.classes={main:"ss-main",placeholder:"ss-placeholder",values:"ss-values",single:"ss-single",max:"ss-max",value:"ss-value",valueText:"ss-value-text",valueDelete:"ss-value-delete",valueOut:"ss-value-out",deselect:"ss-deselect",deselectPath:"M10,10 L90,90 M10,90 L90,10",arrow:"ss-arrow",arrowClose:"M10,30 L50,70 L90,30",arrowOpen:"M10,70 L50,30 L90,70",content:"ss-content",openAbove:"ss-open-above",openBelow:"ss-open-below",search:"ss-search",searchHighlighter:"ss-search-highlight",searching:"ss-searching",addable:"ss-addable",addablePath:"M50,10 L50,90 M10,50 L90,50",list:"ss-list",optgroup:"ss-optgroup",optgroupLabel:"ss-optgroup-label",optgroupLabelText:"ss-optgroup-label-text",optgroupActions:"ss-optgroup-actions",optgroupSelectAll:"ss-selectall",optgroupSelectAllBox:"M60,10 L10,10 L10,90 L90,90 L90,50",optgroupSelectAllCheck:"M30,45 L50,70 L90,10",optgroupClosable:"ss-closable",option:"ss-option",optionDelete:"M10,10 L90,90 M10,90 L90,10",highlighted:"ss-highlighted",open:"ss-open",close:"ss-close",selected:"ss-selected",error:"ss-error",disabled:"ss-disabled",hide:"ss-hide"},this.store=e,this.settings=t,this.callbacks=s,this.main=this.mainDiv(),this.content=this.contentDiv(),this.updateClassStyles(),this.updateAriaAttributes(),this.settings.contentLocation.appendChild(this.content.main)}enable(){this.main.main.classList.remove(this.classes.disabled),this.content.search.input.disabled=!1}disable(){this.main.main.classList.add(this.classes.disabled),this.content.search.input.disabled=!0}open(){this.main.arrow.path.setAttribute("d",this.classes.arrowOpen),this.main.main.classList.add("up"===this.settings.openPosition?this.classes.openAbove:this.classes.openBelow),this.main.main.setAttribute("aria-expanded","true"),this.moveContent();const t=this.store.getSelectedOptions();if(t.length){const e=t[t.length-1].id,s=this.content.list.querySelector('[data-id="'+e+'"]');s&&this.ensureElementInView(this.content.list,s)}}close(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.remove(this.classes.openBelow),this.main.main.setAttribute("aria-expanded","false"),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.main.arrow.path.setAttribute("d",this.classes.arrowClose)}updateClassStyles(){if(this.main.main.className="",this.main.main.removeAttribute("style"),this.content.main.className="",this.content.main.removeAttribute("style"),this.main.main.classList.add(this.classes.main),this.content.main.classList.add(this.classes.content),""!==this.settings.style&&(this.main.main.style.cssText=this.settings.style,this.content.main.style.cssText=this.settings.style),this.settings.class.length)for(const t of this.settings.class)""!==t.trim()&&(this.main.main.classList.add(t.trim()),this.content.main.classList.add(t.trim()));"relative"===this.settings.contentPosition&&this.content.main.classList.add("ss-"+this.settings.contentPosition)}updateAriaAttributes(){this.main.main.role="combobox",this.main.main.setAttribute("aria-haspopup","listbox"),this.main.main.setAttribute("aria-controls",this.content.main.id),this.main.main.setAttribute("aria-expanded","false"),this.content.main.setAttribute("role","listbox")}mainDiv(){var t;const e=document.createElement("div");e.dataset.id=this.settings.id,e.setAttribute("aria-label",this.settings.ariaLabel),e.tabIndex=0,e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return this.callbacks.open(),"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Enter":case" ":this.callbacks.open();const e=this.content.list.querySelector("."+this.classes.highlighted);return e&&e.click(),!1;case"Escape":return this.callbacks.close(),!1}return!1},e.onclick=t=>{this.settings.disabled||(this.settings.isOpen?this.callbacks.close():this.callbacks.open())};const s=document.createElement("div");s.classList.add(this.classes.values),e.appendChild(s);const i=document.createElement("div");i.classList.add(this.classes.deselect);const n=null===(t=this.store)||void 0===t?void 0:t.getSelectedOptions();!this.settings.allowDeselect||this.settings.isMultiple&&n&&n.length<=0?i.classList.add(this.classes.hide):i.classList.remove(this.classes.hide),i.onclick=t=>{if(t.stopPropagation(),this.settings.disabled)return;let e=!0;const s=this.store.getSelectedOptions(),i=[];if(this.callbacks.beforeChange&&(e=!0===this.callbacks.beforeChange(i,s)),e){if(this.settings.isMultiple)this.callbacks.setSelected([],!1),this.updateDeselectAll();else{const t=this.store.getFirstOption(),e=t?t.value:"";this.callbacks.setSelected(e,!1)}this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(this.store.getSelectedOptions())}};const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100");const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.deselectPath),o.appendChild(a),i.appendChild(o),e.appendChild(i);const l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.classList.add(this.classes.arrow),l.setAttribute("viewBox","0 0 100 100");const r=document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d",this.classes.arrowClose),this.settings.alwaysOpen&&l.classList.add(this.classes.hide),l.appendChild(r),e.appendChild(l),{main:e,values:s,deselect:{main:i,svg:o,path:a},arrow:{main:l,path:r}}}mainFocus(t){"click"!==t&&this.main.main.focus({preventScroll:!0})}placeholder(){const t=this.store.filter((t=>t.placeholder),!1);let e=this.settings.placeholderText;t.length&&(""!==t[0].html?e=t[0].html:""!==t[0].text&&(e=t[0].text));const s=document.createElement("div");return s.classList.add(this.classes.placeholder),s.innerHTML=e,s}renderValues(){this.settings.isMultiple?(this.renderMultipleValues(),this.updateDeselectAll()):this.renderSingleValue()}renderSingleValue(){const t=this.store.filter((t=>t.selected&&!t.placeholder),!1),e=t.length>0?t[0]:null;if(e){const t=document.createElement("div");t.classList.add(this.classes.single),e.html?t.innerHTML=e.html:t.innerText=e.text,this.main.values.innerHTML=t.outerHTML}else this.main.values.innerHTML=this.placeholder().outerHTML;this.settings.allowDeselect&&t.length?this.main.deselect.main.classList.remove(this.classes.hide):this.main.deselect.main.classList.add(this.classes.hide)}renderMultipleValues(){let t=this.main.values.childNodes,e=this.store.filter((t=>t.selected&&t.display),!1);if(0===e.length)return void(this.main.values.innerHTML=this.placeholder().outerHTML);{const t=this.main.values.querySelector("."+this.classes.placeholder);t&&t.remove()}if(e.length>this.settings.maxValuesShown){const t=document.createElement("div");return t.classList.add(this.classes.max),t.textContent=this.settings.maxValuesMessage.replace("{number}",e.length.toString()),void(this.main.values.innerHTML=t.outerHTML)}{const t=this.main.values.querySelector("."+this.classes.max);t&&t.remove()}let s=[];for(let i=0;it.id===o),!1).length||s.push(n))}for(const t of s)t.classList.add(this.classes.valueOut),setTimeout((()=>{this.main.values.hasChildNodes()&&this.main.values.contains(t)&&this.main.values.removeChild(t)}),100);t=this.main.values.childNodes;for(let s=0;s{if(e.preventDefault(),e.stopPropagation(),this.settings.disabled)return;let s=!0;const i=this.store.getSelectedOptions(),n=i.filter((e=>e.selected&&e.id!==t.id),!0);if(!(this.settings.minSelected&&n.length{this.callbacks.search(t.target.value)}),100),e.onkeydown=t=>{switch(t.key){case"ArrowUp":case"ArrowDown":return"ArrowDown"===t.key?this.highlight("down"):this.highlight("up"),!1;case"Tab":return this.callbacks.close(),!0;case"Escape":return this.callbacks.close(),!1;case"Enter":case" ":if(this.callbacks.addable&&t.ctrlKey)return i.click(),!1;{const t=this.content.list.querySelector("."+this.classes.highlighted);if(t)return t.click(),!1}return!0}return!0},t.appendChild(e),this.callbacks.addable){i.classList.add(this.classes.addable);const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","0 0 100 100");const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("d",this.classes.addablePath),e.appendChild(s),i.appendChild(e),i.onclick=t=>{if(t.preventDefault(),t.stopPropagation(),!this.callbacks.addable)return;const e=this.content.search.input.value.trim();if(""===e)return void this.content.search.input.focus();const s=t=>{let e=new a(t);if(this.callbacks.addOption(e),this.settings.isMultiple){let t=this.store.getSelected();t.push(e.value),this.callbacks.setSelected(t,!0)}else this.callbacks.setSelected([e.value],!0);this.callbacks.search(""),this.settings.closeOnSelect&&setTimeout((()=>{this.callbacks.close()}),100)},i=this.callbacks.addable(e);!1!==i&&null!=i&&(i instanceof Promise?i.then((t=>{s("string"==typeof t?{text:t,value:t}:t)})):s("string"==typeof i?{text:i,value:i}:i))},t.appendChild(i),n.addable={main:i,svg:e,path:s}}return n}searchFocus(){this.content.search.input.focus()}getOptions(t=!1,e=!1,s=!1){let i="."+this.classes.option;return t&&(i+=":not(."+this.classes.placeholder+")"),e&&(i+=":not(."+this.classes.disabled+")"),s&&(i+=":not(."+this.classes.hide+")"),Array.from(this.content.list.querySelectorAll(i))}highlight(t){const e=this.getOptions(!0,!0,!0);if(0===e.length)return;if(1===e.length&&!e[0].classList.contains(this.classes.highlighted))return void e[0].classList.add(this.classes.highlighted);let s=!1;for(const t of e)t.classList.contains(this.classes.highlighted)&&(s=!0);if(!s)for(const t of e)if(t.classList.contains(this.classes.selected)){t.classList.add(this.classes.highlighted);break}for(let s=0;s=0?s-1:e.length-1];o.classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,o);const a=o.parentElement;if(a&&a.classList.contains(this.classes.close)){const t=a.querySelector("."+this.classes.optgroupLabel);t&&t.click()}return}e["down"===t?0:e.length-1].classList.add(this.classes.highlighted),this.ensureElementInView(this.content.list,e["down"===t?0:e.length-1])}listDiv(){const t=document.createElement("div");return t.classList.add(this.classes.list),t}renderError(t){this.content.list.innerHTML="";const e=document.createElement("div");e.classList.add(this.classes.error),e.textContent=t,this.content.list.appendChild(e)}renderSearching(){this.content.list.innerHTML="";const t=document.createElement("div");t.classList.add(this.classes.searching),t.textContent=this.settings.searchingText,this.content.list.appendChild(t)}renderOptions(t){if(this.content.list.innerHTML="",0===t.length){const t=document.createElement("div");return t.classList.add(this.classes.search),t.innerHTML=this.settings.searchText,void this.content.list.appendChild(t)}for(const e of t){if(e instanceof o){const t=document.createElement("div");t.classList.add(this.classes.optgroup);const s=document.createElement("div");s.classList.add(this.classes.optgroupLabel),t.appendChild(s);const i=document.createElement("div");i.classList.add(this.classes.optgroupLabelText),i.textContent=e.label,s.appendChild(i);const n=document.createElement("div");if(n.classList.add(this.classes.optgroupActions),s.appendChild(n),this.settings.isMultiple&&e.selectAll){const t=document.createElement("div");t.classList.add(this.classes.optgroupSelectAll);let s=!0;for(const t of e.options)if(!t.selected){s=!1;break}s&&t.classList.add(this.classes.selected);const i=document.createElement("span");i.textContent=e.selectAllText,t.appendChild(i);const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),t.appendChild(o);const a=document.createElementNS("http://www.w3.org/2000/svg","path");a.setAttribute("d",this.classes.optgroupSelectAllBox),o.appendChild(a);const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("d",this.classes.optgroupSelectAllCheck),o.appendChild(l),t.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation();const i=this.store.getSelected();if(s){const t=i.filter((t=>{for(const s of e.options)if(t===s.value)return!1;return!0}));this.callbacks.setSelected(t,!0)}else{const t=i.concat(e.options.map((t=>t.value)));for(const t of e.options)this.store.getOptionByID(t.id)||this.callbacks.addOption(t);this.callbacks.setSelected(t,!0)}})),n.appendChild(t)}if("off"!==e.closable){const i=document.createElement("div");i.classList.add(this.classes.optgroupClosable);const o=document.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("viewBox","0 0 100 100"),o.classList.add(this.classes.arrow),i.appendChild(o);const a=document.createElementNS("http://www.w3.org/2000/svg","path");o.appendChild(a),e.options.some((t=>t.selected))||""!==this.content.search.input.value.trim()?(i.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):"open"===e.closable?(t.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):"close"===e.closable&&(t.classList.add(this.classes.close),a.setAttribute("d",this.classes.arrowClose)),s.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation(),t.classList.contains(this.classes.close)?(t.classList.remove(this.classes.close),t.classList.add(this.classes.open),a.setAttribute("d",this.classes.arrowOpen)):(t.classList.remove(this.classes.open),t.classList.add(this.classes.close),a.setAttribute("d",this.classes.arrowClose))})),n.appendChild(i)}t.appendChild(s);for(const s of e.options)t.appendChild(this.option(s));this.content.list.appendChild(t)}e instanceof a&&this.content.list.appendChild(this.option(e))}}option(t){if(t.placeholder){const t=document.createElement("div");return t.classList.add(this.classes.option),t.classList.add(this.classes.hide),t}const e=document.createElement("div");return e.dataset.id=t.id,e.id=t.id,e.classList.add(this.classes.option),e.setAttribute("role","option"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.style&&(e.style.cssText=t.style),this.settings.searchHighlight&&""!==this.content.search.input.value.trim()?e.innerHTML=this.highlightText(""!==t.html?t.html:t.text,this.content.search.input.value,this.classes.searchHighlighter):""!==t.html?e.innerHTML=t.html:e.textContent=t.text,this.settings.showOptionTooltips&&e.textContent&&e.setAttribute("title",e.textContent),t.display||e.classList.add(this.classes.hide),t.disabled&&e.classList.add(this.classes.disabled),t.selected&&this.settings.hideSelected&&e.classList.add(this.classes.hide),t.selected?(e.classList.add(this.classes.selected),e.setAttribute("aria-selected","true"),this.main.main.setAttribute("aria-activedescendant",e.id)):(e.classList.remove(this.classes.selected),e.setAttribute("aria-selected","false")),e.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation();const s=this.store.getSelected(),i=e.currentTarget,n=String(i.dataset.id);if(t.disabled||t.selected&&!this.settings.allowDeselect)return;if(this.settings.isMultiple&&this.settings.maxSelected<=s.length&&!t.selected||this.settings.isMultiple&&this.settings.minSelected>=s.length&&t.selected)return;let o=!1;const a=this.store.getSelectedOptions();let l=[];this.settings.isMultiple&&(l=t.selected?a.filter((t=>t.id!==n)):a.concat(t)),this.settings.isMultiple||(l=t.selected?[]:[t]),this.callbacks.beforeChange||(o=!0),this.callbacks.beforeChange&&(o=!1!==this.callbacks.beforeChange(l,a)),o&&(this.store.getOptionByID(n)||this.callbacks.addOption(t),this.callbacks.setSelected(l.map((t=>t.value)),!1),this.settings.closeOnSelect&&this.callbacks.close(),this.callbacks.afterChange&&this.callbacks.afterChange(l))})),e}destroy(){this.main.main.remove(),this.content.main.remove()}highlightText(t,e,s){let i=t;const n=new RegExp("("+e.trim()+")(?![^<]*>[^<>]*)","i");if(!t.match(n))return t;const o=t.match(n).index,a=o+t.match(n)[0].toString().length,l=t.substring(o,a);return i=i.replace(n,`${l}`),i}moveContentAbove(){const t=this.main.main.offsetHeight,e=this.content.main.offsetHeight;this.main.main.classList.remove(this.classes.openBelow),this.main.main.classList.add(this.classes.openAbove),this.content.main.classList.remove(this.classes.openBelow),this.content.main.classList.add(this.classes.openAbove);const s=this.main.main.getBoundingClientRect();this.content.main.style.margin="-"+(t+e-1)+"px 0px 0px 0px",this.content.main.style.top=s.top+s.height+window.scrollY+"px",this.content.main.style.left=s.left+window.scrollX+"px",this.content.main.style.width=s.width+"px"}moveContentBelow(){this.main.main.classList.remove(this.classes.openAbove),this.main.main.classList.add(this.classes.openBelow),this.content.main.classList.remove(this.classes.openAbove),this.content.main.classList.add(this.classes.openBelow);const t=this.main.main.getBoundingClientRect();this.content.main.style.margin="-1px 0px 0px 0px","relative"!==this.settings.contentPosition&&(this.content.main.style.top=t.top+t.height+window.scrollY+"px",this.content.main.style.left=t.left+window.scrollX+"px",this.content.main.style.width=t.width+"px")}ensureElementInView(t,e){const s=t.scrollTop+t.offsetTop,i=s+t.clientHeight,n=e.offsetTop,o=n+e.clientHeight;ni&&(t.scrollTop+=o-i)}putContent(){const t=this.main.main.offsetHeight,e=this.main.main.getBoundingClientRect(),s=this.content.main.offsetHeight;return window.innerHeight-(e.top+t)<=s&&e.top>s?"up":"down"}updateDeselectAll(){if(!this.store||!this.settings)return;const t=this.store.getSelectedOptions(),e=t&&t.length>0,s=this.settings.isMultiple,i=this.settings.allowDeselect,n=this.main.deselect.main,o=this.classes.hide;!i||s&&!e?n.classList.add(o):n.classList.remove(o)}}class c{constructor(t){this.listen=!1,this.observer=null,this.select=t,this.valueChange=this.valueChange.bind(this),this.select.addEventListener("change",this.valueChange,{passive:!0}),this.observer=new MutationObserver(this.observeCall.bind(this)),this.changeListen(!0)}enable(){this.select.disabled=!1}disable(){this.select.disabled=!0}hideUI(){this.select.tabIndex=-1,this.select.style.display="none",this.select.setAttribute("aria-hidden","true")}showUI(){this.select.removeAttribute("tabindex"),this.select.style.display="",this.select.removeAttribute("aria-hidden")}changeListen(t){this.listen=t,t&&this.observer&&this.observer.observe(this.select,{subtree:!0,childList:!0,attributes:!0}),t||this.observer&&this.observer.disconnect()}valueChange(t){return this.listen&&this.onValueChange&&this.onValueChange(this.getSelectedValues()),!0}observeCall(t){if(!this.listen)return;let e=!1,s=!1,i=!1;for(const n of t)n.target===this.select&&("disabled"===n.attributeName&&(s=!0),"class"===n.attributeName&&(e=!0)),"OPTGROUP"!==n.target.nodeName&&"OPTION"!==n.target.nodeName||(i=!0);e&&this.onClassChange&&this.onClassChange(this.select.className.split(" ")),s&&this.onDisabledChange&&(this.changeListen(!1),this.onDisabledChange(this.select.disabled),this.changeListen(!0)),i&&this.onOptionsChange&&(this.changeListen(!1),this.onOptionsChange(this.getData()),this.changeListen(!0))}getData(){let t=[];const e=this.select.childNodes;for(const s of e)"OPTGROUP"===s.nodeName&&t.push(this.getDataFromOptgroup(s)),"OPTION"===s.nodeName&&t.push(this.getDataFromOption(s));return t}getDataFromOptgroup(t){let e={id:t.id,label:t.label,selectAll:!!t.dataset&&"true"===t.dataset.selectall,selectAllText:t.dataset?t.dataset.selectalltext:"Select all",closable:t.dataset?t.dataset.closable:"off",options:[]};const s=t.childNodes;for(const t of s)"OPTION"===t.nodeName&&e.options.push(this.getDataFromOption(t));return e}getDataFromOption(t){return{id:t.id,value:t.value,text:t.text,html:t.dataset&&t.dataset.html?t.dataset.html:"",selected:t.selected,display:"none"!==t.style.display,disabled:t.disabled,mandatory:!!t.dataset&&"true"===t.dataset.mandatory,placeholder:"true"===t.dataset.placeholder,class:t.className,style:t.style.cssText,data:t.dataset}}getSelectedValues(){let t=[];const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(e.value)}}if("OPTION"===s.nodeName){const e=s;e.selected&&t.push(e.value)}}return t}setSelected(t){this.changeListen(!1);const e=this.select.childNodes;for(const s of e){if("OPTGROUP"===s.nodeName){const e=s.childNodes;for(const s of e)if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}if("OPTION"===s.nodeName){const e=s;e.selected=t.includes(e.value)}}this.changeListen(!0)}updateSelect(t,e,s){this.changeListen(!1),t&&(this.select.dataset.id=t),e&&(this.select.style.cssText=e),s&&(this.select.className="",s.forEach((t=>{""!==t.trim()&&this.select.classList.add(t.trim())}))),this.changeListen(!0)}updateOptions(t){this.changeListen(!1),this.select.innerHTML="";for(const e of t)e instanceof o&&this.select.appendChild(this.createOptgroup(e)),e instanceof a&&this.select.appendChild(this.createOption(e));this.select.dispatchEvent(new Event("change")),this.changeListen(!0)}createOptgroup(t){const e=document.createElement("optgroup");if(e.id=t.id,e.label=t.label,t.selectAll&&(e.dataset.selectAll="true"),"off"!==t.closable&&(e.dataset.closable=t.closable),t.options)for(const s of t.options)e.appendChild(this.createOption(s));return e}createOption(t){const e=document.createElement("option");return e.id=t.id,e.value=t.value,e.innerHTML=t.text,""!==t.html&&e.setAttribute("data-html",t.html),t.selected&&(e.selected=t.selected),t.disabled&&(e.disabled=!0),!1===t.display&&(e.style.display="none"),t.placeholder&&e.setAttribute("data-placeholder","true"),t.mandatory&&e.setAttribute("data-mandatory","true"),t.class&&t.class.split(" ").forEach((t=>{e.classList.add(t)})),t.data&&"object"==typeof t.data&&Object.keys(t.data).forEach((s=>{e.setAttribute("data-"+n(s),t.data[s])})),e}destroy(){this.changeListen(!1),this.select.removeEventListener("change",this.valueChange),this.observer&&(this.observer.disconnect(),this.observer=null),delete this.select.dataset.id,this.showUI()}}class h{constructor(e){this.id="",this.style="",this.class=[],this.isMultiple=!1,this.isOpen=!1,this.isFullOpen=!1,this.intervalMove=null,e||(e={}),this.id="ss-"+t(),this.style=e.style||"",this.class=e.class||[],this.disabled=void 0!==e.disabled&&e.disabled,this.alwaysOpen=void 0!==e.alwaysOpen&&e.alwaysOpen,this.showSearch=void 0===e.showSearch||e.showSearch,this.ariaLabel=e.ariaLabel||"Combobox",this.searchPlaceholder=e.searchPlaceholder||"Search",this.searchText=e.searchText||"No Results",this.searchingText=e.searchingText||"Searching...",this.searchHighlight=void 0!==e.searchHighlight&&e.searchHighlight,this.closeOnSelect=void 0===e.closeOnSelect||e.closeOnSelect,this.contentLocation=e.contentLocation||document.body,this.contentPosition=e.contentPosition||"absolute",this.openPosition=e.openPosition||"auto",this.placeholderText=void 0!==e.placeholderText?e.placeholderText:"Select Value",this.allowDeselect=void 0!==e.allowDeselect&&e.allowDeselect,this.hideSelected=void 0!==e.hideSelected&&e.hideSelected,this.keepOrder=void 0!==e.keepOrder&&e.keepOrder,this.showOptionTooltips=void 0!==e.showOptionTooltips&&e.showOptionTooltips,this.minSelected=e.minSelected||0,this.maxSelected=e.maxSelected||1e3,this.timeoutDelay=e.timeoutDelay||200,this.maxValuesShown=e.maxValuesShown||20,this.maxValuesMessage=e.maxValuesMessage||"{number} selected"}}class d{constructor(t){var i;if(this.events={search:void 0,searchFilter:(t,e)=>-1!==t.text.toLowerCase().indexOf(e.toLowerCase()),addable:void 0,beforeChange:void 0,afterChange:void 0,beforeOpen:void 0,afterOpen:void 0,beforeClose:void 0,afterClose:void 0},this.windowResize=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.windowScroll=s((()=>{(this.settings.isOpen||this.settings.isFullOpen)&&this.render.moveContent()})),this.documentClick=t=>{this.settings.isOpen&&t.target&&!e(t.target,this.settings.id)&&this.close(t.type)},this.windowVisibilityChange=()=>{document.hidden&&this.close()},this.selectEl="string"==typeof t.select?document.querySelector(t.select):t.select,!this.selectEl)return void(t.events&&t.events.error&&t.events.error(new Error("Could not find select element")));if("SELECT"!==this.selectEl.tagName)return void(t.events&&t.events.error&&t.events.error(new Error("Element isnt of type select")));this.selectEl.dataset.ssid&&this.destroy(),this.settings=new h(t.settings);const n=["afterChange","beforeOpen","afterOpen","beforeClose","afterClose"];for(const e in t.events)t.events.hasOwnProperty(e)&&(-1!==n.indexOf(e)?this.events[e]=s(t.events[e],100):this.events[e]=t.events[e]);this.settings.disabled=(null===(i=t.settings)||void 0===i?void 0:i.disabled)?t.settings.disabled:this.selectEl.disabled,this.settings.isMultiple=this.selectEl.multiple,this.settings.style=this.selectEl.style.cssText,this.settings.class=this.selectEl.className.split(" "),this.select=new c(this.selectEl),this.select.updateSelect(this.settings.id,this.settings.style,this.settings.class),this.select.hideUI(),this.select.onValueChange=t=>{this.setSelected(t)},this.select.onClassChange=t=>{this.settings.class=t,this.render.updateClassStyles()},this.select.onDisabledChange=t=>{t?this.disable():this.enable()},this.select.onOptionsChange=t=>{this.setData(t)},this.store=new l(this.settings.isMultiple?"multiple":"single",t.data?t.data:this.select.getData()),t.data&&this.select.updateOptions(this.store.getData());const o={open:this.open.bind(this),close:this.close.bind(this),addable:this.events.addable?this.events.addable:void 0,setSelected:this.setSelected.bind(this),addOption:this.addOption.bind(this),search:this.search.bind(this),beforeChange:this.events.beforeChange,afterChange:this.events.afterChange};this.render=new r(this.settings,this.store,o),this.render.renderValues(),this.render.renderOptions(this.store.getData());const a=this.selectEl.getAttribute("aria-label"),d=this.selectEl.getAttribute("aria-labelledby");a?this.render.main.main.setAttribute("aria-label",a):d&&this.render.main.main.setAttribute("aria-labelledby",d),this.selectEl.parentNode&&this.selectEl.parentNode.insertBefore(this.render.main.main,this.selectEl.nextSibling),window.addEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.addEventListener("scroll",this.windowScroll,!1),document.addEventListener("visibilitychange",this.windowVisibilityChange),this.settings.disabled&&this.disable(),this.settings.alwaysOpen&&this.open(),this.selectEl.slim=this}enable(){this.settings.disabled=!1,this.select.enable(),this.render.enable()}disable(){this.settings.disabled=!0,this.select.disable(),this.render.disable()}getData(){return this.store.getData()}setData(t){const e=this.store.getSelected(),s=this.store.validateDataArray(t);if(s)return void(this.events.error&&this.events.error(s));this.store.setData(t);const n=this.store.getData();this.select.updateOptions(n),this.render.renderValues(),this.render.renderOptions(n),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}getSelected(){return this.store.getSelected()}setSelected(t,e=!0){const s=this.store.getSelected();this.store.setSelectedBy("value",Array.isArray(t)?t:[t]);const n=this.store.getData();this.select.updateOptions(n),this.render.renderValues(),""!==this.render.content.search.input.value?this.search(this.render.content.search.input.value):this.render.renderOptions(n),e&&this.events.afterChange&&!i(s,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}addOption(t){const e=this.store.getSelected();this.store.getDataOptions().some((e=>{var s;return e.value===(null!==(s=t.value)&&void 0!==s?s:t.text)}))||this.store.addOption(t);const s=this.store.getData();this.select.updateOptions(s),this.render.renderValues(),this.render.renderOptions(s),this.events.afterChange&&!i(e,this.store.getSelected())&&this.events.afterChange(this.store.getSelectedOptions())}open(){this.settings.disabled||this.settings.isOpen||(this.events.beforeOpen&&this.events.beforeOpen(),this.render.open(),this.settings.showSearch&&this.render.searchFocus(),this.settings.isOpen=!0,setTimeout((()=>{this.events.afterOpen&&this.events.afterOpen(),this.settings.isOpen&&(this.settings.isFullOpen=!0),document.addEventListener("click",this.documentClick)}),this.settings.timeoutDelay),"absolute"===this.settings.contentPosition&&(this.settings.intervalMove&&clearInterval(this.settings.intervalMove),this.settings.intervalMove=setInterval(this.render.moveContent.bind(this.render),500)))}close(t=null){this.settings.isOpen&&!this.settings.alwaysOpen&&(this.events.beforeClose&&this.events.beforeClose(),this.render.close(),""!==this.render.content.search.input.value&&this.search(""),this.render.mainFocus(t),this.settings.isOpen=!1,this.settings.isFullOpen=!1,setTimeout((()=>{this.events.afterClose&&this.events.afterClose(),document.removeEventListener("click",this.documentClick)}),this.settings.timeoutDelay),this.settings.intervalMove&&clearInterval(this.settings.intervalMove))}search(t){if(this.render.content.search.input.value!==t&&(this.render.content.search.input.value=t),!this.events.search)return void this.render.renderOptions(""===t?this.store.getData():this.store.search(t,this.events.searchFilter));this.render.renderSearching();const e=this.events.search(t,this.store.getSelectedOptions());e instanceof Promise?e.then((t=>{this.render.renderOptions(this.store.partialToFullData(t))})).catch((t=>{this.render.renderError("string"==typeof t?t:t.message)})):Array.isArray(e)?this.render.renderOptions(this.store.partialToFullData(e)):this.render.renderError("Search event must return a promise or an array of data")}destroy(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.windowResize,!1),"auto"===this.settings.openPosition&&window.removeEventListener("scroll",this.windowScroll,!1),document.removeEventListener("visibilitychange",this.windowVisibilityChange),this.store.setData([]),this.render.destroy(),this.select.destroy()}}return d}();var n,o,a={};n=void 0!==e?e:"undefined"!=typeof window?window:a,o=function(t){if(void 0===t&&void 0===t.document)return!1;var e,s="Success",i="Failure",n="Warning",o="Info",a={wrapID:"NotiflixNotifyWrap",overlayID:"NotiflixNotifyOverlay",width:"280px",position:"right-top",distance:"10px",opacity:1,borderRadius:"5px",rtl:!1,timeout:3e3,messageMaxLength:110,backOverlay:!1,backOverlayColor:"rgba(0,0,0,0.5)",plainText:!0,showOnlyTheLastOne:!1,clickToClose:!1,pauseOnHover:!0,ID:"NotiflixNotify",className:"notiflix-notify",zindex:4001,fontFamily:"Quicksand",fontSize:"13px",cssAnimation:!0,cssAnimationDuration:400,cssAnimationStyle:"fade",closeButton:!1,useIcon:!0,useFontAwesome:!1,fontAwesomeIconStyle:"basic",fontAwesomeIconSize:"34px",success:{background:"#32c682",textColor:"#fff",childClassName:"notiflix-notify-success",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-check-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(50,198,130,0.2)"},failure:{background:"#ff5549",textColor:"#fff",childClassName:"notiflix-notify-failure",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-times-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(255,85,73,0.2)"},warning:{background:"#eebf31",textColor:"#fff",childClassName:"notiflix-notify-warning",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-exclamation-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(238,191,49,0.2)"},info:{background:"#26c0d3",textColor:"#fff",childClassName:"notiflix-notify-info",notiflixIconColor:"rgba(0,0,0,0.2)",fontAwesomeClassName:"fas fa-info-circle",fontAwesomeIconColor:"rgba(0,0,0,0.2)",backOverlayColor:"rgba(38,192,211,0.2)"}},l=function(t){return console.error("%c Notiflix Error ","padding:2px;border-radius:20px;color:#fff;background:#ff5549","\n"+t+"\n\nVisit documentation page to learn more: https://notiflix.github.io/documentation")},r=function(e){return e||(e="head"),null!==t.document[e]||(l('\nNotiflix needs to be appended to the "<'+e+'>" element, but you called it before the "<'+e+'>" element has been created.'),!1)},c=function(){var t={},e=!1,s=0;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],s++);for(var i=function(s){for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(e&&"[object Object]"===Object.prototype.toString.call(s[i])?t[i]=c(t[i],s[i]):t[i]=s[i])};sdiv{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:"Quicksand",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}'},d=0,p=function(l,h,p,u){if(!r("body"))return!1;e||m.Notify.init({});var f=c(!0,e,{});if("object"==typeof p&&!Array.isArray(p)||"object"==typeof u&&!Array.isArray(u)){var g={};"object"==typeof p?g=p:"object"==typeof u&&(g=u),e=c(!0,e,g)}var b,v,y=e[l.toLocaleLowerCase("en")];d++,"string"!=typeof h&&(h="Notiflix "+l),e.plainText&&(b=h,(v=t.document.createElement("div")).innerHTML=b,h=v.textContent||v.innerText||""),!e.plainText&&h.length>e.messageMaxLength&&(e=c(!0,e,{closeButton:!0,messageMaxLength:150}),h='Possible HTML Tags Error: The "plainText" option is "false" and the notification content length is more than the "messageMaxLength" option.'),h.length>e.messageMaxLength&&(h=h.substring(0,e.messageMaxLength)+"..."),"shadow"===e.fontAwesomeIconStyle&&(y.fontAwesomeIconColor=y.background),e.cssAnimation||(e.cssAnimationDuration=0);var x=t.document.getElementById(a.wrapID)||t.document.createElement("div");if(x.id=a.wrapID,x.style.width=e.width,x.style.zIndex=e.zindex,x.style.opacity=e.opacity,"center-center"===e.position?(x.style.left=e.distance,x.style.top=e.distance,x.style.right=e.distance,x.style.bottom=e.distance,x.style.margin="auto",x.classList.add("nx-flex-center-center"),x.style.maxHeight="calc((100vh - "+e.distance+") - "+e.distance+")",x.style.display="flex",x.style.flexWrap="wrap",x.style.flexDirection="column",x.style.justifyContent="center",x.style.alignItems="center",x.style.pointerEvents="none"):"center-top"===e.position?(x.style.left=e.distance,x.style.right=e.distance,x.style.top=e.distance,x.style.bottom="auto",x.style.margin="auto"):"center-bottom"===e.position?(x.style.left=e.distance,x.style.right=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.margin="auto"):"right-bottom"===e.position?(x.style.right=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.left="auto"):"left-top"===e.position?(x.style.left=e.distance,x.style.top=e.distance,x.style.right="auto",x.style.bottom="auto"):"left-bottom"===e.position?(x.style.left=e.distance,x.style.bottom=e.distance,x.style.top="auto",x.style.right="auto"):(x.style.right=e.distance,x.style.top=e.distance,x.style.left="auto",x.style.bottom="auto"),e.backOverlay){var w=t.document.getElementById(a.overlayID)||t.document.createElement("div");w.id=a.overlayID,w.style.width="100%",w.style.height="100%",w.style.position="fixed",w.style.zIndex=e.zindex-1,w.style.left=0,w.style.top=0,w.style.right=0,w.style.bottom=0,w.style.background=y.backOverlayColor||e.backOverlayColor,w.className=e.cssAnimation?"nx-with-animation":"",w.style.animationDuration=e.cssAnimation?e.cssAnimationDuration+"ms":"",t.document.getElementById(a.overlayID)||t.document.body.appendChild(w)}t.document.getElementById(a.wrapID)||t.document.body.appendChild(x);var k=t.document.createElement("div");k.id=e.ID+"-"+d,k.className=e.className+" "+y.childClassName+" "+(e.cssAnimation?"nx-with-animation":"")+" "+(e.useIcon?"nx-with-icon":"")+" nx-"+e.cssAnimationStyle+" "+(e.closeButton&&"function"!=typeof p?"nx-with-close-button":"")+" "+("function"==typeof p?"nx-with-callback":"")+" "+(e.clickToClose?"nx-notify-click-to-close":""),k.style.fontSize=e.fontSize,k.style.color=y.textColor,k.style.background=y.background,k.style.borderRadius=e.borderRadius,k.style.pointerEvents="all",e.rtl&&(k.setAttribute("dir","rtl"),k.classList.add("nx-rtl-on")),k.style.fontFamily='"'+e.fontFamily+'", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif',e.cssAnimation&&(k.style.animationDuration=e.cssAnimationDuration+"ms");var C="";if(e.closeButton&&"function"!=typeof p&&(C=''),e.useIcon)if(e.useFontAwesome)k.innerHTML=''+h+""+(e.closeButton?C:"");else{var L="";l===s?L='':l===i?L='':l===n?L='':l===o&&(L=''),k.innerHTML=L+''+h+""+(e.closeButton?C:"")}else k.innerHTML=''+h+""+(e.closeButton?C:"");if("left-bottom"===e.position||"right-bottom"===e.position){var N=t.document.getElementById(a.wrapID);N.insertBefore(k,N.firstChild)}else t.document.getElementById(a.wrapID).appendChild(k);var O=t.document.getElementById(k.id);if(O){var S,A,E=function(){O.classList.add("nx-remove");var e=t.document.getElementById(a.overlayID);e&&x.childElementCount<=0&&e.classList.add("nx-remove"),clearTimeout(S)},T=function(){if(O&&null!==O.parentNode&&O.parentNode.removeChild(O),x.childElementCount<=0&&null!==x.parentNode){x.parentNode.removeChild(x);var e=t.document.getElementById(a.overlayID);e&&null!==e.parentNode&&e.parentNode.removeChild(e)}clearTimeout(A)};if(e.closeButton&&"function"!=typeof p&&t.document.getElementById(k.id).querySelector("span.nx-close-button").addEventListener("click",(function(){E();var t=setTimeout((function(){T(),clearTimeout(t)}),e.cssAnimationDuration)})),("function"==typeof p||e.clickToClose)&&O.addEventListener("click",(function(){"function"==typeof p&&p(),E();var t=setTimeout((function(){T(),clearTimeout(t)}),e.cssAnimationDuration)})),!e.closeButton&&"function"!=typeof p){var D=function(){S=setTimeout((function(){E()}),e.timeout),A=setTimeout((function(){T()}),e.timeout+e.cssAnimationDuration)};D(),e.pauseOnHover&&(O.addEventListener("mouseenter",(function(){O.classList.add("nx-paused"),clearTimeout(S),clearTimeout(A)})),O.addEventListener("mouseleave",(function(){O.classList.remove("nx-paused"),D()})))}}if(e.showOnlyTheLastOne&&d>0)for(var I=t.document.querySelectorAll("[id^="+e.ID+"-]:not([id="+e.ID+"-"+d+"])"),M=0;M{if(!t.ok)throw new Error(t.statusText);return t.json()})).then((e=>{e.forEach((t=>{c.push({text:t.name,value:t.id})})),new(t(i))({select:l,data:c})})).catch((t=>console.log(t))),l.addEventListener("change",(function(t){s(t.currentTarget.value).then((t=>{const{url:e,breeds:s,wikipedia_url:i}=t[0];r.innerHTML=`\n
\n
\n `})).catch((t=>console.log(t)))}));
-//# sourceMappingURL=index.c53cc19b.js.map
diff --git a/index.c53cc19b.js.map b/index.c53cc19b.js.map
deleted file mode 100644
index 73ad967..0000000
--- a/index.c53cc19b.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"mappings":"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","sources":["src/cat-api.js","node_modules/slim-select/dist/slimselect.umd.js","node_modules/notiflix/build/notiflix-notify-aio.js","src/index.js"],"sourcesContent":["const BASE_URL = 'https://api.thecatapi.com/v1';\nconst API_KEY = 'live_ZXvXnN3nLIiVAMYsFosudfyRXWXuiSEi6HJhbZIzZhQtawavdsyjEdVTjhSqCXMm';\n\nfunction fetchBreeds() {\n const URL = `${BASE_URL}/breeds?api_key=${API_KEY}`\n return fetch(URL).then(resp => {\n if (!resp.ok) {\n throw new Error(resp.statusText)\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\nfunction fetchCatByBreed(breedId) {\n const URL = `${BASE_URL}/images/search?api_key=${API_KEY}&breed_ids=${breedId}`\n return fetch(URL)\n .then(resp => {\n if (!resp.ok) {\n throw new Error(resp.status);\n }\n //console.log(resp)\n return resp.json();\n }); \n};\n\n\nexport { fetchBreeds, fetchCatByBreed };","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SlimSelect = factory());\n})(this, (function () { 'use strict';\n\n function generateID() {\n return Math.random().toString(36).substring(2, 10);\n }\n function hasClassInTree(element, className) {\n function hasClass(e, c) {\n if (c && e && e.classList && e.classList.contains(c)) {\n return e;\n }\n if (c && e && e.dataset && e.dataset.id && e.dataset.id === className) {\n return e;\n }\n return null;\n }\n function parentByClass(e, c) {\n if (!e || e === document) {\n return null;\n }\n else if (hasClass(e, c)) {\n return e;\n }\n else {\n return parentByClass(e.parentNode, c);\n }\n }\n return hasClass(element, className) || parentByClass(element, className);\n }\n function debounce(func, wait = 50, immediate = false) {\n let timeout;\n return function (...args) {\n const context = self;\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n function isEqual(a, b) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n function kebabCase(str) {\n const result = str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match) => '-' + match.toLowerCase());\n return str[0] === str[0].toUpperCase() ? result.substring(1) : result;\n }\n\n class Optgroup {\n constructor(optgroup) {\n this.id = !optgroup.id || optgroup.id === '' ? generateID() : optgroup.id;\n this.label = optgroup.label || '';\n this.selectAll = optgroup.selectAll === undefined ? false : optgroup.selectAll;\n this.selectAllText = optgroup.selectAllText || 'Select All';\n this.closable = optgroup.closable || 'off';\n this.options = [];\n if (optgroup.options) {\n for (const o of optgroup.options) {\n this.options.push(new Option(o));\n }\n }\n }\n }\n class Option {\n constructor(option) {\n this.id = !option.id || option.id === '' ? generateID() : option.id;\n this.value = option.value === undefined ? option.text : option.value;\n this.text = option.text || '';\n this.html = option.html || '';\n this.selected = option.selected !== undefined ? option.selected : false;\n this.display = option.display !== undefined ? option.display : true;\n this.disabled = option.disabled !== undefined ? option.disabled : false;\n this.mandatory = option.mandatory !== undefined ? option.mandatory : false;\n this.placeholder = option.placeholder !== undefined ? option.placeholder : false;\n this.class = option.class || '';\n this.style = option.style || '';\n this.data = option.data || {};\n }\n }\n class Store {\n constructor(type, data) {\n this.selectType = 'single';\n this.data = [];\n this.selectType = type;\n this.setData(data);\n }\n validateDataArray(data) {\n if (!Array.isArray(data)) {\n return new Error('Data must be an array');\n }\n for (let dataObj of data) {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n if (!('label' in dataObj)) {\n return new Error('Optgroup must have a label');\n }\n if ('options' in dataObj && dataObj.options) {\n for (let option of dataObj.options) {\n return this.validateOption(option);\n }\n }\n }\n else if (dataObj instanceof Option || 'text' in dataObj) {\n return this.validateOption(dataObj);\n }\n else {\n return new Error('Data object must be a valid optgroup or option');\n }\n }\n return null;\n }\n validateOption(option) {\n if (!('text' in option)) {\n return new Error('Option must have a text');\n }\n return null;\n }\n partialToFullData(data) {\n let dataFinal = [];\n data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup || 'label' in dataObj) {\n let optOptions = [];\n if ('options' in dataObj && dataObj.options) {\n dataObj.options.forEach((option) => {\n optOptions.push(new Option(option));\n });\n }\n if (optOptions.length > 0) {\n dataFinal.push(new Optgroup(dataObj));\n }\n }\n if (dataObj instanceof Option || 'text' in dataObj) {\n dataFinal.push(new Option(dataObj));\n }\n });\n return dataFinal;\n }\n setData(data) {\n this.data = this.partialToFullData(data);\n if (this.selectType === 'single') {\n this.setSelectedBy('value', this.getSelected());\n }\n }\n getData() {\n return this.filter(null, true);\n }\n getDataOptions() {\n return this.filter(null, false);\n }\n addOption(option) {\n this.setData(this.getData().concat(new Option(option)));\n }\n setSelectedBy(selectedType, selectedValues) {\n let firstOption = null;\n let hasSelected = false;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n for (let option of dataObj.options) {\n if (!firstOption) {\n firstOption = option;\n }\n option.selected = hasSelected ? false : selectedValues.includes(option[selectedType]);\n if (option.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (dataObj instanceof Option) {\n if (!firstOption) {\n firstOption = dataObj;\n }\n dataObj.selected = hasSelected ? false : selectedValues.includes(dataObj[selectedType]);\n if (dataObj.selected && this.selectType === 'single') {\n hasSelected = true;\n }\n }\n }\n if (this.selectType === 'single' && firstOption && !hasSelected) {\n firstOption.selected = true;\n }\n }\n getSelected() {\n let selectedOptions = this.getSelectedOptions();\n let selectedValues = [];\n selectedOptions.forEach((option) => {\n selectedValues.push(option.value);\n });\n return selectedValues;\n }\n getSelectedOptions() {\n return this.filter((opt) => {\n return opt.selected;\n }, false);\n }\n getSelectedIDs() {\n let selectedOptions = this.getSelectedOptions();\n let selectedIDs = [];\n selectedOptions.forEach((op) => {\n selectedIDs.push(op.id);\n });\n return selectedIDs;\n }\n getOptgroupByID(id) {\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup && dataObj.id === id) {\n return dataObj;\n }\n }\n return null;\n }\n getOptionByID(id) {\n let options = this.filter((opt) => {\n return opt.id === id;\n }, false);\n return options.length ? options[0] : null;\n }\n getSelectType() {\n return this.selectType;\n }\n getFirstOption() {\n let option = null;\n for (let dataObj of this.data) {\n if (dataObj instanceof Optgroup) {\n option = dataObj.options[0];\n }\n else if (dataObj instanceof Option) {\n option = dataObj;\n }\n if (option) {\n break;\n }\n }\n return option;\n }\n search(search, searchFilter) {\n search = search.trim();\n if (search === '') {\n return this.getData();\n }\n return this.filter((opt) => {\n return searchFilter(opt, search);\n }, true);\n }\n filter(filter, includeOptgroup) {\n const dataSearch = [];\n this.data.forEach((dataObj) => {\n if (dataObj instanceof Optgroup) {\n let optOptions = [];\n dataObj.options.forEach((option) => {\n if (!filter || filter(option)) {\n if (!includeOptgroup) {\n dataSearch.push(new Option(option));\n }\n else {\n optOptions.push(new Option(option));\n }\n }\n });\n if (optOptions.length > 0) {\n let optgroup = new Optgroup(dataObj);\n optgroup.options = optOptions;\n dataSearch.push(optgroup);\n }\n }\n if (dataObj instanceof Option) {\n if (!filter || filter(dataObj)) {\n dataSearch.push(new Option(dataObj));\n }\n }\n });\n return dataSearch;\n }\n }\n\n class Render {\n constructor(settings, store, callbacks) {\n this.classes = {\n main: 'ss-main',\n placeholder: 'ss-placeholder',\n values: 'ss-values',\n single: 'ss-single',\n max: 'ss-max',\n value: 'ss-value',\n valueText: 'ss-value-text',\n valueDelete: 'ss-value-delete',\n valueOut: 'ss-value-out',\n deselect: 'ss-deselect',\n deselectPath: 'M10,10 L90,90 M10,90 L90,10',\n arrow: 'ss-arrow',\n arrowClose: 'M10,30 L50,70 L90,30',\n arrowOpen: 'M10,70 L50,30 L90,70',\n content: 'ss-content',\n openAbove: 'ss-open-above',\n openBelow: 'ss-open-below',\n search: 'ss-search',\n searchHighlighter: 'ss-search-highlight',\n searching: 'ss-searching',\n addable: 'ss-addable',\n addablePath: 'M50,10 L50,90 M10,50 L90,50',\n list: 'ss-list',\n optgroup: 'ss-optgroup',\n optgroupLabel: 'ss-optgroup-label',\n optgroupLabelText: 'ss-optgroup-label-text',\n optgroupActions: 'ss-optgroup-actions',\n optgroupSelectAll: 'ss-selectall',\n optgroupSelectAllBox: 'M60,10 L10,10 L10,90 L90,90 L90,50',\n optgroupSelectAllCheck: 'M30,45 L50,70 L90,10',\n optgroupClosable: 'ss-closable',\n option: 'ss-option',\n optionDelete: 'M10,10 L90,90 M10,90 L90,10',\n highlighted: 'ss-highlighted',\n open: 'ss-open',\n close: 'ss-close',\n selected: 'ss-selected',\n error: 'ss-error',\n disabled: 'ss-disabled',\n hide: 'ss-hide',\n };\n this.store = store;\n this.settings = settings;\n this.callbacks = callbacks;\n this.main = this.mainDiv();\n this.content = this.contentDiv();\n this.updateClassStyles();\n this.updateAriaAttributes();\n this.settings.contentLocation.appendChild(this.content.main);\n }\n enable() {\n this.main.main.classList.remove(this.classes.disabled);\n this.content.search.input.disabled = false;\n }\n disable() {\n this.main.main.classList.add(this.classes.disabled);\n this.content.search.input.disabled = true;\n }\n open() {\n this.main.arrow.path.setAttribute('d', this.classes.arrowOpen);\n this.main.main.classList.add(this.settings.openPosition === 'up' ? this.classes.openAbove : this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'true');\n this.moveContent();\n const selectedOptions = this.store.getSelectedOptions();\n if (selectedOptions.length) {\n const selectedId = selectedOptions[selectedOptions.length - 1].id;\n const selectedOption = this.content.list.querySelector('[data-id=\"' + selectedId + '\"]');\n if (selectedOption) {\n this.ensureElementInView(this.content.list, selectedOption);\n }\n }\n }\n close() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.main.arrow.path.setAttribute('d', this.classes.arrowClose);\n }\n updateClassStyles() {\n this.main.main.className = '';\n this.main.main.removeAttribute('style');\n this.content.main.className = '';\n this.content.main.removeAttribute('style');\n this.main.main.classList.add(this.classes.main);\n this.content.main.classList.add(this.classes.content);\n if (this.settings.style !== '') {\n this.main.main.style.cssText = this.settings.style;\n this.content.main.style.cssText = this.settings.style;\n }\n if (this.settings.class.length) {\n for (const c of this.settings.class) {\n if (c.trim() !== '') {\n this.main.main.classList.add(c.trim());\n this.content.main.classList.add(c.trim());\n }\n }\n }\n if (this.settings.contentPosition === 'relative') {\n this.content.main.classList.add('ss-' + this.settings.contentPosition);\n }\n }\n updateAriaAttributes() {\n this.main.main.role = 'combobox';\n this.main.main.setAttribute('aria-haspopup', 'listbox');\n this.main.main.setAttribute('aria-controls', this.content.main.id);\n this.main.main.setAttribute('aria-expanded', 'false');\n this.content.main.setAttribute('role', 'listbox');\n }\n mainDiv() {\n var _a;\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n main.setAttribute('aria-label', this.settings.ariaLabel);\n main.tabIndex = 0;\n main.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n this.callbacks.open();\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Enter':\n case ' ':\n this.callbacks.open();\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n }\n return false;\n case 'Escape':\n this.callbacks.close();\n return false;\n }\n return false;\n };\n main.onclick = (e) => {\n if (this.settings.disabled) {\n return;\n }\n this.settings.isOpen ? this.callbacks.close() : this.callbacks.open();\n };\n const values = document.createElement('div');\n values.classList.add(this.classes.values);\n main.appendChild(values);\n const deselect = document.createElement('div');\n deselect.classList.add(this.classes.deselect);\n const selectedOptions = (_a = this.store) === null || _a === void 0 ? void 0 : _a.getSelectedOptions();\n if (!this.settings.allowDeselect || (this.settings.isMultiple && selectedOptions && selectedOptions.length <= 0)) {\n deselect.classList.add(this.classes.hide);\n }\n else {\n deselect.classList.remove(this.classes.hide);\n }\n deselect.onclick = (e) => {\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = [];\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n if (this.settings.isMultiple) {\n this.callbacks.setSelected([], false);\n this.updateDeselectAll();\n }\n else {\n const firstOption = this.store.getFirstOption();\n const value = firstOption ? firstOption.value : '';\n this.callbacks.setSelected(value, false);\n }\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(this.store.getSelectedOptions());\n }\n }\n };\n const deselectSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deselectSvg.setAttribute('viewBox', '0 0 100 100');\n const deselectPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deselectPath.setAttribute('d', this.classes.deselectPath);\n deselectSvg.appendChild(deselectPath);\n deselect.appendChild(deselectSvg);\n main.appendChild(deselect);\n const arrow = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n arrow.classList.add(this.classes.arrow);\n arrow.setAttribute('viewBox', '0 0 100 100');\n const arrowPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n arrowPath.setAttribute('d', this.classes.arrowClose);\n if (this.settings.alwaysOpen) {\n arrow.classList.add(this.classes.hide);\n }\n arrow.appendChild(arrowPath);\n main.appendChild(arrow);\n return {\n main: main,\n values: values,\n deselect: {\n main: deselect,\n svg: deselectSvg,\n path: deselectPath,\n },\n arrow: {\n main: arrow,\n path: arrowPath,\n },\n };\n }\n mainFocus(eventType) {\n if (eventType !== 'click') {\n this.main.main.focus({ preventScroll: true });\n }\n }\n placeholder() {\n const placeholderOption = this.store.filter((o) => o.placeholder, false);\n let placeholderText = this.settings.placeholderText;\n if (placeholderOption.length) {\n if (placeholderOption[0].html !== '') {\n placeholderText = placeholderOption[0].html;\n }\n else if (placeholderOption[0].text !== '') {\n placeholderText = placeholderOption[0].text;\n }\n }\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.placeholder);\n placeholder.innerHTML = placeholderText;\n return placeholder;\n }\n renderValues() {\n if (!this.settings.isMultiple) {\n this.renderSingleValue();\n return;\n }\n this.renderMultipleValues();\n this.updateDeselectAll();\n }\n renderSingleValue() {\n const selected = this.store.filter((o) => {\n return o.selected && !o.placeholder;\n }, false);\n const selectedSingle = selected.length > 0 ? selected[0] : null;\n if (!selectedSingle) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n }\n else {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.single);\n if (selectedSingle.html) {\n singleValue.innerHTML = selectedSingle.html;\n }\n else {\n singleValue.innerText = selectedSingle.text;\n }\n this.main.values.innerHTML = singleValue.outerHTML;\n }\n if (!this.settings.allowDeselect || !selected.length) {\n this.main.deselect.main.classList.add(this.classes.hide);\n }\n else {\n this.main.deselect.main.classList.remove(this.classes.hide);\n }\n }\n renderMultipleValues() {\n let currentNodes = this.main.values.childNodes;\n let selectedOptions = this.store.filter((opt) => {\n return opt.selected && opt.display;\n }, false);\n if (selectedOptions.length === 0) {\n this.main.values.innerHTML = this.placeholder().outerHTML;\n return;\n }\n else {\n const placeholder = this.main.values.querySelector('.' + this.classes.placeholder);\n if (placeholder) {\n placeholder.remove();\n }\n }\n if (selectedOptions.length > this.settings.maxValuesShown) {\n const singleValue = document.createElement('div');\n singleValue.classList.add(this.classes.max);\n singleValue.textContent = this.settings.maxValuesMessage.replace('{number}', selectedOptions.length.toString());\n this.main.values.innerHTML = singleValue.outerHTML;\n return;\n }\n else {\n const maxValuesMessage = this.main.values.querySelector('.' + this.classes.max);\n if (maxValuesMessage) {\n maxValuesMessage.remove();\n }\n }\n let removeNodes = [];\n for (let i = 0; i < currentNodes.length; i++) {\n const node = currentNodes[i];\n const id = node.getAttribute('data-id');\n if (id) {\n const found = selectedOptions.filter((opt) => {\n return opt.id === id;\n }, false);\n if (!found.length) {\n removeNodes.push(node);\n }\n }\n }\n for (const n of removeNodes) {\n n.classList.add(this.classes.valueOut);\n setTimeout(() => {\n if (this.main.values.hasChildNodes() && this.main.values.contains(n)) {\n this.main.values.removeChild(n);\n }\n }, 100);\n }\n currentNodes = this.main.values.childNodes;\n for (let d = 0; d < selectedOptions.length; d++) {\n let shouldAdd = true;\n for (let i = 0; i < currentNodes.length; i++) {\n if (selectedOptions[d].id === String(currentNodes[i].dataset.id)) {\n shouldAdd = false;\n }\n }\n if (shouldAdd) {\n if (this.settings.keepOrder) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else {\n if (currentNodes.length === 0) {\n this.main.values.appendChild(this.multipleValue(selectedOptions[d]));\n }\n else if (d === 0) {\n this.main.values.insertBefore(this.multipleValue(selectedOptions[d]), currentNodes[d]);\n }\n else {\n currentNodes[d - 1].insertAdjacentElement('afterend', this.multipleValue(selectedOptions[d]));\n }\n }\n }\n }\n }\n multipleValue(option) {\n const value = document.createElement('div');\n value.classList.add(this.classes.value);\n value.dataset.id = option.id;\n const text = document.createElement('div');\n text.classList.add(this.classes.valueText);\n text.innerText = option.text;\n value.appendChild(text);\n if (!option.mandatory) {\n const deleteDiv = document.createElement('div');\n deleteDiv.classList.add(this.classes.valueDelete);\n deleteDiv.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (this.settings.disabled) {\n return;\n }\n let shouldDelete = true;\n const before = this.store.getSelectedOptions();\n const after = before.filter((o) => {\n return o.selected && o.id !== option.id;\n }, true);\n if (this.settings.minSelected && after.length < this.settings.minSelected) {\n return;\n }\n if (this.callbacks.beforeChange) {\n shouldDelete = this.callbacks.beforeChange(after, before) === true;\n }\n if (shouldDelete) {\n let selectedValues = [];\n for (const o of after) {\n if (o instanceof Optgroup) {\n for (const c of o.options) {\n selectedValues.push(c.value);\n }\n }\n if (o instanceof Option) {\n selectedValues.push(o.value);\n }\n }\n this.callbacks.setSelected(selectedValues, false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n this.updateDeselectAll();\n }\n };\n const deleteSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n deleteSvg.setAttribute('viewBox', '0 0 100 100');\n const deletePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n deletePath.setAttribute('d', this.classes.optionDelete);\n deleteSvg.appendChild(deletePath);\n deleteDiv.appendChild(deleteSvg);\n value.appendChild(deleteDiv);\n }\n return value;\n }\n contentDiv() {\n const main = document.createElement('div');\n main.dataset.id = this.settings.id;\n const search = this.searchDiv();\n main.appendChild(search.main);\n const list = this.listDiv();\n main.appendChild(list);\n return {\n main: main,\n search: search,\n list: list,\n };\n }\n moveContent() {\n if (this.settings.contentPosition === 'relative') {\n this.moveContentBelow();\n return;\n }\n if (this.settings.openPosition === 'down') {\n this.moveContentBelow();\n return;\n }\n else if (this.settings.openPosition === 'up') {\n this.moveContentAbove();\n return;\n }\n if (this.putContent() === 'up') {\n this.moveContentAbove();\n }\n else {\n this.moveContentBelow();\n }\n }\n searchDiv() {\n const main = document.createElement('div');\n const input = document.createElement('input');\n const addable = document.createElement('div');\n main.classList.add(this.classes.search);\n const searchReturn = {\n main,\n input,\n };\n if (!this.settings.showSearch) {\n main.classList.add(this.classes.hide);\n input.readOnly = true;\n }\n input.type = 'search';\n input.placeholder = this.settings.searchPlaceholder;\n input.tabIndex = -1;\n input.setAttribute('aria-label', this.settings.searchPlaceholder);\n input.setAttribute('autocapitalize', 'off');\n input.setAttribute('autocomplete', 'off');\n input.setAttribute('autocorrect', 'off');\n input.oninput = debounce((e) => {\n this.callbacks.search(e.target.value);\n }, 100);\n input.onkeydown = (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n e.key === 'ArrowDown' ? this.highlight('down') : this.highlight('up');\n return false;\n case 'Tab':\n this.callbacks.close();\n return true;\n case 'Escape':\n this.callbacks.close();\n return false;\n case 'Enter':\n case ' ':\n if (this.callbacks.addable && e.ctrlKey) {\n addable.click();\n return false;\n }\n else {\n const highlighted = this.content.list.querySelector('.' + this.classes.highlighted);\n if (highlighted) {\n highlighted.click();\n return false;\n }\n }\n return true;\n }\n return true;\n };\n main.appendChild(input);\n if (this.callbacks.addable) {\n addable.classList.add(this.classes.addable);\n const plus = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n plus.setAttribute('viewBox', '0 0 100 100');\n const plusPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n plusPath.setAttribute('d', this.classes.addablePath);\n plus.appendChild(plusPath);\n addable.appendChild(plus);\n addable.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!this.callbacks.addable) {\n return;\n }\n const inputValue = this.content.search.input.value.trim();\n if (inputValue === '') {\n this.content.search.input.focus();\n return;\n }\n const runFinish = (oo) => {\n let newOption = new Option(oo);\n this.callbacks.addOption(newOption);\n if (this.settings.isMultiple) {\n let values = this.store.getSelected();\n values.push(newOption.value);\n this.callbacks.setSelected(values, true);\n }\n else {\n this.callbacks.setSelected([newOption.value], true);\n }\n this.callbacks.search('');\n if (this.settings.closeOnSelect) {\n setTimeout(() => {\n this.callbacks.close();\n }, 100);\n }\n };\n const addableValue = this.callbacks.addable(inputValue);\n if (addableValue === false || addableValue === undefined || addableValue === null) {\n return;\n }\n if (addableValue instanceof Promise) {\n addableValue.then((value) => {\n if (typeof value === 'string') {\n runFinish({\n text: value,\n value: value,\n });\n }\n else {\n runFinish(value);\n }\n });\n }\n else if (typeof addableValue === 'string') {\n runFinish({\n text: addableValue,\n value: addableValue,\n });\n }\n else {\n runFinish(addableValue);\n }\n return;\n };\n main.appendChild(addable);\n searchReturn.addable = {\n main: addable,\n svg: plus,\n path: plusPath,\n };\n }\n return searchReturn;\n }\n searchFocus() {\n this.content.search.input.focus();\n }\n getOptions(notPlaceholder = false, notDisabled = false, notHidden = false) {\n let query = '.' + this.classes.option;\n if (notPlaceholder) {\n query += ':not(.' + this.classes.placeholder + ')';\n }\n if (notDisabled) {\n query += ':not(.' + this.classes.disabled + ')';\n }\n if (notHidden) {\n query += ':not(.' + this.classes.hide + ')';\n }\n return Array.from(this.content.list.querySelectorAll(query));\n }\n highlight(dir) {\n const options = this.getOptions(true, true, true);\n if (options.length === 0) {\n return;\n }\n if (options.length === 1) {\n if (!options[0].classList.contains(this.classes.highlighted)) {\n options[0].classList.add(this.classes.highlighted);\n return;\n }\n }\n let highlighted = false;\n for (const o of options) {\n if (o.classList.contains(this.classes.highlighted)) {\n highlighted = true;\n }\n }\n if (!highlighted) {\n for (const o of options) {\n if (o.classList.contains(this.classes.selected)) {\n o.classList.add(this.classes.highlighted);\n break;\n }\n }\n }\n for (let i = 0; i < options.length; i++) {\n if (options[i].classList.contains(this.classes.highlighted)) {\n const prevOption = options[i];\n prevOption.classList.remove(this.classes.highlighted);\n const prevParent = prevOption.parentElement;\n if (prevParent && prevParent.classList.contains(this.classes.open)) {\n const optgroupLabel = prevParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n let selectOption = options[dir === 'down' ? (i + 1 < options.length ? i + 1 : 0) : i - 1 >= 0 ? i - 1 : options.length - 1];\n selectOption.classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, selectOption);\n const selectParent = selectOption.parentElement;\n if (selectParent && selectParent.classList.contains(this.classes.close)) {\n const optgroupLabel = selectParent.querySelector('.' + this.classes.optgroupLabel);\n if (optgroupLabel) {\n optgroupLabel.click();\n }\n }\n return;\n }\n }\n options[dir === 'down' ? 0 : options.length - 1].classList.add(this.classes.highlighted);\n this.ensureElementInView(this.content.list, options[dir === 'down' ? 0 : options.length - 1]);\n }\n listDiv() {\n const options = document.createElement('div');\n options.classList.add(this.classes.list);\n return options;\n }\n renderError(error) {\n this.content.list.innerHTML = '';\n const errorDiv = document.createElement('div');\n errorDiv.classList.add(this.classes.error);\n errorDiv.textContent = error;\n this.content.list.appendChild(errorDiv);\n }\n renderSearching() {\n this.content.list.innerHTML = '';\n const searchingDiv = document.createElement('div');\n searchingDiv.classList.add(this.classes.searching);\n searchingDiv.textContent = this.settings.searchingText;\n this.content.list.appendChild(searchingDiv);\n }\n renderOptions(data) {\n this.content.list.innerHTML = '';\n if (data.length === 0) {\n const noResults = document.createElement('div');\n noResults.classList.add(this.classes.search);\n noResults.innerHTML = this.settings.searchText;\n this.content.list.appendChild(noResults);\n return;\n }\n for (const d of data) {\n if (d instanceof Optgroup) {\n const optgroupEl = document.createElement('div');\n optgroupEl.classList.add(this.classes.optgroup);\n const optgroupLabel = document.createElement('div');\n optgroupLabel.classList.add(this.classes.optgroupLabel);\n optgroupEl.appendChild(optgroupLabel);\n const optgroupLabelText = document.createElement('div');\n optgroupLabelText.classList.add(this.classes.optgroupLabelText);\n optgroupLabelText.textContent = d.label;\n optgroupLabel.appendChild(optgroupLabelText);\n const optgroupActions = document.createElement('div');\n optgroupActions.classList.add(this.classes.optgroupActions);\n optgroupLabel.appendChild(optgroupActions);\n if (this.settings.isMultiple && d.selectAll) {\n const selectAll = document.createElement('div');\n selectAll.classList.add(this.classes.optgroupSelectAll);\n let allSelected = true;\n for (const o of d.options) {\n if (!o.selected) {\n allSelected = false;\n break;\n }\n }\n if (allSelected) {\n selectAll.classList.add(this.classes.selected);\n }\n const selectAllText = document.createElement('span');\n selectAllText.textContent = d.selectAllText;\n selectAll.appendChild(selectAllText);\n const selectAllSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n selectAllSvg.setAttribute('viewBox', '0 0 100 100');\n selectAll.appendChild(selectAllSvg);\n const selectAllBox = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllBox.setAttribute('d', this.classes.optgroupSelectAllBox);\n selectAllSvg.appendChild(selectAllBox);\n const selectAllCheck = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n selectAllCheck.setAttribute('d', this.classes.optgroupSelectAllCheck);\n selectAllSvg.appendChild(selectAllCheck);\n selectAll.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const currentSelected = this.store.getSelected();\n if (allSelected) {\n const newSelected = currentSelected.filter((s) => {\n for (const o of d.options) {\n if (s === o.value) {\n return false;\n }\n }\n return true;\n });\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n else {\n const newSelected = currentSelected.concat(d.options.map((o) => o.value));\n for (const o of d.options) {\n if (!this.store.getOptionByID(o.id)) {\n this.callbacks.addOption(o);\n }\n }\n this.callbacks.setSelected(newSelected, true);\n return;\n }\n });\n optgroupActions.appendChild(selectAll);\n }\n if (d.closable !== 'off') {\n const optgroupClosable = document.createElement('div');\n optgroupClosable.classList.add(this.classes.optgroupClosable);\n const optgroupClosableSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n optgroupClosableSvg.setAttribute('viewBox', '0 0 100 100');\n optgroupClosableSvg.classList.add(this.classes.arrow);\n optgroupClosable.appendChild(optgroupClosableSvg);\n const optgroupClosableArrow = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n optgroupClosableSvg.appendChild(optgroupClosableArrow);\n if (d.options.some((o) => o.selected) || this.content.search.input.value.trim() !== '') {\n optgroupClosable.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'open') {\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else if (d.closable === 'close') {\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n optgroupLabel.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (optgroupEl.classList.contains(this.classes.close)) {\n optgroupEl.classList.remove(this.classes.close);\n optgroupEl.classList.add(this.classes.open);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowOpen);\n }\n else {\n optgroupEl.classList.remove(this.classes.open);\n optgroupEl.classList.add(this.classes.close);\n optgroupClosableArrow.setAttribute('d', this.classes.arrowClose);\n }\n });\n optgroupActions.appendChild(optgroupClosable);\n }\n optgroupEl.appendChild(optgroupLabel);\n for (const o of d.options) {\n optgroupEl.appendChild(this.option(o));\n }\n this.content.list.appendChild(optgroupEl);\n }\n if (d instanceof Option) {\n this.content.list.appendChild(this.option(d));\n }\n }\n }\n option(option) {\n if (option.placeholder) {\n const placeholder = document.createElement('div');\n placeholder.classList.add(this.classes.option);\n placeholder.classList.add(this.classes.hide);\n return placeholder;\n }\n const optionEl = document.createElement('div');\n optionEl.dataset.id = option.id;\n optionEl.id = option.id;\n optionEl.classList.add(this.classes.option);\n optionEl.setAttribute('role', 'option');\n if (option.class) {\n option.class.split(' ').forEach((dataClass) => {\n optionEl.classList.add(dataClass);\n });\n }\n if (option.style) {\n optionEl.style.cssText = option.style;\n }\n if (this.settings.searchHighlight && this.content.search.input.value.trim() !== '') {\n optionEl.innerHTML = this.highlightText(option.html !== '' ? option.html : option.text, this.content.search.input.value, this.classes.searchHighlighter);\n }\n else if (option.html !== '') {\n optionEl.innerHTML = option.html;\n }\n else {\n optionEl.textContent = option.text;\n }\n if (this.settings.showOptionTooltips && optionEl.textContent) {\n optionEl.setAttribute('title', optionEl.textContent);\n }\n if (!option.display) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.disabled) {\n optionEl.classList.add(this.classes.disabled);\n }\n if (option.selected && this.settings.hideSelected) {\n optionEl.classList.add(this.classes.hide);\n }\n if (option.selected) {\n optionEl.classList.add(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'true');\n this.main.main.setAttribute('aria-activedescendant', optionEl.id);\n }\n else {\n optionEl.classList.remove(this.classes.selected);\n optionEl.setAttribute('aria-selected', 'false');\n }\n optionEl.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const selectedOptions = this.store.getSelected();\n const element = e.currentTarget;\n const elementID = String(element.dataset.id);\n if (option.disabled || (option.selected && !this.settings.allowDeselect)) {\n return;\n }\n if ((this.settings.isMultiple && this.settings.maxSelected <= selectedOptions.length && !option.selected) ||\n (this.settings.isMultiple && this.settings.minSelected >= selectedOptions.length && option.selected)) {\n return;\n }\n let shouldUpdate = false;\n const before = this.store.getSelectedOptions();\n let after = [];\n if (this.settings.isMultiple) {\n if (option.selected) {\n after = before.filter((o) => o.id !== elementID);\n }\n else {\n after = before.concat(option);\n }\n }\n if (!this.settings.isMultiple) {\n if (option.selected) {\n after = [];\n }\n else {\n after = [option];\n }\n }\n if (!this.callbacks.beforeChange) {\n shouldUpdate = true;\n }\n if (this.callbacks.beforeChange) {\n if (this.callbacks.beforeChange(after, before) === false) {\n shouldUpdate = false;\n }\n else {\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n if (!this.store.getOptionByID(elementID)) {\n this.callbacks.addOption(option);\n }\n this.callbacks.setSelected(after.map((o) => o.value), false);\n if (this.settings.closeOnSelect) {\n this.callbacks.close();\n }\n if (this.callbacks.afterChange) {\n this.callbacks.afterChange(after);\n }\n }\n });\n return optionEl;\n }\n destroy() {\n this.main.main.remove();\n this.content.main.remove();\n }\n highlightText(str, search, className) {\n let completedString = str;\n const regex = new RegExp('(' + search.trim() + ')(?![^<]*>[^<>]*)', 'i');\n if (!str.match(regex)) {\n return str;\n }\n const matchStartPosition = str.match(regex).index;\n const matchEndPosition = matchStartPosition + str.match(regex)[0].toString().length;\n const originalTextFoundByRegex = str.substring(matchStartPosition, matchEndPosition);\n completedString = completedString.replace(regex, `${originalTextFoundByRegex}`);\n return completedString;\n }\n moveContentAbove() {\n const mainHeight = this.main.main.offsetHeight;\n const contentHeight = this.content.main.offsetHeight;\n this.main.main.classList.remove(this.classes.openBelow);\n this.main.main.classList.add(this.classes.openAbove);\n this.content.main.classList.remove(this.classes.openBelow);\n this.content.main.classList.add(this.classes.openAbove);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-' + (mainHeight + contentHeight - 1) + 'px 0px 0px 0px';\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n moveContentBelow() {\n this.main.main.classList.remove(this.classes.openAbove);\n this.main.main.classList.add(this.classes.openBelow);\n this.content.main.classList.remove(this.classes.openAbove);\n this.content.main.classList.add(this.classes.openBelow);\n const containerRect = this.main.main.getBoundingClientRect();\n this.content.main.style.margin = '-1px 0px 0px 0px';\n if (this.settings.contentPosition !== 'relative') {\n this.content.main.style.top = containerRect.top + containerRect.height + window.scrollY + 'px';\n this.content.main.style.left = containerRect.left + window.scrollX + 'px';\n this.content.main.style.width = containerRect.width + 'px';\n }\n }\n ensureElementInView(container, element) {\n const cTop = container.scrollTop + container.offsetTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n if (eTop < cTop) {\n container.scrollTop -= cTop - eTop;\n }\n else if (eBottom > cBottom) {\n container.scrollTop += eBottom - cBottom;\n }\n }\n putContent() {\n const mainHeight = this.main.main.offsetHeight;\n const mainRect = this.main.main.getBoundingClientRect();\n const contentHeight = this.content.main.offsetHeight;\n const spaceBelow = window.innerHeight - (mainRect.top + mainHeight);\n if (spaceBelow <= contentHeight) {\n if (mainRect.top > contentHeight) {\n return 'up';\n }\n else {\n return 'down';\n }\n }\n return 'down';\n }\n updateDeselectAll() {\n if (!this.store || !this.settings) {\n return;\n }\n const selected = this.store.getSelectedOptions();\n const hasSelectedItems = selected && selected.length > 0;\n const isMultiple = this.settings.isMultiple;\n const allowDeselect = this.settings.allowDeselect;\n const deselectButton = this.main.deselect.main;\n const hideClass = this.classes.hide;\n if (allowDeselect && !(isMultiple && !hasSelectedItems)) {\n deselectButton.classList.remove(hideClass);\n }\n else {\n deselectButton.classList.add(hideClass);\n }\n }\n }\n\n class Select {\n constructor(select) {\n this.listen = false;\n this.observer = null;\n this.select = select;\n this.valueChange = this.valueChange.bind(this);\n this.select.addEventListener('change', this.valueChange, {\n passive: true,\n });\n this.observer = new MutationObserver(this.observeCall.bind(this));\n this.changeListen(true);\n }\n enable() {\n this.select.disabled = false;\n }\n disable() {\n this.select.disabled = true;\n }\n hideUI() {\n this.select.tabIndex = -1;\n this.select.style.display = 'none';\n this.select.setAttribute('aria-hidden', 'true');\n }\n showUI() {\n this.select.removeAttribute('tabindex');\n this.select.style.display = '';\n this.select.removeAttribute('aria-hidden');\n }\n changeListen(listen) {\n this.listen = listen;\n if (listen) {\n if (this.observer) {\n this.observer.observe(this.select, {\n subtree: true,\n childList: true,\n attributes: true,\n });\n }\n }\n if (!listen) {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n }\n valueChange(ev) {\n if (this.listen && this.onValueChange) {\n this.onValueChange(this.getSelectedValues());\n }\n return true;\n }\n observeCall(mutations) {\n if (!this.listen) {\n return;\n }\n let classChanged = false;\n let disabledChanged = false;\n let optgroupOptionChanged = false;\n for (const m of mutations) {\n if (m.target === this.select) {\n if (m.attributeName === 'disabled') {\n disabledChanged = true;\n }\n if (m.attributeName === 'class') {\n classChanged = true;\n }\n }\n if (m.target.nodeName === 'OPTGROUP' || m.target.nodeName === 'OPTION') {\n optgroupOptionChanged = true;\n }\n }\n if (classChanged && this.onClassChange) {\n this.onClassChange(this.select.className.split(' '));\n }\n if (disabledChanged && this.onDisabledChange) {\n this.changeListen(false);\n this.onDisabledChange(this.select.disabled);\n this.changeListen(true);\n }\n if (optgroupOptionChanged && this.onOptionsChange) {\n this.changeListen(false);\n this.onOptionsChange(this.getData());\n this.changeListen(true);\n }\n }\n getData() {\n let data = [];\n const nodes = this.select.childNodes;\n for (const n of nodes) {\n if (n.nodeName === 'OPTGROUP') {\n data.push(this.getDataFromOptgroup(n));\n }\n if (n.nodeName === 'OPTION') {\n data.push(this.getDataFromOption(n));\n }\n }\n return data;\n }\n getDataFromOptgroup(optgroup) {\n let data = {\n id: optgroup.id,\n label: optgroup.label,\n selectAll: optgroup.dataset ? optgroup.dataset.selectall === 'true' : false,\n selectAllText: optgroup.dataset ? optgroup.dataset.selectalltext : 'Select all',\n closable: optgroup.dataset ? optgroup.dataset.closable : 'off',\n options: [],\n };\n const options = optgroup.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTION') {\n data.options.push(this.getDataFromOption(o));\n }\n }\n return data;\n }\n getDataFromOption(option) {\n return {\n id: option.id,\n value: option.value,\n text: option.text,\n html: option.dataset && option.dataset.html ? option.dataset.html : '',\n selected: option.selected,\n display: option.style.display === 'none' ? false : true,\n disabled: option.disabled,\n mandatory: option.dataset ? option.dataset.mandatory === 'true' : false,\n placeholder: option.dataset.placeholder === 'true',\n class: option.className,\n style: option.style.cssText,\n data: option.dataset,\n };\n }\n getSelectedValues() {\n let values = [];\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroupOptions = o.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n if (option.selected) {\n values.push(option.value);\n }\n }\n }\n return values;\n }\n setSelected(value) {\n this.changeListen(false);\n const options = this.select.childNodes;\n for (const o of options) {\n if (o.nodeName === 'OPTGROUP') {\n const optgroup = o;\n const optgroupOptions = optgroup.childNodes;\n for (const oo of optgroupOptions) {\n if (oo.nodeName === 'OPTION') {\n const option = oo;\n option.selected = value.includes(option.value);\n }\n }\n }\n if (o.nodeName === 'OPTION') {\n const option = o;\n option.selected = value.includes(option.value);\n }\n }\n this.changeListen(true);\n }\n updateSelect(id, style, classes) {\n this.changeListen(false);\n if (id) {\n this.select.dataset.id = id;\n }\n if (style) {\n this.select.style.cssText = style;\n }\n if (classes) {\n this.select.className = '';\n classes.forEach((c) => {\n if (c.trim() !== '') {\n this.select.classList.add(c.trim());\n }\n });\n }\n this.changeListen(true);\n }\n updateOptions(data) {\n this.changeListen(false);\n this.select.innerHTML = '';\n for (const d of data) {\n if (d instanceof Optgroup) {\n this.select.appendChild(this.createOptgroup(d));\n }\n if (d instanceof Option) {\n this.select.appendChild(this.createOption(d));\n }\n }\n this.select.dispatchEvent(new Event('change'));\n this.changeListen(true);\n }\n createOptgroup(optgroup) {\n const optgroupEl = document.createElement('optgroup');\n optgroupEl.id = optgroup.id;\n optgroupEl.label = optgroup.label;\n if (optgroup.selectAll) {\n optgroupEl.dataset.selectAll = 'true';\n }\n if (optgroup.closable !== 'off') {\n optgroupEl.dataset.closable = optgroup.closable;\n }\n if (optgroup.options) {\n for (const o of optgroup.options) {\n optgroupEl.appendChild(this.createOption(o));\n }\n }\n return optgroupEl;\n }\n createOption(info) {\n const optionEl = document.createElement('option');\n optionEl.id = info.id;\n optionEl.value = info.value;\n optionEl.innerHTML = info.text;\n if (info.html !== '') {\n optionEl.setAttribute('data-html', info.html);\n }\n if (info.selected) {\n optionEl.selected = info.selected;\n }\n if (info.disabled) {\n optionEl.disabled = true;\n }\n if (info.display === false) {\n optionEl.style.display = 'none';\n }\n if (info.placeholder) {\n optionEl.setAttribute('data-placeholder', 'true');\n }\n if (info.mandatory) {\n optionEl.setAttribute('data-mandatory', 'true');\n }\n if (info.class) {\n info.class.split(' ').forEach((optionClass) => {\n optionEl.classList.add(optionClass);\n });\n }\n if (info.data && typeof info.data === 'object') {\n Object.keys(info.data).forEach((key) => {\n optionEl.setAttribute('data-' + kebabCase(key), info.data[key]);\n });\n }\n return optionEl;\n }\n destroy() {\n this.changeListen(false);\n this.select.removeEventListener('change', this.valueChange);\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n delete this.select.dataset.id;\n this.showUI();\n }\n }\n\n class Settings {\n constructor(settings) {\n this.id = '';\n this.style = '';\n this.class = [];\n this.isMultiple = false;\n this.isOpen = false;\n this.isFullOpen = false;\n this.intervalMove = null;\n if (!settings) {\n settings = {};\n }\n this.id = 'ss-' + generateID();\n this.style = settings.style || '';\n this.class = settings.class || [];\n this.disabled = settings.disabled !== undefined ? settings.disabled : false;\n this.alwaysOpen = settings.alwaysOpen !== undefined ? settings.alwaysOpen : false;\n this.showSearch = settings.showSearch !== undefined ? settings.showSearch : true;\n this.ariaLabel = settings.ariaLabel || 'Combobox';\n this.searchPlaceholder = settings.searchPlaceholder || 'Search';\n this.searchText = settings.searchText || 'No Results';\n this.searchingText = settings.searchingText || 'Searching...';\n this.searchHighlight = settings.searchHighlight !== undefined ? settings.searchHighlight : false;\n this.closeOnSelect = settings.closeOnSelect !== undefined ? settings.closeOnSelect : true;\n this.contentLocation = settings.contentLocation || document.body;\n this.contentPosition = settings.contentPosition || 'absolute';\n this.openPosition = settings.openPosition || 'auto';\n this.placeholderText = settings.placeholderText !== undefined ? settings.placeholderText : 'Select Value';\n this.allowDeselect = settings.allowDeselect !== undefined ? settings.allowDeselect : false;\n this.hideSelected = settings.hideSelected !== undefined ? settings.hideSelected : false;\n this.keepOrder = settings.keepOrder !== undefined ? settings.keepOrder : false;\n this.showOptionTooltips = settings.showOptionTooltips !== undefined ? settings.showOptionTooltips : false;\n this.minSelected = settings.minSelected || 0;\n this.maxSelected = settings.maxSelected || 1000;\n this.timeoutDelay = settings.timeoutDelay || 200;\n this.maxValuesShown = settings.maxValuesShown || 20;\n this.maxValuesMessage = settings.maxValuesMessage || '{number} selected';\n }\n }\n\n class SlimSelect {\n constructor(config) {\n var _a;\n this.events = {\n search: undefined,\n searchFilter: (opt, search) => {\n return opt.text.toLowerCase().indexOf(search.toLowerCase()) !== -1;\n },\n addable: undefined,\n beforeChange: undefined,\n afterChange: undefined,\n beforeOpen: undefined,\n afterOpen: undefined,\n beforeClose: undefined,\n afterClose: undefined,\n };\n this.windowResize = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.windowScroll = debounce(() => {\n if (!this.settings.isOpen && !this.settings.isFullOpen) {\n return;\n }\n this.render.moveContent();\n });\n this.documentClick = (e) => {\n if (!this.settings.isOpen) {\n return;\n }\n if (e.target && !hasClassInTree(e.target, this.settings.id)) {\n this.close(e.type);\n }\n };\n this.windowVisibilityChange = () => {\n if (document.hidden) {\n this.close();\n }\n };\n this.selectEl = (typeof config.select === 'string' ? document.querySelector(config.select) : config.select);\n if (!this.selectEl) {\n if (config.events && config.events.error) {\n config.events.error(new Error('Could not find select element'));\n }\n return;\n }\n if (this.selectEl.tagName !== 'SELECT') {\n if (config.events && config.events.error) {\n config.events.error(new Error('Element isnt of type select'));\n }\n return;\n }\n if (this.selectEl.dataset.ssid) {\n this.destroy();\n }\n this.settings = new Settings(config.settings);\n const debounceEvents = ['afterChange', 'beforeOpen', 'afterOpen', 'beforeClose', 'afterClose'];\n for (const key in config.events) {\n if (!config.events.hasOwnProperty(key)) {\n continue;\n }\n if (debounceEvents.indexOf(key) !== -1) {\n this.events[key] = debounce(config.events[key], 100);\n }\n else {\n this.events[key] = config.events[key];\n }\n }\n this.settings.disabled = ((_a = config.settings) === null || _a === void 0 ? void 0 : _a.disabled) ? config.settings.disabled : this.selectEl.disabled;\n this.settings.isMultiple = this.selectEl.multiple;\n this.settings.style = this.selectEl.style.cssText;\n this.settings.class = this.selectEl.className.split(' ');\n this.select = new Select(this.selectEl);\n this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class);\n this.select.hideUI();\n this.select.onValueChange = (values) => {\n this.setSelected(values);\n };\n this.select.onClassChange = (classes) => {\n this.settings.class = classes;\n this.render.updateClassStyles();\n };\n this.select.onDisabledChange = (disabled) => {\n if (disabled) {\n this.disable();\n }\n else {\n this.enable();\n }\n };\n this.select.onOptionsChange = (data) => {\n this.setData(data);\n };\n this.store = new Store(this.settings.isMultiple ? 'multiple' : 'single', config.data ? config.data : this.select.getData());\n if (config.data) {\n this.select.updateOptions(this.store.getData());\n }\n const renderCallbacks = {\n open: this.open.bind(this),\n close: this.close.bind(this),\n addable: this.events.addable ? this.events.addable : undefined,\n setSelected: this.setSelected.bind(this),\n addOption: this.addOption.bind(this),\n search: this.search.bind(this),\n beforeChange: this.events.beforeChange,\n afterChange: this.events.afterChange,\n };\n this.render = new Render(this.settings, this.store, renderCallbacks);\n this.render.renderValues();\n this.render.renderOptions(this.store.getData());\n const selectAriaLabel = this.selectEl.getAttribute('aria-label');\n const selectAriaLabelledBy = this.selectEl.getAttribute('aria-labelledby');\n if (selectAriaLabel) {\n this.render.main.main.setAttribute('aria-label', selectAriaLabel);\n }\n else if (selectAriaLabelledBy) {\n this.render.main.main.setAttribute('aria-labelledby', selectAriaLabelledBy);\n }\n if (this.selectEl.parentNode) {\n this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling);\n }\n window.addEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.addEventListener('scroll', this.windowScroll, false);\n }\n document.addEventListener('visibilitychange', this.windowVisibilityChange);\n if (this.settings.disabled) {\n this.disable();\n }\n if (this.settings.alwaysOpen) {\n this.open();\n }\n this.selectEl.slim = this;\n }\n enable() {\n this.settings.disabled = false;\n this.select.enable();\n this.render.enable();\n }\n disable() {\n this.settings.disabled = true;\n this.select.disable();\n this.render.disable();\n }\n getData() {\n return this.store.getData();\n }\n setData(data) {\n const selected = this.store.getSelected();\n const err = this.store.validateDataArray(data);\n if (err) {\n if (this.events.error) {\n this.events.error(err);\n }\n return;\n }\n this.store.setData(data);\n const dataClean = this.store.getData();\n this.select.updateOptions(dataClean);\n this.render.renderValues();\n this.render.renderOptions(dataClean);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n getSelected() {\n return this.store.getSelected();\n }\n setSelected(value, runAfterChange = true) {\n const selected = this.store.getSelected();\n this.store.setSelectedBy('value', Array.isArray(value) ? value : [value]);\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n if (this.render.content.search.input.value !== '') {\n this.search(this.render.content.search.input.value);\n }\n else {\n this.render.renderOptions(data);\n }\n if (runAfterChange && this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n addOption(option) {\n const selected = this.store.getSelected();\n if (!this.store.getDataOptions().some((o) => { var _a; return o.value === ((_a = option.value) !== null && _a !== void 0 ? _a : option.text); })) {\n this.store.addOption(option);\n }\n const data = this.store.getData();\n this.select.updateOptions(data);\n this.render.renderValues();\n this.render.renderOptions(data);\n if (this.events.afterChange && !isEqual(selected, this.store.getSelected())) {\n this.events.afterChange(this.store.getSelectedOptions());\n }\n }\n open() {\n if (this.settings.disabled || this.settings.isOpen) {\n return;\n }\n if (this.events.beforeOpen) {\n this.events.beforeOpen();\n }\n this.render.open();\n if (this.settings.showSearch) {\n this.render.searchFocus();\n }\n this.settings.isOpen = true;\n setTimeout(() => {\n if (this.events.afterOpen) {\n this.events.afterOpen();\n }\n if (this.settings.isOpen) {\n this.settings.isFullOpen = true;\n }\n document.addEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.contentPosition === 'absolute') {\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n this.settings.intervalMove = setInterval(this.render.moveContent.bind(this.render), 500);\n }\n }\n close(eventType = null) {\n if (!this.settings.isOpen || this.settings.alwaysOpen) {\n return;\n }\n if (this.events.beforeClose) {\n this.events.beforeClose();\n }\n this.render.close();\n if (this.render.content.search.input.value !== '') {\n this.search('');\n }\n this.render.mainFocus(eventType);\n this.settings.isOpen = false;\n this.settings.isFullOpen = false;\n setTimeout(() => {\n if (this.events.afterClose) {\n this.events.afterClose();\n }\n document.removeEventListener('click', this.documentClick);\n }, this.settings.timeoutDelay);\n if (this.settings.intervalMove) {\n clearInterval(this.settings.intervalMove);\n }\n }\n search(value) {\n if (this.render.content.search.input.value !== value) {\n this.render.content.search.input.value = value;\n }\n if (!this.events.search) {\n this.render.renderOptions(value === '' ? this.store.getData() : this.store.search(value, this.events.searchFilter));\n return;\n }\n this.render.renderSearching();\n const searchResp = this.events.search(value, this.store.getSelectedOptions());\n if (searchResp instanceof Promise) {\n searchResp\n .then((data) => {\n this.render.renderOptions(this.store.partialToFullData(data));\n })\n .catch((err) => {\n this.render.renderError(typeof err === 'string' ? err : err.message);\n });\n return;\n }\n else if (Array.isArray(searchResp)) {\n this.render.renderOptions(this.store.partialToFullData(searchResp));\n }\n else {\n this.render.renderError('Search event must return a promise or an array of data');\n }\n }\n destroy() {\n document.removeEventListener('click', this.documentClick);\n window.removeEventListener('resize', this.windowResize, false);\n if (this.settings.openPosition === 'auto') {\n window.removeEventListener('scroll', this.windowScroll, false);\n }\n document.removeEventListener('visibilitychange', this.windowVisibilityChange);\n this.store.setData([]);\n this.render.destroy();\n this.select.destroy();\n }\n }\n\n return SlimSelect;\n\n}));\n","/*\n* Notiflix Notify AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory(root);\n } else {\n root.Notiflix = factory(root);\n }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n 'use strict';\n\n // COMMON: SSR check: begin\n if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n return false;\n }\n // COMMON: SSR check: end\n\n // COMMON: Variables: begin\n var notiflixNamespace = 'Notiflix';\n var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n // COMMON: Variables: end\n\n // NOTIFY: Default Settings: begin\n var typesNotify = {\n Success: 'Success',\n Failure: 'Failure',\n Warning: 'Warning',\n Info: 'Info',\n };\n var newNotifySettings;\n var notifySettings = {\n wrapID: 'NotiflixNotifyWrap', // can not customizable\n overlayID: 'NotiflixNotifyOverlay', // can not customizable\n width: '280px',\n position: 'right-top', // 'right-top' - 'right-bottom' - 'left-top' - 'left-bottom' - 'center-top' - 'center-bottom' - 'center-center'\n distance: '10px',\n opacity: 1,\n borderRadius: '5px',\n rtl: false,\n timeout: 3000,\n messageMaxLength: 110,\n backOverlay: false,\n backOverlayColor: 'rgba(0,0,0,0.5)',\n plainText: true,\n showOnlyTheLastOne: false,\n clickToClose: false,\n pauseOnHover: true,\n\n ID: 'NotiflixNotify',\n className: 'notiflix-notify',\n zindex: 4001,\n fontFamily: 'Quicksand',\n fontSize: '13px',\n cssAnimation: true,\n cssAnimationDuration: 400,\n cssAnimationStyle: 'fade', // 'fade' - 'zoom' - 'from-right' - 'from-top' - 'from-bottom' - 'from-left'\n closeButton: false,\n useIcon: true,\n useFontAwesome: false,\n fontAwesomeIconStyle: 'basic', // 'basic' - 'shadow'\n fontAwesomeIconSize: '34px',\n\n success: {\n background: '#32c682',\n textColor: '#fff',\n childClassName: 'notiflix-notify-success',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-check-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(50,198,130,0.2)',\n },\n\n failure: {\n background: '#ff5549',\n textColor: '#fff',\n childClassName: 'notiflix-notify-failure',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-times-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(255,85,73,0.2)',\n },\n\n warning: {\n background: '#eebf31',\n textColor: '#fff',\n childClassName: 'notiflix-notify-warning',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-exclamation-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(238,191,49,0.2)',\n },\n\n info: {\n background: '#26c0d3',\n textColor: '#fff',\n childClassName: 'notiflix-notify-info',\n notiflixIconColor: 'rgba(0,0,0,0.2)',\n fontAwesomeClassName: 'fas fa-info-circle',\n fontAwesomeIconColor: 'rgba(0,0,0,0.2)',\n backOverlayColor: 'rgba(38,192,211,0.2)',\n },\n };\n // NOTIFY: Default Settings: end\n\n // COMMON: Console Error: begin\n var commonConsoleError = function (message) {\n return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n };\n // COMMON: Console Error: end\n\n // COMMON: Check Head or Body: begin\n var commonCheckHeadOrBody = function (element) {\n if (!element) { element = 'head'; }\n if (window.document[element] === null) {\n commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n return false;\n }\n return true;\n };\n // COMMON: Check Head or Body: end\n\n // COMMON: Set Internal CSS Codes: begin\n var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n // check doc head\n if (!commonCheckHeadOrBody('head')) { return false; }\n\n // internal css\n if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n var internalCSS = window.document.createElement('style');\n internalCSS.id = styleElementId;\n internalCSS.innerHTML = getInternalCSSCodes();\n window.document.head.appendChild(internalCSS);\n }\n };\n // COMMON: Set Internal CSS Codes: end\n\n // COMMON: Extend Options: begin\n var commonExtendOptions = function () {\n // variables\n var extended = {};\n var deep = false;\n var i = 0;\n // check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n // merge the object into the extended object\n var merge = function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // if property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n // loop through each object and conduct a merge\n for (; i < arguments.length; i++) {\n merge(arguments[i]);\n }\n return extended;\n };\n // COMMON: Extend Options: end\n\n // COMMON: Get Plaintext: begin\n var commonGetPlaintext = function (html) {\n var htmlPool = window.document.createElement('div');\n htmlPool.innerHTML = html;\n return htmlPool.textContent || htmlPool.innerText || '';\n };\n // COMMON: Get Plaintext: end\n\n // NOTIFY: Get Internal CSS Codes: begin\n var notifyGetInternalCSSCodes = function () {\n var notifyCSS = '[id^=NotiflixNotifyWrap]{pointer-events:none;position:fixed;z-index:4001;opacity:1;right:10px;top:10px;width:280px;max-width:96%;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent}[id^=NotiflixNotifyWrap].nx-flex-center-center{max-height:calc(100vh - 20px);overflow-x:hidden;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:auto}[id^=NotiflixNotifyWrap]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixNotifyWrap]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixNotifyWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyOverlay]{-webkit-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;transition:background .3s ease-in-out}[id^=NotiflixNotifyWrap]>div{pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;width:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;margin:0 0 10px;border-radius:5px;background:#1e1e1e;color:#fff;padding:10px 12px;font-size:14px;line-height:1.4}[id^=NotiflixNotifyWrap]>div:last-child{margin:0}[id^=NotiflixNotifyWrap]>div.nx-with-callback{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-icon{padding:8px;min-height:56px}[id^=NotiflixNotifyWrap]>div.nx-paused{cursor:auto}[id^=NotiflixNotifyWrap]>div.nx-notify-click-to-close{cursor:pointer}[id^=NotiflixNotifyWrap]>div.nx-with-close-button{padding:10px 36px 10px 12px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button{padding:6px 36px 6px 6px}[id^=NotiflixNotifyWrap]>div>span.nx-message{cursor:inherit;font-weight:normal;font-family:inherit!important;word-break:break-all;word-break:break-word}[id^=NotiflixNotifyWrap]>div>span.nx-close-button{cursor:pointer;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:absolute;right:8px;top:0;bottom:0;margin:auto;color:inherit;width:20px;height:20px}[id^=NotiflixNotifyWrap]>div>span.nx-close-button:hover{-webkit-transform:rotate(90deg);transform:rotate(90deg)}[id^=NotiflixNotifyWrap]>div>span.nx-close-button>svg{position:absolute;width:16px;height:16px;right:2px;top:2px}[id^=NotiflixNotifyWrap]>div>.nx-message-icon{position:absolute;width:40px;height:40px;font-size:30px;line-height:40px;text-align:center;left:8px;top:0;bottom:0;margin:auto;border-radius:inherit}[id^=NotiflixNotifyWrap]>div>.nx-message-icon-fa.nx-message-icon-fa-shadow{color:inherit;background:rgba(0,0,0,.15);-webkit-box-shadow:inset 0 0 34px rgba(0,0,0,.2);box-shadow:inset 0 0 34px rgba(0,0,0,.2);text-shadow:0 0 10px rgba(0,0,0,.3)}[id^=NotiflixNotifyWrap]>div>span.nx-with-icon{position:relative;float:left;width:calc(100% - 40px);margin:0 0 0 40px;padding:0 0 0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>.nx-message-icon{left:auto;right:8px}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-with-icon{padding:0 10px 0 0;margin:0 40px 0 0}[id^=NotiflixNotifyWrap]>div.nx-rtl-on>span.nx-close-button{right:auto;left:8px}[id^=NotiflixNotifyWrap]>div.nx-with-icon.nx-with-close-button.nx-rtl-on{padding:6px 6px 6px 36px}[id^=NotiflixNotifyWrap]>div.nx-with-close-button.nx-rtl-on{padding:10px 12px 10px 36px}[id^=NotiflixNotifyOverlay].nx-with-animation,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade{-webkit-animation:notify-animation-fade .3s ease-in-out 0s normal;animation:notify-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes notify-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom{-webkit-animation:notify-animation-zoom .3s ease-in-out 0s normal;animation:notify-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes notify-animation-zoom{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right{-webkit-animation:notify-animation-from-right .3s ease-in-out 0s normal;animation:notify-animation-from-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}@keyframes notify-animation-from-right{0%{right:-300px;opacity:0}50%{right:8px;opacity:1}100%{right:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left{-webkit-animation:notify-animation-from-left .3s ease-in-out 0s normal;animation:notify-animation-from-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}@keyframes notify-animation-from-left{0%{left:-300px;opacity:0}50%{left:8px;opacity:1}100%{left:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top{-webkit-animation:notify-animation-from-top .3s ease-in-out 0s normal;animation:notify-animation-from-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}@keyframes notify-animation-from-top{0%{top:-50px;opacity:0}50%{top:8px;opacity:1}100%{top:0;opacity:1}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom{-webkit-animation:notify-animation-from-bottom .3s ease-in-out 0s normal;animation:notify-animation-from-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}@keyframes notify-animation-from-bottom{0%{bottom:-50px;opacity:0}50%{bottom:8px;opacity:1}100%{bottom:0;opacity:1}}[id^=NotiflixNotifyOverlay].nx-with-animation.nx-remove,[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-fade.nx-remove{opacity:0;-webkit-animation:notify-remove-fade .3s ease-in-out 0s normal;animation:notify-remove-fade .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}@keyframes notify-remove-fade{0%{opacity:1}100%{opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-zoom.nx-remove{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:notify-remove-zoom .3s ease-in-out 0s normal;animation:notify-remove-zoom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes notify-remove-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}100%{-webkit-transform:scale(0);transform:scale(0)}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-top.nx-remove{opacity:0;-webkit-animation:notify-remove-to-top .3s ease-in-out 0s normal;animation:notify-remove-to-top .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}@keyframes notify-remove-to-top{0%{top:0;opacity:1}50%{top:8px;opacity:1}100%{top:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-right.nx-remove{opacity:0;-webkit-animation:notify-remove-to-right .3s ease-in-out 0s normal;animation:notify-remove-to-right .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}@keyframes notify-remove-to-right{0%{right:0;opacity:1}50%{right:8px;opacity:1}100%{right:-300px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-bottom.nx-remove{opacity:0;-webkit-animation:notify-remove-to-bottom .3s ease-in-out 0s normal;animation:notify-remove-to-bottom .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}@keyframes notify-remove-to-bottom{0%{bottom:0;opacity:1}50%{bottom:8px;opacity:1}100%{bottom:-50px;opacity:0}}[id^=NotiflixNotifyWrap]>div.nx-with-animation.nx-from-left.nx-remove{opacity:0;-webkit-animation:notify-remove-to-left .3s ease-in-out 0s normal;animation:notify-remove-to-left .3s ease-in-out 0s normal}@-webkit-keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}@keyframes notify-remove-to-left{0%{left:0;opacity:1}50%{left:8px;opacity:1}100%{left:-300px;opacity:0}}';\n return notifyCSS || null;\n };\n // NOTIFY: Get Internal CSS Codes: end\n\n // NOTIFY: Create: begin\n var notifyCreateCounter = 0;\n var notifyCreate = function (notifyType, message, callbackOrOptions, options) {\n // check doc body\n if (!commonCheckHeadOrBody('body')) { return false; }\n\n // if not initialized pretend like init\n if (!newNotifySettings) {\n Notiflix.Notify.init({});\n }\n\n // create a backup for new settings\n var newNotifySettingsBackup = commonExtendOptions(true, newNotifySettings, {});\n\n // check callbackOrOptions and options: begin\n if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n // new options\n var newOptions = {};\n if (typeof callbackOrOptions === 'object') {\n newOptions = callbackOrOptions;\n } else if (typeof options === 'object') {\n newOptions = options;\n }\n\n // extend new settings with the new options\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newOptions);\n }\n // check callbackOrOptions and options: end\n\n // notify type\n var theType = newNotifySettings[notifyType.toLocaleLowerCase('en')];\n\n // notify counter\n notifyCreateCounter++;\n\n // check the message: begin\n if (typeof message !== 'string') {\n message = 'Notiflix ' + notifyType;\n }\n // check the message: end\n\n // if plainText is true => HTML tags not allowed: begin\n if (newNotifySettings.plainText) {\n message = commonGetPlaintext(message); // message plain text\n }\n // if plainText is true => HTML tags not allowed: end\n\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: begin\n if (!newNotifySettings.plainText && message.length > newNotifySettings.messageMaxLength) {\n // extend settings for error massege\n newNotifySettings = commonExtendOptions(true, newNotifySettings, { closeButton: true, messageMaxLength: 150 });\n // error message\n message = 'Possible HTML Tags Error: The \"plainText\" option is \"false\" and the notification content length is more than the \"messageMaxLength\" option.';\n }\n // if plainText is false but the message length more than messageMaxLength => Possible HTML tags error: end\n\n // check message max length: begin\n if (message.length > newNotifySettings.messageMaxLength) {\n message = message.substring(0, newNotifySettings.messageMaxLength) + '...';\n }\n // check message max length: end\n\n // font awesome icon style: begin\n if (newNotifySettings.fontAwesomeIconStyle === 'shadow') {\n theType.fontAwesomeIconColor = theType.background;\n }\n // font awesome icon style: end\n\n // if cssAnimaion is false => duration: begin\n if (!newNotifySettings.cssAnimation) {\n newNotifySettings.cssAnimationDuration = 0;\n }\n // if cssAnimaion is false => duration: end\n\n // notify wrap: begin\n var ntflxNotifyWrap = window.document.getElementById(notifySettings.wrapID) || window.document.createElement('div');\n ntflxNotifyWrap.id = notifySettings.wrapID;\n ntflxNotifyWrap.style.width = newNotifySettings.width;\n ntflxNotifyWrap.style.zIndex = newNotifySettings.zindex;\n ntflxNotifyWrap.style.opacity = newNotifySettings.opacity;\n\n // wrap position: begin\n if (newNotifySettings.position === 'center-center') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.margin = 'auto';\n ntflxNotifyWrap.classList.add('nx-flex-center-center');\n ntflxNotifyWrap.style.maxHeight = 'calc((100vh - ' + newNotifySettings.distance + ') - ' + newNotifySettings.distance + ')';\n ntflxNotifyWrap.style.display = 'flex';\n ntflxNotifyWrap.style.flexWrap = 'wrap';\n ntflxNotifyWrap.style.flexDirection = 'column';\n ntflxNotifyWrap.style.justifyContent = 'center';\n ntflxNotifyWrap.style.alignItems = 'center';\n ntflxNotifyWrap.style.pointerEvents = 'none';\n } else if (newNotifySettings.position === 'center-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'center-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.margin = 'auto';\n } else if (newNotifySettings.position === 'right-bottom') {\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.left = 'auto';\n } else if (newNotifySettings.position === 'left-top') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.right = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n } else if (newNotifySettings.position === 'left-bottom') {\n ntflxNotifyWrap.style.left = newNotifySettings.distance;\n ntflxNotifyWrap.style.bottom = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = 'auto';\n ntflxNotifyWrap.style.right = 'auto';\n } else { // 'right-top' or else\n ntflxNotifyWrap.style.right = newNotifySettings.distance;\n ntflxNotifyWrap.style.top = newNotifySettings.distance;\n ntflxNotifyWrap.style.left = 'auto';\n ntflxNotifyWrap.style.bottom = 'auto';\n }\n // wrap position: end\n\n // if background overlay is true: begin\n if (newNotifySettings.backOverlay) {\n var ntflxNotifyOverlay = window.document.getElementById(notifySettings.overlayID) || window.document.createElement('div');\n ntflxNotifyOverlay.id = notifySettings.overlayID;\n ntflxNotifyOverlay.style.width = '100%';\n ntflxNotifyOverlay.style.height = '100%';\n ntflxNotifyOverlay.style.position = 'fixed';\n ntflxNotifyOverlay.style.zIndex = newNotifySettings.zindex - 1;\n ntflxNotifyOverlay.style.left = 0;\n ntflxNotifyOverlay.style.top = 0;\n ntflxNotifyOverlay.style.right = 0;\n ntflxNotifyOverlay.style.bottom = 0;\n ntflxNotifyOverlay.style.background = theType.backOverlayColor || newNotifySettings.backOverlayColor;\n ntflxNotifyOverlay.className = newNotifySettings.cssAnimation ? 'nx-with-animation' : '';\n ntflxNotifyOverlay.style.animationDuration = newNotifySettings.cssAnimation ? newNotifySettings.cssAnimationDuration + 'ms' : '';\n\n if (!window.document.getElementById(notifySettings.overlayID)) {\n window.document.body.appendChild(ntflxNotifyOverlay);\n }\n }\n // if background overlay is true: end\n\n if (!window.document.getElementById(notifySettings.wrapID)) {\n window.document.body.appendChild(ntflxNotifyWrap);\n }\n // notify wrap: end\n\n // notify content: begin\n var ntflxNotify = window.document.createElement('div');\n ntflxNotify.id = newNotifySettings.ID + '-' + notifyCreateCounter;\n ntflxNotify.className = newNotifySettings.className + ' ' + theType.childClassName + ' ' + (newNotifySettings.cssAnimation ? 'nx-with-animation' : '') + ' ' + (newNotifySettings.useIcon ? 'nx-with-icon' : '') + ' nx-' + newNotifySettings.cssAnimationStyle + ' ' + (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function' ? 'nx-with-close-button' : '') + ' ' + (typeof callbackOrOptions === 'function' ? 'nx-with-callback' : '') + ' ' + (newNotifySettings.clickToClose ? 'nx-notify-click-to-close' : '');\n ntflxNotify.style.fontSize = newNotifySettings.fontSize;\n ntflxNotify.style.color = theType.textColor;\n ntflxNotify.style.background = theType.background;\n ntflxNotify.style.borderRadius = newNotifySettings.borderRadius;\n ntflxNotify.style.pointerEvents = 'all';\n\n // rtl: begin\n if (newNotifySettings.rtl) {\n ntflxNotify.setAttribute('dir', 'rtl');\n ntflxNotify.classList.add('nx-rtl-on');\n }\n // rtl: end\n\n // font-family: begin\n ntflxNotify.style.fontFamily = '\"' + newNotifySettings.fontFamily + '\", ' + defaultFontFamily;\n // font-family: end\n\n // use css animation: begin\n if (newNotifySettings.cssAnimation) {\n ntflxNotify.style.animationDuration = newNotifySettings.cssAnimationDuration + 'ms';\n }\n // use css animation: end\n\n // close button element: begin\n var closeButtonHTML = '';\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n closeButtonHTML = '';\n }\n // close buttpon element: end\n\n // use icon: begin\n if (newNotifySettings.useIcon) {\n // use font awesome\n if (newNotifySettings.useFontAwesome) {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use notiflix icon\n else {\n var svgIcon = '';\n if (notifyType === typesNotify.Success) { // success\n svgIcon = '';\n } else if (notifyType === typesNotify.Failure) { // failure\n svgIcon = '';\n } else if (notifyType === typesNotify.Warning) { // warning\n svgIcon = '';\n } else if (notifyType === typesNotify.Info) { // info\n svgIcon = '';\n }\n ntflxNotify.innerHTML = svgIcon + '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n }\n // without icon\n else {\n ntflxNotify.innerHTML = '' + message + '' + (newNotifySettings.closeButton ? closeButtonHTML : '');\n }\n // use icon: end\n // notify content: end\n\n // notify append or prepend: begin\n if (newNotifySettings.position === 'left-bottom' || newNotifySettings.position === 'right-bottom') { // the new one will be first\n var notifyWrap = window.document.getElementById(notifySettings.wrapID);\n notifyWrap.insertBefore(ntflxNotify, notifyWrap.firstChild);\n } else {\n window.document.getElementById(notifySettings.wrapID).appendChild(ntflxNotify);\n }\n // notify append or prepend: end\n\n // remove by timeout or click: begin\n var eachNotifyElement = window.document.getElementById(ntflxNotify.id);\n if (eachNotifyElement) {\n // timeout variables\n var timeoutHide;\n var timeoutRemove;\n\n // hide notify elm and hide overlay: begin\n var hideNotifyElementsAndOverlay = function () {\n eachNotifyElement.classList.add('nx-remove');\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && ntflxNotifyWrap.childElementCount <= 0) {\n removeOverlay.classList.add('nx-remove');\n }\n clearTimeout(timeoutHide);\n };\n // hide notify elm and hide overlay: end\n\n // remove notify elm and wrapper: begin\n var removeNotifyElmentsAndWrapper = function () {\n if (eachNotifyElement && eachNotifyElement.parentNode !== null) {\n eachNotifyElement.parentNode.removeChild(eachNotifyElement);\n }\n if (ntflxNotifyWrap.childElementCount <= 0 && ntflxNotifyWrap.parentNode !== null) { // if childs count === 0 remove wrap\n ntflxNotifyWrap.parentNode.removeChild(ntflxNotifyWrap);\n var removeOverlay = window.document.getElementById(notifySettings.overlayID);\n if (removeOverlay && removeOverlay.parentNode !== null) {\n removeOverlay.parentNode.removeChild(removeOverlay);\n }\n }\n clearTimeout(timeoutRemove);\n };\n // remove notify elm and wrapper: end\n\n // if has close button and callbackOrOptions is not a function: begin\n if (newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n var closeButtonElm = window.document.getElementById(ntflxNotify.id).querySelector('span.nx-close-button');\n closeButtonElm.addEventListener('click', function () {\n hideNotifyElementsAndOverlay();\n var clickToCloseTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(clickToCloseTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if has close button and callbackOrOptions is not a function: end\n\n // if callbackOrOptions or click to close: begin\n if (typeof callbackOrOptions === 'function' || newNotifySettings.clickToClose) {\n eachNotifyElement.addEventListener('click', function () {\n if (typeof callbackOrOptions === 'function') {\n callbackOrOptions();\n }\n hideNotifyElementsAndOverlay();\n var callbackTimeout = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n clearTimeout(callbackTimeout);\n }, newNotifySettings.cssAnimationDuration);\n });\n }\n // if callbackOrOptions or click to close: end\n\n // else auto remove: begin\n if (!newNotifySettings.closeButton && typeof callbackOrOptions !== 'function') {\n // auto remove: begin\n var autoRemove = function () {\n timeoutHide = setTimeout(function () {\n hideNotifyElementsAndOverlay();\n }, newNotifySettings.timeout);\n timeoutRemove = setTimeout(function () {\n removeNotifyElmentsAndWrapper();\n }, newNotifySettings.timeout + newNotifySettings.cssAnimationDuration);\n };\n autoRemove();\n // auto remove: end\n\n // pause auto remove: begin\n if (newNotifySettings.pauseOnHover) {\n eachNotifyElement.addEventListener('mouseenter', function () {\n eachNotifyElement.classList.add('nx-paused');\n clearTimeout(timeoutHide);\n clearTimeout(timeoutRemove);\n });\n eachNotifyElement.addEventListener('mouseleave', function () {\n eachNotifyElement.classList.remove('nx-paused');\n autoRemove();\n });\n }\n // pause auto remove: end\n }\n // else auto remove: end\n }\n // remove by timeout or click: end\n\n // notify - show only the last one: begin\n if (newNotifySettings.showOnlyTheLastOne && notifyCreateCounter > 0) {\n var allNotifyElmNotTheLastOne = window.document.querySelectorAll('[id^=' + newNotifySettings.ID + '-]:not([id=' + newNotifySettings.ID + '-' + notifyCreateCounter + '])');\n for (var i = 0; i < allNotifyElmNotTheLastOne.length; i++) {\n var eachNotifyElmNotLastOne = allNotifyElmNotTheLastOne[i];\n if (eachNotifyElmNotLastOne.parentNode !== null) {\n eachNotifyElmNotLastOne.parentNode.removeChild(eachNotifyElmNotLastOne);\n }\n }\n }\n // notify - show only the last one: end\n\n // extend new settings with the backup settings\n newNotifySettings = commonExtendOptions(true, newNotifySettings, newNotifySettingsBackup);\n\n };\n // NOTIFY: Create: end\n\n var Notiflix = {\n Notify: {\n // Init\n init: function (userNotifyOptions) {\n // extend options\n newNotifySettings = commonExtendOptions(true, notifySettings, userNotifyOptions);\n // internal css if exist\n commonSetInternalCSSCodes(notifyGetInternalCSSCodes, 'NotiflixNotifyInternalCSS');\n },\n // Merge First Init\n merge: function (userNotifyExtendOptions) {\n // if initialized already\n if (newNotifySettings) {\n newNotifySettings = commonExtendOptions(true, newNotifySettings, userNotifyExtendOptions);\n }\n // initialize first\n else {\n commonConsoleError('You have to initialize the Notify module before call Merge function.');\n return false;\n }\n },\n // Success\n success: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Success, message, callbackOrOptions, options);\n },\n // Failure\n failure: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Failure, message, callbackOrOptions, options);\n },\n // Warning\n warning: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Warning, message, callbackOrOptions, options);\n },\n // Info\n info: function (message, callbackOrOptions, options) {\n notifyCreate(typesNotify.Info, message, callbackOrOptions, options);\n },\n },\n };\n\n if (typeof window.Notiflix === 'object') {\n return commonExtendOptions(true, window.Notiflix, { Notify: Notiflix.Notify });\n } else {\n return { Notify: Notiflix.Notify };\n }\n\n});","import { fetchBreeds, fetchCatByBreed } from './cat-api';\nimport SlimSelect from 'slim-select'\nimport { Notify } from 'notiflix/build/notiflix-notify-aio';\nimport 'slim-select/dist/slimselect.css';\n\nconst breedSelect = document.querySelector('.breed-select');\nconst catInfo = document.querySelector('.cat-info');\nconst loader = document.querySelector('.loader');\nconst error = document.querySelector('.error');\n\nlet storedBreeds = [];\n\nfetchBreeds()\n .then(data => {\n data.forEach(breed => {\n storedBreeds.push({ text: breed.name, value: breed.id });\n });\n new SlimSelect({\n select: breedSelect,\n data: storedBreeds\n });\n })\n .catch(e => console.log(e));\n\n//console.log(storedBreeds)\n \nbreedSelect.addEventListener('change', onSelectBreed);\n\nfunction onSelectBreed(event) {\n const breedId = event.currentTarget.value;\n fetchCatByBreed(breedId)\n .then(data => {\n const { url, breeds, wikipedia_url } = data[0]; \n catInfo.innerHTML = `\n
\n
\n ${breeds[0].name}
\n
${breeds[0].description}
\n
Temperament: ${breeds[0].temperament}
\n
Link to Wikipedia page\n
`\n })\n .catch(e=> console.log(e));\n};\n\n \n \n\n\n"],"names":["$6b5f202d1456c0af$export$57b7d3a597416aa2","breedId","fetch","then","resp","ok","Error","status","json","$f753f16ae3da2a89$exports","generateID","Math","random","toString","substring","hasClassInTree","element","className","hasClass","e","c","classList","contains","dataset","id","parentByClass","document","parentNode","debounce","func","wait","immediate","timeout","args","context","self","later","apply","callNow","clearTimeout","setTimeout","isEqual","a","b","JSON","stringify","kebabCase","str","result","replace","match","toLowerCase","toUpperCase","Optgroup","constructor","optgroup","this","label","selectAll","undefined","selectAllText","closable","options","o","push","Option","option","value","text","html","selected","display","disabled","mandatory","placeholder","class","style","data","Store","type","selectType","setData","validateDataArray","Array","isArray","dataObj","validateOption","partialToFullData","dataFinal","forEach","optOptions","length","setSelectedBy","getSelected","getData","filter","getDataOptions","addOption","concat","selectedType","selectedValues","firstOption","hasSelected","includes","selectedOptions","getSelectedOptions","opt","getSelectedIDs","selectedIDs","op","getOptgroupByID","getOptionByID","getSelectType","getFirstOption","search","searchFilter","trim","includeOptgroup","dataSearch","Render","settings","store","callbacks","classes","main","values","single","max","valueText","valueDelete","valueOut","deselect","deselectPath","arrow","arrowClose","arrowOpen","content","openAbove","openBelow","searchHighlighter","searching","addable","addablePath","list","optgroupLabel","optgroupLabelText","optgroupActions","optgroupSelectAll","optgroupSelectAllBox","optgroupSelectAllCheck","optgroupClosable","optionDelete","highlighted","open","close","error","hide","mainDiv","contentDiv","updateClassStyles","updateAriaAttributes","contentLocation","appendChild","enable","remove","input","disable","add","path","setAttribute","openPosition","moveContent","selectedId","selectedOption","querySelector","ensureElementInView","removeAttribute","cssText","contentPosition","role","_a","createElement","ariaLabel","tabIndex","onkeydown","key","highlight","click","onclick","isOpen","allowDeselect","isMultiple","stopPropagation","shouldDelete","before","after","beforeChange","setSelected","updateDeselectAll","closeOnSelect","afterChange","deselectSvg","createElementNS","arrowPath","alwaysOpen","svg","mainFocus","eventType","focus","preventScroll","placeholderOption","placeholderText","innerHTML","renderValues","renderMultipleValues","renderSingleValue","selectedSingle","singleValue","innerText","outerHTML","currentNodes","childNodes","maxValuesShown","textContent","maxValuesMessage","removeNodes","i","node","getAttribute","n","hasChildNodes","removeChild","d","shouldAdd","String","keepOrder","multipleValue","insertBefore","insertAdjacentElement","deleteDiv","preventDefault","minSelected","deleteSvg","deletePath","searchDiv","listDiv","putContent","moveContentAbove","moveContentBelow","searchReturn","showSearch","readOnly","searchPlaceholder","oninput","target","ctrlKey","plus","plusPath","inputValue","runFinish","oo","newOption","addableValue","Promise","searchFocus","getOptions","notPlaceholder","notDisabled","notHidden","query","from","querySelectorAll","dir","prevOption","prevParent","parentElement","selectOption","selectParent","renderError","errorDiv","renderSearching","searchingDiv","searchingText","renderOptions","noResults","searchText","optgroupEl","allSelected","o1","selectAllSvg","selectAllBox","selectAllCheck","addEventListener","currentSelected","newSelected","s","map","o5","optgroupClosableSvg","optgroupClosableArrow","some","o2","optionEl","split","dataClass","searchHighlight","highlightText","showOptionTooltips","hideSelected","currentTarget","elementID","maxSelected","shouldUpdate","destroy","completedString","regex","RegExp","matchStartPosition","index","matchEndPosition","originalTextFoundByRegex","mainHeight","offsetHeight","contentHeight","containerRect","getBoundingClientRect","margin","top","height","window","scrollY","left","scrollX","width","container","cTop","scrollTop","offsetTop","cBottom","clientHeight","eTop","eBottom","mainRect","innerHeight","hasSelectedItems","deselectButton","hideClass","Select","select","listen","observer","valueChange","bind","passive","MutationObserver","observeCall","changeListen","hideUI","showUI","observe","subtree","childList","attributes","disconnect","ev","onValueChange","getSelectedValues","mutations","classChanged","disabledChanged","optgroupOptionChanged","m","attributeName","nodeName","onClassChange","onDisabledChange","onOptionsChange","nodes","getDataFromOptgroup","getDataFromOption","selectall","selectalltext","optgroupOptions","updateSelect","updateOptions","createOptgroup","createOption","dispatchEvent","Event","info","optionClass","Object","keys","removeEventListener","Settings","isFullOpen","intervalMove","body","timeoutDelay","SlimSelect","config","events","indexOf","beforeOpen","afterOpen","beforeClose","afterClose","windowResize","render","windowScroll","documentClick","windowVisibilityChange","hidden","selectEl","tagName","ssid","debounceEvents","hasOwnProperty","multiple","renderCallbacks","selectAriaLabel","selectAriaLabelledBy","nextSibling","slim","err","dataClean","runAfterChange","clearInterval","setInterval","searchResp","catch","message","factory","root","$parcel$global","$db8fed00f4c020c9$exports","newNotifySettings","typesNotify","notifySettings","wrapID","overlayID","position","distance","opacity","borderRadius","rtl","messageMaxLength","backOverlay","backOverlayColor","plainText","showOnlyTheLastOne","clickToClose","pauseOnHover","ID","zindex","fontFamily","fontSize","cssAnimation","cssAnimationDuration","cssAnimationStyle","closeButton","useIcon","useFontAwesome","fontAwesomeIconStyle","fontAwesomeIconSize","success","background","textColor","childClassName","notiflixIconColor","fontAwesomeClassName","fontAwesomeIconColor","failure","warning","commonConsoleError","console","commonCheckHeadOrBody","commonExtendOptions","extended","deep","prototype","call","arguments","merge","obj","prop","notifyGetInternalCSSCodes","notifyCreateCounter","notifyCreate","notifyType","callbackOrOptions","Notiflix","Notify","init","newNotifySettingsBackup","newOptions","htmlPool","theType","toLocaleLowerCase","ntflxNotifyWrap","getElementById","zIndex","right","bottom","maxHeight","flexWrap","flexDirection","justifyContent","alignItems","pointerEvents","ntflxNotifyOverlay","animationDuration","ntflxNotify","color","closeButtonHTML","svgIcon","notifyWrap","firstChild","eachNotifyElement","timeoutHide","timeoutRemove","hideNotifyElementsAndOverlay","removeOverlay","childElementCount","removeNotifyElmentsAndWrapper","clickToCloseTimeout","callbackTimeout","autoRemove","allNotifyElmNotTheLastOne","eachNotifyElmNotLastOne","userNotifyOptions","getInternalCSSCodes","styleElementId","internalCSS","head","commonSetInternalCSSCodes","userNotifyExtendOptions","define","amd","$1f0dc3b9307be026$var$breedSelect","$1f0dc3b9307be026$var$catInfo","$1f0dc3b9307be026$var$storedBreeds","statusText","breed","name","$parcel$interopDefault","log","event","url","breeds","wikipedia_url","description","temperament"],"version":3,"file":"index.c53cc19b.js.map"}
\ No newline at end of file
diff --git a/index.html b/index.html
index d2c9980..0a72ad1 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-Cat-search Loading data, please wait...
Oops! Something went wrong! Try reloading the page!
\ No newline at end of file
+Cat-search Loading data, please wait...
Oops! Something went wrong! Try reloading the page!
\ No newline at end of file