From 8adf5453e09a9241a161c7837711af7dc8b073dd Mon Sep 17 00:00:00 2001 From: Mohammad Baghaei Date: Wed, 5 Feb 2025 08:23:53 +0330 Subject: [PATCH 1/6] update dependencies, fix sass build deprated warnings, upgrade to modern javascript and sass syntax, optimize bundle size and overall performance --- dist/css/nice-select2.css | 2 +- dist/css/nice-select2.css.map | 1 - dist/css/style.css | 2 +- dist/css/style.css.map | 1 - dist/js/nice-select2.js | 2 +- dist/js/nice-select2.js.map | 1 - dist/js/style.js.map | 1 - docs/dist/css/nice-select2.css | 2 +- docs/dist/css/style.css | 2 +- docs/dist/js/nice-select2.js | 3 +- docs/dist/js/nice-select2.js.map | 1 - docs/dist/js/style.js | 3 +- docs/dist/js/style.js.map | 1 - docs/index.html | 180 +- package-lock.json | 3864 +++++++++++++----------------- package.json | 12 +- src/js/nice-select2.js | 969 ++++---- src/scss/_prism.scss | 68 +- src/scss/nice-select2.scss | 89 +- src/scss/style.scss | 71 +- 20 files changed, 2387 insertions(+), 2888 deletions(-) delete mode 100644 dist/css/nice-select2.css.map delete mode 100644 dist/css/style.css.map delete mode 100644 dist/js/nice-select2.js.map delete mode 100644 dist/js/style.js.map delete mode 100644 docs/dist/js/nice-select2.js.map delete mode 100644 docs/dist/js/style.js.map diff --git a/dist/css/nice-select2.css b/dist/css/nice-select2.css index f77d1a0..dfdb552 100644 --- a/dist/css/nice-select2.css +++ b/dist/css/nice-select2.css @@ -1 +1 @@ -.nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:hsl(0,0%,85.9803921569%)}.nice-select:active,.nice-select.open,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:rgb(237.1,237.1,237.1);color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .extra{float:right}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} +.nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:hsl(0,0%,85.9803921569%)}.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open{border-color:#999}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:rgb(237.1,237.1,237.1);color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .extra{float:right}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} diff --git a/dist/css/nice-select2.css.map b/dist/css/nice-select2.css.map deleted file mode 100644 index ce475b7..0000000 --- a/dist/css/nice-select2.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"css/nice-select2.css","mappings":";;;AAkBA;EACE;EACA;EACA,kBAhBoB;EAiBpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eA3BU;EA4BV;EACA,YAzBa;EA0Bb;EACA;EACA,kBA1BiB;EA2BjB;EACA;EACA;EACA;EACA;EACA;EACA;AAjBF;AAkBE;EACE;AAhBJ;AAkBE;EACE,kBAnCG;AAmBP;AAmBE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAjBJ;AAsBI;EACE;AApBN;AAsBI;EACE;EACA;EACA;AApBN;AAuBE;EACE;EACA,WApEG;EAqEH;AArBJ;AAsBI;EACE;AApBN;AAyBE;EACE;AAvBJ;AAwBI;EACE;EACA;AAtBN;AAyBE;EACE;AAvBJ;AAwBI;EACE;EACA;AAtBN;AAyBE;EACE,eAnGc;EAoGd,YAhGiB;EAiGjB;AAvBJ;AAwBI;EACE;EACA;AAtBN;AAwBI;EACE;EACA;AAtBN;AA0BE;EACE;EACA;EACA,kBAjHkB;EAkHlB;EAEA;EACA;EACA;EAAW;EACX;EACA;EACA;EACA;EACA;AAxBJ;AA4BE;EACE,kBAhIkB;EAiIlB;EACA;EACA;EACA;EACA;AA1BJ;AA4BI;EACE;AA1BN;AA6BE;EACE;EACA;EACA;EACA;EACA;EACA,kBA9Ie;EA+If;EACA;EACA;AA3BJ;AA4BI;EACE,yBA9IS;AAoHf;AA4BI;EACE;AA1BN;AA4BI;EACE;EACA,WAvJC;EAwJD;AA1BN;AA8BE;EACE;AA5BJ;AA+BE;EACE;AA7BJ;;AAmCE;EACE;AAhCJ;AAmCI;EACE;AAjCN;;AAuCA;EACE;AApCF;;AA2CE;EACE;EACA;EACA;EACA;EACA;AAxCJ;AA0CI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAxCN;AA2CI;EACE;EACA;EACA;AAzCN;AA6CE;EACE;EACA;EACA;EACA;EACA;AA3CJ;AA8CE;EACE;EACA;EACA;EACA;EACA,WAlOQ;EAmOR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eApPQ;AAwMZ,C","sources":["webpack://NiceSelect/./src/scss/nice-select2.scss"],"sourcesContent":["@use 'sass:math';\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px !default;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 !default;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n// Style the dropdown\r\n.nice-select {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n border: solid 1px $gray_light;\r\n box-sizing: border-box;\r\n clear: both;\r\n cursor: pointer;\r\n display: block;\r\n float: left;\r\n font-family: inherit;\r\n font-size: $font_size;\r\n font-weight: normal;\r\n height: $input_height;\r\n line-height: $input_height - 2;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 12;\r\n position: relative;\r\n text-align: left !important;\r\n transition: all 0.2s ease-in-out;\r\n user-select: none;\r\n white-space: nowrap;\r\n width: auto;\r\n &:hover {\r\n border-color: darken($gray_light, 5%);\r\n }\r\n &:active, &:focus {\r\n border-color: $primary_light;\r\n }\r\n // Arrow\r\n &:after { \r\n border-bottom: 2px solid $arrow_color;\r\n border-right: 2px solid $arrow_color;\r\n content: '';\r\n display: block; \r\n height: 5px;\r\n margin-top: -4px;\r\n pointer-events: none;\r\n position: absolute; \r\n right: 12px; \r\n top: 50%; \r\n transform-origin: 66% 66%;\r\n transform: rotate(45deg);\r\n transition: all 0.15s ease-in-out;\r\n width: 5px;\r\n }\r\n \r\n &.open {\r\n @extend :active;\r\n &:after {\r\n transform: rotate(-135deg);\r\n }\r\n .nice-select-dropdown {\r\n opacity: 1;\r\n pointer-events: auto;\r\n transform: scale(1) translateY(0);\r\n }\r\n }\r\n &.disabled {\r\n border-color: lighten($gray_light, 2%);\r\n color: $gray;\r\n pointer-events: none;\r\n &:after { \r\n border-color: lighten($arrow_color, 20%);\r\n }\r\n }\r\n \r\n // Modifiers\r\n &.wide {\r\n width: 100%;\r\n .nice-select-dropdown {\r\n left: 0 !important;\r\n right: 0 !important;\r\n }\r\n }\r\n &.right {\r\n float: right;\r\n .nice-select-dropdown {\r\n left: auto;\r\n right: 0;\r\n }\r\n }\r\n &.small {\r\n font-size: $font_size_small;\r\n height: $input_height_small;\r\n line-height: $input_height_small - 2;\r\n &:after { \r\n height: 4px;\r\n width: 4px;\r\n }\r\n .option {\r\n line-height: $input_height_small - 2;\r\n min-height: $input_height_small - 2;\r\n }\r\n }\r\n\r\n .nice-select-dropdown{\r\n margin-top: 4px;\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n box-shadow: 0 0 0 1px rgba($gray_dark, .11);\r\n\r\n pointer-events: none;\r\n position: absolute;\r\n top: 100%; left: 0;\r\n transform-origin: 50% 0;\r\n transform: scale(.75) translateY(- math.div(-$input-height, 2));\r\n transition: all .2s cubic-bezier(0.5, 0, 0, 1.25), opacity .15s ease-out;\r\n z-index: 9;\r\n opacity: 0;\r\n }\r\n\r\n // List and options\r\n .list {\r\n border-radius: $input_border_radius;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n padding: 0;\r\n max-height: 210px;\r\n overflow-y: auto;\r\n\r\n &:hover .option:not(:hover) {\r\n background-color: transparent !important;\r\n }\r\n }\r\n .option {\r\n cursor: pointer;\r\n font-weight: 400;\r\n line-height: $input_height + 2;\r\n list-style: none;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 11;\r\n text-align: left;\r\n transition: all 0.2s;\r\n &:hover, &.focus, &.selected.focus { \r\n background-color: $gray_lighter;\r\n }\r\n &.selected { \r\n font-weight: bold;\r\n }\r\n &.disabled {\r\n background-color: transparent;\r\n color: $gray;\r\n cursor: default;\r\n }\r\n }\r\n\r\n .extra {\r\n float: right;\r\n }\r\n \r\n .optgroup{\r\n font-weight: bold;\r\n }\r\n}\r\n\r\n// Use display instead of opacity for IE <= 10\r\n.no-csspointerevents .nice-select {\r\n .nice-select-dropdown {\r\n display: none;\r\n }\r\n &.open {\r\n .nice-select-dropdown {\r\n display: block;\r\n }\r\n }\r\n}\r\n\r\n\r\n.nice-select .list::-webkit-scrollbar {\r\n width: 0\r\n}\r\n\r\n\r\n\r\n\r\n.nice-select{\r\n .has-multiple {\r\n white-space: inherit;\r\n height: auto;\r\n padding: 7px 12px;\r\n min-height: 36px;\r\n line-height: 22px;\r\n\r\n span.current {\r\n border: 1px solid #CCC;\r\n background: #EEE;\r\n padding: 0 10px;\r\n border-radius: 3px;\r\n display: inline-block;\r\n line-height: 24px;\r\n font-size: 14px;\r\n margin-bottom: 3px;\r\n margin-right: 3px\r\n }\r\n\r\n .multiple-options {\r\n display: block;\r\n line-height: 24px;\r\n padding: 0\r\n }\r\n }\r\n\r\n .nice-select-search-box {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding: 5px;\r\n pointer-events: none;\r\n border-radius: 5px 5px 0 0;\r\n }\r\n\r\n .nice-select-search {\r\n box-sizing: border-box;\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n border-radius: 3px;\r\n color: $gray_dark;\r\n display: inline-block;\r\n vertical-align: middle;\r\n padding: 7px 12px;\r\n margin: 0 10px 0 0;\r\n width: 100%;\r\n min-height: 36px;\r\n line-height: 22px;\r\n height: auto;\r\n outline: 0!important;\r\n font-size: $font_size;\r\n }\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/css/style.css b/dist/css/style.css index a05685a..a927174 100644 --- a/dist/css/style.css +++ b/dist/css/style.css @@ -1 +1 @@ -code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:rgb(242.94,244.28,246.96)}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:rgb(65.0689655172,149.9793103448,250.5310344828)}.button:active{background-color:rgb(45.1379310345,138.9586206897,250.0620689655)}.button.light{background-color:#fff;border:1px solid #e8e8e8;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:hsl(0,0%,85.9803921569%)}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} +code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:rgb(242.94,244.28,246.96)}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:rgb(65.0689655172,149.9793103448,250.5310344828)}.button:active{background-color:rgb(45.1379310345,138.9586206897,250.0620689655)}.button.light{background-color:#fff;border:1px solid #e0e7ee;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:rgb(207.53125,218.25,228.96875)}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} diff --git a/dist/css/style.css.map b/dist/css/style.css.map deleted file mode 100644 index a22ea4a..0000000 --- a/dist/css/style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"css/style.css","mappings":";;;AAAA;;EAEC;EACA,cCHW;EDIX;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACA;ACCF;;ADEA;AACA;EACC;EACA;EACA;ACCD;;ADEA;;EAEC,mBCxBc;AAyBf;;ADEA;AACA;EACC;ACCD;;ADEA;;;;EAIC,cCtCM;AAuCP;;ADEA;EACC;ACCD;;ADEA;EACC;ACCD;;ADEA;;;;;;;EAOC;ACCD;;ADEA;;;;;;EAMC;ACCD;;ADEA;;;;;EAKC;EACA;ACCD;;ADEA;;;EAGC,cC7EM;AA8EP;;ADEA;EACC;ACCD;;ADEA;;;EAGC;ACCD;;ADEA;;EAEC;ACCD;;ADCA;EACC;ACED;;ADCA;EACC;ACED;;AApEA;EACE;EACA;EACA,cAxCU;EAyCV;EACA;EACA;EACA;EACA;EACA;AAuEF;;AApEA;EACE;EACA;AAuEF;;AApEA;EACE;EACA;EACA;EACA;AAuEF;;AApEA;EACE;EACA;EACA;EACA;AAuEF;;AApEA;EACE;EACA;EACA;EACA;AAuEF;;AApEA;EACE;EACA;AAuEF;;AApEA;EACE,cA7EK;EA8EL;EACA;EACA;EACA;EACA;AAuEF;AAtEE;EACE;AAwEJ;;AApEA;EACE;AAuEF;;AApEA;EACE;EACA;AAuEF;;AApEA;EAEE,yBApGa;EAqGb;EACA;EACA;AAsEF;AApJE;EACE;EACA;AAsJJ;AApJE;EACE;AAsJJ;;AA1EA;EACE,cA7GK;EA8GL;EACA;EACA;EACA;AA6EF;AA5EE;EACE;AA8EJ;;AA1EA;EACE;EACA,yBAtHK;EAuHL,kBA9GoB;EA+GpB;EACA;EACA;EACA;EACA;EACA;EACA,YApHa;EAqHb,iBArHa;EAsHb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA6EF;AA5EE;EACE;AA8EJ;AA5EE;EACE;AA8EJ;AA5EE;EACE;EACA;EACA,cAjJG;EAkJH;EACA;AA8EJ;AA7EI;EACE;AA+EN;AA7EI;EACE,qBAvJO;AAsOb;AA5EE;EAvCF;IAwCI;EA+EF;EA9EE;IACE;EAgFJ;AACF;;AA3EA;EACE;EACA;AA8EF;AA7EE;EAHF;IAII;EAgFF;AACF;AA/EE;EACE,cA9KG;EA+KH;EACA;AAiFJ;;AA7EA;EACE;AAgFF;AA/EE;EACE;AAiFJ;;AA7EA;EACE,cA5LK;EA6LL;EACA,eApLgB;EAqLhB;AAgFF,C","sources":["webpack://NiceSelect/./src/scss/_prism.scss","webpack://NiceSelect/./src/scss/style.scss"],"sourcesContent":["code[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n\tborder-radius: 2px;\r\n\tcolor: $gray_dark;\r\n\thyphens: none;\r\n\tline-height: 1.5;\r\n\ttab-size: 4;\r\n\ttext-align: left;\r\n\twhite-space: pre;\r\n\tword-break: normal;\r\n\tword-spacing: normal;\r\n\tword-wrap: normal;\r\n direction: ltr;\r\n font-family: Inconsolata, monospace;\r\n font-size: 13px;\t\r\n letter-spacing: 0;\r\n}\r\n\r\n/* Code blocks */\r\npre[class*=\"language-\"] {\r\n\tpadding: 18px 24px;\r\n\tmargin: 0 0 24px;\r\n\toverflow: auto;\r\n}\r\n\r\n:not(pre) > code[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n\tbackground: $gray_lighter;\r\n}\r\n\r\n/* Inline code */\r\n:not(pre) > code[class*=\"language-\"] {\r\n\tpadding: 0 2px 1px;\r\n}\r\n\r\n.token.comment,\r\n.token.prolog,\r\n.token.doctype,\r\n.token.cdata {\r\n\tcolor: $gray;\r\n}\r\n\r\n.token.punctuation {\r\n\tcolor: #999;\r\n}\r\n\r\n.namespace {\r\n\topacity: .7;\r\n}\r\n\r\n.token.property,\r\n.token.tag,\r\n.token.boolean,\r\n.token.number,\r\n.token.constant,\r\n.token.symbol,\r\n.token.deleted {\r\n\tcolor: #EC4444;\r\n}\r\n\r\n.token.selector,\r\n.token.attr-name,\r\n.token.string,\r\n.token.char,\r\n.token.builtin,\r\n.token.inserted {\r\n\tcolor: #4ABF60;\r\n}\r\n\r\n.token.operator,\r\n.token.entity,\r\n.token.url,\r\n.language-css .token.string,\r\n.style .token.string {\r\n\tcolor: #a67f59;\r\n\tbackground: hsla(0, 0%, 100%, .5);\r\n}\r\n\r\n.token.atrule,\r\n.token.attr-value,\r\n.token.keyword {\r\n\tcolor: $blue;\r\n}\r\n\r\n.token.function {\r\n\tcolor: #DD4A68;\r\n}\r\n\r\n.token.regex,\r\n.token.important,\r\n.token.variable {\r\n\tcolor: #e90;\r\n}\r\n\r\n.token.important,\r\n.token.bold {\r\n\tfont-weight: bold;\r\n}\r\n.token.italic {\r\n\tfont-style: italic;\r\n}\r\n\r\n.token.entity {\r\n\tcursor: help;\r\n}\r\n","$gray_dark: #445870;\r\n$gray: #90a1b5;\r\n$gray_light: #e0e7ee;\r\n$gray_lighter: #f6f7f9;\r\n$blue: #55a1fb;\r\n$blue_light: #88bfff;\r\n$primary: $blue;\r\n$primary_light: $blue_light;\r\n\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 ;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n@import \"./prism\";\r\n\r\n@mixin clearfix() {\r\n &:before, &:after {\r\n content: \"\";\r\n display: table;\r\n }\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\nbody {\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n color: $gray_dark;\r\n font-family: 'Work Sans', sans-serif;\r\n font-size: 14px;\r\n font-weight: normal;\r\n letter-spacing: -0.25px;\r\n margin: 0;\r\n padding: 0 18px;\r\n}\r\n\r\np {\r\n line-height: 1.6;\r\n margin: 0 0 1.6em;\r\n}\r\n\r\nh1 {\r\n font-size: 36px;\r\n font-weight: 300;\r\n letter-spacing: -2px;\r\n margin: 0 0 24px;\r\n}\r\n\r\nh2 {\r\n font-size: 22px;\r\n font-weight: 700;\r\n margin: 0 0 12px;\r\n padding-top: 48px;\r\n}\r\n\r\nh3 {\r\n font-size: 18px; \r\n font-weight: 400;\r\n margin: 0 0 12px;\r\n padding-top: 12px;\r\n}\r\n\r\nul {\r\n margin: 0;\r\n padding-left: 16px;\r\n}\r\n\r\na:not(.button) {\r\n color: $primary;\r\n outline: none;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n border-bottom: 1px solid transparent;\r\n &:hover, &:focus {\r\n border-bottom: 1px solid $primary_light;\r\n }\r\n}\r\n\r\n::selection {\r\n background: darken($gray_lighter, 1%);\r\n}\r\n\r\n.container {\r\n margin: 96px auto 60px;\r\n max-width: 40em;\r\n}\r\n\r\n.box {\r\n @include clearfix;\r\n background-color: $gray_lighter;\r\n border-radius: 2px;\r\n margin-bottom: 30px;\r\n padding: 24px 30px;\r\n}\r\n\r\nlabel {\r\n color: $gray;\r\n font-size: 11px;\r\n margin: 0 2px 4px;\r\n text-transform: uppercase;\r\n float: left;\r\n &.right {\r\n float: right;\r\n }\r\n}\r\n\r\n.button {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: $primary;\r\n border-radius: $input_border_radius;\r\n border: none;\r\n box-sizing: border-box;\r\n color: #fff;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-weight: 600;\r\n height: $input_height;\r\n line-height: $input_height;\r\n outline: none;\r\n padding: 0 24px;\r\n text-align: center;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n white-space: nowrap;\r\n width: auto;\r\n &:hover, &:focus {\r\n background-color: darken($primary, 4%);\r\n }\r\n &:active {\r\n background-color: darken($primary, 8%);\r\n }\r\n &.light {\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n color: $primary;\r\n line-height: $input_height - 2;\r\n margin-left: 24px;\r\n &:hover {\r\n border-color: darken($gray_light, 5%);\r\n }\r\n &:active, &:focus {\r\n border-color: $primary_light;\r\n }\r\n }\r\n @media screen and (max-width: 360px) {\r\n width: 100%;\r\n &.light {\r\n margin: 18px 0 0;\r\n }\r\n }\r\n}\r\n\r\n\r\n.header {\r\n text-align: center;\t\r\n margin-bottom: 60px;\r\n @media screen and (min-width: 600px) {\r\n padding: 0 18px;\r\n }\r\n p {\r\n color: $gray;\r\n font-size: 18px;\r\n margin-bottom: 36px;\r\n }\r\n}\r\n\r\n.footer {\r\n text-align: center;\r\n p {\r\n margin-bottom: 90px;\r\n }\r\n}\r\n\r\n.credit {\r\n color: $gray;\r\n clear: both;\r\n font-size: $font_size_small;\r\n margin-top: 90px;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/nice-select2.js b/dist/js/nice-select2.js index ba0393d..6e6d7da 100644 --- a/dist/js/nice-select2.js +++ b/dist/js/nice-select2.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,i)=>{for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function i(e){const t=new MouseEvent("click",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}function s(e){const t=new Event("change",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}function o(e){const t=new FocusEvent("focusin",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}function n(e){const t=new FocusEvent("focusout",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}function l(e){const t=new UIEvent("modalclose",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}function d(e,t){"invalid"==t?(c(this.dropdown,"invalid"),p(this.dropdown,"valid")):(c(this.dropdown,"valid"),p(this.dropdown,"invalid"))}function r(e,t){return null!=e[t]?e[t]:e.getAttribute(t)}function a(e,t){return!!e&&e.classList.contains(t)}function c(e,t){if(e)return e.classList.add(t)}function p(e,t){if(e)return e.classList.remove(t)}e.r(t),e.d(t,{bind:()=>f,default:()=>u});var h={data:null,searchable:!1,showSelectedItems:!1};function u(e,t){this.el=e,this.config=Object.assign({},h,t||{}),this.data=this.config.data,this.selectedOptions=[],this.placeholder=r(this.el,"placeholder")||this.config.placeholder||"Select an option",this.searchtext=r(this.el,"searchtext")||this.config.searchtext||"Search",this.selectedtext=r(this.el,"selectedtext")||this.config.selectedtext||"selected",this.dropdown=null,this.multiple=r(this.el,"multiple"),this.disabled=r(this.el,"disabled"),this.create()}function f(e,t){return new u(e,t)}return u.prototype.create=function(){this.el.style.opacity="0",this.el.style.width="0",this.el.style.padding="0",this.el.style.height="0",this.el.style.fontSize="0",this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()},u.prototype.processData=function(e){var t=[];e.forEach((e=>{t.push({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"==e.value}})})),this.options=t},u.prototype.extractData=function(){var e=this.el.querySelectorAll("option,optgroup"),t=[],i=[],s=[];e.forEach((e=>{if("OPTGROUP"==e.tagName)var s={text:e.label,value:"optgroup"};else{let t=e.innerText;null!=e.dataset.display&&(t=e.dataset.display),s={text:t,value:e.value,extra:e.dataset.extra,selected:null!=e.getAttribute("selected"),disabled:null!=e.getAttribute("disabled")}}var o={selected:null!=e.getAttribute("selected"),disabled:null!=e.getAttribute("disabled"),optgroup:"OPTGROUP"==e.tagName};t.push(s),i.push({data:s,attributes:o})})),this.data=t,this.options=i,this.options.forEach((e=>{e.attributes.selected&&s.push(e)})),this.selectedOptions=s},u.prototype.renderDropdown=function(){var e=["nice-select",r(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""];let t='";var i=`
`;i+=``,i+='
',i+=`${this.config.searchable?t:""}`,i+='
    ',i+="
    ",i+="
    ",this.el.insertAdjacentHTML("afterend",i),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()},u.prototype._renderSelectedItems=function(){if(this.multiple){var e="";this.config.showSelectedItems||this.config.showSelectedItems||"auto"==window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((function(t){e+=`${t.data.text}`})),e=""==e?this.placeholder:e):e=this.selectedOptions.length+" "+this.selectedtext,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{var t=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=t}},u.prototype._renderItems=function(){var e=this.dropdown.querySelector("ul");this.options.forEach((t=>{e.appendChild(this._renderItem(t))}))},u.prototype._renderItem=function(e){var t=document.createElement("li");if(t.innerHTML=e.data.text,null!=e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)c(t,"optgroup");else{t.setAttribute("data-value",e.data.value);var i=["option",e.attributes.selected?"selected":null,e.attributes.disabled?"disabled":null];t.addEventListener("click",this._onItemClicked.bind(this,e)),t.classList.add(...i)}return e.element=t,t},u.prototype._renderItemExtra=function(e){var t=document.createElement("span");return t.innerHTML=e,c(t,"extra"),t},u.prototype.update=function(){if(this.extractData(),this.dropdown){var e=a(this.dropdown,"open");this.dropdown.parentNode.removeChild(this.dropdown),this.create(),e&&i(this.dropdown)}r(this.el,"disabled")?this.disable():this.enable()},u.prototype.disable=function(){this.disabled||(this.disabled=!0,c(this.dropdown,"disabled"))},u.prototype.enable=function(){this.disabled&&(this.disabled=!1,p(this.dropdown,"disabled"))},u.prototype.clear=function(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),s(this.el)},u.prototype.destroy=function(){this.dropdown&&(this.dropdown.parentNode.removeChild(this.dropdown),this.el.style.display="")},u.prototype.bindEvent=function(){this.dropdown.addEventListener("click",this._onClicked.bind(this)),this.dropdown.addEventListener("keydown",this._onKeyPressed.bind(this)),this.dropdown.addEventListener("focusin",o.bind(this,this.el)),this.dropdown.addEventListener("focusout",n.bind(this,this.el)),this.el.addEventListener("invalid",d.bind(this,this.el,"invalid")),window.addEventListener("click",this._onClickedOutside.bind(this)),this.config.searchable&&this._bindSearchEvent()},u.prototype._bindSearchEvent=function(){var e=this.dropdown.querySelector(".nice-select-search");e&&e.addEventListener("click",(function(e){return e.stopPropagation(),!1})),e.addEventListener("input",this._onSearchChanged.bind(this))},u.prototype._onClicked=function(e){if(e.preventDefault(),a(this.dropdown,"open")?this.multiple?e.target==this.dropdown.querySelector(".multiple-options")&&(p(this.dropdown,"open"),l(this.el)):(p(this.dropdown,"open"),l(this.el)):(c(this.dropdown,"open"),function(e){const t=new UIEvent("modalopen",{bubbles:!0,cancelable:!1});e.dispatchEvent(t)}(this.el)),a(this.dropdown,"open")){var t=this.dropdown.querySelector(".nice-select-search");t&&(t.value="",t.focus());var i=this.dropdown.querySelector(".focus");p(i,"focus"),c(i=this.dropdown.querySelector(".selected"),"focus"),this.dropdown.querySelectorAll("ul li").forEach((function(e){e.style.display=""}))}else this.dropdown.focus()},u.prototype._onItemClicked=function(e,t){var i=t.target;if(!a(i,"disabled")){if(this.multiple)if(a(i,"selected")){p(i,"selected"),this.selectedOptions.splice(this.selectedOptions.indexOf(e),1);var s=this.el.querySelector(`option[value="${i.dataset.value}"]`);s.removeAttribute("selected"),s.selected=!1}else c(i,"selected"),this.selectedOptions.push(e);else this.options.forEach((function(e){p(e.element,"selected")})),this.selectedOptions.forEach((function(e){p(e.element,"selected")})),c(i,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}},u.prototype.setValue=function(e){var t,i=this.el,s=!0;if(i.multiple)for(var o=0;o-1?n.value:null:e,n.value!=t||n.disabled?(n.removeAttribute("selected"),delete n.selected):(s&&(i.value=t,s=!1),n.setAttribute("selected",!0),n.selected=!0);s&&!i.multiple&&(i.options[0].setAttribute("selected",!0),i.options[0].selected=!0,i.value=i.options[0].value),this.update()},u.prototype.getValue=function(){var e=this.el;if(!e.multiple)return e.value;var t=[];for(var i of e.options)i.selected&&t.push(i.value);return t},u.prototype.updateSelectValue=function(){if(this.multiple){var e=this.el;this.selectedOptions.forEach((function(t){var i=e.querySelector(`option[value="${t.data.value}"]`);i?i.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);s(this.el)},u.prototype.resetSelectValue=function(){if(this.multiple){var e=this.el;this.selectedOptions.forEach((function(t){var i=e.querySelector(`option[value="${t.data.value}"]`);i&&(i.removeAttribute("selected"),delete i.selected)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);s(this.el)},u.prototype._onClickedOutside=function(e){this.dropdown.contains(e.target)||(p(this.dropdown,"open"),l(this.el))},u.prototype._onKeyPressed=function(e){var t=this.dropdown.querySelector(".focus"),s=a(this.dropdown,"open");if(13==e.keyCode)i(s?t:this.dropdown);else if(40==e.keyCode){if(s){var o=this._findNext(t);o&&(p(this.dropdown.querySelector(".focus"),"focus"),c(o,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38==e.keyCode){if(s){var n=this._findPrev(t);n&&(p(this.dropdown.querySelector(".focus"),"focus"),c(n,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27==e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1},u.prototype._findNext=function(e){for(e=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");e;){if(!a(e,"disabled")&&"none"!=e.style.display)return e;e=e.nextElementSibling}return null},u.prototype._findPrev=function(e){for(e=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");e;){if(!a(e,"disabled")&&"none"!=e.style.display)return e;e=e.previousElementSibling}return null},u.prototype._onSearchChanged=function(e){var t=a(this.dropdown,"open"),i=e.target.value;if(""==(i=i.toLowerCase()))this.options.forEach((function(e){e.element.style.display=""}));else if(t){var s=new RegExp(i);this.options.forEach((function(e){var t=e.data.text.toLowerCase(),i=s.test(t);e.element.style.display=i?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((function(e){p(e,"focus")})),c(this._findNext(null),"focus")},t})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
    \n \n
    \n ${t}\n
      \n
      \n
      \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); \ No newline at end of file diff --git a/dist/js/nice-select2.js.map b/dist/js/nice-select2.js.map deleted file mode 100644 index a108771..0000000 --- a/dist/js/nice-select2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/nice-select2.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVA;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;ACNmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA,0CAA0C,+BAA+B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,gBAAgB;AACjG;AACA;AACA,4BAA4B,kBAAkB,cAAc,yBAAyB;AACrF,8BAA8B,+CAA+C;AAC7E;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uBAAuB;AAChF;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACO;AACP;AACA","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/./src/scss/nice-select2.scss?618b","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// extracted by mini-css-extract-plugin\nexport {};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\n// utility functions\r\nfunction triggerClick(el) {\r\n var event = document.createEvent(\"MouseEvents\");\r\n event.initEvent(\"click\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerChange(el) {\r\n var event = document.createEvent(\"HTMLEvents\");\r\n event.initEvent(\"change\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerFocusIn(el) {\r\n var event = document.createEvent(\"FocusEvent\");\r\n event.initEvent(\"focusin\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerFocusOut(el) {\r\n var event = document.createEvent(\"FocusEvent\");\r\n event.initEvent(\"focusout\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerModalOpen(el) {\r\n var event = document.createEvent(\"UIEvent\");\r\n event.initEvent(\"modalopen\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerModalClose(el) {\r\n var event = document.createEvent(\"UIEvent\");\r\n event.initEvent(\"modalclose\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerValidationMessage(el, type) {\r\n if(type == 'invalid'){\r\n addClass(this.dropdown, 'invalid');\r\n removeClass(this.dropdown, 'valid');\r\n }else{\r\n addClass(this.dropdown, 'valid');\r\n removeClass(this.dropdown, 'invalid');\r\n }\r\n}\r\n\r\nfunction attr(el, key) {\r\n if(el[key] != undefined){\r\n return el[key];\r\n }\r\n return el.getAttribute(key);\r\n}\r\n\r\nfunction data(el, key) {\r\n return el.getAttribute(\"data-\" + key);\r\n}\r\n\r\nfunction hasClass(el, className) {\r\n if (el){\r\n return el.classList.contains(className);\r\n }else{\r\n return false;\r\n }\r\n}\r\n\r\nfunction addClass(el, className) {\r\n if (el) return el.classList.add(className);\r\n}\r\n\r\nfunction removeClass(el, className) {\r\n if (el) return el.classList.remove(className);\r\n}\r\n\r\nvar defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false\r\n};\r\n\r\nexport default function NiceSelect(element, options) {\r\n this.el = element;\r\n this.config = Object.assign({}, defaultOptions, options || {});\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder || \"Select an option\";\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext || \"Search\";\r\n this.selectedtext = attr(this.el, \"selectedtext\") || this.config.selectedtext || \"selected\";\r\n\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n\r\n this.create();\r\n}\r\n\r\nNiceSelect.prototype.create = function() {\r\n this.el.style.opacity = \"0\";\r\n this.el.style.width = \"0\";\r\n this.el.style.padding = \"0\";\r\n this.el.style.height = \"0\";\r\n this.el.style.fontSize = \"0\";\r\n if (this.data) {\r\n this.processData(this.data);\r\n } else {\r\n this.extractData();\r\n }\r\n\r\n this.renderDropdown();\r\n this.bindEvent();\r\n};\r\n\r\nNiceSelect.prototype.processData = function(data) {\r\n var options = [];\r\n data.forEach(item=> {\r\n options.push({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n\t\t optgroup: item.value == 'optgroup'\r\n }\r\n });\r\n });\r\n this.options = options;\r\n};\r\n\r\nNiceSelect.prototype.extractData = function() {\r\n var options = this.el.querySelectorAll(\"option,optgroup\");\r\n var data = [];\r\n var allOptions = [];\r\n var selectedOptions = [];\r\n\r\n options.forEach(item => {\r\n if(item.tagName == 'OPTGROUP'){\r\n var itemData = {\r\n text: item.label,\r\n value: 'optgroup'\r\n };\r\n }else{\r\n let text = item.innerText;\r\n if(item.dataset.display != undefined){\r\n text = item.dataset.display;\r\n }\r\n\r\n var itemData = {\r\n text: text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.getAttribute(\"selected\") != null,\r\n disabled: item.getAttribute(\"disabled\") != null\r\n };\r\n }\r\n\r\n var attributes = {\r\n selected: item.getAttribute(\"selected\") != null,\r\n disabled: item.getAttribute(\"disabled\") != null,\r\n\t optgroup: item.tagName == 'OPTGROUP'\r\n };\r\n\r\n data.push(itemData);\r\n allOptions.push({ data: itemData, attributes: attributes });\r\n });\r\n\r\n this.data = data;\r\n this.options = allOptions;\r\n this.options.forEach(item => {\r\n if (item.attributes.selected){\r\n selectedOptions.push(item);\r\n }\r\n });\r\n\r\n this.selectedOptions = selectedOptions;\r\n};\r\n\r\nNiceSelect.prototype.renderDropdown = function() {\r\n var classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\"\r\n ];\r\n\r\n let searchHtml = `
      `;\r\n searchHtml += ``;\r\n searchHtml += `
      `;\r\n\r\n var html = `
      `;\r\n html += ``;\r\n html += `
      `;\r\n html += `${this.config.searchable ? searchHtml : \"\"}`;\r\n html += `
        `;\r\n html += `
        `;\r\n html += `
        `;\r\n\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n};\r\n\r\nNiceSelect.prototype._renderSelectedItems = function() {\r\n if (this.multiple) {\r\n var selectedHtml = \"\";\r\n if(this.config.showSelectedItems || this.config.showSelectedItems || window.getComputedStyle(this.dropdown).width == 'auto' || this.selectedOptions.length < 2){\r\n this.selectedOptions.forEach(function(item) {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n\r\n selectedHtml = selectedHtml == \"\" ? this.placeholder : selectedHtml;\r\n }else{\r\n selectedHtml = this.selectedOptions.length+' '+this.selectedtext;\r\n }\r\n\t\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n var html = this.selectedOptions.length > 0 ? this.selectedOptions[0].data.text : this.placeholder;\r\n\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n};\r\n\r\nNiceSelect.prototype._renderItems = function() {\r\n var ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach(item => {\r\n ul.appendChild(this._renderItem(item));\r\n });\r\n};\r\n\r\nNiceSelect.prototype._renderItem = function(option) {\r\n var el = document.createElement(\"li\");\r\n\r\n el.innerHTML = option.data.text;\r\n\r\n if(option.data.extra != undefined) {\r\n el.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n\r\n if(option.attributes.optgroup){\r\n\t addClass(el, 'optgroup');\r\n }else{\r\n el.setAttribute(\"data-value\", option.data.value);\r\n var classList = [\r\n \"option\",\r\n option.attributes.selected ? \"selected\" : null,\r\n option.attributes.disabled ? \"disabled\" : null,\r\n ];\r\n \r\n el.addEventListener(\"click\", this._onItemClicked.bind(this, option));\r\n el.classList.add(...classList);\r\n }\r\n\r\n option.element = el;\r\n return el;\r\n};\r\n\r\nNiceSelect.prototype._renderItemExtra = function(content) {\r\n var el = document.createElement(\"span\");\r\n el.innerHTML = content;\r\n addClass(el, \"extra\");\r\n return el;\r\n}\r\n\r\nNiceSelect.prototype.update = function() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n var open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.parentNode.removeChild(this.dropdown);\r\n this.create();\r\n\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n\r\n if(attr(this.el, \"disabled\")) {\r\n this.disable();\r\n } else {\r\n this.enable();\r\n }\r\n};\r\n\r\nNiceSelect.prototype.disable = function() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n};\r\n\r\nNiceSelect.prototype.enable = function() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n};\r\n\r\nNiceSelect.prototype.clear = function() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype.destroy = function() {\r\n if (this.dropdown) {\r\n this.dropdown.parentNode.removeChild(this.dropdown);\r\n this.el.style.display = \"\";\r\n }\r\n};\r\n\r\nNiceSelect.prototype.bindEvent = function() {\r\n var $this = this;\r\n this.dropdown.addEventListener(\"click\", this._onClicked.bind(this));\r\n this.dropdown.addEventListener(\"keydown\", this._onKeyPressed.bind(this));\r\n this.dropdown.addEventListener(\"focusin\", triggerFocusIn.bind(this, this.el));\r\n this.dropdown.addEventListener(\"focusout\", triggerFocusOut.bind(this, this.el));\r\n this.el.addEventListener(\"invalid\", triggerValidationMessage.bind(this, this.el, 'invalid'));\r\n window.addEventListener(\"click\", this._onClickedOutside.bind(this));\r\n\r\n if (this.config.searchable) {\r\n this._bindSearchEvent();\r\n }\r\n};\r\n\r\nNiceSelect.prototype._bindSearchEvent = function() {\r\n var searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox){\r\n searchBox.addEventListener(\"click\", function(e) {\r\n e.stopPropagation();\r\n return false;\r\n });\r\n }\r\n\r\n searchBox.addEventListener(\"input\", this._onSearchChanged.bind(this));\r\n};\r\n\r\nNiceSelect.prototype._onClicked = function(e) {\r\n e.preventDefault();\r\n\tif (!hasClass(this.dropdown, \"open\") ) {\r\n\t\taddClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n\t} else {\r\n\t\tif (this.multiple) {\r\n\t\t if (e.target == this.dropdown.querySelector('.multiple-options')) {\r\n\t\t\t removeClass(this.dropdown, \"open\");\r\n\t\t\t triggerModalClose(this.el);\r\n\t\t }\r\n\r\n\t\t} else {\r\n\t\t removeClass(this.dropdown, \"open\");\r\n\t\t triggerModalClose(this.el);\r\n\t\t}\r\n\t}\r\n\r\n if (hasClass(this.dropdown, \"open\")) {\r\n var search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n t = this.dropdown.querySelector(\".selected\");\r\n addClass(t, \"focus\");\r\n this.dropdown.querySelectorAll(\"ul li\").forEach(function(item) {\r\n item.style.display = \"\";\r\n });\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n};\r\n\r\nNiceSelect.prototype._onItemClicked = function(option, e) {\r\n var optionEl = e.target;\r\n\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions.splice(this.selectedOptions.indexOf(option), 1);\r\n var opt = this.el.querySelector(`option[value=\"${optionEl.dataset.value}\"]`);\r\n opt.removeAttribute('selected');\r\n opt.selected = false;\r\n\t }else{\r\n addClass(optionEl, \"selected\");\r\n console.log(option);\r\n console.log(this.selectedOptions);\r\n this.selectedOptions.push(option);\r\n console.log(this.selectedOptions);\r\n }\r\n } else {\r\n this.options.forEach(function (item) {\r\n removeClass(item.element, \"selected\");\r\n });\r\n this.selectedOptions.forEach(function (item) {\r\n removeClass(item.element, \"selected\");\r\n });\r\n\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n\r\n this._renderSelectedItems();\r\n console.log(this.el)\r\n this.updateSelectValue();\r\n }\r\n};\r\n\r\nNiceSelect.prototype.setValue = function(value){\r\n\r\n var select = this.el,noSelected = true,currentValue;\r\n if(select.multiple){\r\n for(var i = 0; i < value.length; i++){\r\n value[i] = String(value[i]);\r\n }\r\n } \r\n \r\n for(var opt of select.options){\r\n if(select.multiple){\r\n if(value.indexOf(opt.value) > -1){ //-- expect Array like [1,2,3]\r\n currentValue = opt.value;\r\n }else{\r\n currentValue = null;\r\n }\r\n }else{\r\n currentValue = value;\r\n }\r\n \r\n if(opt.value == currentValue && !opt.disabled){\r\n if(noSelected){\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute('selected',true);\r\n opt.selected = true;\r\n }else{\r\n opt.removeAttribute('selected');\r\n delete(opt.selected);\r\n }\r\n }\r\n if(noSelected && !select.multiple){\r\n select.options[0].setAttribute('selected',true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n \r\n this.update();\r\n}\r\n\r\nNiceSelect.prototype.getValue = function(){\r\n var select = this.el;\r\n if(!select.multiple){\r\n return select.value;\r\n }\r\n \r\n //-- multiple\r\n var values = [];\r\n for(var opt of select.options){\r\n if(opt.selected){\r\n values.push(opt.value);\r\n }\r\n }\r\n return values;\r\n}\r\n\r\nNiceSelect.prototype.updateSelectValue = function() {\r\n console.log(this.el)\r\n if (this.multiple) {\r\n var select = this.el;\r\n this.selectedOptions.forEach(function(item) {\r\n console.log(item.data.value)\r\n var el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n console.log(el)\r\n if (el){\r\n el.setAttribute(\"selected\", true);\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype.resetSelectValue = function() {\r\n if (this.multiple) {\r\n var select = this.el;\r\n this.selectedOptions.forEach(function(item) {\r\n var el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el){\r\n el.removeAttribute(\"selected\");\r\n delete(el.selected);\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype._onClickedOutside = function(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n};\r\n\r\nNiceSelect.prototype._onKeyPressed = function(e) {\r\n // Keyboard events\r\n\r\n var focusedOption = this.dropdown.querySelector(\".focus\");\r\n\r\n var open = hasClass(this.dropdown, \"open\");\r\n\r\n // Enter\r\n if (e.keyCode == 13) {\r\n if (open) {\r\n triggerClick(focusedOption);\r\n } else {\r\n triggerClick(this.dropdown);\r\n }\r\n } else if (e.keyCode == 40) {\r\n // Down\r\n if (!open) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n var next = this._findNext(focusedOption);\r\n if (next) {\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode == 38) {\r\n // Up\r\n if (!open) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n var prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode == 27 && open) {\r\n // Esc\r\n triggerClick(this.dropdown);\r\n } else if(e.keyCode === 32 && open) {\r\n // Space\r\n return false; \r\n }\r\n return false;\r\n};\r\n\r\nNiceSelect.prototype._findNext = function(el) {\r\n if (el) {\r\n el = el.nextElementSibling;\r\n } else {\r\n el = this.dropdown.querySelector(\".list .option\");\r\n }\r\n\r\n while (el) {\r\n if (!hasClass(el, \"disabled\") && el.style.display != \"none\") {\r\n return el;\r\n }\r\n el = el.nextElementSibling;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nNiceSelect.prototype._findPrev = function(el) {\r\n if (el) {\r\n el = el.previousElementSibling;\r\n } else {\r\n el = this.dropdown.querySelector(\".list .option:last-child\");\r\n }\r\n\r\n while (el) {\r\n if (!hasClass(el, \"disabled\") && el.style.display != \"none\") {\r\n return el;\r\n }\r\n el = el.previousElementSibling;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nNiceSelect.prototype._onSearchChanged = function(e) {\r\n var open = hasClass(this.dropdown, \"open\");\r\n var text = e.target.value;\r\n text = text.toLowerCase();\r\n\r\n if (text == \"\") {\r\n this.options.forEach(function(item) {\r\n item.element.style.display = \"\";\r\n });\r\n } else if (open) {\r\n var matchReg = new RegExp(text);\r\n this.options.forEach(function(item) {\r\n var optionText = item.data.text.toLowerCase();\r\n var matched = matchReg.test(optionText);\r\n item.element.style.display = matched ? \"\" : \"none\";\r\n });\r\n }\r\n\r\n this.dropdown.querySelectorAll(\".focus\").forEach(function(item) {\r\n removeClass(item, \"focus\");\r\n });\r\n\r\n var firstEl = this._findNext(null);\r\n addClass(firstEl, \"focus\");\r\n};\r\n\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/style.js.map b/dist/js/style.js.map deleted file mode 100644 index 1995494..0000000 --- a/dist/js/style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/style.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;UCVA;UACA;;;;;WCDA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;ACNA","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/scss/style.scss?98af"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/css/nice-select2.css b/docs/dist/css/nice-select2.css index e15f19b..dfdb552 100644 --- a/docs/dist/css/nice-select2.css +++ b/docs/dist/css/nice-select2.css @@ -1 +1 @@ -.nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:#dbdbdb}.nice-select:active,.nice-select.open,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} +.nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:hsl(0,0%,85.9803921569%)}.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open{border-color:#999}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:rgb(237.1,237.1,237.1);color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .extra{float:right}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} diff --git a/docs/dist/css/style.css b/docs/dist/css/style.css index 5577599..a927174 100644 --- a/docs/dist/css/style.css +++ b/docs/dist/css/style.css @@ -1 +1 @@ -code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:#f3f4f7}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:#4196fb}.button:active{background-color:#2d8bfa}.button.light{background-color:#fff;border:1px solid #e8e8e8;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:#dbdbdb}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} +code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:rgb(242.94,244.28,246.96)}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:rgb(65.0689655172,149.9793103448,250.5310344828)}.button:active{background-color:rgb(45.1379310345,138.9586206897,250.0620689655)}.button.light{background-color:#fff;border:1px solid #e0e7ee;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:rgb(207.53125,218.25,228.96875)}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} diff --git a/docs/dist/js/nice-select2.js b/docs/dist/js/nice-select2.js index a6c0ce1..6e6d7da 100644 --- a/docs/dist/js/nice-select2.js +++ b/docs/dist/js/nice-select2.js @@ -1,2 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,i)=>{for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function i(e){var t=document.createEvent("MouseEvents");t.initEvent("click",!0,!1),e.dispatchEvent(t)}function s(e){var t=document.createEvent("HTMLEvents");t.initEvent("change",!0,!1),e.dispatchEvent(t)}function o(e){var t=document.createEvent("FocusEvent");t.initEvent("focusin",!0,!1),e.dispatchEvent(t)}function n(e){var t=document.createEvent("FocusEvent");t.initEvent("focusout",!0,!1),e.dispatchEvent(t)}function d(e){var t=document.createEvent("UIEvent");t.initEvent("modalclose",!0,!1),e.dispatchEvent(t)}function l(e,t){"invalid"==t?(c(this.dropdown,"invalid"),h(this.dropdown,"valid")):(c(this.dropdown,"valid"),h(this.dropdown,"invalid"))}function r(e,t){return null!=e[t]?e[t]:e.getAttribute(t)}function a(e,t){return!!e&&e.classList.contains(t)}function c(e,t){if(e)return e.classList.add(t)}function h(e,t){if(e)return e.classList.remove(t)}e.r(t),e.d(t,{bind:()=>f,default:()=>u});var p={data:null,searchable:!1,showSelectedItems:!1};function u(e,t){this.el=e,this.config=Object.assign({},p,t||{}),this.data=this.config.data,this.selectedOptions=[],this.placeholder=r(this.el,"placeholder")||this.config.placeholder||"Select an option",this.searchtext=r(this.el,"searchtext")||this.config.searchtext||"Search",this.selectedtext=r(this.el,"selectedtext")||this.config.selectedtext||"selected",this.dropdown=null,this.multiple=r(this.el,"multiple"),this.disabled=r(this.el,"disabled"),this.create()}function f(e,t){return new u(e,t)}return u.prototype.create=function(){this.el.style.opacity="0",this.el.style.width="0",this.el.style.padding="0",this.el.style.height="0",this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()},u.prototype.processData=function(e){var t=[];e.forEach((e=>{t.push({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"==e.value}})})),this.options=t},u.prototype.extractData=function(){var e=this.el.querySelectorAll("option,optgroup"),t=[],i=[],s=[];e.forEach((e=>{if("OPTGROUP"==e.tagName)var s={text:e.label,value:"optgroup"};else{let t=e.innerText;null!=e.dataset.display&&(console.log(e),t=e.dataset.display),s={text:t,value:e.value,selected:null!=e.getAttribute("selected"),disabled:null!=e.getAttribute("disabled")}}var o={selected:null!=e.getAttribute("selected"),disabled:null!=e.getAttribute("disabled"),optgroup:"OPTGROUP"==e.tagName};t.push(s),i.push({data:s,attributes:o})})),this.data=t,this.options=i,this.options.forEach((e=>{e.attributes.selected&&s.push(e)})),this.selectedOptions=s},u.prototype.renderDropdown=function(){var e=["nice-select",r(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""];let t='";var i=`
        `;i+=``,i+='
        ',i+=`${this.config.searchable?t:""}`,i+='
          ',i+="
          ",i+="
          ",this.el.insertAdjacentHTML("afterend",i),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()},u.prototype._renderSelectedItems=function(){if(this.multiple){var e="";this.config.showSelectedItems||this.config.showSelectedItems||"auto"==window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((function(t){e+=`${t.data.text}`})),e=""==e?this.placeholder:e):e=this.selectedOptions.length+" "+this.selectedtext,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{var t=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=t}},u.prototype._renderItems=function(){var e=this.dropdown.querySelector("ul");this.options.forEach((t=>{e.appendChild(this._renderItem(t))}))},u.prototype._renderItem=function(e){var t=document.createElement("li");if(t.innerHTML=e.data.text,e.attributes.optgroup)c(t,"optgroup");else{t.setAttribute("data-value",e.data.value);var i=["option",e.attributes.selected?"selected":null,e.attributes.disabled?"disabled":null];t.addEventListener("click",this._onItemClicked.bind(this,e)),t.classList.add(...i)}return e.element=t,t},u.prototype.update=function(){if(this.extractData(),this.dropdown){var e=a(this.dropdown,"open");this.dropdown.parentNode.removeChild(this.dropdown),this.create(),e&&i(this.dropdown)}r(this.el,"disabled")?this.disable():this.enable()},u.prototype.disable=function(){this.disabled||(this.disabled=!0,c(this.dropdown,"disabled"))},u.prototype.enable=function(){this.disabled&&(this.disabled=!1,h(this.dropdown,"disabled"))},u.prototype.clear=function(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),s(this.el)},u.prototype.destroy=function(){this.dropdown&&(this.dropdown.parentNode.removeChild(this.dropdown),this.el.style.display="")},u.prototype.bindEvent=function(){this.dropdown.addEventListener("click",this._onClicked.bind(this)),this.dropdown.addEventListener("keydown",this._onKeyPressed.bind(this)),this.dropdown.addEventListener("focusin",o.bind(this,this.el)),this.dropdown.addEventListener("focusout",n.bind(this,this.el)),this.el.addEventListener("invalid",l.bind(this,this.el,"invalid")),window.addEventListener("click",this._onClickedOutside.bind(this)),this.config.searchable&&this._bindSearchEvent()},u.prototype._bindSearchEvent=function(){var e=this.dropdown.querySelector(".nice-select-search");e&&e.addEventListener("click",(function(e){return e.stopPropagation(),!1})),e.addEventListener("input",this._onSearchChanged.bind(this))},u.prototype._onClicked=function(e){var t,i;if(e.preventDefault(),a(this.dropdown,"open")?this.multiple||(h(this.dropdown,"open"),d(this.el)):(c(this.dropdown,"open"),t=this.el,(i=document.createEvent("UIEvent")).initEvent("modalopen",!0,!1),t.dispatchEvent(i)),a(this.dropdown,"open")){var s=this.dropdown.querySelector(".nice-select-search");s&&(s.value="",s.focus());var o=this.dropdown.querySelector(".focus");h(o,"focus"),c(o=this.dropdown.querySelector(".selected"),"focus"),this.dropdown.querySelectorAll("ul li").forEach((function(e){e.style.display=""}))}else this.dropdown.focus()},u.prototype._onItemClicked=function(e,t){var i=t.target;a(i,"disabled")||(this.multiple?a(i,"selected")?(h(i,"selected"),this.selectedOptions.splice(this.selectedOptions.indexOf(e),1),this.el.querySelector(`option[value="${i.dataset.value}"]`).removeAttribute("selected")):(c(i,"selected"),this.selectedOptions.push(e)):(this.selectedOptions.forEach((function(e){h(e.element,"selected")})),c(i,"selected"),this.selectedOptions=[e]),this._renderSelectedItems(),this.updateSelectValue())},u.prototype.updateSelectValue=function(){if(this.multiple){var e=this.el;this.selectedOptions.forEach((function(t){var i=e.querySelector(`option[value="${t.data.value}"]`);i&&i.setAttribute("selected",!0)}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);s(this.el)},u.prototype.resetSelectValue=function(){if(this.multiple){var e=this.el;this.selectedOptions.forEach((function(t){var i=e.querySelector(`option[value="${t.data.value}"]`);i&&i.removeAttribute("selected")}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);s(this.el)},u.prototype._onClickedOutside=function(e){this.dropdown.contains(e.target)||(h(this.dropdown,"open"),d(this.el))},u.prototype._onKeyPressed=function(e){var t=this.dropdown.querySelector(".focus"),s=a(this.dropdown,"open");if(13==e.keyCode)i(s?t:this.dropdown);else if(40==e.keyCode){if(s){var o=this._findNext(t);o&&(h(this.dropdown.querySelector(".focus"),"focus"),c(o,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38==e.keyCode){if(s){var n=this._findPrev(t);n&&(h(this.dropdown.querySelector(".focus"),"focus"),c(n,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27==e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1},u.prototype._findNext=function(e){for(e=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");e;){if(!a(e,"disabled")&&"none"!=e.style.display)return e;e=e.nextElementSibling}return null},u.prototype._findPrev=function(e){for(e=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");e;){if(!a(e,"disabled")&&"none"!=e.style.display)return e;e=e.previousElementSibling}return null},u.prototype._onSearchChanged=function(e){var t=a(this.dropdown,"open"),i=e.target.value;if(""==(i=i.toLowerCase()))this.options.forEach((function(e){e.element.style.display=""}));else if(t){var s=new RegExp(i);this.options.forEach((function(e){var t=e.data.text.toLowerCase(),i=s.test(t);e.element.style.display=i?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((function(e){h(e,"focus")})),c(this._findNext(null),"focus")},t})())); -//# sourceMappingURL=nice-select2.js.map \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
          \n \n
          \n ${t}\n
            \n
            \n
            \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); \ No newline at end of file diff --git a/docs/dist/js/nice-select2.js.map b/docs/dist/js/nice-select2.js.map deleted file mode 100644 index be68812..0000000 --- a/docs/dist/js/nice-select2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\n// utility functions\r\nfunction triggerClick(el) {\r\n var event = document.createEvent(\"MouseEvents\");\r\n event.initEvent(\"click\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerChange(el) {\r\n var event = document.createEvent(\"HTMLEvents\");\r\n event.initEvent(\"change\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerFocusIn(el) {\r\n var event = document.createEvent(\"FocusEvent\");\r\n event.initEvent(\"focusin\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerFocusOut(el) {\r\n var event = document.createEvent(\"FocusEvent\");\r\n event.initEvent(\"focusout\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerModalOpen(el) {\r\n var event = document.createEvent(\"UIEvent\");\r\n event.initEvent(\"modalopen\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerModalClose(el) {\r\n var event = document.createEvent(\"UIEvent\");\r\n event.initEvent(\"modalclose\", true, false);\r\n el.dispatchEvent(event);\r\n}\r\n\r\nfunction triggerValidationMessage(el, type) {\r\n if(type == 'invalid'){\r\n addClass(this.dropdown, 'invalid');\r\n removeClass(this.dropdown, 'valid');\r\n }else{\r\n addClass(this.dropdown, 'valid');\r\n removeClass(this.dropdown, 'invalid');\r\n }\r\n}\r\n\r\nfunction attr(el, key) {\r\n if(el[key] != undefined){\r\n return el[key];\r\n }\r\n return el.getAttribute(key);\r\n}\r\n\r\nfunction data(el, key) {\r\n return el.getAttribute(\"data-\" + key);\r\n}\r\n\r\nfunction hasClass(el, className) {\r\n if (el){\r\n return el.classList.contains(className);\r\n }else{\r\n return false;\r\n }\r\n}\r\n\r\nfunction addClass(el, className) {\r\n if (el) return el.classList.add(className);\r\n}\r\n\r\nfunction removeClass(el, className) {\r\n if (el) return el.classList.remove(className);\r\n}\r\n\r\nvar defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false\r\n};\r\n\r\nexport default function NiceSelect(element, options) {\r\n this.el = element;\r\n this.config = Object.assign({}, defaultOptions, options || {});\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder || \"Select an option\";\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext || \"Search\";\r\n this.selectedtext = attr(this.el, \"selectedtext\") || this.config.selectedtext || \"selected\";\r\n\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n\r\n this.create();\r\n}\r\n\r\nNiceSelect.prototype.create = function() {\r\n this.el.style.opacity = \"0\";\r\n this.el.style.width = \"0\";\r\n this.el.style.padding = \"0\";\r\n this.el.style.height = \"0\";\r\n if (this.data) {\r\n this.processData(this.data);\r\n } else {\r\n this.extractData();\r\n }\r\n\r\n this.renderDropdown();\r\n this.bindEvent();\r\n};\r\n\r\nNiceSelect.prototype.processData = function(data) {\r\n var options = [];\r\n data.forEach(item=> {\r\n options.push({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n\t\t optgroup: item.value == 'optgroup'\r\n }\r\n });\r\n });\r\n this.options = options;\r\n};\r\n\r\nNiceSelect.prototype.extractData = function() {\r\n var options = this.el.querySelectorAll(\"option,optgroup\");\r\n var data = [];\r\n var allOptions = [];\r\n var selectedOptions = [];\r\n\r\n options.forEach(item => {\r\n if(item.tagName == 'OPTGROUP'){\r\n var itemData = {\r\n text: item.label,\r\n value: 'optgroup'\r\n };\r\n }else{\r\n let text = item.innerText;\r\n //console.log(item)\r\n if(item.dataset.display != undefined){\r\n console.log(item)\r\n text = item.dataset.display;\r\n }\r\n\r\n var itemData = {\r\n text: text,\r\n value: item.value,\r\n selected: item.getAttribute(\"selected\") != null,\r\n disabled: item.getAttribute(\"disabled\") != null\r\n };\r\n }\r\n\r\n var attributes = {\r\n selected: item.getAttribute(\"selected\") != null,\r\n disabled: item.getAttribute(\"disabled\") != null,\r\n\t optgroup: item.tagName == 'OPTGROUP'\r\n };\r\n\r\n data.push(itemData);\r\n allOptions.push({ data: itemData, attributes: attributes });\r\n });\r\n\r\n this.data = data;\r\n this.options = allOptions;\r\n this.options.forEach(item => {\r\n if (item.attributes.selected){\r\n selectedOptions.push(item);\r\n }\r\n });\r\n\r\n this.selectedOptions = selectedOptions;\r\n};\r\n\r\nNiceSelect.prototype.renderDropdown = function() {\r\n var classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\"\r\n ];\r\n\r\n let searchHtml = `
            `;\r\n searchHtml += ``;\r\n searchHtml += `
            `;\r\n\r\n var html = `
            `;\r\n html += ``;\r\n html += `
            `;\r\n html += `${this.config.searchable ? searchHtml : \"\"}`;\r\n html += `
              `;\r\n html += `
              `;\r\n html += `
              `;\r\n\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n};\r\n\r\nNiceSelect.prototype._renderSelectedItems = function() {\r\n if (this.multiple) {\r\n var selectedHtml = \"\";\r\n if(this.config.showSelectedItems || this.config.showSelectedItems || window.getComputedStyle(this.dropdown).width == 'auto' || this.selectedOptions.length < 2){\r\n this.selectedOptions.forEach(function(item) {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n\r\n selectedHtml = selectedHtml == \"\" ? this.placeholder : selectedHtml;\r\n }else{\r\n selectedHtml = this.selectedOptions.length+' '+this.selectedtext;\r\n }\r\n\t\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n var html = this.selectedOptions.length > 0 ? this.selectedOptions[0].data.text : this.placeholder;\r\n\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n};\r\n\r\nNiceSelect.prototype._renderItems = function() {\r\n var ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach(item => {\r\n ul.appendChild(this._renderItem(item));\r\n });\r\n};\r\n\r\nNiceSelect.prototype._renderItem = function(option) {\r\n var el = document.createElement(\"li\");\r\n\r\n el.innerHTML = option.data.text;\r\n\r\n if(option.attributes.optgroup){\r\n\t addClass(el, 'optgroup');\r\n }else{\r\n el.setAttribute(\"data-value\", option.data.value);\r\n var classList = [\r\n \"option\",\r\n option.attributes.selected ? \"selected\" : null,\r\n option.attributes.disabled ? \"disabled\" : null,\r\n ];\r\n \r\n el.addEventListener(\"click\", this._onItemClicked.bind(this, option));\r\n el.classList.add(...classList);\r\n }\r\n\r\n option.element = el;\r\n return el;\r\n};\r\n\r\nNiceSelect.prototype.update = function() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n var open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.parentNode.removeChild(this.dropdown);\r\n this.create();\r\n\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n\r\n if(attr(this.el, \"disabled\")) {\r\n this.disable();\r\n } else {\r\n this.enable();\r\n }\r\n};\r\n\r\nNiceSelect.prototype.disable = function() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n};\r\n\r\nNiceSelect.prototype.enable = function() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n};\r\n\r\nNiceSelect.prototype.clear = function() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype.destroy = function() {\r\n if (this.dropdown) {\r\n this.dropdown.parentNode.removeChild(this.dropdown);\r\n this.el.style.display = \"\";\r\n }\r\n};\r\n\r\nNiceSelect.prototype.bindEvent = function() {\r\n var $this = this;\r\n this.dropdown.addEventListener(\"click\", this._onClicked.bind(this));\r\n this.dropdown.addEventListener(\"keydown\", this._onKeyPressed.bind(this));\r\n this.dropdown.addEventListener(\"focusin\", triggerFocusIn.bind(this, this.el));\r\n this.dropdown.addEventListener(\"focusout\", triggerFocusOut.bind(this, this.el));\r\n this.el.addEventListener(\"invalid\", triggerValidationMessage.bind(this, this.el, 'invalid'));\r\n window.addEventListener(\"click\", this._onClickedOutside.bind(this));\r\n\r\n if (this.config.searchable) {\r\n this._bindSearchEvent();\r\n }\r\n};\r\n\r\nNiceSelect.prototype._bindSearchEvent = function() {\r\n var searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox){\r\n searchBox.addEventListener(\"click\", function(e) {\r\n e.stopPropagation();\r\n return false;\r\n });\r\n }\r\n\r\n searchBox.addEventListener(\"input\", this._onSearchChanged.bind(this));\r\n};\r\n\r\nNiceSelect.prototype._onClicked = function(e) {\r\n e.preventDefault();\r\n\tif (!hasClass(this.dropdown, \"open\") ) {\r\n\t\taddClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n\t}else if(!this.multiple){\r\n\t\tremoveClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n\t}\r\n\r\n if (hasClass(this.dropdown, \"open\")) {\r\n var search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n t = this.dropdown.querySelector(\".selected\");\r\n addClass(t, \"focus\");\r\n this.dropdown.querySelectorAll(\"ul li\").forEach(function(item) {\r\n item.style.display = \"\";\r\n });\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n};\r\n\r\nNiceSelect.prototype._onItemClicked = function(option, e) {\r\n var optionEl = e.target;\r\n\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions.splice(this.selectedOptions.indexOf(option), 1);\r\n this.el.querySelector(`option[value=\"${optionEl.dataset.value}\"]`).removeAttribute('selected');\r\n\t }else{\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.selectedOptions.forEach(function(item) {\r\n removeClass(item.element, \"selected\");\r\n });\r\n\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n};\r\n\r\nNiceSelect.prototype.updateSelectValue = function() {\r\n if (this.multiple) {\r\n var select = this.el;\r\n this.selectedOptions.forEach(function(item) {\r\n var el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el){\r\n el.setAttribute(\"selected\", true);\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype.resetSelectValue = function() {\r\n if (this.multiple) {\r\n var select = this.el;\r\n this.selectedOptions.forEach(function(item) {\r\n var el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el){\r\n el.removeAttribute(\"selected\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n\r\n triggerChange(this.el);\r\n};\r\n\r\nNiceSelect.prototype._onClickedOutside = function(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n};\r\n\r\nNiceSelect.prototype._onKeyPressed = function(e) {\r\n // Keyboard events\r\n\r\n var focusedOption = this.dropdown.querySelector(\".focus\");\r\n\r\n var open = hasClass(this.dropdown, \"open\");\r\n\r\n // Enter\r\n if (e.keyCode == 13) {\r\n if (open) {\r\n triggerClick(focusedOption);\r\n } else {\r\n triggerClick(this.dropdown);\r\n }\r\n } else if (e.keyCode == 40) {\r\n // Down\r\n if (!open) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n var next = this._findNext(focusedOption);\r\n if (next) {\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode == 38) {\r\n // Up\r\n if (!open) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n var prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n var t = this.dropdown.querySelector(\".focus\");\r\n removeClass(t, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode == 27 && open) {\r\n // Esc\r\n triggerClick(this.dropdown);\r\n } else if(e.keyCode === 32 && open) {\r\n // Space\r\n return false; \r\n }\r\n return false;\r\n};\r\n\r\nNiceSelect.prototype._findNext = function(el) {\r\n if (el) {\r\n el = el.nextElementSibling;\r\n } else {\r\n el = this.dropdown.querySelector(\".list .option\");\r\n }\r\n\r\n while (el) {\r\n if (!hasClass(el, \"disabled\") && el.style.display != \"none\") {\r\n return el;\r\n }\r\n el = el.nextElementSibling;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nNiceSelect.prototype._findPrev = function(el) {\r\n if (el) {\r\n el = el.previousElementSibling;\r\n } else {\r\n el = this.dropdown.querySelector(\".list .option:last-child\");\r\n }\r\n\r\n while (el) {\r\n if (!hasClass(el, \"disabled\") && el.style.display != \"none\") {\r\n return el;\r\n }\r\n el = el.previousElementSibling;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nNiceSelect.prototype._onSearchChanged = function(e) {\r\n var open = hasClass(this.dropdown, \"open\");\r\n var text = e.target.value;\r\n text = text.toLowerCase();\r\n\r\n if (text == \"\") {\r\n this.options.forEach(function(item) {\r\n item.element.style.display = \"\";\r\n });\r\n } else if (open) {\r\n var matchReg = new RegExp(text);\r\n this.options.forEach(function(item) {\r\n var optionText = item.data.text.toLowerCase();\r\n var matched = matchReg.test(optionText);\r\n item.element.style.display = matched ? \"\" : \"none\";\r\n });\r\n }\r\n\r\n this.dropdown.querySelectorAll(\".focus\").forEach(function(item) {\r\n removeClass(item, \"focus\");\r\n });\r\n\r\n var firstEl = this._findNext(null);\r\n addClass(firstEl, \"focus\");\r\n};\r\n\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerClick","el","event","document","createEvent","initEvent","dispatchEvent","triggerChange","triggerFocusIn","triggerFocusOut","triggerModalClose","triggerValidationMessage","type","addClass","this","dropdown","removeClass","attr","undefined","getAttribute","hasClass","className","classList","contains","add","remove","defaultOptions","data","searchable","showSelectedItems","NiceSelect","element","options","config","assign","selectedOptions","placeholder","searchtext","selectedtext","multiple","disabled","create","bind","style","opacity","width","padding","height","processData","extractData","renderDropdown","bindEvent","forEach","item","push","attributes","selected","optgroup","querySelectorAll","allOptions","tagName","itemData","text","label","innerText","dataset","display","console","log","classes","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","querySelector","innerHTML","ul","appendChild","_renderItem","option","createElement","setAttribute","addEventListener","_onItemClicked","update","open","parentNode","removeChild","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","_onClickedOutside","_bindSearchEvent","searchBox","e","stopPropagation","_onSearchChanged","preventDefault","search","focus","t","optionEl","target","splice","indexOf","removeAttribute","updateSelectValue","select","selectedIndex","focusedOption","keyCode","next","_findNext","prev","_findPrev","previousElementSibling","toLowerCase","matchReg","RegExp","optionText","matched","test"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/js/style.js b/docs/dist/js/style.js index 21aa015..ab8e269 100644 --- a/docs/dist/js/style.js +++ b/docs/dist/js/style.js @@ -1,2 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); -//# sourceMappingURL=style.js.map \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); \ No newline at end of file diff --git a/docs/dist/js/style.js.map b/docs/dist/js/style.js.map deleted file mode 100644 index 60dc19f..0000000 --- a/docs/dist/js/style.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/style.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,GACtB,CATD,CASGK,MAAM,I,mBCRT,I,WCAwB,CAACJ,IACH,oBAAXK,QAA0BA,OAAOC,aAC1CC,OAAOC,eAAeR,EAASK,OAAOC,YAAa,CAAEG,MAAO,WAE7DF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,GAAO,E","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","Symbol","toStringTag","Object","defineProperty","value"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 1a3d360..ad863b1 100755 --- a/docs/index.html +++ b/docs/index.html @@ -1,5 +1,6 @@ + @@ -7,54 +8,55 @@ Vanilla Javascript Nice Select2 - + - - + + gtag('config', 'UA-40665301-3'); +
              - -
              + +

              Nice Select 2

              - +

              A lightweight vanilla javascript library that replaces native select elements with customizable dropdowns.

              - + Download View on GitHub

              Usage

              1. Include the library.

              - +
              <script src="path/to/nice-select2.js"></script>
              - +

              2. Include the plugin styles, either the compiled CSS...

              - +
              <link rel="stylesheet" href="path/to/nice-select2.css">

              ...or, ideally, import the SASS source (if you use SASS) in your main stylesheet for easier customization.

              - +
              @import 'nice-select2'; // Or 'nice-select-prefixed'. See 'Notes' section.
              - +

              3. Finally, initialize the plugin.

              - +
              NiceSelect.bind(document.getElementById("#a-select"));
              - +

              All done. That will turn this:

              - +
              - +

              ...into this:

              - +
              - @@ -82,14 +84,16 @@

              Usage

              - -

              There are no settings (a native select doesn't have settings), although there are a couple of special features, documented below.

              - + +

              There are no settings (a native select doesn't have settings), although there are a couple of special features, + documented below.

              +

              Display text

              -

              You can specify an alternate text for each option, which will be displayed on the dropdown when that option is selected.

              - +

              You can specify an alternate text for each option, which will be displayed on the dropdown when that option is + selected.

              +

              Add a data-display attribute to the desired options. For example:

              - +
              <select>
                 <option data-display="Select">Nothing</option>
                 <option value="1">Some option</option>
              @@ -97,7 +101,7 @@ 

              Display text

              <option value="3" disabled>A disabled option</option> <option value="4">Potato</option> </select>
              - +
              @@ -129,10 +133,10 @@

              Searchable options

              Translations

              Translate the three different texts: 'Select an option', 'Search', 'selected'

              - +
              var options = {searchable: true, placeholder: 'select', searchtext: 'zoek', selectedtext: 'geselecteerd'};
                   NiceSelect.bind(document.getElementById("seachable-select"), options);
              - +
              @@ -158,7 +163,7 @@

              Custom classes

              - +
              - +
              - +

              Methods

              - +

              update

              - +

              Updates the custom dropdown to reflect any changes made to the original select element.

              - +
              var instance = NiceSelect.bind(...);
                   instance.update();
              - +

              destroy

              - +

              Removes the custom dropdown and unbinds all its events.

              - +
              var instance = NiceSelect.bind(...);
                   instance.destroy();
              - -

              Notes

              - + +

              Notes

              +
              • -

                Autoprefixer is used to add vendor prefixes to CSS rules for older browser support. A nice-select-prefixed.scss file is also generated if you wish to include the SASS file in your project and you're not using Autoprefixer.

                +

                Autoprefixer is used to add vendor prefixes to CSS rules for older browser support. A + nice-select-prefixed.scss file is also generated if you wish to include the SASS file in your project + and you're not using Autoprefixer.

              • -

                In some cases there can be a brief flash in which the native selects are displayed—between the time the page is loaded and the scripts are run. This can be fixed by adding a CSS rule to hide them beforehand:

                - +

                In some cases there can be a brief flash in which the native selects are displayed—between the time the page + is loaded and the scripts are run. This can be fixed by adding a CSS rule to hide them beforehand:

                +
                select {
                   display: none;
                 }
                -

                Note that the above rule will hide all native select elements. If you're only applying the plugin to some select elements you should adapt the rule accordingly.

                +

                Note that the above rule will hide all native select elements. If you're only applying the plugin to some + select elements you should adapt the rule accordingly.

              - - + +
              - + - + - + - + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 89c837d..b980e65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "nice-select2", "version": "2.3.1", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -10,24 +10,56 @@ "license": "ISC", "dependencies": { "cross-env": "^7.0.3", - "css-loader": "^6.7.3" + "css-loader": "^7.1.2" }, "devDependencies": { - "mini-css-extract-plugin": "^2.4.5", - "sass": "^1.45.1", - "sass-loader": "^12.4.0", + "mini-css-extract-plugin": "^2.9.2", + "sass": "^1.83.4", + "sass-loader": "^16.0.4", "shx": "^0.3.4", - "webpack": "^5.65.0", - "webpack-cli": "^4.9.1" + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1" } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jridgewell/gen-mapping": { @@ -124,215 +156,15 @@ "@parcel/watcher-win32-x64": "2.5.1" } }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { + "node_modules/@parcel/watcher-win32-x64": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", "cpu": [ "x64" ], "dev": true, "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, "os": [ "win32" ], @@ -344,44 +176,21 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "cpu": [ - "ia32" - ], + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } + "license": "MIT" }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "cpu": [ - "x64" - ], + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "ISC", "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=10.13.0" } }, "node_modules/@types/eslint": { @@ -410,12 +219,57 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "devOptional": true }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "devOptional": true }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "22.13.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.0.tgz", @@ -425,6 +279,23 @@ "undici-types": "~6.20.0" } }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -572,34 +443,45 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", "dev": true, - "dependencies": { - "envinfo": "^7.7.3" + "license": "MIT", + "engines": { + "node": ">=18.12.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -676,20 +558,66 @@ "ajv": "^8.8.2" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -743,6 +671,19 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "devOptional": true }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001696", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", @@ -763,6 +704,36 @@ } ] }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -787,11 +758,44 @@ "node": ">=6.0" } }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -801,6 +805,33 @@ "node": ">=6" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -849,10 +880,24 @@ "node": ">= 8" } }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -864,7 +909,7 @@ "semver": "^7.5.4" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -872,7 +917,7 @@ }, "peerDependencies": { "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" + "webpack": "^5.27.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -883,6 +928,111 @@ } } }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.0.tgz", + "integrity": "sha512-niy66jxsQHqO+EYbhPuIhqRQ1mNcNVUHrMnkzzir9kFOERJUaQDDRhh7dKDz33kBpkWMF9M8Vx0QlDbc5AHOsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "cssnano": "^7.0.1", + "jest-worker": "^29.7.0", + "postcss": "^8.4.38", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -894,6 +1044,140 @@ "node": ">=4" } }, + "node_modules/cssnano": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.6.tgz", + "integrity": "sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.6", + "lilconfig": "^3.1.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.6.tgz", + "integrity": "sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.0", + "postcss-calc": "^10.0.2", + "postcss-colormin": "^7.0.2", + "postcss-convert-values": "^7.0.4", + "postcss-discard-comments": "^7.0.3", + "postcss-discard-duplicates": "^7.0.1", + "postcss-discard-empty": "^7.0.0", + "postcss-discard-overridden": "^7.0.0", + "postcss-merge-longhand": "^7.0.4", + "postcss-merge-rules": "^7.0.4", + "postcss-minify-font-values": "^7.0.0", + "postcss-minify-gradients": "^7.0.0", + "postcss-minify-params": "^7.0.2", + "postcss-minify-selectors": "^7.0.4", + "postcss-normalize-charset": "^7.0.0", + "postcss-normalize-display-values": "^7.0.0", + "postcss-normalize-positions": "^7.0.0", + "postcss-normalize-repeat-style": "^7.0.0", + "postcss-normalize-string": "^7.0.0", + "postcss-normalize-timing-functions": "^7.0.0", + "postcss-normalize-unicode": "^7.0.2", + "postcss-normalize-url": "^7.0.0", + "postcss-normalize-whitespace": "^7.0.0", + "postcss-ordered-values": "^7.0.1", + "postcss-reduce-initial": "^7.0.2", + "postcss-reduce-transforms": "^7.0.0", + "postcss-svgo": "^7.0.1", + "postcss-unique-selectors": "^7.0.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz", + "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -907,6 +1191,65 @@ "node": ">=0.10" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.90", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz", @@ -926,11 +1269,25 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/envinfo": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -1073,6 +1430,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -1119,6 +1477,33 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "devOptional": true }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1256,11 +1641,48 @@ "node": ">=0.12.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -1278,10 +1700,29 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -1313,17 +1754,22 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/loader-runner": { @@ -1347,6 +1793,27 @@ "node": ">=8" } }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -1465,6 +1932,29 @@ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "devOptional": true }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1501,6 +1991,16 @@ "node": ">=8" } }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -1528,6 +2028,13 @@ "node": ">=0.10.0" } }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -1552,7 +2059,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "optional": true, "engines": { "node": ">=8.6" }, @@ -1560,6 +2066,39 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -1599,65 +2138,81 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^18.12 || ^20.9 || >=22.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.38" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "node_modules/postcss-colormin": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.2.tgz", + "integrity": "sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==", + "dev": true, + "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.23.3", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.31" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "node_modules/postcss-convert-values": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.4.tgz", + "integrity": "sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==", + "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.0.0" + "browserslist": "^4.23.3", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.31" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/postcss-discard-comments": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.3.tgz", + "integrity": "sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==", + "dev": true, + "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0" + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.4.31" } }, - "node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -1666,2087 +2221,1045 @@ "node": ">=4" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "devOptional": true, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.1.tgz", + "integrity": "sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "devOptional": true, - "dependencies": { - "safe-buffer": "^5.1.0" + "node_modules/postcss-discard-empty": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz", + "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/readdirp": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", - "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", + "node_modules/postcss-discard-overridden": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz", + "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/postcss-merge-longhand": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.4.tgz", + "integrity": "sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.1.6" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.4" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "node_modules/postcss-merge-rules": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.4.tgz", + "integrity": "sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "browserslist": "^4.23.3", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.0", + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/postcss-minify-font-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", + "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/sass": { - "version": "1.83.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz", - "integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==", + "node_modules/postcss-minify-gradients": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz", + "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==", "dev": true, + "license": "MIT", "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" + "colord": "^2.9.3", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=14.0.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "node_modules/postcss-minify-params": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.2.tgz", + "integrity": "sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==", "dev": true, + "license": "MIT", "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" + "browserslist": "^4.23.3", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } + "postcss": "^8.4.31" } }, - "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "devOptional": true, + "node_modules/postcss-minify-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.4.tgz", + "integrity": "sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "cssesc": "^3.0.0", + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": ">= 10.13.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", - "bin": { - "semver": "bin/semver.js" + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "devOptional": true, - "dependencies": { - "randombytes": "^2.1.0" + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dependencies": { - "kind-of": "^6.0.2" + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dependencies": { - "shebang-regex": "^3.0.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/postcss-normalize-charset": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz", + "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==", "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "node_modules/postcss-normalize-display-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz", + "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/postcss-normalize-positions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz", + "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "devOptional": true, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz", + "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==", + "dev": true, + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, + "node_modules/postcss-normalize-string": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz", + "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz", + "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "devOptional": true, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.2.tgz", + "integrity": "sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=6" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", - "devOptional": true, + "node_modules/postcss-normalize-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz", + "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "devOptional": true, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz", + "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "postcss": "^8.4.31" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "devOptional": true - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "devOptional": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "devOptional": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "devOptional": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", - "devOptional": true, - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "devOptional": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "devOptional": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "devOptional": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "devOptional": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - } - }, - "dependencies": { - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "devOptional": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "devOptional": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "devOptional": true - }, - "@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "devOptional": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "devOptional": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "devOptional": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, - "optional": true, - "requires": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1", - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - } - }, - "@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "dev": true, - "optional": true - }, - "@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "dev": true, - "optional": true - }, - "@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "dev": true, - "optional": true - }, - "@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "dev": true, - "optional": true - }, - "@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", - "dev": true, - "optional": true - }, - "@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "dev": true, - "optional": true - }, - "@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "dev": true, - "optional": true - }, - "@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "dev": true, - "optional": true - }, - "@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "devOptional": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "devOptional": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "devOptional": true - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "devOptional": true - }, - "@types/node": { - "version": "22.13.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.0.tgz", - "integrity": "sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==", - "devOptional": true, - "requires": { - "undici-types": "~6.20.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "devOptional": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "devOptional": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "devOptional": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "devOptional": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "devOptional": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "devOptional": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "devOptional": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "devOptional": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "devOptional": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "devOptional": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "devOptional": true - }, - "acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "devOptional": true - }, - "ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "devOptional": true, - "requires": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "devOptional": true, - "requires": { - "ajv": "^8.0.0" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "devOptional": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "devOptional": true, - "requires": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "devOptional": true - }, - "caniuse-lite": { - "version": "1.0.30001696", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", - "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", - "devOptional": true - }, - "chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "requires": { - "readdirp": "^4.0.1" - } - }, - "chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "devOptional": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "optional": true - }, - "electron-to-chromium": { - "version": "1.5.90", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz", - "integrity": "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==", - "devOptional": true - }, - "enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", - "devOptional": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", - "dev": true - }, - "es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "devOptional": true - }, - "escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "devOptional": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "devOptional": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "devOptional": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "devOptional": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "devOptional": true - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", - "dev": true - }, - "import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "requires": { - "hasown": "^2.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "devOptional": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "devOptional": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "devOptional": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "devOptional": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "devOptional": true - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "optional": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "devOptional": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "devOptional": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "dev": true, - "requires": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true - }, - "node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "optional": true - }, - "node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "devOptional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "optional": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/postcss-ordered-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz", + "integrity": "sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==", "dev": true, - "requires": { - "find-up": "^4.0.0" + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "requires": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "node_modules/postcss-reduce-initial": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.2.tgz", + "integrity": "sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "requires": {} + "node_modules/postcss-reduce-transforms": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz", + "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } }, - "postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" + "node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "requires": { - "postcss-selector-parser": "^7.0.0" + "node_modules/postcss-svgo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.1.tgz", + "integrity": "sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.3.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { - "icss-utils": "^5.0.0" + "node_modules/postcss-unique-selectors": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.3.tgz", + "integrity": "sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "requires": { + "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "punycode": { + "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "devOptional": true + "devOptional": true, + "engines": { + "node": ">=6" + } }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "devOptional": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "readdirp": { + "node_modules/readdirp": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } }, - "rechoir": { + "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "requires": { + "dependencies": { "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "devOptional": true + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } }, - "resolve": { + "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-cwd": { + "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { + "dependencies": { "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "sass": { + "node_modules/sass": { "version": "1.83.4", "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.4.tgz", "integrity": "sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==", "dev": true, - "requires": { - "@parcel/watcher": "^2.4.1", + "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "node_modules/sass-loader": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", + "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", "dev": true, - "requires": { - "klona": "^2.0.4", + "license": "MIT", + "dependencies": { "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "schema-utils": { + "node_modules/schema-utils": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "devOptional": true, - "requires": { + "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "semver": { + "node_modules/semver": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==" + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "serialize-javascript": { + "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "devOptional": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "shallow-clone": { + "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } }, - "shelljs": { + "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" } }, - "shx": { + "node_modules/shx": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.3", "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } }, - "source-map-support": { + "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "devOptional": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "supports-color": { + "node_modules/stylehacks": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.4.tgz", + "integrity": "sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "postcss-selector-parser": "^6.1.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "devOptional": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "supports-preserve-symlinks-flag": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } }, - "tapable": { + "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "devOptional": true + "devOptional": true, + "engines": { + "node": ">=6" + } }, - "terser": { + "node_modules/terser": { "version": "5.37.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "devOptional": true, - "requires": { + "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser-webpack-plugin": { + "node_modules/terser-webpack-plugin": { "version": "5.3.11", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "devOptional": true, - "requires": { + "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "optional": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "undici-types": { + "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "devOptional": true }, - "update-browserslist-db": { + "node_modules/update-browserslist-db": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "devOptional": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "devOptional": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "watchpack": { + "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "devOptional": true, - "requires": { + "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "webpack": { + "node_modules/webpack": { "version": "5.97.1", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "devOptional": true, - "requires": { + "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.14.1", @@ -3771,120 +3284,193 @@ "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "devOptional": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "devOptional": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "devOptional": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "node_modules/webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^12.1.0", "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.82.0" + }, + "peerDependenciesMeta": { + "webpack-bundle-analyzer": { + "optional": true }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } + "webpack-dev-server": { + "optional": true } } }, - "webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "node_modules/webpack-cli/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-cli/node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "devOptional": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "devOptional": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "devOptional": true }, - "which": { + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "devOptional": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "wildcard": { + "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", diff --git a/package.json b/package.json index 4aa515c..cf06e0e 100755 --- a/package.json +++ b/package.json @@ -8,15 +8,15 @@ }, "dependencies": { "cross-env": "^7.0.3", - "css-loader": "^6.7.3" + "css-loader": "^7.1.2" }, "devDependencies": { - "mini-css-extract-plugin": "^2.4.5", - "sass": "^1.45.1", - "sass-loader": "^12.4.0", + "mini-css-extract-plugin": "^2.9.2", + "sass": "^1.83.4", + "sass-loader": "^16.0.4", "shx": "^0.3.4", - "webpack": "^5.65.0", - "webpack-cli": "^4.9.1" + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1" }, "scripts": { "watch": "webpack --watch --progress", diff --git a/src/js/nice-select2.js b/src/js/nice-select2.js index ef808bd..68cebb4 100644 --- a/src/js/nice-select2.js +++ b/src/js/nice-select2.js @@ -1,635 +1,506 @@ import "../scss/nice-select2.scss"; -// utility functions -// utility functions -function triggerClick(el) { - const event = new MouseEvent("click", { - bubbles: true, - cancelable: false, - }); - el.dispatchEvent(event); -} - -function triggerChange(el) { - const event = new Event("change", { - bubbles: true, - cancelable: false, - }); - el.dispatchEvent(event); -} - -function triggerFocusIn(el) { - const event = new FocusEvent("focusin", { - bubbles: true, - cancelable: false, - }); - el.dispatchEvent(event); -} - -function triggerFocusOut(el) { - const event = new FocusEvent("focusout", { - bubbles: true, - cancelable: false, - }); - el.dispatchEvent(event); -} - -function triggerModalOpen(el) { - const event = new UIEvent("modalopen", { - bubbles: true, - cancelable: false, - }); - el.dispatchEvent(event); -} - -function triggerModalClose(el) { - const event = new UIEvent("modalclose", { +const triggerEvent = (el, type, init = {}) => { + let EventConstructor; + if (type === "click") { + EventConstructor = MouseEvent; + } else if (type === "change") { + EventConstructor = Event; + } else if (type.includes("focus")) { + EventConstructor = FocusEvent; + } else { + EventConstructor = UIEvent; + } + const event = new EventConstructor(type, { bubbles: true, cancelable: false, + ...init, }); el.dispatchEvent(event); -} - -function triggerValidationMessage(el, type) { - if(type == 'invalid'){ - addClass(this.dropdown, 'invalid'); - removeClass(this.dropdown, 'valid'); - }else{ - addClass(this.dropdown, 'valid'); - removeClass(this.dropdown, 'invalid'); - } -} - -function attr(el, key) { - if(el[key] != undefined){ - return el[key]; - } - return el.getAttribute(key); -} - -function data(el, key) { - return el.getAttribute("data-" + key); -} - -function hasClass(el, className) { - if (el){ - return el.classList.contains(className); - }else{ - return false; - } -} - -function addClass(el, className) { - if (el) return el.classList.add(className); -} - -function removeClass(el, className) { - if (el) return el.classList.remove(className); -} +}; -var defaultOptions = { +const triggerClick = (el) => triggerEvent(el, "click"); +const triggerChange = (el) => triggerEvent(el, "change"); +const triggerFocusIn = (el) => triggerEvent(el, "focusin"); +const triggerFocusOut = (el) => triggerEvent(el, "focusout"); +const triggerModalOpen = (el) => triggerEvent(el, "modalopen"); +const triggerModalClose = (el) => triggerEvent(el, "modalclose"); + +const attr = (el, key) => + el[key] !== undefined ? el[key] : el.getAttribute(key); +const data = (el, key) => el.getAttribute("data-" + key); +const hasClass = (el, className) => el?.classList.contains(className); +const addClass = (el, className) => el?.classList.add(className); +const removeClass = (el, className) => el?.classList.remove(className); + +const defaultOptions = { data: null, searchable: false, - showSelectedItems: false + showSelectedItems: false, + placeholder: "Select an option", + searchtext: "Search", + selectedtext: "selected", }; -export default function NiceSelect(element, options) { - this.el = element; - this.config = Object.assign({}, defaultOptions, options || {}); - this.data = this.config.data; - this.selectedOptions = []; - - this.placeholder = attr(this.el, "placeholder") || this.config.placeholder || "Select an option"; - this.searchtext = attr(this.el, "searchtext") || this.config.searchtext || "Search"; - this.selectedtext = attr(this.el, "selectedtext") || this.config.selectedtext || "selected"; - - this.dropdown = null; - this.multiple = attr(this.el, "multiple"); - this.disabled = attr(this.el, "disabled"); - - this.create(); -} - -NiceSelect.prototype.create = function() { - this.el.style.opacity = "0"; - this.el.style.width = "0"; - this.el.style.padding = "0"; - this.el.style.height = "0"; - this.el.style.fontSize = "0"; - if (this.data) { - this.processData(this.data); - } else { - this.extractData(); +class NiceSelect { + constructor(element, options = {}) { + this.el = element; + this.config = { ...defaultOptions, ...options }; + this.data = this.config.data; + this.selectedOptions = []; + this.placeholder = attr(this.el, "placeholder") || this.config.placeholder; + this.searchtext = attr(this.el, "searchtext") || this.config.searchtext; + this.selectedtext = + attr(this.el, "selectedtext") || this.config.selectedtext; + this.dropdown = null; + this.multiple = attr(this.el, "multiple"); + this.disabled = attr(this.el, "disabled"); + this.create(); } - this.renderDropdown(); - this.bindEvent(); -}; + create() { + Object.assign(this.el.style, { + opacity: "0", + width: "0", + padding: "0", + height: "0", + fontSize: "0", + }); + this.data ? this.processData(this.data) : this.extractData(); + this.renderDropdown(); + this.bindEvent(); + } -NiceSelect.prototype.processData = function(data) { - var options = []; - data.forEach(item=> { - options.push({ + processData(data) { + this.options = data.map((item) => ({ data: item, attributes: { selected: !!item.selected, disabled: !!item.disabled, - optgroup: item.value == 'optgroup' - } - }); - }); - this.options = options; -}; + optgroup: item.value === "optgroup", + }, + })); + } -NiceSelect.prototype.extractData = function() { - var options = this.el.querySelectorAll("option,optgroup"); - var data = []; - var allOptions = []; - var selectedOptions = []; - - options.forEach(item => { - if(item.tagName == 'OPTGROUP'){ - var itemData = { - text: item.label, - value: 'optgroup' - }; - }else{ - let text = item.innerText; - if(item.dataset.display != undefined){ - text = item.dataset.display; + extractData() { + const options = Array.from(this.el.querySelectorAll("option,optgroup")); + const allOptions = []; + const selectedOptions = []; + + this.data = options.map((item) => { + let itemData; + if (item.tagName === "OPTGROUP") { + itemData = { text: item.label, value: "optgroup" }; + } else { + const text = item.dataset.display ?? item.innerText; + itemData = { + text, + value: item.value, + extra: item.dataset.extra, + selected: item.hasAttribute("selected"), + disabled: item.hasAttribute("disabled"), + }; } - - var itemData = { - text: text, - value: item.value, - extra: item.dataset.extra, - selected: item.getAttribute("selected") != null, - disabled: item.getAttribute("disabled") != null + const attributes = { + selected: item.hasAttribute("selected"), + disabled: item.hasAttribute("disabled"), + optgroup: item.tagName === "OPTGROUP", }; - } - - var attributes = { - selected: item.getAttribute("selected") != null, - disabled: item.getAttribute("disabled") != null, - optgroup: item.tagName == 'OPTGROUP' - }; - - data.push(itemData); - allOptions.push({ data: itemData, attributes: attributes }); - }); - - this.data = data; - this.options = allOptions; - this.options.forEach(item => { - if (item.attributes.selected){ - selectedOptions.push(item); - } - }); - - this.selectedOptions = selectedOptions; -}; + const optionObj = { data: itemData, attributes, element: null }; + allOptions.push(optionObj); + if (attributes.selected) selectedOptions.push(optionObj); + return itemData; + }); -NiceSelect.prototype.renderDropdown = function() { - var classes = [ - "nice-select", - attr(this.el, "class") || "", - this.disabled ? "disabled" : "", - this.multiple ? "has-multiple" : "" - ]; - - let searchHtml = ``; - - var html = `
              `; - html += ``; - html += `
              `; - html += `${this.config.searchable ? searchHtml : ""}`; - html += `
                `; - html += `
                `; - html += `
                `; - - this.el.insertAdjacentHTML("afterend", html); - - this.dropdown = this.el.nextElementSibling; - this._renderSelectedItems(); - this._renderItems(); -}; + this.options = allOptions; + this.selectedOptions = selectedOptions; + } -NiceSelect.prototype._renderSelectedItems = function() { - if (this.multiple) { - var selectedHtml = ""; - if(this.config.showSelectedItems || this.config.showSelectedItems || window.getComputedStyle(this.dropdown).width == 'auto' || this.selectedOptions.length < 2){ - this.selectedOptions.forEach(function(item) { - selectedHtml += `${item.data.text}`; - }); + renderDropdown() { + const classes = [ + "nice-select", + attr(this.el, "class") || "", + this.disabled ? "disabled" : "", + this.multiple ? "has-multiple" : "", + ].filter(Boolean); + + const searchHtml = this.config.searchable + ? ` + + ` + : ""; + + const html = ` +
                + +
                + ${searchHtml} +
                  +
                  +
                  + `; + this.el.insertAdjacentHTML("afterend", html); + this.dropdown = this.el.nextElementSibling; + this._renderSelectedItems(); + this._renderItems(); + } - selectedHtml = selectedHtml == "" ? this.placeholder : selectedHtml; - }else{ - selectedHtml = this.selectedOptions.length+' '+this.selectedtext; + _renderSelectedItems() { + if (this.multiple) { + let selectedHtml = ""; + if ( + this.config.showSelectedItems || + window.getComputedStyle(this.dropdown).width === "auto" || + this.selectedOptions.length < 2 + ) { + this.selectedOptions.forEach((item) => { + selectedHtml += `${item.data.text}`; + }); + selectedHtml = selectedHtml || this.placeholder; + } else { + selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`; + } + this.dropdown.querySelector(".multiple-options").innerHTML = selectedHtml; + } else { + const html = + this.selectedOptions.length > 0 + ? this.selectedOptions[0].data.text + : this.placeholder; + this.dropdown.querySelector(".current").innerHTML = html; } - - this.dropdown.querySelector(".multiple-options").innerHTML = selectedHtml; - } else { - var html = this.selectedOptions.length > 0 ? this.selectedOptions[0].data.text : this.placeholder; - - this.dropdown.querySelector(".current").innerHTML = html; } -}; - -NiceSelect.prototype._renderItems = function() { - var ul = this.dropdown.querySelector("ul"); - this.options.forEach(item => { - ul.appendChild(this._renderItem(item)); - }); -}; - -NiceSelect.prototype._renderItem = function(option) { - var el = document.createElement("li"); - - el.innerHTML = option.data.text; - if(option.data.extra != undefined) { - el.appendChild(this._renderItemExtra(option.data.extra)); + _renderItems() { + const ul = this.dropdown.querySelector("ul"); + this.options.forEach((item) => ul.appendChild(this._renderItem(item))); } - if(option.attributes.optgroup){ - addClass(el, 'optgroup'); - }else{ - el.setAttribute("data-value", option.data.value); - var classList = [ - "option", - option.attributes.selected ? "selected" : null, - option.attributes.disabled ? "disabled" : null, - ]; - - el.addEventListener("click", this._onItemClicked.bind(this, option)); - el.classList.add(...classList); + _renderItem(option) { + const li = document.createElement("li"); + li.innerHTML = option.data.text; + if (option.data.extra !== undefined) { + li.appendChild(this._renderItemExtra(option.data.extra)); + } + if (option.attributes.optgroup) { + addClass(li, "optgroup"); + } else { + li.setAttribute("data-value", option.data.value); + const classList = ["option"]; + if (option.attributes.selected) classList.push("selected"); + if (option.attributes.disabled) classList.push("disabled"); + li.classList.add(...classList); + li.addEventListener("click", (e) => this._onItemClicked(option, e)); + } + option.element = li; + return li; } - option.element = el; - return el; -}; - -NiceSelect.prototype._renderItemExtra = function(content) { - var el = document.createElement("span"); - el.innerHTML = content; - addClass(el, "extra"); - return el; -} - -NiceSelect.prototype.update = function() { - this.extractData(); - if (this.dropdown) { - var open = hasClass(this.dropdown, "open"); - this.dropdown.parentNode.removeChild(this.dropdown); - this.create(); + _renderItemExtra(content) { + const span = document.createElement("span"); + span.innerHTML = content; + addClass(span, "extra"); + return span; + } - if (open) { - triggerClick(this.dropdown); + update() { + this.extractData(); + if (this.dropdown) { + const open = hasClass(this.dropdown, "open"); + this.dropdown.remove(); + this.create(); + if (open) { + triggerClick(this.dropdown); + } } + attr(this.el, "disabled") ? this.disable() : this.enable(); } - if(attr(this.el, "disabled")) { - this.disable(); - } else { - this.enable(); + disable() { + if (!this.disabled) { + this.disabled = true; + addClass(this.dropdown, "disabled"); + } } -}; -NiceSelect.prototype.disable = function() { - if (!this.disabled) { - this.disabled = true; - addClass(this.dropdown, "disabled"); + enable() { + if (this.disabled) { + this.disabled = false; + removeClass(this.dropdown, "disabled"); + } } -}; -NiceSelect.prototype.enable = function() { - if (this.disabled) { - this.disabled = false; - removeClass(this.dropdown, "disabled"); + clear() { + this.resetSelectValue(); + this.selectedOptions = []; + this._renderSelectedItems(); + this.update(); + triggerChange(this.el); } -}; -NiceSelect.prototype.clear = function() { - this.resetSelectValue(); - this.selectedOptions = []; - this._renderSelectedItems(); - this.update(); - - triggerChange(this.el); -}; - -NiceSelect.prototype.destroy = function() { - if (this.dropdown) { - this.dropdown.parentNode.removeChild(this.dropdown); - this.el.style.display = ""; + destroy() { + if (this.dropdown) { + this.dropdown.remove(); + this.el.style.display = ""; + } } -}; -NiceSelect.prototype.bindEvent = function() { - var $this = this; - this.dropdown.addEventListener("click", this._onClicked.bind(this)); - this.dropdown.addEventListener("keydown", this._onKeyPressed.bind(this)); - this.dropdown.addEventListener("focusin", triggerFocusIn.bind(this, this.el)); - this.dropdown.addEventListener("focusout", triggerFocusOut.bind(this, this.el)); - this.el.addEventListener("invalid", triggerValidationMessage.bind(this, this.el, 'invalid')); - window.addEventListener("click", this._onClickedOutside.bind(this)); - - if (this.config.searchable) { - this._bindSearchEvent(); + bindEvent() { + this.dropdown.addEventListener("click", (e) => this._onClicked(e)); + this.dropdown.addEventListener("keydown", (e) => this._onKeyPressed(e)); + this.dropdown.addEventListener("focusin", () => triggerFocusIn(this.el)); + this.dropdown.addEventListener("focusout", () => triggerFocusOut(this.el)); + this.el.addEventListener("invalid", () => + this._triggerValidationMessage("invalid") + ); + window.addEventListener("click", (e) => this._onClickedOutside(e)); + if (this.config.searchable) this._bindSearchEvent(); } -}; -NiceSelect.prototype._bindSearchEvent = function() { - var searchBox = this.dropdown.querySelector(".nice-select-search"); - if (searchBox){ - searchBox.addEventListener("click", function(e) { - e.stopPropagation(); - return false; - }); + _bindSearchEvent() { + const searchBox = this.dropdown.querySelector(".nice-select-search"); + if (searchBox) { + searchBox.addEventListener("click", (e) => e.stopPropagation()); + searchBox.addEventListener("input", (e) => this._onSearchChanged(e)); + } } - searchBox.addEventListener("input", this._onSearchChanged.bind(this)); -}; - -NiceSelect.prototype._onClicked = function(e) { - e.preventDefault(); - if (!hasClass(this.dropdown, "open") ) { - addClass(this.dropdown, "open"); - triggerModalOpen(this.el); - } else { - if (this.multiple) { - if (e.target == this.dropdown.querySelector('.multiple-options')) { - removeClass(this.dropdown, "open"); - triggerModalClose(this.el); - } - - } else { - removeClass(this.dropdown, "open"); - triggerModalClose(this.el); - } - } - - if (hasClass(this.dropdown, "open")) { - var search = this.dropdown.querySelector(".nice-select-search"); - if (search) { - search.value = ""; - search.focus(); + _onClicked(e) { + e.preventDefault(); + const isOpen = hasClass(this.dropdown, "open"); + if (!isOpen) { + addClass(this.dropdown, "open"); + triggerModalOpen(this.el); + } else { + if (this.multiple) { + if (e.target === this.dropdown.querySelector(".multiple-options")) { + removeClass(this.dropdown, "open"); + triggerModalClose(this.el); + } + } else { + removeClass(this.dropdown, "open"); + triggerModalClose(this.el); + } + } + if (hasClass(this.dropdown, "open")) { + const search = this.dropdown.querySelector(".nice-select-search"); + if (search) { + search.value = ""; + search.focus(); + } + const focused = this.dropdown.querySelector(".focus"); + if (focused) removeClass(focused, "focus"); + const selected = this.dropdown.querySelector(".selected"); + if (selected) addClass(selected, "focus"); + this.dropdown + .querySelectorAll("ul li") + .forEach((item) => (item.style.display = "")); + } else { + this.dropdown.focus(); } - - var t = this.dropdown.querySelector(".focus"); - removeClass(t, "focus"); - t = this.dropdown.querySelector(".selected"); - addClass(t, "focus"); - this.dropdown.querySelectorAll("ul li").forEach(function(item) { - item.style.display = ""; - }); - } else { - this.dropdown.focus(); } -}; -NiceSelect.prototype._onItemClicked = function(option, e) { - var optionEl = e.target; - - if (!hasClass(optionEl, "disabled")) { - if (this.multiple) { - if (hasClass(optionEl, "selected")) { - removeClass(optionEl, "selected"); - this.selectedOptions.splice(this.selectedOptions.indexOf(option), 1); - var opt = this.el.querySelector(`option[value="${optionEl.dataset.value}"]`); - opt.removeAttribute('selected'); - opt.selected = false; - }else{ + _onItemClicked(option, e) { + const optionEl = e.target; + if (!hasClass(optionEl, "disabled")) { + if (this.multiple) { + if (hasClass(optionEl, "selected")) { + removeClass(optionEl, "selected"); + this.selectedOptions = this.selectedOptions.filter( + (item) => item !== option + ); + const opt = this.el.querySelector( + `option[value="${optionEl.dataset.value}"]` + ); + if (opt) { + opt.removeAttribute("selected"); + opt.selected = false; + } + } else { + addClass(optionEl, "selected"); + this.selectedOptions.push(option); + } + } else { + this.options.forEach((item) => removeClass(item.element, "selected")); addClass(optionEl, "selected"); - this.selectedOptions.push(option); + this.selectedOptions = [option]; } - } else { - this.options.forEach(function (item) { - removeClass(item.element, "selected"); - }); - this.selectedOptions.forEach(function (item) { - removeClass(item.element, "selected"); - }); - - addClass(optionEl, "selected"); - this.selectedOptions = [option]; + this._renderSelectedItems(); + this.updateSelectValue(); } - - this._renderSelectedItems(); - this.updateSelectValue(); } -}; - -NiceSelect.prototype.setValue = function(value){ - var select = this.el,noSelected = true,currentValue; - if(select.multiple){ - for(var i = 0; i < value.length; i++){ - value[i] = String(value[i]); - } - } - - for(var opt of select.options){ - if(select.multiple){ - if(value.indexOf(opt.value) > -1){ //-- expect Array like [1,2,3] - currentValue = opt.value; - }else{ - currentValue = null; - } - }else{ - currentValue = value; - } - - if(opt.value == currentValue && !opt.disabled){ - if(noSelected){ - select.value = currentValue; - noSelected = false; - } - opt.setAttribute('selected',true); - opt.selected = true; - }else{ - opt.removeAttribute('selected'); - delete(opt.selected); + setValue(value) { + const select = this.el; + let noSelected = true; + if (select.multiple) { + value = value.map(String); + } + for (const opt of select.options) { + const currentValue = select.multiple + ? value.includes(opt.value) + ? opt.value + : null + : value; + if (opt.value === currentValue && !opt.disabled) { + if (noSelected) { + select.value = currentValue; + noSelected = false; } + opt.setAttribute("selected", true); + opt.selected = true; + } else { + opt.removeAttribute("selected"); + opt.selected = false; + } } - if(noSelected && !select.multiple){ - select.options[0].setAttribute('selected',true); - select.options[0].selected = true; - select.value = select.options[0].value; + if (noSelected && !select.multiple && select.options.length) { + select.options[0].setAttribute("selected", true); + select.options[0].selected = true; + select.value = select.options[0].value; } - this.update(); -} + } -NiceSelect.prototype.getValue = function(){ - var select = this.el; - if(!select.multiple){ - return select.value; - } - - //-- multiple - var values = []; - for(var opt of select.options){ - if(opt.selected){ - values.push(opt.value); + getValue() { + const select = this.el; + if (!select.multiple) return select.value; + return Array.from(select.options) + .filter((opt) => opt.selected) + .map((opt) => opt.value); + } + + updateSelectValue() { + if (this.multiple) { + const select = this.el; + this.selectedOptions.forEach((item) => { + const el = select.querySelector(`option[value="${item.data.value}"]`); + if (el) { + el.setAttribute("selected", true); + } else { + console.error("Option not found, does it have a value?"); } + }); + } else if (this.selectedOptions.length > 0) { + this.el.value = this.selectedOptions[0].data.value; } - return values; -} - -NiceSelect.prototype.updateSelectValue = function() { - if (this.multiple) { - var select = this.el; - this.selectedOptions.forEach(function(item) { - var el = select.querySelector(`option[value="${item.data.value}"]`); - if (el){ - el.setAttribute("selected", true); - }else{ - console.error("Option not found, does it have a value?"); - } - }); - } else if (this.selectedOptions.length > 0) { - this.el.value = this.selectedOptions[0].data.value; + triggerChange(this.el); } - triggerChange(this.el); -}; -NiceSelect.prototype.resetSelectValue = function() { - if (this.multiple) { - var select = this.el; - this.selectedOptions.forEach(function(item) { - var el = select.querySelector(`option[value="${item.data.value}"]`); - if (el){ - el.removeAttribute("selected"); - delete(el.selected); - } - }); - } else if (this.selectedOptions.length > 0) { - this.el.selectedIndex = -1; + resetSelectValue() { + if (this.multiple) { + const select = this.el; + this.selectedOptions.forEach((item) => { + const el = select.querySelector(`option[value="${item.data.value}"]`); + if (el) { + el.removeAttribute("selected"); + el.selected = false; + } + }); + } else if (this.selectedOptions.length > 0) { + this.el.selectedIndex = -1; + } + triggerChange(this.el); } - triggerChange(this.el); -}; - -NiceSelect.prototype._onClickedOutside = function(e) { - if (!this.dropdown.contains(e.target)) { - removeClass(this.dropdown, "open"); - triggerModalClose(this.el); + _onClickedOutside(e) { + if (!this.dropdown.contains(e.target)) { + removeClass(this.dropdown, "open"); + triggerModalClose(this.el); + } } -}; -NiceSelect.prototype._onKeyPressed = function(e) { - // Keyboard events - - var focusedOption = this.dropdown.querySelector(".focus"); - - var open = hasClass(this.dropdown, "open"); - - // Enter - if (e.keyCode == 13) { - if (open) { - triggerClick(focusedOption); - } else { - triggerClick(this.dropdown); - } - } else if (e.keyCode == 40) { - // Down - if (!open) { - triggerClick(this.dropdown); - } else { - var next = this._findNext(focusedOption); - if (next) { - var t = this.dropdown.querySelector(".focus"); - removeClass(t, "focus"); - addClass(next, "focus"); + _onKeyPressed(e) { + const focusedOption = this.dropdown.querySelector(".focus"); + const isOpen = hasClass(this.dropdown, "open"); + if (e.keyCode === 13) { + isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown); + } else if (e.keyCode === 40) { + if (!isOpen) { + triggerClick(this.dropdown); + } else { + const next = this._findNext(focusedOption); + if (next) { + if (focusedOption) removeClass(focusedOption, "focus"); + addClass(next, "focus"); + } } - } - e.preventDefault(); - } else if (e.keyCode == 38) { - // Up - if (!open) { - triggerClick(this.dropdown); - } else { - var prev = this._findPrev(focusedOption); - if (prev) { - var t = this.dropdown.querySelector(".focus"); - removeClass(t, "focus"); - addClass(prev, "focus"); + e.preventDefault(); + } else if (e.keyCode === 38) { + if (!isOpen) { + triggerClick(this.dropdown); + } else { + const prev = this._findPrev(focusedOption); + if (prev) { + if (focusedOption) removeClass(focusedOption, "focus"); + addClass(prev, "focus"); + } } + e.preventDefault(); + } else if (e.keyCode === 27 && isOpen) { + triggerClick(this.dropdown); + } else if (e.keyCode === 32 && isOpen) { + return false; } - e.preventDefault(); - } else if (e.keyCode == 27 && open) { - // Esc - triggerClick(this.dropdown); - } else if(e.keyCode === 32 && open) { - // Space - return false; - } - return false; -}; - -NiceSelect.prototype._findNext = function(el) { - if (el) { - el = el.nextElementSibling; - } else { - el = this.dropdown.querySelector(".list .option"); + return false; } - while (el) { - if (!hasClass(el, "disabled") && el.style.display != "none") { - return el; + _findNext(el) { + let nextEl = el + ? el.nextElementSibling + : this.dropdown.querySelector(".list .option"); + while (nextEl) { + if (!hasClass(nextEl, "disabled") && nextEl.style.display !== "none") + return nextEl; + nextEl = nextEl.nextElementSibling; } - el = el.nextElementSibling; + return null; } - return null; -}; - -NiceSelect.prototype._findPrev = function(el) { - if (el) { - el = el.previousElementSibling; - } else { - el = this.dropdown.querySelector(".list .option:last-child"); + _findPrev(el) { + let prevEl = el + ? el.previousElementSibling + : this.dropdown.querySelector(".list .option:last-child"); + while (prevEl) { + if (!hasClass(prevEl, "disabled") && prevEl.style.display !== "none") + return prevEl; + prevEl = prevEl.previousElementSibling; + } + return null; } - while (el) { - if (!hasClass(el, "disabled") && el.style.display != "none") { - return el; + _onSearchChanged(e) { + const text = e.target.value.toLowerCase(); + if (text === "") { + this.options.forEach((item) => (item.element.style.display = "")); + } else if (hasClass(this.dropdown, "open")) { + const matchReg = new RegExp(text); + this.options.forEach((item) => { + item.element.style.display = matchReg.test(item.data.text.toLowerCase()) + ? "" + : "none"; + }); } - el = el.previousElementSibling; + this.dropdown + .querySelectorAll(".focus") + .forEach((item) => removeClass(item, "focus")); + const firstEl = this._findNext(null); + if (firstEl) addClass(firstEl, "focus"); } - return null; -}; - -NiceSelect.prototype._onSearchChanged = function(e) { - var open = hasClass(this.dropdown, "open"); - var text = e.target.value; - text = text.toLowerCase(); - - if (text == "") { - this.options.forEach(function(item) { - item.element.style.display = ""; - }); - } else if (open) { - var matchReg = new RegExp(text); - this.options.forEach(function(item) { - var optionText = item.data.text.toLowerCase(); - var matched = matchReg.test(optionText); - item.element.style.display = matched ? "" : "none"; - }); + _triggerValidationMessage(type) { + if (type === "invalid") { + addClass(this.dropdown, "invalid"); + removeClass(this.dropdown, "valid"); + } else { + addClass(this.dropdown, "valid"); + removeClass(this.dropdown, "invalid"); + } } +} - this.dropdown.querySelectorAll(".focus").forEach(function(item) { - removeClass(item, "focus"); - }); - - var firstEl = this._findNext(null); - addClass(firstEl, "focus"); -}; - +export default NiceSelect; export function bind(el, options) { return new NiceSelect(el, options); } diff --git a/src/scss/_prism.scss b/src/scss/_prism.scss index dd0c123..81b0d00 100644 --- a/src/scss/_prism.scss +++ b/src/scss/_prism.scss @@ -1,51 +1,58 @@ +@use "sass:color"; + +$gray_dark: #445870 !default; +$gray_lighter: #f6f7f9 !default; +$gray: #90a1b5 !default; +$blue: #55a1fb !default; + code[class*="language-"], pre[class*="language-"] { - border-radius: 2px; - color: $gray_dark; - hyphens: none; - line-height: 1.5; - tab-size: 4; - text-align: left; - white-space: pre; - word-break: normal; - word-spacing: normal; - word-wrap: normal; + border-radius: 2px; + color: $gray_dark; + hyphens: none; + line-height: 1.5; + tab-size: 4; + text-align: left; + white-space: pre; + word-break: normal; + word-spacing: normal; + word-wrap: normal; direction: ltr; font-family: Inconsolata, monospace; - font-size: 13px; + font-size: 13px; letter-spacing: 0; } /* Code blocks */ pre[class*="language-"] { - padding: 18px 24px; - margin: 0 0 24px; - overflow: auto; + padding: 18px 24px; + margin: 0 0 24px; + overflow: auto; } :not(pre) > code[class*="language-"], pre[class*="language-"] { - background: $gray_lighter; + background: $gray_lighter; } /* Inline code */ :not(pre) > code[class*="language-"] { - padding: 0 2px 1px; + padding: 0 2px 1px; } .token.comment, .token.prolog, .token.doctype, .token.cdata { - color: $gray; + color: $gray; } .token.punctuation { - color: #999; + color: #999; } .namespace { - opacity: .7; + opacity: 0.7; } .token.property, @@ -55,7 +62,7 @@ pre[class*="language-"] { .token.constant, .token.symbol, .token.deleted { - color: #EC4444; + color: #ec4444; } .token.selector, @@ -64,7 +71,7 @@ pre[class*="language-"] { .token.char, .token.builtin, .token.inserted { - color: #4ABF60; + color: #4abf60; } .token.operator, @@ -72,34 +79,35 @@ pre[class*="language-"] { .token.url, .language-css .token.string, .style .token.string { - color: #a67f59; - background: hsla(0, 0%, 100%, .5); + color: #a67f59; + background: color.adjust(#fff, $alpha: -0.5); } .token.atrule, .token.attr-value, .token.keyword { - color: $blue; + color: $blue; } .token.function { - color: #DD4A68; + color: #dd4a68; } .token.regex, .token.important, .token.variable { - color: #e90; + color: #e90; } .token.important, .token.bold { - font-weight: bold; + font-weight: bold; } + .token.italic { - font-style: italic; + font-style: italic; } .token.entity { - cursor: help; -} + cursor: help; +} \ No newline at end of file diff --git a/src/scss/nice-select2.scss b/src/scss/nice-select2.scss index 5c2fe00..6e8d156 100644 --- a/src/scss/nice-select2.scss +++ b/src/scss/nice-select2.scss @@ -1,4 +1,6 @@ -@use 'sass:math'; +@use "sass:math"; +@use "sass:color"; + // Default variables $font_size: 14px !default; $font_size_small: 12px !default; @@ -40,32 +42,36 @@ $arrow_color: $gray !default; user-select: none; white-space: nowrap; width: auto; + &:hover { - border-color: darken($gray_light, 5%); + border-color: color.adjust($gray_light, $lightness: -5%); } - &:active, &:focus { + + &:active, + &:focus { border-color: $primary_light; } + // Arrow - &:after { + &:after { border-bottom: 2px solid $arrow_color; border-right: 2px solid $arrow_color; - content: ''; - display: block; + content: ""; + display: block; height: 5px; margin-top: -4px; pointer-events: none; - position: absolute; - right: 12px; - top: 50%; + position: absolute; + right: 12px; + top: 50%; transform-origin: 66% 66%; transform: rotate(45deg); transition: all 0.15s ease-in-out; width: 5px; } - + &.open { - @extend :active; + border-color: $primary_light; &:after { transform: rotate(-135deg); } @@ -75,15 +81,16 @@ $arrow_color: $gray !default; transform: scale(1) translateY(0); } } + &.disabled { - border-color: lighten($gray_light, 2%); + border-color: color.adjust($gray_light, $lightness: 2%); color: $gray; pointer-events: none; - &:after { - border-color: lighten($arrow_color, 20%); + &:after { + border-color: color.adjust($arrow_color, $lightness: 20%); } } - + // Modifiers &.wide { width: 100%; @@ -92,6 +99,7 @@ $arrow_color: $gray !default; right: 0 !important; } } + &.right { float: right; .nice-select-dropdown { @@ -99,11 +107,12 @@ $arrow_color: $gray !default; right: 0; } } + &.small { font-size: $font_size_small; height: $input_height_small; line-height: $input_height_small - 2; - &:after { + &:after { height: 4px; width: 4px; } @@ -113,18 +122,18 @@ $arrow_color: $gray !default; } } - .nice-select-dropdown{ + .nice-select-dropdown { margin-top: 4px; background-color: #fff; border-radius: $input_border_radius; - box-shadow: 0 0 0 1px rgba($gray_dark, .11); - + box-shadow: 0 0 0 1px rgba($gray_dark, 0.11); pointer-events: none; position: absolute; - top: 100%; left: 0; + top: 100%; + left: 0; transform-origin: 50% 0; - transform: scale(.75) translateY(- math.div(-$input-height, 2)); - transition: all .2s cubic-bezier(0.5, 0, 0, 1.25), opacity .15s ease-out; + transform: scale(0.75) translateY(math.div($input_height, 2)); + transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; z-index: 9; opacity: 0; } @@ -142,6 +151,7 @@ $arrow_color: $gray !default; background-color: transparent !important; } } + .option { cursor: pointer; font-weight: 400; @@ -152,12 +162,17 @@ $arrow_color: $gray !default; padding-right: $dropdown_padding + 11; text-align: left; transition: all 0.2s; - &:hover, &.focus, &.selected.focus { + + &:hover, + &.focus, + &.selected.focus { background-color: $gray_lighter; } - &.selected { + + &.selected { font-weight: bold; } + &.disabled { background-color: transparent; color: $gray; @@ -168,13 +183,13 @@ $arrow_color: $gray !default; .extra { float: right; } - - .optgroup{ + + .optgroup { font-weight: bold; } } -// Use display instead of opacity for IE <= 10 +// Fallback for IE <= 10 .no-csspointerevents .nice-select { .nice-select-dropdown { display: none; @@ -186,15 +201,11 @@ $arrow_color: $gray !default; } } - .nice-select .list::-webkit-scrollbar { - width: 0 + width: 0; } - - - -.nice-select{ +.nice-select { .has-multiple { white-space: inherit; height: auto; @@ -203,21 +214,21 @@ $arrow_color: $gray !default; line-height: 22px; span.current { - border: 1px solid #CCC; - background: #EEE; + border: 1px solid #ccc; + background: #eee; padding: 0 10px; border-radius: 3px; display: inline-block; line-height: 24px; font-size: 14px; margin-bottom: 3px; - margin-right: 3px + margin-right: 3px; } .multiple-options { display: block; line-height: 24px; - padding: 0 + padding: 0; } } @@ -243,7 +254,7 @@ $arrow_color: $gray !default; min-height: 36px; line-height: 22px; height: auto; - outline: 0!important; + outline: 0 !important; font-size: $font_size; } -} +} \ No newline at end of file diff --git a/src/scss/style.scss b/src/scss/style.scss index c5e6081..0c8439f 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -1,32 +1,39 @@ -$gray_dark: #445870; -$gray: #90a1b5; -$gray_light: #e0e7ee; -$gray_lighter: #f6f7f9; -$blue: #55a1fb; -$blue_light: #88bfff; -$primary: $blue; -$primary_light: $blue_light; - +@use "sass:color"; +@use "./prism" with ( + $gray_dark: #445870, + $gray_lighter: #f6f7f9, + $gray: #90a1b5, + $blue: #55a1fb +); // Default variables $font_size: 14px !default; $font_size_small: 12px !default; $input_border_radius: 5px !default; -$input_height: 38px; +$input_height: 38px !default; $input_height_small: 36px !default; $dropdown_padding: 18px !default; $gray_dark: #444 !default; $gray: #999 !default; -$gray_light: #e8e8e8 ; +$gray_light: #e8e8e8 !default; $gray_lighter: #f6f6f6 !default; $primary_light: $gray !default; $arrow_color: $gray !default; -@import "./prism"; +// Override defaults +$gray_dark: #445870; +$gray: #90a1b5; +$gray_light: #e0e7ee; +$gray_lighter: #f6f7f9; +$blue: #55a1fb; +$blue_light: #88bfff; +$primary: $blue; +$primary_light: $blue_light; @mixin clearfix() { - &:before, &:after { + &:before, + &:after { content: ""; display: table; } @@ -39,7 +46,7 @@ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: $gray_dark; - font-family: 'Work Sans', sans-serif; + font-family: "Work Sans", sans-serif; font-size: 14px; font-weight: normal; letter-spacing: -0.25px; @@ -67,7 +74,7 @@ h2 { } h3 { - font-size: 18px; + font-size: 18px; font-weight: 400; margin: 0 0 12px; padding-top: 12px; @@ -85,13 +92,15 @@ a:not(.button) { -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; border-bottom: 1px solid transparent; - &:hover, &:focus { + + &:hover, + &:focus { border-bottom: 1px solid $primary_light; } } ::selection { - background: darken($gray_lighter, 1%); + background: color.adjust($gray_lighter, $lightness: -1%); } .container { @@ -113,6 +122,7 @@ label { margin: 0 2px 4px; text-transform: uppercase; float: left; + &.right { float: right; } @@ -138,40 +148,50 @@ label { transition: all 0.2s ease-in-out; white-space: nowrap; width: auto; - &:hover, &:focus { - background-color: darken($primary, 4%); + + &:hover, + &:focus { + background-color: color.adjust($primary, $lightness: -4%); } + &:active { - background-color: darken($primary, 8%); + background-color: color.adjust($primary, $lightness: -8%); } + &.light { background-color: #fff; border: 1px solid $gray_light; color: $primary; line-height: $input_height - 2; margin-left: 24px; + &:hover { - border-color: darken($gray_light, 5%); + border-color: color.adjust($gray_light, $lightness: -5%); } - &:active, &:focus { + + &:active, + &:focus { border-color: $primary_light; } } + @media screen and (max-width: 360px) { width: 100%; + &.light { margin: 18px 0 0; } } } - .header { - text-align: center; + text-align: center; margin-bottom: 60px; + @media screen and (min-width: 600px) { padding: 0 18px; } + p { color: $gray; font-size: 18px; @@ -181,6 +201,7 @@ label { .footer { text-align: center; + p { margin-bottom: 90px; } @@ -191,4 +212,4 @@ label { clear: both; font-size: $font_size_small; margin-top: 90px; -} +} \ No newline at end of file From a3d805074e9d025c2f5681a8508dc251786bed6b Mon Sep 17 00:00:00 2001 From: Mohammad Baghaei Date: Wed, 5 Feb 2025 08:40:34 +0330 Subject: [PATCH 2/6] add source map --- dist/css/nice-select2.css | 2 + dist/css/nice-select2.css.map | 1 + dist/css/style.css | 2 + dist/css/style.css.map | 1 + dist/js/nice-select2.js | 3 +- dist/js/nice-select2.js.map | 1 + dist/js/style.js | 3 +- dist/js/style.js.map | 1 + docs/dist/css/nice-select2.css | 2 + docs/dist/css/nice-select2.css.map | 1 + docs/dist/css/style.css | 2 + docs/dist/css/style.css.map | 1 + docs/dist/js/nice-select2.js | 3 +- docs/dist/js/nice-select2.js.map | 1 + docs/dist/js/style.js | 3 +- docs/dist/js/style.js.map | 1 + webpack.config.js | 81 ++++++++++++++++-------------- 17 files changed, 68 insertions(+), 41 deletions(-) create mode 100644 dist/css/nice-select2.css.map create mode 100644 dist/css/style.css.map create mode 100644 dist/js/nice-select2.js.map create mode 100644 dist/js/style.js.map create mode 100644 docs/dist/css/nice-select2.css.map create mode 100644 docs/dist/css/style.css.map create mode 100644 docs/dist/js/nice-select2.js.map create mode 100644 docs/dist/js/style.js.map diff --git a/dist/css/nice-select2.css b/dist/css/nice-select2.css index dfdb552..a5af4fa 100644 --- a/dist/css/nice-select2.css +++ b/dist/css/nice-select2.css @@ -1 +1,3 @@ .nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:hsl(0,0%,85.9803921569%)}.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open{border-color:#999}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:rgb(237.1,237.1,237.1);color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .extra{float:right}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} + +/*# sourceMappingURL=nice-select2.css.map*/ \ No newline at end of file diff --git a/dist/css/nice-select2.css.map b/dist/css/nice-select2.css.map new file mode 100644 index 0000000..7dc5b14 --- /dev/null +++ b/dist/css/nice-select2.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/nice-select2.css","mappings":"AAoBA,aACE,0CACA,sBACA,iBAhBoB,CAiBpB,yBACA,sBACA,WACA,eACA,cACA,WACA,oBACA,cA3BU,CA4BV,mBACA,WAzBa,CA0Bb,iBACA,aACA,iBA1BiB,CA2BjB,mBACA,kBACA,2BACA,+BACA,iBACA,mBACA,WAEA,mBACE,sCAGF,uCAEE,iBAtCG,CA0CL,mBACE,6BACA,4BACA,WACA,cACA,WACA,gBACA,oBACA,kBACA,WACA,QACA,yBACA,wBACA,gCACA,UAGF,kBACE,iBA5DG,CA6DH,wBACE,0BAEF,wCACE,UACA,oBACA,iCAIJ,sBACE,oCACA,UAzEG,CA0EH,oBACA,4BACE,kBAKJ,kBACE,WACA,wCACE,kBACA,mBAIJ,mBACE,YACA,yCACE,UACA,QAIJ,mBACE,cA1Gc,CA2Gd,WAvGiB,CAwGjB,iBACA,yBACE,WACA,UAEF,2BACE,iBACA,gBAIJ,mCACE,eACA,sBACA,iBAxHkB,CAyHlB,wCACA,oBACA,kBACA,SACA,OACA,uBACA,uCACA,uEACA,UACA,UAIF,mBACE,iBAvIkB,CAwIlB,sBACA,gBACA,UACA,iBACA,gBAEA,6CACE,0CAIJ,qBACE,eACA,gBACA,iBACA,gBACA,aACA,iBAtJe,CAuJf,mBACA,gBACA,mBAEA,0FAGE,wBAzJS,CA4JX,8BACE,iBAGF,8BACE,+BACA,UApKC,CAqKD,eAIJ,oBACE,YAGF,uBACE,iBAMF,wDACE,aAGA,6DACE,cAKN,sCACE,QAIA,2BACE,oBACA,YACA,iBACA,gBACA,iBAEA,wCACE,sBACA,gBACA,eACA,kBACA,qBACA,iBACA,eACA,kBACA,iBAGF,6CACE,cACA,iBACA,UAIJ,qCACE,sBACA,WACA,YACA,oBACA,0BAGF,iCACE,sBACA,sBACA,yBACA,kBACA,UA3OQ,CA4OR,qBACA,sBACA,iBACA,kBACA,WACA,gBACA,iBACA,YACA,qBACA,cA7PQ,C","sources":["webpack://NiceSelect/./src/scss/nice-select2.scss"],"sourcesContent":["@use \"sass:math\";\r\n@use \"sass:color\";\r\n\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px !default;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 !default;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n// Style the dropdown\r\n.nice-select {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n border: solid 1px $gray_light;\r\n box-sizing: border-box;\r\n clear: both;\r\n cursor: pointer;\r\n display: block;\r\n float: left;\r\n font-family: inherit;\r\n font-size: $font_size;\r\n font-weight: normal;\r\n height: $input_height;\r\n line-height: $input_height - 2;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 12;\r\n position: relative;\r\n text-align: left !important;\r\n transition: all 0.2s ease-in-out;\r\n user-select: none;\r\n white-space: nowrap;\r\n width: auto;\r\n\r\n &:hover {\r\n border-color: color.adjust($gray_light, $lightness: -5%);\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n border-color: $primary_light;\r\n }\r\n\r\n // Arrow\r\n &:after {\r\n border-bottom: 2px solid $arrow_color;\r\n border-right: 2px solid $arrow_color;\r\n content: \"\";\r\n display: block;\r\n height: 5px;\r\n margin-top: -4px;\r\n pointer-events: none;\r\n position: absolute;\r\n right: 12px;\r\n top: 50%;\r\n transform-origin: 66% 66%;\r\n transform: rotate(45deg);\r\n transition: all 0.15s ease-in-out;\r\n width: 5px;\r\n }\r\n\r\n &.open {\r\n border-color: $primary_light;\r\n &:after {\r\n transform: rotate(-135deg);\r\n }\r\n .nice-select-dropdown {\r\n opacity: 1;\r\n pointer-events: auto;\r\n transform: scale(1) translateY(0);\r\n }\r\n }\r\n\r\n &.disabled {\r\n border-color: color.adjust($gray_light, $lightness: 2%);\r\n color: $gray;\r\n pointer-events: none;\r\n &:after {\r\n border-color: color.adjust($arrow_color, $lightness: 20%);\r\n }\r\n }\r\n\r\n // Modifiers\r\n &.wide {\r\n width: 100%;\r\n .nice-select-dropdown {\r\n left: 0 !important;\r\n right: 0 !important;\r\n }\r\n }\r\n\r\n &.right {\r\n float: right;\r\n .nice-select-dropdown {\r\n left: auto;\r\n right: 0;\r\n }\r\n }\r\n\r\n &.small {\r\n font-size: $font_size_small;\r\n height: $input_height_small;\r\n line-height: $input_height_small - 2;\r\n &:after {\r\n height: 4px;\r\n width: 4px;\r\n }\r\n .option {\r\n line-height: $input_height_small - 2;\r\n min-height: $input_height_small - 2;\r\n }\r\n }\r\n\r\n .nice-select-dropdown {\r\n margin-top: 4px;\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n box-shadow: 0 0 0 1px rgba($gray_dark, 0.11);\r\n pointer-events: none;\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n transform-origin: 50% 0;\r\n transform: scale(0.75) translateY(math.div($input_height, 2));\r\n transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;\r\n z-index: 9;\r\n opacity: 0;\r\n }\r\n\r\n // List and options\r\n .list {\r\n border-radius: $input_border_radius;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n padding: 0;\r\n max-height: 210px;\r\n overflow-y: auto;\r\n\r\n &:hover .option:not(:hover) {\r\n background-color: transparent !important;\r\n }\r\n }\r\n\r\n .option {\r\n cursor: pointer;\r\n font-weight: 400;\r\n line-height: $input_height + 2;\r\n list-style: none;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 11;\r\n text-align: left;\r\n transition: all 0.2s;\r\n\r\n &:hover,\r\n &.focus,\r\n &.selected.focus {\r\n background-color: $gray_lighter;\r\n }\r\n\r\n &.selected {\r\n font-weight: bold;\r\n }\r\n\r\n &.disabled {\r\n background-color: transparent;\r\n color: $gray;\r\n cursor: default;\r\n }\r\n }\r\n\r\n .extra {\r\n float: right;\r\n }\r\n\r\n .optgroup {\r\n font-weight: bold;\r\n }\r\n}\r\n\r\n// Fallback for IE <= 10\r\n.no-csspointerevents .nice-select {\r\n .nice-select-dropdown {\r\n display: none;\r\n }\r\n &.open {\r\n .nice-select-dropdown {\r\n display: block;\r\n }\r\n }\r\n}\r\n\r\n.nice-select .list::-webkit-scrollbar {\r\n width: 0;\r\n}\r\n\r\n.nice-select {\r\n .has-multiple {\r\n white-space: inherit;\r\n height: auto;\r\n padding: 7px 12px;\r\n min-height: 36px;\r\n line-height: 22px;\r\n\r\n span.current {\r\n border: 1px solid #ccc;\r\n background: #eee;\r\n padding: 0 10px;\r\n border-radius: 3px;\r\n display: inline-block;\r\n line-height: 24px;\r\n font-size: 14px;\r\n margin-bottom: 3px;\r\n margin-right: 3px;\r\n }\r\n\r\n .multiple-options {\r\n display: block;\r\n line-height: 24px;\r\n padding: 0;\r\n }\r\n }\r\n\r\n .nice-select-search-box {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding: 5px;\r\n pointer-events: none;\r\n border-radius: 5px 5px 0 0;\r\n }\r\n\r\n .nice-select-search {\r\n box-sizing: border-box;\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n border-radius: 3px;\r\n color: $gray_dark;\r\n display: inline-block;\r\n vertical-align: middle;\r\n padding: 7px 12px;\r\n margin: 0 10px 0 0;\r\n width: 100%;\r\n min-height: 36px;\r\n line-height: 22px;\r\n height: auto;\r\n outline: 0 !important;\r\n font-size: $font_size;\r\n }\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/css/style.css b/dist/css/style.css index a927174..ea0695c 100644 --- a/dist/css/style.css +++ b/dist/css/style.css @@ -1 +1,3 @@ code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:rgb(242.94,244.28,246.96)}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:rgb(65.0689655172,149.9793103448,250.5310344828)}.button:active{background-color:rgb(45.1379310345,138.9586206897,250.0620689655)}.button.light{background-color:#fff;border:1px solid #e0e7ee;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:rgb(207.53125,218.25,228.96875)}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} + +/*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/dist/css/style.css.map b/dist/css/style.css.map new file mode 100644 index 0000000..bfad743 --- /dev/null +++ b/dist/css/style.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/style.css","mappings":"AAOA,6CAEE,kBACA,aCRY,CDSZ,aACA,gBACA,WACA,gBACA,gBACA,kBACA,oBACA,iBACA,cACA,kCACA,eACA,iBAIF,sBACE,kBACA,gBACA,cAGF,uDAEE,kBC/Be,CDmCjB,iCACE,kBAGF,yDAIE,aC1CO,CD6CT,mBACE,WAGF,WACE,WAGF,qGAOE,cAGF,0FAME,cAGF,0FAKE,cACA,8BAGF,+CAGE,aCnFO,CDsFT,gBACE,cAGF,8CAGE,WAGF,6BAEE,iBAGF,cACE,kBAGF,cACE,YCnEF,KACE,mCACA,kCACA,aAvBU,CAwBV,mCACA,eACA,mBACA,uBACA,SACA,eAGF,EACE,gBACA,iBAGF,GACE,eACA,gBACA,oBACA,gBAGF,GACE,eACA,gBACA,gBACA,iBAGF,GACE,eACA,gBACA,gBACA,iBAGF,GACE,SACA,kBAGF,eACE,aA5DK,CA6DL,aACA,qBACA,uCACA,+BACA,sCAEA,0CAEE,gCAIJ,YACE,qCAGF,WACE,sBACA,eAGF,KAEE,wBArFa,CAsFb,kBACA,mBACA,kBAjFA,uBAEE,WACA,cAEF,WACE,WA8EJ,MACE,aA9FK,CA+FL,eACA,iBACA,yBACA,WAEA,YACE,YAIJ,QACE,0CACA,wBAxGK,CAyGL,iBA1HoB,CA2HpB,YACA,sBACA,WACA,eACA,qBACA,gBACA,WAhIa,CAiIb,gBAjIa,CAkIb,aACA,eACA,kBACA,qBACA,uCACA,+BACA,mBACA,WAEA,4BAEE,kEAGF,eACE,kEAGF,cACE,sBACA,yBACA,aAvIG,CAwIH,iBACA,iBAEA,oBACE,6CAGF,yCAEE,oBAhJO,CAoJX,qCA/CF,QAgDI,WAEA,cACE,iBAKN,QACE,kBACA,mBAEA,qCAJF,QAKI,gBAGF,UACE,aA1KG,CA2KH,eACA,mBAIJ,QACE,kBAEA,UACE,mBAIJ,QACE,aAzLK,CA0LL,WACA,cA3MgB,CA4MhB,gB","sources":["webpack://NiceSelect/./src/scss/_prism.scss","webpack://NiceSelect/./src/scss/style.scss"],"sourcesContent":["@use \"sass:color\";\r\n\r\n$gray_dark: #445870 !default;\r\n$gray_lighter: #f6f7f9 !default;\r\n$gray: #90a1b5 !default;\r\n$blue: #55a1fb !default;\r\n\r\ncode[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n border-radius: 2px;\r\n color: $gray_dark;\r\n hyphens: none;\r\n line-height: 1.5;\r\n tab-size: 4;\r\n text-align: left;\r\n white-space: pre;\r\n word-break: normal;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n direction: ltr;\r\n font-family: Inconsolata, monospace;\r\n font-size: 13px;\r\n letter-spacing: 0;\r\n}\r\n\r\n/* Code blocks */\r\npre[class*=\"language-\"] {\r\n padding: 18px 24px;\r\n margin: 0 0 24px;\r\n overflow: auto;\r\n}\r\n\r\n:not(pre) > code[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n background: $gray_lighter;\r\n}\r\n\r\n/* Inline code */\r\n:not(pre) > code[class*=\"language-\"] {\r\n padding: 0 2px 1px;\r\n}\r\n\r\n.token.comment,\r\n.token.prolog,\r\n.token.doctype,\r\n.token.cdata {\r\n color: $gray;\r\n}\r\n\r\n.token.punctuation {\r\n color: #999;\r\n}\r\n\r\n.namespace {\r\n opacity: 0.7;\r\n}\r\n\r\n.token.property,\r\n.token.tag,\r\n.token.boolean,\r\n.token.number,\r\n.token.constant,\r\n.token.symbol,\r\n.token.deleted {\r\n color: #ec4444;\r\n}\r\n\r\n.token.selector,\r\n.token.attr-name,\r\n.token.string,\r\n.token.char,\r\n.token.builtin,\r\n.token.inserted {\r\n color: #4abf60;\r\n}\r\n\r\n.token.operator,\r\n.token.entity,\r\n.token.url,\r\n.language-css .token.string,\r\n.style .token.string {\r\n color: #a67f59;\r\n background: color.adjust(#fff, $alpha: -0.5);\r\n}\r\n\r\n.token.atrule,\r\n.token.attr-value,\r\n.token.keyword {\r\n color: $blue;\r\n}\r\n\r\n.token.function {\r\n color: #dd4a68;\r\n}\r\n\r\n.token.regex,\r\n.token.important,\r\n.token.variable {\r\n color: #e90;\r\n}\r\n\r\n.token.important,\r\n.token.bold {\r\n font-weight: bold;\r\n}\r\n\r\n.token.italic {\r\n font-style: italic;\r\n}\r\n\r\n.token.entity {\r\n cursor: help;\r\n}","@use \"sass:color\";\r\n@use \"./prism\" with (\r\n $gray_dark: #445870,\r\n $gray_lighter: #f6f7f9,\r\n $gray: #90a1b5,\r\n $blue: #55a1fb\r\n);\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px !default;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 !default;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n// Override defaults\r\n$gray_dark: #445870;\r\n$gray: #90a1b5;\r\n$gray_light: #e0e7ee;\r\n$gray_lighter: #f6f7f9;\r\n$blue: #55a1fb;\r\n$blue_light: #88bfff;\r\n$primary: $blue;\r\n$primary_light: $blue_light;\r\n\r\n@mixin clearfix() {\r\n &:before,\r\n &:after {\r\n content: \"\";\r\n display: table;\r\n }\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\nbody {\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n color: $gray_dark;\r\n font-family: \"Work Sans\", sans-serif;\r\n font-size: 14px;\r\n font-weight: normal;\r\n letter-spacing: -0.25px;\r\n margin: 0;\r\n padding: 0 18px;\r\n}\r\n\r\np {\r\n line-height: 1.6;\r\n margin: 0 0 1.6em;\r\n}\r\n\r\nh1 {\r\n font-size: 36px;\r\n font-weight: 300;\r\n letter-spacing: -2px;\r\n margin: 0 0 24px;\r\n}\r\n\r\nh2 {\r\n font-size: 22px;\r\n font-weight: 700;\r\n margin: 0 0 12px;\r\n padding-top: 48px;\r\n}\r\n\r\nh3 {\r\n font-size: 18px;\r\n font-weight: 400;\r\n margin: 0 0 12px;\r\n padding-top: 12px;\r\n}\r\n\r\nul {\r\n margin: 0;\r\n padding-left: 16px;\r\n}\r\n\r\na:not(.button) {\r\n color: $primary;\r\n outline: none;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n border-bottom: 1px solid transparent;\r\n\r\n &:hover,\r\n &:focus {\r\n border-bottom: 1px solid $primary_light;\r\n }\r\n}\r\n\r\n::selection {\r\n background: color.adjust($gray_lighter, $lightness: -1%);\r\n}\r\n\r\n.container {\r\n margin: 96px auto 60px;\r\n max-width: 40em;\r\n}\r\n\r\n.box {\r\n @include clearfix;\r\n background-color: $gray_lighter;\r\n border-radius: 2px;\r\n margin-bottom: 30px;\r\n padding: 24px 30px;\r\n}\r\n\r\nlabel {\r\n color: $gray;\r\n font-size: 11px;\r\n margin: 0 2px 4px;\r\n text-transform: uppercase;\r\n float: left;\r\n\r\n &.right {\r\n float: right;\r\n }\r\n}\r\n\r\n.button {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: $primary;\r\n border-radius: $input_border_radius;\r\n border: none;\r\n box-sizing: border-box;\r\n color: #fff;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-weight: 600;\r\n height: $input_height;\r\n line-height: $input_height;\r\n outline: none;\r\n padding: 0 24px;\r\n text-align: center;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n white-space: nowrap;\r\n width: auto;\r\n\r\n &:hover,\r\n &:focus {\r\n background-color: color.adjust($primary, $lightness: -4%);\r\n }\r\n\r\n &:active {\r\n background-color: color.adjust($primary, $lightness: -8%);\r\n }\r\n\r\n &.light {\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n color: $primary;\r\n line-height: $input_height - 2;\r\n margin-left: 24px;\r\n\r\n &:hover {\r\n border-color: color.adjust($gray_light, $lightness: -5%);\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n border-color: $primary_light;\r\n }\r\n }\r\n\r\n @media screen and (max-width: 360px) {\r\n width: 100%;\r\n\r\n &.light {\r\n margin: 18px 0 0;\r\n }\r\n }\r\n}\r\n\r\n.header {\r\n text-align: center;\r\n margin-bottom: 60px;\r\n\r\n @media screen and (min-width: 600px) {\r\n padding: 0 18px;\r\n }\r\n\r\n p {\r\n color: $gray;\r\n font-size: 18px;\r\n margin-bottom: 36px;\r\n }\r\n}\r\n\r\n.footer {\r\n text-align: center;\r\n\r\n p {\r\n margin-bottom: 90px;\r\n }\r\n}\r\n\r\n.credit {\r\n color: $gray;\r\n clear: both;\r\n font-size: $font_size_small;\r\n margin-top: 90px;\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/nice-select2.js b/dist/js/nice-select2.js index 6e6d7da..ec8c914 100644 --- a/dist/js/nice-select2.js +++ b/dist/js/nice-select2.js @@ -1 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                  \n \n
                  \n ${t}\n
                    \n
                    \n
                    \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                    \n \n
                    \n ${t}\n
                      \n
                      \n
                      \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); +//# sourceMappingURL=nice-select2.js.map \ No newline at end of file diff --git a/dist/js/nice-select2.js.map b/dist/js/nice-select2.js.map new file mode 100644 index 0000000..033d8db --- /dev/null +++ b/dist/js/nice-select2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                      \r\n \r\n
                      \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                      \r\n \r\n
                      \r\n ${searchHtml}\r\n
                        \r\n
                        \r\n
                        \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js/style.js b/dist/js/style.js index ab8e269..21aa015 100644 --- a/dist/js/style.js +++ b/dist/js/style.js @@ -1 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); +//# sourceMappingURL=style.js.map \ No newline at end of file diff --git a/dist/js/style.js.map b/dist/js/style.js.map new file mode 100644 index 0000000..60dc19f --- /dev/null +++ b/dist/js/style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/style.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,GACtB,CATD,CASGK,MAAM,I,mBCRT,I,WCAwB,CAACJ,IACH,oBAAXK,QAA0BA,OAAOC,aAC1CC,OAAOC,eAAeR,EAASK,OAAOC,YAAa,CAAEG,MAAO,WAE7DF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,GAAO,E","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","Symbol","toStringTag","Object","defineProperty","value"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/css/nice-select2.css b/docs/dist/css/nice-select2.css index dfdb552..a5af4fa 100644 --- a/docs/dist/css/nice-select2.css +++ b/docs/dist/css/nice-select2.css @@ -1 +1,3 @@ .nice-select{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:normal;height:38px;line-height:36px;outline:none;padding-left:18px;padding-right:30px;position:relative;text-align:left !important;transition:all .2s ease-in-out;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:hsl(0,0%,85.9803921569%)}.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:"";display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;transform-origin:66% 66%;transform:rotate(45deg);transition:all .15s ease-in-out;width:5px}.nice-select.open{border-color:#999}.nice-select.open:after{transform:rotate(-135deg)}.nice-select.open .nice-select-dropdown{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.nice-select.disabled{border-color:rgb(237.1,237.1,237.1);color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .nice-select-dropdown{left:0 !important;right:0 !important}.nice-select.right{float:right}.nice-select.right .nice-select-dropdown{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .nice-select-dropdown{margin-top:4px;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);pointer-events:none;position:absolute;top:100%;left:0;transform-origin:50% 0;transform:scale(0.75) translateY(19px);transition:all .2s cubic-bezier(0.5, 0, 0, 1.25),opacity .15s ease-out;z-index:9;opacity:0}.nice-select .list{border-radius:5px;box-sizing:border-box;overflow:hidden;padding:0;max-height:210px;overflow-y:auto}.nice-select .list:hover .option:not(:hover){background-color:rgba(0,0,0,0) !important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;outline:none;padding-left:18px;padding-right:29px;text-align:left;transition:all .2s}.nice-select .option:hover,.nice-select .option.focus,.nice-select .option.selected.focus{background-color:#f6f6f6}.nice-select .option.selected{font-weight:bold}.nice-select .option.disabled{background-color:rgba(0,0,0,0);color:#999;cursor:default}.nice-select .extra{float:right}.nice-select .optgroup{font-weight:bold}.no-csspointerevents .nice-select .nice-select-dropdown{display:none}.no-csspointerevents .nice-select.open .nice-select-dropdown{display:block}.nice-select .list::-webkit-scrollbar{width:0}.nice-select .has-multiple{white-space:inherit;height:auto;padding:7px 12px;min-height:36px;line-height:22px}.nice-select .has-multiple span.current{border:1px solid #ccc;background:#eee;padding:0 10px;border-radius:3px;display:inline-block;line-height:24px;font-size:14px;margin-bottom:3px;margin-right:3px}.nice-select .has-multiple .multiple-options{display:block;line-height:24px;padding:0}.nice-select .nice-select-search-box{box-sizing:border-box;width:100%;padding:5px;pointer-events:none;border-radius:5px 5px 0 0}.nice-select .nice-select-search{box-sizing:border-box;background-color:#fff;border:1px solid #e8e8e8;border-radius:3px;color:#444;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:100%;min-height:36px;line-height:22px;height:auto;outline:0 !important;font-size:14px} + +/*# sourceMappingURL=nice-select2.css.map*/ \ No newline at end of file diff --git a/docs/dist/css/nice-select2.css.map b/docs/dist/css/nice-select2.css.map new file mode 100644 index 0000000..7dc5b14 --- /dev/null +++ b/docs/dist/css/nice-select2.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/nice-select2.css","mappings":"AAoBA,aACE,0CACA,sBACA,iBAhBoB,CAiBpB,yBACA,sBACA,WACA,eACA,cACA,WACA,oBACA,cA3BU,CA4BV,mBACA,WAzBa,CA0Bb,iBACA,aACA,iBA1BiB,CA2BjB,mBACA,kBACA,2BACA,+BACA,iBACA,mBACA,WAEA,mBACE,sCAGF,uCAEE,iBAtCG,CA0CL,mBACE,6BACA,4BACA,WACA,cACA,WACA,gBACA,oBACA,kBACA,WACA,QACA,yBACA,wBACA,gCACA,UAGF,kBACE,iBA5DG,CA6DH,wBACE,0BAEF,wCACE,UACA,oBACA,iCAIJ,sBACE,oCACA,UAzEG,CA0EH,oBACA,4BACE,kBAKJ,kBACE,WACA,wCACE,kBACA,mBAIJ,mBACE,YACA,yCACE,UACA,QAIJ,mBACE,cA1Gc,CA2Gd,WAvGiB,CAwGjB,iBACA,yBACE,WACA,UAEF,2BACE,iBACA,gBAIJ,mCACE,eACA,sBACA,iBAxHkB,CAyHlB,wCACA,oBACA,kBACA,SACA,OACA,uBACA,uCACA,uEACA,UACA,UAIF,mBACE,iBAvIkB,CAwIlB,sBACA,gBACA,UACA,iBACA,gBAEA,6CACE,0CAIJ,qBACE,eACA,gBACA,iBACA,gBACA,aACA,iBAtJe,CAuJf,mBACA,gBACA,mBAEA,0FAGE,wBAzJS,CA4JX,8BACE,iBAGF,8BACE,+BACA,UApKC,CAqKD,eAIJ,oBACE,YAGF,uBACE,iBAMF,wDACE,aAGA,6DACE,cAKN,sCACE,QAIA,2BACE,oBACA,YACA,iBACA,gBACA,iBAEA,wCACE,sBACA,gBACA,eACA,kBACA,qBACA,iBACA,eACA,kBACA,iBAGF,6CACE,cACA,iBACA,UAIJ,qCACE,sBACA,WACA,YACA,oBACA,0BAGF,iCACE,sBACA,sBACA,yBACA,kBACA,UA3OQ,CA4OR,qBACA,sBACA,iBACA,kBACA,WACA,gBACA,iBACA,YACA,qBACA,cA7PQ,C","sources":["webpack://NiceSelect/./src/scss/nice-select2.scss"],"sourcesContent":["@use \"sass:math\";\r\n@use \"sass:color\";\r\n\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px !default;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 !default;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n// Style the dropdown\r\n.nice-select {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n border: solid 1px $gray_light;\r\n box-sizing: border-box;\r\n clear: both;\r\n cursor: pointer;\r\n display: block;\r\n float: left;\r\n font-family: inherit;\r\n font-size: $font_size;\r\n font-weight: normal;\r\n height: $input_height;\r\n line-height: $input_height - 2;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 12;\r\n position: relative;\r\n text-align: left !important;\r\n transition: all 0.2s ease-in-out;\r\n user-select: none;\r\n white-space: nowrap;\r\n width: auto;\r\n\r\n &:hover {\r\n border-color: color.adjust($gray_light, $lightness: -5%);\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n border-color: $primary_light;\r\n }\r\n\r\n // Arrow\r\n &:after {\r\n border-bottom: 2px solid $arrow_color;\r\n border-right: 2px solid $arrow_color;\r\n content: \"\";\r\n display: block;\r\n height: 5px;\r\n margin-top: -4px;\r\n pointer-events: none;\r\n position: absolute;\r\n right: 12px;\r\n top: 50%;\r\n transform-origin: 66% 66%;\r\n transform: rotate(45deg);\r\n transition: all 0.15s ease-in-out;\r\n width: 5px;\r\n }\r\n\r\n &.open {\r\n border-color: $primary_light;\r\n &:after {\r\n transform: rotate(-135deg);\r\n }\r\n .nice-select-dropdown {\r\n opacity: 1;\r\n pointer-events: auto;\r\n transform: scale(1) translateY(0);\r\n }\r\n }\r\n\r\n &.disabled {\r\n border-color: color.adjust($gray_light, $lightness: 2%);\r\n color: $gray;\r\n pointer-events: none;\r\n &:after {\r\n border-color: color.adjust($arrow_color, $lightness: 20%);\r\n }\r\n }\r\n\r\n // Modifiers\r\n &.wide {\r\n width: 100%;\r\n .nice-select-dropdown {\r\n left: 0 !important;\r\n right: 0 !important;\r\n }\r\n }\r\n\r\n &.right {\r\n float: right;\r\n .nice-select-dropdown {\r\n left: auto;\r\n right: 0;\r\n }\r\n }\r\n\r\n &.small {\r\n font-size: $font_size_small;\r\n height: $input_height_small;\r\n line-height: $input_height_small - 2;\r\n &:after {\r\n height: 4px;\r\n width: 4px;\r\n }\r\n .option {\r\n line-height: $input_height_small - 2;\r\n min-height: $input_height_small - 2;\r\n }\r\n }\r\n\r\n .nice-select-dropdown {\r\n margin-top: 4px;\r\n background-color: #fff;\r\n border-radius: $input_border_radius;\r\n box-shadow: 0 0 0 1px rgba($gray_dark, 0.11);\r\n pointer-events: none;\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n transform-origin: 50% 0;\r\n transform: scale(0.75) translateY(math.div($input_height, 2));\r\n transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;\r\n z-index: 9;\r\n opacity: 0;\r\n }\r\n\r\n // List and options\r\n .list {\r\n border-radius: $input_border_radius;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n padding: 0;\r\n max-height: 210px;\r\n overflow-y: auto;\r\n\r\n &:hover .option:not(:hover) {\r\n background-color: transparent !important;\r\n }\r\n }\r\n\r\n .option {\r\n cursor: pointer;\r\n font-weight: 400;\r\n line-height: $input_height + 2;\r\n list-style: none;\r\n outline: none;\r\n padding-left: $dropdown_padding;\r\n padding-right: $dropdown_padding + 11;\r\n text-align: left;\r\n transition: all 0.2s;\r\n\r\n &:hover,\r\n &.focus,\r\n &.selected.focus {\r\n background-color: $gray_lighter;\r\n }\r\n\r\n &.selected {\r\n font-weight: bold;\r\n }\r\n\r\n &.disabled {\r\n background-color: transparent;\r\n color: $gray;\r\n cursor: default;\r\n }\r\n }\r\n\r\n .extra {\r\n float: right;\r\n }\r\n\r\n .optgroup {\r\n font-weight: bold;\r\n }\r\n}\r\n\r\n// Fallback for IE <= 10\r\n.no-csspointerevents .nice-select {\r\n .nice-select-dropdown {\r\n display: none;\r\n }\r\n &.open {\r\n .nice-select-dropdown {\r\n display: block;\r\n }\r\n }\r\n}\r\n\r\n.nice-select .list::-webkit-scrollbar {\r\n width: 0;\r\n}\r\n\r\n.nice-select {\r\n .has-multiple {\r\n white-space: inherit;\r\n height: auto;\r\n padding: 7px 12px;\r\n min-height: 36px;\r\n line-height: 22px;\r\n\r\n span.current {\r\n border: 1px solid #ccc;\r\n background: #eee;\r\n padding: 0 10px;\r\n border-radius: 3px;\r\n display: inline-block;\r\n line-height: 24px;\r\n font-size: 14px;\r\n margin-bottom: 3px;\r\n margin-right: 3px;\r\n }\r\n\r\n .multiple-options {\r\n display: block;\r\n line-height: 24px;\r\n padding: 0;\r\n }\r\n }\r\n\r\n .nice-select-search-box {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding: 5px;\r\n pointer-events: none;\r\n border-radius: 5px 5px 0 0;\r\n }\r\n\r\n .nice-select-search {\r\n box-sizing: border-box;\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n border-radius: 3px;\r\n color: $gray_dark;\r\n display: inline-block;\r\n vertical-align: middle;\r\n padding: 7px 12px;\r\n margin: 0 10px 0 0;\r\n width: 100%;\r\n min-height: 36px;\r\n line-height: 22px;\r\n height: auto;\r\n outline: 0 !important;\r\n font-size: $font_size;\r\n }\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/css/style.css b/docs/dist/css/style.css index a927174..ea0695c 100644 --- a/docs/dist/css/style.css +++ b/docs/dist/css/style.css @@ -1 +1,3 @@ code[class*=language-],pre[class*=language-]{border-radius:2px;color:#445870;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;direction:ltr;font-family:Inconsolata,monospace;font-size:13px;letter-spacing:0}pre[class*=language-]{padding:18px 24px;margin:0 0 24px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f6f7f9}:not(pre)>code[class*=language-]{padding:0 2px 1px}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#90a1b5}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#ec4444}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#4abf60}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#55a1fb}.token.function{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#445870;font-family:"Work Sans",sans-serif;font-size:14px;font-weight:normal;letter-spacing:-0.25px;margin:0;padding:0 18px}p{line-height:1.6;margin:0 0 1.6em}h1{font-size:36px;font-weight:300;letter-spacing:-2px;margin:0 0 24px}h2{font-size:22px;font-weight:700;margin:0 0 12px;padding-top:48px}h3{font-size:18px;font-weight:400;margin:0 0 12px;padding-top:12px}ul{margin:0;padding-left:16px}a:not(.button){color:#55a1fb;outline:none;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;border-bottom:1px solid rgba(0,0,0,0)}a:not(.button):hover,a:not(.button):focus{border-bottom:1px solid #88bfff}::selection{background:rgb(242.94,244.28,246.96)}.container{margin:96px auto 60px;max-width:40em}.box{background-color:#f6f7f9;border-radius:2px;margin-bottom:30px;padding:24px 30px}.box:before,.box:after{content:"";display:table}.box:after{clear:both}label{color:#90a1b5;font-size:11px;margin:0 2px 4px;text-transform:uppercase;float:left}label.right{float:right}.button{-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#55a1fb;border-radius:5px;border:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-weight:600;height:38px;line-height:38px;outline:none;padding:0 24px;text-align:center;text-decoration:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;white-space:nowrap;width:auto}.button:hover,.button:focus{background-color:rgb(65.0689655172,149.9793103448,250.5310344828)}.button:active{background-color:rgb(45.1379310345,138.9586206897,250.0620689655)}.button.light{background-color:#fff;border:1px solid #e0e7ee;color:#55a1fb;line-height:36px;margin-left:24px}.button.light:hover{border-color:rgb(207.53125,218.25,228.96875)}.button.light:active,.button.light:focus{border-color:#88bfff}@media screen and (max-width: 360px){.button{width:100%}.button.light{margin:18px 0 0}}.header{text-align:center;margin-bottom:60px}@media screen and (min-width: 600px){.header{padding:0 18px}}.header p{color:#90a1b5;font-size:18px;margin-bottom:36px}.footer{text-align:center}.footer p{margin-bottom:90px}.credit{color:#90a1b5;clear:both;font-size:12px;margin-top:90px} + +/*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/docs/dist/css/style.css.map b/docs/dist/css/style.css.map new file mode 100644 index 0000000..bfad743 --- /dev/null +++ b/docs/dist/css/style.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/style.css","mappings":"AAOA,6CAEE,kBACA,aCRY,CDSZ,aACA,gBACA,WACA,gBACA,gBACA,kBACA,oBACA,iBACA,cACA,kCACA,eACA,iBAIF,sBACE,kBACA,gBACA,cAGF,uDAEE,kBC/Be,CDmCjB,iCACE,kBAGF,yDAIE,aC1CO,CD6CT,mBACE,WAGF,WACE,WAGF,qGAOE,cAGF,0FAME,cAGF,0FAKE,cACA,8BAGF,+CAGE,aCnFO,CDsFT,gBACE,cAGF,8CAGE,WAGF,6BAEE,iBAGF,cACE,kBAGF,cACE,YCnEF,KACE,mCACA,kCACA,aAvBU,CAwBV,mCACA,eACA,mBACA,uBACA,SACA,eAGF,EACE,gBACA,iBAGF,GACE,eACA,gBACA,oBACA,gBAGF,GACE,eACA,gBACA,gBACA,iBAGF,GACE,eACA,gBACA,gBACA,iBAGF,GACE,SACA,kBAGF,eACE,aA5DK,CA6DL,aACA,qBACA,uCACA,+BACA,sCAEA,0CAEE,gCAIJ,YACE,qCAGF,WACE,sBACA,eAGF,KAEE,wBArFa,CAsFb,kBACA,mBACA,kBAjFA,uBAEE,WACA,cAEF,WACE,WA8EJ,MACE,aA9FK,CA+FL,eACA,iBACA,yBACA,WAEA,YACE,YAIJ,QACE,0CACA,wBAxGK,CAyGL,iBA1HoB,CA2HpB,YACA,sBACA,WACA,eACA,qBACA,gBACA,WAhIa,CAiIb,gBAjIa,CAkIb,aACA,eACA,kBACA,qBACA,uCACA,+BACA,mBACA,WAEA,4BAEE,kEAGF,eACE,kEAGF,cACE,sBACA,yBACA,aAvIG,CAwIH,iBACA,iBAEA,oBACE,6CAGF,yCAEE,oBAhJO,CAoJX,qCA/CF,QAgDI,WAEA,cACE,iBAKN,QACE,kBACA,mBAEA,qCAJF,QAKI,gBAGF,UACE,aA1KG,CA2KH,eACA,mBAIJ,QACE,kBAEA,UACE,mBAIJ,QACE,aAzLK,CA0LL,WACA,cA3MgB,CA4MhB,gB","sources":["webpack://NiceSelect/./src/scss/_prism.scss","webpack://NiceSelect/./src/scss/style.scss"],"sourcesContent":["@use \"sass:color\";\r\n\r\n$gray_dark: #445870 !default;\r\n$gray_lighter: #f6f7f9 !default;\r\n$gray: #90a1b5 !default;\r\n$blue: #55a1fb !default;\r\n\r\ncode[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n border-radius: 2px;\r\n color: $gray_dark;\r\n hyphens: none;\r\n line-height: 1.5;\r\n tab-size: 4;\r\n text-align: left;\r\n white-space: pre;\r\n word-break: normal;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n direction: ltr;\r\n font-family: Inconsolata, monospace;\r\n font-size: 13px;\r\n letter-spacing: 0;\r\n}\r\n\r\n/* Code blocks */\r\npre[class*=\"language-\"] {\r\n padding: 18px 24px;\r\n margin: 0 0 24px;\r\n overflow: auto;\r\n}\r\n\r\n:not(pre) > code[class*=\"language-\"],\r\npre[class*=\"language-\"] {\r\n background: $gray_lighter;\r\n}\r\n\r\n/* Inline code */\r\n:not(pre) > code[class*=\"language-\"] {\r\n padding: 0 2px 1px;\r\n}\r\n\r\n.token.comment,\r\n.token.prolog,\r\n.token.doctype,\r\n.token.cdata {\r\n color: $gray;\r\n}\r\n\r\n.token.punctuation {\r\n color: #999;\r\n}\r\n\r\n.namespace {\r\n opacity: 0.7;\r\n}\r\n\r\n.token.property,\r\n.token.tag,\r\n.token.boolean,\r\n.token.number,\r\n.token.constant,\r\n.token.symbol,\r\n.token.deleted {\r\n color: #ec4444;\r\n}\r\n\r\n.token.selector,\r\n.token.attr-name,\r\n.token.string,\r\n.token.char,\r\n.token.builtin,\r\n.token.inserted {\r\n color: #4abf60;\r\n}\r\n\r\n.token.operator,\r\n.token.entity,\r\n.token.url,\r\n.language-css .token.string,\r\n.style .token.string {\r\n color: #a67f59;\r\n background: color.adjust(#fff, $alpha: -0.5);\r\n}\r\n\r\n.token.atrule,\r\n.token.attr-value,\r\n.token.keyword {\r\n color: $blue;\r\n}\r\n\r\n.token.function {\r\n color: #dd4a68;\r\n}\r\n\r\n.token.regex,\r\n.token.important,\r\n.token.variable {\r\n color: #e90;\r\n}\r\n\r\n.token.important,\r\n.token.bold {\r\n font-weight: bold;\r\n}\r\n\r\n.token.italic {\r\n font-style: italic;\r\n}\r\n\r\n.token.entity {\r\n cursor: help;\r\n}","@use \"sass:color\";\r\n@use \"./prism\" with (\r\n $gray_dark: #445870,\r\n $gray_lighter: #f6f7f9,\r\n $gray: #90a1b5,\r\n $blue: #55a1fb\r\n);\r\n// Default variables\r\n$font_size: 14px !default;\r\n$font_size_small: 12px !default;\r\n\r\n$input_border_radius: 5px !default;\r\n$input_height: 38px !default;\r\n$input_height_small: 36px !default;\r\n$dropdown_padding: 18px !default;\r\n\r\n$gray_dark: #444 !default;\r\n$gray: #999 !default;\r\n$gray_light: #e8e8e8 !default;\r\n$gray_lighter: #f6f6f6 !default;\r\n$primary_light: $gray !default;\r\n$arrow_color: $gray !default;\r\n\r\n// Override defaults\r\n$gray_dark: #445870;\r\n$gray: #90a1b5;\r\n$gray_light: #e0e7ee;\r\n$gray_lighter: #f6f7f9;\r\n$blue: #55a1fb;\r\n$blue_light: #88bfff;\r\n$primary: $blue;\r\n$primary_light: $blue_light;\r\n\r\n@mixin clearfix() {\r\n &:before,\r\n &:after {\r\n content: \"\";\r\n display: table;\r\n }\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\nbody {\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n color: $gray_dark;\r\n font-family: \"Work Sans\", sans-serif;\r\n font-size: 14px;\r\n font-weight: normal;\r\n letter-spacing: -0.25px;\r\n margin: 0;\r\n padding: 0 18px;\r\n}\r\n\r\np {\r\n line-height: 1.6;\r\n margin: 0 0 1.6em;\r\n}\r\n\r\nh1 {\r\n font-size: 36px;\r\n font-weight: 300;\r\n letter-spacing: -2px;\r\n margin: 0 0 24px;\r\n}\r\n\r\nh2 {\r\n font-size: 22px;\r\n font-weight: 700;\r\n margin: 0 0 12px;\r\n padding-top: 48px;\r\n}\r\n\r\nh3 {\r\n font-size: 18px;\r\n font-weight: 400;\r\n margin: 0 0 12px;\r\n padding-top: 12px;\r\n}\r\n\r\nul {\r\n margin: 0;\r\n padding-left: 16px;\r\n}\r\n\r\na:not(.button) {\r\n color: $primary;\r\n outline: none;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n border-bottom: 1px solid transparent;\r\n\r\n &:hover,\r\n &:focus {\r\n border-bottom: 1px solid $primary_light;\r\n }\r\n}\r\n\r\n::selection {\r\n background: color.adjust($gray_lighter, $lightness: -1%);\r\n}\r\n\r\n.container {\r\n margin: 96px auto 60px;\r\n max-width: 40em;\r\n}\r\n\r\n.box {\r\n @include clearfix;\r\n background-color: $gray_lighter;\r\n border-radius: 2px;\r\n margin-bottom: 30px;\r\n padding: 24px 30px;\r\n}\r\n\r\nlabel {\r\n color: $gray;\r\n font-size: 11px;\r\n margin: 0 2px 4px;\r\n text-transform: uppercase;\r\n float: left;\r\n\r\n &.right {\r\n float: right;\r\n }\r\n}\r\n\r\n.button {\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n background-color: $primary;\r\n border-radius: $input_border_radius;\r\n border: none;\r\n box-sizing: border-box;\r\n color: #fff;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-weight: 600;\r\n height: $input_height;\r\n line-height: $input_height;\r\n outline: none;\r\n padding: 0 24px;\r\n text-align: center;\r\n text-decoration: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n white-space: nowrap;\r\n width: auto;\r\n\r\n &:hover,\r\n &:focus {\r\n background-color: color.adjust($primary, $lightness: -4%);\r\n }\r\n\r\n &:active {\r\n background-color: color.adjust($primary, $lightness: -8%);\r\n }\r\n\r\n &.light {\r\n background-color: #fff;\r\n border: 1px solid $gray_light;\r\n color: $primary;\r\n line-height: $input_height - 2;\r\n margin-left: 24px;\r\n\r\n &:hover {\r\n border-color: color.adjust($gray_light, $lightness: -5%);\r\n }\r\n\r\n &:active,\r\n &:focus {\r\n border-color: $primary_light;\r\n }\r\n }\r\n\r\n @media screen and (max-width: 360px) {\r\n width: 100%;\r\n\r\n &.light {\r\n margin: 18px 0 0;\r\n }\r\n }\r\n}\r\n\r\n.header {\r\n text-align: center;\r\n margin-bottom: 60px;\r\n\r\n @media screen and (min-width: 600px) {\r\n padding: 0 18px;\r\n }\r\n\r\n p {\r\n color: $gray;\r\n font-size: 18px;\r\n margin-bottom: 36px;\r\n }\r\n}\r\n\r\n.footer {\r\n text-align: center;\r\n\r\n p {\r\n margin-bottom: 90px;\r\n }\r\n}\r\n\r\n.credit {\r\n color: $gray;\r\n clear: both;\r\n font-size: $font_size_small;\r\n margin-top: 90px;\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/js/nice-select2.js b/docs/dist/js/nice-select2.js index 6e6d7da..ec8c914 100644 --- a/docs/dist/js/nice-select2.js +++ b/docs/dist/js/nice-select2.js @@ -1 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                        \n \n
                        \n ${t}\n
                          \n
                          \n
                          \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                          \n \n
                          \n ${t}\n
                            \n
                            \n
                            \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); +//# sourceMappingURL=nice-select2.js.map \ No newline at end of file diff --git a/docs/dist/js/nice-select2.js.map b/docs/dist/js/nice-select2.js.map new file mode 100644 index 0000000..033d8db --- /dev/null +++ b/docs/dist/js/nice-select2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                            \r\n \r\n
                            \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                            \r\n \r\n
                            \r\n ${searchHtml}\r\n
                              \r\n
                              \r\n
                              \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/js/style.js b/docs/dist/js/style.js index ab8e269..21aa015 100644 --- a/docs/dist/js/style.js +++ b/docs/dist/js/style.js @@ -1 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={};return(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e),e})())); +//# sourceMappingURL=style.js.map \ No newline at end of file diff --git a/docs/dist/js/style.js.map b/docs/dist/js/style.js.map new file mode 100644 index 0000000..60dc19f --- /dev/null +++ b/docs/dist/js/style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/style.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,GACtB,CATD,CASGK,MAAM,I,mBCRT,I,WCAwB,CAACJ,IACH,oBAAXK,QAA0BA,OAAOC,aAC1CC,OAAOC,eAAeR,EAASK,OAAOC,YAAa,CAAEG,MAAO,WAE7DF,OAAOC,eAAeR,EAAS,aAAc,CAAES,OAAO,GAAO,E","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","Symbol","toStringTag","Object","defineProperty","value"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 2f8a9f5..ee2bcf6 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,41 +1,48 @@ -//npm install mini-css-extract-plugin sass-loader sass webpack webpack-cli --save-dev - -const path = require('path'); +const path = require("path"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { - entry: { - "nice-select2": './src/js/nice-select2.js', - style: "./src/scss/style.scss", - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'js/[name].js', - library: { - name: 'NiceSelect', - type: 'umd', - }, - }, - optimization: { - usedExports: true, + entry: { + "nice-select2": "./src/js/nice-select2.js", + style: "./src/scss/style.scss", + }, + output: { + path: path.resolve(__dirname, "dist"), + filename: "js/[name].js", + library: { + name: "NiceSelect", + type: "umd", }, - plugins: [new MiniCssExtractPlugin({ - filename: "css/[name].css", - })], - module: { - rules: [ - { - test: /\.(sa|sc|c)ss$/i, - use: [ - MiniCssExtractPlugin.loader, - "css-loader", - "sass-loader", - ], - }, - ], - }, -} - -if (process.env.NODE_ENV !== 'production') { - module.exports['devtool'] = 'source-map'; -} \ No newline at end of file + }, + devtool: "source-map", + optimization: { + usedExports: true, + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "css/[name].css", + }), + ], + module: { + rules: [ + { + test: /\.(sa|sc|c)ss$/i, + use: [ + MiniCssExtractPlugin.loader, + { + loader: "css-loader", + options: { + sourceMap: true, + }, + }, + { + loader: "sass-loader", + options: { + sourceMap: true, + }, + }, + ], + }, + ], + }, +}; From 3fe93436c11128352ea96eaaee1234d190a59aef Mon Sep 17 00:00:00 2001 From: MOHAMMAD BAGHAEI <49115397+mohammadbaghaei@users.noreply.github.com> Date: Wed, 5 Feb 2025 08:45:05 +0330 Subject: [PATCH 3/6] Update src/js/nice-select2.js Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- src/js/nice-select2.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/js/nice-select2.js b/src/js/nice-select2.js index 68cebb4..8802ccb 100644 --- a/src/js/nice-select2.js +++ b/src/js/nice-select2.js @@ -44,6 +44,12 @@ const defaultOptions = { class NiceSelect { constructor(element, options = {}) { + if (!element) { + throw new Error('No element provided to NiceSelect'); + } + if (!(element instanceof Element)) { + throw new Error('Invalid element provided to NiceSelect - must be a valid DOM element'); + } this.el = element; this.config = { ...defaultOptions, ...options }; this.data = this.config.data; From d09e78265b22d9168bfd6e662d36446a7a50dc56 Mon Sep 17 00:00:00 2001 From: Mohammad Baghaei Date: Wed, 5 Feb 2025 08:47:56 +0330 Subject: [PATCH 4/6] add dynamic source map --- dist/js/nice-select2.js | 2 +- dist/js/nice-select2.js.map | 2 +- webpack.config.js | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dist/js/nice-select2.js b/dist/js/nice-select2.js index ec8c914..397193d 100644 --- a/dist/js/nice-select2.js +++ b/dist/js/nice-select2.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                              \n \n
                              \n ${t}\n
                                \n
                                \n
                                \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){if(!e)throw new Error("No element provided to NiceSelect");if(!(e instanceof Element))throw new Error("Invalid element provided to NiceSelect - must be a valid DOM element");this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                                \n \n
                                \n ${t}\n
                                  \n
                                  \n
                                  \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); //# sourceMappingURL=nice-select2.js.map \ No newline at end of file diff --git a/dist/js/nice-select2.js.map b/dist/js/nice-select2.js.map index 033d8db..cc473df 100644 --- a/dist/js/nice-select2.js.map +++ b/dist/js/nice-select2.js.map @@ -1 +1 @@ -{"version":3,"file":"js/nice-select2.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAoB,WAAID,IAExBD,EAAiB,WAAIC,GACtB,CATD,CASGK,MAAM,I,mBCRT,IAAIC,EAAsB,CCA1BA,EAAwB,CAACL,EAASM,KACjC,IAAI,IAAIC,KAAOD,EACXD,EAAoBG,EAAEF,EAAYC,KAASF,EAAoBG,EAAER,EAASO,IAC5EE,OAAOC,eAAeV,EAASO,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDF,EAAwB,CAACQ,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFT,EAAyBL,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeV,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeV,EAAS,aAAc,CAAEoB,OAAO,GAAO,G,8CCH9D,MAAMC,EAAe,CAACC,EAAIC,EAAMC,EAAO,CAAC,KACtC,IAAIC,EAEFA,EADW,UAATF,EACiBG,WACD,WAATH,EACUI,MACVJ,EAAKK,SAAS,SACJC,WAEAC,QAErB,MAAMC,EAAQ,IAAIN,EAAiBF,EAAM,CACvCS,SAAS,EACTC,YAAY,KACTT,IAELF,EAAGY,cAAcH,EAAM,EAGnBI,EAAgBb,GAAOD,EAAaC,EAAI,SACxCc,EAAiBd,GAAOD,EAAaC,EAAI,UAIzCe,EAAqBf,GAAOD,EAAaC,EAAI,cAE7CgB,EAAO,CAAChB,EAAIf,SACJgC,IAAZjB,EAAGf,GAAqBe,EAAGf,GAAOe,EAAGkB,aAAajC,GAE9CkC,EAAW,CAACnB,EAAIoB,IAAcpB,GAAIqB,UAAUC,SAASF,GACrDG,EAAW,CAACvB,EAAIoB,IAAcpB,GAAIqB,UAAUG,IAAIJ,GAChDK,EAAc,CAACzB,EAAIoB,IAAcpB,GAAIqB,UAAUK,OAAON,GAEtDO,EAAiB,CACrBC,KAAM,KACNC,YAAY,EACZC,mBAAmB,EACnBC,YAAa,mBACbC,WAAY,SACZC,aAAc,YAGhB,MAAMC,EACJ,WAAAC,CAAYC,EAASC,EAAU,CAAC,GAC9BC,KAAKtC,GAAKoC,EACVE,KAAKC,OAAS,IAAKZ,KAAmBU,GACtCC,KAAKV,KAAOU,KAAKC,OAAOX,KACxBU,KAAKE,gBAAkB,GACvBF,KAAKP,YAAcf,EAAKsB,KAAKtC,GAAI,gBAAkBsC,KAAKC,OAAOR,YAC/DO,KAAKN,WAAahB,EAAKsB,KAAKtC,GAAI,eAAiBsC,KAAKC,OAAOP,WAC7DM,KAAKL,aACHjB,EAAKsB,KAAKtC,GAAI,iBAAmBsC,KAAKC,OAAON,aAC/CK,KAAKG,SAAW,KAChBH,KAAKI,SAAW1B,EAAKsB,KAAKtC,GAAI,YAC9BsC,KAAKK,SAAW3B,EAAKsB,KAAKtC,GAAI,YAC9BsC,KAAKM,QACP,CAEA,MAAAA,GACEzD,OAAO0D,OAAOP,KAAKtC,GAAG8C,MAAO,CAC3BC,QAAS,IACTC,MAAO,IACPC,QAAS,IACTC,OAAQ,IACRC,SAAU,MAEZb,KAAKV,KAAOU,KAAKc,YAAYd,KAAKV,MAAQU,KAAKe,cAC/Cf,KAAKgB,iBACLhB,KAAKiB,WACP,CAEA,WAAAH,CAAYxB,GACVU,KAAKD,QAAUT,EAAK4B,KAAKC,IAAS,CAChC7B,KAAM6B,EACNC,WAAY,CACVC,WAAYF,EAAKE,SACjBhB,WAAYc,EAAKd,SACjBiB,SAAyB,aAAfH,EAAK3D,UAGrB,CAEA,WAAAuD,GACE,MAAMhB,EAAUwB,MAAMC,KAAKxB,KAAKtC,GAAG+D,iBAAiB,oBAC9CC,EAAa,GACbxB,EAAkB,GAExBF,KAAKV,KAAOS,EAAQmB,KAAKC,IACvB,IAAIQ,EAEFA,EADmB,aAAjBR,EAAKS,QACI,CAAEC,KAAMV,EAAKW,MAAOtE,MAAO,YAG3B,CACTqE,KAFWV,EAAKY,QAAQC,SAAWb,EAAKc,UAGxCzE,MAAO2D,EAAK3D,MACZ0E,MAAOf,EAAKY,QAAQG,MACpBb,SAAUF,EAAKgB,aAAa,YAC5B9B,SAAUc,EAAKgB,aAAa,aAGhC,MAAMf,EAAa,CACjBC,SAAUF,EAAKgB,aAAa,YAC5B9B,SAAUc,EAAKgB,aAAa,YAC5Bb,SAA2B,aAAjBH,EAAKS,SAEXQ,EAAY,CAAE9C,KAAMqC,EAAUP,aAAYtB,QAAS,MAGzD,OAFA4B,EAAWW,KAAKD,GACZhB,EAAWC,UAAUnB,EAAgBmC,KAAKD,GACvCT,CAAQ,IAGjB3B,KAAKD,QAAU2B,EACf1B,KAAKE,gBAAkBA,CACzB,CAEA,cAAAc,GACE,MAAMsB,EAAU,CACd,cACA5D,EAAKsB,KAAKtC,GAAI,UAAY,GAC1BsC,KAAKK,SAAW,WAAa,GAC7BL,KAAKI,SAAW,eAAiB,IACjCmC,OAAOC,SAEHC,EAAazC,KAAKC,OAAOV,WAC3B,oHAE6DS,KAAKN,sDAGlE,GAEEgD,EAAO,uBACGJ,EAAQK,KAAK,mBAAmB3C,KAAKK,SAAW,GAAK,6BAClDL,KAAKI,SAAW,mBAAqB,6EAEhDqC,0EAKRzC,KAAKtC,GAAGkF,mBAAmB,WAAYF,GACvC1C,KAAKG,SAAWH,KAAKtC,GAAGmF,mBACxB7C,KAAK8C,uBACL9C,KAAK+C,cACP,CAEA,oBAAAD,GACE,GAAI9C,KAAKI,SAAU,CACjB,IAAI4C,EAAe,GAEjBhD,KAAKC,OAAOT,mBACqC,SAAjDyD,OAAOC,iBAAiBlD,KAAKG,UAAUO,OACvCV,KAAKE,gBAAgBiD,OAAS,GAE9BnD,KAAKE,gBAAgBkD,SAASjC,IAC5B6B,GAAgB,yBAAyB7B,EAAK7B,KAAKuC,aAAa,IAElEmB,EAAeA,GAAgBhD,KAAKP,aAEpCuD,EAAe,GAAGhD,KAAKE,gBAAgBiD,UAAUnD,KAAKL,eAExDK,KAAKG,SAASkD,cAAc,qBAAqBC,UAAYN,CAC/D,KAAO,CACL,MAAMN,EACJ1C,KAAKE,gBAAgBiD,OAAS,EAC1BnD,KAAKE,gBAAgB,GAAGZ,KAAKuC,KAC7B7B,KAAKP,YACXO,KAAKG,SAASkD,cAAc,YAAYC,UAAYZ,CACtD,CACF,CAEA,YAAAK,GACE,MAAMQ,EAAKvD,KAAKG,SAASkD,cAAc,MACvCrD,KAAKD,QAAQqD,SAASjC,GAASoC,EAAGC,YAAYxD,KAAKyD,YAAYtC,KACjE,CAEA,WAAAsC,CAAYC,GACV,MAAMC,EAAKC,SAASC,cAAc,MAKlC,GAJAF,EAAGL,UAAYI,EAAOpE,KAAKuC,UACDlD,IAAtB+E,EAAOpE,KAAK4C,OACdyB,EAAGH,YAAYxD,KAAK8D,iBAAiBJ,EAAOpE,KAAK4C,QAE/CwB,EAAOtC,WAAWE,SACpBrC,EAAS0E,EAAI,gBACR,CACLA,EAAGI,aAAa,aAAcL,EAAOpE,KAAK9B,OAC1C,MAAMuB,EAAY,CAAC,UACf2E,EAAOtC,WAAWC,UAAUtC,EAAUsD,KAAK,YAC3CqB,EAAOtC,WAAWf,UAAUtB,EAAUsD,KAAK,YAC/CsB,EAAG5E,UAAUG,OAAOH,GACpB4E,EAAGK,iBAAiB,SAAUC,GAAMjE,KAAKkE,eAAeR,EAAQO,IAClE,CAEA,OADAP,EAAO5D,QAAU6D,EACVA,CACT,CAEA,gBAAAG,CAAiBK,GACf,MAAMC,EAAOR,SAASC,cAAc,QAGpC,OAFAO,EAAKd,UAAYa,EACjBlF,EAASmF,EAAM,SACRA,CACT,CAEA,MAAAC,GAEE,GADArE,KAAKe,cACDf,KAAKG,SAAU,CACjB,MAAMmE,EAAOzF,EAASmB,KAAKG,SAAU,QACrCH,KAAKG,SAASf,SACdY,KAAKM,SACDgE,GACF/F,EAAayB,KAAKG,SAEtB,CACAzB,EAAKsB,KAAKtC,GAAI,YAAcsC,KAAKuE,UAAYvE,KAAKwE,QACpD,CAEA,OAAAD,GACOvE,KAAKK,WACRL,KAAKK,UAAW,EAChBpB,EAASe,KAAKG,SAAU,YAE5B,CAEA,MAAAqE,GACMxE,KAAKK,WACPL,KAAKK,UAAW,EAChBlB,EAAYa,KAAKG,SAAU,YAE/B,CAEA,KAAAsE,GACEzE,KAAK0E,mBACL1E,KAAKE,gBAAkB,GACvBF,KAAK8C,uBACL9C,KAAKqE,SACL7F,EAAcwB,KAAKtC,GACrB,CAEA,OAAAiH,GACM3E,KAAKG,WACPH,KAAKG,SAASf,SACdY,KAAKtC,GAAG8C,MAAMwB,QAAU,GAE5B,CAEA,SAAAf,GACEjB,KAAKG,SAAS6D,iBAAiB,SAAUC,GAAMjE,KAAK4E,WAAWX,KAC/DjE,KAAKG,SAAS6D,iBAAiB,WAAYC,GAAMjE,KAAK6E,cAAcZ,KACpEjE,KAAKG,SAAS6D,iBAAiB,WAAW,KAAMc,OApO5BpH,EAoO2CsC,KAAKtC,GApOzCD,EAAaC,EAAI,WAAzB,IAACA,CAoOmD,IACvEsC,KAAKG,SAAS6D,iBAAiB,YAAY,KAAMe,OApO5BrH,EAoO4CsC,KAAKtC,GApO1CD,EAAaC,EAAI,YAAzB,IAACA,CAoOoD,IACzEsC,KAAKtC,GAAGsG,iBAAiB,WAAW,IAClChE,KAAKgF,0BAA0B,aAEjC/B,OAAOe,iBAAiB,SAAUC,GAAMjE,KAAKiF,kBAAkBhB,KAC3DjE,KAAKC,OAAOV,YAAYS,KAAKkF,kBACnC,CAEA,gBAAAA,GACE,MAAMC,EAAYnF,KAAKG,SAASkD,cAAc,uBAC1C8B,IACFA,EAAUnB,iBAAiB,SAAUC,GAAMA,EAAEmB,oBAC7CD,EAAUnB,iBAAiB,SAAUC,GAAMjE,KAAKqF,iBAAiBpB,KAErE,CAEA,UAAAW,CAAWX,GAnPY,IAACvG,EAoQtB,GAhBAuG,EAAEqB,iBACazG,EAASmB,KAAKG,SAAU,QAKjCH,KAAKI,SACH6D,EAAEsB,SAAWvF,KAAKG,SAASkD,cAAc,uBAC3ClE,EAAYa,KAAKG,SAAU,QAC3B1B,EAAkBuB,KAAKtC,MAGzByB,EAAYa,KAAKG,SAAU,QAC3B1B,EAAkBuB,KAAKtC,MAVzBuB,EAASe,KAAKG,SAAU,QAvPJzC,EAwPHsC,KAAKtC,GAxPKD,EAAaC,EAAI,cAoQ1CmB,EAASmB,KAAKG,SAAU,QAAS,CACnC,MAAMqF,EAASxF,KAAKG,SAASkD,cAAc,uBACvCmC,IACFA,EAAOhI,MAAQ,GACfgI,EAAOC,SAET,MAAMC,EAAU1F,KAAKG,SAASkD,cAAc,UACxCqC,GAASvG,EAAYuG,EAAS,SAClC,MAAMrE,EAAWrB,KAAKG,SAASkD,cAAc,aACzChC,GAAUpC,EAASoC,EAAU,SACjCrB,KAAKG,SACFsB,iBAAiB,SACjB2B,SAASjC,GAAUA,EAAKX,MAAMwB,QAAU,IAC7C,MACEhC,KAAKG,SAASsF,OAElB,CAEA,cAAAvB,CAAeR,EAAQO,GACrB,MAAM0B,EAAW1B,EAAEsB,OACnB,IAAK1G,EAAS8G,EAAU,YAAa,CACnC,GAAI3F,KAAKI,SACP,GAAIvB,EAAS8G,EAAU,YAAa,CAClCxG,EAAYwG,EAAU,YACtB3F,KAAKE,gBAAkBF,KAAKE,gBAAgBqC,QACzCpB,GAASA,IAASuC,IAErB,MAAMkC,EAAM5F,KAAKtC,GAAG2F,cAClB,iBAAiBsC,EAAS5D,QAAQvE,WAEhCoI,IACFA,EAAIC,gBAAgB,YACpBD,EAAIvE,UAAW,EAEnB,MACEpC,EAAS0G,EAAU,YACnB3F,KAAKE,gBAAgBmC,KAAKqB,QAG5B1D,KAAKD,QAAQqD,SAASjC,GAAShC,EAAYgC,EAAKrB,QAAS,cACzDb,EAAS0G,EAAU,YACnB3F,KAAKE,gBAAkB,CAACwD,GAE1B1D,KAAK8C,uBACL9C,KAAK8F,mBACP,CACF,CAEA,QAAAC,CAASvI,GACP,MAAMwI,EAAShG,KAAKtC,GACpB,IAAIuI,GAAa,EACbD,EAAO5F,WACT5C,EAAQA,EAAM0D,IAAIgF,SAEpB,IAAK,MAAMN,KAAOI,EAAOjG,QAAS,CAChC,MAAMoG,EAAeH,EAAO5F,SACxB5C,EAAMQ,SAAS4H,EAAIpI,OACjBoI,EAAIpI,MACJ,KACFA,EACAoI,EAAIpI,QAAU2I,GAAiBP,EAAIvF,UAQrCuF,EAAIC,gBAAgB,YACpBD,EAAIvE,UAAW,IARX4E,IACFD,EAAOxI,MAAQ2I,EACfF,GAAa,GAEfL,EAAI7B,aAAa,YAAY,GAC7B6B,EAAIvE,UAAW,EAKnB,CACI4E,IAAeD,EAAO5F,UAAY4F,EAAOjG,QAAQoD,SACnD6C,EAAOjG,QAAQ,GAAGgE,aAAa,YAAY,GAC3CiC,EAAOjG,QAAQ,GAAGsB,UAAW,EAC7B2E,EAAOxI,MAAQwI,EAAOjG,QAAQ,GAAGvC,OAEnCwC,KAAKqE,QACP,CAEA,QAAA+B,GACE,MAAMJ,EAAShG,KAAKtC,GACpB,OAAKsI,EAAO5F,SACLmB,MAAMC,KAAKwE,EAAOjG,SACtBwC,QAAQqD,GAAQA,EAAIvE,WACpBH,KAAK0E,GAAQA,EAAIpI,QAHSwI,EAAOxI,KAItC,CAEA,iBAAAsI,GACE,GAAI9F,KAAKI,SAAU,CACjB,MAAM4F,EAAShG,KAAKtC,GACpBsC,KAAKE,gBAAgBkD,SAASjC,IAC5B,MAAMzD,EAAKsI,EAAO3C,cAAc,iBAAiBlC,EAAK7B,KAAK9B,WACvDE,EACFA,EAAGqG,aAAa,YAAY,GAE5BsC,QAAQC,MAAM,0CAChB,GAEJ,MAAWtG,KAAKE,gBAAgBiD,OAAS,IACvCnD,KAAKtC,GAAGF,MAAQwC,KAAKE,gBAAgB,GAAGZ,KAAK9B,OAE/CgB,EAAcwB,KAAKtC,GACrB,CAEA,gBAAAgH,GACE,GAAI1E,KAAKI,SAAU,CACjB,MAAM4F,EAAShG,KAAKtC,GACpBsC,KAAKE,gBAAgBkD,SAASjC,IAC5B,MAAMzD,EAAKsI,EAAO3C,cAAc,iBAAiBlC,EAAK7B,KAAK9B,WACvDE,IACFA,EAAGmI,gBAAgB,YACnBnI,EAAG2D,UAAW,EAChB,GAEJ,MAAWrB,KAAKE,gBAAgBiD,OAAS,IACvCnD,KAAKtC,GAAG6I,eAAiB,GAE3B/H,EAAcwB,KAAKtC,GACrB,CAEA,iBAAAuH,CAAkBhB,GACXjE,KAAKG,SAASnB,SAASiF,EAAEsB,UAC5BpG,EAAYa,KAAKG,SAAU,QAC3B1B,EAAkBuB,KAAKtC,IAE3B,CAEA,aAAAmH,CAAcZ,GACZ,MAAMuC,EAAgBxG,KAAKG,SAASkD,cAAc,UAC5CoD,EAAS5H,EAASmB,KAAKG,SAAU,QACvC,GAAkB,KAAd8D,EAAEyC,QACKnI,EAATkI,EAAsBD,EAA8BxG,KAAKG,eACpD,GAAkB,KAAd8D,EAAEyC,QAAgB,CAC3B,GAAKD,EAEE,CACL,MAAME,EAAO3G,KAAK4G,UAAUJ,GACxBG,IACEH,GAAerH,EAAYqH,EAAe,SAC9CvH,EAAS0H,EAAM,SAEnB,MAPEpI,EAAayB,KAAKG,UAQpB8D,EAAEqB,gBACJ,MAAO,GAAkB,KAAdrB,EAAEyC,QAAgB,CAC3B,GAAKD,EAEE,CACL,MAAMI,EAAO7G,KAAK8G,UAAUN,GACxBK,IACEL,GAAerH,EAAYqH,EAAe,SAC9CvH,EAAS4H,EAAM,SAEnB,MAPEtI,EAAayB,KAAKG,UAQpB8D,EAAEqB,gBACJ,MAAO,GAAkB,KAAdrB,EAAEyC,SAAkBD,EAC7BlI,EAAayB,KAAKG,eACb,GAAkB,KAAd8D,EAAEyC,SAAkBD,EAC7B,OAAO,EAET,OAAO,CACT,CAEA,SAAAG,CAAUlJ,GACR,IAAIqJ,EAASrJ,EACTA,EAAGmF,mBACH7C,KAAKG,SAASkD,cAAc,iBAChC,KAAO0D,GAAQ,CACb,IAAKlI,EAASkI,EAAQ,aAAwC,SAAzBA,EAAOvG,MAAMwB,QAChD,OAAO+E,EACTA,EAASA,EAAOlE,kBAClB,CACA,OAAO,IACT,CAEA,SAAAiE,CAAUpJ,GACR,IAAIsJ,EAAStJ,EACTA,EAAGuJ,uBACHjH,KAAKG,SAASkD,cAAc,4BAChC,KAAO2D,GAAQ,CACb,IAAKnI,EAASmI,EAAQ,aAAwC,SAAzBA,EAAOxG,MAAMwB,QAChD,OAAOgF,EACTA,EAASA,EAAOC,sBAClB,CACA,OAAO,IACT,CAEA,gBAAA5B,CAAiBpB,GACf,MAAMpC,EAAOoC,EAAEsB,OAAO/H,MAAM0J,cAC5B,GAAa,KAATrF,EACF7B,KAAKD,QAAQqD,SAASjC,GAAUA,EAAKrB,QAAQU,MAAMwB,QAAU,UACxD,GAAInD,EAASmB,KAAKG,SAAU,QAAS,CAC1C,MAAMgH,EAAW,IAAIC,OAAOvF,GAC5B7B,KAAKD,QAAQqD,SAASjC,IACpBA,EAAKrB,QAAQU,MAAMwB,QAAUmF,EAASE,KAAKlG,EAAK7B,KAAKuC,KAAKqF,eACtD,GACA,MAAM,GAEd,CACAlH,KAAKG,SACFsB,iBAAiB,UACjB2B,SAASjC,GAAShC,EAAYgC,EAAM,WACvC,MAAMmG,EAAUtH,KAAK4G,UAAU,MAC3BU,GAASrI,EAASqI,EAAS,QACjC,CAEA,yBAAAtC,CAA0BrH,GACX,YAATA,GACFsB,EAASe,KAAKG,SAAU,WACxBhB,EAAYa,KAAKG,SAAU,WAE3BlB,EAASe,KAAKG,SAAU,SACxBhB,EAAYa,KAAKG,SAAU,WAE/B,EAGF,UACO,SAASoH,EAAK7J,EAAIqC,GACvB,OAAO,IAAIH,EAAWlC,EAAIqC,EAC5B,C","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                  \r\n \r\n
                                  \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                  \r\n \r\n
                                  \r\n ${searchHtml}\r\n
                                    \r\n
                                    \r\n
                                    \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n if (!element) {\r\n throw new Error('No element provided to NiceSelect');\r\n }\r\n if (!(element instanceof Element)) {\r\n throw new Error('Invalid element provided to NiceSelect - must be a valid DOM element');\r\n }\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                    \r\n \r\n
                                    \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                    \r\n \r\n
                                    \r\n ${searchHtml}\r\n
                                      \r\n
                                      \r\n
                                      \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","Error","Element","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index ee2bcf6..a9e7230 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -14,7 +14,8 @@ module.exports = { type: "umd", }, }, - devtool: "source-map", + devtool: + process.env.NODE_ENV === "production" ? "source-map" : "eval-source-map", optimization: { usedExports: true, }, From 3c1c651d84e858fa16beafbc076ee7552e4a31a1 Mon Sep 17 00:00:00 2001 From: MOHAMMAD BAGHAEI <49115397+mohammadbaghaei@users.noreply.github.com> Date: Wed, 5 Feb 2025 08:51:25 +0330 Subject: [PATCH 5/6] Update src/js/nice-select2.js Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- src/js/nice-select2.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/js/nice-select2.js b/src/js/nice-select2.js index 8802ccb..1986664 100644 --- a/src/js/nice-select2.js +++ b/src/js/nice-select2.js @@ -340,8 +340,21 @@ class NiceSelect { setValue(value) { const select = this.el; let noSelected = true; + + // Validate input type if (select.multiple) { + if (!Array.isArray(value)) { + throw new Error('setValue expects an array for multiple select elements'); + } value = value.map(String); + } else { + if (Array.isArray(value)) { + throw new Error('setValue expects a single value for non-multiple select elements'); + } + if (value !== null && value !== undefined && typeof value !== 'string' && typeof value !== 'number') { + throw new Error('setValue expects a string or number for non-multiple select elements'); + } + value = String(value); } for (const opt of select.options) { const currentValue = select.multiple From 3c917eb72e923f958cdb46a6d44b0b9db15463c4 Mon Sep 17 00:00:00 2001 From: Mohammad Baghaei Date: Wed, 5 Feb 2025 15:07:37 +0330 Subject: [PATCH 6/6] update build files --- dist/js/nice-select2.js | 2 +- dist/js/nice-select2.js.map | 2 +- docs/dist/js/nice-select2.js | 2 +- docs/dist/js/nice-select2.js.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/js/nice-select2.js b/dist/js/nice-select2.js index 397193d..23af709 100644 --- a/dist/js/nice-select2.js +++ b/dist/js/nice-select2.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){if(!e)throw new Error("No element provided to NiceSelect");if(!(e instanceof Element))throw new Error("Invalid element provided to NiceSelect - must be a valid DOM element");this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                                      \n \n
                                      \n ${t}\n
                                        \n
                                        \n
                                        \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const l=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(l)},i=e=>s(e,"click"),l=e=>s(e,"change"),o=e=>s(e,"modalclose"),n=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),d=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){if(!e)throw new Error("No element provided to NiceSelect");if(!(e instanceof Element))throw new Error("Invalid element provided to NiceSelect - must be a valid DOM element");this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=n(this.el,"placeholder")||this.config.placeholder,this.searchtext=n(this.el,"searchtext")||this.config.searchtext,this.selectedtext=n(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=n(this.el,"multiple"),this.disabled=n(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const l={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},o={data:i,attributes:l,element:null};return t.push(o),l.selected&&s.push(o),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",n(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                                        \n \n
                                        \n ${t}\n
                                          \n
                                          \n
                                          \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=d(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}n(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),l(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),d(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),o(this.el)):(a(this.dropdown,"open"),o(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),d(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!d(s,"disabled")){if(this.multiple)if(d(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;if(t.multiple){if(!Array.isArray(e))throw new Error("setValue expects an array for multiple select elements");e=e.map(String)}else{if(Array.isArray(e))throw new Error("setValue expects a single value for non-multiple select elements");if(null!=e&&"string"!=typeof e&&"number"!=typeof e)throw new Error("setValue expects a string or number for non-multiple select elements");e=String(e)}for(const i of t.options){const l=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==l||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=l,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);l(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);l(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),o(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=d(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!d(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!d(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(d(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); //# sourceMappingURL=nice-select2.js.map \ No newline at end of file diff --git a/dist/js/nice-select2.js.map b/dist/js/nice-select2.js.map index cc473df..4a0b32f 100644 --- a/dist/js/nice-select2.js.map +++ b/dist/js/nice-select2.js.map @@ -1 +1 @@ -{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n if (!element) {\r\n throw new Error('No element provided to NiceSelect');\r\n }\r\n if (!(element instanceof Element)) {\r\n throw new Error('Invalid element provided to NiceSelect - must be a valid DOM element');\r\n }\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                          \r\n \r\n
                                          \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                          \r\n \r\n
                                          \r\n ${searchHtml}\r\n
                                            \r\n
                                            \r\n
                                            \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","Error","Element","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n if (!element) {\r\n throw new Error('No element provided to NiceSelect');\r\n }\r\n if (!(element instanceof Element)) {\r\n throw new Error('Invalid element provided to NiceSelect - must be a valid DOM element');\r\n }\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                            \r\n \r\n
                                            \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                            \r\n \r\n
                                            \r\n ${searchHtml}\r\n
                                              \r\n
                                              \r\n
                                              \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n\r\n // Validate input type\r\n if (select.multiple) {\r\n if (!Array.isArray(value)) {\r\n throw new Error('setValue expects an array for multiple select elements');\r\n }\r\n value = value.map(String);\r\n } else {\r\n if (Array.isArray(value)) {\r\n throw new Error('setValue expects a single value for non-multiple select elements');\r\n }\r\n if (value !== null && value !== undefined && typeof value !== 'string' && typeof value !== 'number') {\r\n throw new Error('setValue expects a string or number for non-multiple select elements');\r\n }\r\n value = String(value);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","Error","Element","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","isArray","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/js/nice-select2.js b/docs/dist/js/nice-select2.js index ec8c914..23af709 100644 --- a/docs/dist/js/nice-select2.js +++ b/docs/dist/js/nice-select2.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const o=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(o)},i=e=>s(e,"click"),o=e=>s(e,"change"),l=e=>s(e,"modalclose"),d=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),n=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=d(this.el,"placeholder")||this.config.placeholder,this.searchtext=d(this.el,"searchtext")||this.config.searchtext,this.selectedtext=d(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=d(this.el,"multiple"),this.disabled=d(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const o={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},l={data:i,attributes:o,element:null};return t.push(l),o.selected&&s.push(l),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",d(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                                              \n \n
                                              \n ${t}\n
                                                \n
                                                \n
                                                \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=n(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}d(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),o(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),n(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),l(this.el)):(a(this.dropdown,"open"),l(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),n(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!n(s,"disabled")){if(this.multiple)if(n(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;t.multiple&&(e=e.map(String));for(const i of t.options){const o=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==o||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=o,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);o(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);o(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),l(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=n(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!n(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(n(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.NiceSelect=t():e.NiceSelect=t()}(self,(()=>(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{bind:()=>u,default:()=>p});const s=(e,t,s={})=>{let i;i="click"===t?MouseEvent:"change"===t?Event:t.includes("focus")?FocusEvent:UIEvent;const l=new i(t,{bubbles:!0,cancelable:!1,...s});e.dispatchEvent(l)},i=e=>s(e,"click"),l=e=>s(e,"change"),o=e=>s(e,"modalclose"),n=(e,t)=>void 0!==e[t]?e[t]:e.getAttribute(t),d=(e,t)=>e?.classList.contains(t),r=(e,t)=>e?.classList.add(t),a=(e,t)=>e?.classList.remove(t),c={data:null,searchable:!1,showSelectedItems:!1,placeholder:"Select an option",searchtext:"Search",selectedtext:"selected"};class h{constructor(e,t={}){if(!e)throw new Error("No element provided to NiceSelect");if(!(e instanceof Element))throw new Error("Invalid element provided to NiceSelect - must be a valid DOM element");this.el=e,this.config={...c,...t},this.data=this.config.data,this.selectedOptions=[],this.placeholder=n(this.el,"placeholder")||this.config.placeholder,this.searchtext=n(this.el,"searchtext")||this.config.searchtext,this.selectedtext=n(this.el,"selectedtext")||this.config.selectedtext,this.dropdown=null,this.multiple=n(this.el,"multiple"),this.disabled=n(this.el,"disabled"),this.create()}create(){Object.assign(this.el.style,{opacity:"0",width:"0",padding:"0",height:"0",fontSize:"0"}),this.data?this.processData(this.data):this.extractData(),this.renderDropdown(),this.bindEvent()}processData(e){this.options=e.map((e=>({data:e,attributes:{selected:!!e.selected,disabled:!!e.disabled,optgroup:"optgroup"===e.value}})))}extractData(){const e=Array.from(this.el.querySelectorAll("option,optgroup")),t=[],s=[];this.data=e.map((e=>{let i;i="OPTGROUP"===e.tagName?{text:e.label,value:"optgroup"}:{text:e.dataset.display??e.innerText,value:e.value,extra:e.dataset.extra,selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled")};const l={selected:e.hasAttribute("selected"),disabled:e.hasAttribute("disabled"),optgroup:"OPTGROUP"===e.tagName},o={data:i,attributes:l,element:null};return t.push(o),l.selected&&s.push(o),i})),this.options=t,this.selectedOptions=s}renderDropdown(){const e=["nice-select",n(this.el,"class")||"",this.disabled?"disabled":"",this.multiple?"has-multiple":""].filter(Boolean),t=this.config.searchable?`\n \n `:"",s=`\n
                                                \n \n
                                                \n ${t}\n
                                                  \n
                                                  \n
                                                  \n `;this.el.insertAdjacentHTML("afterend",s),this.dropdown=this.el.nextElementSibling,this._renderSelectedItems(),this._renderItems()}_renderSelectedItems(){if(this.multiple){let e="";this.config.showSelectedItems||"auto"===window.getComputedStyle(this.dropdown).width||this.selectedOptions.length<2?(this.selectedOptions.forEach((t=>{e+=`${t.data.text}`})),e=e||this.placeholder):e=`${this.selectedOptions.length} ${this.selectedtext}`,this.dropdown.querySelector(".multiple-options").innerHTML=e}else{const e=this.selectedOptions.length>0?this.selectedOptions[0].data.text:this.placeholder;this.dropdown.querySelector(".current").innerHTML=e}}_renderItems(){const e=this.dropdown.querySelector("ul");this.options.forEach((t=>e.appendChild(this._renderItem(t))))}_renderItem(e){const t=document.createElement("li");if(t.innerHTML=e.data.text,void 0!==e.data.extra&&t.appendChild(this._renderItemExtra(e.data.extra)),e.attributes.optgroup)r(t,"optgroup");else{t.setAttribute("data-value",e.data.value);const s=["option"];e.attributes.selected&&s.push("selected"),e.attributes.disabled&&s.push("disabled"),t.classList.add(...s),t.addEventListener("click",(t=>this._onItemClicked(e,t)))}return e.element=t,t}_renderItemExtra(e){const t=document.createElement("span");return t.innerHTML=e,r(t,"extra"),t}update(){if(this.extractData(),this.dropdown){const e=d(this.dropdown,"open");this.dropdown.remove(),this.create(),e&&i(this.dropdown)}n(this.el,"disabled")?this.disable():this.enable()}disable(){this.disabled||(this.disabled=!0,r(this.dropdown,"disabled"))}enable(){this.disabled&&(this.disabled=!1,a(this.dropdown,"disabled"))}clear(){this.resetSelectValue(),this.selectedOptions=[],this._renderSelectedItems(),this.update(),l(this.el)}destroy(){this.dropdown&&(this.dropdown.remove(),this.el.style.display="")}bindEvent(){this.dropdown.addEventListener("click",(e=>this._onClicked(e))),this.dropdown.addEventListener("keydown",(e=>this._onKeyPressed(e))),this.dropdown.addEventListener("focusin",(()=>{return e=this.el,s(e,"focusin");var e})),this.dropdown.addEventListener("focusout",(()=>{return e=this.el,s(e,"focusout");var e})),this.el.addEventListener("invalid",(()=>this._triggerValidationMessage("invalid"))),window.addEventListener("click",(e=>this._onClickedOutside(e))),this.config.searchable&&this._bindSearchEvent()}_bindSearchEvent(){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.addEventListener("click",(e=>e.stopPropagation())),e.addEventListener("input",(e=>this._onSearchChanged(e))))}_onClicked(e){var t;if(e.preventDefault(),d(this.dropdown,"open")?this.multiple?e.target===this.dropdown.querySelector(".multiple-options")&&(a(this.dropdown,"open"),o(this.el)):(a(this.dropdown,"open"),o(this.el)):(r(this.dropdown,"open"),t=this.el,s(t,"modalopen")),d(this.dropdown,"open")){const e=this.dropdown.querySelector(".nice-select-search");e&&(e.value="",e.focus());const t=this.dropdown.querySelector(".focus");t&&a(t,"focus");const s=this.dropdown.querySelector(".selected");s&&r(s,"focus"),this.dropdown.querySelectorAll("ul li").forEach((e=>e.style.display=""))}else this.dropdown.focus()}_onItemClicked(e,t){const s=t.target;if(!d(s,"disabled")){if(this.multiple)if(d(s,"selected")){a(s,"selected"),this.selectedOptions=this.selectedOptions.filter((t=>t!==e));const t=this.el.querySelector(`option[value="${s.dataset.value}"]`);t&&(t.removeAttribute("selected"),t.selected=!1)}else r(s,"selected"),this.selectedOptions.push(e);else this.options.forEach((e=>a(e.element,"selected"))),r(s,"selected"),this.selectedOptions=[e];this._renderSelectedItems(),this.updateSelectValue()}}setValue(e){const t=this.el;let s=!0;if(t.multiple){if(!Array.isArray(e))throw new Error("setValue expects an array for multiple select elements");e=e.map(String)}else{if(Array.isArray(e))throw new Error("setValue expects a single value for non-multiple select elements");if(null!=e&&"string"!=typeof e&&"number"!=typeof e)throw new Error("setValue expects a string or number for non-multiple select elements");e=String(e)}for(const i of t.options){const l=t.multiple?e.includes(i.value)?i.value:null:e;i.value!==l||i.disabled?(i.removeAttribute("selected"),i.selected=!1):(s&&(t.value=l,s=!1),i.setAttribute("selected",!0),i.selected=!0)}s&&!t.multiple&&t.options.length&&(t.options[0].setAttribute("selected",!0),t.options[0].selected=!0,t.value=t.options[0].value),this.update()}getValue(){const e=this.el;return e.multiple?Array.from(e.options).filter((e=>e.selected)).map((e=>e.value)):e.value}updateSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s?s.setAttribute("selected",!0):console.error("Option not found, does it have a value?")}))}else this.selectedOptions.length>0&&(this.el.value=this.selectedOptions[0].data.value);l(this.el)}resetSelectValue(){if(this.multiple){const e=this.el;this.selectedOptions.forEach((t=>{const s=e.querySelector(`option[value="${t.data.value}"]`);s&&(s.removeAttribute("selected"),s.selected=!1)}))}else this.selectedOptions.length>0&&(this.el.selectedIndex=-1);l(this.el)}_onClickedOutside(e){this.dropdown.contains(e.target)||(a(this.dropdown,"open"),o(this.el))}_onKeyPressed(e){const t=this.dropdown.querySelector(".focus"),s=d(this.dropdown,"open");if(13===e.keyCode)i(s?t:this.dropdown);else if(40===e.keyCode){if(s){const e=this._findNext(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(38===e.keyCode){if(s){const e=this._findPrev(t);e&&(t&&a(t,"focus"),r(e,"focus"))}else i(this.dropdown);e.preventDefault()}else if(27===e.keyCode&&s)i(this.dropdown);else if(32===e.keyCode&&s)return!1;return!1}_findNext(e){let t=e?e.nextElementSibling:this.dropdown.querySelector(".list .option");for(;t;){if(!d(t,"disabled")&&"none"!==t.style.display)return t;t=t.nextElementSibling}return null}_findPrev(e){let t=e?e.previousElementSibling:this.dropdown.querySelector(".list .option:last-child");for(;t;){if(!d(t,"disabled")&&"none"!==t.style.display)return t;t=t.previousElementSibling}return null}_onSearchChanged(e){const t=e.target.value.toLowerCase();if(""===t)this.options.forEach((e=>e.element.style.display=""));else if(d(this.dropdown,"open")){const e=new RegExp(t);this.options.forEach((t=>{t.element.style.display=e.test(t.data.text.toLowerCase())?"":"none"}))}this.dropdown.querySelectorAll(".focus").forEach((e=>a(e,"focus")));const s=this._findNext(null);s&&r(s,"focus")}_triggerValidationMessage(e){"invalid"===e?(r(this.dropdown,"invalid"),a(this.dropdown,"valid")):(r(this.dropdown,"valid"),a(this.dropdown,"invalid"))}}const p=h;function u(e,t){return new h(e,t)}return t})())); //# sourceMappingURL=nice-select2.js.map \ No newline at end of file diff --git a/docs/dist/js/nice-select2.js.map b/docs/dist/js/nice-select2.js.map index 033d8db..4a0b32f 100644 --- a/docs/dist/js/nice-select2.js.map +++ b/docs/dist/js/nice-select2.js.map @@ -1 +1 @@ -{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                                  \r\n \r\n
                                                  \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                                  \r\n \r\n
                                                  \r\n ${searchHtml}\r\n
                                                    \r\n
                                                    \r\n
                                                    \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n if (select.multiple) {\r\n value = value.map(String);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/nice-select2.js","mappings":"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","sources":["webpack://NiceSelect/webpack/universalModuleDefinition","webpack://NiceSelect/webpack/bootstrap","webpack://NiceSelect/webpack/runtime/define property getters","webpack://NiceSelect/webpack/runtime/hasOwnProperty shorthand","webpack://NiceSelect/webpack/runtime/make namespace object","webpack://NiceSelect/./src/js/nice-select2.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NiceSelect\"] = factory();\n\telse\n\t\troot[\"NiceSelect\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import \"../scss/nice-select2.scss\";\r\n\r\nconst triggerEvent = (el, type, init = {}) => {\r\n let EventConstructor;\r\n if (type === \"click\") {\r\n EventConstructor = MouseEvent;\r\n } else if (type === \"change\") {\r\n EventConstructor = Event;\r\n } else if (type.includes(\"focus\")) {\r\n EventConstructor = FocusEvent;\r\n } else {\r\n EventConstructor = UIEvent;\r\n }\r\n const event = new EventConstructor(type, {\r\n bubbles: true,\r\n cancelable: false,\r\n ...init,\r\n });\r\n el.dispatchEvent(event);\r\n};\r\n\r\nconst triggerClick = (el) => triggerEvent(el, \"click\");\r\nconst triggerChange = (el) => triggerEvent(el, \"change\");\r\nconst triggerFocusIn = (el) => triggerEvent(el, \"focusin\");\r\nconst triggerFocusOut = (el) => triggerEvent(el, \"focusout\");\r\nconst triggerModalOpen = (el) => triggerEvent(el, \"modalopen\");\r\nconst triggerModalClose = (el) => triggerEvent(el, \"modalclose\");\r\n\r\nconst attr = (el, key) =>\r\n el[key] !== undefined ? el[key] : el.getAttribute(key);\r\nconst data = (el, key) => el.getAttribute(\"data-\" + key);\r\nconst hasClass = (el, className) => el?.classList.contains(className);\r\nconst addClass = (el, className) => el?.classList.add(className);\r\nconst removeClass = (el, className) => el?.classList.remove(className);\r\n\r\nconst defaultOptions = {\r\n data: null,\r\n searchable: false,\r\n showSelectedItems: false,\r\n placeholder: \"Select an option\",\r\n searchtext: \"Search\",\r\n selectedtext: \"selected\",\r\n};\r\n\r\nclass NiceSelect {\r\n constructor(element, options = {}) {\r\n if (!element) {\r\n throw new Error('No element provided to NiceSelect');\r\n }\r\n if (!(element instanceof Element)) {\r\n throw new Error('Invalid element provided to NiceSelect - must be a valid DOM element');\r\n }\r\n this.el = element;\r\n this.config = { ...defaultOptions, ...options };\r\n this.data = this.config.data;\r\n this.selectedOptions = [];\r\n this.placeholder = attr(this.el, \"placeholder\") || this.config.placeholder;\r\n this.searchtext = attr(this.el, \"searchtext\") || this.config.searchtext;\r\n this.selectedtext =\r\n attr(this.el, \"selectedtext\") || this.config.selectedtext;\r\n this.dropdown = null;\r\n this.multiple = attr(this.el, \"multiple\");\r\n this.disabled = attr(this.el, \"disabled\");\r\n this.create();\r\n }\r\n\r\n create() {\r\n Object.assign(this.el.style, {\r\n opacity: \"0\",\r\n width: \"0\",\r\n padding: \"0\",\r\n height: \"0\",\r\n fontSize: \"0\",\r\n });\r\n this.data ? this.processData(this.data) : this.extractData();\r\n this.renderDropdown();\r\n this.bindEvent();\r\n }\r\n\r\n processData(data) {\r\n this.options = data.map((item) => ({\r\n data: item,\r\n attributes: {\r\n selected: !!item.selected,\r\n disabled: !!item.disabled,\r\n optgroup: item.value === \"optgroup\",\r\n },\r\n }));\r\n }\r\n\r\n extractData() {\r\n const options = Array.from(this.el.querySelectorAll(\"option,optgroup\"));\r\n const allOptions = [];\r\n const selectedOptions = [];\r\n\r\n this.data = options.map((item) => {\r\n let itemData;\r\n if (item.tagName === \"OPTGROUP\") {\r\n itemData = { text: item.label, value: \"optgroup\" };\r\n } else {\r\n const text = item.dataset.display ?? item.innerText;\r\n itemData = {\r\n text,\r\n value: item.value,\r\n extra: item.dataset.extra,\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n };\r\n }\r\n const attributes = {\r\n selected: item.hasAttribute(\"selected\"),\r\n disabled: item.hasAttribute(\"disabled\"),\r\n optgroup: item.tagName === \"OPTGROUP\",\r\n };\r\n const optionObj = { data: itemData, attributes, element: null };\r\n allOptions.push(optionObj);\r\n if (attributes.selected) selectedOptions.push(optionObj);\r\n return itemData;\r\n });\r\n\r\n this.options = allOptions;\r\n this.selectedOptions = selectedOptions;\r\n }\r\n\r\n renderDropdown() {\r\n const classes = [\r\n \"nice-select\",\r\n attr(this.el, \"class\") || \"\",\r\n this.disabled ? \"disabled\" : \"\",\r\n this.multiple ? \"has-multiple\" : \"\",\r\n ].filter(Boolean);\r\n\r\n const searchHtml = this.config.searchable\r\n ? `\r\n
                                                    \r\n \r\n
                                                    \r\n `\r\n : \"\";\r\n\r\n const html = `\r\n
                                                    \r\n \r\n
                                                    \r\n ${searchHtml}\r\n
                                                      \r\n
                                                      \r\n
                                                      \r\n `;\r\n this.el.insertAdjacentHTML(\"afterend\", html);\r\n this.dropdown = this.el.nextElementSibling;\r\n this._renderSelectedItems();\r\n this._renderItems();\r\n }\r\n\r\n _renderSelectedItems() {\r\n if (this.multiple) {\r\n let selectedHtml = \"\";\r\n if (\r\n this.config.showSelectedItems ||\r\n window.getComputedStyle(this.dropdown).width === \"auto\" ||\r\n this.selectedOptions.length < 2\r\n ) {\r\n this.selectedOptions.forEach((item) => {\r\n selectedHtml += `${item.data.text}`;\r\n });\r\n selectedHtml = selectedHtml || this.placeholder;\r\n } else {\r\n selectedHtml = `${this.selectedOptions.length} ${this.selectedtext}`;\r\n }\r\n this.dropdown.querySelector(\".multiple-options\").innerHTML = selectedHtml;\r\n } else {\r\n const html =\r\n this.selectedOptions.length > 0\r\n ? this.selectedOptions[0].data.text\r\n : this.placeholder;\r\n this.dropdown.querySelector(\".current\").innerHTML = html;\r\n }\r\n }\r\n\r\n _renderItems() {\r\n const ul = this.dropdown.querySelector(\"ul\");\r\n this.options.forEach((item) => ul.appendChild(this._renderItem(item)));\r\n }\r\n\r\n _renderItem(option) {\r\n const li = document.createElement(\"li\");\r\n li.innerHTML = option.data.text;\r\n if (option.data.extra !== undefined) {\r\n li.appendChild(this._renderItemExtra(option.data.extra));\r\n }\r\n if (option.attributes.optgroup) {\r\n addClass(li, \"optgroup\");\r\n } else {\r\n li.setAttribute(\"data-value\", option.data.value);\r\n const classList = [\"option\"];\r\n if (option.attributes.selected) classList.push(\"selected\");\r\n if (option.attributes.disabled) classList.push(\"disabled\");\r\n li.classList.add(...classList);\r\n li.addEventListener(\"click\", (e) => this._onItemClicked(option, e));\r\n }\r\n option.element = li;\r\n return li;\r\n }\r\n\r\n _renderItemExtra(content) {\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = content;\r\n addClass(span, \"extra\");\r\n return span;\r\n }\r\n\r\n update() {\r\n this.extractData();\r\n if (this.dropdown) {\r\n const open = hasClass(this.dropdown, \"open\");\r\n this.dropdown.remove();\r\n this.create();\r\n if (open) {\r\n triggerClick(this.dropdown);\r\n }\r\n }\r\n attr(this.el, \"disabled\") ? this.disable() : this.enable();\r\n }\r\n\r\n disable() {\r\n if (!this.disabled) {\r\n this.disabled = true;\r\n addClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n enable() {\r\n if (this.disabled) {\r\n this.disabled = false;\r\n removeClass(this.dropdown, \"disabled\");\r\n }\r\n }\r\n\r\n clear() {\r\n this.resetSelectValue();\r\n this.selectedOptions = [];\r\n this._renderSelectedItems();\r\n this.update();\r\n triggerChange(this.el);\r\n }\r\n\r\n destroy() {\r\n if (this.dropdown) {\r\n this.dropdown.remove();\r\n this.el.style.display = \"\";\r\n }\r\n }\r\n\r\n bindEvent() {\r\n this.dropdown.addEventListener(\"click\", (e) => this._onClicked(e));\r\n this.dropdown.addEventListener(\"keydown\", (e) => this._onKeyPressed(e));\r\n this.dropdown.addEventListener(\"focusin\", () => triggerFocusIn(this.el));\r\n this.dropdown.addEventListener(\"focusout\", () => triggerFocusOut(this.el));\r\n this.el.addEventListener(\"invalid\", () =>\r\n this._triggerValidationMessage(\"invalid\")\r\n );\r\n window.addEventListener(\"click\", (e) => this._onClickedOutside(e));\r\n if (this.config.searchable) this._bindSearchEvent();\r\n }\r\n\r\n _bindSearchEvent() {\r\n const searchBox = this.dropdown.querySelector(\".nice-select-search\");\r\n if (searchBox) {\r\n searchBox.addEventListener(\"click\", (e) => e.stopPropagation());\r\n searchBox.addEventListener(\"input\", (e) => this._onSearchChanged(e));\r\n }\r\n }\r\n\r\n _onClicked(e) {\r\n e.preventDefault();\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (!isOpen) {\r\n addClass(this.dropdown, \"open\");\r\n triggerModalOpen(this.el);\r\n } else {\r\n if (this.multiple) {\r\n if (e.target === this.dropdown.querySelector(\".multiple-options\")) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n } else {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n if (hasClass(this.dropdown, \"open\")) {\r\n const search = this.dropdown.querySelector(\".nice-select-search\");\r\n if (search) {\r\n search.value = \"\";\r\n search.focus();\r\n }\r\n const focused = this.dropdown.querySelector(\".focus\");\r\n if (focused) removeClass(focused, \"focus\");\r\n const selected = this.dropdown.querySelector(\".selected\");\r\n if (selected) addClass(selected, \"focus\");\r\n this.dropdown\r\n .querySelectorAll(\"ul li\")\r\n .forEach((item) => (item.style.display = \"\"));\r\n } else {\r\n this.dropdown.focus();\r\n }\r\n }\r\n\r\n _onItemClicked(option, e) {\r\n const optionEl = e.target;\r\n if (!hasClass(optionEl, \"disabled\")) {\r\n if (this.multiple) {\r\n if (hasClass(optionEl, \"selected\")) {\r\n removeClass(optionEl, \"selected\");\r\n this.selectedOptions = this.selectedOptions.filter(\r\n (item) => item !== option\r\n );\r\n const opt = this.el.querySelector(\r\n `option[value=\"${optionEl.dataset.value}\"]`\r\n );\r\n if (opt) {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n } else {\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions.push(option);\r\n }\r\n } else {\r\n this.options.forEach((item) => removeClass(item.element, \"selected\"));\r\n addClass(optionEl, \"selected\");\r\n this.selectedOptions = [option];\r\n }\r\n this._renderSelectedItems();\r\n this.updateSelectValue();\r\n }\r\n }\r\n\r\n setValue(value) {\r\n const select = this.el;\r\n let noSelected = true;\r\n\r\n // Validate input type\r\n if (select.multiple) {\r\n if (!Array.isArray(value)) {\r\n throw new Error('setValue expects an array for multiple select elements');\r\n }\r\n value = value.map(String);\r\n } else {\r\n if (Array.isArray(value)) {\r\n throw new Error('setValue expects a single value for non-multiple select elements');\r\n }\r\n if (value !== null && value !== undefined && typeof value !== 'string' && typeof value !== 'number') {\r\n throw new Error('setValue expects a string or number for non-multiple select elements');\r\n }\r\n value = String(value);\r\n }\r\n for (const opt of select.options) {\r\n const currentValue = select.multiple\r\n ? value.includes(opt.value)\r\n ? opt.value\r\n : null\r\n : value;\r\n if (opt.value === currentValue && !opt.disabled) {\r\n if (noSelected) {\r\n select.value = currentValue;\r\n noSelected = false;\r\n }\r\n opt.setAttribute(\"selected\", true);\r\n opt.selected = true;\r\n } else {\r\n opt.removeAttribute(\"selected\");\r\n opt.selected = false;\r\n }\r\n }\r\n if (noSelected && !select.multiple && select.options.length) {\r\n select.options[0].setAttribute(\"selected\", true);\r\n select.options[0].selected = true;\r\n select.value = select.options[0].value;\r\n }\r\n this.update();\r\n }\r\n\r\n getValue() {\r\n const select = this.el;\r\n if (!select.multiple) return select.value;\r\n return Array.from(select.options)\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n }\r\n\r\n updateSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.setAttribute(\"selected\", true);\r\n } else {\r\n console.error(\"Option not found, does it have a value?\");\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.value = this.selectedOptions[0].data.value;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n resetSelectValue() {\r\n if (this.multiple) {\r\n const select = this.el;\r\n this.selectedOptions.forEach((item) => {\r\n const el = select.querySelector(`option[value=\"${item.data.value}\"]`);\r\n if (el) {\r\n el.removeAttribute(\"selected\");\r\n el.selected = false;\r\n }\r\n });\r\n } else if (this.selectedOptions.length > 0) {\r\n this.el.selectedIndex = -1;\r\n }\r\n triggerChange(this.el);\r\n }\r\n\r\n _onClickedOutside(e) {\r\n if (!this.dropdown.contains(e.target)) {\r\n removeClass(this.dropdown, \"open\");\r\n triggerModalClose(this.el);\r\n }\r\n }\r\n\r\n _onKeyPressed(e) {\r\n const focusedOption = this.dropdown.querySelector(\".focus\");\r\n const isOpen = hasClass(this.dropdown, \"open\");\r\n if (e.keyCode === 13) {\r\n isOpen ? triggerClick(focusedOption) : triggerClick(this.dropdown);\r\n } else if (e.keyCode === 40) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const next = this._findNext(focusedOption);\r\n if (next) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(next, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 38) {\r\n if (!isOpen) {\r\n triggerClick(this.dropdown);\r\n } else {\r\n const prev = this._findPrev(focusedOption);\r\n if (prev) {\r\n if (focusedOption) removeClass(focusedOption, \"focus\");\r\n addClass(prev, \"focus\");\r\n }\r\n }\r\n e.preventDefault();\r\n } else if (e.keyCode === 27 && isOpen) {\r\n triggerClick(this.dropdown);\r\n } else if (e.keyCode === 32 && isOpen) {\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n _findNext(el) {\r\n let nextEl = el\r\n ? el.nextElementSibling\r\n : this.dropdown.querySelector(\".list .option\");\r\n while (nextEl) {\r\n if (!hasClass(nextEl, \"disabled\") && nextEl.style.display !== \"none\")\r\n return nextEl;\r\n nextEl = nextEl.nextElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _findPrev(el) {\r\n let prevEl = el\r\n ? el.previousElementSibling\r\n : this.dropdown.querySelector(\".list .option:last-child\");\r\n while (prevEl) {\r\n if (!hasClass(prevEl, \"disabled\") && prevEl.style.display !== \"none\")\r\n return prevEl;\r\n prevEl = prevEl.previousElementSibling;\r\n }\r\n return null;\r\n }\r\n\r\n _onSearchChanged(e) {\r\n const text = e.target.value.toLowerCase();\r\n if (text === \"\") {\r\n this.options.forEach((item) => (item.element.style.display = \"\"));\r\n } else if (hasClass(this.dropdown, \"open\")) {\r\n const matchReg = new RegExp(text);\r\n this.options.forEach((item) => {\r\n item.element.style.display = matchReg.test(item.data.text.toLowerCase())\r\n ? \"\"\r\n : \"none\";\r\n });\r\n }\r\n this.dropdown\r\n .querySelectorAll(\".focus\")\r\n .forEach((item) => removeClass(item, \"focus\"));\r\n const firstEl = this._findNext(null);\r\n if (firstEl) addClass(firstEl, \"focus\");\r\n }\r\n\r\n _triggerValidationMessage(type) {\r\n if (type === \"invalid\") {\r\n addClass(this.dropdown, \"invalid\");\r\n removeClass(this.dropdown, \"valid\");\r\n } else {\r\n addClass(this.dropdown, \"valid\");\r\n removeClass(this.dropdown, \"invalid\");\r\n }\r\n }\r\n}\r\n\r\nexport default NiceSelect;\r\nexport function bind(el, options) {\r\n return new NiceSelect(el, options);\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","triggerEvent","el","type","init","EventConstructor","MouseEvent","Event","includes","FocusEvent","UIEvent","event","bubbles","cancelable","dispatchEvent","triggerClick","triggerChange","triggerModalClose","attr","undefined","getAttribute","hasClass","className","classList","contains","addClass","add","removeClass","remove","defaultOptions","data","searchable","showSelectedItems","placeholder","searchtext","selectedtext","NiceSelect","constructor","element","options","Error","Element","this","config","selectedOptions","dropdown","multiple","disabled","create","assign","style","opacity","width","padding","height","fontSize","processData","extractData","renderDropdown","bindEvent","map","item","attributes","selected","optgroup","Array","from","querySelectorAll","allOptions","itemData","tagName","text","label","dataset","display","innerText","extra","hasAttribute","optionObj","push","classes","filter","Boolean","searchHtml","html","join","insertAdjacentHTML","nextElementSibling","_renderSelectedItems","_renderItems","selectedHtml","window","getComputedStyle","length","forEach","querySelector","innerHTML","ul","appendChild","_renderItem","option","li","document","createElement","_renderItemExtra","setAttribute","addEventListener","e","_onItemClicked","content","span","update","open","disable","enable","clear","resetSelectValue","destroy","_onClicked","_onKeyPressed","triggerFocusIn","triggerFocusOut","_triggerValidationMessage","_onClickedOutside","_bindSearchEvent","searchBox","stopPropagation","_onSearchChanged","preventDefault","target","search","focus","focused","optionEl","opt","removeAttribute","updateSelectValue","setValue","select","noSelected","isArray","String","currentValue","getValue","console","error","selectedIndex","focusedOption","isOpen","keyCode","next","_findNext","prev","_findPrev","nextEl","prevEl","previousElementSibling","toLowerCase","matchReg","RegExp","test","firstEl","bind"],"sourceRoot":""} \ No newline at end of file