diff --git a/.gitignore b/.gitignore index 8fdef08..589efa9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ bower_components # Dist zip bootstrap-select-*.zip dist/ +!docs/dist/ +!docs/dist/** # Playwright test-results/ diff --git a/docs/404.html b/docs/404.html index 436304e..8c51608 100644 --- a/docs/404.html +++ b/docs/404.html @@ -9,8 +9,8 @@ - - + + diff --git a/docs/assets/js/20e3dd10.86c95c01.js b/docs/assets/js/20e3dd10.2925bf3a.js similarity index 94% rename from docs/assets/js/20e3dd10.86c95c01.js rename to docs/assets/js/20e3dd10.2925bf3a.js index b7cf961..d623fb5 100644 --- a/docs/assets/js/20e3dd10.86c95c01.js +++ b/docs/assets/js/20e3dd10.2925bf3a.js @@ -100,24 +100,32 @@ -`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n \n \n \n \n \n \n
\n'})}),"\n",(0,s.jsxs)(t.p,{children:["For remote-backed pickers, initialize with JavaScript and provide ",(0,s.jsx)(t.code,{children:"source.create(callback, searchValue)"})," to save the new item before selecting it:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"new Selectpicker('#tag-editor', {\n liveSearch: true,\n showSelectedTags: true,\n openOptions: true,\n source: {\n data: function (callback) {\n callback(existingTags);\n },\n search: function (callback, page, searchValue) {\n callback(filterTags(searchValue));\n },\n create: function (callback, searchValue) {\n saveTag(searchValue).then(function (tag) {\n callback({\n text: tag.displayText,\n value: tag.id\n });\n });\n }\n }\n});\n"})}),"\n",(0,s.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,s.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,s.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,s.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,s.jsx)(l.A,{html:String.raw` +`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n \n \n \n \n \n \n
\n'})}),"\n",(0,s.jsxs)(t.p,{children:["For remote-backed pickers, initialize with JavaScript and provide ",(0,s.jsx)(t.code,{children:"source.create(callback, searchValue)"})," to save the new item before selecting it:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"new Selectpicker('#tag-editor', {\n liveSearch: true,\n showSelectedTags: true,\n openOptions: true,\n source: {\n data: function (callback) {\n callback(existingTags);\n },\n search: function (callback, page, searchValue) {\n callback(filterTags(searchValue));\n },\n create: function (callback, searchValue) {\n saveTag(searchValue).then(function (tag) {\n callback({\n text: tag.displayText,\n value: tag.id\n });\n });\n }\n }\n});\n"})}),"\n",(0,s.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,s.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,s.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,s.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
+
+ + +
-`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'\n\n\n'})}),"\n",(0,s.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,s.jsx)("p",{id:"titleMultiples"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
+
+ + +
+
`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n
\n \n \n
\n\n
\n \n \n
\n
\n'})}),"\n",(0,s.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,s.jsx)("p",{id:"titleMultiples"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
`}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-html",children:'\n'})}),"\n",(0,i.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,i.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,i.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,i.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,i.jsx)(l.A,{html:String.raw` +`}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-html",children:'\n'})}),"\n",(0,i.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,i.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,i.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,i.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,i.jsx)(l.A,{html:String.raw`
+
+ + +
-`}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-html",children:'\n\n\n'})}),"\n",(0,i.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,i.jsx)("p",{id:"titleMultiples"}),"\n",(0,i.jsxs)(t.p,{children:["Use the ",(0,i.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,i.jsx)(l.A,{html:String.raw`
+
+ + +
+
`}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-html",children:'
\n
\n \n \n
\n\n
\n \n \n
\n
\n'})}),"\n",(0,i.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,i.jsx)("p",{id:"titleMultiples"}),"\n",(0,i.jsxs)(t.p,{children:["Use the ",(0,i.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,i.jsx)(l.A,{html:String.raw`
-
`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n \n \n \n \n \n \n
\n'})}),"\n",(0,s.jsxs)(t.p,{children:["For remote-backed pickers, initialize with JavaScript and provide ",(0,s.jsx)(t.code,{children:"source.create(callback, searchValue)"})," to save the new item before selecting it:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"new Selectpicker('#tag-editor', {\n liveSearch: true,\n showSelectedTags: true,\n openOptions: true,\n source: {\n data: function (callback) {\n callback(existingTags);\n },\n search: function (callback, page, searchValue) {\n callback(filterTags(searchValue));\n },\n create: function (callback, searchValue) {\n saveTag(searchValue).then(function (tag) {\n callback({\n text: tag.displayText,\n value: tag.id\n });\n });\n }\n }\n});\n"})}),"\n",(0,s.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,s.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,s.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,s.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,s.jsx)(l.A,{html:String.raw` +
`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n \n \n \n \n \n \n
\n'})}),"\n",(0,s.jsxs)(t.p,{children:["For remote-backed pickers, initialize with JavaScript and provide ",(0,s.jsx)(t.code,{children:"source.create(callback, searchValue)"})," to save the new item before selecting it:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:"new Selectpicker('#tag-editor', {\n liveSearch: true,\n showSelectedTags: true,\n openOptions: true,\n source: {\n data: function (callback) {\n callback(existingTags);\n },\n search: function (callback, page, searchValue) {\n callback(filterTags(searchValue));\n },\n create: function (callback, searchValue) {\n saveTag(searchValue).then(function (tag) {\n callback({\n text: tag.displayText,\n value: tag.id\n });\n });\n }\n }\n});\n"})}),"\n",(0,s.jsx)(t.h1,{id:"limit-the-number-of-selections",children:"Limit the number of selections"}),"\n",(0,s.jsxs)(t.p,{children:["Limit the number of options that can be selected via the ",(0,s.jsx)(t.code,{children:"data-max-options"})," attribute. It also works for option groups. Customize the message displayed when the limit is reached with ",(0,s.jsx)(t.code,{children:"maxOptionsText"}),"."]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
+
+ + +
-`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'\n\n\n'})}),"\n",(0,s.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,s.jsx)("p",{id:"titleMultiples"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
+
+ + +
+
`}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-html",children:'
\n
\n \n \n
\n\n
\n \n \n
\n
\n'})}),"\n",(0,s.jsx)(t.h1,{id:"custom-button-text",children:"Custom button text"}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"placeholder",children:"Placeholder"}),"\n",(0,s.jsx)("p",{id:"titleMultiples"}),"\n",(0,s.jsxs)(t.p,{children:["Use the ",(0,s.jsx)(t.code,{children:"placeholder"})," attribute to set the default placeholder text when nothing is selected. This works for both multiple and standard select boxes:"]}),"\n",(0,s.jsx)(l.A,{html:String.raw`
+ html={String.raw`
+
+ + +
- `} +
+ + +
+
`} /> ```html - +
+
+ + +
- +
+ + +
+
``` # Custom button text diff --git a/docs/dist/css/bootstrap-select.css b/docs/dist/css/bootstrap-select.css new file mode 100644 index 0000000..bf83ca5 --- /dev/null +++ b/docs/dist/css/bootstrap-select.css @@ -0,0 +1,655 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +@keyframes bs-notify-fadeOut { + 0% { + opacity: 0.9; + } + 100% { + opacity: 0; + } +} +select.bs-select-hidden, +.bootstrap-select > select.bs-select-hidden, +select.selectpicker { + display: none !important; +} +.bootstrap-select { + width: 100%; + vertical-align: middle; +} +.bootstrap-select > .dropdown-toggle { + position: relative; + width: 100%; + text-align: right; + white-space: nowrap; + display: inline-flex; + align-items: center; + justify-content: space-between; +} +.bootstrap-select > .dropdown-toggle:after { + margin-top: -1px; +} +.bootstrap-select > .dropdown-toggle.bs-placeholder, +.bootstrap-select > .dropdown-toggle.bs-placeholder:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder:active { + color: #999; +} +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:hover, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:focus, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:active, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:active, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:active, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:active, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:active, +.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:active { + color: rgba(255, 255, 255, 0.5); +} +.bootstrap-select > select { + position: absolute !important; + bottom: 0; + left: 50%; + display: block !important; + width: 0.5px !important; + height: 100% !important; + padding: 0 !important; + opacity: 0 !important; + border: none; + z-index: 0 !important; +} +.bootstrap-select > select.mobile-device { + top: 0; + left: 0; + display: block !important; + width: 100% !important; + z-index: 2 !important; +} +.has-error .bootstrap-select .dropdown-toggle, +.error .bootstrap-select .dropdown-toggle, +.bootstrap-select.is-invalid .dropdown-toggle, +.was-validated .bootstrap-select select:invalid + .dropdown-toggle { + border-color: #b94a48; +} +.bootstrap-select.is-valid .dropdown-toggle, +.was-validated .bootstrap-select select:valid + .dropdown-toggle { + border-color: #28a745; +} +.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { + width: 100%; +} +.bootstrap-select > select.mobile-device:focus + .dropdown-toggle, +.bootstrap-select .dropdown-toggle:focus { + outline: thin dotted #333333 !important; + outline: 5px auto -webkit-focus-ring-color !important; + outline-offset: -2px; +} +.bootstrap-select.form-control { + margin-bottom: 0; + padding: 0; + border: none; + height: auto; +} +:not(.input-group) > .bootstrap-select.form-control:not([class*="col-"]) { + width: 100%; +} +.bootstrap-select.form-control.input-group-btn { + float: none; + z-index: auto; +} +.form-inline .bootstrap-select, +.form-inline .bootstrap-select.form-control:not([class*="col-"]) { + width: auto; +} +.bootstrap-select:not(.input-group-btn), +.bootstrap-select[class*="col-"] { + float: none; + display: inline-block; + margin-left: 0; +} +.bootstrap-select.dropdown-menu-end, +.bootstrap-select[class*="col-"].dropdown-menu-end, +.row .bootstrap-select[class*="col-"].dropdown-menu-end { + float: right; +} +.form-inline .bootstrap-select, +.form-horizontal .bootstrap-select, +.form-group .bootstrap-select { + margin-bottom: 0; +} +.form-group-lg .bootstrap-select.form-control, +.form-group-sm .bootstrap-select.form-control { + padding: 0; +} +.form-group-lg .bootstrap-select.form-control .dropdown-toggle, +.form-group-sm .bootstrap-select.form-control .dropdown-toggle { + height: 100%; + font-size: inherit; + line-height: inherit; + border-radius: inherit; +} +.bootstrap-select.form-control-sm .dropdown-toggle, +.bootstrap-select.form-control-lg .dropdown-toggle { + font-size: inherit; + line-height: inherit; + border-radius: inherit; +} +.bootstrap-select.form-control-sm .dropdown-toggle { + padding: 0.25rem 0.5rem; +} +.bootstrap-select.form-control-lg .dropdown-toggle { + padding: 0.5rem 1rem; +} +.form-inline .bootstrap-select .form-control { + width: 100%; +} +.bootstrap-select.disabled, +.bootstrap-select > .disabled { + cursor: not-allowed; +} +.bootstrap-select.disabled:focus, +.bootstrap-select > .disabled:focus { + outline: none !important; +} +.bootstrap-select.bs-container { + position: absolute; + top: 0; + left: 0; + height: 0 !important; + padding: 0 !important; +} +.bootstrap-select.bs-container .dropdown-menu { + z-index: 1060; +} +.bootstrap-select .dropdown-toggle .filter-option { + position: static; + top: 0; + left: 0; + float: left; + height: 100%; + width: 100%; + text-align: left; + overflow: hidden; + flex: 0 1 auto; +} +.bootstrap-select .dropdown-toggle .filter-option-inner-inner { + overflow: hidden; +} +.bootstrap-select .dropdown-toggle .filter-expand { + width: 0 !important; + float: left; + opacity: 0 !important; + overflow: hidden; +} +.bootstrap-select .dropdown-toggle .caret { + position: absolute; + top: 50%; + right: 12px; + margin-top: -2px; + vertical-align: middle; +} +.bootstrap-select .dropdown-toggle .bs-select-clear-selected { + position: relative; + display: block; + margin-right: 5px; + text-align: center; +} +.bootstrap-select .dropdown-toggle .bs-select-clear-selected span { + position: relative; + top: calc(((-1em / 1.5) + 1ex) / 2); + pointer-events: none; +} +.bootstrap-select .dropdown-toggle.bs-placeholder .bs-select-clear-selected { + display: none; +} +.input-group .bootstrap-select.form-control .dropdown-toggle { + border-radius: inherit; +} +.bootstrap-select[class*="col-"] .dropdown-toggle { + width: 100%; +} +.bootstrap-select .dropdown-menu { + min-width: 100%; + box-sizing: border-box; +} +.bootstrap-select .dropdown-menu > .inner:focus { + outline: none !important; +} +.bootstrap-select .dropdown-menu.inner { + position: static; + float: none; + border: 0; + padding: 0; + margin: 0; + border-radius: 0; + box-shadow: none; +} +.bootstrap-select .dropdown-menu li { + position: relative; +} +.bootstrap-select .dropdown-menu li.active small { + color: rgba(255, 255, 255, 0.5) !important; +} +.bootstrap-select .dropdown-menu li.disabled a { + cursor: not-allowed; +} +.bootstrap-select .dropdown-menu li a { + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.bootstrap-select .dropdown-menu li a.opt { + position: relative; + padding-left: 2.25em; +} +.bootstrap-select .dropdown-menu li a span.check-mark { + display: none; +} +.bootstrap-select .dropdown-menu li a span.text { + display: inline-block; +} +.bootstrap-select .dropdown-menu li small { + padding-left: 0.5em; +} +.bootstrap-select .dropdown-menu .notify { + position: absolute; + bottom: 5px; + width: 96%; + margin: 0 2%; + min-height: 26px; + padding: 3px 5px; + background: #f5f5f5; + border: 1px solid #e3e3e3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + pointer-events: none; + opacity: 0.9; + box-sizing: border-box; +} +.bootstrap-select .dropdown-menu .notify.fadeOut { + animation: 300ms linear 750ms forwards bs-notify-fadeOut; +} +.bootstrap-select .no-results { + padding: 3px; + background: #f5f5f5; + margin: 0 5px; + white-space: nowrap; +} +.bootstrap-select.fit-width .dropdown-toggle .filter-option { + position: static; + display: inline; + padding: 0; +} +.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner, +.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner { + display: inline; +} +.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before { + content: '\00a0'; +} +.bootstrap-select.fit-width .dropdown-toggle .caret { + position: static; + top: auto; + margin-top: -1px; +} +.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark { + position: absolute; + display: inline-block; + right: 15px; + top: 50%; + margin-top: -0.55rem; +} +.bootstrap-select.show-tick .dropdown-menu li a span.text { + margin-right: 34px; +} +.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a { + padding-left: 2.5rem; +} +.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.text { + margin-right: 0; +} +.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.check-mark { + position: absolute; + display: inline-flex; + align-items: center; + justify-content: center; + left: 0.75rem; + right: auto; + top: 50%; + width: 1rem; + height: 1rem; + margin-top: -0.5rem; + border: 1px solid var(--bs-border-color, #ced4da); + border-radius: 0.25rem; + background: var(--bs-body-bg, #fff); + color: transparent; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark { + background: var(--bs-primary, #0d6efd); + border-color: var(--bs-primary, #0d6efd); + color: var(--bs-white, #fff); +} +.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark::after { + content: ''; + width: 0.3rem; + height: 0.55rem; + border: solid currentColor; + border-width: 0 0.14rem 0.14rem 0; + transform: rotate(45deg); + margin-top: -0.05rem; +} +.bootstrap-select .bs-ok-default:after { + content: ''; + display: block; + width: 0.5em; + height: 1em; + border-style: solid; + border-width: 0 0.26em 0.26em 0; + transform-style: preserve-3d; + transform: rotate(45deg); +} +.bootstrap-select.show-menu-arrow.open > .dropdown-toggle, +.bootstrap-select.show-menu-arrow.show > .dropdown-toggle { + z-index: 1061; +} +.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before { + content: ''; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid rgba(204, 204, 204, 0.2); + position: absolute; + bottom: -4px; + left: 9px; + display: none; +} +.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after { + content: ''; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid white; + position: absolute; + bottom: -4px; + left: 10px; + display: none; +} +.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before { + bottom: auto; + top: -4px; + border-top: 7px solid rgba(204, 204, 204, 0.2); + border-bottom: 0; +} +.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after { + bottom: auto; + top: -4px; + border-top: 6px solid white; + border-bottom: 0; +} +.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before { + right: 12px; + left: auto; +} +.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after { + right: 13px; + left: auto; +} +.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:before, +.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:before, +.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:after, +.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:after { + display: block; +} +.bs-searchbox, +.bs-actionsbox, +.bs-donebutton { + padding: 4px 8px; +} +.popover-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.75rem; +} +.popover-header .btn-close, +.popover-header .close { + flex: 0 0 auto; + margin: 0; +} +.popover-header .btn-close { + padding: 0.375rem; +} +.bs-actionsbox { + width: 100%; + box-sizing: border-box; +} +.bs-actionsbox .btn-group { + display: block; +} +.bs-actionsbox .btn-group button { + width: 50%; +} +.bs-donebutton { + float: left; + width: 100%; + box-sizing: border-box; +} +.bs-donebutton .btn-group { + display: block; +} +.bs-donebutton .btn-group button { + width: 100%; +} +.bs-searchbox { + display: flex; + flex-direction: column; + gap: 0.75rem; + padding: 0.75rem; + border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.1)); +} +.bs-searchbox + .bs-actionsbox { + padding: 0 8px 4px; +} +.bs-searchbox .form-control { + margin-bottom: 0; + width: 100%; + float: none; + min-height: calc(1.5em + 0.75rem + 2px); +} +.bs-searchbox .bs-create-option { + display: block; + padding: 0.5rem 0.75rem; + border: 1px dashed rgba(13, 110, 253, 0.45); + border-radius: 0.375rem; + background: rgba(13, 110, 253, 0.06); + color: var(--bs-primary, #0d6efd); + white-space: normal; + text-align: left; +} +.bs-searchbox .bs-create-option:hover, +.bs-searchbox .bs-create-option:focus { + background: rgba(13, 110, 253, 0.12); + color: var(--bs-primary-text-emphasis, var(--bs-primary, #0d6efd)); +} +.bs-selected-items { + display: flex; + flex-wrap: wrap; + gap: 0.375rem 0.5rem; + margin-top: 0.5rem; +} +.bs-selected-items-external { + padding: 0 0.125rem; +} +.bs-selected-item { + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 0.375rem; + max-width: 100%; + min-height: calc(1.5em + 0.25rem + 2px); + padding: 0.1875rem 0.25rem 0.1875rem 0.625rem; + border: 1px solid var(--bs-border-color, #ced4da); + border-radius: 0.875rem; + background-color: var(--bs-tertiary-bg, #f8f9fa); + color: var(--bs-body-color, inherit); + font-size: 0.8125rem; + line-height: 1.125rem; + text-align: left; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; + -webkit-appearance: none; +} +.bs-selected-item-content { + display: inline-flex; + align-items: center; + gap: 0.5rem; + min-width: 0; +} +.bs-selected-item-icon { + flex: 0 0 auto; +} +.bs-selected-item:hover, +.bs-selected-item:focus { + border-color: rgba(13, 110, 253, 0.35); + background-color: var(--bs-secondary-bg, #e9ecef); + box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12); + outline: 0; +} +.bs-selected-item-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.bs-selected-item-remove { + display: inline-flex; + align-items: center; + justify-content: center; + width: 1.125rem; + height: 1.125rem; + border-radius: 999px; + background: rgba(108, 117, 125, 0.14); + color: var(--bs-secondary-color, #6c757d); + font-size: 0.875rem; + font-weight: 900; + line-height: 1; + flex: 0 0 auto; + padding-bottom: 0; +} +.bootstrap-select.selected-items-style-list .bs-selected-items { + display: block; + margin-top: 0.5rem; +} +.bootstrap-select.selected-items-style-list .bs-selected-items-external { + padding: 0; +} +.bootstrap-select.selected-items-style-list .bs-selected-item { + width: 100%; + min-height: 0; + padding: 0.75rem 1rem; + border: 1px solid var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125)); + border-radius: 0; + background-color: var(--bs-list-group-bg, #fff); + color: var(--bs-list-group-color, inherit); + font-size: 1rem; + line-height: 1.5; + box-shadow: none; +} +.bootstrap-select.selected-items-style-list .bs-selected-item:first-child { + border-top-left-radius: var(--bs-list-group-border-radius, 0.375rem); + border-top-right-radius: var(--bs-list-group-border-radius, 0.375rem); +} +.bootstrap-select.selected-items-style-list .bs-selected-item:last-child { + border-bottom-left-radius: var(--bs-list-group-border-radius, 0.375rem); + border-bottom-right-radius: var(--bs-list-group-border-radius, 0.375rem); +} +.bootstrap-select.selected-items-style-list .bs-selected-item + .bs-selected-item { + margin-top: -1px; +} +.bootstrap-select.selected-items-style-list .bs-selected-item:hover, +.bootstrap-select.selected-items-style-list .bs-selected-item:focus { + border-color: var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125)); + background-color: var(--bs-list-group-action-hover-bg, #f8f9fa); + color: var(--bs-list-group-action-hover-color, inherit); + box-shadow: none; +} +.bootstrap-select.selected-items-style-list .bs-selected-item-content { + flex: 1 1 auto; +} +.bootstrap-select.selected-items-style-list .bs-selected-item-label { + white-space: normal; +} +.bootstrap-select.selected-items-style-list .bs-selected-item-remove { + width: auto; + height: auto; + margin-left: auto; + border-radius: 0; + background: transparent; + font-size: 1rem; + color: var(--bs-secondary-color, #6c757d); +} +.form-floating > .bootstrap-select.show-selected-tags { + position: relative; + min-height: calc(3.5rem + 2px); + border: var(--bs-border-width, 1px) solid var(--bs-border-color, #ced4da); + border-radius: var(--bs-border-radius, 0.375rem); + background-color: var(--bs-body-bg, #fff); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.form-floating > .bootstrap-select.show-selected-tags:focus-within, +.form-floating > .bootstrap-select.show-selected-tags.show { + border-color: #86b7fe; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle { + min-height: 0; + height: auto; + padding-top: 1.375rem; + padding-bottom: 0.25rem; + border: 0; + background-color: transparent; + box-shadow: none; +} +.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:hover, +.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:focus, +.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:active { + background-color: transparent; + box-shadow: none; +} +.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle .filter-option-inner-inner { + opacity: 0; +} +.form-floating > .bootstrap-select.show-selected-tags > .bs-selected-items-external { + position: relative; + z-index: 3; + margin: 0 2.25rem 0 0.75rem; + margin-top: 0; + margin-bottom: 0; + padding-bottom: 1.375rem; +} +.form-floating > .bootstrap-select.show-selected-tags ~ label { + padding-top: 0.75rem; +} +/*# sourceMappingURL=bootstrap-select.css.map */ \ No newline at end of file diff --git a/docs/dist/css/bootstrap-select.css.map b/docs/dist/css/bootstrap-select.css.map new file mode 100644 index 0000000..47cd772 --- /dev/null +++ b/docs/dist/css/bootstrap-select.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-select.less","bootstrap-select.css"],"names":[],"mappings":"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","file":"bootstrap-select.css","sourcesContent":["@import \"variables\";\n\n@keyframes bs-notify-fadeOut {\n 0% {opacity: 0.9;}\n 100% {opacity: 0;}\n}\n\n// Mixins\n.cursor-disabled() {\n cursor: not-allowed;\n}\n\n// Rules\nselect.bs-select-hidden,\n.bootstrap-select > select.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n\n.bootstrap-select {\n width: 100%;\n vertical-align: middle;\n\n // The selectpicker button\n > .dropdown-toggle {\n position: relative;\n width: 100%;\n // necessary for proper positioning of caret in Bootstrap 5 (pushes caret to the right)\n text-align: right;\n white-space: nowrap;\n // force caret to be vertically centered for Bootstrap 5 multi-line buttons\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n\n &:after {\n margin-top: -1px;\n }\n\n &.bs-placeholder {\n &,\n &:hover,\n &:focus,\n &:active {\n color: @input-color-placeholder;\n }\n\n &.btn-primary,\n &.btn-secondary,\n &.btn-success,\n &.btn-danger,\n &.btn-info,\n &.btn-dark {\n &,\n &:hover,\n &:focus,\n &:active {\n color: @input-alt-color-placeholder;\n }\n }\n }\n }\n\n > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n z-index: 0 !important;\n\n &.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2 !important;\n }\n }\n\n // Error display\n .has-error & .dropdown-toggle,\n .error & .dropdown-toggle,\n &.is-invalid .dropdown-toggle,\n .was-validated & select:invalid + .dropdown-toggle {\n border-color: @color-red-error;\n }\n\n &.is-valid .dropdown-toggle,\n .was-validated & select:valid + .dropdown-toggle {\n border-color: @color-green-success;\n }\n\n &:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: @width-default;\n }\n\n > select.mobile-device:focus + .dropdown-toggle,\n .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n }\n}\n\n// The selectpicker components\n.bootstrap-select {\n &.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n height: auto;\n\n :not(.input-group) > &:not([class*=\"col-\"]) {\n width: 100%;\n }\n\n &.input-group-btn {\n float: none;\n z-index: auto;\n }\n }\n\n .form-inline &,\n .form-inline &.form-control:not([class*=\"col-\"]) {\n width: auto;\n }\n\n &:not(.input-group-btn),\n &[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n }\n\n // Forces the pull to the right, if necessary\n &,\n &[class*=\"col-\"],\n .row &[class*=\"col-\"] {\n &.dropdown-menu-end {\n float: right;\n }\n }\n\n .form-inline &,\n .form-horizontal &,\n .form-group & {\n margin-bottom: 0;\n }\n\n .form-group-lg &.form-control,\n .form-group-sm &.form-control {\n padding: 0;\n\n .dropdown-toggle {\n height: 100%;\n font-size: inherit;\n line-height: inherit;\n border-radius: inherit;\n }\n }\n\n &.form-control-sm .dropdown-toggle,\n &.form-control-lg .dropdown-toggle {\n font-size: inherit;\n line-height: inherit;\n border-radius: inherit;\n }\n\n &.form-control-sm .dropdown-toggle {\n padding: @input-padding-y-sm @input-padding-x-sm;\n }\n\n &.form-control-lg .dropdown-toggle {\n padding: @input-padding-y-lg @input-padding-x-lg;\n }\n\n // Set the width of the live search (and any other form control within an inline form)\n // see https://github.com/silviomoreto/bootstrap-select/issues/685\n .form-inline & .form-control {\n width: 100%;\n }\n\n &.disabled,\n > .disabled {\n .cursor-disabled();\n\n &:focus {\n outline: none !important;\n }\n }\n\n &.bs-container {\n position: absolute;\n top: 0;\n left: 0;\n height: 0 !important;\n padding: 0 !important;\n \n .dropdown-menu {\n z-index: @zindex-select-dropdown;\n }\n }\n\n // The selectpicker button\n .dropdown-toggle {\n .filter-option {\n position: static;\n top: 0;\n left: 0;\n float: left;\n height: 100%;\n width: 100%;\n text-align: left;\n overflow: hidden;\n flex: 0 1 auto; // for IE10\n }\n\n .filter-option-inner-inner {\n overflow: hidden;\n }\n\n // used to expand the height of the button when inside an input group\n .filter-expand {\n width: 0 !important;\n float: left;\n opacity: 0 !important;\n overflow: hidden;\n }\n\n .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n }\n\n .bs-select-clear-selected {\n position: relative;\n display: block;\n margin-right: 5px;\n text-align: center;\n\n span {\n position: relative;\n top: calc(((-1em / 1.5) + 1ex) / 2);\n pointer-events: none;\n }\n }\n\n &.bs-placeholder .bs-select-clear-selected {\n display: none;\n }\n }\n\n .input-group &.form-control .dropdown-toggle {\n border-radius: inherit;\n }\n\n &[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n }\n\n // The selectpicker dropdown\n .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n\n > .inner:focus {\n outline: none !important;\n }\n\n &.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n li {\n position: relative;\n\n &.active small {\n color: @input-alt-color-placeholder !important;\n }\n\n &.disabled a {\n .cursor-disabled();\n }\n\n a {\n cursor: pointer;\n user-select: none;\n\n &.opt {\n position: relative;\n padding-left: 2.25em;\n }\n\n span.check-mark {\n display: none;\n }\n\n span.text {\n display: inline-block;\n }\n }\n\n small {\n padding-left: 0.5em;\n }\n }\n\n .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: rgb(245, 245, 245);\n border: 1px solid rgb(227, 227, 227);\n box-shadow: inset 0 1px 1px fade(rgb(0, 0, 0), 5%);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n\n &.fadeOut {\n animation: 300ms linear 750ms forwards bs-notify-fadeOut;\n }\n }\n }\n\n .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n }\n\n &.fit-width .dropdown-toggle {\n .filter-option {\n position: static;\n display: inline;\n padding: 0;\n }\n\n .filter-option-inner,\n .filter-option-inner-inner {\n display: inline;\n }\n\n .bs-caret:before {\n content: '\\00a0';\n }\n\n .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n }\n }\n\n &.show-tick .dropdown-menu {\n .selected span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n top: 50%;\n margin-top: -0.55rem;\n }\n\n li a span.text {\n margin-right: 34px;\n }\n }\n\n &.selection-indicator-checkbox.show-tick .dropdown-menu {\n li a {\n padding-left: 2.5rem;\n }\n\n li a span.text {\n margin-right: 0;\n }\n\n li a span.check-mark {\n position: absolute;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n left: 0.75rem;\n right: auto;\n top: 50%;\n width: 1rem;\n height: 1rem;\n margin-top: -0.5rem;\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 0.25rem;\n background: var(--bs-body-bg, #fff);\n color: transparent;\n transition: background-color .15s ease-in-out, border-color .15s ease-in-out, color .15s ease-in-out, box-shadow .15s ease-in-out;\n }\n\n .selected span.check-mark {\n background: var(--bs-primary, #0d6efd);\n border-color: var(--bs-primary, #0d6efd);\n color: var(--bs-white, #fff);\n }\n\n .selected span.check-mark::after {\n content: '';\n width: 0.3rem;\n height: 0.55rem;\n border: solid currentColor;\n border-width: 0 0.14rem 0.14rem 0;\n transform: rotate(45deg);\n margin-top: -0.05rem;\n }\n }\n\n // default check mark for use without an icon font\n .bs-ok-default:after {\n content: '';\n display: block;\n width: 0.5em;\n height: 1em;\n border-style: solid;\n border-width: 0 0.26em 0.26em 0;\n transform-style: preserve-3d;\n transform: rotate(45deg);\n }\n}\n\n.bootstrap-select.show-menu-arrow {\n &.open > .dropdown-toggle,\n &.show > .dropdown-toggle {\n z-index: (@zindex-select-dropdown + 1);\n }\n\n .dropdown-toggle .filter-option {\n &:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid @color-grey-arrow;\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n }\n\n &:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n }\n }\n\n &.dropup .dropdown-toggle .filter-option {\n &:before {\n bottom: auto;\n top: -4px;\n border-top: 7px solid @color-grey-arrow;\n border-bottom: 0;\n }\n\n &:after {\n bottom: auto;\n top: -4px;\n border-top: 6px solid white;\n border-bottom: 0;\n }\n }\n\n &.pull-right .dropdown-toggle .filter-option {\n &:before {\n right: 12px;\n left: auto;\n }\n\n &:after {\n right: 13px;\n left: auto;\n }\n }\n\n &.open > .dropdown-toggle .filter-option,\n &.show > .dropdown-toggle .filter-option {\n &:before,\n &:after {\n display: block;\n }\n }\n}\n\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n\n.popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n\n .btn-close,\n .close {\n flex: 0 0 auto;\n margin: 0;\n }\n\n .btn-close {\n padding: 0.375rem;\n }\n}\n\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group {\n display: block;\n\n & button {\n width: 50%;\n }\n }\n}\n\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group {\n display: block;\n\n & button {\n width: 100%;\n }\n }\n}\n\n.bs-searchbox {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem;\n border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.1));\n\n & + .bs-actionsbox {\n padding: 0 8px 4px;\n }\n\n & .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n min-height: calc(1.5em + 0.75rem + 2px);\n }\n\n & .bs-create-option {\n display: block;\n padding: 0.5rem 0.75rem;\n border: 1px dashed rgba(13, 110, 253, 0.45);\n border-radius: 0.375rem;\n background: rgba(13, 110, 253, 0.06);\n color: var(--bs-primary, #0d6efd);\n white-space: normal;\n text-align: left;\n }\n\n & .bs-create-option:hover,\n & .bs-create-option:focus {\n background: rgba(13, 110, 253, 0.12);\n color: var(--bs-primary-text-emphasis, var(--bs-primary, #0d6efd));\n }\n}\n\n.bs-selected-items {\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem 0.5rem;\n margin-top: 0.5rem;\n}\n\n.bs-selected-items-external {\n padding: 0 0.125rem;\n}\n\n.bs-selected-item {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.375rem;\n max-width: 100%;\n min-height: calc(1.5em + 0.25rem + 2px);\n padding: 0.1875rem 0.25rem 0.1875rem 0.625rem;\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 0.875rem;\n background-color: var(--bs-tertiary-bg, #f8f9fa);\n color: var(--bs-body-color, inherit);\n font-size: 0.8125rem;\n line-height: 1.125rem;\n text-align: left;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n appearance: none;\n -webkit-appearance: none;\n}\n\n.bs-selected-item-content {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n}\n\n.bs-selected-item-icon {\n flex: 0 0 auto;\n}\n\n.bs-selected-item:hover,\n.bs-selected-item:focus {\n border-color: rgba(13, 110, 253, 0.35);\n background-color: var(--bs-secondary-bg, #e9ecef);\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12);\n outline: 0;\n}\n\n.bs-selected-item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.bs-selected-item-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.125rem;\n height: 1.125rem;\n border-radius: 999px;\n background: rgba(108, 117, 125, 0.14);\n color: var(--bs-secondary-color, #6c757d);\n font-size: 0.875rem;\n font-weight: 900;\n line-height: 1;\n flex: 0 0 auto;\n padding-bottom: 0;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-items {\n display: block;\n margin-top: 0.5rem;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-items-external {\n padding: 0;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item {\n width: 100%;\n min-height: 0;\n padding: 0.75rem 1rem;\n border: 1px solid var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125));\n border-radius: 0;\n background-color: var(--bs-list-group-bg, #fff);\n color: var(--bs-list-group-color, inherit);\n font-size: 1rem;\n line-height: 1.5;\n box-shadow: none;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item:first-child {\n border-top-left-radius: var(--bs-list-group-border-radius, 0.375rem);\n border-top-right-radius: var(--bs-list-group-border-radius, 0.375rem);\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item:last-child {\n border-bottom-left-radius: var(--bs-list-group-border-radius, 0.375rem);\n border-bottom-right-radius: var(--bs-list-group-border-radius, 0.375rem);\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item + .bs-selected-item {\n margin-top: -1px;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item:hover,\n.bootstrap-select.selected-items-style-list .bs-selected-item:focus {\n border-color: var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125));\n background-color: var(--bs-list-group-action-hover-bg, #f8f9fa);\n color: var(--bs-list-group-action-hover-color, inherit);\n box-shadow: none;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item-content {\n flex: 1 1 auto;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item-label {\n white-space: normal;\n}\n\n.bootstrap-select.selected-items-style-list .bs-selected-item-remove {\n width: auto;\n height: auto;\n margin-left: auto;\n border-radius: 0;\n background: transparent;\n font-size: 1rem;\n color: var(--bs-secondary-color, #6c757d);\n}\n\n.form-floating > .bootstrap-select.show-selected-tags {\n position: relative;\n min-height: calc(3.5rem + 2px);\n border: var(--bs-border-width, 1px) solid var(--bs-border-color, #ced4da);\n border-radius: var(--bs-border-radius, 0.375rem);\n background-color: var(--bs-body-bg, #fff);\n transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n\n &:focus-within,\n &.show {\n border-color: #86b7fe;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n }\n\n > .dropdown-toggle {\n min-height: 0;\n height: auto;\n padding-top: 1.375rem;\n padding-bottom: 0.25rem;\n border: 0;\n background-color: transparent;\n box-shadow: none;\n }\n\n > .dropdown-toggle:hover,\n > .dropdown-toggle:focus,\n > .dropdown-toggle:active {\n background-color: transparent;\n box-shadow: none;\n }\n\n > .dropdown-toggle .filter-option-inner-inner {\n opacity: 0;\n }\n\n > .bs-selected-items-external {\n position: relative;\n z-index: 3;\n margin: 0 2.25rem 0 0.75rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-bottom: 1.375rem;\n }\n}\n\n.form-floating > .bootstrap-select.show-selected-tags ~ label {\n padding-top: 0.75rem;\n}\n","@keyframes bs-notify-fadeOut {\n 0% {\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n }\n}\nselect.bs-select-hidden,\n.bootstrap-select > select.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n.bootstrap-select {\n width: 100%;\n vertical-align: middle;\n}\n.bootstrap-select > .dropdown-toggle {\n position: relative;\n width: 100%;\n text-align: right;\n white-space: nowrap;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n}\n.bootstrap-select > .dropdown-toggle:after {\n margin-top: -1px;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:active {\n color: #999;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:active,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:active,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:active,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:active,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:active,\n.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:active {\n color: rgba(255, 255, 255, 0.5);\n}\n.bootstrap-select > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n z-index: 0 !important;\n}\n.bootstrap-select > select.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2 !important;\n}\n.has-error .bootstrap-select .dropdown-toggle,\n.error .bootstrap-select .dropdown-toggle,\n.bootstrap-select.is-invalid .dropdown-toggle,\n.was-validated .bootstrap-select select:invalid + .dropdown-toggle {\n border-color: #b94a48;\n}\n.bootstrap-select.is-valid .dropdown-toggle,\n.was-validated .bootstrap-select select:valid + .dropdown-toggle {\n border-color: #28a745;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: 100%;\n}\n.bootstrap-select > select.mobile-device:focus + .dropdown-toggle,\n.bootstrap-select .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n}\n.bootstrap-select.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n height: auto;\n}\n:not(.input-group) > .bootstrap-select.form-control:not([class*=\"col-\"]) {\n width: 100%;\n}\n.bootstrap-select.form-control.input-group-btn {\n float: none;\n z-index: auto;\n}\n.form-inline .bootstrap-select,\n.form-inline .bootstrap-select.form-control:not([class*=\"col-\"]) {\n width: auto;\n}\n.bootstrap-select:not(.input-group-btn),\n.bootstrap-select[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n}\n.bootstrap-select.dropdown-menu-end,\n.bootstrap-select[class*=\"col-\"].dropdown-menu-end,\n.row .bootstrap-select[class*=\"col-\"].dropdown-menu-end {\n float: right;\n}\n.form-inline .bootstrap-select,\n.form-horizontal .bootstrap-select,\n.form-group .bootstrap-select {\n margin-bottom: 0;\n}\n.form-group-lg .bootstrap-select.form-control,\n.form-group-sm .bootstrap-select.form-control {\n padding: 0;\n}\n.form-group-lg .bootstrap-select.form-control .dropdown-toggle,\n.form-group-sm .bootstrap-select.form-control .dropdown-toggle {\n height: 100%;\n font-size: inherit;\n line-height: inherit;\n border-radius: inherit;\n}\n.bootstrap-select.form-control-sm .dropdown-toggle,\n.bootstrap-select.form-control-lg .dropdown-toggle {\n font-size: inherit;\n line-height: inherit;\n border-radius: inherit;\n}\n.bootstrap-select.form-control-sm .dropdown-toggle {\n padding: 0.25rem 0.5rem;\n}\n.bootstrap-select.form-control-lg .dropdown-toggle {\n padding: 0.5rem 1rem;\n}\n.form-inline .bootstrap-select .form-control {\n width: 100%;\n}\n.bootstrap-select.disabled,\n.bootstrap-select > .disabled {\n cursor: not-allowed;\n}\n.bootstrap-select.disabled:focus,\n.bootstrap-select > .disabled:focus {\n outline: none !important;\n}\n.bootstrap-select.bs-container {\n position: absolute;\n top: 0;\n left: 0;\n height: 0 !important;\n padding: 0 !important;\n}\n.bootstrap-select.bs-container .dropdown-menu {\n z-index: 1060;\n}\n.bootstrap-select .dropdown-toggle .filter-option {\n position: static;\n top: 0;\n left: 0;\n float: left;\n height: 100%;\n width: 100%;\n text-align: left;\n overflow: hidden;\n flex: 0 1 auto;\n}\n.bootstrap-select .dropdown-toggle .filter-option-inner-inner {\n overflow: hidden;\n}\n.bootstrap-select .dropdown-toggle .filter-expand {\n width: 0 !important;\n float: left;\n opacity: 0 !important;\n overflow: hidden;\n}\n.bootstrap-select .dropdown-toggle .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n position: relative;\n display: block;\n margin-right: 5px;\n text-align: center;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {\n position: relative;\n top: calc(((-1em / 1.5) + 1ex) / 2);\n pointer-events: none;\n}\n.bootstrap-select .dropdown-toggle.bs-placeholder .bs-select-clear-selected {\n display: none;\n}\n.input-group .bootstrap-select.form-control .dropdown-toggle {\n border-radius: inherit;\n}\n.bootstrap-select[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n}\n.bootstrap-select .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n}\n.bootstrap-select .dropdown-menu > .inner:focus {\n outline: none !important;\n}\n.bootstrap-select .dropdown-menu.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.bootstrap-select .dropdown-menu li {\n position: relative;\n}\n.bootstrap-select .dropdown-menu li.active small {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.bootstrap-select .dropdown-menu li.disabled a {\n cursor: not-allowed;\n}\n.bootstrap-select .dropdown-menu li a {\n cursor: pointer;\n user-select: none;\n}\n.bootstrap-select .dropdown-menu li a.opt {\n position: relative;\n padding-left: 2.25em;\n}\n.bootstrap-select .dropdown-menu li a span.check-mark {\n display: none;\n}\n.bootstrap-select .dropdown-menu li a span.text {\n display: inline-block;\n}\n.bootstrap-select .dropdown-menu li small {\n padding-left: 0.5em;\n}\n.bootstrap-select .dropdown-menu .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: #f5f5f5;\n border: 1px solid #e3e3e3;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n}\n.bootstrap-select .dropdown-menu .notify.fadeOut {\n animation: 300ms linear 750ms forwards bs-notify-fadeOut;\n}\n.bootstrap-select .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n}\n.bootstrap-select.fit-width .dropdown-toggle .filter-option {\n position: static;\n display: inline;\n padding: 0;\n}\n.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,\n.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner {\n display: inline;\n}\n.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before {\n content: '\\00a0';\n}\n.bootstrap-select.fit-width .dropdown-toggle .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n}\n.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n top: 50%;\n margin-top: -0.55rem;\n}\n.bootstrap-select.show-tick .dropdown-menu li a span.text {\n margin-right: 34px;\n}\n.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a {\n padding-left: 2.5rem;\n}\n.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.text {\n margin-right: 0;\n}\n.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.check-mark {\n position: absolute;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n left: 0.75rem;\n right: auto;\n top: 50%;\n width: 1rem;\n height: 1rem;\n margin-top: -0.5rem;\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 0.25rem;\n background: var(--bs-body-bg, #fff);\n color: transparent;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark {\n background: var(--bs-primary, #0d6efd);\n border-color: var(--bs-primary, #0d6efd);\n color: var(--bs-white, #fff);\n}\n.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark::after {\n content: '';\n width: 0.3rem;\n height: 0.55rem;\n border: solid currentColor;\n border-width: 0 0.14rem 0.14rem 0;\n transform: rotate(45deg);\n margin-top: -0.05rem;\n}\n.bootstrap-select .bs-ok-default:after {\n content: '';\n display: block;\n width: 0.5em;\n height: 1em;\n border-style: solid;\n border-width: 0 0.26em 0.26em 0;\n transform-style: preserve-3d;\n transform: rotate(45deg);\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle,\n.bootstrap-select.show-menu-arrow.show > .dropdown-toggle {\n z-index: 1061;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid rgba(204, 204, 204, 0.2);\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before {\n bottom: auto;\n top: -4px;\n border-top: 7px solid rgba(204, 204, 204, 0.2);\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after {\n bottom: auto;\n top: -4px;\n border-top: 6px solid white;\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before {\n right: 12px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after {\n right: 13px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:before,\n.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:before,\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:after,\n.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:after {\n display: block;\n}\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n.popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n}\n.popover-header .btn-close,\n.popover-header .close {\n flex: 0 0 auto;\n margin: 0;\n}\n.popover-header .btn-close {\n padding: 0.375rem;\n}\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n}\n.bs-actionsbox .btn-group {\n display: block;\n}\n.bs-actionsbox .btn-group button {\n width: 50%;\n}\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n}\n.bs-donebutton .btn-group {\n display: block;\n}\n.bs-donebutton .btn-group button {\n width: 100%;\n}\n.bs-searchbox {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0.75rem;\n border-bottom: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.1));\n}\n.bs-searchbox + .bs-actionsbox {\n padding: 0 8px 4px;\n}\n.bs-searchbox .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n min-height: calc(1.5em + 0.75rem + 2px);\n}\n.bs-searchbox .bs-create-option {\n display: block;\n padding: 0.5rem 0.75rem;\n border: 1px dashed rgba(13, 110, 253, 0.45);\n border-radius: 0.375rem;\n background: rgba(13, 110, 253, 0.06);\n color: var(--bs-primary, #0d6efd);\n white-space: normal;\n text-align: left;\n}\n.bs-searchbox .bs-create-option:hover,\n.bs-searchbox .bs-create-option:focus {\n background: rgba(13, 110, 253, 0.12);\n color: var(--bs-primary-text-emphasis, var(--bs-primary, #0d6efd));\n}\n.bs-selected-items {\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem 0.5rem;\n margin-top: 0.5rem;\n}\n.bs-selected-items-external {\n padding: 0 0.125rem;\n}\n.bs-selected-item {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.375rem;\n max-width: 100%;\n min-height: calc(1.5em + 0.25rem + 2px);\n padding: 0.1875rem 0.25rem 0.1875rem 0.625rem;\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 0.875rem;\n background-color: var(--bs-tertiary-bg, #f8f9fa);\n color: var(--bs-body-color, inherit);\n font-size: 0.8125rem;\n line-height: 1.125rem;\n text-align: left;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n -webkit-appearance: none;\n}\n.bs-selected-item-content {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n}\n.bs-selected-item-icon {\n flex: 0 0 auto;\n}\n.bs-selected-item:hover,\n.bs-selected-item:focus {\n border-color: rgba(13, 110, 253, 0.35);\n background-color: var(--bs-secondary-bg, #e9ecef);\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12);\n outline: 0;\n}\n.bs-selected-item-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.bs-selected-item-remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.125rem;\n height: 1.125rem;\n border-radius: 999px;\n background: rgba(108, 117, 125, 0.14);\n color: var(--bs-secondary-color, #6c757d);\n font-size: 0.875rem;\n font-weight: 900;\n line-height: 1;\n flex: 0 0 auto;\n padding-bottom: 0;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-items {\n display: block;\n margin-top: 0.5rem;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-items-external {\n padding: 0;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item {\n width: 100%;\n min-height: 0;\n padding: 0.75rem 1rem;\n border: 1px solid var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125));\n border-radius: 0;\n background-color: var(--bs-list-group-bg, #fff);\n color: var(--bs-list-group-color, inherit);\n font-size: 1rem;\n line-height: 1.5;\n box-shadow: none;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item:first-child {\n border-top-left-radius: var(--bs-list-group-border-radius, 0.375rem);\n border-top-right-radius: var(--bs-list-group-border-radius, 0.375rem);\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item:last-child {\n border-bottom-left-radius: var(--bs-list-group-border-radius, 0.375rem);\n border-bottom-right-radius: var(--bs-list-group-border-radius, 0.375rem);\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item + .bs-selected-item {\n margin-top: -1px;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item:hover,\n.bootstrap-select.selected-items-style-list .bs-selected-item:focus {\n border-color: var(--bs-list-group-border-color, rgba(0, 0, 0, 0.125));\n background-color: var(--bs-list-group-action-hover-bg, #f8f9fa);\n color: var(--bs-list-group-action-hover-color, inherit);\n box-shadow: none;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item-content {\n flex: 1 1 auto;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item-label {\n white-space: normal;\n}\n.bootstrap-select.selected-items-style-list .bs-selected-item-remove {\n width: auto;\n height: auto;\n margin-left: auto;\n border-radius: 0;\n background: transparent;\n font-size: 1rem;\n color: var(--bs-secondary-color, #6c757d);\n}\n.form-floating > .bootstrap-select.show-selected-tags {\n position: relative;\n min-height: calc(3.5rem + 2px);\n border: var(--bs-border-width, 1px) solid var(--bs-border-color, #ced4da);\n border-radius: var(--bs-border-radius, 0.375rem);\n background-color: var(--bs-body-bg, #fff);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n.form-floating > .bootstrap-select.show-selected-tags:focus-within,\n.form-floating > .bootstrap-select.show-selected-tags.show {\n border-color: #86b7fe;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle {\n min-height: 0;\n height: auto;\n padding-top: 1.375rem;\n padding-bottom: 0.25rem;\n border: 0;\n background-color: transparent;\n box-shadow: none;\n}\n.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:hover,\n.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:focus,\n.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle:active {\n background-color: transparent;\n box-shadow: none;\n}\n.form-floating > .bootstrap-select.show-selected-tags > .dropdown-toggle .filter-option-inner-inner {\n opacity: 0;\n}\n.form-floating > .bootstrap-select.show-selected-tags > .bs-selected-items-external {\n position: relative;\n z-index: 3;\n margin: 0 2.25rem 0 0.75rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-bottom: 1.375rem;\n}\n.form-floating > .bootstrap-select.show-selected-tags ~ label {\n padding-top: 0.75rem;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"]} \ No newline at end of file diff --git a/docs/dist/css/bootstrap-select.min.css b/docs/dist/css/bootstrap-select.min.css new file mode 100644 index 0000000..4270e69 --- /dev/null +++ b/docs/dist/css/bootstrap-select.min.css @@ -0,0 +1,8 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */@keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:100%;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:inline-flex;align-items:center;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select select:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select select:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:100%}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-end,.bootstrap-select[class*=col-].dropdown-menu-end,.row .bootstrap-select[class*=col-].dropdown-menu-end{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:100%;width:100%;text-align:left;overflow:hidden;flex:0 1 auto}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select .dropdown-toggle .bs-select-clear-selected{position:relative;display:block;margin-right:5px;text-align:center}.bootstrap-select .dropdown-toggle .bs-select-clear-selected span{position:relative;top:calc(((-1em / 1.5) + 1ex)/ 2);pointer-events:none}.bootstrap-select .dropdown-toggle.bs-placeholder .bs-select-clear-selected{display:none}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;box-sizing:border-box}.bootstrap-select .dropdown-menu .notify.fadeOut{animation:.3s linear 750ms forwards bs-notify-fadeOut}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:50%;margin-top:-.55rem}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a{padding-left:2.5rem}.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.text{margin-right:0}.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu li a span.check-mark{position:absolute;display:inline-flex;align-items:center;justify-content:center;left:.75rem;right:auto;top:50%;width:1rem;height:1rem;margin-top:-.5rem;border:1px solid var(--bs-border-color,#ced4da);border-radius:.25rem;background:var(--bs-body-bg,#fff);color:transparent;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out,box-shadow .15s ease-in-out}.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark{background:var(--bs-primary,#0d6efd);border-color:var(--bs-primary,#0d6efd);color:var(--bs-white,#fff)}.bootstrap-select.selection-indicator-checkbox.show-tick .dropdown-menu .selected span.check-mark::after{content:'';width:.3rem;height:.55rem;border:solid currentColor;border-width:0 .14rem .14rem 0;transform:rotate(45deg);margin-top:-.05rem}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;transform-style:preserve-3d;transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.popover-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.popover-header .btn-close,.popover-header .close{flex:0 0 auto;margin:0}.popover-header .btn-close{padding:.375rem}.bs-actionsbox{width:100%;box-sizing:border-box}.bs-actionsbox .btn-group{display:block}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;box-sizing:border-box}.bs-donebutton .btn-group{display:block}.bs-donebutton .btn-group button{width:100%}.bs-searchbox{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;border-bottom:1px solid var(--bs-border-color-translucent,rgba(0,0,0,.1))}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none;min-height:calc(1.5em + .75rem + 2px)}.bs-searchbox .bs-create-option{display:block;padding:.5rem .75rem;border:1px dashed rgba(13,110,253,.45);border-radius:.375rem;background:rgba(13,110,253,.06);color:var(--bs-primary,#0d6efd);white-space:normal;text-align:left}.bs-searchbox .bs-create-option:focus,.bs-searchbox .bs-create-option:hover{background:rgba(13,110,253,.12);color:var(--bs-primary-text-emphasis,var(--bs-primary,#0d6efd))}.bs-selected-items{display:flex;flex-wrap:wrap;gap:.375rem .5rem;margin-top:.5rem}.bs-selected-items-external{padding:0 .125rem}.bs-selected-item{display:inline-flex;align-items:center;justify-content:space-between;gap:.375rem;max-width:100%;min-height:calc(1.5em + .25rem + 2px);padding:.1875rem .25rem .1875rem .625rem;border:1px solid var(--bs-border-color,#ced4da);border-radius:.875rem;background-color:var(--bs-tertiary-bg,#f8f9fa);color:var(--bs-body-color,inherit);font-size:.8125rem;line-height:1.125rem;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none;-webkit-appearance:none}.bs-selected-item-content{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.bs-selected-item-icon{flex:0 0 auto}.bs-selected-item:focus,.bs-selected-item:hover{border-color:rgba(13,110,253,.35);background-color:var(--bs-secondary-bg,#e9ecef);box-shadow:0 0 0 .2rem rgba(13,110,253,.12);outline:0}.bs-selected-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bs-selected-item-remove{display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;border-radius:999px;background:rgba(108,117,125,.14);color:var(--bs-secondary-color,#6c757d);font-size:.875rem;font-weight:900;line-height:1;flex:0 0 auto;padding-bottom:0}.bootstrap-select.selected-items-style-list .bs-selected-items{display:block;margin-top:.5rem}.bootstrap-select.selected-items-style-list .bs-selected-items-external{padding:0}.bootstrap-select.selected-items-style-list .bs-selected-item{width:100%;min-height:0;padding:.75rem 1rem;border:1px solid var(--bs-list-group-border-color,rgba(0,0,0,.125));border-radius:0;background-color:var(--bs-list-group-bg,#fff);color:var(--bs-list-group-color,inherit);font-size:1rem;line-height:1.5;box-shadow:none}.bootstrap-select.selected-items-style-list .bs-selected-item:first-child{border-top-left-radius:var(--bs-list-group-border-radius,.375rem);border-top-right-radius:var(--bs-list-group-border-radius,.375rem)}.bootstrap-select.selected-items-style-list .bs-selected-item:last-child{border-bottom-left-radius:var(--bs-list-group-border-radius,.375rem);border-bottom-right-radius:var(--bs-list-group-border-radius,.375rem)}.bootstrap-select.selected-items-style-list .bs-selected-item+.bs-selected-item{margin-top:-1px}.bootstrap-select.selected-items-style-list .bs-selected-item:focus,.bootstrap-select.selected-items-style-list .bs-selected-item:hover{border-color:var(--bs-list-group-border-color,rgba(0,0,0,.125));background-color:var(--bs-list-group-action-hover-bg,#f8f9fa);color:var(--bs-list-group-action-hover-color,inherit);box-shadow:none}.bootstrap-select.selected-items-style-list .bs-selected-item-content{flex:1 1 auto}.bootstrap-select.selected-items-style-list .bs-selected-item-label{white-space:normal}.bootstrap-select.selected-items-style-list .bs-selected-item-remove{width:auto;height:auto;margin-left:auto;border-radius:0;background:0 0;font-size:1rem;color:var(--bs-secondary-color,#6c757d)}.form-floating>.bootstrap-select.show-selected-tags{position:relative;min-height:calc(3.5rem + 2px);border:var(--bs-border-width,1px) solid var(--bs-border-color,#ced4da);border-radius:var(--bs-border-radius,.375rem);background-color:var(--bs-body-bg,#fff);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-floating>.bootstrap-select.show-selected-tags.show,.form-floating>.bootstrap-select.show-selected-tags:focus-within{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-floating>.bootstrap-select.show-selected-tags>.dropdown-toggle{min-height:0;height:auto;padding-top:1.375rem;padding-bottom:.25rem;border:0;background-color:transparent;box-shadow:none}.form-floating>.bootstrap-select.show-selected-tags>.dropdown-toggle:active,.form-floating>.bootstrap-select.show-selected-tags>.dropdown-toggle:focus,.form-floating>.bootstrap-select.show-selected-tags>.dropdown-toggle:hover{background-color:transparent;box-shadow:none}.form-floating>.bootstrap-select.show-selected-tags>.dropdown-toggle .filter-option-inner-inner{opacity:0}.form-floating>.bootstrap-select.show-selected-tags>.bs-selected-items-external{position:relative;z-index:3;margin:0 2.25rem 0 .75rem;margin-top:0;margin-bottom:0;padding-bottom:1.375rem}.form-floating>.bootstrap-select.show-selected-tags~label{padding-top:.75rem} \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.esm.mjs b/docs/dist/js/bootstrap-select.esm.mjs new file mode 100644 index 0000000..74385a5 --- /dev/null +++ b/docs/dist/js/bootstrap-select.esm.mjs @@ -0,0 +1,3728 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +import * as Bootstrap from 'bootstrap'; + +var Selectpicker = (function (bootstrap) { +'use strict'; + +// Resolve Bootstrap's Dropdown component (Bootstrap 5+). It may be provided +// by the UMD factory (`bootstrap`), or available as a global. +function getDropdown () { + var bs = bootstrap || (typeof window !== 'undefined' ? window.bootstrap : undefined); + return (bs && bs.Dropdown) || (typeof window !== 'undefined' ? window.Dropdown : undefined); +} + +// +function createFromHTML (html) { + var wrapper = document.createElement('div'); + wrapper.innerHTML = html.trim(); + return wrapper.firstChild; +} + +function toInteger (value) { + return parseInt(value, 10) || 0; +} + +function offset (el) { + var rect = el.getBoundingClientRect(); + return { + top: rect.top + window.pageYOffset, + left: rect.left + window.pageXOffset + }; +} + +// Resolves a container option (selector string or element) to an element. +function resolveContainer (container) { + if (!container) return null; + return typeof container === 'string' ? document.querySelector(container) : container; +} + +function outerHeight (el, includeMargin) { + var height = el.offsetHeight; + if (includeMargin) { + var style = window.getComputedStyle(el); + height += toInteger(style.marginTop) + toInteger(style.marginBottom); + } + return height; +} + +function setStyles (el, styles) { + for (var prop in styles) { + if (Object.prototype.hasOwnProperty.call(styles, prop)) { + el.style[prop] = styles[prop]; + } + } +} + +function triggerNative (el, eventName) { + el.dispatchEvent(new Event(eventName, { bubbles: true })); +} + +// shallow array comparison +function isEqual (array1, array2) { + return array1.length === array2.length && array1.every(function (element, index) { + return element === array2[index]; + }); +} + +function toKebabCase (str) { + return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, function ($, ofs) { + return (ofs ? '-' : '') + $.toLowerCase(); + }); +} + +function toCamelCase (str) { + return str.replace(/-([a-z])/g, function (m, letter) { + return letter.toUpperCase(); + }); +} + +// Read options from data-* attributes using native values where possible. +function convertDataValue (value) { + if (value === 'true') return true; + if (value === 'false') return false; + if (value === 'null') return null; + if (value === +value + '') return +value; + if (/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/.test(value)) { + try { + return JSON.parse(value); + } catch (e) { + return value; + } + } + return value; +} + +function getDataset (el) { + var dataset = {}, + attributes = el.attributes; + + for (var i = 0; i < attributes.length; i++) { + var name = attributes[i].name; + if (name.indexOf('data-') === 0) { + dataset[toCamelCase(name.slice(5))] = convertDataValue(attributes[i].value); + } + } + + return dataset; +} +// + +// +var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; + +var uriAttrs = [ + 'background', + 'cite', + 'href', + 'itemtype', + 'longdesc', + 'poster', + 'src', + 'xlink:href' +]; + +var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + +var DefaultWhitelist = { + // Global attributes allowed on any supplied element below. + '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] +}; + +// A pattern that recognizes a commonly useful subset of URLs that are safe. +var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi; + +// A pattern that matches safe data URLs. Only matches image, video and audio types. +var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; + +var ParseableAttributes = ['placeholder']; // attributes to use as settings, can add others in the future + +function allowedAttribute (attr, allowedAttributeList) { + var attrName = attr.nodeName.toLowerCase(); + + if (allowedAttributeList.indexOf(attrName) !== -1) { + if (uriAttrs.indexOf(attrName) !== -1) { + return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + } + + return true; + } + + var regExp = allowedAttributeList.filter(function (value) { + return value instanceof RegExp; + }); + + // Check if a regular expression validates the attribute. + for (var i = 0, l = regExp.length; i < l; i++) { + if (attrName.match(regExp[i])) { + return true; + } + } + + return false; +} + +function sanitizeHtml (unsafeElements, whiteList, sanitizeFn) { + if (sanitizeFn && typeof sanitizeFn === 'function') { + return sanitizeFn(unsafeElements); + } + + var whitelistKeys = Object.keys(whiteList); + + for (var i = 0, len = unsafeElements.length; i < len; i++) { + var elements = unsafeElements[i].querySelectorAll('*'); + + for (var j = 0, len2 = elements.length; j < len2; j++) { + var el = elements[j]; + var elName = el.nodeName.toLowerCase(); + + if (whitelistKeys.indexOf(elName) === -1) { + el.parentNode.removeChild(el); + + continue; + } + + var attributeList = [].slice.call(el.attributes); + var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); + + for (var k = 0, len3 = attributeList.length; k < len3; k++) { + var attr = attributeList[k]; + + if (!allowedAttribute(attr, whitelistedAttributes)) { + el.removeAttribute(attr.nodeName); + } + } + } + } +} +// + +function getAttributesObject (element) { + var attributesObject = {}, + attrVal; + + ParseableAttributes.forEach(function (item) { + attrVal = element.getAttribute(item); + if (attrVal) attributesObject[item] = attrVal; + }); + + return attributesObject; +} + +// +function stringSearch (li, searchString, method, normalize) { + var stringTypes = [ + 'display', + 'subtext', + 'tokens' + ], + searchSuccess = false; + + for (var i = 0; i < stringTypes.length; i++) { + var stringType = stringTypes[i], + string = li[stringType]; + + if (string) { + string = string.toString(); + + // Strip HTML tags. This isn't perfect, but it's much faster than any other method + if (stringType === 'display') { + string = string.replace(/<[^>]+>/g, ''); + } + + if (normalize) string = normalizeToBase(string); + string = string.toUpperCase(); + + if (typeof method === 'function') { + searchSuccess = method(string, searchString); + } else if (method === 'contains') { + searchSuccess = string.indexOf(searchString) >= 0; + } else { + searchSuccess = string.startsWith(searchString); + } + + if (searchSuccess) break; + } + } + + return searchSuccess; +} + +function normalizeSearchInput (value, normalize) { + if (value === undefined || value === null) value = ''; + value = value.toString().trim(); + + if (normalize && value) value = normalizeToBase(value); + + return value.toUpperCase(); +} + +function getOptionLabelText (option) { + if (!option) return ''; + + return option.title || option.text || option.value || ''; +} + +// Borrowed from Lodash (_.deburr) +/** Used to map Latin Unicode letters to basic Latin letters. */ +var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' +}; + +/** Used to match Latin Unicode letters (excluding mathematical operators). */ +var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + +/** Used to compose unicode character classes. */ +var rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboMarksExtendedRange = '\\u1ab0-\\u1aff', + rsComboMarksSupplementRange = '\\u1dc0-\\u1dff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange; + +/** Used to compose unicode capture groups. */ +var rsCombo = '[' + rsComboRange + ']'; + +var reComboMark = RegExp(rsCombo, 'g'); + +function deburrLetter (key) { + return deburredLetters[key]; +} + +function normalizeToBase (string) { + string = string.toString(); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); +} + +// List of HTML entities for escaping. +var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}; + +var createEscaper = function (map) { + var escaper = function (match) { + return map[match]; + }; + var source = '(?:' + Object.keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function (string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +}; + +var htmlEscape = createEscaper(escapeMap); +// + +// +var keyCodeMap = { + 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', + 55: '7', 56: '8', 57: '9', 59: ';', + 65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 72: 'H', + 73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P', + 81: 'Q', 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X', + 89: 'Y', 90: 'Z', + 96: '0', 97: '1', 98: '2', 99: '3', 100: '4', 101: '5', 102: '6', + 103: '7', 104: '8', 105: '9' +}; + +var keyCodes = { + ESCAPE: 27, + ENTER: 13, + SPACE: 32, + TAB: 9, + ARROW_UP: 38, + ARROW_DOWN: 40 +}; + +var selectId = 0; + +var EVENT_KEY = '.bs.select'; + +// Bootstrap 5 class names. +var classNames = { + DISABLED: 'disabled', + DIVIDER: 'dropdown-divider', + SHOW: 'show', + DROPUP: 'dropup', + MENU: 'dropdown-menu', + MENUEND: 'dropdown-menu-end', + BUTTONCLASS: 'btn-light', + POPOVERHEADER: 'popover-header', + ICONBASE: '', + TICKICON: 'bs-ok-default' +}; + +var Selector = { + MENU: '.' + classNames.MENU, + DATA_TOGGLE: 'data-bs-toggle="dropdown"' +}; + +var elementTemplates = { + div: document.createElement('div'), + span: document.createElement('span'), + i: document.createElement('i'), + subtext: document.createElement('small'), + a: document.createElement('a'), + li: document.createElement('li'), + whitespace: document.createTextNode('\u00A0'), + fragment: document.createDocumentFragment(), + option: document.createElement('option') +}; + +elementTemplates.selectedOption = elementTemplates.option.cloneNode(false); +elementTemplates.selectedOption.setAttribute('selected', true); + +elementTemplates.noResults = elementTemplates.li.cloneNode(false); +elementTemplates.noResults.className = 'no-results'; + +elementTemplates.a.setAttribute('role', 'option'); +elementTemplates.a.className = 'dropdown-item'; + +elementTemplates.subtext.className = 'text-muted'; + +elementTemplates.text = elementTemplates.span.cloneNode(false); +elementTemplates.text.className = 'text'; + +elementTemplates.checkMark = elementTemplates.span.cloneNode(false); + +var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN); +var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE); + +var generateOption = { + li: function (content, classes, optgroup) { + var li = elementTemplates.li.cloneNode(false); + + if (content) { + if (content.nodeType === 1 || content.nodeType === 11) { + li.appendChild(content); + } else { + li.innerHTML = content; + } + } + + if (typeof classes !== 'undefined' && classes !== '') li.className = classes; + if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup); + + return li; + }, + + a: function (text, classes, inline) { + var a = elementTemplates.a.cloneNode(true); + + if (text) { + if (text.nodeType === 11) { + a.appendChild(text); + } else { + a.insertAdjacentHTML('beforeend', text); + } + } + + if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\s+/)); + if (inline) a.setAttribute('style', inline); + + return a; + }, + + text: function (options, useFragment) { + var textElement = elementTemplates.text.cloneNode(false), + subtextElement, + iconElement; + + if (options.content) { + textElement.innerHTML = options.content; + } else { + textElement.textContent = options.text; + + if (options.icon) { + var whitespace = elementTemplates.whitespace.cloneNode(false); + + // need to use for icons in the button to prevent a breaking change + iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false); + iconElement.className = this.options.iconBase + ' ' + options.icon; + + elementTemplates.fragment.appendChild(iconElement); + elementTemplates.fragment.appendChild(whitespace); + } + + if (options.subtext) { + subtextElement = elementTemplates.subtext.cloneNode(false); + subtextElement.textContent = options.subtext; + textElement.appendChild(subtextElement); + } + } + + if (useFragment === true) { + while (textElement.childNodes.length > 0) { + elementTemplates.fragment.appendChild(textElement.childNodes[0]); + } + } else { + elementTemplates.fragment.appendChild(textElement); + } + + return elementTemplates.fragment; + }, + + label: function (options) { + var textElement = elementTemplates.text.cloneNode(false), + subtextElement, + iconElement; + + textElement.innerHTML = options.display; + + if (options.icon) { + var whitespace = elementTemplates.whitespace.cloneNode(false); + + iconElement = elementTemplates.span.cloneNode(false); + iconElement.className = this.options.iconBase + ' ' + options.icon; + + elementTemplates.fragment.appendChild(iconElement); + elementTemplates.fragment.appendChild(whitespace); + } + + if (options.subtext) { + subtextElement = elementTemplates.subtext.cloneNode(false); + subtextElement.textContent = options.subtext; + textElement.appendChild(subtextElement); + } + + elementTemplates.fragment.appendChild(textElement); + + return elementTemplates.fragment; + } +}; + +var getOptionData = { + fromOption: function (option, type) { + var value; + + switch (type) { + case 'divider': + value = option.getAttribute('data-divider') === 'true'; + break; + + case 'text': + value = option.textContent; + break; + + case 'label': + value = option.label; + break; + + case 'style': + value = option.style.cssText; + break; + + case 'title': + value = option.title; + break; + + default: + value = option.getAttribute('data-' + toKebabCase(type)); + break; + } + + return value; + }, + fromDataSource: function (option, type) { + var value; + + switch (type) { + case 'text': + case 'label': + value = option.text || option.value || ''; + break; + + default: + value = option[type]; + break; + } + + return value; + } +}; + +function showNoResults (searchMatch, searchValue) { + if (!searchMatch.length) { + elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '"' + htmlEscape(searchValue) + '"'); + this.menuInner.firstChild.appendChild(elementTemplates.noResults); + } +} + +function filterHidden (item) { + return !(item.hidden || this.options.hideDisabled && item.disabled); +} + +function getSelectedOptions () { + var options = this.selectpicker.main.data; + + if (this.options.source.data || this.options.source.search) { + options = Object.values(this.selectpicker.optionValuesDataMap); + } + + var selectedOptions = options.filter(function (item) { + if (item.selected) { + if (this.options.hideDisabled && item.disabled) return false; + return true; + } + + return false; + }, this); + + // ensure only 1 option is selected if multiple are set in the data source + if (this.options.source.data && !this.multiple && selectedOptions.length > 1) { + for (var i = 0; i < selectedOptions.length - 1; i++) { + selectedOptions[i].selected = false; + } + + selectedOptions = [ selectedOptions[selectedOptions.length - 1] ]; + } + + return selectedOptions; +} + +function getSelectValues (selectedOptions) { + var value = [], + options = selectedOptions || getSelectedOptions.call(this), + opt; + + for (var i = 0, len = options.length; i < len; i++) { + opt = options[i]; + + if (!opt.disabled) { + value.push(opt.value === undefined ? opt.text : opt.value); + } + } + + if (!this.multiple) { + return !value.length ? null : value[0]; + } + + return value; +} +// + +var changedArguments = null; + +// shared flag for spacebar selection handling (mirrors original document data flag) +var spaceSelectFlag = false; + +var REMOVED_OPTIONS = ['container', 'display', 'mobile', 'styleBase', 'width', 'windowPadding']; + +function stripRemovedOptions (source) { + if (!source || typeof source !== 'object') return source; + + var result = Object.assign({}, source); + + for (var i = 0; i < REMOVED_OPTIONS.length; i++) { + delete result[REMOVED_OPTIONS[i]]; + } + + return result; +} + +class Selectpicker { + constructor (element, options) { + if (typeof element === 'string') { + element = document.querySelector(element); + } + + if (!element || element.tagName !== 'SELECT') { + throw new TypeError('Selectpicker requires a select element or selector.'); + } + + this.element = element; + this.newElement = null; + this.button = null; + this.menu = null; + this.options = Selectpicker._buildConfig(element, options || {}); + + // tracked event listeners for clean teardown + this._listeners = []; + this._named = {}; + + this.selectpicker = { + main: { + data: [], + optionQueue: elementTemplates.fragment.cloneNode(false), + hasMore: false + }, + search: { + data: [], + hasMore: false + }, + current: {}, // current is either equal to main or search depending on if a search is in progress + view: {}, + // map of option values and their respective data (only used in conjunction with options.source) + optionValuesDataMap: {}, + createdOptions: [], + openOption: { + isCreating: false + }, + isSearching: false, + keydown: { + keyHistory: '', + resetKeyHistory: { + start: () => { + return setTimeout(() => { + this.selectpicker.keydown.keyHistory = ''; + }, 800); + } + } + } + }; + + this.sizeInfo = {}; + + this.init(); + + instanceMap.set(element, this); + } + + // + _on (el, type, handler, options) { + el.addEventListener(type, handler, options); + this._listeners.push({ el: el, type: type, handler: handler, options: options }); + return handler; + } + + _delegate (el, type, selector, handler, options) { + var listener = function (e) { + var target = e.target.closest(selector); + if (target && el.contains(target)) { + handler.call(target, e); + } + }; + return this._on(el, type, listener, options); + } + + _emit (name, detail) { + var event = new CustomEvent(name + EVENT_KEY, { + bubbles: true, + cancelable: true, + detail: detail || null + }); + this.element.dispatchEvent(event); + return event; + } + + // adds an event listener that replaces any previously-registered listener under `key` + _replace (key, el, type, handler, options) { + this._removeNamed(key); + el.addEventListener(type, handler, options); + this._named[key] = { el: el, type: type, handler: handler, options: options }; + } + + _removeNamed (key) { + var prev = this._named[key]; + if (prev) { + prev.el.removeEventListener(prev.type, prev.handler, prev.options); + delete this._named[key]; + } + } + // + + init () { + var that = this, + id = this.element.getAttribute('id'), + element = this.element, + form = element.form; + + selectId++; + this.selectId = 'bs-select-' + selectId; + + element.classList.add('bs-select-hidden'); + + this.multiple = this.element.multiple; + this.autofocus = this.element.autofocus; + + if (element.classList.contains('show-tick')) { + this.options.showTick = true; + } + + this.newElement = this.createDropdown(); + + // insert newElement after element, then move element to be the first child of newElement + element.parentNode.insertBefore(this.newElement, element.nextSibling); + this.newElement.insertBefore(element, this.newElement.firstChild); + + // ensure select is associated with form element if it got unlinked after moving it inside newElement + if (form && element.form === null) { + if (!form.id) form.id = 'form-' + this.selectId; + element.setAttribute('form', form.id); + } + + this.button = this.newElement.querySelector(':scope > button'); + if (this.options.allowClear) this.clearButton = this.button.querySelector('.bs-select-clear-selected'); + this.menu = this.newElement.querySelector(':scope > ' + Selector.MENU); + this.menuInner = this.menu.querySelector('.inner'); + this.searchbox = this.menu.querySelector('input'); + this.selectedItems = this.newElement.querySelector(':scope > .bs-selected-items-external') || this.menu.querySelector('.bs-selected-items'); + this.createOptionButton = this.menu.querySelector('.bs-create-option'); + + element.classList.remove('bs-select-hidden'); + + this.fetchData(function () { + that.render(true); + that.buildList(); + + requestAnimationFrame(function () { + that._emit('loaded'); + }); + }); + + if (this.options.dropdownAlignRight === true) this.menu.classList.add(classNames.MENUEND); + + if (typeof id !== 'undefined' && id !== null) { + this.button.setAttribute('data-id', id); + } + + this.checkDisabled(); + this.clickListener(); + + var Dropdown = getDropdown(); + this.dropdown = new Dropdown(this.button); + + // store a reference to the instance for delegated handlers + this.newElement.bootstrapSelectInstance = this; + this.menu.bootstrapSelectInstance = this; + + if (this.options.liveSearch) { + this.liveSearchListener(); + this.focusedParent = this.searchbox; + } else { + this.focusedParent = this.menuInner; + } + + this.setStyle(); + this.setWidth(); + this._on(this.element, 'hide' + EVENT_KEY, function () { + if (that.isVirtual()) { + // empty menu on close + var menuInner = that.menuInner, + emptyMenu = menuInner.firstChild.cloneNode(false); + + // replace the existing UL with an empty one - this is faster than emptying it + menuInner.replaceChild(emptyMenu, menuInner.firstChild); + menuInner.scrollTop = 0; + } + }); + + // re-emit Bootstrap dropdown events as bootstrap-select events + this._on(this.newElement, 'hide.bs.dropdown', function (e) { + that._emit('hide', { bsEvent: e }); + }); + this._on(this.newElement, 'hidden.bs.dropdown', function (e) { + that._emit('hidden', { bsEvent: e }); + }); + this._on(this.newElement, 'show.bs.dropdown', function (e) { + that.onShow(e); + that._emit('show', { bsEvent: e }); + }); + this._on(this.newElement, 'shown.bs.dropdown', function (e) { + that._emit('shown', { bsEvent: e }); + }); + + if (element.hasAttribute('required')) { + this._on(this.element, 'invalid', function () { + that.button.classList.add('bs-invalid'); + + var onShownInvalid = function () { + // set the value to hide the validation message in Chrome when menu is opened + triggerNative(that.element, 'change'); + that.element.removeEventListener('shown' + EVENT_KEY, onShownInvalid); + }; + that._on(that.element, 'shown' + EVENT_KEY, onShownInvalid); + + var onRendered = function () { + // if select is no longer invalid, remove the bs-invalid class + if (that.element.validity.valid) that.button.classList.remove('bs-invalid'); + that.element.removeEventListener('rendered' + EVENT_KEY, onRendered); + }; + that._on(that.element, 'rendered' + EVENT_KEY, onRendered); + + var onBlur = function () { + that.element.focus(); + that.element.blur(); + that.button.removeEventListener('blur' + EVENT_KEY, onBlur); + }; + that._on(that.button, 'blur' + EVENT_KEY, onBlur); + }); + } + + if (form) { + this._on(form, 'reset', function () { + requestAnimationFrame(function () { + that.render(); + }); + }); + } + } + + createDropdown () { + // If we are multiple or showTick option is set, then add the show-tick class + var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '', + showSelectedTags = this.options.showSelectedTags ? ' show-selected-tags' : '', + selectedItemsStyle = this.options.selectedItemsStyle === 'list' ? ' selected-items-style-list' : '', + selectionIndicator = this.options.selectionIndicator === 'checkbox' ? ' selection-indicator-checkbox' : '', + multiselectable = this.multiple ? ' aria-multiselectable="true"' : '', + autofocus = this.autofocus ? ' autofocus' : '', + liveSearchPlaceholder = this.options.liveSearchPlaceholder; + + if (liveSearchPlaceholder === null && (this.options.showSelectedTags || this.options.openOptions)) { + liveSearchPlaceholder = this.options.placeholder || 'Search'; + } + + // Elements + var drop, + header = '', + searchbox = '', + actionsbox = '', + donebutton = '', + clearButton = ''; + + if (this.options.header) { + header = + '
' + + '' + + this.options.header + + '
'; + } + + if (this.options.liveSearch) { + searchbox = + ''; + } + + if (this.multiple && this.options.actionsBox) { + actionsbox = + '
' + + '
' + + '' + + '' + + '
' + + '
'; + } + + if (this.multiple && this.options.doneButton) { + donebutton = + '
' + + '
' + + '' + + '
' + + '
'; + } + + if (this.options.allowClear) { + clearButton = '×'; + } + + drop = + ''; + + return createFromHTML(drop); + } + + // runs when the dropdown is about to be shown + onShow () { + if (this.options.liveSearch && this.searchbox.value) { + this.searchbox.value = ''; + this.selectpicker.search.previousValue = undefined; + } + + if (!this.newElement.classList.contains(classNames.SHOW)) { + this.setSize(); + } + } + + setPositionData () { + this.selectpicker.view.canHighlight = []; + this.selectpicker.view.size = 0; + this.selectpicker.view.firstHighlightIndex = false; + + for (var i = 0; i < this.selectpicker.current.data.length; i++) { + var li = this.selectpicker.current.data[i], + canHighlight = true; + + if (li.type === 'divider') { + canHighlight = false; + li.height = this.sizeInfo.dividerHeight; + } else if (li.type === 'optgroup-label') { + canHighlight = false; + li.height = this.sizeInfo.dropdownHeaderHeight; + } else { + li.height = this.sizeInfo.liHeight; + } + + if (li.disabled) canHighlight = false; + + this.selectpicker.view.canHighlight.push(canHighlight); + + if (canHighlight) { + this.selectpicker.view.size++; + li.posinset = this.selectpicker.view.size; + if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i; + } + + li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height; + } + } + + isVirtual () { + return (this.options.virtualScroll !== false) && (this.selectpicker.main.data.length >= this.options.virtualScroll) || this.options.virtualScroll === true; + } + + createView (isSearching, setSize, refresh) { + var that = this, + scrollTop = 0; + + this.selectpicker.isSearching = isSearching; + this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main; + + this.setPositionData(); + + if (setSize) { + if (refresh) { + scrollTop = this.menuInner.scrollTop; + } else if (!that.multiple) { + var element = that.element, + selectedIndex = (element.options[element.selectedIndex] || {}).liIndex; + + if (typeof selectedIndex === 'number' && that.options.size !== false) { + var selectedData = that.selectpicker.main.data[selectedIndex], + position = selectedData && selectedData.position; + + if (position) { + scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2); + } + } + } + } + + scroll(scrollTop, true); + + this._replace('createViewScroll', this.menuInner, 'scroll', function () { + if (!that.noScroll) scroll(that.menuInner.scrollTop); + that.noScroll = false; + }); + + function scroll (scrollTop, init) { + var size = that.selectpicker.current.data.length, + chunks = [], + chunkSize, + chunkCount, + firstChunk, + lastChunk, + currentChunk, + prevPositions, + positionIsDifferent, + previousElements, + menuIsDifferent = true, + isVirtual = that.isVirtual(); + + that.selectpicker.view.scrollTop = scrollTop; + + chunkSize = that.options.chunkSize; // number of options in a chunk + chunkCount = Math.ceil(size / chunkSize) || 1; // number of chunks + + for (var i = 0; i < chunkCount; i++) { + var endOfChunk = (i + 1) * chunkSize; + + if (i === chunkCount - 1) { + endOfChunk = size; + } + + chunks[i] = [ + (i) * chunkSize + (!i ? 0 : 1), + endOfChunk + ]; + + if (!size) break; + + if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) { + currentChunk = i; + } + } + + if (currentChunk === undefined) currentChunk = 0; + + prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1]; + + // always display previous, current, and next chunks + firstChunk = Math.max(0, currentChunk - 1); + lastChunk = Math.min(chunkCount - 1, currentChunk + 1); + + that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0); + that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0); + + positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1; + + if (that.activeElement !== undefined) { + if (init) { + if (that.activeElement !== that.selectedElement) { + that.defocusItem(that.activeElement); + } + that.activeElement = undefined; + } + + if (that.activeElement !== that.selectedElement) { + that.defocusItem(that.selectedElement); + } + } + + if (that.prevActiveElement !== undefined && that.prevActiveElement !== that.activeElement && that.prevActiveElement !== that.selectedElement) { + that.defocusItem(that.prevActiveElement); + } + + if (init || positionIsDifferent || that.selectpicker.current.hasMore) { + previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : []; + + if (isVirtual === false) { + that.selectpicker.view.visibleElements = that.selectpicker.current.elements; + } else { + that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1); + } + + that.setOptionStatus(); + + // if searching, check to make sure the list has actually been updated before updating DOM + // this prevents unnecessary repaints + if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements); + + // if virtual scroll is disabled and not searching, + // menu should never need to be updated more than once + if ((init || isVirtual === true) && menuIsDifferent) { + var menuInner = that.menuInner, + menuFragment = document.createDocumentFragment(), + emptyMenu = menuInner.firstChild.cloneNode(false), + marginTop, + marginBottom, + elements = that.selectpicker.view.visibleElements, + toSanitize = []; + + // replace the existing UL with an empty one - this is faster than emptying it + menuInner.replaceChild(emptyMenu, menuInner.firstChild); + + for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) { + var element = elements[i], + elText, + elementData; + + if (that.options.sanitize) { + elText = element.lastChild; + + if (elText) { + elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0]; + + if (elementData && elementData.content && !elementData.sanitized) { + toSanitize.push(elText); + elementData.sanitized = true; + } + } + } + + menuFragment.appendChild(element); + } + + if (that.options.sanitize && toSanitize.length) { + sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn); + } + + if (isVirtual === true) { + marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position); + marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position); + + menuInner.firstChild.style.marginTop = marginTop + 'px'; + menuInner.firstChild.style.marginBottom = marginBottom + 'px'; + } else { + menuInner.firstChild.style.marginTop = 0; + menuInner.firstChild.style.marginBottom = 0; + } + + menuInner.firstChild.appendChild(menuFragment); + + // if an option is encountered that is wider than the current menu width, update the menu width accordingly + if (isVirtual === true && that.sizeInfo.hasScrollBar) { + var menuInnerInnerWidth = menuInner.firstChild.offsetWidth; + + if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) { + menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px'; + } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) { + // set to 0 to get actual width of menu + that.menu.style.minWidth = 0; + + var actualMenuWidth = menuInner.firstChild.offsetWidth; + + if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) { + that.sizeInfo.menuInnerInnerWidth = actualMenuWidth; + menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px'; + } + + // reset to default CSS styling + that.menu.style.minWidth = ''; + } + } + } + + if ((!isSearching && that.options.source.data || isSearching && that.options.source.search) && that.selectpicker.current.hasMore && currentChunk === chunkCount - 1) { + // Don't load the next chunk until scrolling has started + // This prevents unnecessary requests while the user is typing if pageSize is <= chunkSize + if (scrollTop > 0) { + // Chunks use 0-based indexing, but pages use 1-based. Add 1 to convert and add 1 again to get next page + var page = Math.floor((currentChunk * that.options.chunkSize) / that.options.source.pageSize) + 2; + + that.fetchData(function () { + that.render(); + that.buildList(size, isSearching); + that.setPositionData(); + scroll(scrollTop); + }, isSearching ? 'search' : 'data', page, isSearching ? that.selectpicker.search.previousValue : undefined); + } + } + } + + that.prevActiveElement = that.activeElement; + + if (!that.options.liveSearch) { + that.menuInner.focus(); + } else if (isSearching && init) { + var index = 0, + newActive; + + if (!that.selectpicker.view.canHighlight[index]) { + index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true); + } + + newActive = that.selectpicker.view.visibleElements[index]; + + that.defocusItem(that.selectpicker.view.currentActive); + + that.activeElement = (that.selectpicker.current.data[index] || {}).element; + + that.focusItem(newActive); + } + } + + this._replace('createViewResize', window, 'resize', function () { + var isActive = that.newElement.classList.contains(classNames.SHOW); + + if (isActive) scroll(that.menuInner.scrollTop); + }); + } + + focusItem (li, liData, noStyle) { + if (li) { + liData = liData || this.selectpicker.current.data[this.selectpicker.current.elements.indexOf(this.activeElement)]; + var a = li.firstChild; + + if (a) { + a.setAttribute('aria-setsize', this.selectpicker.view.size); + a.setAttribute('aria-posinset', liData.posinset); + + if (noStyle !== true) { + this.focusedParent.setAttribute('aria-activedescendant', a.id); + li.classList.add('active'); + a.classList.add('active'); + } + } + } + } + + defocusItem (li) { + if (li) { + li.classList.remove('active'); + if (li.firstChild) li.firstChild.classList.remove('active'); + } + } + + setPlaceholder () { + var that = this, + updateIndex = false; + + if ((this.options.placeholder || this.options.allowClear) && !this.multiple) { + if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option'); + + // this option doesn't create a new
  • element, but does add a new option at the start, + // so startIndex should increase to prevent having to check every option for the bs-title-option class + updateIndex = true; + + var element = this.element, + selectTitleOption = false, + titleNotAppended = !this.selectpicker.view.titleOption.parentNode, + selectedIndex = element.selectedIndex, + selectedOption = element.options[selectedIndex], + firstSelectable = element.querySelector('select > *:not(:disabled)'), + firstSelectableIndex = firstSelectable ? firstSelectable.index : 0, + navigation = window.performance && window.performance.getEntriesByType('navigation'), + // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation + isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' : window.performance.navigation.type !== 2; + + if (titleNotAppended) { + // Use native JS to prepend option (faster) + this.selectpicker.view.titleOption.className = 'bs-title-option'; + this.selectpicker.view.titleOption.value = ''; + + // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option. + selectTitleOption = !selectedOption || (selectedIndex === firstSelectableIndex && selectedOption.defaultSelected === false); + } + + if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) { + element.insertBefore(this.selectpicker.view.titleOption, element.firstChild); + } + + // Set selected *after* appending to select + if (selectTitleOption && isNotBackForward) { + element.selectedIndex = 0; + } else if (document.readyState !== 'complete') { + // if navigation type is back_forward, there's a chance the select will have its value set by BFCache + // wait for that value to be set, then run render again + window.addEventListener('pageshow', function () { + if (that.selectpicker.view.displayedValue !== element.value) that.render(); + }); + } + } + + return updateIndex; + } + + fetchData (callback, type, page, searchValue) { + page = page || 1; + type = type || 'data'; + + var that = this, + data = this.options.source[type], + builtData; + + if (data) { + this.options.virtualScroll = true; + + if (typeof data === 'function') { + data.call( + this, + function (data, more, totalItems) { + var current = that.selectpicker[type === 'search' ? 'search' : 'main']; + current.hasMore = more; + current.totalItems = totalItems; + builtData = that.buildData(data, type); + callback.call(that, builtData); + that._emit('fetched'); + }, + page, + searchValue + ); + } else if (Array.isArray(data)) { + builtData = that.buildData(data, type); + callback.call(that, builtData); + } + } else { + builtData = this.buildData(false, type); + callback.call(that, builtData); + } + } + + buildData (data, type) { + var that = this; + var dataGetter = data === false ? getOptionData.fromOption : getOptionData.fromDataSource; + + var optionSelector = ':not([hidden]):not([data-hidden="true"]):not([style*="display: none"])', + mainData = [], + startLen = this.selectpicker.main.data ? this.selectpicker.main.data.length : 0, + optID = 0, + startIndex = this.setPlaceholder() && !data ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop + + if (type === 'search') { + startLen = this.selectpicker.search.data.length; + } + + if (this.options.hideDisabled) optionSelector += ':not(:disabled)'; + + var selectOptions = data ? data.filter(filterHidden, this) : this.element.querySelectorAll('select > *' + optionSelector); + + function addDivider (config) { + var previousData = mainData[mainData.length - 1]; + + // ensure optgroup doesn't create back-to-back dividers + if ( + previousData && + previousData.type === 'divider' && + (previousData.optID || config.optID) + ) { + return; + } + + config = config || {}; + config.type = 'divider'; + + mainData.push(config); + } + + function addOption (item, config) { + config = config || {}; + + config.divider = dataGetter(item, 'divider'); + + if (config.divider === true) { + addDivider({ + optID: config.optID + }); + } else { + var liIndex = mainData.length + startLen, + cssText = dataGetter(item, 'style'), + inlineStyle = cssText ? htmlEscape(cssText) : '', + optionClass = (item.className || '') + (config.optgroupClass || ''); + + if (config.optID) optionClass = 'opt ' + optionClass; + + config.optionClass = optionClass.trim(); + config.inlineStyle = inlineStyle; + + config.text = dataGetter(item, 'text'); + config.title = dataGetter(item, 'title'); + config.content = dataGetter(item, 'content'); + config.tokens = dataGetter(item, 'tokens'); + config.subtext = dataGetter(item, 'subtext'); + config.icon = dataGetter(item, 'icon'); + + config.display = config.content || config.text; + config.value = item.value === undefined ? item.text : item.value; + config.type = 'option'; + config.index = liIndex; + + config.option = !item.option ? item : item.option; // reference option element if it exists + config.option.liIndex = liIndex; + config.selected = !!item.selected; + config.disabled = config.disabled || !!item.disabled; + + if (data !== false) { + if (that.selectpicker.optionValuesDataMap[config.value]) { + config = Object.assign(that.selectpicker.optionValuesDataMap[config.value], config); + } else { + that.selectpicker.optionValuesDataMap[config.value] = config; + } + } + + mainData.push(config); + } + } + + function addOptgroup (index, selectOptions) { + var optgroup = selectOptions[index], + // skip placeholder option + previous = index - 1 < startIndex ? false : selectOptions[index - 1], + next = selectOptions[index + 1], + options = data ? optgroup.children.filter(filterHidden, this) : optgroup.querySelectorAll('option' + optionSelector); + + if (!options.length) return; + + var config = { + display: htmlEscape(dataGetter(item, 'label')), + subtext: dataGetter(optgroup, 'subtext'), + icon: dataGetter(optgroup, 'icon'), + type: 'optgroup-label', + optgroupClass: ' ' + (optgroup.className || ''), + optgroup: optgroup + }, + headerIndex, + lastIndex; + + optID++; + + if (previous) { + addDivider({ optID: optID }); + } + + config.optID = optID; + + mainData.push(config); + + for (var j = 0, len = options.length; j < len; j++) { + var option = options[j]; + + if (j === 0) { + headerIndex = mainData.length - 1; + lastIndex = headerIndex + len; + } + + addOption(option, { + headerIndex: headerIndex, + lastIndex: lastIndex, + optID: config.optID, + optgroupClass: config.optgroupClass, + disabled: optgroup.disabled + }); + } + + if (next) { + addDivider({ optID: optID }); + } + } + + var item; + + for (var len = selectOptions.length, i = startIndex; i < len; i++) { + item = selectOptions[i]; + var children = item.children; + + if (children && children.length) { + addOptgroup.call(this, i, selectOptions); + } else { + addOption.call(this, item, {}); + } + } + + switch (type) { + case 'data': { + if (!this.selectpicker.main.data) { + this.selectpicker.main.data = []; + } + Array.prototype.push.apply(this.selectpicker.main.data, mainData); + this.selectpicker.current.data = this.selectpicker.main.data; + break; + } + case 'search': { + Array.prototype.push.apply(this.selectpicker.search.data, mainData); + break; + } + } + + return mainData; + } + + buildList (size, searching) { + var that = this, + selectData = searching ? this.selectpicker.search.data : this.selectpicker.main.data, + mainElements = [], + widestOptionLength = 0; + + if (that.options.showTick || that.multiple) { + elementTemplates.checkMark.className = this.options.selectionIndicator === 'checkbox' + ? 'check-mark bs-selection-indicator' + : this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark'; + + if (!elementTemplates.checkMark.parentNode) { + elementTemplates.a.appendChild(elementTemplates.checkMark); + } + } + + function buildElement (mainElements, item) { + var liElement, + combinedLength = 0; + + switch (item.type) { + case 'divider': + liElement = generateOption.li( + false, + classNames.DIVIDER, + (item.optID ? item.optID + 'div' : undefined) + ); + + break; + + case 'option': + liElement = generateOption.li( + generateOption.a( + generateOption.text.call(that, item), + item.optionClass, + item.inlineStyle + ), + '', + item.optID + ); + + if (liElement.firstChild) { + liElement.firstChild.id = that.selectId + '-' + item.index; + } + + break; + + case 'optgroup-label': + liElement = generateOption.li( + generateOption.label.call(that, item), + 'dropdown-header' + item.optgroupClass, + item.optID + ); + + break; + } + + if (item.content) item.sanitized = false; + + if (!item.element) { + item.element = liElement; + } else { + item.element.innerHTML = liElement.innerHTML; + } + mainElements.push(item.element); + + // count the number of characters in the option - not perfect, but should work in most cases + if (item.display) combinedLength += item.display.length; + if (item.subtext) combinedLength += item.subtext.length; + // if there is an icon, ensure this option's width is checked + if (item.icon) combinedLength += 1; + + if (combinedLength > widestOptionLength) { + widestOptionLength = combinedLength; + + // guess which option is the widest + that.selectpicker.view.widestOption = mainElements[mainElements.length - 1]; + } + } + + var startIndex = size || 0; + + for (var len = selectData.length, i = startIndex; i < len; i++) { + var item = selectData[i]; + + buildElement(mainElements, item); + } + + if (size) { + if (searching) { + Array.prototype.push.apply(this.selectpicker.search.elements, mainElements); + } else { + Array.prototype.push.apply(this.selectpicker.main.elements, mainElements); + this.selectpicker.current.elements = this.selectpicker.main.elements; + } + } else { + if (searching) { + this.selectpicker.search.elements = mainElements; + } else { + this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements; + } + } + } + + findLis () { + return this.menuInner.querySelectorAll('.inner > li'); + } + + render (init) { + var that = this, + element = this.element, + // ensure titleOption is appended and selected (if necessary) before getting selectedOptions + placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0, + selectedOptions = getSelectedOptions.call(this), + selectedCount = selectedOptions.length, + selectedValues = getSelectValues.call(this, selectedOptions), + button = this.button, + buttonInner = button.querySelector('.filter-option-inner-inner'), + multipleSeparator = document.createTextNode(this.options.multipleSeparator), + titleFragment = elementTemplates.fragment.cloneNode(false), + forceCount = this.multiple && this.options.showSelectedTags && selectedCount > 0, + showCount, + countMax, + hasContent = false; + + function createSelected (item) { + if (item.selected) { + that.createOption(item, true); + } else if (item.children && item.children.length) { + item.children.map(createSelected); + } + } + + // create selected option elements to ensure select value is correct + if (this.options.source.data && init) { + selectedOptions.map(createSelected); + element.appendChild(this.selectpicker.main.optionQueue); + + if (placeholderSelected) placeholderSelected = element.selectedIndex === 0; + } + + button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !selectedValues && selectedValues !== 0); + + if (!that.multiple && selectedOptions.length === 1) { + that.selectpicker.view.displayedValue = selectedValues; + } + + if (this.options.selectedTextFormat === 'static') { + titleFragment = generateOption.text.call(this, { text: this.options.placeholder }, true); + } else { + showCount = forceCount || this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 0; + + // determine if the number of selected options will be shown (showCount === true) + if (showCount && !forceCount) { + countMax = this.options.selectedTextFormat.split('>'); + showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2); + } + + // only loop through all selected options if the count won't be shown + if (showCount === false) { + if (!placeholderSelected) { + for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) { + if (selectedIndex < 50) { + var option = selectedOptions[selectedIndex], + titleOptions = {}; + + if (option) { + if (this.multiple && selectedIndex > 0) { + titleFragment.appendChild(multipleSeparator.cloneNode(false)); + } + + if (option.title) { + titleOptions.text = option.title; + } else if (option.content && that.options.showContent) { + titleOptions.content = option.content.toString(); + hasContent = true; + } else { + if (that.options.showIcon) { + titleOptions.icon = option.icon; + } + if (that.options.showSubtext && !that.multiple && option.subtext) titleOptions.subtext = ' ' + option.subtext; + titleOptions.text = option.text.trim(); + } + + titleFragment.appendChild(generateOption.text.call(this, titleOptions, true)); + } + } else { + break; + } + } + + // add ellipsis + if (selectedCount > 49) { + titleFragment.appendChild(document.createTextNode('...')); + } + } + } else { + var optionSelector = ':not([hidden]):not([data-hidden="true"]):not([data-divider="true"]):not([style*="display: none"])'; + if (this.options.hideDisabled) optionSelector += ':not(:disabled)'; + + // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc. + var totalCount = this.element.querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length, + tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText; + + titleFragment = generateOption.text.call(this, { + text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString()) + }, true); + } + } + + // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText + if (!titleFragment.childNodes.length) { + titleFragment = generateOption.text.call(this, { + text: this.options.placeholder ? this.options.placeholder : this.options.noneSelectedText + }, true); + } + + // if the select has a title, apply it to the button, and if not, apply titleFragment text + button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim(); + + if (this.options.sanitize && hasContent) { + sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn); + } + + buttonInner.innerHTML = ''; + buttonInner.appendChild(titleFragment); + + this.syncTagEditor(); + + this._emit('rendered'); + } + + usesTagEditor () { + return this.options.liveSearch && (this.options.showSelectedTags || this.options.openOptions); + } + + syncTagEditor () { + if (!this.usesTagEditor()) return; + + if (this.selectedItems) { + var selectedOptions = getSelectedOptions.call(this), + useListStyle = this.options.selectedItemsStyle === 'list'; + + this.selectedItems.innerHTML = ''; + this.selectedItems.hidden = !selectedOptions.length; + this.selectedItems.classList.toggle('list-group', useListStyle); + + for (var i = 0; i < selectedOptions.length; i++) { + var item = selectedOptions[i], + selectedTag = document.createElement('button'), + removeText = this.options.selectedTagRemoveLabel + ' ' + getOptionLabelText(item), + content = document.createElement('span'), + label = document.createElement('span'), + remove = document.createElement('span'), + icon; + + selectedTag.type = 'button'; + selectedTag.className = useListStyle + ? 'bs-selected-item list-group-item list-group-item-action' + : 'bs-selected-item'; + selectedTag.setAttribute('data-option-value', item.value); + selectedTag.setAttribute('aria-label', removeText); + selectedTag.title = removeText; + + content.className = 'bs-selected-item-content'; + + if (item.icon && this.options.showIcon) { + icon = document.createElement('span'); + icon.className = 'bs-selected-item-icon ' + this.options.iconBase + ' ' + item.icon; + icon.setAttribute('aria-hidden', 'true'); + content.appendChild(icon); + } + + label.className = 'bs-selected-item-label'; + label.textContent = getOptionLabelText(item); + content.appendChild(label); + + remove.className = 'bs-selected-item-remove'; + remove.setAttribute('aria-hidden', 'true'); + remove.textContent = '\u00d7'; + + selectedTag.appendChild(content); + selectedTag.appendChild(remove); + this.selectedItems.appendChild(selectedTag); + } + } + + this.syncOpenOptionButton(); + + if (this.newElement && this.newElement.classList.contains(classNames.SHOW)) { + this.setSize(true); + } + } + + syncOpenOptionButton () { + if (!this.createOptionButton) return; + + var searchValue = this.searchbox ? this.searchbox.value : '', + normalizedValue = searchValue.toString().trim(), + shouldShow = !!normalizedValue && + !this.selectpicker.openOption.isCreating && + !this.findOptionBySearchValue(normalizedValue); + + this.createOptionButton.hidden = !shouldShow; + this.createOptionButton.disabled = this.selectpicker.openOption.isCreating; + + if (shouldShow) { + this.createOptionButton.textContent = this.options.openOptionsText.replace('{0}', normalizedValue); + this.createOptionButton.setAttribute('data-search-value', normalizedValue); + } else { + this.createOptionButton.textContent = ''; + this.createOptionButton.removeAttribute('data-search-value'); + } + } + + findOptionByValue (value, dataSet) { + var options = dataSet || this.selectpicker.main.data, + stringValue = String(value); + + for (var i = 0; i < options.length; i++) { + var option = options[i]; + + if (option.type === 'option' && String(option.value) === stringValue) { + return option; + } + } + + return null; + } + + findOptionBySearchValue (searchValue) { + var options = this.options.source.data || this.options.source.search + ? Object.values(this.selectpicker.optionValuesDataMap) + : this.selectpicker.main.data, + normalizedSearch = normalizeSearchInput(searchValue, this.options.liveSearchNormalize); + + for (var i = 0; i < options.length; i++) { + var option = options[i]; + + if (option.type !== 'option') continue; + + if ( + normalizeSearchInput(option.text, this.options.liveSearchNormalize) === normalizedSearch || + normalizeSearchInput(option.value, this.options.liveSearchNormalize) === normalizedSearch || + normalizeSearchInput(option.title, this.options.liveSearchNormalize) === normalizedSearch + ) { + return option; + } + } + + return null; + } + + createOptionElement (optionData) { + var option = document.createElement('option'); + + option.value = optionData.value === undefined ? optionData.text : optionData.value; + option.textContent = optionData.text === undefined ? option.value : optionData.text; + + if (optionData.className) option.className = optionData.className; + if (optionData.title) option.title = optionData.title; + if (optionData.content) option.setAttribute('data-content', optionData.content); + if (optionData.tokens) option.setAttribute('data-tokens', optionData.tokens); + if (optionData.subtext) option.setAttribute('data-subtext', optionData.subtext); + if (optionData.icon) option.setAttribute('data-icon', optionData.icon); + if (optionData.disabled) option.disabled = true; + if (optionData.hidden) option.hidden = true; + + return option; + } + + appendCreatedSearchResults (searchValue) { + if (!this.selectpicker.createdOptions.length) return; + + var matches = []; + + for (var i = 0; i < this.selectpicker.createdOptions.length; i++) { + var option = this.selectpicker.createdOptions[i]; + + if ( + stringSearch(option, normalizeSearchInput(searchValue, this.options.liveSearchNormalize), this._searchStyle(), this.options.liveSearchNormalize) && + !this.findOptionByValue(option.value, this.selectpicker.search.data) + ) { + matches.push(option); + } + } + + if (matches.length) this.buildData(matches, 'search'); + } + + addCreatedOption (optionData) { + optionData = Object.assign({}, optionData); + optionData.value = optionData.value === undefined ? optionData.text : optionData.value; + optionData.text = optionData.text === undefined ? optionData.value : optionData.text; + + var size = this.selectpicker.main.elements ? this.selectpicker.main.elements.length : 0, + option = this.createOptionElement(optionData); + optionData.option = option; + + this.element.appendChild(option); + var builtOptions = this.buildData([optionData], 'data'), + builtOption = builtOptions[0]; + + this.buildList(size); + this.selectpicker.createdOptions.push(builtOption); + + return builtOption; + } + + removeSelectedTag (value) { + var option = this.findOptionByValue(value); + + if (!option || !option.selected) return; + + var prevValue = getSelectValues.call(this); + + this.setSelected(option, false); + changedArguments = [option.index, false, prevValue]; + triggerNative(this.element, 'change'); + + if (this.options.liveSearch) this.searchbox.focus(); + } + + createOpenOption (searchValue) { + searchValue = searchValue === undefined || searchValue === null ? '' : searchValue.toString().trim(); + + if (!searchValue || this.selectpicker.openOption.isCreating) return; + + var existingOption = this.findOptionBySearchValue(searchValue); + + if (existingOption) { + if (!existingOption.selected) { + var prevSelectedValue = getSelectValues.call(this); + + this.setSelected(existingOption, true); + changedArguments = [existingOption.index, true, prevSelectedValue]; + triggerNative(this.element, 'change'); + } + + if (this.options.liveSearch) this.searchbox.focus(); + return; + } + + var that = this, + prevValue = getSelectValues.call(this), + createHandler = this.options.source.create; + + this.selectpicker.openOption.isCreating = true; + this.syncOpenOptionButton(); + + function finalize (createdOption) { + that.selectpicker.openOption.isCreating = false; + + if (createdOption === undefined || createdOption === null || createdOption === false) { + that.syncOpenOptionButton(); + return; + } + + if (Array.isArray(createdOption)) createdOption = createdOption[0]; + if (typeof createdOption !== 'object') { + createdOption = { + text: createdOption, + value: createdOption + }; + } + + if (!createdOption.text && !createdOption.value) { + createdOption.text = searchValue; + } + + if (createdOption.value === undefined) createdOption.value = createdOption.text; + if (createdOption.text === undefined) createdOption.text = createdOption.value; + + var option = that.findOptionByValue(createdOption.value) || that.findOptionBySearchValue(createdOption.text); + + if (!option) { + option = that.addCreatedOption(createdOption); + } + + that.setSelected(option, true); + + if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue); + + if (that.searchbox) { + that.searchbox.value = ''; + } + + that.selectpicker.search.previousValue = ''; + that.selectpicker.search.data = []; + that.selectpicker.search.elements = []; + that.createView(false); + + changedArguments = [option.index, true, prevValue]; + triggerNative(that.element, 'change'); + + if (that.options.liveSearch) that.searchbox.focus(); + } + + if (typeof createHandler === 'function') { + var returnedOption = createHandler.call(this, finalize, searchValue); + + if (returnedOption && typeof returnedOption.then === 'function') { + returnedOption.then(finalize); + } else if (returnedOption !== undefined) { + finalize(returnedOption); + } + } else { + finalize({ + text: searchValue, + value: searchValue + }); + } + } + + /** + * @param [newStyle] + * @param [status] + */ + setStyle (newStyle, status) { + var button = this.button, + newElement = this.newElement, + style = this.options.style.trim(), + buttonClass; + + if (this.element.getAttribute('class')) { + var extra = this.element.getAttribute('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, '').trim(); + if (extra) newElement.classList.add.apply(newElement.classList, extra.split(/\s+/)); + } + + if (newStyle) { + buttonClass = newStyle.trim(); + } else { + buttonClass = style; + } + + if (status === 'add') { + if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' ')); + } else if (status === 'remove') { + if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' ')); + } else { + if (style) button.classList.remove.apply(button.classList, style.split(' ')); + if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' ')); + } + } + + liHeight (refresh) { + if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return; + + var newElement = elementTemplates.div.cloneNode(false), + menu = elementTemplates.div.cloneNode(false), + menuInner = elementTemplates.div.cloneNode(false), + menuInnerInner = document.createElement('ul'), + divider = elementTemplates.li.cloneNode(false), + dropdownHeader = elementTemplates.li.cloneNode(false), + li, + a = elementTemplates.a.cloneNode(false), + text = elementTemplates.span.cloneNode(false), + header = this.options.header && this.menu.querySelectorAll('.' + classNames.POPOVERHEADER).length > 0 ? this.menu.querySelector('.' + classNames.POPOVERHEADER).cloneNode(true) : null, + search = this.options.liveSearch && this.menu.querySelector('.bs-searchbox') + ? this.menu.querySelector('.bs-searchbox').cloneNode(true) + : null, + actions = this.options.actionsBox && this.multiple && this.menu.querySelectorAll('.bs-actionsbox').length > 0 ? this.menu.querySelector('.bs-actionsbox').cloneNode(true) : null, + doneButton = this.options.doneButton && this.multiple && this.menu.querySelectorAll('.bs-donebutton').length > 0 ? this.menu.querySelector('.bs-donebutton').cloneNode(true) : null, + firstOption = this.element.options[0]; + + this.sizeInfo.selectWidth = this.newElement.offsetWidth; + + text.className = 'text'; + a.className = 'dropdown-item ' + (firstOption ? firstOption.className : ''); + newElement.className = this.menu.parentNode.className + ' ' + classNames.SHOW; + newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating + menu.className = classNames.MENU + ' ' + classNames.SHOW; + menuInner.className = 'inner ' + classNames.SHOW; + menuInnerInner.className = classNames.MENU + ' inner ' + classNames.SHOW; + divider.className = classNames.DIVIDER; + dropdownHeader.className = 'dropdown-header'; + + text.appendChild(document.createTextNode('\u200b')); + + if (this.selectpicker.current.data.length) { + for (var i = 0; i < this.selectpicker.current.data.length; i++) { + var data = this.selectpicker.current.data[i]; + if (data.type === 'option' && window.getComputedStyle(data.element.firstChild).display !== 'none') { + li = data.element; + break; + } + } + } else { + li = elementTemplates.li.cloneNode(false); + a.appendChild(text); + li.appendChild(a); + } + + dropdownHeader.appendChild(text.cloneNode(true)); + + if (this.selectpicker.view.widestOption) { + menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true)); + } + + menuInnerInner.appendChild(li); + menuInnerInner.appendChild(divider); + menuInnerInner.appendChild(dropdownHeader); + if (header) menu.appendChild(header); + if (search) menu.appendChild(search); + if (actions) menu.appendChild(actions); + menuInner.appendChild(menuInnerInner); + menu.appendChild(menuInner); + if (doneButton) menu.appendChild(doneButton); + newElement.appendChild(menu); + + document.body.appendChild(newElement); + + var liHeight = li.offsetHeight, + dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0, + headerHeight = header ? header.offsetHeight : 0, + searchHeight = search ? search.offsetHeight : 0, + actionsHeight = actions ? actions.offsetHeight : 0, + doneButtonHeight = doneButton ? doneButton.offsetHeight : 0, + dividerHeight = outerHeight(divider, true), + menuStyle = window.getComputedStyle(menu), + menuWidth = menu.offsetWidth, + menuPadding = { + vert: toInteger(menuStyle.paddingTop) + + toInteger(menuStyle.paddingBottom) + + toInteger(menuStyle.borderTopWidth) + + toInteger(menuStyle.borderBottomWidth), + horiz: toInteger(menuStyle.paddingLeft) + + toInteger(menuStyle.paddingRight) + + toInteger(menuStyle.borderLeftWidth) + + toInteger(menuStyle.borderRightWidth) + }, + menuExtras = { + vert: menuPadding.vert + + toInteger(menuStyle.marginTop) + + toInteger(menuStyle.marginBottom) + 2, + horiz: menuPadding.horiz + + toInteger(menuStyle.marginLeft) + + toInteger(menuStyle.marginRight) + 2 + }, + scrollBarWidth; + + menuInner.style.overflowY = 'scroll'; + + scrollBarWidth = menu.offsetWidth - menuWidth; + + document.body.removeChild(newElement); + + this.sizeInfo.liHeight = liHeight; + this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight; + this.sizeInfo.headerHeight = headerHeight; + this.sizeInfo.searchHeight = searchHeight; + this.sizeInfo.actionsHeight = actionsHeight; + this.sizeInfo.doneButtonHeight = doneButtonHeight; + this.sizeInfo.dividerHeight = dividerHeight; + this.sizeInfo.menuPadding = menuPadding; + this.sizeInfo.menuExtras = menuExtras; + this.sizeInfo.menuWidth = menuWidth; + this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz; + this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth; + this.sizeInfo.scrollBarWidth = scrollBarWidth; + this.sizeInfo.selectHeight = this.newElement.offsetHeight; + + this.setPositionData(); + } + + getSelectPosition () { + var that = this, + winScrollTop = window.pageYOffset, + winScrollLeft = window.pageXOffset, + winHeight = document.documentElement.clientHeight, + winWidth = document.documentElement.clientWidth, + pos = offset(that.newElement); + + this.sizeInfo.selectOffsetTop = pos.top - winScrollTop; + this.sizeInfo.selectOffsetBot = winHeight - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight; + this.sizeInfo.selectOffsetLeft = pos.left - winScrollLeft; + this.sizeInfo.selectOffsetRight = winWidth - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth; + } + + setMenuSize (isAuto) { + this.getSelectPosition(); + + var selectWidth = this.sizeInfo.selectWidth, + liHeight = this.sizeInfo.liHeight, + headerHeight = this.sizeInfo.headerHeight, + searchHeight = this.sizeInfo.searchHeight, + actionsHeight = this.sizeInfo.actionsHeight, + doneButtonHeight = this.sizeInfo.doneButtonHeight, + divHeight = this.sizeInfo.dividerHeight, + menuPadding = this.sizeInfo.menuPadding, + menuInnerHeight, + menuHeight, + divLength = 0, + minHeight, + _minHeight, + maxHeight, + menuInnerMinHeight, + estimate, + isDropup; + + if (this.options.dropupAuto) { + // Get the estimated height of the menu without scrollbars. + estimate = liHeight * this.selectpicker.current.data.length + menuPadding.vert; + + isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot; + + // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth) + if (this.selectpicker.isSearching === true) { + isDropup = this.selectpicker.dropup; + } + + this.newElement.classList.toggle(classNames.DROPUP, isDropup); + this.selectpicker.dropup = isDropup; + } + + if (this.options.size === 'auto') { + _minHeight = this.selectpicker.current.data.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0; + menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert; + minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; + menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0); + + if (this.newElement.classList.contains(classNames.DROPUP)) { + menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert; + } + + maxHeight = menuHeight; + menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert; + } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) { + for (var i = 0; i < this.options.size; i++) { + if (this.selectpicker.current.data[i].type === 'divider') divLength++; + } + + menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert; + menuInnerHeight = menuHeight - menuPadding.vert; + maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; + minHeight = menuInnerMinHeight = ''; + } + + setStyles(this.menu, { + maxHeight: maxHeight + 'px', + overflow: 'hidden', + minHeight: minHeight + 'px' + }); + + setStyles(this.menuInner, { + maxHeight: menuInnerHeight + 'px', + overflow: 'hidden auto', + minHeight: menuInnerMinHeight + 'px' + }); + + // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView + this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1); + + if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) { + this.sizeInfo.hasScrollBar = true; + this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth; + } + + if (this.options.dropdownAlignRight === 'auto') { + this.menu.classList.toggle(classNames.MENUEND, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth)); + } + + if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update(); + } + + setSize (refresh) { + this.liHeight(refresh); + + if (this.options.header) this.menu.style.paddingTop = 0; + + if (this.options.size !== false) { + var that = this; + + this.setMenuSize(); + + if (this.options.liveSearch) { + this._replace('setMenuSizeInput', this.searchbox, 'input', function () { + return that.setMenuSize(); + }); + } + + if (this.options.size === 'auto') { + var windowSizeHandler = function () { + return that.setMenuSize(); + }; + this._replace('setMenuSizeResize', window, 'resize', windowSizeHandler); + this._replace('setMenuSizeScroll', window, 'scroll', windowSizeHandler); + } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) { + this._removeNamed('setMenuSizeResize'); + this._removeNamed('setMenuSizeScroll'); + } + } + + this.createView(false, true, refresh); + } + + setWidth () { + this.menu.style.minWidth = ''; + this.newElement.style.width = ''; + this.newElement.classList.remove('fit-width'); + } + + selectPosition () { + this.bsContainer = createFromHTML('
    '); + + var that = this, + container = resolveContainer(this.options.container), + pos, + containerPos, + actualHeight, + getPlacement = function (element) { + var Dropdown = getDropdown(), + containerPosition = {}, + // fall back to dropdown's default display setting if display is not manually set + display = that.options.display || (Dropdown.Default ? Dropdown.Default.display : false); + + var extraClass = element.getAttribute('class').replace(/form-control|fit-width/gi, '').trim(); + if (extraClass) that.bsContainer.classList.add.apply(that.bsContainer.classList, extraClass.split(/\s+/)); + that.bsContainer.classList.toggle(classNames.DROPUP, element.classList.contains(classNames.DROPUP)); + pos = offset(element); + + if (container !== document.body) { + containerPos = offset(container); + var containerStyle = window.getComputedStyle(container); + containerPos.top += toInteger(containerStyle.borderTopWidth) - container.scrollTop; + containerPos.left += toInteger(containerStyle.borderLeftWidth) - container.scrollLeft; + } else { + containerPos = { top: 0, left: 0 }; + } + + actualHeight = element.classList.contains(classNames.DROPUP) ? 0 : element.offsetHeight; + + // Bootstrap 5 uses Popper for menu positioning + if (display === 'static') { + containerPosition.top = pos.top - containerPos.top + actualHeight; + containerPosition.left = pos.left - containerPos.left; + } + + containerPosition.width = element.offsetWidth; + + setStyles(that.bsContainer, { + top: containerPosition.top !== undefined ? containerPosition.top + 'px' : '', + left: containerPosition.left !== undefined ? containerPosition.left + 'px' : '', + width: containerPosition.width + 'px' + }); + }; + + this._on(this.button, 'click', function () { + if (that.isDisabled()) { + return; + } + + getPlacement(that.newElement); + + container.appendChild(that.bsContainer); + that.bsContainer.classList.toggle(classNames.SHOW, !that.button.classList.contains(classNames.SHOW)); + that.bsContainer.appendChild(that.menu); + }); + + var windowHandler = function () { + var isActive = that.newElement.classList.contains(classNames.SHOW); + + if (isActive) getPlacement(that.newElement); + }; + this._replace('selectPositionResize', window, 'resize', windowHandler); + this._replace('selectPositionScroll', window, 'scroll', windowHandler); + + this._on(this.element, 'hide' + EVENT_KEY, function () { + that._menuHeight = outerHeight(that.menu); + if (that.bsContainer.parentNode) that.bsContainer.parentNode.removeChild(that.bsContainer); + }); + } + + createOption (data, init) { + var optionData = !data.option ? data : data.option; + + if (optionData && optionData.nodeType !== 1) { + var option = (init ? elementTemplates.selectedOption : elementTemplates.option).cloneNode(true); + if (optionData.value !== undefined) option.value = optionData.value; + option.textContent = optionData.text; + + option.selected = true; + + if (optionData.liIndex !== undefined) { + option.liIndex = optionData.liIndex; + } else if (!init) { + option.liIndex = data.index; + } + + data.option = option; + + this.selectpicker.main.optionQueue.appendChild(option); + } + } + + setOptionStatus (selectedOnly) { + var that = this; + + that.noScroll = false; + + if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) { + for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) { + var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0], + option = liData.option; + + if (option) { + if (selectedOnly !== true) { + that.setDisabled(liData); + } + + that.setSelected(liData); + } + } + + // append optionQueue (documentFragment with option elements for select options) + if (this.options.source.data) this.element.appendChild(this.selectpicker.main.optionQueue); + } + } + + /** + * @param {Object} liData - the option object that is being changed + * @param {boolean} selected - true if the option is being selected, false if being deselected + */ + setSelected (liData, selected) { + selected = selected === undefined ? liData.selected : selected; + + var li = liData.element, + activeElementIsSet = this.activeElement !== undefined, + thisIsActive = this.activeElement === li, + prevActive, + a, + keepActive = thisIsActive || (selected && !this.multiple && !activeElementIsSet); + + if (selected !== undefined) { + liData.selected = selected; + if (liData.option) liData.option.selected = selected; + } + + if (selected && this.options.source.data) { + this.createOption(liData, false); + } + + if (!li) return; + + a = li.firstChild; + + if (selected) { + this.selectedElement = li; + } + + li.classList.toggle('selected', selected); + + if (keepActive) { + this.focusItem(li, liData); + this.selectpicker.view.currentActive = li; + this.activeElement = li; + } else { + this.defocusItem(li); + } + + if (a) { + a.classList.toggle('selected', selected); + + if (selected) { + a.setAttribute('aria-selected', true); + } else { + if (this.multiple) { + a.setAttribute('aria-selected', false); + } else { + a.removeAttribute('aria-selected'); + } + } + } + + if (!keepActive && !activeElementIsSet && selected && this.prevActiveElement !== undefined) { + prevActive = this.prevActiveElement; + + this.defocusItem(prevActive); + } + } + + /** + * @param {Object} liData - the option that is being disabled + */ + setDisabled (liData) { + var disabled = liData.disabled, + li = liData.element, + a; + + if (!li) return; + + a = li.firstChild; + + li.classList.toggle(classNames.DISABLED, disabled); + + if (a) { + a.classList.toggle(classNames.DISABLED, disabled); + + if (disabled) { + a.setAttribute('aria-disabled', disabled); + a.setAttribute('tabindex', -1); + } else { + a.removeAttribute('aria-disabled'); + a.setAttribute('tabindex', 0); + } + } + } + + isDisabled () { + return this.element.disabled; + } + + checkDisabled () { + if (this.isDisabled()) { + this.newElement.classList.add(classNames.DISABLED); + this.button.classList.add(classNames.DISABLED); + this.button.setAttribute('aria-disabled', true); + } else { + if (this.button.classList.contains(classNames.DISABLED)) { + this.newElement.classList.remove(classNames.DISABLED); + this.button.classList.remove(classNames.DISABLED); + this.button.setAttribute('aria-disabled', false); + } + } + } + + clickListener () { + var that = this; + + spaceSelectFlag = false; + + this._on(this.button, 'keyup', function (e) { + if (/(32)/.test(e.keyCode.toString(10)) && spaceSelectFlag) { + e.preventDefault(); + spaceSelectFlag = false; + } + }); + + function clearSelection (e) { + if (that.multiple) { + that.deselectAll(); + } else { + var element = that.element, + prevValue = element.value, + prevIndex = element.selectedIndex, + prevOption = element.options[prevIndex], + prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false; + + if (prevData) { + that.setSelected(prevData, false); + } + + element.selectedIndex = 0; + + changedArguments = [prevIndex, false, prevValue]; + triggerNative(that.element, 'change'); + } + + // remove selected styling if menu is open + if (that.newElement.classList.contains(classNames.SHOW)) { + if (that.options.liveSearch) { + that.searchbox.focus(); + } + + that.createView(false); + } + } + + if (this.options.allowClear) { + this._on(this.button, 'click', function (e) { + var target = e.target, + clearButton = that.clearButton; + + if (target === clearButton || target.parentElement === clearButton) { + e.stopImmediatePropagation(); + clearSelection(e); + } + }); + } + + function setFocus () { + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.menuInner.focus(); + } + } + + function checkPopperExists () { + if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state) { + setFocus(); + } else { + requestAnimationFrame(checkPopperExists); + } + } + + this._on(this.element, 'shown' + EVENT_KEY, function () { + if (that.menuInner.scrollTop !== that.selectpicker.view.scrollTop) { + that.menuInner.scrollTop = that.selectpicker.view.scrollTop; + } + + requestAnimationFrame(checkPopperExists); + }); + + // ensure posinset and setsize are correct before selecting an option via a click + this._delegate(this.menuInner, 'mouseover', 'li a', function () { + var hoverLi = this.parentElement, + position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, + index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi), + hoverData = that.selectpicker.current.data[index + position0]; + + that.focusItem(hoverLi, hoverData, true); + }); + + this._delegate(this.menuInner, 'click', 'li a', function (e) { + that.onOptionClick(this, e); + }); + + this._delegate(this.menu, 'click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.btn-close):not(.close)', function (e) { + if (e.currentTarget === this || e.target === this) { + e.preventDefault(); + e.stopPropagation(); + if (that.options.liveSearch && !e.target.classList.contains('btn-close') && !e.target.classList.contains('close')) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + } + }); + + this._delegate(this.menuInner, 'click', '.divider, .dropdown-header', function (e) { + e.preventDefault(); + e.stopPropagation(); + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + }); + + this._delegate(this.menu, 'click', '.' + classNames.POPOVERHEADER + ' .btn-close, .' + classNames.POPOVERHEADER + ' .close', function () { + that.dropdown.hide(); + }); + + this._delegate(this.newElement, 'click', '.bs-selected-item', function (e) { + e.preventDefault(); + e.stopPropagation(); + that.removeSelectedTag(this.getAttribute('data-option-value')); + }); + + this._delegate(this.menu, 'click', '.bs-create-option', function (e) { + e.preventDefault(); + e.stopPropagation(); + that.createOpenOption(this.getAttribute('data-search-value')); + }); + + if (this.searchbox) { + this._on(this.searchbox, 'click', function (e) { + e.stopPropagation(); + }); + } + + this._delegate(this.menu, 'click', '.actions-btn', function (e) { + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + + e.preventDefault(); + e.stopPropagation(); + + if (this.classList.contains('bs-select-all')) { + that.selectAll(); + } else { + that.deselectAll(); + } + }); + + this._on(this.button, 'focus', function (e) { + var tabindex = that.element.getAttribute('tabindex'); + + // only change when button is actually focused + if (tabindex !== undefined && tabindex !== null && e.isTrusted) { + // apply select element's tabindex to ensure correct order is followed when tabbing to the next element + this.setAttribute('tabindex', tabindex); + // set element's tabindex to -1 to allow for reverse tabbing + that.element.setAttribute('tabindex', -1); + that.selectpicker.view.tabindex = tabindex; + } + }); + + this._on(this.button, 'blur', function (e) { + // revert everything to original tabindex + if (that.selectpicker.view.tabindex !== undefined && e.isTrusted) { + that.element.setAttribute('tabindex', that.selectpicker.view.tabindex); + this.setAttribute('tabindex', -1); + that.selectpicker.view.tabindex = undefined; + } + }); + + this._on(this.element, 'change', function () { + that.render(); + that._emit('changed', changedArguments ? { + clickedIndex: changedArguments[0], + isSelected: changedArguments[1], + previousValue: changedArguments[2] + } : null); + changedArguments = null; + }); + + this._on(this.element, 'focus', function () { + if (!that.options.mobile) that.button.focus(); + }); + } + + onOptionClick (clickedAnchor, e, retainActive) { + var that = this, + element = that.element, + li = clickedAnchor.parentElement, + position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, + clickedData = that.selectpicker.current.data[Array.prototype.indexOf.call(li.parentElement.children, li) + position0], + clickedElement = clickedData.element, + prevValue = getSelectValues.call(that), + prevIndex = element.selectedIndex, + prevOption = element.options[prevIndex], + prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false, + triggerChange = true; + + // Don't close on multi choice menu + if (that.multiple && that.options.maxOptions !== 1) { + e.stopPropagation(); + } + + e.preventDefault(); + + // Don't run if the select is disabled + if (!that.isDisabled() && !li.classList.contains(classNames.DISABLED)) { + var option = clickedData.option, + state = option.selected, + optgroupData = that.selectpicker.current.data.find(function (datum) { + return datum.optID === clickedData.optID && datum.type === 'optgroup-label'; + }), + optgroup = optgroupData ? optgroupData.optgroup : undefined, + dataGetter = optgroup instanceof Element ? getOptionData.fromOption : getOptionData.fromDataSource, + optgroupOptions = optgroup && optgroup.children, + maxOptions = parseInt(that.options.maxOptions), + maxOptionsGrp = optgroup && parseInt(dataGetter(optgroup, 'maxOptions')) || false; + + if (clickedElement === that.activeElement) retainActive = true; + + if (!retainActive) { + that.prevActiveElement = that.activeElement; + that.activeElement = undefined; + } + + if (!that.multiple || maxOptions === 1) { // Deselect previous option if not multi select + if (prevData) that.setSelected(prevData, false); + that.setSelected(clickedData, true); + } else { // Toggle the clicked option if multi select. + that.setSelected(clickedData, !state); + that.focusedParent.focus(); + + if (maxOptions !== false || maxOptionsGrp !== false) { + var maxReached = maxOptions < getSelectedOptions.call(that).length, + selectedGroupOptions = 0; + + if (optgroup && optgroup.children) { + for (var i = 0; i < optgroup.children.length; i++) { + if (optgroup.children[i].selected) selectedGroupOptions++; + } + } + + var maxReachedGrp = maxOptionsGrp < selectedGroupOptions; + + if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) { + if (maxOptions && maxOptions === 1) { + element.selectedIndex = -1; + that.setOptionStatus(true); + } else if (maxOptionsGrp && maxOptionsGrp === 1) { + for (var j = 0; j < optgroupOptions.length; j++) { + var _option = optgroupOptions[j]; + that.setSelected(that.selectpicker.current.data[_option.liIndex], false); + } + + that.setSelected(clickedData, true); + } else { + var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText, + maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText, + maxTxt = maxOptionsArr[0].replace('{n}', maxOptions), + maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp), + notify = createFromHTML('
    '); + + that.menu.appendChild(notify); + + if (maxOptions && maxReached) { + notify.appendChild(createFromHTML('
    ' + maxTxt + '
    ')); + triggerChange = false; + that._emit('maxReached'); + } + + if (maxOptionsGrp && maxReachedGrp) { + notify.appendChild(createFromHTML('
    ' + maxTxtGrp + '
    ')); + triggerChange = false; + that._emit('maxReachedGrp'); + } + + setTimeout(function () { + that.setSelected(clickedData, false); + }, 10); + + notify.classList.add('fadeOut'); + + setTimeout(function () { + notify.remove(); + }, 1050); + } + } + } + } + + if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue); + + if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) { + that.button.focus(); + } else if (that.options.liveSearch) { + that.searchbox.focus(); + } + + // Trigger select 'change' + if (triggerChange) { + if (that.multiple || prevIndex !== element.selectedIndex) { + changedArguments = [option.index, option.selected, prevValue]; + triggerNative(that.element, 'change'); + } + } + } + } + + liveSearchListener () { + var that = this; + + this._on(this.searchbox, 'click', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'focus', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'touchend', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'keydown', function (e) { + if (e.key === 'Enter' && that.createOptionButton && !that.createOptionButton.hidden && !that.selectpicker.current.data.length) { + e.preventDefault(); + e.stopPropagation(); + that.createOpenOption(that.searchbox.value); + } + }); + + this._on(this.searchbox, 'input', function () { + var searchValue = that.searchbox.value; + + that.selectpicker.search.elements = []; + that.selectpicker.search.data = []; + + if (searchValue) { + that.selectpicker.search.previousValue = searchValue; + + if (that.options.source.search) { + that.fetchData(function () { + that.appendCreatedSearchResults(searchValue); + that.render(); + that.buildList(undefined, true); + that.noScroll = true; + that.menuInner.scrollTop = 0; + that.createView(true); + showNoResults.call(that, that.selectpicker.search.data, searchValue); + }, 'search', 0, searchValue); + } else { + var searchMatch = [], + q = searchValue.toUpperCase(), + cache = {}, + cacheArr = [], + searchStyle = that._searchStyle(), + normalizeSearch = that.options.liveSearchNormalize; + + if (normalizeSearch) q = normalizeToBase(q); + + for (var i = 0; i < that.selectpicker.main.data.length; i++) { + var li = that.selectpicker.main.data[i]; + + if (!cache[i]) { + cache[i] = stringSearch(li, q, searchStyle, normalizeSearch); + } + + if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) { + if (li.headerIndex > 0) { + cache[li.headerIndex - 1] = true; + cacheArr.push(li.headerIndex - 1); + } + + cache[li.headerIndex] = true; + cacheArr.push(li.headerIndex); + + cache[li.lastIndex + 1] = true; + } + + if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i); + } + + for (var j = 0, cacheLen = cacheArr.length; j < cacheLen; j++) { + var index = cacheArr[j], + prevIndex = cacheArr[j - 1], + liData = that.selectpicker.main.data[index], + liPrev = that.selectpicker.main.data[prevIndex]; + + if (liData.type !== 'divider' || (liData.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== j)) { + that.selectpicker.search.data.push(liData); + searchMatch.push(that.selectpicker.main.elements[index]); + } + } + + that.activeElement = undefined; + that.noScroll = true; + that.menuInner.scrollTop = 0; + that.selectpicker.search.elements = searchMatch; + that.createView(true); + showNoResults.call(that, searchMatch, searchValue); + } + } else if (that.selectpicker.search.previousValue) { + that.menuInner.scrollTop = 0; + that.createView(false); + } + + that.syncOpenOptionButton(); + }); + } + + _searchStyle () { + return this.options.liveSearchStyle || 'contains'; + } + + getValue () { + var element = this.element; + + if (this.multiple) { + var values = []; + for (var i = 0; i < element.options.length; i++) { + if (element.options[i].selected) values.push(element.options[i].value); + } + return values; + } + + return element.value; + } + + val (value) { + var element = this.element; + + if (typeof value !== 'undefined') { + var selectedOptions = getSelectedOptions.call(this), + prevValue = getSelectValues.call(this, selectedOptions); + + changedArguments = [null, null, prevValue]; + + if (!Array.isArray(value)) value = [ value ]; + + value.map(String); + + for (var i = 0; i < selectedOptions.length; i++) { + var item = selectedOptions[i]; + + if (item && value.indexOf(String(item.value)) === -1) { + this.setSelected(item, false); + } + } + + // only update selected value if it matches an existing option + this.selectpicker.main.data.filter(function (item) { + if (value.indexOf(String(item.value)) !== -1) { + this.setSelected(item, true); + return true; + } + + return false; + }, this); + + if (this.options.source.data) element.appendChild(this.selectpicker.main.optionQueue); + + this._emit('changed', changedArguments ? { + clickedIndex: changedArguments[0], + isSelected: changedArguments[1], + previousValue: changedArguments[2] + } : null); + + if (this.newElement.classList.contains(classNames.SHOW)) { + if (this.multiple) { + this.setOptionStatus(true); + } else { + var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex; + + if (typeof liSelectedIndex === 'number') { + this.setSelected(this.selectpicker.current.data[liSelectedIndex], true); + } + } + } + + this.render(); + + changedArguments = null; + + return this.element; + } else { + return this.getValue(); + } + } + + changeAll (status) { + if (!this.multiple) return; + if (typeof status === 'undefined') status = true; + + var element = this.element, + previousSelected = 0, + currentSelected = 0, + prevValue = getSelectValues.call(this); + + element.classList.add('bs-select-hidden'); + + for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) { + var liData = data[i], + option = liData.option; + + if (option && !liData.disabled && liData.type !== 'divider') { + if (liData.selected) previousSelected++; + option.selected = status; + liData.selected = status; + if (status === true) currentSelected++; + } + } + + element.classList.remove('bs-select-hidden'); + + if (previousSelected === currentSelected) return; + + this.setOptionStatus(); + + changedArguments = [null, null, prevValue]; + + triggerNative(this.element, 'change'); + } + + selectAll () { + return this.changeAll(true); + } + + deselectAll () { + return this.changeAll(false); + } + + toggle (e, state) { + var isActive, + triggerToggle = state === undefined; + + if (e && e.stopPropagation) e.stopPropagation(); + + if (triggerToggle === false) { + isActive = this.newElement.classList.contains(classNames.SHOW); + triggerToggle = (state === true && isActive === false) || (state === false && isActive === true); + } + + if (triggerToggle) this.dropdown.toggle(); + } + + open (e) { + this.toggle(e, true); + } + + close (e) { + this.toggle(e, false); + } + + _keydown (e, el) { + var that = this, + which = e.which || e.keyCode, + isToggle = el.classList.contains('dropdown-toggle'), + items = that.findLis(), + index, + isActive, + liActive, + activeLi, + offsetVal, + updateScroll = false, + downOnTab = which === keyCodes.TAB && !isToggle && !that.options.selectOnTab, + isArrowKey = REGEXP_ARROW.test(which) || downOnTab, + scrollTop = that.menuInner.scrollTop, + isVirtual = that.isVirtual(), + position0 = isVirtual === true ? that.selectpicker.view.position0 : 0; + + // do nothing if a function key is pressed + if (which >= 112 && which <= 123) return; + + isActive = that.menu.classList.contains(classNames.SHOW); + + if ( + !isActive && + ( + isArrowKey || + (which >= 48 && which <= 57) || + (which >= 96 && which <= 105) || + (which >= 65 && which <= 90) + ) + ) { + that.dropdown.show(); + + if (that.options.liveSearch) { + that.searchbox.focus(); + return; + } + } + + if (which === keyCodes.ESCAPE && isActive) { + e.preventDefault(); + that.dropdown.hide(); + that.button.focus(); + } + + if (isArrowKey) { // if up or down + if (!items.length) return; + + liActive = that.activeElement; + index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1; + + if (index !== -1) { + that.defocusItem(liActive); + } + + if (which === keyCodes.ARROW_UP) { // up + if (index !== -1) index--; + if (index + position0 < 0) index += items.length; + + if (!that.selectpicker.view.canHighlight[index + position0]) { + index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0; + if (index === -1) index = items.length - 1; + } + } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down + index++; + if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex; + + if (!that.selectpicker.view.canHighlight[index + position0]) { + index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true); + } + } + + e.preventDefault(); + + var liActiveIndex = position0 + index; + + if (which === keyCodes.ARROW_UP) { // up + // scroll to bottom and highlight last option + if (position0 === 0 && index === items.length - 1) { + that.menuInner.scrollTop = that.menuInner.scrollHeight; + + liActiveIndex = that.selectpicker.current.elements.length - 1; + } else { + activeLi = that.selectpicker.current.data[liActiveIndex]; + + // could be undefined if no results exist + if (activeLi) { + offsetVal = activeLi.position - activeLi.height; + + updateScroll = offsetVal < scrollTop; + } + } + } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down + // scroll to top and highlight first option + if (index === that.selectpicker.view.firstHighlightIndex) { + that.menuInner.scrollTop = 0; + + liActiveIndex = that.selectpicker.view.firstHighlightIndex; + } else { + activeLi = that.selectpicker.current.data[liActiveIndex]; + + // could be undefined if no results exist + if (activeLi) { + offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight; + + updateScroll = offsetVal > scrollTop; + } + } + } + + liActive = that.selectpicker.current.elements[liActiveIndex]; + + that.activeElement = (that.selectpicker.current.data[liActiveIndex] || {}).element; + + that.focusItem(liActive); + + that.selectpicker.view.currentActive = liActive; + + if (updateScroll) that.menuInner.scrollTop = offsetVal; + + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + el.focus(); + } + } else if ( + (!el.matches('input') && !REGEXP_TAB_OR_ESCAPE.test(which)) || + (which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory) + ) { + var matches = [], + keyHistory; + + e.preventDefault(); + + that.selectpicker.keydown.keyHistory += keyCodeMap[which]; + + if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel); + that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start(); + + keyHistory = that.selectpicker.keydown.keyHistory; + + // if all letters are the same, set keyHistory to just the first character when searching + if (/^(.)\1+$/.test(keyHistory)) { + keyHistory = keyHistory.charAt(0); + } + + // find matches + for (var i = 0; i < that.selectpicker.current.data.length; i++) { + var li = that.selectpicker.current.data[i], + hasMatch; + + hasMatch = stringSearch(li, keyHistory, 'startsWith', true); + + if (hasMatch && that.selectpicker.view.canHighlight[i]) { + matches.push(li.element); + } + } + + if (matches.length) { + var matchIndex = 0; + + Array.prototype.forEach.call(items, function (item) { + item.classList.remove('active'); + if (item.firstChild) item.firstChild.classList.remove('active'); + }); + + // either only one key has been pressed or they are all the same key + if (keyHistory.length === 1) { + matchIndex = matches.indexOf(that.activeElement); + + if (matchIndex === -1 || matchIndex === matches.length - 1) { + matchIndex = 0; + } else { + matchIndex++; + } + } + + activeLi = that.selectpicker.main.data[that.selectpicker.main.elements.indexOf(matches[matchIndex])]; + + if (activeLi) { + if (scrollTop - activeLi.position > 0) { + offsetVal = activeLi.position - activeLi.height; + updateScroll = true; + } else { + offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight; + // if the option is already visible at the current scroll position, just keep it the same + updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight; + } + } + + liActive = matches[matchIndex]; + + that.activeElement = liActive; + + that.focusItem(liActive); + + if (liActive) liActive.firstChild.focus(); + + if (updateScroll) that.menuInner.scrollTop = offsetVal; + + el.focus(); + } + } + + // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu. + if ( + isActive && + ( + (which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) || + which === keyCodes.ENTER || + (which === keyCodes.TAB && that.options.selectOnTab) + ) + ) { + if (which !== keyCodes.SPACE) e.preventDefault(); + + if (!that.options.liveSearch || which !== keyCodes.SPACE) { + var activeAnchor = that.menuInner.querySelector('.active a'); + if (activeAnchor) that.onOptionClick(activeAnchor, e, true); // retain active class + el.focus(); + + if (!that.options.liveSearch) { + // Prevent screen from scrolling if the user hits the spacebar + e.preventDefault(); + // Fixes spacebar selection of dropdown items in FF & IE + spaceSelectFlag = true; + } + } + } + } + + mobile () { + // ensure mobile is set to true if mobile function is called after init + this.options.mobile = true; + this.element.classList.add('mobile-device'); + } + + resetMenuData () { + this.selectpicker.main.data = []; + this.selectpicker.main.elements = []; + this.selectpicker.main.hasMore = false; + this.selectpicker.search.data = []; + this.selectpicker.search.elements = []; + this.selectpicker.search.hasMore = false; + this.selectpicker.current.data = this.selectpicker.main.data; + this.selectpicker.current.elements = this.selectpicker.main.elements; + this.selectpicker.current.hasMore = false; + this.selectpicker.isSearching = false; + } + + refresh () { + var that = this; + // update options if data attributes have been changed + var config = stripRemovedOptions(Object.assign({}, this.options, getAttributesObject(this.element), getDataset(this.element))); + this.options = config; + + if (this.options.source.data) { + this.render(); + this.buildList(); + } else { + this.resetMenuData(); + this.fetchData(function () { + that.render(); + that.buildList(); + }); + } + + this.checkDisabled(); + this.setStyle(); + this.setWidth(); + + this.setSize(true); + + this._emit('refreshed'); + } + + hide () { + this.newElement.style.display = 'none'; + } + + show () { + this.newElement.style.display = ''; + } + + remove () { + if (this.newElement.parentNode) this.newElement.parentNode.removeChild(this.newElement); + instanceMap.delete(this.element); + } + + destroy () { + // move the select back out of newElement, then remove newElement + if (this.newElement.parentNode) { + this.newElement.parentNode.insertBefore(this.element, this.newElement); + this.newElement.parentNode.removeChild(this.newElement); + } + + if (this.bsContainer) { + if (this.bsContainer.parentNode) this.bsContainer.parentNode.removeChild(this.bsContainer); + } else if (this.menu && this.menu.parentNode) { + this.menu.parentNode.removeChild(this.menu); + } + + if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode) { + this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption); + } + + // remove all tracked event listeners + for (var i = 0; i < this._listeners.length; i++) { + var l = this._listeners[i]; + l.el.removeEventListener(l.type, l.handler, l.options); + } + this._listeners = []; + + for (var key in this._named) { + if (Object.prototype.hasOwnProperty.call(this._named, key)) { + this._removeNamed(key); + } + } + + if (this.dropdown && typeof this.dropdown.dispose === 'function') { + this.dropdown.dispose(); + } + + this.element.classList.remove('bs-select-hidden', 'selectpicker', 'mobile-device'); + + instanceMap.delete(this.element); + } +} + +// stores element -> Selectpicker instance +var instanceMap = new WeakMap(); + +Selectpicker.NAME = 'selectpicker'; +Selectpicker.VERSION = '1.1.0'; + +// user-provided global defaults (set via Selectpicker.setDefaults, used by i18n files) +Selectpicker.defaults = null; + +// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both. +Selectpicker.DEFAULTS = { + noneSelectedText: 'Nothing selected', + noneResultsText: 'No results matched {0}', + countSelectedText: function (numSelected) { + return (numSelected == 1) ? '{0} item selected' : '{0} items selected'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', + (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' + ]; + }, + selectAllText: 'Select All', + deselectAllText: 'Deselect All', + source: { + pageSize: 40, + create: null + }, + chunkSize: 40, + doneButton: false, + doneButtonText: 'Close', + multipleSeparator: ', ', + style: classNames.BUTTONCLASS, + size: 'auto', + placeholder: null, + allowClear: false, + selectedTextFormat: 'values', + hideDisabled: false, + showSubtext: false, + showIcon: true, + showContent: true, + dropupAuto: true, + header: false, + liveSearch: false, + liveSearchPlaceholder: null, + liveSearchNormalize: false, + liveSearchStyle: 'contains', + openOptions: false, + openOptionsText: 'Create "{0}"', + selectionIndicator: 'checkmark', + actionsBox: false, + iconBase: classNames.ICONBASE, + tickIcon: classNames.TICKICON, + showTick: false, + showSelectedTags: false, + selectedItemsStyle: 'tags', + selectedTagRemoveLabel: 'Remove', + template: { + caret: '' + }, + maxOptions: false, + selectOnTab: true, + dropdownAlignRight: false, + virtualScroll: 600, + sanitize: true, + sanitizeFn: null, + whiteList: DefaultWhitelist +}; + +Selectpicker._buildConfig = function (element, options) { + options = stripRemovedOptions(options || {}); + + var dataAttributes = stripRemovedOptions(getDataset(element)); + + for (var dataAttr in dataAttributes) { + if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { + delete dataAttributes[dataAttr]; + } + } + + var userDefaults = stripRemovedOptions(Selectpicker.defaults || {}); + + var config = Object.assign({}, Selectpicker.DEFAULTS, userDefaults, getAttributesObject(element), dataAttributes, options); + config.template = Object.assign({}, Selectpicker.DEFAULTS.template, userDefaults.template || {}, dataAttributes.template, options.template); + config.source = Object.assign({}, Selectpicker.DEFAULTS.source, userDefaults.source || {}, options.source); + + return config; +}; + +Selectpicker.setDefaults = function (newDefaults) { + Selectpicker.defaults = stripRemovedOptions(Object.assign({}, Selectpicker.defaults, newDefaults)); +}; + +Selectpicker.getInstance = function (element) { + if (typeof element === 'string') element = document.querySelector(element); + return instanceMap.get(element) || null; +}; + +Selectpicker.getOrCreateInstance = function (element, options) { + if (typeof element === 'string') element = document.querySelector(element); + if (!element || element.tagName !== 'SELECT') return null; + + var instance = instanceMap.get(element); + + if (instance) { + options = stripRemovedOptions(options); + + if (options && typeof options === 'object') { + for (var i in options) { + if (Object.prototype.hasOwnProperty.call(options, i)) { + instance.options[i] = options[i]; + } + } + } + + return instance; + } + + return new Selectpicker(element, typeof options === 'object' ? options : {}); +}; + +// +var KEYDOWN_SELECTOR = '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input'; + +// Handle keyboard navigation ourselves. This listener runs in the capture +// phase on `window` so it executes before Bootstrap's `document`-level +// (capture-phase, delegated) dropdown keydown handler and prevents it from +// processing bootstrap-select's custom menu (which would otherwise error on +// relocated/container menus and conflict with our own navigation). This +// replaces the upstream approach of unbinding Bootstrap's global handler. +window.addEventListener('keydown', function (e) { + var target = e.target; + if (!target || !target.closest) return; + + // Any keydown originating inside a bootstrap-select widget (or its relocated + // menu container) must not reach Bootstrap's dropdown keydown handler. + var widget = target.closest('.bootstrap-select, .bs-container'); + if (!widget) return; + + e.stopImmediatePropagation(); + + var trigger = target.closest(KEYDOWN_SELECTOR); + if (!trigger) return; + + var instance; + for (var node = trigger; node; node = node.parentElement) { + if (node.bootstrapSelectInstance) { + instance = node.bootstrapSelectInstance; + break; + } + } + + if (instance) instance._keydown(e, trigger); +}, true); + +document.addEventListener('focusin', function (e) { + var target = e.target; + if (target && target.closest && target.closest(KEYDOWN_SELECTOR)) { + e.stopPropagation(); + } +}); + +function initAll () { + var selects = document.querySelectorAll('.selectpicker'); + Array.prototype.forEach.call(selects, function (select) { + Selectpicker.getOrCreateInstance(select); + }); +} + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initAll); +} else { + initAll(); +} +// + +if (typeof window !== 'undefined') { + window.Selectpicker = Selectpicker; +} + +return Selectpicker; + +}(Bootstrap)); + +export default Selectpicker; +export { Selectpicker }; + +//# sourceMappingURL=bootstrap-select.esm.mjs.map \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.esm.mjs.map b/docs/dist/js/bootstrap-select.esm.mjs.map new file mode 100644 index 0000000..662357c --- /dev/null +++ b/docs/dist/js/bootstrap-select.esm.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/bootstrap-select.js"],"names":[],"mappings":"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EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACzC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5F,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5F,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE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,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;AACrC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACnB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAA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","file":"bootstrap-select.esm.mjs","sourcesContent":["'use strict';\n\n// Resolve Bootstrap's Dropdown component (Bootstrap 5+). It may be provided\n// by the UMD factory (`bootstrap`), or available as a global.\nfunction getDropdown () {\n var bs = bootstrap || (typeof window !== 'undefined' ? window.bootstrap : undefined);\n return (bs && bs.Dropdown) || (typeof window !== 'undefined' ? window.Dropdown : undefined);\n}\n\n// \nfunction createFromHTML (html) {\n var wrapper = document.createElement('div');\n wrapper.innerHTML = html.trim();\n return wrapper.firstChild;\n}\n\nfunction toInteger (value) {\n return parseInt(value, 10) || 0;\n}\n\nfunction offset (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n}\n\n// Resolves a container option (selector string or element) to an element.\nfunction resolveContainer (container) {\n if (!container) return null;\n return typeof container === 'string' ? document.querySelector(container) : container;\n}\n\nfunction outerHeight (el, includeMargin) {\n var height = el.offsetHeight;\n if (includeMargin) {\n var style = window.getComputedStyle(el);\n height += toInteger(style.marginTop) + toInteger(style.marginBottom);\n }\n return height;\n}\n\nfunction setStyles (el, styles) {\n for (var prop in styles) {\n if (Object.prototype.hasOwnProperty.call(styles, prop)) {\n el.style[prop] = styles[prop];\n }\n }\n}\n\nfunction triggerNative (el, eventName) {\n el.dispatchEvent(new Event(eventName, { bubbles: true }));\n}\n\n// shallow array comparison\nfunction isEqual (array1, array2) {\n return array1.length === array2.length && array1.every(function (element, index) {\n return element === array2[index];\n });\n}\n\nfunction toKebabCase (str) {\n return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, function ($, ofs) {\n return (ofs ? '-' : '') + $.toLowerCase();\n });\n}\n\nfunction toCamelCase (str) {\n return str.replace(/-([a-z])/g, function (m, letter) {\n return letter.toUpperCase();\n });\n}\n\n// Read options from data-* attributes using native values where possible.\nfunction convertDataValue (value) {\n if (value === 'true') return true;\n if (value === 'false') return false;\n if (value === 'null') return null;\n if (value === +value + '') return +value;\n if (/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/.test(value)) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return value;\n}\n\nfunction getDataset (el) {\n var dataset = {},\n attributes = el.attributes;\n\n for (var i = 0; i < attributes.length; i++) {\n var name = attributes[i].name;\n if (name.indexOf('data-') === 0) {\n dataset[toCamelCase(name.slice(5))] = convertDataValue(attributes[i].value);\n }\n }\n\n return dataset;\n}\n// \n\n// \nvar DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n\nvar uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n];\n\nvar ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n\nvar DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n\n// A pattern that recognizes a commonly useful subset of URLs that are safe.\nvar SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n\n// A pattern that matches safe data URLs. Only matches image, video and audio types.\nvar DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\nvar ParseableAttributes = ['placeholder']; // attributes to use as settings, can add others in the future\n\nfunction allowedAttribute (attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (value) {\n return value instanceof RegExp;\n });\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction sanitizeHtml (unsafeElements, whiteList, sanitizeFn) {\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeElements);\n }\n\n var whitelistKeys = Object.keys(whiteList);\n\n for (var i = 0, len = unsafeElements.length; i < len; i++) {\n var elements = unsafeElements[i].querySelectorAll('*');\n\n for (var j = 0, len2 = elements.length; j < len2; j++) {\n var el = elements[j];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el);\n\n continue;\n }\n\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n\n for (var k = 0, len3 = attributeList.length; k < len3; k++) {\n var attr = attributeList[k];\n\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n }\n }\n }\n}\n// \n\nfunction getAttributesObject (element) {\n var attributesObject = {},\n attrVal;\n\n ParseableAttributes.forEach(function (item) {\n attrVal = element.getAttribute(item);\n if (attrVal) attributesObject[item] = attrVal;\n });\n\n return attributesObject;\n}\n\n// \nfunction stringSearch (li, searchString, method, normalize) {\n var stringTypes = [\n 'display',\n 'subtext',\n 'tokens'\n ],\n searchSuccess = false;\n\n for (var i = 0; i < stringTypes.length; i++) {\n var stringType = stringTypes[i],\n string = li[stringType];\n\n if (string) {\n string = string.toString();\n\n // Strip HTML tags. This isn't perfect, but it's much faster than any other method\n if (stringType === 'display') {\n string = string.replace(/<[^>]+>/g, '');\n }\n\n if (normalize) string = normalizeToBase(string);\n string = string.toUpperCase();\n\n if (typeof method === 'function') {\n searchSuccess = method(string, searchString);\n } else if (method === 'contains') {\n searchSuccess = string.indexOf(searchString) >= 0;\n } else {\n searchSuccess = string.startsWith(searchString);\n }\n\n if (searchSuccess) break;\n }\n }\n\n return searchSuccess;\n}\n\nfunction normalizeSearchInput (value, normalize) {\n if (value === undefined || value === null) value = '';\n value = value.toString().trim();\n\n if (normalize && value) value = normalizeToBase(value);\n\n return value.toUpperCase();\n}\n\nfunction getOptionLabelText (option) {\n if (!option) return '';\n\n return option.title || option.text || option.value || '';\n}\n\n// Borrowed from Lodash (_.deburr)\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboMarksExtendedRange = '\\\\u1ab0-\\\\u1aff',\n rsComboMarksSupplementRange = '\\\\u1dc0-\\\\u1dff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\nvar reComboMark = RegExp(rsCombo, 'g');\n\nfunction deburrLetter (key) {\n return deburredLetters[key];\n}\n\nfunction normalizeToBase (string) {\n string = string.toString();\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n// List of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\nvar createEscaper = function (map) {\n var escaper = function (match) {\n return map[match];\n };\n var source = '(?:' + Object.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function (string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n};\n\nvar htmlEscape = createEscaper(escapeMap);\n// \n\n// \nvar keyCodeMap = {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6',\n 55: '7', 56: '8', 57: '9', 59: ';',\n 65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 72: 'H',\n 73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P',\n 81: 'Q', 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X',\n 89: 'Y', 90: 'Z',\n 96: '0', 97: '1', 98: '2', 99: '3', 100: '4', 101: '5', 102: '6',\n 103: '7', 104: '8', 105: '9'\n};\n\nvar keyCodes = {\n ESCAPE: 27,\n ENTER: 13,\n SPACE: 32,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};\n\nvar selectId = 0;\n\nvar EVENT_KEY = '.bs.select';\n\n// Bootstrap 5 class names.\nvar classNames = {\n DISABLED: 'disabled',\n DIVIDER: 'dropdown-divider',\n SHOW: 'show',\n DROPUP: 'dropup',\n MENU: 'dropdown-menu',\n MENUEND: 'dropdown-menu-end',\n BUTTONCLASS: 'btn-light',\n POPOVERHEADER: 'popover-header',\n ICONBASE: '',\n TICKICON: 'bs-ok-default'\n};\n\nvar Selector = {\n MENU: '.' + classNames.MENU,\n DATA_TOGGLE: 'data-bs-toggle=\"dropdown\"'\n};\n\nvar elementTemplates = {\n div: document.createElement('div'),\n span: document.createElement('span'),\n i: document.createElement('i'),\n subtext: document.createElement('small'),\n a: document.createElement('a'),\n li: document.createElement('li'),\n whitespace: document.createTextNode('\\u00A0'),\n fragment: document.createDocumentFragment(),\n option: document.createElement('option')\n};\n\nelementTemplates.selectedOption = elementTemplates.option.cloneNode(false);\nelementTemplates.selectedOption.setAttribute('selected', true);\n\nelementTemplates.noResults = elementTemplates.li.cloneNode(false);\nelementTemplates.noResults.className = 'no-results';\n\nelementTemplates.a.setAttribute('role', 'option');\nelementTemplates.a.className = 'dropdown-item';\n\nelementTemplates.subtext.className = 'text-muted';\n\nelementTemplates.text = elementTemplates.span.cloneNode(false);\nelementTemplates.text.className = 'text';\n\nelementTemplates.checkMark = elementTemplates.span.cloneNode(false);\n\nvar REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);\nvar REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);\n\nvar generateOption = {\n li: function (content, classes, optgroup) {\n var li = elementTemplates.li.cloneNode(false);\n\n if (content) {\n if (content.nodeType === 1 || content.nodeType === 11) {\n li.appendChild(content);\n } else {\n li.innerHTML = content;\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') li.className = classes;\n if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);\n\n return li;\n },\n\n a: function (text, classes, inline) {\n var a = elementTemplates.a.cloneNode(true);\n\n if (text) {\n if (text.nodeType === 11) {\n a.appendChild(text);\n } else {\n a.insertAdjacentHTML('beforeend', text);\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\\s+/));\n if (inline) a.setAttribute('style', inline);\n\n return a;\n },\n\n text: function (options, useFragment) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n\n if (options.content) {\n textElement.innerHTML = options.content;\n } else {\n textElement.textContent = options.text;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false);\n\n // need to use for icons in the button to prevent a breaking change\n iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n }\n\n if (useFragment === true) {\n while (textElement.childNodes.length > 0) {\n elementTemplates.fragment.appendChild(textElement.childNodes[0]);\n }\n } else {\n elementTemplates.fragment.appendChild(textElement);\n }\n\n return elementTemplates.fragment;\n },\n\n label: function (options) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n\n textElement.innerHTML = options.display;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false);\n\n iconElement = elementTemplates.span.cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n\n elementTemplates.fragment.appendChild(textElement);\n\n return elementTemplates.fragment;\n }\n};\n\nvar getOptionData = {\n fromOption: function (option, type) {\n var value;\n\n switch (type) {\n case 'divider':\n value = option.getAttribute('data-divider') === 'true';\n break;\n\n case 'text':\n value = option.textContent;\n break;\n\n case 'label':\n value = option.label;\n break;\n\n case 'style':\n value = option.style.cssText;\n break;\n\n case 'title':\n value = option.title;\n break;\n\n default:\n value = option.getAttribute('data-' + toKebabCase(type));\n break;\n }\n\n return value;\n },\n fromDataSource: function (option, type) {\n var value;\n\n switch (type) {\n case 'text':\n case 'label':\n value = option.text || option.value || '';\n break;\n\n default:\n value = option[type];\n break;\n }\n\n return value;\n }\n};\n\nfunction showNoResults (searchMatch, searchValue) {\n if (!searchMatch.length) {\n elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '\"' + htmlEscape(searchValue) + '\"');\n this.menuInner.firstChild.appendChild(elementTemplates.noResults);\n }\n}\n\nfunction filterHidden (item) {\n return !(item.hidden || this.options.hideDisabled && item.disabled);\n}\n\nfunction getSelectedOptions () {\n var options = this.selectpicker.main.data;\n\n if (this.options.source.data || this.options.source.search) {\n options = Object.values(this.selectpicker.optionValuesDataMap);\n }\n\n var selectedOptions = options.filter(function (item) {\n if (item.selected) {\n if (this.options.hideDisabled && item.disabled) return false;\n return true;\n }\n\n return false;\n }, this);\n\n // ensure only 1 option is selected if multiple are set in the data source\n if (this.options.source.data && !this.multiple && selectedOptions.length > 1) {\n for (var i = 0; i < selectedOptions.length - 1; i++) {\n selectedOptions[i].selected = false;\n }\n\n selectedOptions = [ selectedOptions[selectedOptions.length - 1] ];\n }\n\n return selectedOptions;\n}\n\nfunction getSelectValues (selectedOptions) {\n var value = [],\n options = selectedOptions || getSelectedOptions.call(this),\n opt;\n\n for (var i = 0, len = options.length; i < len; i++) {\n opt = options[i];\n\n if (!opt.disabled) {\n value.push(opt.value === undefined ? opt.text : opt.value);\n }\n }\n\n if (!this.multiple) {\n return !value.length ? null : value[0];\n }\n\n return value;\n}\n// \n\nvar changedArguments = null;\n\n// shared flag for spacebar selection handling (mirrors original document data flag)\nvar spaceSelectFlag = false;\n\nvar REMOVED_OPTIONS = ['container', 'display', 'mobile', 'styleBase', 'width', 'windowPadding'];\n\nfunction stripRemovedOptions (source) {\n if (!source || typeof source !== 'object') return source;\n\n var result = Object.assign({}, source);\n\n for (var i = 0; i < REMOVED_OPTIONS.length; i++) {\n delete result[REMOVED_OPTIONS[i]];\n }\n\n return result;\n}\n\nclass Selectpicker {\n constructor (element, options) {\n if (typeof element === 'string') {\n element = document.querySelector(element);\n }\n\n if (!element || element.tagName !== 'SELECT') {\n throw new TypeError('Selectpicker requires a select element or selector.');\n }\n\n this.element = element;\n this.newElement = null;\n this.button = null;\n this.menu = null;\n this.options = Selectpicker._buildConfig(element, options || {});\n\n // tracked event listeners for clean teardown\n this._listeners = [];\n this._named = {};\n\n this.selectpicker = {\n main: {\n data: [],\n optionQueue: elementTemplates.fragment.cloneNode(false),\n hasMore: false\n },\n search: {\n data: [],\n hasMore: false\n },\n current: {}, // current is either equal to main or search depending on if a search is in progress\n view: {},\n // map of option values and their respective data (only used in conjunction with options.source)\n optionValuesDataMap: {},\n createdOptions: [],\n openOption: {\n isCreating: false\n },\n isSearching: false,\n keydown: {\n keyHistory: '',\n resetKeyHistory: {\n start: () => {\n return setTimeout(() => {\n this.selectpicker.keydown.keyHistory = '';\n }, 800);\n }\n }\n }\n };\n\n this.sizeInfo = {};\n\n this.init();\n\n instanceMap.set(element, this);\n }\n\n // \n _on (el, type, handler, options) {\n el.addEventListener(type, handler, options);\n this._listeners.push({ el: el, type: type, handler: handler, options: options });\n return handler;\n }\n\n _delegate (el, type, selector, handler, options) {\n var listener = function (e) {\n var target = e.target.closest(selector);\n if (target && el.contains(target)) {\n handler.call(target, e);\n }\n };\n return this._on(el, type, listener, options);\n }\n\n _emit (name, detail) {\n var event = new CustomEvent(name + EVENT_KEY, {\n bubbles: true,\n cancelable: true,\n detail: detail || null\n });\n this.element.dispatchEvent(event);\n return event;\n }\n\n // adds an event listener that replaces any previously-registered listener under `key`\n _replace (key, el, type, handler, options) {\n this._removeNamed(key);\n el.addEventListener(type, handler, options);\n this._named[key] = { el: el, type: type, handler: handler, options: options };\n }\n\n _removeNamed (key) {\n var prev = this._named[key];\n if (prev) {\n prev.el.removeEventListener(prev.type, prev.handler, prev.options);\n delete this._named[key];\n }\n }\n // \n\n init () {\n var that = this,\n id = this.element.getAttribute('id'),\n element = this.element,\n form = element.form;\n\n selectId++;\n this.selectId = 'bs-select-' + selectId;\n\n element.classList.add('bs-select-hidden');\n\n this.multiple = this.element.multiple;\n this.autofocus = this.element.autofocus;\n\n if (element.classList.contains('show-tick')) {\n this.options.showTick = true;\n }\n\n this.newElement = this.createDropdown();\n\n // insert newElement after element, then move element to be the first child of newElement\n element.parentNode.insertBefore(this.newElement, element.nextSibling);\n this.newElement.insertBefore(element, this.newElement.firstChild);\n\n // ensure select is associated with form element if it got unlinked after moving it inside newElement\n if (form && element.form === null) {\n if (!form.id) form.id = 'form-' + this.selectId;\n element.setAttribute('form', form.id);\n }\n\n this.button = this.newElement.querySelector(':scope > button');\n if (this.options.allowClear) this.clearButton = this.button.querySelector('.bs-select-clear-selected');\n this.menu = this.newElement.querySelector(':scope > ' + Selector.MENU);\n this.menuInner = this.menu.querySelector('.inner');\n this.searchbox = this.menu.querySelector('input');\n this.selectedItems = this.newElement.querySelector(':scope > .bs-selected-items-external') || this.menu.querySelector('.bs-selected-items');\n this.createOptionButton = this.menu.querySelector('.bs-create-option');\n\n element.classList.remove('bs-select-hidden');\n\n this.fetchData(function () {\n that.render(true);\n that.buildList();\n\n requestAnimationFrame(function () {\n that._emit('loaded');\n });\n });\n\n if (this.options.dropdownAlignRight === true) this.menu.classList.add(classNames.MENUEND);\n\n if (typeof id !== 'undefined' && id !== null) {\n this.button.setAttribute('data-id', id);\n }\n\n this.checkDisabled();\n this.clickListener();\n\n var Dropdown = getDropdown();\n this.dropdown = new Dropdown(this.button);\n\n // store a reference to the instance for delegated handlers\n this.newElement.bootstrapSelectInstance = this;\n this.menu.bootstrapSelectInstance = this;\n\n if (this.options.liveSearch) {\n this.liveSearchListener();\n this.focusedParent = this.searchbox;\n } else {\n this.focusedParent = this.menuInner;\n }\n\n this.setStyle();\n this.setWidth();\n this._on(this.element, 'hide' + EVENT_KEY, function () {\n if (that.isVirtual()) {\n // empty menu on close\n var menuInner = that.menuInner,\n emptyMenu = menuInner.firstChild.cloneNode(false);\n\n // replace the existing UL with an empty one - this is faster than emptying it\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n menuInner.scrollTop = 0;\n }\n });\n\n // re-emit Bootstrap dropdown events as bootstrap-select events\n this._on(this.newElement, 'hide.bs.dropdown', function (e) {\n that._emit('hide', { bsEvent: e });\n });\n this._on(this.newElement, 'hidden.bs.dropdown', function (e) {\n that._emit('hidden', { bsEvent: e });\n });\n this._on(this.newElement, 'show.bs.dropdown', function (e) {\n that.onShow(e);\n that._emit('show', { bsEvent: e });\n });\n this._on(this.newElement, 'shown.bs.dropdown', function (e) {\n that._emit('shown', { bsEvent: e });\n });\n\n if (element.hasAttribute('required')) {\n this._on(this.element, 'invalid', function () {\n that.button.classList.add('bs-invalid');\n\n var onShownInvalid = function () {\n // set the value to hide the validation message in Chrome when menu is opened\n triggerNative(that.element, 'change');\n that.element.removeEventListener('shown' + EVENT_KEY, onShownInvalid);\n };\n that._on(that.element, 'shown' + EVENT_KEY, onShownInvalid);\n\n var onRendered = function () {\n // if select is no longer invalid, remove the bs-invalid class\n if (that.element.validity.valid) that.button.classList.remove('bs-invalid');\n that.element.removeEventListener('rendered' + EVENT_KEY, onRendered);\n };\n that._on(that.element, 'rendered' + EVENT_KEY, onRendered);\n\n var onBlur = function () {\n that.element.focus();\n that.element.blur();\n that.button.removeEventListener('blur' + EVENT_KEY, onBlur);\n };\n that._on(that.button, 'blur' + EVENT_KEY, onBlur);\n });\n }\n\n if (form) {\n this._on(form, 'reset', function () {\n requestAnimationFrame(function () {\n that.render();\n });\n });\n }\n }\n\n createDropdown () {\n // If we are multiple or showTick option is set, then add the show-tick class\n var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',\n showSelectedTags = this.options.showSelectedTags ? ' show-selected-tags' : '',\n selectedItemsStyle = this.options.selectedItemsStyle === 'list' ? ' selected-items-style-list' : '',\n selectionIndicator = this.options.selectionIndicator === 'checkbox' ? ' selection-indicator-checkbox' : '',\n multiselectable = this.multiple ? ' aria-multiselectable=\"true\"' : '',\n autofocus = this.autofocus ? ' autofocus' : '',\n liveSearchPlaceholder = this.options.liveSearchPlaceholder;\n\n if (liveSearchPlaceholder === null && (this.options.showSelectedTags || this.options.openOptions)) {\n liveSearchPlaceholder = this.options.placeholder || 'Search';\n }\n\n // Elements\n var drop,\n header = '',\n searchbox = '',\n actionsbox = '',\n donebutton = '',\n clearButton = '';\n\n if (this.options.header) {\n header =\n '
    ' +\n '' +\n this.options.header +\n '
    ';\n }\n\n if (this.options.liveSearch) {\n searchbox =\n '
    ' +\n '' +\n (this.options.openOptions\n ? ''\n : '') +\n '
    ';\n }\n\n if (this.multiple && this.options.actionsBox) {\n actionsbox =\n '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ';\n }\n\n if (this.multiple && this.options.doneButton) {\n donebutton =\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ';\n }\n\n if (this.options.allowClear) {\n clearButton = '×';\n }\n\n drop =\n '
    ' +\n '' +\n '
    ' +\n header +\n searchbox +\n actionsbox +\n '
    ' +\n '
      ' +\n '
    ' +\n '
    ' +\n donebutton +\n '
    ' +\n (this.multiple && this.options.showSelectedTags\n ? ''\n : '') +\n '
    ';\n\n return createFromHTML(drop);\n }\n\n // runs when the dropdown is about to be shown\n onShow () {\n if (this.options.liveSearch && this.searchbox.value) {\n this.searchbox.value = '';\n this.selectpicker.search.previousValue = undefined;\n }\n\n if (!this.newElement.classList.contains(classNames.SHOW)) {\n this.setSize();\n }\n }\n\n setPositionData () {\n this.selectpicker.view.canHighlight = [];\n this.selectpicker.view.size = 0;\n this.selectpicker.view.firstHighlightIndex = false;\n\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var li = this.selectpicker.current.data[i],\n canHighlight = true;\n\n if (li.type === 'divider') {\n canHighlight = false;\n li.height = this.sizeInfo.dividerHeight;\n } else if (li.type === 'optgroup-label') {\n canHighlight = false;\n li.height = this.sizeInfo.dropdownHeaderHeight;\n } else {\n li.height = this.sizeInfo.liHeight;\n }\n\n if (li.disabled) canHighlight = false;\n\n this.selectpicker.view.canHighlight.push(canHighlight);\n\n if (canHighlight) {\n this.selectpicker.view.size++;\n li.posinset = this.selectpicker.view.size;\n if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i;\n }\n\n li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height;\n }\n }\n\n isVirtual () {\n return (this.options.virtualScroll !== false) && (this.selectpicker.main.data.length >= this.options.virtualScroll) || this.options.virtualScroll === true;\n }\n\n createView (isSearching, setSize, refresh) {\n var that = this,\n scrollTop = 0;\n\n this.selectpicker.isSearching = isSearching;\n this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main;\n\n this.setPositionData();\n\n if (setSize) {\n if (refresh) {\n scrollTop = this.menuInner.scrollTop;\n } else if (!that.multiple) {\n var element = that.element,\n selectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof selectedIndex === 'number' && that.options.size !== false) {\n var selectedData = that.selectpicker.main.data[selectedIndex],\n position = selectedData && selectedData.position;\n\n if (position) {\n scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2);\n }\n }\n }\n }\n\n scroll(scrollTop, true);\n\n this._replace('createViewScroll', this.menuInner, 'scroll', function () {\n if (!that.noScroll) scroll(that.menuInner.scrollTop);\n that.noScroll = false;\n });\n\n function scroll (scrollTop, init) {\n var size = that.selectpicker.current.data.length,\n chunks = [],\n chunkSize,\n chunkCount,\n firstChunk,\n lastChunk,\n currentChunk,\n prevPositions,\n positionIsDifferent,\n previousElements,\n menuIsDifferent = true,\n isVirtual = that.isVirtual();\n\n that.selectpicker.view.scrollTop = scrollTop;\n\n chunkSize = that.options.chunkSize; // number of options in a chunk\n chunkCount = Math.ceil(size / chunkSize) || 1; // number of chunks\n\n for (var i = 0; i < chunkCount; i++) {\n var endOfChunk = (i + 1) * chunkSize;\n\n if (i === chunkCount - 1) {\n endOfChunk = size;\n }\n\n chunks[i] = [\n (i) * chunkSize + (!i ? 0 : 1),\n endOfChunk\n ];\n\n if (!size) break;\n\n if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) {\n currentChunk = i;\n }\n }\n\n if (currentChunk === undefined) currentChunk = 0;\n\n prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1];\n\n // always display previous, current, and next chunks\n firstChunk = Math.max(0, currentChunk - 1);\n lastChunk = Math.min(chunkCount - 1, currentChunk + 1);\n\n that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0);\n that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0);\n\n positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;\n\n if (that.activeElement !== undefined) {\n if (init) {\n if (that.activeElement !== that.selectedElement) {\n that.defocusItem(that.activeElement);\n }\n that.activeElement = undefined;\n }\n\n if (that.activeElement !== that.selectedElement) {\n that.defocusItem(that.selectedElement);\n }\n }\n\n if (that.prevActiveElement !== undefined && that.prevActiveElement !== that.activeElement && that.prevActiveElement !== that.selectedElement) {\n that.defocusItem(that.prevActiveElement);\n }\n\n if (init || positionIsDifferent || that.selectpicker.current.hasMore) {\n previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : [];\n\n if (isVirtual === false) {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements;\n } else {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1);\n }\n\n that.setOptionStatus();\n\n // if searching, check to make sure the list has actually been updated before updating DOM\n // this prevents unnecessary repaints\n if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements);\n\n // if virtual scroll is disabled and not searching,\n // menu should never need to be updated more than once\n if ((init || isVirtual === true) && menuIsDifferent) {\n var menuInner = that.menuInner,\n menuFragment = document.createDocumentFragment(),\n emptyMenu = menuInner.firstChild.cloneNode(false),\n marginTop,\n marginBottom,\n elements = that.selectpicker.view.visibleElements,\n toSanitize = [];\n\n // replace the existing UL with an empty one - this is faster than emptying it\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n\n for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) {\n var element = elements[i],\n elText,\n elementData;\n\n if (that.options.sanitize) {\n elText = element.lastChild;\n\n if (elText) {\n elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];\n\n if (elementData && elementData.content && !elementData.sanitized) {\n toSanitize.push(elText);\n elementData.sanitized = true;\n }\n }\n }\n\n menuFragment.appendChild(element);\n }\n\n if (that.options.sanitize && toSanitize.length) {\n sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn);\n }\n\n if (isVirtual === true) {\n marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position);\n marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position);\n\n menuInner.firstChild.style.marginTop = marginTop + 'px';\n menuInner.firstChild.style.marginBottom = marginBottom + 'px';\n } else {\n menuInner.firstChild.style.marginTop = 0;\n menuInner.firstChild.style.marginBottom = 0;\n }\n\n menuInner.firstChild.appendChild(menuFragment);\n\n // if an option is encountered that is wider than the current menu width, update the menu width accordingly\n if (isVirtual === true && that.sizeInfo.hasScrollBar) {\n var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;\n\n if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) {\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) {\n // set to 0 to get actual width of menu\n that.menu.style.minWidth = 0;\n\n var actualMenuWidth = menuInner.firstChild.offsetWidth;\n\n if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) {\n that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n }\n\n // reset to default CSS styling\n that.menu.style.minWidth = '';\n }\n }\n }\n\n if ((!isSearching && that.options.source.data || isSearching && that.options.source.search) && that.selectpicker.current.hasMore && currentChunk === chunkCount - 1) {\n // Don't load the next chunk until scrolling has started\n // This prevents unnecessary requests while the user is typing if pageSize is <= chunkSize\n if (scrollTop > 0) {\n // Chunks use 0-based indexing, but pages use 1-based. Add 1 to convert and add 1 again to get next page\n var page = Math.floor((currentChunk * that.options.chunkSize) / that.options.source.pageSize) + 2;\n\n that.fetchData(function () {\n that.render();\n that.buildList(size, isSearching);\n that.setPositionData();\n scroll(scrollTop);\n }, isSearching ? 'search' : 'data', page, isSearching ? that.selectpicker.search.previousValue : undefined);\n }\n }\n }\n\n that.prevActiveElement = that.activeElement;\n\n if (!that.options.liveSearch) {\n that.menuInner.focus();\n } else if (isSearching && init) {\n var index = 0,\n newActive;\n\n if (!that.selectpicker.view.canHighlight[index]) {\n index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);\n }\n\n newActive = that.selectpicker.view.visibleElements[index];\n\n that.defocusItem(that.selectpicker.view.currentActive);\n\n that.activeElement = (that.selectpicker.current.data[index] || {}).element;\n\n that.focusItem(newActive);\n }\n }\n\n this._replace('createViewResize', window, 'resize', function () {\n var isActive = that.newElement.classList.contains(classNames.SHOW);\n\n if (isActive) scroll(that.menuInner.scrollTop);\n });\n }\n\n focusItem (li, liData, noStyle) {\n if (li) {\n liData = liData || this.selectpicker.current.data[this.selectpicker.current.elements.indexOf(this.activeElement)];\n var a = li.firstChild;\n\n if (a) {\n a.setAttribute('aria-setsize', this.selectpicker.view.size);\n a.setAttribute('aria-posinset', liData.posinset);\n\n if (noStyle !== true) {\n this.focusedParent.setAttribute('aria-activedescendant', a.id);\n li.classList.add('active');\n a.classList.add('active');\n }\n }\n }\n }\n\n defocusItem (li) {\n if (li) {\n li.classList.remove('active');\n if (li.firstChild) li.firstChild.classList.remove('active');\n }\n }\n\n setPlaceholder () {\n var that = this,\n updateIndex = false;\n\n if ((this.options.placeholder || this.options.allowClear) && !this.multiple) {\n if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option');\n\n // this option doesn't create a new
  • element, but does add a new option at the start,\n // so startIndex should increase to prevent having to check every option for the bs-title-option class\n updateIndex = true;\n\n var element = this.element,\n selectTitleOption = false,\n titleNotAppended = !this.selectpicker.view.titleOption.parentNode,\n selectedIndex = element.selectedIndex,\n selectedOption = element.options[selectedIndex],\n firstSelectable = element.querySelector('select > *:not(:disabled)'),\n firstSelectableIndex = firstSelectable ? firstSelectable.index : 0,\n navigation = window.performance && window.performance.getEntriesByType('navigation'),\n // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation\n isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' : window.performance.navigation.type !== 2;\n\n if (titleNotAppended) {\n // Use native JS to prepend option (faster)\n this.selectpicker.view.titleOption.className = 'bs-title-option';\n this.selectpicker.view.titleOption.value = '';\n\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n selectTitleOption = !selectedOption || (selectedIndex === firstSelectableIndex && selectedOption.defaultSelected === false);\n }\n\n if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) {\n element.insertBefore(this.selectpicker.view.titleOption, element.firstChild);\n }\n\n // Set selected *after* appending to select\n if (selectTitleOption && isNotBackForward) {\n element.selectedIndex = 0;\n } else if (document.readyState !== 'complete') {\n // if navigation type is back_forward, there's a chance the select will have its value set by BFCache\n // wait for that value to be set, then run render again\n window.addEventListener('pageshow', function () {\n if (that.selectpicker.view.displayedValue !== element.value) that.render();\n });\n }\n }\n\n return updateIndex;\n }\n\n fetchData (callback, type, page, searchValue) {\n page = page || 1;\n type = type || 'data';\n\n var that = this,\n data = this.options.source[type],\n builtData;\n\n if (data) {\n this.options.virtualScroll = true;\n\n if (typeof data === 'function') {\n data.call(\n this,\n function (data, more, totalItems) {\n var current = that.selectpicker[type === 'search' ? 'search' : 'main'];\n current.hasMore = more;\n current.totalItems = totalItems;\n builtData = that.buildData(data, type);\n callback.call(that, builtData);\n that._emit('fetched');\n },\n page,\n searchValue\n );\n } else if (Array.isArray(data)) {\n builtData = that.buildData(data, type);\n callback.call(that, builtData);\n }\n } else {\n builtData = this.buildData(false, type);\n callback.call(that, builtData);\n }\n }\n\n buildData (data, type) {\n var that = this;\n var dataGetter = data === false ? getOptionData.fromOption : getOptionData.fromDataSource;\n\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([style*=\"display: none\"])',\n mainData = [],\n startLen = this.selectpicker.main.data ? this.selectpicker.main.data.length : 0,\n optID = 0,\n startIndex = this.setPlaceholder() && !data ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop\n\n if (type === 'search') {\n startLen = this.selectpicker.search.data.length;\n }\n\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\n\n var selectOptions = data ? data.filter(filterHidden, this) : this.element.querySelectorAll('select > *' + optionSelector);\n\n function addDivider (config) {\n var previousData = mainData[mainData.length - 1];\n\n // ensure optgroup doesn't create back-to-back dividers\n if (\n previousData &&\n previousData.type === 'divider' &&\n (previousData.optID || config.optID)\n ) {\n return;\n }\n\n config = config || {};\n config.type = 'divider';\n\n mainData.push(config);\n }\n\n function addOption (item, config) {\n config = config || {};\n\n config.divider = dataGetter(item, 'divider');\n\n if (config.divider === true) {\n addDivider({\n optID: config.optID\n });\n } else {\n var liIndex = mainData.length + startLen,\n cssText = dataGetter(item, 'style'),\n inlineStyle = cssText ? htmlEscape(cssText) : '',\n optionClass = (item.className || '') + (config.optgroupClass || '');\n\n if (config.optID) optionClass = 'opt ' + optionClass;\n\n config.optionClass = optionClass.trim();\n config.inlineStyle = inlineStyle;\n\n config.text = dataGetter(item, 'text');\n config.title = dataGetter(item, 'title');\n config.content = dataGetter(item, 'content');\n config.tokens = dataGetter(item, 'tokens');\n config.subtext = dataGetter(item, 'subtext');\n config.icon = dataGetter(item, 'icon');\n\n config.display = config.content || config.text;\n config.value = item.value === undefined ? item.text : item.value;\n config.type = 'option';\n config.index = liIndex;\n\n config.option = !item.option ? item : item.option; // reference option element if it exists\n config.option.liIndex = liIndex;\n config.selected = !!item.selected;\n config.disabled = config.disabled || !!item.disabled;\n\n if (data !== false) {\n if (that.selectpicker.optionValuesDataMap[config.value]) {\n config = Object.assign(that.selectpicker.optionValuesDataMap[config.value], config);\n } else {\n that.selectpicker.optionValuesDataMap[config.value] = config;\n }\n }\n\n mainData.push(config);\n }\n }\n\n function addOptgroup (index, selectOptions) {\n var optgroup = selectOptions[index],\n // skip placeholder option\n previous = index - 1 < startIndex ? false : selectOptions[index - 1],\n next = selectOptions[index + 1],\n options = data ? optgroup.children.filter(filterHidden, this) : optgroup.querySelectorAll('option' + optionSelector);\n\n if (!options.length) return;\n\n var config = {\n display: htmlEscape(dataGetter(item, 'label')),\n subtext: dataGetter(optgroup, 'subtext'),\n icon: dataGetter(optgroup, 'icon'),\n type: 'optgroup-label',\n optgroupClass: ' ' + (optgroup.className || ''),\n optgroup: optgroup\n },\n headerIndex,\n lastIndex;\n\n optID++;\n\n if (previous) {\n addDivider({ optID: optID });\n }\n\n config.optID = optID;\n\n mainData.push(config);\n\n for (var j = 0, len = options.length; j < len; j++) {\n var option = options[j];\n\n if (j === 0) {\n headerIndex = mainData.length - 1;\n lastIndex = headerIndex + len;\n }\n\n addOption(option, {\n headerIndex: headerIndex,\n lastIndex: lastIndex,\n optID: config.optID,\n optgroupClass: config.optgroupClass,\n disabled: optgroup.disabled\n });\n }\n\n if (next) {\n addDivider({ optID: optID });\n }\n }\n\n var item;\n\n for (var len = selectOptions.length, i = startIndex; i < len; i++) {\n item = selectOptions[i];\n var children = item.children;\n\n if (children && children.length) {\n addOptgroup.call(this, i, selectOptions);\n } else {\n addOption.call(this, item, {});\n }\n }\n\n switch (type) {\n case 'data': {\n if (!this.selectpicker.main.data) {\n this.selectpicker.main.data = [];\n }\n Array.prototype.push.apply(this.selectpicker.main.data, mainData);\n this.selectpicker.current.data = this.selectpicker.main.data;\n break;\n }\n case 'search': {\n Array.prototype.push.apply(this.selectpicker.search.data, mainData);\n break;\n }\n }\n\n return mainData;\n }\n\n buildList (size, searching) {\n var that = this,\n selectData = searching ? this.selectpicker.search.data : this.selectpicker.main.data,\n mainElements = [],\n widestOptionLength = 0;\n\n if (that.options.showTick || that.multiple) {\n elementTemplates.checkMark.className = this.options.selectionIndicator === 'checkbox'\n ? 'check-mark bs-selection-indicator'\n : this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';\n\n if (!elementTemplates.checkMark.parentNode) {\n elementTemplates.a.appendChild(elementTemplates.checkMark);\n }\n }\n\n function buildElement (mainElements, item) {\n var liElement,\n combinedLength = 0;\n\n switch (item.type) {\n case 'divider':\n liElement = generateOption.li(\n false,\n classNames.DIVIDER,\n (item.optID ? item.optID + 'div' : undefined)\n );\n\n break;\n\n case 'option':\n liElement = generateOption.li(\n generateOption.a(\n generateOption.text.call(that, item),\n item.optionClass,\n item.inlineStyle\n ),\n '',\n item.optID\n );\n\n if (liElement.firstChild) {\n liElement.firstChild.id = that.selectId + '-' + item.index;\n }\n\n break;\n\n case 'optgroup-label':\n liElement = generateOption.li(\n generateOption.label.call(that, item),\n 'dropdown-header' + item.optgroupClass,\n item.optID\n );\n\n break;\n }\n\n if (item.content) item.sanitized = false;\n\n if (!item.element) {\n item.element = liElement;\n } else {\n item.element.innerHTML = liElement.innerHTML;\n }\n mainElements.push(item.element);\n\n // count the number of characters in the option - not perfect, but should work in most cases\n if (item.display) combinedLength += item.display.length;\n if (item.subtext) combinedLength += item.subtext.length;\n // if there is an icon, ensure this option's width is checked\n if (item.icon) combinedLength += 1;\n\n if (combinedLength > widestOptionLength) {\n widestOptionLength = combinedLength;\n\n // guess which option is the widest\n that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];\n }\n }\n\n var startIndex = size || 0;\n\n for (var len = selectData.length, i = startIndex; i < len; i++) {\n var item = selectData[i];\n\n buildElement(mainElements, item);\n }\n\n if (size) {\n if (searching) {\n Array.prototype.push.apply(this.selectpicker.search.elements, mainElements);\n } else {\n Array.prototype.push.apply(this.selectpicker.main.elements, mainElements);\n this.selectpicker.current.elements = this.selectpicker.main.elements;\n }\n } else {\n if (searching) {\n this.selectpicker.search.elements = mainElements;\n } else {\n this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;\n }\n }\n }\n\n findLis () {\n return this.menuInner.querySelectorAll('.inner > li');\n }\n\n render (init) {\n var that = this,\n element = this.element,\n // ensure titleOption is appended and selected (if necessary) before getting selectedOptions\n placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,\n selectedOptions = getSelectedOptions.call(this),\n selectedCount = selectedOptions.length,\n selectedValues = getSelectValues.call(this, selectedOptions),\n button = this.button,\n buttonInner = button.querySelector('.filter-option-inner-inner'),\n multipleSeparator = document.createTextNode(this.options.multipleSeparator),\n titleFragment = elementTemplates.fragment.cloneNode(false),\n forceCount = this.multiple && this.options.showSelectedTags && selectedCount > 0,\n showCount,\n countMax,\n hasContent = false;\n\n function createSelected (item) {\n if (item.selected) {\n that.createOption(item, true);\n } else if (item.children && item.children.length) {\n item.children.map(createSelected);\n }\n }\n\n // create selected option elements to ensure select value is correct\n if (this.options.source.data && init) {\n selectedOptions.map(createSelected);\n element.appendChild(this.selectpicker.main.optionQueue);\n\n if (placeholderSelected) placeholderSelected = element.selectedIndex === 0;\n }\n\n button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !selectedValues && selectedValues !== 0);\n\n if (!that.multiple && selectedOptions.length === 1) {\n that.selectpicker.view.displayedValue = selectedValues;\n }\n\n if (this.options.selectedTextFormat === 'static') {\n titleFragment = generateOption.text.call(this, { text: this.options.placeholder }, true);\n } else {\n showCount = forceCount || this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 0;\n\n // determine if the number of selected options will be shown (showCount === true)\n if (showCount && !forceCount) {\n countMax = this.options.selectedTextFormat.split('>');\n showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2);\n }\n\n // only loop through all selected options if the count won't be shown\n if (showCount === false) {\n if (!placeholderSelected) {\n for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {\n if (selectedIndex < 50) {\n var option = selectedOptions[selectedIndex],\n titleOptions = {};\n\n if (option) {\n if (this.multiple && selectedIndex > 0) {\n titleFragment.appendChild(multipleSeparator.cloneNode(false));\n }\n\n if (option.title) {\n titleOptions.text = option.title;\n } else if (option.content && that.options.showContent) {\n titleOptions.content = option.content.toString();\n hasContent = true;\n } else {\n if (that.options.showIcon) {\n titleOptions.icon = option.icon;\n }\n if (that.options.showSubtext && !that.multiple && option.subtext) titleOptions.subtext = ' ' + option.subtext;\n titleOptions.text = option.text.trim();\n }\n\n titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));\n }\n } else {\n break;\n }\n }\n\n // add ellipsis\n if (selectedCount > 49) {\n titleFragment.appendChild(document.createTextNode('...'));\n }\n }\n } else {\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([data-divider=\"true\"]):not([style*=\"display: none\"])';\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\n\n // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.\n var totalCount = this.element.querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length,\n tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;\n\n titleFragment = generateOption.text.call(this, {\n text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())\n }, true);\n }\n }\n\n // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText\n if (!titleFragment.childNodes.length) {\n titleFragment = generateOption.text.call(this, {\n text: this.options.placeholder ? this.options.placeholder : this.options.noneSelectedText\n }, true);\n }\n\n // if the select has a title, apply it to the button, and if not, apply titleFragment text\n button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim();\n\n if (this.options.sanitize && hasContent) {\n sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn);\n }\n\n buttonInner.innerHTML = '';\n buttonInner.appendChild(titleFragment);\n\n this.syncTagEditor();\n\n this._emit('rendered');\n }\n\n usesTagEditor () {\n return this.options.liveSearch && (this.options.showSelectedTags || this.options.openOptions);\n }\n\n syncTagEditor () {\n if (!this.usesTagEditor()) return;\n\n if (this.selectedItems) {\n var selectedOptions = getSelectedOptions.call(this),\n useListStyle = this.options.selectedItemsStyle === 'list';\n\n this.selectedItems.innerHTML = '';\n this.selectedItems.hidden = !selectedOptions.length;\n this.selectedItems.classList.toggle('list-group', useListStyle);\n\n for (var i = 0; i < selectedOptions.length; i++) {\n var item = selectedOptions[i],\n selectedTag = document.createElement('button'),\n removeText = this.options.selectedTagRemoveLabel + ' ' + getOptionLabelText(item),\n content = document.createElement('span'),\n label = document.createElement('span'),\n remove = document.createElement('span'),\n icon;\n\n selectedTag.type = 'button';\n selectedTag.className = useListStyle\n ? 'bs-selected-item list-group-item list-group-item-action'\n : 'bs-selected-item';\n selectedTag.setAttribute('data-option-value', item.value);\n selectedTag.setAttribute('aria-label', removeText);\n selectedTag.title = removeText;\n\n content.className = 'bs-selected-item-content';\n\n if (item.icon && this.options.showIcon) {\n icon = document.createElement('span');\n icon.className = 'bs-selected-item-icon ' + this.options.iconBase + ' ' + item.icon;\n icon.setAttribute('aria-hidden', 'true');\n content.appendChild(icon);\n }\n\n label.className = 'bs-selected-item-label';\n label.textContent = getOptionLabelText(item);\n content.appendChild(label);\n\n remove.className = 'bs-selected-item-remove';\n remove.setAttribute('aria-hidden', 'true');\n remove.textContent = '\\u00d7';\n\n selectedTag.appendChild(content);\n selectedTag.appendChild(remove);\n this.selectedItems.appendChild(selectedTag);\n }\n }\n\n this.syncOpenOptionButton();\n\n if (this.newElement && this.newElement.classList.contains(classNames.SHOW)) {\n this.setSize(true);\n }\n }\n\n syncOpenOptionButton () {\n if (!this.createOptionButton) return;\n\n var searchValue = this.searchbox ? this.searchbox.value : '',\n normalizedValue = searchValue.toString().trim(),\n shouldShow = !!normalizedValue &&\n !this.selectpicker.openOption.isCreating &&\n !this.findOptionBySearchValue(normalizedValue);\n\n this.createOptionButton.hidden = !shouldShow;\n this.createOptionButton.disabled = this.selectpicker.openOption.isCreating;\n\n if (shouldShow) {\n this.createOptionButton.textContent = this.options.openOptionsText.replace('{0}', normalizedValue);\n this.createOptionButton.setAttribute('data-search-value', normalizedValue);\n } else {\n this.createOptionButton.textContent = '';\n this.createOptionButton.removeAttribute('data-search-value');\n }\n }\n\n findOptionByValue (value, dataSet) {\n var options = dataSet || this.selectpicker.main.data,\n stringValue = String(value);\n\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option.type === 'option' && String(option.value) === stringValue) {\n return option;\n }\n }\n\n return null;\n }\n\n findOptionBySearchValue (searchValue) {\n var options = this.options.source.data || this.options.source.search\n ? Object.values(this.selectpicker.optionValuesDataMap)\n : this.selectpicker.main.data,\n normalizedSearch = normalizeSearchInput(searchValue, this.options.liveSearchNormalize);\n\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option.type !== 'option') continue;\n\n if (\n normalizeSearchInput(option.text, this.options.liveSearchNormalize) === normalizedSearch ||\n normalizeSearchInput(option.value, this.options.liveSearchNormalize) === normalizedSearch ||\n normalizeSearchInput(option.title, this.options.liveSearchNormalize) === normalizedSearch\n ) {\n return option;\n }\n }\n\n return null;\n }\n\n createOptionElement (optionData) {\n var option = document.createElement('option');\n\n option.value = optionData.value === undefined ? optionData.text : optionData.value;\n option.textContent = optionData.text === undefined ? option.value : optionData.text;\n\n if (optionData.className) option.className = optionData.className;\n if (optionData.title) option.title = optionData.title;\n if (optionData.content) option.setAttribute('data-content', optionData.content);\n if (optionData.tokens) option.setAttribute('data-tokens', optionData.tokens);\n if (optionData.subtext) option.setAttribute('data-subtext', optionData.subtext);\n if (optionData.icon) option.setAttribute('data-icon', optionData.icon);\n if (optionData.disabled) option.disabled = true;\n if (optionData.hidden) option.hidden = true;\n\n return option;\n }\n\n appendCreatedSearchResults (searchValue) {\n if (!this.selectpicker.createdOptions.length) return;\n\n var matches = [];\n\n for (var i = 0; i < this.selectpicker.createdOptions.length; i++) {\n var option = this.selectpicker.createdOptions[i];\n\n if (\n stringSearch(option, normalizeSearchInput(searchValue, this.options.liveSearchNormalize), this._searchStyle(), this.options.liveSearchNormalize) &&\n !this.findOptionByValue(option.value, this.selectpicker.search.data)\n ) {\n matches.push(option);\n }\n }\n\n if (matches.length) this.buildData(matches, 'search');\n }\n\n addCreatedOption (optionData) {\n optionData = Object.assign({}, optionData);\n optionData.value = optionData.value === undefined ? optionData.text : optionData.value;\n optionData.text = optionData.text === undefined ? optionData.value : optionData.text;\n\n var size = this.selectpicker.main.elements ? this.selectpicker.main.elements.length : 0,\n option = this.createOptionElement(optionData);\n optionData.option = option;\n\n this.element.appendChild(option);\n var builtOptions = this.buildData([optionData], 'data'),\n builtOption = builtOptions[0];\n\n this.buildList(size);\n this.selectpicker.createdOptions.push(builtOption);\n\n return builtOption;\n }\n\n removeSelectedTag (value) {\n var option = this.findOptionByValue(value);\n\n if (!option || !option.selected) return;\n\n var prevValue = getSelectValues.call(this);\n\n this.setSelected(option, false);\n changedArguments = [option.index, false, prevValue];\n triggerNative(this.element, 'change');\n\n if (this.options.liveSearch) this.searchbox.focus();\n }\n\n createOpenOption (searchValue) {\n searchValue = searchValue === undefined || searchValue === null ? '' : searchValue.toString().trim();\n\n if (!searchValue || this.selectpicker.openOption.isCreating) return;\n\n var existingOption = this.findOptionBySearchValue(searchValue);\n\n if (existingOption) {\n if (!existingOption.selected) {\n var prevSelectedValue = getSelectValues.call(this);\n\n this.setSelected(existingOption, true);\n changedArguments = [existingOption.index, true, prevSelectedValue];\n triggerNative(this.element, 'change');\n }\n\n if (this.options.liveSearch) this.searchbox.focus();\n return;\n }\n\n var that = this,\n prevValue = getSelectValues.call(this),\n createHandler = this.options.source.create;\n\n this.selectpicker.openOption.isCreating = true;\n this.syncOpenOptionButton();\n\n function finalize (createdOption) {\n that.selectpicker.openOption.isCreating = false;\n\n if (createdOption === undefined || createdOption === null || createdOption === false) {\n that.syncOpenOptionButton();\n return;\n }\n\n if (Array.isArray(createdOption)) createdOption = createdOption[0];\n if (typeof createdOption !== 'object') {\n createdOption = {\n text: createdOption,\n value: createdOption\n };\n }\n\n if (!createdOption.text && !createdOption.value) {\n createdOption.text = searchValue;\n }\n\n if (createdOption.value === undefined) createdOption.value = createdOption.text;\n if (createdOption.text === undefined) createdOption.text = createdOption.value;\n\n var option = that.findOptionByValue(createdOption.value) || that.findOptionBySearchValue(createdOption.text);\n\n if (!option) {\n option = that.addCreatedOption(createdOption);\n }\n\n that.setSelected(option, true);\n\n if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue);\n\n if (that.searchbox) {\n that.searchbox.value = '';\n }\n\n that.selectpicker.search.previousValue = '';\n that.selectpicker.search.data = [];\n that.selectpicker.search.elements = [];\n that.createView(false);\n\n changedArguments = [option.index, true, prevValue];\n triggerNative(that.element, 'change');\n\n if (that.options.liveSearch) that.searchbox.focus();\n }\n\n if (typeof createHandler === 'function') {\n var returnedOption = createHandler.call(this, finalize, searchValue);\n\n if (returnedOption && typeof returnedOption.then === 'function') {\n returnedOption.then(finalize);\n } else if (returnedOption !== undefined) {\n finalize(returnedOption);\n }\n } else {\n finalize({\n text: searchValue,\n value: searchValue\n });\n }\n }\n\n /**\n * @param [newStyle]\n * @param [status]\n */\n setStyle (newStyle, status) {\n var button = this.button,\n newElement = this.newElement,\n style = this.options.style.trim(),\n buttonClass;\n\n if (this.element.getAttribute('class')) {\n var extra = this.element.getAttribute('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, '').trim();\n if (extra) newElement.classList.add.apply(newElement.classList, extra.split(/\\s+/));\n }\n\n if (newStyle) {\n buttonClass = newStyle.trim();\n } else {\n buttonClass = style;\n }\n\n if (status === 'add') {\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n } else if (status === 'remove') {\n if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' '));\n } else {\n if (style) button.classList.remove.apply(button.classList, style.split(' '));\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n }\n }\n\n liHeight (refresh) {\n if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;\n\n var newElement = elementTemplates.div.cloneNode(false),\n menu = elementTemplates.div.cloneNode(false),\n menuInner = elementTemplates.div.cloneNode(false),\n menuInnerInner = document.createElement('ul'),\n divider = elementTemplates.li.cloneNode(false),\n dropdownHeader = elementTemplates.li.cloneNode(false),\n li,\n a = elementTemplates.a.cloneNode(false),\n text = elementTemplates.span.cloneNode(false),\n header = this.options.header && this.menu.querySelectorAll('.' + classNames.POPOVERHEADER).length > 0 ? this.menu.querySelector('.' + classNames.POPOVERHEADER).cloneNode(true) : null,\n search = this.options.liveSearch && this.menu.querySelector('.bs-searchbox')\n ? this.menu.querySelector('.bs-searchbox').cloneNode(true)\n : null,\n actions = this.options.actionsBox && this.multiple && this.menu.querySelectorAll('.bs-actionsbox').length > 0 ? this.menu.querySelector('.bs-actionsbox').cloneNode(true) : null,\n doneButton = this.options.doneButton && this.multiple && this.menu.querySelectorAll('.bs-donebutton').length > 0 ? this.menu.querySelector('.bs-donebutton').cloneNode(true) : null,\n firstOption = this.element.options[0];\n\n this.sizeInfo.selectWidth = this.newElement.offsetWidth;\n\n text.className = 'text';\n a.className = 'dropdown-item ' + (firstOption ? firstOption.className : '');\n newElement.className = this.menu.parentNode.className + ' ' + classNames.SHOW;\n newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating\n menu.className = classNames.MENU + ' ' + classNames.SHOW;\n menuInner.className = 'inner ' + classNames.SHOW;\n menuInnerInner.className = classNames.MENU + ' inner ' + classNames.SHOW;\n divider.className = classNames.DIVIDER;\n dropdownHeader.className = 'dropdown-header';\n\n text.appendChild(document.createTextNode('\\u200b'));\n\n if (this.selectpicker.current.data.length) {\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var data = this.selectpicker.current.data[i];\n if (data.type === 'option' && window.getComputedStyle(data.element.firstChild).display !== 'none') {\n li = data.element;\n break;\n }\n }\n } else {\n li = elementTemplates.li.cloneNode(false);\n a.appendChild(text);\n li.appendChild(a);\n }\n\n dropdownHeader.appendChild(text.cloneNode(true));\n\n if (this.selectpicker.view.widestOption) {\n menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));\n }\n\n menuInnerInner.appendChild(li);\n menuInnerInner.appendChild(divider);\n menuInnerInner.appendChild(dropdownHeader);\n if (header) menu.appendChild(header);\n if (search) menu.appendChild(search);\n if (actions) menu.appendChild(actions);\n menuInner.appendChild(menuInnerInner);\n menu.appendChild(menuInner);\n if (doneButton) menu.appendChild(doneButton);\n newElement.appendChild(menu);\n\n document.body.appendChild(newElement);\n\n var liHeight = li.offsetHeight,\n dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,\n headerHeight = header ? header.offsetHeight : 0,\n searchHeight = search ? search.offsetHeight : 0,\n actionsHeight = actions ? actions.offsetHeight : 0,\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n dividerHeight = outerHeight(divider, true),\n menuStyle = window.getComputedStyle(menu),\n menuWidth = menu.offsetWidth,\n menuPadding = {\n vert: toInteger(menuStyle.paddingTop) +\n toInteger(menuStyle.paddingBottom) +\n toInteger(menuStyle.borderTopWidth) +\n toInteger(menuStyle.borderBottomWidth),\n horiz: toInteger(menuStyle.paddingLeft) +\n toInteger(menuStyle.paddingRight) +\n toInteger(menuStyle.borderLeftWidth) +\n toInteger(menuStyle.borderRightWidth)\n },\n menuExtras = {\n vert: menuPadding.vert +\n toInteger(menuStyle.marginTop) +\n toInteger(menuStyle.marginBottom) + 2,\n horiz: menuPadding.horiz +\n toInteger(menuStyle.marginLeft) +\n toInteger(menuStyle.marginRight) + 2\n },\n scrollBarWidth;\n\n menuInner.style.overflowY = 'scroll';\n\n scrollBarWidth = menu.offsetWidth - menuWidth;\n\n document.body.removeChild(newElement);\n\n this.sizeInfo.liHeight = liHeight;\n this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;\n this.sizeInfo.headerHeight = headerHeight;\n this.sizeInfo.searchHeight = searchHeight;\n this.sizeInfo.actionsHeight = actionsHeight;\n this.sizeInfo.doneButtonHeight = doneButtonHeight;\n this.sizeInfo.dividerHeight = dividerHeight;\n this.sizeInfo.menuPadding = menuPadding;\n this.sizeInfo.menuExtras = menuExtras;\n this.sizeInfo.menuWidth = menuWidth;\n this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;\n this.sizeInfo.scrollBarWidth = scrollBarWidth;\n this.sizeInfo.selectHeight = this.newElement.offsetHeight;\n\n this.setPositionData();\n }\n\n getSelectPosition () {\n var that = this,\n winScrollTop = window.pageYOffset,\n winScrollLeft = window.pageXOffset,\n winHeight = document.documentElement.clientHeight,\n winWidth = document.documentElement.clientWidth,\n pos = offset(that.newElement);\n\n this.sizeInfo.selectOffsetTop = pos.top - winScrollTop;\n this.sizeInfo.selectOffsetBot = winHeight - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight;\n this.sizeInfo.selectOffsetLeft = pos.left - winScrollLeft;\n this.sizeInfo.selectOffsetRight = winWidth - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth;\n }\n\n setMenuSize (isAuto) {\n this.getSelectPosition();\n\n var selectWidth = this.sizeInfo.selectWidth,\n liHeight = this.sizeInfo.liHeight,\n headerHeight = this.sizeInfo.headerHeight,\n searchHeight = this.sizeInfo.searchHeight,\n actionsHeight = this.sizeInfo.actionsHeight,\n doneButtonHeight = this.sizeInfo.doneButtonHeight,\n divHeight = this.sizeInfo.dividerHeight,\n menuPadding = this.sizeInfo.menuPadding,\n menuInnerHeight,\n menuHeight,\n divLength = 0,\n minHeight,\n _minHeight,\n maxHeight,\n menuInnerMinHeight,\n estimate,\n isDropup;\n\n if (this.options.dropupAuto) {\n // Get the estimated height of the menu without scrollbars.\n estimate = liHeight * this.selectpicker.current.data.length + menuPadding.vert;\n\n isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot;\n\n // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)\n if (this.selectpicker.isSearching === true) {\n isDropup = this.selectpicker.dropup;\n }\n\n this.newElement.classList.toggle(classNames.DROPUP, isDropup);\n this.selectpicker.dropup = isDropup;\n }\n\n if (this.options.size === 'auto') {\n _minHeight = this.selectpicker.current.data.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0;\n menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;\n minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0);\n\n if (this.newElement.classList.contains(classNames.DROPUP)) {\n menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;\n }\n\n maxHeight = menuHeight;\n menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;\n } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n for (var i = 0; i < this.options.size; i++) {\n if (this.selectpicker.current.data[i].type === 'divider') divLength++;\n }\n\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\n menuInnerHeight = menuHeight - menuPadding.vert;\n maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n minHeight = menuInnerMinHeight = '';\n }\n\n setStyles(this.menu, {\n maxHeight: maxHeight + 'px',\n overflow: 'hidden',\n minHeight: minHeight + 'px'\n });\n\n setStyles(this.menuInner, {\n maxHeight: menuInnerHeight + 'px',\n overflow: 'hidden auto',\n minHeight: menuInnerMinHeight + 'px'\n });\n\n // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView\n this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1);\n\n if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) {\n this.sizeInfo.hasScrollBar = true;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;\n }\n\n if (this.options.dropdownAlignRight === 'auto') {\n this.menu.classList.toggle(classNames.MENUEND, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth));\n }\n\n if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();\n }\n\n setSize (refresh) {\n this.liHeight(refresh);\n\n if (this.options.header) this.menu.style.paddingTop = 0;\n\n if (this.options.size !== false) {\n var that = this;\n\n this.setMenuSize();\n\n if (this.options.liveSearch) {\n this._replace('setMenuSizeInput', this.searchbox, 'input', function () {\n return that.setMenuSize();\n });\n }\n\n if (this.options.size === 'auto') {\n var windowSizeHandler = function () {\n return that.setMenuSize();\n };\n this._replace('setMenuSizeResize', window, 'resize', windowSizeHandler);\n this._replace('setMenuSizeScroll', window, 'scroll', windowSizeHandler);\n } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n this._removeNamed('setMenuSizeResize');\n this._removeNamed('setMenuSizeScroll');\n }\n }\n\n this.createView(false, true, refresh);\n }\n\n setWidth () {\n this.menu.style.minWidth = '';\n this.newElement.style.width = '';\n this.newElement.classList.remove('fit-width');\n }\n\n selectPosition () {\n this.bsContainer = createFromHTML('
    ');\n\n var that = this,\n container = resolveContainer(this.options.container),\n pos,\n containerPos,\n actualHeight,\n getPlacement = function (element) {\n var Dropdown = getDropdown(),\n containerPosition = {},\n // fall back to dropdown's default display setting if display is not manually set\n display = that.options.display || (Dropdown.Default ? Dropdown.Default.display : false);\n\n var extraClass = element.getAttribute('class').replace(/form-control|fit-width/gi, '').trim();\n if (extraClass) that.bsContainer.classList.add.apply(that.bsContainer.classList, extraClass.split(/\\s+/));\n that.bsContainer.classList.toggle(classNames.DROPUP, element.classList.contains(classNames.DROPUP));\n pos = offset(element);\n\n if (container !== document.body) {\n containerPos = offset(container);\n var containerStyle = window.getComputedStyle(container);\n containerPos.top += toInteger(containerStyle.borderTopWidth) - container.scrollTop;\n containerPos.left += toInteger(containerStyle.borderLeftWidth) - container.scrollLeft;\n } else {\n containerPos = { top: 0, left: 0 };\n }\n\n actualHeight = element.classList.contains(classNames.DROPUP) ? 0 : element.offsetHeight;\n\n // Bootstrap 5 uses Popper for menu positioning\n if (display === 'static') {\n containerPosition.top = pos.top - containerPos.top + actualHeight;\n containerPosition.left = pos.left - containerPos.left;\n }\n\n containerPosition.width = element.offsetWidth;\n\n setStyles(that.bsContainer, {\n top: containerPosition.top !== undefined ? containerPosition.top + 'px' : '',\n left: containerPosition.left !== undefined ? containerPosition.left + 'px' : '',\n width: containerPosition.width + 'px'\n });\n };\n\n this._on(this.button, 'click', function () {\n if (that.isDisabled()) {\n return;\n }\n\n getPlacement(that.newElement);\n\n container.appendChild(that.bsContainer);\n that.bsContainer.classList.toggle(classNames.SHOW, !that.button.classList.contains(classNames.SHOW));\n that.bsContainer.appendChild(that.menu);\n });\n\n var windowHandler = function () {\n var isActive = that.newElement.classList.contains(classNames.SHOW);\n\n if (isActive) getPlacement(that.newElement);\n };\n this._replace('selectPositionResize', window, 'resize', windowHandler);\n this._replace('selectPositionScroll', window, 'scroll', windowHandler);\n\n this._on(this.element, 'hide' + EVENT_KEY, function () {\n that._menuHeight = outerHeight(that.menu);\n if (that.bsContainer.parentNode) that.bsContainer.parentNode.removeChild(that.bsContainer);\n });\n }\n\n createOption (data, init) {\n var optionData = !data.option ? data : data.option;\n\n if (optionData && optionData.nodeType !== 1) {\n var option = (init ? elementTemplates.selectedOption : elementTemplates.option).cloneNode(true);\n if (optionData.value !== undefined) option.value = optionData.value;\n option.textContent = optionData.text;\n\n option.selected = true;\n\n if (optionData.liIndex !== undefined) {\n option.liIndex = optionData.liIndex;\n } else if (!init) {\n option.liIndex = data.index;\n }\n\n data.option = option;\n\n this.selectpicker.main.optionQueue.appendChild(option);\n }\n }\n\n setOptionStatus (selectedOnly) {\n var that = this;\n\n that.noScroll = false;\n\n if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {\n for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {\n var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],\n option = liData.option;\n\n if (option) {\n if (selectedOnly !== true) {\n that.setDisabled(liData);\n }\n\n that.setSelected(liData);\n }\n }\n\n // append optionQueue (documentFragment with option elements for select options)\n if (this.options.source.data) this.element.appendChild(this.selectpicker.main.optionQueue);\n }\n }\n\n /**\n * @param {Object} liData - the option object that is being changed\n * @param {boolean} selected - true if the option is being selected, false if being deselected\n */\n setSelected (liData, selected) {\n selected = selected === undefined ? liData.selected : selected;\n\n var li = liData.element,\n activeElementIsSet = this.activeElement !== undefined,\n thisIsActive = this.activeElement === li,\n prevActive,\n a,\n keepActive = thisIsActive || (selected && !this.multiple && !activeElementIsSet);\n\n if (selected !== undefined) {\n liData.selected = selected;\n if (liData.option) liData.option.selected = selected;\n }\n\n if (selected && this.options.source.data) {\n this.createOption(liData, false);\n }\n\n if (!li) return;\n\n a = li.firstChild;\n\n if (selected) {\n this.selectedElement = li;\n }\n\n li.classList.toggle('selected', selected);\n\n if (keepActive) {\n this.focusItem(li, liData);\n this.selectpicker.view.currentActive = li;\n this.activeElement = li;\n } else {\n this.defocusItem(li);\n }\n\n if (a) {\n a.classList.toggle('selected', selected);\n\n if (selected) {\n a.setAttribute('aria-selected', true);\n } else {\n if (this.multiple) {\n a.setAttribute('aria-selected', false);\n } else {\n a.removeAttribute('aria-selected');\n }\n }\n }\n\n if (!keepActive && !activeElementIsSet && selected && this.prevActiveElement !== undefined) {\n prevActive = this.prevActiveElement;\n\n this.defocusItem(prevActive);\n }\n }\n\n /**\n * @param {Object} liData - the option that is being disabled\n */\n setDisabled (liData) {\n var disabled = liData.disabled,\n li = liData.element,\n a;\n\n if (!li) return;\n\n a = li.firstChild;\n\n li.classList.toggle(classNames.DISABLED, disabled);\n\n if (a) {\n a.classList.toggle(classNames.DISABLED, disabled);\n\n if (disabled) {\n a.setAttribute('aria-disabled', disabled);\n a.setAttribute('tabindex', -1);\n } else {\n a.removeAttribute('aria-disabled');\n a.setAttribute('tabindex', 0);\n }\n }\n }\n\n isDisabled () {\n return this.element.disabled;\n }\n\n checkDisabled () {\n if (this.isDisabled()) {\n this.newElement.classList.add(classNames.DISABLED);\n this.button.classList.add(classNames.DISABLED);\n this.button.setAttribute('aria-disabled', true);\n } else {\n if (this.button.classList.contains(classNames.DISABLED)) {\n this.newElement.classList.remove(classNames.DISABLED);\n this.button.classList.remove(classNames.DISABLED);\n this.button.setAttribute('aria-disabled', false);\n }\n }\n }\n\n clickListener () {\n var that = this;\n\n spaceSelectFlag = false;\n\n this._on(this.button, 'keyup', function (e) {\n if (/(32)/.test(e.keyCode.toString(10)) && spaceSelectFlag) {\n e.preventDefault();\n spaceSelectFlag = false;\n }\n });\n\n function clearSelection (e) {\n if (that.multiple) {\n that.deselectAll();\n } else {\n var element = that.element,\n prevValue = element.value,\n prevIndex = element.selectedIndex,\n prevOption = element.options[prevIndex],\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false;\n\n if (prevData) {\n that.setSelected(prevData, false);\n }\n\n element.selectedIndex = 0;\n\n changedArguments = [prevIndex, false, prevValue];\n triggerNative(that.element, 'change');\n }\n\n // remove selected styling if menu is open\n if (that.newElement.classList.contains(classNames.SHOW)) {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n }\n\n that.createView(false);\n }\n }\n\n if (this.options.allowClear) {\n this._on(this.button, 'click', function (e) {\n var target = e.target,\n clearButton = that.clearButton;\n\n if (target === clearButton || target.parentElement === clearButton) {\n e.stopImmediatePropagation();\n clearSelection(e);\n }\n });\n }\n\n function setFocus () {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.menuInner.focus();\n }\n }\n\n function checkPopperExists () {\n if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state) {\n setFocus();\n } else {\n requestAnimationFrame(checkPopperExists);\n }\n }\n\n this._on(this.element, 'shown' + EVENT_KEY, function () {\n if (that.menuInner.scrollTop !== that.selectpicker.view.scrollTop) {\n that.menuInner.scrollTop = that.selectpicker.view.scrollTop;\n }\n\n requestAnimationFrame(checkPopperExists);\n });\n\n // ensure posinset and setsize are correct before selecting an option via a click\n this._delegate(this.menuInner, 'mouseover', 'li a', function () {\n var hoverLi = this.parentElement,\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi),\n hoverData = that.selectpicker.current.data[index + position0];\n\n that.focusItem(hoverLi, hoverData, true);\n });\n\n this._delegate(this.menuInner, 'click', 'li a', function (e) {\n that.onOptionClick(this, e);\n });\n\n this._delegate(this.menu, 'click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.btn-close):not(.close)', function (e) {\n if (e.currentTarget === this || e.target === this) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch && !e.target.classList.contains('btn-close') && !e.target.classList.contains('close')) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n }\n });\n\n this._delegate(this.menuInner, 'click', '.divider, .dropdown-header', function (e) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n });\n\n this._delegate(this.menu, 'click', '.' + classNames.POPOVERHEADER + ' .btn-close, .' + classNames.POPOVERHEADER + ' .close', function () {\n that.dropdown.hide();\n });\n\n this._delegate(this.newElement, 'click', '.bs-selected-item', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeSelectedTag(this.getAttribute('data-option-value'));\n });\n\n this._delegate(this.menu, 'click', '.bs-create-option', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.createOpenOption(this.getAttribute('data-search-value'));\n });\n\n if (this.searchbox) {\n this._on(this.searchbox, 'click', function (e) {\n e.stopPropagation();\n });\n }\n\n this._delegate(this.menu, 'click', '.actions-btn', function (e) {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.classList.contains('bs-select-all')) {\n that.selectAll();\n } else {\n that.deselectAll();\n }\n });\n\n this._on(this.button, 'focus', function (e) {\n var tabindex = that.element.getAttribute('tabindex');\n\n // only change when button is actually focused\n if (tabindex !== undefined && tabindex !== null && e.isTrusted) {\n // apply select element's tabindex to ensure correct order is followed when tabbing to the next element\n this.setAttribute('tabindex', tabindex);\n // set element's tabindex to -1 to allow for reverse tabbing\n that.element.setAttribute('tabindex', -1);\n that.selectpicker.view.tabindex = tabindex;\n }\n });\n\n this._on(this.button, 'blur', function (e) {\n // revert everything to original tabindex\n if (that.selectpicker.view.tabindex !== undefined && e.isTrusted) {\n that.element.setAttribute('tabindex', that.selectpicker.view.tabindex);\n this.setAttribute('tabindex', -1);\n that.selectpicker.view.tabindex = undefined;\n }\n });\n\n this._on(this.element, 'change', function () {\n that.render();\n that._emit('changed', changedArguments ? {\n clickedIndex: changedArguments[0],\n isSelected: changedArguments[1],\n previousValue: changedArguments[2]\n } : null);\n changedArguments = null;\n });\n\n this._on(this.element, 'focus', function () {\n if (!that.options.mobile) that.button.focus();\n });\n }\n\n onOptionClick (clickedAnchor, e, retainActive) {\n var that = this,\n element = that.element,\n li = clickedAnchor.parentElement,\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n clickedData = that.selectpicker.current.data[Array.prototype.indexOf.call(li.parentElement.children, li) + position0],\n clickedElement = clickedData.element,\n prevValue = getSelectValues.call(that),\n prevIndex = element.selectedIndex,\n prevOption = element.options[prevIndex],\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false,\n triggerChange = true;\n\n // Don't close on multi choice menu\n if (that.multiple && that.options.maxOptions !== 1) {\n e.stopPropagation();\n }\n\n e.preventDefault();\n\n // Don't run if the select is disabled\n if (!that.isDisabled() && !li.classList.contains(classNames.DISABLED)) {\n var option = clickedData.option,\n state = option.selected,\n optgroupData = that.selectpicker.current.data.find(function (datum) {\n return datum.optID === clickedData.optID && datum.type === 'optgroup-label';\n }),\n optgroup = optgroupData ? optgroupData.optgroup : undefined,\n dataGetter = optgroup instanceof Element ? getOptionData.fromOption : getOptionData.fromDataSource,\n optgroupOptions = optgroup && optgroup.children,\n maxOptions = parseInt(that.options.maxOptions),\n maxOptionsGrp = optgroup && parseInt(dataGetter(optgroup, 'maxOptions')) || false;\n\n if (clickedElement === that.activeElement) retainActive = true;\n\n if (!retainActive) {\n that.prevActiveElement = that.activeElement;\n that.activeElement = undefined;\n }\n\n if (!that.multiple || maxOptions === 1) { // Deselect previous option if not multi select\n if (prevData) that.setSelected(prevData, false);\n that.setSelected(clickedData, true);\n } else { // Toggle the clicked option if multi select.\n that.setSelected(clickedData, !state);\n that.focusedParent.focus();\n\n if (maxOptions !== false || maxOptionsGrp !== false) {\n var maxReached = maxOptions < getSelectedOptions.call(that).length,\n selectedGroupOptions = 0;\n\n if (optgroup && optgroup.children) {\n for (var i = 0; i < optgroup.children.length; i++) {\n if (optgroup.children[i].selected) selectedGroupOptions++;\n }\n }\n\n var maxReachedGrp = maxOptionsGrp < selectedGroupOptions;\n\n if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {\n if (maxOptions && maxOptions === 1) {\n element.selectedIndex = -1;\n that.setOptionStatus(true);\n } else if (maxOptionsGrp && maxOptionsGrp === 1) {\n for (var j = 0; j < optgroupOptions.length; j++) {\n var _option = optgroupOptions[j];\n that.setSelected(that.selectpicker.current.data[_option.liIndex], false);\n }\n\n that.setSelected(clickedData, true);\n } else {\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n notify = createFromHTML('
    ');\n\n that.menu.appendChild(notify);\n\n if (maxOptions && maxReached) {\n notify.appendChild(createFromHTML('
    ' + maxTxt + '
    '));\n triggerChange = false;\n that._emit('maxReached');\n }\n\n if (maxOptionsGrp && maxReachedGrp) {\n notify.appendChild(createFromHTML('
    ' + maxTxtGrp + '
    '));\n triggerChange = false;\n that._emit('maxReachedGrp');\n }\n\n setTimeout(function () {\n that.setSelected(clickedData, false);\n }, 10);\n\n notify.classList.add('fadeOut');\n\n setTimeout(function () {\n notify.remove();\n }, 1050);\n }\n }\n }\n }\n\n if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue);\n\n if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {\n that.button.focus();\n } else if (that.options.liveSearch) {\n that.searchbox.focus();\n }\n\n // Trigger select 'change'\n if (triggerChange) {\n if (that.multiple || prevIndex !== element.selectedIndex) {\n changedArguments = [option.index, option.selected, prevValue];\n triggerNative(that.element, 'change');\n }\n }\n }\n }\n\n liveSearchListener () {\n var that = this;\n\n this._on(this.searchbox, 'click', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'focus', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'touchend', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'keydown', function (e) {\n if (e.key === 'Enter' && that.createOptionButton && !that.createOptionButton.hidden && !that.selectpicker.current.data.length) {\n e.preventDefault();\n e.stopPropagation();\n that.createOpenOption(that.searchbox.value);\n }\n });\n\n this._on(this.searchbox, 'input', function () {\n var searchValue = that.searchbox.value;\n\n that.selectpicker.search.elements = [];\n that.selectpicker.search.data = [];\n\n if (searchValue) {\n that.selectpicker.search.previousValue = searchValue;\n\n if (that.options.source.search) {\n that.fetchData(function () {\n that.appendCreatedSearchResults(searchValue);\n that.render();\n that.buildList(undefined, true);\n that.noScroll = true;\n that.menuInner.scrollTop = 0;\n that.createView(true);\n showNoResults.call(that, that.selectpicker.search.data, searchValue);\n }, 'search', 0, searchValue);\n } else {\n var searchMatch = [],\n q = searchValue.toUpperCase(),\n cache = {},\n cacheArr = [],\n searchStyle = that._searchStyle(),\n normalizeSearch = that.options.liveSearchNormalize;\n\n if (normalizeSearch) q = normalizeToBase(q);\n\n for (var i = 0; i < that.selectpicker.main.data.length; i++) {\n var li = that.selectpicker.main.data[i];\n\n if (!cache[i]) {\n cache[i] = stringSearch(li, q, searchStyle, normalizeSearch);\n }\n\n if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) {\n if (li.headerIndex > 0) {\n cache[li.headerIndex - 1] = true;\n cacheArr.push(li.headerIndex - 1);\n }\n\n cache[li.headerIndex] = true;\n cacheArr.push(li.headerIndex);\n\n cache[li.lastIndex + 1] = true;\n }\n\n if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);\n }\n\n for (var j = 0, cacheLen = cacheArr.length; j < cacheLen; j++) {\n var index = cacheArr[j],\n prevIndex = cacheArr[j - 1],\n liData = that.selectpicker.main.data[index],\n liPrev = that.selectpicker.main.data[prevIndex];\n\n if (liData.type !== 'divider' || (liData.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== j)) {\n that.selectpicker.search.data.push(liData);\n searchMatch.push(that.selectpicker.main.elements[index]);\n }\n }\n\n that.activeElement = undefined;\n that.noScroll = true;\n that.menuInner.scrollTop = 0;\n that.selectpicker.search.elements = searchMatch;\n that.createView(true);\n showNoResults.call(that, searchMatch, searchValue);\n }\n } else if (that.selectpicker.search.previousValue) {\n that.menuInner.scrollTop = 0;\n that.createView(false);\n }\n\n that.syncOpenOptionButton();\n });\n }\n\n _searchStyle () {\n return this.options.liveSearchStyle || 'contains';\n }\n\n getValue () {\n var element = this.element;\n\n if (this.multiple) {\n var values = [];\n for (var i = 0; i < element.options.length; i++) {\n if (element.options[i].selected) values.push(element.options[i].value);\n }\n return values;\n }\n\n return element.value;\n }\n\n val (value) {\n var element = this.element;\n\n if (typeof value !== 'undefined') {\n var selectedOptions = getSelectedOptions.call(this),\n prevValue = getSelectValues.call(this, selectedOptions);\n\n changedArguments = [null, null, prevValue];\n\n if (!Array.isArray(value)) value = [ value ];\n\n value.map(String);\n\n for (var i = 0; i < selectedOptions.length; i++) {\n var item = selectedOptions[i];\n\n if (item && value.indexOf(String(item.value)) === -1) {\n this.setSelected(item, false);\n }\n }\n\n // only update selected value if it matches an existing option\n this.selectpicker.main.data.filter(function (item) {\n if (value.indexOf(String(item.value)) !== -1) {\n this.setSelected(item, true);\n return true;\n }\n\n return false;\n }, this);\n\n if (this.options.source.data) element.appendChild(this.selectpicker.main.optionQueue);\n\n this._emit('changed', changedArguments ? {\n clickedIndex: changedArguments[0],\n isSelected: changedArguments[1],\n previousValue: changedArguments[2]\n } : null);\n\n if (this.newElement.classList.contains(classNames.SHOW)) {\n if (this.multiple) {\n this.setOptionStatus(true);\n } else {\n var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof liSelectedIndex === 'number') {\n this.setSelected(this.selectpicker.current.data[liSelectedIndex], true);\n }\n }\n }\n\n this.render();\n\n changedArguments = null;\n\n return this.element;\n } else {\n return this.getValue();\n }\n }\n\n changeAll (status) {\n if (!this.multiple) return;\n if (typeof status === 'undefined') status = true;\n\n var element = this.element,\n previousSelected = 0,\n currentSelected = 0,\n prevValue = getSelectValues.call(this);\n\n element.classList.add('bs-select-hidden');\n\n for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) {\n var liData = data[i],\n option = liData.option;\n\n if (option && !liData.disabled && liData.type !== 'divider') {\n if (liData.selected) previousSelected++;\n option.selected = status;\n liData.selected = status;\n if (status === true) currentSelected++;\n }\n }\n\n element.classList.remove('bs-select-hidden');\n\n if (previousSelected === currentSelected) return;\n\n this.setOptionStatus();\n\n changedArguments = [null, null, prevValue];\n\n triggerNative(this.element, 'change');\n }\n\n selectAll () {\n return this.changeAll(true);\n }\n\n deselectAll () {\n return this.changeAll(false);\n }\n\n toggle (e, state) {\n var isActive,\n triggerToggle = state === undefined;\n\n if (e && e.stopPropagation) e.stopPropagation();\n\n if (triggerToggle === false) {\n isActive = this.newElement.classList.contains(classNames.SHOW);\n triggerToggle = (state === true && isActive === false) || (state === false && isActive === true);\n }\n\n if (triggerToggle) this.dropdown.toggle();\n }\n\n open (e) {\n this.toggle(e, true);\n }\n\n close (e) {\n this.toggle(e, false);\n }\n\n _keydown (e, el) {\n var that = this,\n which = e.which || e.keyCode,\n isToggle = el.classList.contains('dropdown-toggle'),\n items = that.findLis(),\n index,\n isActive,\n liActive,\n activeLi,\n offsetVal,\n updateScroll = false,\n downOnTab = which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,\n isArrowKey = REGEXP_ARROW.test(which) || downOnTab,\n scrollTop = that.menuInner.scrollTop,\n isVirtual = that.isVirtual(),\n position0 = isVirtual === true ? that.selectpicker.view.position0 : 0;\n\n // do nothing if a function key is pressed\n if (which >= 112 && which <= 123) return;\n\n isActive = that.menu.classList.contains(classNames.SHOW);\n\n if (\n !isActive &&\n (\n isArrowKey ||\n (which >= 48 && which <= 57) ||\n (which >= 96 && which <= 105) ||\n (which >= 65 && which <= 90)\n )\n ) {\n that.dropdown.show();\n\n if (that.options.liveSearch) {\n that.searchbox.focus();\n return;\n }\n }\n\n if (which === keyCodes.ESCAPE && isActive) {\n e.preventDefault();\n that.dropdown.hide();\n that.button.focus();\n }\n\n if (isArrowKey) { // if up or down\n if (!items.length) return;\n\n liActive = that.activeElement;\n index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1;\n\n if (index !== -1) {\n that.defocusItem(liActive);\n }\n\n if (which === keyCodes.ARROW_UP) { // up\n if (index !== -1) index--;\n if (index + position0 < 0) index += items.length;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0;\n if (index === -1) index = items.length - 1;\n }\n } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down\n index++;\n if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);\n }\n }\n\n e.preventDefault();\n\n var liActiveIndex = position0 + index;\n\n if (which === keyCodes.ARROW_UP) { // up\n // scroll to bottom and highlight last option\n if (position0 === 0 && index === items.length - 1) {\n that.menuInner.scrollTop = that.menuInner.scrollHeight;\n\n liActiveIndex = that.selectpicker.current.elements.length - 1;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n\n // could be undefined if no results exist\n if (activeLi) {\n offsetVal = activeLi.position - activeLi.height;\n\n updateScroll = offsetVal < scrollTop;\n }\n }\n } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down\n // scroll to top and highlight first option\n if (index === that.selectpicker.view.firstHighlightIndex) {\n that.menuInner.scrollTop = 0;\n\n liActiveIndex = that.selectpicker.view.firstHighlightIndex;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n\n // could be undefined if no results exist\n if (activeLi) {\n offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight;\n\n updateScroll = offsetVal > scrollTop;\n }\n }\n }\n\n liActive = that.selectpicker.current.elements[liActiveIndex];\n\n that.activeElement = (that.selectpicker.current.data[liActiveIndex] || {}).element;\n\n that.focusItem(liActive);\n\n that.selectpicker.view.currentActive = liActive;\n\n if (updateScroll) that.menuInner.scrollTop = offsetVal;\n\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n el.focus();\n }\n } else if (\n (!el.matches('input') && !REGEXP_TAB_OR_ESCAPE.test(which)) ||\n (which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory)\n ) {\n var matches = [],\n keyHistory;\n\n e.preventDefault();\n\n that.selectpicker.keydown.keyHistory += keyCodeMap[which];\n\n if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);\n that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();\n\n keyHistory = that.selectpicker.keydown.keyHistory;\n\n // if all letters are the same, set keyHistory to just the first character when searching\n if (/^(.)\\1+$/.test(keyHistory)) {\n keyHistory = keyHistory.charAt(0);\n }\n\n // find matches\n for (var i = 0; i < that.selectpicker.current.data.length; i++) {\n var li = that.selectpicker.current.data[i],\n hasMatch;\n\n hasMatch = stringSearch(li, keyHistory, 'startsWith', true);\n\n if (hasMatch && that.selectpicker.view.canHighlight[i]) {\n matches.push(li.element);\n }\n }\n\n if (matches.length) {\n var matchIndex = 0;\n\n Array.prototype.forEach.call(items, function (item) {\n item.classList.remove('active');\n if (item.firstChild) item.firstChild.classList.remove('active');\n });\n\n // either only one key has been pressed or they are all the same key\n if (keyHistory.length === 1) {\n matchIndex = matches.indexOf(that.activeElement);\n\n if (matchIndex === -1 || matchIndex === matches.length - 1) {\n matchIndex = 0;\n } else {\n matchIndex++;\n }\n }\n\n activeLi = that.selectpicker.main.data[that.selectpicker.main.elements.indexOf(matches[matchIndex])];\n\n if (activeLi) {\n if (scrollTop - activeLi.position > 0) {\n offsetVal = activeLi.position - activeLi.height;\n updateScroll = true;\n } else {\n offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight;\n // if the option is already visible at the current scroll position, just keep it the same\n updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;\n }\n }\n\n liActive = matches[matchIndex];\n\n that.activeElement = liActive;\n\n that.focusItem(liActive);\n\n if (liActive) liActive.firstChild.focus();\n\n if (updateScroll) that.menuInner.scrollTop = offsetVal;\n\n el.focus();\n }\n }\n\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n if (\n isActive &&\n (\n (which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) ||\n which === keyCodes.ENTER ||\n (which === keyCodes.TAB && that.options.selectOnTab)\n )\n ) {\n if (which !== keyCodes.SPACE) e.preventDefault();\n\n if (!that.options.liveSearch || which !== keyCodes.SPACE) {\n var activeAnchor = that.menuInner.querySelector('.active a');\n if (activeAnchor) that.onOptionClick(activeAnchor, e, true); // retain active class\n el.focus();\n\n if (!that.options.liveSearch) {\n // Prevent screen from scrolling if the user hits the spacebar\n e.preventDefault();\n // Fixes spacebar selection of dropdown items in FF & IE\n spaceSelectFlag = true;\n }\n }\n }\n }\n\n mobile () {\n // ensure mobile is set to true if mobile function is called after init\n this.options.mobile = true;\n this.element.classList.add('mobile-device');\n }\n\n resetMenuData () {\n this.selectpicker.main.data = [];\n this.selectpicker.main.elements = [];\n this.selectpicker.main.hasMore = false;\n this.selectpicker.search.data = [];\n this.selectpicker.search.elements = [];\n this.selectpicker.search.hasMore = false;\n this.selectpicker.current.data = this.selectpicker.main.data;\n this.selectpicker.current.elements = this.selectpicker.main.elements;\n this.selectpicker.current.hasMore = false;\n this.selectpicker.isSearching = false;\n }\n\n refresh () {\n var that = this;\n // update options if data attributes have been changed\n var config = stripRemovedOptions(Object.assign({}, this.options, getAttributesObject(this.element), getDataset(this.element)));\n this.options = config;\n\n if (this.options.source.data) {\n this.render();\n this.buildList();\n } else {\n this.resetMenuData();\n this.fetchData(function () {\n that.render();\n that.buildList();\n });\n }\n\n this.checkDisabled();\n this.setStyle();\n this.setWidth();\n\n this.setSize(true);\n\n this._emit('refreshed');\n }\n\n hide () {\n this.newElement.style.display = 'none';\n }\n\n show () {\n this.newElement.style.display = '';\n }\n\n remove () {\n if (this.newElement.parentNode) this.newElement.parentNode.removeChild(this.newElement);\n instanceMap.delete(this.element);\n }\n\n destroy () {\n // move the select back out of newElement, then remove newElement\n if (this.newElement.parentNode) {\n this.newElement.parentNode.insertBefore(this.element, this.newElement);\n this.newElement.parentNode.removeChild(this.newElement);\n }\n\n if (this.bsContainer) {\n if (this.bsContainer.parentNode) this.bsContainer.parentNode.removeChild(this.bsContainer);\n } else if (this.menu && this.menu.parentNode) {\n this.menu.parentNode.removeChild(this.menu);\n }\n\n if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode) {\n this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);\n }\n\n // remove all tracked event listeners\n for (var i = 0; i < this._listeners.length; i++) {\n var l = this._listeners[i];\n l.el.removeEventListener(l.type, l.handler, l.options);\n }\n this._listeners = [];\n\n for (var key in this._named) {\n if (Object.prototype.hasOwnProperty.call(this._named, key)) {\n this._removeNamed(key);\n }\n }\n\n if (this.dropdown && typeof this.dropdown.dispose === 'function') {\n this.dropdown.dispose();\n }\n\n this.element.classList.remove('bs-select-hidden', 'selectpicker', 'mobile-device');\n\n instanceMap.delete(this.element);\n }\n}\n\n// stores element -> Selectpicker instance\nvar instanceMap = new WeakMap();\n\nSelectpicker.NAME = 'selectpicker';\nSelectpicker.VERSION = '1.1.0';\n\n// user-provided global defaults (set via Selectpicker.setDefaults, used by i18n files)\nSelectpicker.defaults = null;\n\n// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\nSelectpicker.DEFAULTS = {\n noneSelectedText: 'Nothing selected',\n noneResultsText: 'No results matched {0}',\n countSelectedText: function (numSelected) {\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\n ];\n },\n selectAllText: 'Select All',\n deselectAllText: 'Deselect All',\n source: {\n pageSize: 40,\n create: null\n },\n chunkSize: 40,\n doneButton: false,\n doneButtonText: 'Close',\n multipleSeparator: ', ',\n style: classNames.BUTTONCLASS,\n size: 'auto',\n placeholder: null,\n allowClear: false,\n selectedTextFormat: 'values',\n hideDisabled: false,\n showSubtext: false,\n showIcon: true,\n showContent: true,\n dropupAuto: true,\n header: false,\n liveSearch: false,\n liveSearchPlaceholder: null,\n liveSearchNormalize: false,\n liveSearchStyle: 'contains',\n openOptions: false,\n openOptionsText: 'Create \"{0}\"',\n selectionIndicator: 'checkmark',\n actionsBox: false,\n iconBase: classNames.ICONBASE,\n tickIcon: classNames.TICKICON,\n showTick: false,\n showSelectedTags: false,\n selectedItemsStyle: 'tags',\n selectedTagRemoveLabel: 'Remove',\n template: {\n caret: ''\n },\n maxOptions: false,\n selectOnTab: true,\n dropdownAlignRight: false,\n virtualScroll: 600,\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n};\n\nSelectpicker._buildConfig = function (element, options) {\n options = stripRemovedOptions(options || {});\n\n var dataAttributes = stripRemovedOptions(getDataset(element));\n\n for (var dataAttr in dataAttributes) {\n if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n }\n\n var userDefaults = stripRemovedOptions(Selectpicker.defaults || {});\n\n var config = Object.assign({}, Selectpicker.DEFAULTS, userDefaults, getAttributesObject(element), dataAttributes, options);\n config.template = Object.assign({}, Selectpicker.DEFAULTS.template, userDefaults.template || {}, dataAttributes.template, options.template);\n config.source = Object.assign({}, Selectpicker.DEFAULTS.source, userDefaults.source || {}, options.source);\n\n return config;\n};\n\nSelectpicker.setDefaults = function (newDefaults) {\n Selectpicker.defaults = stripRemovedOptions(Object.assign({}, Selectpicker.defaults, newDefaults));\n};\n\nSelectpicker.getInstance = function (element) {\n if (typeof element === 'string') element = document.querySelector(element);\n return instanceMap.get(element) || null;\n};\n\nSelectpicker.getOrCreateInstance = function (element, options) {\n if (typeof element === 'string') element = document.querySelector(element);\n if (!element || element.tagName !== 'SELECT') return null;\n\n var instance = instanceMap.get(element);\n\n if (instance) {\n options = stripRemovedOptions(options);\n\n if (options && typeof options === 'object') {\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n instance.options[i] = options[i];\n }\n }\n }\n\n return instance;\n }\n\n return new Selectpicker(element, typeof options === 'object' ? options : {});\n};\n\n// \nvar KEYDOWN_SELECTOR = '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input';\n\n// Handle keyboard navigation ourselves. This listener runs in the capture\n// phase on `window` so it executes before Bootstrap's `document`-level\n// (capture-phase, delegated) dropdown keydown handler and prevents it from\n// processing bootstrap-select's custom menu (which would otherwise error on\n// relocated/container menus and conflict with our own navigation). This\n// replaces the upstream approach of unbinding Bootstrap's global handler.\nwindow.addEventListener('keydown', function (e) {\n var target = e.target;\n if (!target || !target.closest) return;\n\n // Any keydown originating inside a bootstrap-select widget (or its relocated\n // menu container) must not reach Bootstrap's dropdown keydown handler.\n var widget = target.closest('.bootstrap-select, .bs-container');\n if (!widget) return;\n\n e.stopImmediatePropagation();\n\n var trigger = target.closest(KEYDOWN_SELECTOR);\n if (!trigger) return;\n\n var instance;\n for (var node = trigger; node; node = node.parentElement) {\n if (node.bootstrapSelectInstance) {\n instance = node.bootstrapSelectInstance;\n break;\n }\n }\n\n if (instance) instance._keydown(e, trigger);\n}, true);\n\ndocument.addEventListener('focusin', function (e) {\n var target = e.target;\n if (target && target.closest && target.closest(KEYDOWN_SELECTOR)) {\n e.stopPropagation();\n }\n});\n\nfunction initAll () {\n var selects = document.querySelectorAll('.selectpicker');\n Array.prototype.forEach.call(selects, function (select) {\n Selectpicker.getOrCreateInstance(select);\n });\n}\n\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', initAll);\n} else {\n initAll();\n}\n// \n\nif (typeof window !== 'undefined') {\n window.Selectpicker = Selectpicker;\n}\n\nreturn Selectpicker;\n"]} \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.js b/docs/dist/js/bootstrap-select.js new file mode 100644 index 0000000..0a88aa0 --- /dev/null +++ b/docs/dist/js/bootstrap-select.js @@ -0,0 +1,3740 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +'use strict'; + +// Resolve Bootstrap's Dropdown component (Bootstrap 5+). It may be provided +// by the UMD factory (`bootstrap`), or available as a global. +function getDropdown () { + var bs = bootstrap || (typeof window !== 'undefined' ? window.bootstrap : undefined); + return (bs && bs.Dropdown) || (typeof window !== 'undefined' ? window.Dropdown : undefined); +} + +// +function createFromHTML (html) { + var wrapper = document.createElement('div'); + wrapper.innerHTML = html.trim(); + return wrapper.firstChild; +} + +function toInteger (value) { + return parseInt(value, 10) || 0; +} + +function offset (el) { + var rect = el.getBoundingClientRect(); + return { + top: rect.top + window.pageYOffset, + left: rect.left + window.pageXOffset + }; +} + +// Resolves a container option (selector string or element) to an element. +function resolveContainer (container) { + if (!container) return null; + return typeof container === 'string' ? document.querySelector(container) : container; +} + +function outerHeight (el, includeMargin) { + var height = el.offsetHeight; + if (includeMargin) { + var style = window.getComputedStyle(el); + height += toInteger(style.marginTop) + toInteger(style.marginBottom); + } + return height; +} + +function setStyles (el, styles) { + for (var prop in styles) { + if (Object.prototype.hasOwnProperty.call(styles, prop)) { + el.style[prop] = styles[prop]; + } + } +} + +function triggerNative (el, eventName) { + el.dispatchEvent(new Event(eventName, { bubbles: true })); +} + +// shallow array comparison +function isEqual (array1, array2) { + return array1.length === array2.length && array1.every(function (element, index) { + return element === array2[index]; + }); +} + +function toKebabCase (str) { + return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, function ($, ofs) { + return (ofs ? '-' : '') + $.toLowerCase(); + }); +} + +function toCamelCase (str) { + return str.replace(/-([a-z])/g, function (m, letter) { + return letter.toUpperCase(); + }); +} + +// Read options from data-* attributes using native values where possible. +function convertDataValue (value) { + if (value === 'true') return true; + if (value === 'false') return false; + if (value === 'null') return null; + if (value === +value + '') return +value; + if (/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/.test(value)) { + try { + return JSON.parse(value); + } catch (e) { + return value; + } + } + return value; +} + +function getDataset (el) { + var dataset = {}, + attributes = el.attributes; + + for (var i = 0; i < attributes.length; i++) { + var name = attributes[i].name; + if (name.indexOf('data-') === 0) { + dataset[toCamelCase(name.slice(5))] = convertDataValue(attributes[i].value); + } + } + + return dataset; +} +// + +// +var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; + +var uriAttrs = [ + 'background', + 'cite', + 'href', + 'itemtype', + 'longdesc', + 'poster', + 'src', + 'xlink:href' +]; + +var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; + +var DefaultWhitelist = { + // Global attributes allowed on any supplied element below. + '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN], + a: ['target', 'href', 'title', 'rel'], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ['src', 'alt', 'title', 'width', 'height'], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] +}; + +// A pattern that recognizes a commonly useful subset of URLs that are safe. +var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi; + +// A pattern that matches safe data URLs. Only matches image, video and audio types. +var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; + +var ParseableAttributes = ['placeholder']; // attributes to use as settings, can add others in the future + +function allowedAttribute (attr, allowedAttributeList) { + var attrName = attr.nodeName.toLowerCase(); + + if (allowedAttributeList.indexOf(attrName) !== -1) { + if (uriAttrs.indexOf(attrName) !== -1) { + return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)); + } + + return true; + } + + var regExp = allowedAttributeList.filter(function (value) { + return value instanceof RegExp; + }); + + // Check if a regular expression validates the attribute. + for (var i = 0, l = regExp.length; i < l; i++) { + if (attrName.match(regExp[i])) { + return true; + } + } + + return false; +} + +function sanitizeHtml (unsafeElements, whiteList, sanitizeFn) { + if (sanitizeFn && typeof sanitizeFn === 'function') { + return sanitizeFn(unsafeElements); + } + + var whitelistKeys = Object.keys(whiteList); + + for (var i = 0, len = unsafeElements.length; i < len; i++) { + var elements = unsafeElements[i].querySelectorAll('*'); + + for (var j = 0, len2 = elements.length; j < len2; j++) { + var el = elements[j]; + var elName = el.nodeName.toLowerCase(); + + if (whitelistKeys.indexOf(elName) === -1) { + el.parentNode.removeChild(el); + + continue; + } + + var attributeList = [].slice.call(el.attributes); + var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); + + for (var k = 0, len3 = attributeList.length; k < len3; k++) { + var attr = attributeList[k]; + + if (!allowedAttribute(attr, whitelistedAttributes)) { + el.removeAttribute(attr.nodeName); + } + } + } + } +} +// + +function getAttributesObject (element) { + var attributesObject = {}, + attrVal; + + ParseableAttributes.forEach(function (item) { + attrVal = element.getAttribute(item); + if (attrVal) attributesObject[item] = attrVal; + }); + + return attributesObject; +} + +// +function stringSearch (li, searchString, method, normalize) { + var stringTypes = [ + 'display', + 'subtext', + 'tokens' + ], + searchSuccess = false; + + for (var i = 0; i < stringTypes.length; i++) { + var stringType = stringTypes[i], + string = li[stringType]; + + if (string) { + string = string.toString(); + + // Strip HTML tags. This isn't perfect, but it's much faster than any other method + if (stringType === 'display') { + string = string.replace(/<[^>]+>/g, ''); + } + + if (normalize) string = normalizeToBase(string); + string = string.toUpperCase(); + + if (typeof method === 'function') { + searchSuccess = method(string, searchString); + } else if (method === 'contains') { + searchSuccess = string.indexOf(searchString) >= 0; + } else { + searchSuccess = string.startsWith(searchString); + } + + if (searchSuccess) break; + } + } + + return searchSuccess; +} + +function normalizeSearchInput (value, normalize) { + if (value === undefined || value === null) value = ''; + value = value.toString().trim(); + + if (normalize && value) value = normalizeToBase(value); + + return value.toUpperCase(); +} + +function getOptionLabelText (option) { + if (!option) return ''; + + return option.title || option.text || option.value || ''; +} + +// Borrowed from Lodash (_.deburr) +/** Used to map Latin Unicode letters to basic Latin letters. */ +var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' +}; + +/** Used to match Latin Unicode letters (excluding mathematical operators). */ +var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + +/** Used to compose unicode character classes. */ +var rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboMarksExtendedRange = '\\u1ab0-\\u1aff', + rsComboMarksSupplementRange = '\\u1dc0-\\u1dff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange; + +/** Used to compose unicode capture groups. */ +var rsCombo = '[' + rsComboRange + ']'; + +var reComboMark = RegExp(rsCombo, 'g'); + +function deburrLetter (key) { + return deburredLetters[key]; +} + +function normalizeToBase (string) { + string = string.toString(); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); +} + +// List of HTML entities for escaping. +var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}; + +var createEscaper = function (map) { + var escaper = function (match) { + return map[match]; + }; + var source = '(?:' + Object.keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function (string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +}; + +var htmlEscape = createEscaper(escapeMap); +// + +// +var keyCodeMap = { + 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', + 55: '7', 56: '8', 57: '9', 59: ';', + 65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 72: 'H', + 73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P', + 81: 'Q', 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X', + 89: 'Y', 90: 'Z', + 96: '0', 97: '1', 98: '2', 99: '3', 100: '4', 101: '5', 102: '6', + 103: '7', 104: '8', 105: '9' +}; + +var keyCodes = { + ESCAPE: 27, + ENTER: 13, + SPACE: 32, + TAB: 9, + ARROW_UP: 38, + ARROW_DOWN: 40 +}; + +var selectId = 0; + +var EVENT_KEY = '.bs.select'; + +// Bootstrap 5 class names. +var classNames = { + DISABLED: 'disabled', + DIVIDER: 'dropdown-divider', + SHOW: 'show', + DROPUP: 'dropup', + MENU: 'dropdown-menu', + MENUEND: 'dropdown-menu-end', + BUTTONCLASS: 'btn-light', + POPOVERHEADER: 'popover-header', + ICONBASE: '', + TICKICON: 'bs-ok-default' +}; + +var Selector = { + MENU: '.' + classNames.MENU, + DATA_TOGGLE: 'data-bs-toggle="dropdown"' +}; + +var elementTemplates = { + div: document.createElement('div'), + span: document.createElement('span'), + i: document.createElement('i'), + subtext: document.createElement('small'), + a: document.createElement('a'), + li: document.createElement('li'), + whitespace: document.createTextNode('\u00A0'), + fragment: document.createDocumentFragment(), + option: document.createElement('option') +}; + +elementTemplates.selectedOption = elementTemplates.option.cloneNode(false); +elementTemplates.selectedOption.setAttribute('selected', true); + +elementTemplates.noResults = elementTemplates.li.cloneNode(false); +elementTemplates.noResults.className = 'no-results'; + +elementTemplates.a.setAttribute('role', 'option'); +elementTemplates.a.className = 'dropdown-item'; + +elementTemplates.subtext.className = 'text-muted'; + +elementTemplates.text = elementTemplates.span.cloneNode(false); +elementTemplates.text.className = 'text'; + +elementTemplates.checkMark = elementTemplates.span.cloneNode(false); + +var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN); +var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE); + +var generateOption = { + li: function (content, classes, optgroup) { + var li = elementTemplates.li.cloneNode(false); + + if (content) { + if (content.nodeType === 1 || content.nodeType === 11) { + li.appendChild(content); + } else { + li.innerHTML = content; + } + } + + if (typeof classes !== 'undefined' && classes !== '') li.className = classes; + if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup); + + return li; + }, + + a: function (text, classes, inline) { + var a = elementTemplates.a.cloneNode(true); + + if (text) { + if (text.nodeType === 11) { + a.appendChild(text); + } else { + a.insertAdjacentHTML('beforeend', text); + } + } + + if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\s+/)); + if (inline) a.setAttribute('style', inline); + + return a; + }, + + text: function (options, useFragment) { + var textElement = elementTemplates.text.cloneNode(false), + subtextElement, + iconElement; + + if (options.content) { + textElement.innerHTML = options.content; + } else { + textElement.textContent = options.text; + + if (options.icon) { + var whitespace = elementTemplates.whitespace.cloneNode(false); + + // need to use for icons in the button to prevent a breaking change + iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false); + iconElement.className = this.options.iconBase + ' ' + options.icon; + + elementTemplates.fragment.appendChild(iconElement); + elementTemplates.fragment.appendChild(whitespace); + } + + if (options.subtext) { + subtextElement = elementTemplates.subtext.cloneNode(false); + subtextElement.textContent = options.subtext; + textElement.appendChild(subtextElement); + } + } + + if (useFragment === true) { + while (textElement.childNodes.length > 0) { + elementTemplates.fragment.appendChild(textElement.childNodes[0]); + } + } else { + elementTemplates.fragment.appendChild(textElement); + } + + return elementTemplates.fragment; + }, + + label: function (options) { + var textElement = elementTemplates.text.cloneNode(false), + subtextElement, + iconElement; + + textElement.innerHTML = options.display; + + if (options.icon) { + var whitespace = elementTemplates.whitespace.cloneNode(false); + + iconElement = elementTemplates.span.cloneNode(false); + iconElement.className = this.options.iconBase + ' ' + options.icon; + + elementTemplates.fragment.appendChild(iconElement); + elementTemplates.fragment.appendChild(whitespace); + } + + if (options.subtext) { + subtextElement = elementTemplates.subtext.cloneNode(false); + subtextElement.textContent = options.subtext; + textElement.appendChild(subtextElement); + } + + elementTemplates.fragment.appendChild(textElement); + + return elementTemplates.fragment; + } +}; + +var getOptionData = { + fromOption: function (option, type) { + var value; + + switch (type) { + case 'divider': + value = option.getAttribute('data-divider') === 'true'; + break; + + case 'text': + value = option.textContent; + break; + + case 'label': + value = option.label; + break; + + case 'style': + value = option.style.cssText; + break; + + case 'title': + value = option.title; + break; + + default: + value = option.getAttribute('data-' + toKebabCase(type)); + break; + } + + return value; + }, + fromDataSource: function (option, type) { + var value; + + switch (type) { + case 'text': + case 'label': + value = option.text || option.value || ''; + break; + + default: + value = option[type]; + break; + } + + return value; + } +}; + +function showNoResults (searchMatch, searchValue) { + if (!searchMatch.length) { + elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '"' + htmlEscape(searchValue) + '"'); + this.menuInner.firstChild.appendChild(elementTemplates.noResults); + } +} + +function filterHidden (item) { + return !(item.hidden || this.options.hideDisabled && item.disabled); +} + +function getSelectedOptions () { + var options = this.selectpicker.main.data; + + if (this.options.source.data || this.options.source.search) { + options = Object.values(this.selectpicker.optionValuesDataMap); + } + + var selectedOptions = options.filter(function (item) { + if (item.selected) { + if (this.options.hideDisabled && item.disabled) return false; + return true; + } + + return false; + }, this); + + // ensure only 1 option is selected if multiple are set in the data source + if (this.options.source.data && !this.multiple && selectedOptions.length > 1) { + for (var i = 0; i < selectedOptions.length - 1; i++) { + selectedOptions[i].selected = false; + } + + selectedOptions = [ selectedOptions[selectedOptions.length - 1] ]; + } + + return selectedOptions; +} + +function getSelectValues (selectedOptions) { + var value = [], + options = selectedOptions || getSelectedOptions.call(this), + opt; + + for (var i = 0, len = options.length; i < len; i++) { + opt = options[i]; + + if (!opt.disabled) { + value.push(opt.value === undefined ? opt.text : opt.value); + } + } + + if (!this.multiple) { + return !value.length ? null : value[0]; + } + + return value; +} +// + +var changedArguments = null; + +// shared flag for spacebar selection handling (mirrors original document data flag) +var spaceSelectFlag = false; + +var REMOVED_OPTIONS = ['container', 'display', 'mobile', 'styleBase', 'width', 'windowPadding']; + +function stripRemovedOptions (source) { + if (!source || typeof source !== 'object') return source; + + var result = Object.assign({}, source); + + for (var i = 0; i < REMOVED_OPTIONS.length; i++) { + delete result[REMOVED_OPTIONS[i]]; + } + + return result; +} + +class Selectpicker { + constructor (element, options) { + if (typeof element === 'string') { + element = document.querySelector(element); + } + + if (!element || element.tagName !== 'SELECT') { + throw new TypeError('Selectpicker requires a select element or selector.'); + } + + this.element = element; + this.newElement = null; + this.button = null; + this.menu = null; + this.options = Selectpicker._buildConfig(element, options || {}); + + // tracked event listeners for clean teardown + this._listeners = []; + this._named = {}; + + this.selectpicker = { + main: { + data: [], + optionQueue: elementTemplates.fragment.cloneNode(false), + hasMore: false + }, + search: { + data: [], + hasMore: false + }, + current: {}, // current is either equal to main or search depending on if a search is in progress + view: {}, + // map of option values and their respective data (only used in conjunction with options.source) + optionValuesDataMap: {}, + createdOptions: [], + openOption: { + isCreating: false + }, + isSearching: false, + keydown: { + keyHistory: '', + resetKeyHistory: { + start: () => { + return setTimeout(() => { + this.selectpicker.keydown.keyHistory = ''; + }, 800); + } + } + } + }; + + this.sizeInfo = {}; + + this.init(); + + instanceMap.set(element, this); + } + + // + _on (el, type, handler, options) { + el.addEventListener(type, handler, options); + this._listeners.push({ el: el, type: type, handler: handler, options: options }); + return handler; + } + + _delegate (el, type, selector, handler, options) { + var listener = function (e) { + var target = e.target.closest(selector); + if (target && el.contains(target)) { + handler.call(target, e); + } + }; + return this._on(el, type, listener, options); + } + + _emit (name, detail) { + var event = new CustomEvent(name + EVENT_KEY, { + bubbles: true, + cancelable: true, + detail: detail || null + }); + this.element.dispatchEvent(event); + return event; + } + + // adds an event listener that replaces any previously-registered listener under `key` + _replace (key, el, type, handler, options) { + this._removeNamed(key); + el.addEventListener(type, handler, options); + this._named[key] = { el: el, type: type, handler: handler, options: options }; + } + + _removeNamed (key) { + var prev = this._named[key]; + if (prev) { + prev.el.removeEventListener(prev.type, prev.handler, prev.options); + delete this._named[key]; + } + } + // + + init () { + var that = this, + id = this.element.getAttribute('id'), + element = this.element, + form = element.form; + + selectId++; + this.selectId = 'bs-select-' + selectId; + + element.classList.add('bs-select-hidden'); + + this.multiple = this.element.multiple; + this.autofocus = this.element.autofocus; + + if (element.classList.contains('show-tick')) { + this.options.showTick = true; + } + + this.newElement = this.createDropdown(); + + // insert newElement after element, then move element to be the first child of newElement + element.parentNode.insertBefore(this.newElement, element.nextSibling); + this.newElement.insertBefore(element, this.newElement.firstChild); + + // ensure select is associated with form element if it got unlinked after moving it inside newElement + if (form && element.form === null) { + if (!form.id) form.id = 'form-' + this.selectId; + element.setAttribute('form', form.id); + } + + this.button = this.newElement.querySelector(':scope > button'); + if (this.options.allowClear) this.clearButton = this.button.querySelector('.bs-select-clear-selected'); + this.menu = this.newElement.querySelector(':scope > ' + Selector.MENU); + this.menuInner = this.menu.querySelector('.inner'); + this.searchbox = this.menu.querySelector('input'); + this.selectedItems = this.newElement.querySelector(':scope > .bs-selected-items-external') || this.menu.querySelector('.bs-selected-items'); + this.createOptionButton = this.menu.querySelector('.bs-create-option'); + + element.classList.remove('bs-select-hidden'); + + this.fetchData(function () { + that.render(true); + that.buildList(); + + requestAnimationFrame(function () { + that._emit('loaded'); + }); + }); + + if (this.options.dropdownAlignRight === true) this.menu.classList.add(classNames.MENUEND); + + if (typeof id !== 'undefined' && id !== null) { + this.button.setAttribute('data-id', id); + } + + this.checkDisabled(); + this.clickListener(); + + var Dropdown = getDropdown(); + this.dropdown = new Dropdown(this.button); + + // store a reference to the instance for delegated handlers + this.newElement.bootstrapSelectInstance = this; + this.menu.bootstrapSelectInstance = this; + + if (this.options.liveSearch) { + this.liveSearchListener(); + this.focusedParent = this.searchbox; + } else { + this.focusedParent = this.menuInner; + } + + this.setStyle(); + this.setWidth(); + this._on(this.element, 'hide' + EVENT_KEY, function () { + if (that.isVirtual()) { + // empty menu on close + var menuInner = that.menuInner, + emptyMenu = menuInner.firstChild.cloneNode(false); + + // replace the existing UL with an empty one - this is faster than emptying it + menuInner.replaceChild(emptyMenu, menuInner.firstChild); + menuInner.scrollTop = 0; + } + }); + + // re-emit Bootstrap dropdown events as bootstrap-select events + this._on(this.newElement, 'hide.bs.dropdown', function (e) { + that._emit('hide', { bsEvent: e }); + }); + this._on(this.newElement, 'hidden.bs.dropdown', function (e) { + that._emit('hidden', { bsEvent: e }); + }); + this._on(this.newElement, 'show.bs.dropdown', function (e) { + that.onShow(e); + that._emit('show', { bsEvent: e }); + }); + this._on(this.newElement, 'shown.bs.dropdown', function (e) { + that._emit('shown', { bsEvent: e }); + }); + + if (element.hasAttribute('required')) { + this._on(this.element, 'invalid', function () { + that.button.classList.add('bs-invalid'); + + var onShownInvalid = function () { + // set the value to hide the validation message in Chrome when menu is opened + triggerNative(that.element, 'change'); + that.element.removeEventListener('shown' + EVENT_KEY, onShownInvalid); + }; + that._on(that.element, 'shown' + EVENT_KEY, onShownInvalid); + + var onRendered = function () { + // if select is no longer invalid, remove the bs-invalid class + if (that.element.validity.valid) that.button.classList.remove('bs-invalid'); + that.element.removeEventListener('rendered' + EVENT_KEY, onRendered); + }; + that._on(that.element, 'rendered' + EVENT_KEY, onRendered); + + var onBlur = function () { + that.element.focus(); + that.element.blur(); + that.button.removeEventListener('blur' + EVENT_KEY, onBlur); + }; + that._on(that.button, 'blur' + EVENT_KEY, onBlur); + }); + } + + if (form) { + this._on(form, 'reset', function () { + requestAnimationFrame(function () { + that.render(); + }); + }); + } + } + + createDropdown () { + // If we are multiple or showTick option is set, then add the show-tick class + var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '', + showSelectedTags = this.options.showSelectedTags ? ' show-selected-tags' : '', + selectedItemsStyle = this.options.selectedItemsStyle === 'list' ? ' selected-items-style-list' : '', + selectionIndicator = this.options.selectionIndicator === 'checkbox' ? ' selection-indicator-checkbox' : '', + multiselectable = this.multiple ? ' aria-multiselectable="true"' : '', + autofocus = this.autofocus ? ' autofocus' : '', + liveSearchPlaceholder = this.options.liveSearchPlaceholder; + + if (liveSearchPlaceholder === null && (this.options.showSelectedTags || this.options.openOptions)) { + liveSearchPlaceholder = this.options.placeholder || 'Search'; + } + + // Elements + var drop, + header = '', + searchbox = '', + actionsbox = '', + donebutton = '', + clearButton = ''; + + if (this.options.header) { + header = + '
    ' + + '' + + this.options.header + + '
    '; + } + + if (this.options.liveSearch) { + searchbox = + ''; + } + + if (this.multiple && this.options.actionsBox) { + actionsbox = + '
    ' + + '
    ' + + '' + + '' + + '
    ' + + '
    '; + } + + if (this.multiple && this.options.doneButton) { + donebutton = + '
    ' + + '
    ' + + '' + + '
    ' + + '
    '; + } + + if (this.options.allowClear) { + clearButton = '×'; + } + + drop = + ''; + + return createFromHTML(drop); + } + + // runs when the dropdown is about to be shown + onShow () { + if (this.options.liveSearch && this.searchbox.value) { + this.searchbox.value = ''; + this.selectpicker.search.previousValue = undefined; + } + + if (!this.newElement.classList.contains(classNames.SHOW)) { + this.setSize(); + } + } + + setPositionData () { + this.selectpicker.view.canHighlight = []; + this.selectpicker.view.size = 0; + this.selectpicker.view.firstHighlightIndex = false; + + for (var i = 0; i < this.selectpicker.current.data.length; i++) { + var li = this.selectpicker.current.data[i], + canHighlight = true; + + if (li.type === 'divider') { + canHighlight = false; + li.height = this.sizeInfo.dividerHeight; + } else if (li.type === 'optgroup-label') { + canHighlight = false; + li.height = this.sizeInfo.dropdownHeaderHeight; + } else { + li.height = this.sizeInfo.liHeight; + } + + if (li.disabled) canHighlight = false; + + this.selectpicker.view.canHighlight.push(canHighlight); + + if (canHighlight) { + this.selectpicker.view.size++; + li.posinset = this.selectpicker.view.size; + if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i; + } + + li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height; + } + } + + isVirtual () { + return (this.options.virtualScroll !== false) && (this.selectpicker.main.data.length >= this.options.virtualScroll) || this.options.virtualScroll === true; + } + + createView (isSearching, setSize, refresh) { + var that = this, + scrollTop = 0; + + this.selectpicker.isSearching = isSearching; + this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main; + + this.setPositionData(); + + if (setSize) { + if (refresh) { + scrollTop = this.menuInner.scrollTop; + } else if (!that.multiple) { + var element = that.element, + selectedIndex = (element.options[element.selectedIndex] || {}).liIndex; + + if (typeof selectedIndex === 'number' && that.options.size !== false) { + var selectedData = that.selectpicker.main.data[selectedIndex], + position = selectedData && selectedData.position; + + if (position) { + scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2); + } + } + } + } + + scroll(scrollTop, true); + + this._replace('createViewScroll', this.menuInner, 'scroll', function () { + if (!that.noScroll) scroll(that.menuInner.scrollTop); + that.noScroll = false; + }); + + function scroll (scrollTop, init) { + var size = that.selectpicker.current.data.length, + chunks = [], + chunkSize, + chunkCount, + firstChunk, + lastChunk, + currentChunk, + prevPositions, + positionIsDifferent, + previousElements, + menuIsDifferent = true, + isVirtual = that.isVirtual(); + + that.selectpicker.view.scrollTop = scrollTop; + + chunkSize = that.options.chunkSize; // number of options in a chunk + chunkCount = Math.ceil(size / chunkSize) || 1; // number of chunks + + for (var i = 0; i < chunkCount; i++) { + var endOfChunk = (i + 1) * chunkSize; + + if (i === chunkCount - 1) { + endOfChunk = size; + } + + chunks[i] = [ + (i) * chunkSize + (!i ? 0 : 1), + endOfChunk + ]; + + if (!size) break; + + if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) { + currentChunk = i; + } + } + + if (currentChunk === undefined) currentChunk = 0; + + prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1]; + + // always display previous, current, and next chunks + firstChunk = Math.max(0, currentChunk - 1); + lastChunk = Math.min(chunkCount - 1, currentChunk + 1); + + that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0); + that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0); + + positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1; + + if (that.activeElement !== undefined) { + if (init) { + if (that.activeElement !== that.selectedElement) { + that.defocusItem(that.activeElement); + } + that.activeElement = undefined; + } + + if (that.activeElement !== that.selectedElement) { + that.defocusItem(that.selectedElement); + } + } + + if (that.prevActiveElement !== undefined && that.prevActiveElement !== that.activeElement && that.prevActiveElement !== that.selectedElement) { + that.defocusItem(that.prevActiveElement); + } + + if (init || positionIsDifferent || that.selectpicker.current.hasMore) { + previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : []; + + if (isVirtual === false) { + that.selectpicker.view.visibleElements = that.selectpicker.current.elements; + } else { + that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1); + } + + that.setOptionStatus(); + + // if searching, check to make sure the list has actually been updated before updating DOM + // this prevents unnecessary repaints + if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements); + + // if virtual scroll is disabled and not searching, + // menu should never need to be updated more than once + if ((init || isVirtual === true) && menuIsDifferent) { + var menuInner = that.menuInner, + menuFragment = document.createDocumentFragment(), + emptyMenu = menuInner.firstChild.cloneNode(false), + marginTop, + marginBottom, + elements = that.selectpicker.view.visibleElements, + toSanitize = []; + + // replace the existing UL with an empty one - this is faster than emptying it + menuInner.replaceChild(emptyMenu, menuInner.firstChild); + + for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) { + var element = elements[i], + elText, + elementData; + + if (that.options.sanitize) { + elText = element.lastChild; + + if (elText) { + elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0]; + + if (elementData && elementData.content && !elementData.sanitized) { + toSanitize.push(elText); + elementData.sanitized = true; + } + } + } + + menuFragment.appendChild(element); + } + + if (that.options.sanitize && toSanitize.length) { + sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn); + } + + if (isVirtual === true) { + marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position); + marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position); + + menuInner.firstChild.style.marginTop = marginTop + 'px'; + menuInner.firstChild.style.marginBottom = marginBottom + 'px'; + } else { + menuInner.firstChild.style.marginTop = 0; + menuInner.firstChild.style.marginBottom = 0; + } + + menuInner.firstChild.appendChild(menuFragment); + + // if an option is encountered that is wider than the current menu width, update the menu width accordingly + if (isVirtual === true && that.sizeInfo.hasScrollBar) { + var menuInnerInnerWidth = menuInner.firstChild.offsetWidth; + + if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) { + menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px'; + } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) { + // set to 0 to get actual width of menu + that.menu.style.minWidth = 0; + + var actualMenuWidth = menuInner.firstChild.offsetWidth; + + if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) { + that.sizeInfo.menuInnerInnerWidth = actualMenuWidth; + menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px'; + } + + // reset to default CSS styling + that.menu.style.minWidth = ''; + } + } + } + + if ((!isSearching && that.options.source.data || isSearching && that.options.source.search) && that.selectpicker.current.hasMore && currentChunk === chunkCount - 1) { + // Don't load the next chunk until scrolling has started + // This prevents unnecessary requests while the user is typing if pageSize is <= chunkSize + if (scrollTop > 0) { + // Chunks use 0-based indexing, but pages use 1-based. Add 1 to convert and add 1 again to get next page + var page = Math.floor((currentChunk * that.options.chunkSize) / that.options.source.pageSize) + 2; + + that.fetchData(function () { + that.render(); + that.buildList(size, isSearching); + that.setPositionData(); + scroll(scrollTop); + }, isSearching ? 'search' : 'data', page, isSearching ? that.selectpicker.search.previousValue : undefined); + } + } + } + + that.prevActiveElement = that.activeElement; + + if (!that.options.liveSearch) { + that.menuInner.focus(); + } else if (isSearching && init) { + var index = 0, + newActive; + + if (!that.selectpicker.view.canHighlight[index]) { + index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true); + } + + newActive = that.selectpicker.view.visibleElements[index]; + + that.defocusItem(that.selectpicker.view.currentActive); + + that.activeElement = (that.selectpicker.current.data[index] || {}).element; + + that.focusItem(newActive); + } + } + + this._replace('createViewResize', window, 'resize', function () { + var isActive = that.newElement.classList.contains(classNames.SHOW); + + if (isActive) scroll(that.menuInner.scrollTop); + }); + } + + focusItem (li, liData, noStyle) { + if (li) { + liData = liData || this.selectpicker.current.data[this.selectpicker.current.elements.indexOf(this.activeElement)]; + var a = li.firstChild; + + if (a) { + a.setAttribute('aria-setsize', this.selectpicker.view.size); + a.setAttribute('aria-posinset', liData.posinset); + + if (noStyle !== true) { + this.focusedParent.setAttribute('aria-activedescendant', a.id); + li.classList.add('active'); + a.classList.add('active'); + } + } + } + } + + defocusItem (li) { + if (li) { + li.classList.remove('active'); + if (li.firstChild) li.firstChild.classList.remove('active'); + } + } + + setPlaceholder () { + var that = this, + updateIndex = false; + + if ((this.options.placeholder || this.options.allowClear) && !this.multiple) { + if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option'); + + // this option doesn't create a new
  • element, but does add a new option at the start, + // so startIndex should increase to prevent having to check every option for the bs-title-option class + updateIndex = true; + + var element = this.element, + selectTitleOption = false, + titleNotAppended = !this.selectpicker.view.titleOption.parentNode, + selectedIndex = element.selectedIndex, + selectedOption = element.options[selectedIndex], + firstSelectable = element.querySelector('select > *:not(:disabled)'), + firstSelectableIndex = firstSelectable ? firstSelectable.index : 0, + navigation = window.performance && window.performance.getEntriesByType('navigation'), + // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation + isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' : window.performance.navigation.type !== 2; + + if (titleNotAppended) { + // Use native JS to prepend option (faster) + this.selectpicker.view.titleOption.className = 'bs-title-option'; + this.selectpicker.view.titleOption.value = ''; + + // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option. + selectTitleOption = !selectedOption || (selectedIndex === firstSelectableIndex && selectedOption.defaultSelected === false); + } + + if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) { + element.insertBefore(this.selectpicker.view.titleOption, element.firstChild); + } + + // Set selected *after* appending to select + if (selectTitleOption && isNotBackForward) { + element.selectedIndex = 0; + } else if (document.readyState !== 'complete') { + // if navigation type is back_forward, there's a chance the select will have its value set by BFCache + // wait for that value to be set, then run render again + window.addEventListener('pageshow', function () { + if (that.selectpicker.view.displayedValue !== element.value) that.render(); + }); + } + } + + return updateIndex; + } + + fetchData (callback, type, page, searchValue) { + page = page || 1; + type = type || 'data'; + + var that = this, + data = this.options.source[type], + builtData; + + if (data) { + this.options.virtualScroll = true; + + if (typeof data === 'function') { + data.call( + this, + function (data, more, totalItems) { + var current = that.selectpicker[type === 'search' ? 'search' : 'main']; + current.hasMore = more; + current.totalItems = totalItems; + builtData = that.buildData(data, type); + callback.call(that, builtData); + that._emit('fetched'); + }, + page, + searchValue + ); + } else if (Array.isArray(data)) { + builtData = that.buildData(data, type); + callback.call(that, builtData); + } + } else { + builtData = this.buildData(false, type); + callback.call(that, builtData); + } + } + + buildData (data, type) { + var that = this; + var dataGetter = data === false ? getOptionData.fromOption : getOptionData.fromDataSource; + + var optionSelector = ':not([hidden]):not([data-hidden="true"]):not([style*="display: none"])', + mainData = [], + startLen = this.selectpicker.main.data ? this.selectpicker.main.data.length : 0, + optID = 0, + startIndex = this.setPlaceholder() && !data ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop + + if (type === 'search') { + startLen = this.selectpicker.search.data.length; + } + + if (this.options.hideDisabled) optionSelector += ':not(:disabled)'; + + var selectOptions = data ? data.filter(filterHidden, this) : this.element.querySelectorAll('select > *' + optionSelector); + + function addDivider (config) { + var previousData = mainData[mainData.length - 1]; + + // ensure optgroup doesn't create back-to-back dividers + if ( + previousData && + previousData.type === 'divider' && + (previousData.optID || config.optID) + ) { + return; + } + + config = config || {}; + config.type = 'divider'; + + mainData.push(config); + } + + function addOption (item, config) { + config = config || {}; + + config.divider = dataGetter(item, 'divider'); + + if (config.divider === true) { + addDivider({ + optID: config.optID + }); + } else { + var liIndex = mainData.length + startLen, + cssText = dataGetter(item, 'style'), + inlineStyle = cssText ? htmlEscape(cssText) : '', + optionClass = (item.className || '') + (config.optgroupClass || ''); + + if (config.optID) optionClass = 'opt ' + optionClass; + + config.optionClass = optionClass.trim(); + config.inlineStyle = inlineStyle; + + config.text = dataGetter(item, 'text'); + config.title = dataGetter(item, 'title'); + config.content = dataGetter(item, 'content'); + config.tokens = dataGetter(item, 'tokens'); + config.subtext = dataGetter(item, 'subtext'); + config.icon = dataGetter(item, 'icon'); + + config.display = config.content || config.text; + config.value = item.value === undefined ? item.text : item.value; + config.type = 'option'; + config.index = liIndex; + + config.option = !item.option ? item : item.option; // reference option element if it exists + config.option.liIndex = liIndex; + config.selected = !!item.selected; + config.disabled = config.disabled || !!item.disabled; + + if (data !== false) { + if (that.selectpicker.optionValuesDataMap[config.value]) { + config = Object.assign(that.selectpicker.optionValuesDataMap[config.value], config); + } else { + that.selectpicker.optionValuesDataMap[config.value] = config; + } + } + + mainData.push(config); + } + } + + function addOptgroup (index, selectOptions) { + var optgroup = selectOptions[index], + // skip placeholder option + previous = index - 1 < startIndex ? false : selectOptions[index - 1], + next = selectOptions[index + 1], + options = data ? optgroup.children.filter(filterHidden, this) : optgroup.querySelectorAll('option' + optionSelector); + + if (!options.length) return; + + var config = { + display: htmlEscape(dataGetter(item, 'label')), + subtext: dataGetter(optgroup, 'subtext'), + icon: dataGetter(optgroup, 'icon'), + type: 'optgroup-label', + optgroupClass: ' ' + (optgroup.className || ''), + optgroup: optgroup + }, + headerIndex, + lastIndex; + + optID++; + + if (previous) { + addDivider({ optID: optID }); + } + + config.optID = optID; + + mainData.push(config); + + for (var j = 0, len = options.length; j < len; j++) { + var option = options[j]; + + if (j === 0) { + headerIndex = mainData.length - 1; + lastIndex = headerIndex + len; + } + + addOption(option, { + headerIndex: headerIndex, + lastIndex: lastIndex, + optID: config.optID, + optgroupClass: config.optgroupClass, + disabled: optgroup.disabled + }); + } + + if (next) { + addDivider({ optID: optID }); + } + } + + var item; + + for (var len = selectOptions.length, i = startIndex; i < len; i++) { + item = selectOptions[i]; + var children = item.children; + + if (children && children.length) { + addOptgroup.call(this, i, selectOptions); + } else { + addOption.call(this, item, {}); + } + } + + switch (type) { + case 'data': { + if (!this.selectpicker.main.data) { + this.selectpicker.main.data = []; + } + Array.prototype.push.apply(this.selectpicker.main.data, mainData); + this.selectpicker.current.data = this.selectpicker.main.data; + break; + } + case 'search': { + Array.prototype.push.apply(this.selectpicker.search.data, mainData); + break; + } + } + + return mainData; + } + + buildList (size, searching) { + var that = this, + selectData = searching ? this.selectpicker.search.data : this.selectpicker.main.data, + mainElements = [], + widestOptionLength = 0; + + if (that.options.showTick || that.multiple) { + elementTemplates.checkMark.className = this.options.selectionIndicator === 'checkbox' + ? 'check-mark bs-selection-indicator' + : this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark'; + + if (!elementTemplates.checkMark.parentNode) { + elementTemplates.a.appendChild(elementTemplates.checkMark); + } + } + + function buildElement (mainElements, item) { + var liElement, + combinedLength = 0; + + switch (item.type) { + case 'divider': + liElement = generateOption.li( + false, + classNames.DIVIDER, + (item.optID ? item.optID + 'div' : undefined) + ); + + break; + + case 'option': + liElement = generateOption.li( + generateOption.a( + generateOption.text.call(that, item), + item.optionClass, + item.inlineStyle + ), + '', + item.optID + ); + + if (liElement.firstChild) { + liElement.firstChild.id = that.selectId + '-' + item.index; + } + + break; + + case 'optgroup-label': + liElement = generateOption.li( + generateOption.label.call(that, item), + 'dropdown-header' + item.optgroupClass, + item.optID + ); + + break; + } + + if (item.content) item.sanitized = false; + + if (!item.element) { + item.element = liElement; + } else { + item.element.innerHTML = liElement.innerHTML; + } + mainElements.push(item.element); + + // count the number of characters in the option - not perfect, but should work in most cases + if (item.display) combinedLength += item.display.length; + if (item.subtext) combinedLength += item.subtext.length; + // if there is an icon, ensure this option's width is checked + if (item.icon) combinedLength += 1; + + if (combinedLength > widestOptionLength) { + widestOptionLength = combinedLength; + + // guess which option is the widest + that.selectpicker.view.widestOption = mainElements[mainElements.length - 1]; + } + } + + var startIndex = size || 0; + + for (var len = selectData.length, i = startIndex; i < len; i++) { + var item = selectData[i]; + + buildElement(mainElements, item); + } + + if (size) { + if (searching) { + Array.prototype.push.apply(this.selectpicker.search.elements, mainElements); + } else { + Array.prototype.push.apply(this.selectpicker.main.elements, mainElements); + this.selectpicker.current.elements = this.selectpicker.main.elements; + } + } else { + if (searching) { + this.selectpicker.search.elements = mainElements; + } else { + this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements; + } + } + } + + findLis () { + return this.menuInner.querySelectorAll('.inner > li'); + } + + render (init) { + var that = this, + element = this.element, + // ensure titleOption is appended and selected (if necessary) before getting selectedOptions + placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0, + selectedOptions = getSelectedOptions.call(this), + selectedCount = selectedOptions.length, + selectedValues = getSelectValues.call(this, selectedOptions), + button = this.button, + buttonInner = button.querySelector('.filter-option-inner-inner'), + multipleSeparator = document.createTextNode(this.options.multipleSeparator), + titleFragment = elementTemplates.fragment.cloneNode(false), + forceCount = this.multiple && this.options.showSelectedTags && selectedCount > 0, + showCount, + countMax, + hasContent = false; + + function createSelected (item) { + if (item.selected) { + that.createOption(item, true); + } else if (item.children && item.children.length) { + item.children.map(createSelected); + } + } + + // create selected option elements to ensure select value is correct + if (this.options.source.data && init) { + selectedOptions.map(createSelected); + element.appendChild(this.selectpicker.main.optionQueue); + + if (placeholderSelected) placeholderSelected = element.selectedIndex === 0; + } + + button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !selectedValues && selectedValues !== 0); + + if (!that.multiple && selectedOptions.length === 1) { + that.selectpicker.view.displayedValue = selectedValues; + } + + if (this.options.selectedTextFormat === 'static') { + titleFragment = generateOption.text.call(this, { text: this.options.placeholder }, true); + } else { + showCount = forceCount || this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 0; + + // determine if the number of selected options will be shown (showCount === true) + if (showCount && !forceCount) { + countMax = this.options.selectedTextFormat.split('>'); + showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2); + } + + // only loop through all selected options if the count won't be shown + if (showCount === false) { + if (!placeholderSelected) { + for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) { + if (selectedIndex < 50) { + var option = selectedOptions[selectedIndex], + titleOptions = {}; + + if (option) { + if (this.multiple && selectedIndex > 0) { + titleFragment.appendChild(multipleSeparator.cloneNode(false)); + } + + if (option.title) { + titleOptions.text = option.title; + } else if (option.content && that.options.showContent) { + titleOptions.content = option.content.toString(); + hasContent = true; + } else { + if (that.options.showIcon) { + titleOptions.icon = option.icon; + } + if (that.options.showSubtext && !that.multiple && option.subtext) titleOptions.subtext = ' ' + option.subtext; + titleOptions.text = option.text.trim(); + } + + titleFragment.appendChild(generateOption.text.call(this, titleOptions, true)); + } + } else { + break; + } + } + + // add ellipsis + if (selectedCount > 49) { + titleFragment.appendChild(document.createTextNode('...')); + } + } + } else { + var optionSelector = ':not([hidden]):not([data-hidden="true"]):not([data-divider="true"]):not([style*="display: none"])'; + if (this.options.hideDisabled) optionSelector += ':not(:disabled)'; + + // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc. + var totalCount = this.element.querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length, + tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText; + + titleFragment = generateOption.text.call(this, { + text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString()) + }, true); + } + } + + // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText + if (!titleFragment.childNodes.length) { + titleFragment = generateOption.text.call(this, { + text: this.options.placeholder ? this.options.placeholder : this.options.noneSelectedText + }, true); + } + + // if the select has a title, apply it to the button, and if not, apply titleFragment text + button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim(); + + if (this.options.sanitize && hasContent) { + sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn); + } + + buttonInner.innerHTML = ''; + buttonInner.appendChild(titleFragment); + + this.syncTagEditor(); + + this._emit('rendered'); + } + + usesTagEditor () { + return this.options.liveSearch && (this.options.showSelectedTags || this.options.openOptions); + } + + syncTagEditor () { + if (!this.usesTagEditor()) return; + + if (this.selectedItems) { + var selectedOptions = getSelectedOptions.call(this), + useListStyle = this.options.selectedItemsStyle === 'list'; + + this.selectedItems.innerHTML = ''; + this.selectedItems.hidden = !selectedOptions.length; + this.selectedItems.classList.toggle('list-group', useListStyle); + + for (var i = 0; i < selectedOptions.length; i++) { + var item = selectedOptions[i], + selectedTag = document.createElement('button'), + removeText = this.options.selectedTagRemoveLabel + ' ' + getOptionLabelText(item), + content = document.createElement('span'), + label = document.createElement('span'), + remove = document.createElement('span'), + icon; + + selectedTag.type = 'button'; + selectedTag.className = useListStyle + ? 'bs-selected-item list-group-item list-group-item-action' + : 'bs-selected-item'; + selectedTag.setAttribute('data-option-value', item.value); + selectedTag.setAttribute('aria-label', removeText); + selectedTag.title = removeText; + + content.className = 'bs-selected-item-content'; + + if (item.icon && this.options.showIcon) { + icon = document.createElement('span'); + icon.className = 'bs-selected-item-icon ' + this.options.iconBase + ' ' + item.icon; + icon.setAttribute('aria-hidden', 'true'); + content.appendChild(icon); + } + + label.className = 'bs-selected-item-label'; + label.textContent = getOptionLabelText(item); + content.appendChild(label); + + remove.className = 'bs-selected-item-remove'; + remove.setAttribute('aria-hidden', 'true'); + remove.textContent = '\u00d7'; + + selectedTag.appendChild(content); + selectedTag.appendChild(remove); + this.selectedItems.appendChild(selectedTag); + } + } + + this.syncOpenOptionButton(); + + if (this.newElement && this.newElement.classList.contains(classNames.SHOW)) { + this.setSize(true); + } + } + + syncOpenOptionButton () { + if (!this.createOptionButton) return; + + var searchValue = this.searchbox ? this.searchbox.value : '', + normalizedValue = searchValue.toString().trim(), + shouldShow = !!normalizedValue && + !this.selectpicker.openOption.isCreating && + !this.findOptionBySearchValue(normalizedValue); + + this.createOptionButton.hidden = !shouldShow; + this.createOptionButton.disabled = this.selectpicker.openOption.isCreating; + + if (shouldShow) { + this.createOptionButton.textContent = this.options.openOptionsText.replace('{0}', normalizedValue); + this.createOptionButton.setAttribute('data-search-value', normalizedValue); + } else { + this.createOptionButton.textContent = ''; + this.createOptionButton.removeAttribute('data-search-value'); + } + } + + findOptionByValue (value, dataSet) { + var options = dataSet || this.selectpicker.main.data, + stringValue = String(value); + + for (var i = 0; i < options.length; i++) { + var option = options[i]; + + if (option.type === 'option' && String(option.value) === stringValue) { + return option; + } + } + + return null; + } + + findOptionBySearchValue (searchValue) { + var options = this.options.source.data || this.options.source.search + ? Object.values(this.selectpicker.optionValuesDataMap) + : this.selectpicker.main.data, + normalizedSearch = normalizeSearchInput(searchValue, this.options.liveSearchNormalize); + + for (var i = 0; i < options.length; i++) { + var option = options[i]; + + if (option.type !== 'option') continue; + + if ( + normalizeSearchInput(option.text, this.options.liveSearchNormalize) === normalizedSearch || + normalizeSearchInput(option.value, this.options.liveSearchNormalize) === normalizedSearch || + normalizeSearchInput(option.title, this.options.liveSearchNormalize) === normalizedSearch + ) { + return option; + } + } + + return null; + } + + createOptionElement (optionData) { + var option = document.createElement('option'); + + option.value = optionData.value === undefined ? optionData.text : optionData.value; + option.textContent = optionData.text === undefined ? option.value : optionData.text; + + if (optionData.className) option.className = optionData.className; + if (optionData.title) option.title = optionData.title; + if (optionData.content) option.setAttribute('data-content', optionData.content); + if (optionData.tokens) option.setAttribute('data-tokens', optionData.tokens); + if (optionData.subtext) option.setAttribute('data-subtext', optionData.subtext); + if (optionData.icon) option.setAttribute('data-icon', optionData.icon); + if (optionData.disabled) option.disabled = true; + if (optionData.hidden) option.hidden = true; + + return option; + } + + appendCreatedSearchResults (searchValue) { + if (!this.selectpicker.createdOptions.length) return; + + var matches = []; + + for (var i = 0; i < this.selectpicker.createdOptions.length; i++) { + var option = this.selectpicker.createdOptions[i]; + + if ( + stringSearch(option, normalizeSearchInput(searchValue, this.options.liveSearchNormalize), this._searchStyle(), this.options.liveSearchNormalize) && + !this.findOptionByValue(option.value, this.selectpicker.search.data) + ) { + matches.push(option); + } + } + + if (matches.length) this.buildData(matches, 'search'); + } + + addCreatedOption (optionData) { + optionData = Object.assign({}, optionData); + optionData.value = optionData.value === undefined ? optionData.text : optionData.value; + optionData.text = optionData.text === undefined ? optionData.value : optionData.text; + + var size = this.selectpicker.main.elements ? this.selectpicker.main.elements.length : 0, + option = this.createOptionElement(optionData); + optionData.option = option; + + this.element.appendChild(option); + var builtOptions = this.buildData([optionData], 'data'), + builtOption = builtOptions[0]; + + this.buildList(size); + this.selectpicker.createdOptions.push(builtOption); + + return builtOption; + } + + removeSelectedTag (value) { + var option = this.findOptionByValue(value); + + if (!option || !option.selected) return; + + var prevValue = getSelectValues.call(this); + + this.setSelected(option, false); + changedArguments = [option.index, false, prevValue]; + triggerNative(this.element, 'change'); + + if (this.options.liveSearch) this.searchbox.focus(); + } + + createOpenOption (searchValue) { + searchValue = searchValue === undefined || searchValue === null ? '' : searchValue.toString().trim(); + + if (!searchValue || this.selectpicker.openOption.isCreating) return; + + var existingOption = this.findOptionBySearchValue(searchValue); + + if (existingOption) { + if (!existingOption.selected) { + var prevSelectedValue = getSelectValues.call(this); + + this.setSelected(existingOption, true); + changedArguments = [existingOption.index, true, prevSelectedValue]; + triggerNative(this.element, 'change'); + } + + if (this.options.liveSearch) this.searchbox.focus(); + return; + } + + var that = this, + prevValue = getSelectValues.call(this), + createHandler = this.options.source.create; + + this.selectpicker.openOption.isCreating = true; + this.syncOpenOptionButton(); + + function finalize (createdOption) { + that.selectpicker.openOption.isCreating = false; + + if (createdOption === undefined || createdOption === null || createdOption === false) { + that.syncOpenOptionButton(); + return; + } + + if (Array.isArray(createdOption)) createdOption = createdOption[0]; + if (typeof createdOption !== 'object') { + createdOption = { + text: createdOption, + value: createdOption + }; + } + + if (!createdOption.text && !createdOption.value) { + createdOption.text = searchValue; + } + + if (createdOption.value === undefined) createdOption.value = createdOption.text; + if (createdOption.text === undefined) createdOption.text = createdOption.value; + + var option = that.findOptionByValue(createdOption.value) || that.findOptionBySearchValue(createdOption.text); + + if (!option) { + option = that.addCreatedOption(createdOption); + } + + that.setSelected(option, true); + + if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue); + + if (that.searchbox) { + that.searchbox.value = ''; + } + + that.selectpicker.search.previousValue = ''; + that.selectpicker.search.data = []; + that.selectpicker.search.elements = []; + that.createView(false); + + changedArguments = [option.index, true, prevValue]; + triggerNative(that.element, 'change'); + + if (that.options.liveSearch) that.searchbox.focus(); + } + + if (typeof createHandler === 'function') { + var returnedOption = createHandler.call(this, finalize, searchValue); + + if (returnedOption && typeof returnedOption.then === 'function') { + returnedOption.then(finalize); + } else if (returnedOption !== undefined) { + finalize(returnedOption); + } + } else { + finalize({ + text: searchValue, + value: searchValue + }); + } + } + + /** + * @param [newStyle] + * @param [status] + */ + setStyle (newStyle, status) { + var button = this.button, + newElement = this.newElement, + style = this.options.style.trim(), + buttonClass; + + if (this.element.getAttribute('class')) { + var extra = this.element.getAttribute('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, '').trim(); + if (extra) newElement.classList.add.apply(newElement.classList, extra.split(/\s+/)); + } + + if (newStyle) { + buttonClass = newStyle.trim(); + } else { + buttonClass = style; + } + + if (status === 'add') { + if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' ')); + } else if (status === 'remove') { + if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' ')); + } else { + if (style) button.classList.remove.apply(button.classList, style.split(' ')); + if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' ')); + } + } + + liHeight (refresh) { + if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return; + + var newElement = elementTemplates.div.cloneNode(false), + menu = elementTemplates.div.cloneNode(false), + menuInner = elementTemplates.div.cloneNode(false), + menuInnerInner = document.createElement('ul'), + divider = elementTemplates.li.cloneNode(false), + dropdownHeader = elementTemplates.li.cloneNode(false), + li, + a = elementTemplates.a.cloneNode(false), + text = elementTemplates.span.cloneNode(false), + header = this.options.header && this.menu.querySelectorAll('.' + classNames.POPOVERHEADER).length > 0 ? this.menu.querySelector('.' + classNames.POPOVERHEADER).cloneNode(true) : null, + search = this.options.liveSearch && this.menu.querySelector('.bs-searchbox') + ? this.menu.querySelector('.bs-searchbox').cloneNode(true) + : null, + actions = this.options.actionsBox && this.multiple && this.menu.querySelectorAll('.bs-actionsbox').length > 0 ? this.menu.querySelector('.bs-actionsbox').cloneNode(true) : null, + doneButton = this.options.doneButton && this.multiple && this.menu.querySelectorAll('.bs-donebutton').length > 0 ? this.menu.querySelector('.bs-donebutton').cloneNode(true) : null, + firstOption = this.element.options[0]; + + this.sizeInfo.selectWidth = this.newElement.offsetWidth; + + text.className = 'text'; + a.className = 'dropdown-item ' + (firstOption ? firstOption.className : ''); + newElement.className = this.menu.parentNode.className + ' ' + classNames.SHOW; + newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating + menu.className = classNames.MENU + ' ' + classNames.SHOW; + menuInner.className = 'inner ' + classNames.SHOW; + menuInnerInner.className = classNames.MENU + ' inner ' + classNames.SHOW; + divider.className = classNames.DIVIDER; + dropdownHeader.className = 'dropdown-header'; + + text.appendChild(document.createTextNode('\u200b')); + + if (this.selectpicker.current.data.length) { + for (var i = 0; i < this.selectpicker.current.data.length; i++) { + var data = this.selectpicker.current.data[i]; + if (data.type === 'option' && window.getComputedStyle(data.element.firstChild).display !== 'none') { + li = data.element; + break; + } + } + } else { + li = elementTemplates.li.cloneNode(false); + a.appendChild(text); + li.appendChild(a); + } + + dropdownHeader.appendChild(text.cloneNode(true)); + + if (this.selectpicker.view.widestOption) { + menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true)); + } + + menuInnerInner.appendChild(li); + menuInnerInner.appendChild(divider); + menuInnerInner.appendChild(dropdownHeader); + if (header) menu.appendChild(header); + if (search) menu.appendChild(search); + if (actions) menu.appendChild(actions); + menuInner.appendChild(menuInnerInner); + menu.appendChild(menuInner); + if (doneButton) menu.appendChild(doneButton); + newElement.appendChild(menu); + + document.body.appendChild(newElement); + + var liHeight = li.offsetHeight, + dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0, + headerHeight = header ? header.offsetHeight : 0, + searchHeight = search ? search.offsetHeight : 0, + actionsHeight = actions ? actions.offsetHeight : 0, + doneButtonHeight = doneButton ? doneButton.offsetHeight : 0, + dividerHeight = outerHeight(divider, true), + menuStyle = window.getComputedStyle(menu), + menuWidth = menu.offsetWidth, + menuPadding = { + vert: toInteger(menuStyle.paddingTop) + + toInteger(menuStyle.paddingBottom) + + toInteger(menuStyle.borderTopWidth) + + toInteger(menuStyle.borderBottomWidth), + horiz: toInteger(menuStyle.paddingLeft) + + toInteger(menuStyle.paddingRight) + + toInteger(menuStyle.borderLeftWidth) + + toInteger(menuStyle.borderRightWidth) + }, + menuExtras = { + vert: menuPadding.vert + + toInteger(menuStyle.marginTop) + + toInteger(menuStyle.marginBottom) + 2, + horiz: menuPadding.horiz + + toInteger(menuStyle.marginLeft) + + toInteger(menuStyle.marginRight) + 2 + }, + scrollBarWidth; + + menuInner.style.overflowY = 'scroll'; + + scrollBarWidth = menu.offsetWidth - menuWidth; + + document.body.removeChild(newElement); + + this.sizeInfo.liHeight = liHeight; + this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight; + this.sizeInfo.headerHeight = headerHeight; + this.sizeInfo.searchHeight = searchHeight; + this.sizeInfo.actionsHeight = actionsHeight; + this.sizeInfo.doneButtonHeight = doneButtonHeight; + this.sizeInfo.dividerHeight = dividerHeight; + this.sizeInfo.menuPadding = menuPadding; + this.sizeInfo.menuExtras = menuExtras; + this.sizeInfo.menuWidth = menuWidth; + this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz; + this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth; + this.sizeInfo.scrollBarWidth = scrollBarWidth; + this.sizeInfo.selectHeight = this.newElement.offsetHeight; + + this.setPositionData(); + } + + getSelectPosition () { + var that = this, + winScrollTop = window.pageYOffset, + winScrollLeft = window.pageXOffset, + winHeight = document.documentElement.clientHeight, + winWidth = document.documentElement.clientWidth, + pos = offset(that.newElement); + + this.sizeInfo.selectOffsetTop = pos.top - winScrollTop; + this.sizeInfo.selectOffsetBot = winHeight - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight; + this.sizeInfo.selectOffsetLeft = pos.left - winScrollLeft; + this.sizeInfo.selectOffsetRight = winWidth - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth; + } + + setMenuSize (isAuto) { + this.getSelectPosition(); + + var selectWidth = this.sizeInfo.selectWidth, + liHeight = this.sizeInfo.liHeight, + headerHeight = this.sizeInfo.headerHeight, + searchHeight = this.sizeInfo.searchHeight, + actionsHeight = this.sizeInfo.actionsHeight, + doneButtonHeight = this.sizeInfo.doneButtonHeight, + divHeight = this.sizeInfo.dividerHeight, + menuPadding = this.sizeInfo.menuPadding, + menuInnerHeight, + menuHeight, + divLength = 0, + minHeight, + _minHeight, + maxHeight, + menuInnerMinHeight, + estimate, + isDropup; + + if (this.options.dropupAuto) { + // Get the estimated height of the menu without scrollbars. + estimate = liHeight * this.selectpicker.current.data.length + menuPadding.vert; + + isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot; + + // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth) + if (this.selectpicker.isSearching === true) { + isDropup = this.selectpicker.dropup; + } + + this.newElement.classList.toggle(classNames.DROPUP, isDropup); + this.selectpicker.dropup = isDropup; + } + + if (this.options.size === 'auto') { + _minHeight = this.selectpicker.current.data.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0; + menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert; + minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; + menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0); + + if (this.newElement.classList.contains(classNames.DROPUP)) { + menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert; + } + + maxHeight = menuHeight; + menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert; + } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) { + for (var i = 0; i < this.options.size; i++) { + if (this.selectpicker.current.data[i].type === 'divider') divLength++; + } + + menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert; + menuInnerHeight = menuHeight - menuPadding.vert; + maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; + minHeight = menuInnerMinHeight = ''; + } + + setStyles(this.menu, { + maxHeight: maxHeight + 'px', + overflow: 'hidden', + minHeight: minHeight + 'px' + }); + + setStyles(this.menuInner, { + maxHeight: menuInnerHeight + 'px', + overflow: 'hidden auto', + minHeight: menuInnerMinHeight + 'px' + }); + + // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView + this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1); + + if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) { + this.sizeInfo.hasScrollBar = true; + this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth; + } + + if (this.options.dropdownAlignRight === 'auto') { + this.menu.classList.toggle(classNames.MENUEND, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth)); + } + + if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update(); + } + + setSize (refresh) { + this.liHeight(refresh); + + if (this.options.header) this.menu.style.paddingTop = 0; + + if (this.options.size !== false) { + var that = this; + + this.setMenuSize(); + + if (this.options.liveSearch) { + this._replace('setMenuSizeInput', this.searchbox, 'input', function () { + return that.setMenuSize(); + }); + } + + if (this.options.size === 'auto') { + var windowSizeHandler = function () { + return that.setMenuSize(); + }; + this._replace('setMenuSizeResize', window, 'resize', windowSizeHandler); + this._replace('setMenuSizeScroll', window, 'scroll', windowSizeHandler); + } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) { + this._removeNamed('setMenuSizeResize'); + this._removeNamed('setMenuSizeScroll'); + } + } + + this.createView(false, true, refresh); + } + + setWidth () { + this.menu.style.minWidth = ''; + this.newElement.style.width = ''; + this.newElement.classList.remove('fit-width'); + } + + selectPosition () { + this.bsContainer = createFromHTML('
    '); + + var that = this, + container = resolveContainer(this.options.container), + pos, + containerPos, + actualHeight, + getPlacement = function (element) { + var Dropdown = getDropdown(), + containerPosition = {}, + // fall back to dropdown's default display setting if display is not manually set + display = that.options.display || (Dropdown.Default ? Dropdown.Default.display : false); + + var extraClass = element.getAttribute('class').replace(/form-control|fit-width/gi, '').trim(); + if (extraClass) that.bsContainer.classList.add.apply(that.bsContainer.classList, extraClass.split(/\s+/)); + that.bsContainer.classList.toggle(classNames.DROPUP, element.classList.contains(classNames.DROPUP)); + pos = offset(element); + + if (container !== document.body) { + containerPos = offset(container); + var containerStyle = window.getComputedStyle(container); + containerPos.top += toInteger(containerStyle.borderTopWidth) - container.scrollTop; + containerPos.left += toInteger(containerStyle.borderLeftWidth) - container.scrollLeft; + } else { + containerPos = { top: 0, left: 0 }; + } + + actualHeight = element.classList.contains(classNames.DROPUP) ? 0 : element.offsetHeight; + + // Bootstrap 5 uses Popper for menu positioning + if (display === 'static') { + containerPosition.top = pos.top - containerPos.top + actualHeight; + containerPosition.left = pos.left - containerPos.left; + } + + containerPosition.width = element.offsetWidth; + + setStyles(that.bsContainer, { + top: containerPosition.top !== undefined ? containerPosition.top + 'px' : '', + left: containerPosition.left !== undefined ? containerPosition.left + 'px' : '', + width: containerPosition.width + 'px' + }); + }; + + this._on(this.button, 'click', function () { + if (that.isDisabled()) { + return; + } + + getPlacement(that.newElement); + + container.appendChild(that.bsContainer); + that.bsContainer.classList.toggle(classNames.SHOW, !that.button.classList.contains(classNames.SHOW)); + that.bsContainer.appendChild(that.menu); + }); + + var windowHandler = function () { + var isActive = that.newElement.classList.contains(classNames.SHOW); + + if (isActive) getPlacement(that.newElement); + }; + this._replace('selectPositionResize', window, 'resize', windowHandler); + this._replace('selectPositionScroll', window, 'scroll', windowHandler); + + this._on(this.element, 'hide' + EVENT_KEY, function () { + that._menuHeight = outerHeight(that.menu); + if (that.bsContainer.parentNode) that.bsContainer.parentNode.removeChild(that.bsContainer); + }); + } + + createOption (data, init) { + var optionData = !data.option ? data : data.option; + + if (optionData && optionData.nodeType !== 1) { + var option = (init ? elementTemplates.selectedOption : elementTemplates.option).cloneNode(true); + if (optionData.value !== undefined) option.value = optionData.value; + option.textContent = optionData.text; + + option.selected = true; + + if (optionData.liIndex !== undefined) { + option.liIndex = optionData.liIndex; + } else if (!init) { + option.liIndex = data.index; + } + + data.option = option; + + this.selectpicker.main.optionQueue.appendChild(option); + } + } + + setOptionStatus (selectedOnly) { + var that = this; + + that.noScroll = false; + + if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) { + for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) { + var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0], + option = liData.option; + + if (option) { + if (selectedOnly !== true) { + that.setDisabled(liData); + } + + that.setSelected(liData); + } + } + + // append optionQueue (documentFragment with option elements for select options) + if (this.options.source.data) this.element.appendChild(this.selectpicker.main.optionQueue); + } + } + + /** + * @param {Object} liData - the option object that is being changed + * @param {boolean} selected - true if the option is being selected, false if being deselected + */ + setSelected (liData, selected) { + selected = selected === undefined ? liData.selected : selected; + + var li = liData.element, + activeElementIsSet = this.activeElement !== undefined, + thisIsActive = this.activeElement === li, + prevActive, + a, + keepActive = thisIsActive || (selected && !this.multiple && !activeElementIsSet); + + if (selected !== undefined) { + liData.selected = selected; + if (liData.option) liData.option.selected = selected; + } + + if (selected && this.options.source.data) { + this.createOption(liData, false); + } + + if (!li) return; + + a = li.firstChild; + + if (selected) { + this.selectedElement = li; + } + + li.classList.toggle('selected', selected); + + if (keepActive) { + this.focusItem(li, liData); + this.selectpicker.view.currentActive = li; + this.activeElement = li; + } else { + this.defocusItem(li); + } + + if (a) { + a.classList.toggle('selected', selected); + + if (selected) { + a.setAttribute('aria-selected', true); + } else { + if (this.multiple) { + a.setAttribute('aria-selected', false); + } else { + a.removeAttribute('aria-selected'); + } + } + } + + if (!keepActive && !activeElementIsSet && selected && this.prevActiveElement !== undefined) { + prevActive = this.prevActiveElement; + + this.defocusItem(prevActive); + } + } + + /** + * @param {Object} liData - the option that is being disabled + */ + setDisabled (liData) { + var disabled = liData.disabled, + li = liData.element, + a; + + if (!li) return; + + a = li.firstChild; + + li.classList.toggle(classNames.DISABLED, disabled); + + if (a) { + a.classList.toggle(classNames.DISABLED, disabled); + + if (disabled) { + a.setAttribute('aria-disabled', disabled); + a.setAttribute('tabindex', -1); + } else { + a.removeAttribute('aria-disabled'); + a.setAttribute('tabindex', 0); + } + } + } + + isDisabled () { + return this.element.disabled; + } + + checkDisabled () { + if (this.isDisabled()) { + this.newElement.classList.add(classNames.DISABLED); + this.button.classList.add(classNames.DISABLED); + this.button.setAttribute('aria-disabled', true); + } else { + if (this.button.classList.contains(classNames.DISABLED)) { + this.newElement.classList.remove(classNames.DISABLED); + this.button.classList.remove(classNames.DISABLED); + this.button.setAttribute('aria-disabled', false); + } + } + } + + clickListener () { + var that = this; + + spaceSelectFlag = false; + + this._on(this.button, 'keyup', function (e) { + if (/(32)/.test(e.keyCode.toString(10)) && spaceSelectFlag) { + e.preventDefault(); + spaceSelectFlag = false; + } + }); + + function clearSelection (e) { + if (that.multiple) { + that.deselectAll(); + } else { + var element = that.element, + prevValue = element.value, + prevIndex = element.selectedIndex, + prevOption = element.options[prevIndex], + prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false; + + if (prevData) { + that.setSelected(prevData, false); + } + + element.selectedIndex = 0; + + changedArguments = [prevIndex, false, prevValue]; + triggerNative(that.element, 'change'); + } + + // remove selected styling if menu is open + if (that.newElement.classList.contains(classNames.SHOW)) { + if (that.options.liveSearch) { + that.searchbox.focus(); + } + + that.createView(false); + } + } + + if (this.options.allowClear) { + this._on(this.button, 'click', function (e) { + var target = e.target, + clearButton = that.clearButton; + + if (target === clearButton || target.parentElement === clearButton) { + e.stopImmediatePropagation(); + clearSelection(e); + } + }); + } + + function setFocus () { + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.menuInner.focus(); + } + } + + function checkPopperExists () { + if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state) { + setFocus(); + } else { + requestAnimationFrame(checkPopperExists); + } + } + + this._on(this.element, 'shown' + EVENT_KEY, function () { + if (that.menuInner.scrollTop !== that.selectpicker.view.scrollTop) { + that.menuInner.scrollTop = that.selectpicker.view.scrollTop; + } + + requestAnimationFrame(checkPopperExists); + }); + + // ensure posinset and setsize are correct before selecting an option via a click + this._delegate(this.menuInner, 'mouseover', 'li a', function () { + var hoverLi = this.parentElement, + position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, + index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi), + hoverData = that.selectpicker.current.data[index + position0]; + + that.focusItem(hoverLi, hoverData, true); + }); + + this._delegate(this.menuInner, 'click', 'li a', function (e) { + that.onOptionClick(this, e); + }); + + this._delegate(this.menu, 'click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.btn-close):not(.close)', function (e) { + if (e.currentTarget === this || e.target === this) { + e.preventDefault(); + e.stopPropagation(); + if (that.options.liveSearch && !e.target.classList.contains('btn-close') && !e.target.classList.contains('close')) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + } + }); + + this._delegate(this.menuInner, 'click', '.divider, .dropdown-header', function (e) { + e.preventDefault(); + e.stopPropagation(); + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + }); + + this._delegate(this.menu, 'click', '.' + classNames.POPOVERHEADER + ' .btn-close, .' + classNames.POPOVERHEADER + ' .close', function () { + that.dropdown.hide(); + }); + + this._delegate(this.newElement, 'click', '.bs-selected-item', function (e) { + e.preventDefault(); + e.stopPropagation(); + that.removeSelectedTag(this.getAttribute('data-option-value')); + }); + + this._delegate(this.menu, 'click', '.bs-create-option', function (e) { + e.preventDefault(); + e.stopPropagation(); + that.createOpenOption(this.getAttribute('data-search-value')); + }); + + if (this.searchbox) { + this._on(this.searchbox, 'click', function (e) { + e.stopPropagation(); + }); + } + + this._delegate(this.menu, 'click', '.actions-btn', function (e) { + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + that.button.focus(); + } + + e.preventDefault(); + e.stopPropagation(); + + if (this.classList.contains('bs-select-all')) { + that.selectAll(); + } else { + that.deselectAll(); + } + }); + + this._on(this.button, 'focus', function (e) { + var tabindex = that.element.getAttribute('tabindex'); + + // only change when button is actually focused + if (tabindex !== undefined && tabindex !== null && e.isTrusted) { + // apply select element's tabindex to ensure correct order is followed when tabbing to the next element + this.setAttribute('tabindex', tabindex); + // set element's tabindex to -1 to allow for reverse tabbing + that.element.setAttribute('tabindex', -1); + that.selectpicker.view.tabindex = tabindex; + } + }); + + this._on(this.button, 'blur', function (e) { + // revert everything to original tabindex + if (that.selectpicker.view.tabindex !== undefined && e.isTrusted) { + that.element.setAttribute('tabindex', that.selectpicker.view.tabindex); + this.setAttribute('tabindex', -1); + that.selectpicker.view.tabindex = undefined; + } + }); + + this._on(this.element, 'change', function () { + that.render(); + that._emit('changed', changedArguments ? { + clickedIndex: changedArguments[0], + isSelected: changedArguments[1], + previousValue: changedArguments[2] + } : null); + changedArguments = null; + }); + + this._on(this.element, 'focus', function () { + if (!that.options.mobile) that.button.focus(); + }); + } + + onOptionClick (clickedAnchor, e, retainActive) { + var that = this, + element = that.element, + li = clickedAnchor.parentElement, + position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, + clickedData = that.selectpicker.current.data[Array.prototype.indexOf.call(li.parentElement.children, li) + position0], + clickedElement = clickedData.element, + prevValue = getSelectValues.call(that), + prevIndex = element.selectedIndex, + prevOption = element.options[prevIndex], + prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false, + triggerChange = true; + + // Don't close on multi choice menu + if (that.multiple && that.options.maxOptions !== 1) { + e.stopPropagation(); + } + + e.preventDefault(); + + // Don't run if the select is disabled + if (!that.isDisabled() && !li.classList.contains(classNames.DISABLED)) { + var option = clickedData.option, + state = option.selected, + optgroupData = that.selectpicker.current.data.find(function (datum) { + return datum.optID === clickedData.optID && datum.type === 'optgroup-label'; + }), + optgroup = optgroupData ? optgroupData.optgroup : undefined, + dataGetter = optgroup instanceof Element ? getOptionData.fromOption : getOptionData.fromDataSource, + optgroupOptions = optgroup && optgroup.children, + maxOptions = parseInt(that.options.maxOptions), + maxOptionsGrp = optgroup && parseInt(dataGetter(optgroup, 'maxOptions')) || false; + + if (clickedElement === that.activeElement) retainActive = true; + + if (!retainActive) { + that.prevActiveElement = that.activeElement; + that.activeElement = undefined; + } + + if (!that.multiple || maxOptions === 1) { // Deselect previous option if not multi select + if (prevData) that.setSelected(prevData, false); + that.setSelected(clickedData, true); + } else { // Toggle the clicked option if multi select. + that.setSelected(clickedData, !state); + that.focusedParent.focus(); + + if (maxOptions !== false || maxOptionsGrp !== false) { + var maxReached = maxOptions < getSelectedOptions.call(that).length, + selectedGroupOptions = 0; + + if (optgroup && optgroup.children) { + for (var i = 0; i < optgroup.children.length; i++) { + if (optgroup.children[i].selected) selectedGroupOptions++; + } + } + + var maxReachedGrp = maxOptionsGrp < selectedGroupOptions; + + if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) { + if (maxOptions && maxOptions === 1) { + element.selectedIndex = -1; + that.setOptionStatus(true); + } else if (maxOptionsGrp && maxOptionsGrp === 1) { + for (var j = 0; j < optgroupOptions.length; j++) { + var _option = optgroupOptions[j]; + that.setSelected(that.selectpicker.current.data[_option.liIndex], false); + } + + that.setSelected(clickedData, true); + } else { + var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText, + maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText, + maxTxt = maxOptionsArr[0].replace('{n}', maxOptions), + maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp), + notify = createFromHTML('
    '); + + that.menu.appendChild(notify); + + if (maxOptions && maxReached) { + notify.appendChild(createFromHTML('
    ' + maxTxt + '
    ')); + triggerChange = false; + that._emit('maxReached'); + } + + if (maxOptionsGrp && maxReachedGrp) { + notify.appendChild(createFromHTML('
    ' + maxTxtGrp + '
    ')); + triggerChange = false; + that._emit('maxReachedGrp'); + } + + setTimeout(function () { + that.setSelected(clickedData, false); + }, 10); + + notify.classList.add('fadeOut'); + + setTimeout(function () { + notify.remove(); + }, 1050); + } + } + } + } + + if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue); + + if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) { + that.button.focus(); + } else if (that.options.liveSearch) { + that.searchbox.focus(); + } + + // Trigger select 'change' + if (triggerChange) { + if (that.multiple || prevIndex !== element.selectedIndex) { + changedArguments = [option.index, option.selected, prevValue]; + triggerNative(that.element, 'change'); + } + } + } + } + + liveSearchListener () { + var that = this; + + this._on(this.searchbox, 'click', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'focus', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'touchend', function (e) { + e.stopPropagation(); + }); + this._on(this.searchbox, 'keydown', function (e) { + if (e.key === 'Enter' && that.createOptionButton && !that.createOptionButton.hidden && !that.selectpicker.current.data.length) { + e.preventDefault(); + e.stopPropagation(); + that.createOpenOption(that.searchbox.value); + } + }); + + this._on(this.searchbox, 'input', function () { + var searchValue = that.searchbox.value; + + that.selectpicker.search.elements = []; + that.selectpicker.search.data = []; + + if (searchValue) { + that.selectpicker.search.previousValue = searchValue; + + if (that.options.source.search) { + that.fetchData(function () { + that.appendCreatedSearchResults(searchValue); + that.render(); + that.buildList(undefined, true); + that.noScroll = true; + that.menuInner.scrollTop = 0; + that.createView(true); + showNoResults.call(that, that.selectpicker.search.data, searchValue); + }, 'search', 0, searchValue); + } else { + var searchMatch = [], + q = searchValue.toUpperCase(), + cache = {}, + cacheArr = [], + searchStyle = that._searchStyle(), + normalizeSearch = that.options.liveSearchNormalize; + + if (normalizeSearch) q = normalizeToBase(q); + + for (var i = 0; i < that.selectpicker.main.data.length; i++) { + var li = that.selectpicker.main.data[i]; + + if (!cache[i]) { + cache[i] = stringSearch(li, q, searchStyle, normalizeSearch); + } + + if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) { + if (li.headerIndex > 0) { + cache[li.headerIndex - 1] = true; + cacheArr.push(li.headerIndex - 1); + } + + cache[li.headerIndex] = true; + cacheArr.push(li.headerIndex); + + cache[li.lastIndex + 1] = true; + } + + if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i); + } + + for (var j = 0, cacheLen = cacheArr.length; j < cacheLen; j++) { + var index = cacheArr[j], + prevIndex = cacheArr[j - 1], + liData = that.selectpicker.main.data[index], + liPrev = that.selectpicker.main.data[prevIndex]; + + if (liData.type !== 'divider' || (liData.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== j)) { + that.selectpicker.search.data.push(liData); + searchMatch.push(that.selectpicker.main.elements[index]); + } + } + + that.activeElement = undefined; + that.noScroll = true; + that.menuInner.scrollTop = 0; + that.selectpicker.search.elements = searchMatch; + that.createView(true); + showNoResults.call(that, searchMatch, searchValue); + } + } else if (that.selectpicker.search.previousValue) { + that.menuInner.scrollTop = 0; + that.createView(false); + } + + that.syncOpenOptionButton(); + }); + } + + _searchStyle () { + return this.options.liveSearchStyle || 'contains'; + } + + getValue () { + var element = this.element; + + if (this.multiple) { + var values = []; + for (var i = 0; i < element.options.length; i++) { + if (element.options[i].selected) values.push(element.options[i].value); + } + return values; + } + + return element.value; + } + + val (value) { + var element = this.element; + + if (typeof value !== 'undefined') { + var selectedOptions = getSelectedOptions.call(this), + prevValue = getSelectValues.call(this, selectedOptions); + + changedArguments = [null, null, prevValue]; + + if (!Array.isArray(value)) value = [ value ]; + + value.map(String); + + for (var i = 0; i < selectedOptions.length; i++) { + var item = selectedOptions[i]; + + if (item && value.indexOf(String(item.value)) === -1) { + this.setSelected(item, false); + } + } + + // only update selected value if it matches an existing option + this.selectpicker.main.data.filter(function (item) { + if (value.indexOf(String(item.value)) !== -1) { + this.setSelected(item, true); + return true; + } + + return false; + }, this); + + if (this.options.source.data) element.appendChild(this.selectpicker.main.optionQueue); + + this._emit('changed', changedArguments ? { + clickedIndex: changedArguments[0], + isSelected: changedArguments[1], + previousValue: changedArguments[2] + } : null); + + if (this.newElement.classList.contains(classNames.SHOW)) { + if (this.multiple) { + this.setOptionStatus(true); + } else { + var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex; + + if (typeof liSelectedIndex === 'number') { + this.setSelected(this.selectpicker.current.data[liSelectedIndex], true); + } + } + } + + this.render(); + + changedArguments = null; + + return this.element; + } else { + return this.getValue(); + } + } + + changeAll (status) { + if (!this.multiple) return; + if (typeof status === 'undefined') status = true; + + var element = this.element, + previousSelected = 0, + currentSelected = 0, + prevValue = getSelectValues.call(this); + + element.classList.add('bs-select-hidden'); + + for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) { + var liData = data[i], + option = liData.option; + + if (option && !liData.disabled && liData.type !== 'divider') { + if (liData.selected) previousSelected++; + option.selected = status; + liData.selected = status; + if (status === true) currentSelected++; + } + } + + element.classList.remove('bs-select-hidden'); + + if (previousSelected === currentSelected) return; + + this.setOptionStatus(); + + changedArguments = [null, null, prevValue]; + + triggerNative(this.element, 'change'); + } + + selectAll () { + return this.changeAll(true); + } + + deselectAll () { + return this.changeAll(false); + } + + toggle (e, state) { + var isActive, + triggerToggle = state === undefined; + + if (e && e.stopPropagation) e.stopPropagation(); + + if (triggerToggle === false) { + isActive = this.newElement.classList.contains(classNames.SHOW); + triggerToggle = (state === true && isActive === false) || (state === false && isActive === true); + } + + if (triggerToggle) this.dropdown.toggle(); + } + + open (e) { + this.toggle(e, true); + } + + close (e) { + this.toggle(e, false); + } + + _keydown (e, el) { + var that = this, + which = e.which || e.keyCode, + isToggle = el.classList.contains('dropdown-toggle'), + items = that.findLis(), + index, + isActive, + liActive, + activeLi, + offsetVal, + updateScroll = false, + downOnTab = which === keyCodes.TAB && !isToggle && !that.options.selectOnTab, + isArrowKey = REGEXP_ARROW.test(which) || downOnTab, + scrollTop = that.menuInner.scrollTop, + isVirtual = that.isVirtual(), + position0 = isVirtual === true ? that.selectpicker.view.position0 : 0; + + // do nothing if a function key is pressed + if (which >= 112 && which <= 123) return; + + isActive = that.menu.classList.contains(classNames.SHOW); + + if ( + !isActive && + ( + isArrowKey || + (which >= 48 && which <= 57) || + (which >= 96 && which <= 105) || + (which >= 65 && which <= 90) + ) + ) { + that.dropdown.show(); + + if (that.options.liveSearch) { + that.searchbox.focus(); + return; + } + } + + if (which === keyCodes.ESCAPE && isActive) { + e.preventDefault(); + that.dropdown.hide(); + that.button.focus(); + } + + if (isArrowKey) { // if up or down + if (!items.length) return; + + liActive = that.activeElement; + index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1; + + if (index !== -1) { + that.defocusItem(liActive); + } + + if (which === keyCodes.ARROW_UP) { // up + if (index !== -1) index--; + if (index + position0 < 0) index += items.length; + + if (!that.selectpicker.view.canHighlight[index + position0]) { + index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0; + if (index === -1) index = items.length - 1; + } + } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down + index++; + if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex; + + if (!that.selectpicker.view.canHighlight[index + position0]) { + index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true); + } + } + + e.preventDefault(); + + var liActiveIndex = position0 + index; + + if (which === keyCodes.ARROW_UP) { // up + // scroll to bottom and highlight last option + if (position0 === 0 && index === items.length - 1) { + that.menuInner.scrollTop = that.menuInner.scrollHeight; + + liActiveIndex = that.selectpicker.current.elements.length - 1; + } else { + activeLi = that.selectpicker.current.data[liActiveIndex]; + + // could be undefined if no results exist + if (activeLi) { + offsetVal = activeLi.position - activeLi.height; + + updateScroll = offsetVal < scrollTop; + } + } + } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down + // scroll to top and highlight first option + if (index === that.selectpicker.view.firstHighlightIndex) { + that.menuInner.scrollTop = 0; + + liActiveIndex = that.selectpicker.view.firstHighlightIndex; + } else { + activeLi = that.selectpicker.current.data[liActiveIndex]; + + // could be undefined if no results exist + if (activeLi) { + offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight; + + updateScroll = offsetVal > scrollTop; + } + } + } + + liActive = that.selectpicker.current.elements[liActiveIndex]; + + that.activeElement = (that.selectpicker.current.data[liActiveIndex] || {}).element; + + that.focusItem(liActive); + + that.selectpicker.view.currentActive = liActive; + + if (updateScroll) that.menuInner.scrollTop = offsetVal; + + if (that.options.liveSearch) { + that.searchbox.focus(); + } else { + el.focus(); + } + } else if ( + (!el.matches('input') && !REGEXP_TAB_OR_ESCAPE.test(which)) || + (which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory) + ) { + var matches = [], + keyHistory; + + e.preventDefault(); + + that.selectpicker.keydown.keyHistory += keyCodeMap[which]; + + if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel); + that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start(); + + keyHistory = that.selectpicker.keydown.keyHistory; + + // if all letters are the same, set keyHistory to just the first character when searching + if (/^(.)\1+$/.test(keyHistory)) { + keyHistory = keyHistory.charAt(0); + } + + // find matches + for (var i = 0; i < that.selectpicker.current.data.length; i++) { + var li = that.selectpicker.current.data[i], + hasMatch; + + hasMatch = stringSearch(li, keyHistory, 'startsWith', true); + + if (hasMatch && that.selectpicker.view.canHighlight[i]) { + matches.push(li.element); + } + } + + if (matches.length) { + var matchIndex = 0; + + Array.prototype.forEach.call(items, function (item) { + item.classList.remove('active'); + if (item.firstChild) item.firstChild.classList.remove('active'); + }); + + // either only one key has been pressed or they are all the same key + if (keyHistory.length === 1) { + matchIndex = matches.indexOf(that.activeElement); + + if (matchIndex === -1 || matchIndex === matches.length - 1) { + matchIndex = 0; + } else { + matchIndex++; + } + } + + activeLi = that.selectpicker.main.data[that.selectpicker.main.elements.indexOf(matches[matchIndex])]; + + if (activeLi) { + if (scrollTop - activeLi.position > 0) { + offsetVal = activeLi.position - activeLi.height; + updateScroll = true; + } else { + offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight; + // if the option is already visible at the current scroll position, just keep it the same + updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight; + } + } + + liActive = matches[matchIndex]; + + that.activeElement = liActive; + + that.focusItem(liActive); + + if (liActive) liActive.firstChild.focus(); + + if (updateScroll) that.menuInner.scrollTop = offsetVal; + + el.focus(); + } + } + + // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu. + if ( + isActive && + ( + (which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) || + which === keyCodes.ENTER || + (which === keyCodes.TAB && that.options.selectOnTab) + ) + ) { + if (which !== keyCodes.SPACE) e.preventDefault(); + + if (!that.options.liveSearch || which !== keyCodes.SPACE) { + var activeAnchor = that.menuInner.querySelector('.active a'); + if (activeAnchor) that.onOptionClick(activeAnchor, e, true); // retain active class + el.focus(); + + if (!that.options.liveSearch) { + // Prevent screen from scrolling if the user hits the spacebar + e.preventDefault(); + // Fixes spacebar selection of dropdown items in FF & IE + spaceSelectFlag = true; + } + } + } + } + + mobile () { + // ensure mobile is set to true if mobile function is called after init + this.options.mobile = true; + this.element.classList.add('mobile-device'); + } + + resetMenuData () { + this.selectpicker.main.data = []; + this.selectpicker.main.elements = []; + this.selectpicker.main.hasMore = false; + this.selectpicker.search.data = []; + this.selectpicker.search.elements = []; + this.selectpicker.search.hasMore = false; + this.selectpicker.current.data = this.selectpicker.main.data; + this.selectpicker.current.elements = this.selectpicker.main.elements; + this.selectpicker.current.hasMore = false; + this.selectpicker.isSearching = false; + } + + refresh () { + var that = this; + // update options if data attributes have been changed + var config = stripRemovedOptions(Object.assign({}, this.options, getAttributesObject(this.element), getDataset(this.element))); + this.options = config; + + if (this.options.source.data) { + this.render(); + this.buildList(); + } else { + this.resetMenuData(); + this.fetchData(function () { + that.render(); + that.buildList(); + }); + } + + this.checkDisabled(); + this.setStyle(); + this.setWidth(); + + this.setSize(true); + + this._emit('refreshed'); + } + + hide () { + this.newElement.style.display = 'none'; + } + + show () { + this.newElement.style.display = ''; + } + + remove () { + if (this.newElement.parentNode) this.newElement.parentNode.removeChild(this.newElement); + instanceMap.delete(this.element); + } + + destroy () { + // move the select back out of newElement, then remove newElement + if (this.newElement.parentNode) { + this.newElement.parentNode.insertBefore(this.element, this.newElement); + this.newElement.parentNode.removeChild(this.newElement); + } + + if (this.bsContainer) { + if (this.bsContainer.parentNode) this.bsContainer.parentNode.removeChild(this.bsContainer); + } else if (this.menu && this.menu.parentNode) { + this.menu.parentNode.removeChild(this.menu); + } + + if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode) { + this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption); + } + + // remove all tracked event listeners + for (var i = 0; i < this._listeners.length; i++) { + var l = this._listeners[i]; + l.el.removeEventListener(l.type, l.handler, l.options); + } + this._listeners = []; + + for (var key in this._named) { + if (Object.prototype.hasOwnProperty.call(this._named, key)) { + this._removeNamed(key); + } + } + + if (this.dropdown && typeof this.dropdown.dispose === 'function') { + this.dropdown.dispose(); + } + + this.element.classList.remove('bs-select-hidden', 'selectpicker', 'mobile-device'); + + instanceMap.delete(this.element); + } +} + +// stores element -> Selectpicker instance +var instanceMap = new WeakMap(); + +Selectpicker.NAME = 'selectpicker'; +Selectpicker.VERSION = '1.1.0'; + +// user-provided global defaults (set via Selectpicker.setDefaults, used by i18n files) +Selectpicker.defaults = null; + +// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both. +Selectpicker.DEFAULTS = { + noneSelectedText: 'Nothing selected', + noneResultsText: 'No results matched {0}', + countSelectedText: function (numSelected) { + return (numSelected == 1) ? '{0} item selected' : '{0} items selected'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', + (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' + ]; + }, + selectAllText: 'Select All', + deselectAllText: 'Deselect All', + source: { + pageSize: 40, + create: null + }, + chunkSize: 40, + doneButton: false, + doneButtonText: 'Close', + multipleSeparator: ', ', + style: classNames.BUTTONCLASS, + size: 'auto', + placeholder: null, + allowClear: false, + selectedTextFormat: 'values', + hideDisabled: false, + showSubtext: false, + showIcon: true, + showContent: true, + dropupAuto: true, + header: false, + liveSearch: false, + liveSearchPlaceholder: null, + liveSearchNormalize: false, + liveSearchStyle: 'contains', + openOptions: false, + openOptionsText: 'Create "{0}"', + selectionIndicator: 'checkmark', + actionsBox: false, + iconBase: classNames.ICONBASE, + tickIcon: classNames.TICKICON, + showTick: false, + showSelectedTags: false, + selectedItemsStyle: 'tags', + selectedTagRemoveLabel: 'Remove', + template: { + caret: '' + }, + maxOptions: false, + selectOnTab: true, + dropdownAlignRight: false, + virtualScroll: 600, + sanitize: true, + sanitizeFn: null, + whiteList: DefaultWhitelist +}; + +Selectpicker._buildConfig = function (element, options) { + options = stripRemovedOptions(options || {}); + + var dataAttributes = stripRemovedOptions(getDataset(element)); + + for (var dataAttr in dataAttributes) { + if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { + delete dataAttributes[dataAttr]; + } + } + + var userDefaults = stripRemovedOptions(Selectpicker.defaults || {}); + + var config = Object.assign({}, Selectpicker.DEFAULTS, userDefaults, getAttributesObject(element), dataAttributes, options); + config.template = Object.assign({}, Selectpicker.DEFAULTS.template, userDefaults.template || {}, dataAttributes.template, options.template); + config.source = Object.assign({}, Selectpicker.DEFAULTS.source, userDefaults.source || {}, options.source); + + return config; +}; + +Selectpicker.setDefaults = function (newDefaults) { + Selectpicker.defaults = stripRemovedOptions(Object.assign({}, Selectpicker.defaults, newDefaults)); +}; + +Selectpicker.getInstance = function (element) { + if (typeof element === 'string') element = document.querySelector(element); + return instanceMap.get(element) || null; +}; + +Selectpicker.getOrCreateInstance = function (element, options) { + if (typeof element === 'string') element = document.querySelector(element); + if (!element || element.tagName !== 'SELECT') return null; + + var instance = instanceMap.get(element); + + if (instance) { + options = stripRemovedOptions(options); + + if (options && typeof options === 'object') { + for (var i in options) { + if (Object.prototype.hasOwnProperty.call(options, i)) { + instance.options[i] = options[i]; + } + } + } + + return instance; + } + + return new Selectpicker(element, typeof options === 'object' ? options : {}); +}; + +// +var KEYDOWN_SELECTOR = '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input'; + +// Handle keyboard navigation ourselves. This listener runs in the capture +// phase on `window` so it executes before Bootstrap's `document`-level +// (capture-phase, delegated) dropdown keydown handler and prevents it from +// processing bootstrap-select's custom menu (which would otherwise error on +// relocated/container menus and conflict with our own navigation). This +// replaces the upstream approach of unbinding Bootstrap's global handler. +window.addEventListener('keydown', function (e) { + var target = e.target; + if (!target || !target.closest) return; + + // Any keydown originating inside a bootstrap-select widget (or its relocated + // menu container) must not reach Bootstrap's dropdown keydown handler. + var widget = target.closest('.bootstrap-select, .bs-container'); + if (!widget) return; + + e.stopImmediatePropagation(); + + var trigger = target.closest(KEYDOWN_SELECTOR); + if (!trigger) return; + + var instance; + for (var node = trigger; node; node = node.parentElement) { + if (node.bootstrapSelectInstance) { + instance = node.bootstrapSelectInstance; + break; + } + } + + if (instance) instance._keydown(e, trigger); +}, true); + +document.addEventListener('focusin', function (e) { + var target = e.target; + if (target && target.closest && target.closest(KEYDOWN_SELECTOR)) { + e.stopPropagation(); + } +}); + +function initAll () { + var selects = document.querySelectorAll('.selectpicker'); + Array.prototype.forEach.call(selects, function (select) { + Selectpicker.getOrCreateInstance(select); + }); +} + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initAll); +} else { + initAll(); +} +// + +if (typeof window !== 'undefined') { + window.Selectpicker = Selectpicker; +} + +return Selectpicker; + +})); + +//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.js.map b/docs/dist/js/bootstrap-select.js.map new file mode 100644 index 0000000..ff93519 --- /dev/null +++ b/docs/dist/js/bootstrap-select.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/bootstrap-select.js"],"names":[],"mappings":"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CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AAChF,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACzC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AAC7B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;AACf,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC7E,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC9D,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5F,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5F,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAChC,EAAE,EAAE,KAAK,EAAE,CAAC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,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;AACrC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACnB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAA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","file":"bootstrap-select.js","sourcesContent":["'use strict';\n\n// Resolve Bootstrap's Dropdown component (Bootstrap 5+). It may be provided\n// by the UMD factory (`bootstrap`), or available as a global.\nfunction getDropdown () {\n var bs = bootstrap || (typeof window !== 'undefined' ? window.bootstrap : undefined);\n return (bs && bs.Dropdown) || (typeof window !== 'undefined' ? window.Dropdown : undefined);\n}\n\n// \nfunction createFromHTML (html) {\n var wrapper = document.createElement('div');\n wrapper.innerHTML = html.trim();\n return wrapper.firstChild;\n}\n\nfunction toInteger (value) {\n return parseInt(value, 10) || 0;\n}\n\nfunction offset (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + window.pageYOffset,\n left: rect.left + window.pageXOffset\n };\n}\n\n// Resolves a container option (selector string or element) to an element.\nfunction resolveContainer (container) {\n if (!container) return null;\n return typeof container === 'string' ? document.querySelector(container) : container;\n}\n\nfunction outerHeight (el, includeMargin) {\n var height = el.offsetHeight;\n if (includeMargin) {\n var style = window.getComputedStyle(el);\n height += toInteger(style.marginTop) + toInteger(style.marginBottom);\n }\n return height;\n}\n\nfunction setStyles (el, styles) {\n for (var prop in styles) {\n if (Object.prototype.hasOwnProperty.call(styles, prop)) {\n el.style[prop] = styles[prop];\n }\n }\n}\n\nfunction triggerNative (el, eventName) {\n el.dispatchEvent(new Event(eventName, { bubbles: true }));\n}\n\n// shallow array comparison\nfunction isEqual (array1, array2) {\n return array1.length === array2.length && array1.every(function (element, index) {\n return element === array2[index];\n });\n}\n\nfunction toKebabCase (str) {\n return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, function ($, ofs) {\n return (ofs ? '-' : '') + $.toLowerCase();\n });\n}\n\nfunction toCamelCase (str) {\n return str.replace(/-([a-z])/g, function (m, letter) {\n return letter.toUpperCase();\n });\n}\n\n// Read options from data-* attributes using native values where possible.\nfunction convertDataValue (value) {\n if (value === 'true') return true;\n if (value === 'false') return false;\n if (value === 'null') return null;\n if (value === +value + '') return +value;\n if (/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/.test(value)) {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n }\n return value;\n}\n\nfunction getDataset (el) {\n var dataset = {},\n attributes = el.attributes;\n\n for (var i = 0; i < attributes.length; i++) {\n var name = attributes[i].name;\n if (name.indexOf('data-') === 0) {\n dataset[toCamelCase(name.slice(5))] = convertDataValue(attributes[i].value);\n }\n }\n\n return dataset;\n}\n// \n\n// \nvar DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n\nvar uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n];\n\nvar ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n\nvar DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n\n// A pattern that recognizes a commonly useful subset of URLs that are safe.\nvar SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n\n// A pattern that matches safe data URLs. Only matches image, video and audio types.\nvar DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\nvar ParseableAttributes = ['placeholder']; // attributes to use as settings, can add others in the future\n\nfunction allowedAttribute (attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (value) {\n return value instanceof RegExp;\n });\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction sanitizeHtml (unsafeElements, whiteList, sanitizeFn) {\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeElements);\n }\n\n var whitelistKeys = Object.keys(whiteList);\n\n for (var i = 0, len = unsafeElements.length; i < len; i++) {\n var elements = unsafeElements[i].querySelectorAll('*');\n\n for (var j = 0, len2 = elements.length; j < len2; j++) {\n var el = elements[j];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el);\n\n continue;\n }\n\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n\n for (var k = 0, len3 = attributeList.length; k < len3; k++) {\n var attr = attributeList[k];\n\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n }\n }\n }\n}\n// \n\nfunction getAttributesObject (element) {\n var attributesObject = {},\n attrVal;\n\n ParseableAttributes.forEach(function (item) {\n attrVal = element.getAttribute(item);\n if (attrVal) attributesObject[item] = attrVal;\n });\n\n return attributesObject;\n}\n\n// \nfunction stringSearch (li, searchString, method, normalize) {\n var stringTypes = [\n 'display',\n 'subtext',\n 'tokens'\n ],\n searchSuccess = false;\n\n for (var i = 0; i < stringTypes.length; i++) {\n var stringType = stringTypes[i],\n string = li[stringType];\n\n if (string) {\n string = string.toString();\n\n // Strip HTML tags. This isn't perfect, but it's much faster than any other method\n if (stringType === 'display') {\n string = string.replace(/<[^>]+>/g, '');\n }\n\n if (normalize) string = normalizeToBase(string);\n string = string.toUpperCase();\n\n if (typeof method === 'function') {\n searchSuccess = method(string, searchString);\n } else if (method === 'contains') {\n searchSuccess = string.indexOf(searchString) >= 0;\n } else {\n searchSuccess = string.startsWith(searchString);\n }\n\n if (searchSuccess) break;\n }\n }\n\n return searchSuccess;\n}\n\nfunction normalizeSearchInput (value, normalize) {\n if (value === undefined || value === null) value = '';\n value = value.toString().trim();\n\n if (normalize && value) value = normalizeToBase(value);\n\n return value.toUpperCase();\n}\n\nfunction getOptionLabelText (option) {\n if (!option) return '';\n\n return option.title || option.text || option.value || '';\n}\n\n// Borrowed from Lodash (_.deburr)\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboMarksExtendedRange = '\\\\u1ab0-\\\\u1aff',\n rsComboMarksSupplementRange = '\\\\u1dc0-\\\\u1dff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\nvar reComboMark = RegExp(rsCombo, 'g');\n\nfunction deburrLetter (key) {\n return deburredLetters[key];\n}\n\nfunction normalizeToBase (string) {\n string = string.toString();\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n// List of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\nvar createEscaper = function (map) {\n var escaper = function (match) {\n return map[match];\n };\n var source = '(?:' + Object.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function (string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n};\n\nvar htmlEscape = createEscaper(escapeMap);\n// \n\n// \nvar keyCodeMap = {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6',\n 55: '7', 56: '8', 57: '9', 59: ';',\n 65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 72: 'H',\n 73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P',\n 81: 'Q', 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X',\n 89: 'Y', 90: 'Z',\n 96: '0', 97: '1', 98: '2', 99: '3', 100: '4', 101: '5', 102: '6',\n 103: '7', 104: '8', 105: '9'\n};\n\nvar keyCodes = {\n ESCAPE: 27,\n ENTER: 13,\n SPACE: 32,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};\n\nvar selectId = 0;\n\nvar EVENT_KEY = '.bs.select';\n\n// Bootstrap 5 class names.\nvar classNames = {\n DISABLED: 'disabled',\n DIVIDER: 'dropdown-divider',\n SHOW: 'show',\n DROPUP: 'dropup',\n MENU: 'dropdown-menu',\n MENUEND: 'dropdown-menu-end',\n BUTTONCLASS: 'btn-light',\n POPOVERHEADER: 'popover-header',\n ICONBASE: '',\n TICKICON: 'bs-ok-default'\n};\n\nvar Selector = {\n MENU: '.' + classNames.MENU,\n DATA_TOGGLE: 'data-bs-toggle=\"dropdown\"'\n};\n\nvar elementTemplates = {\n div: document.createElement('div'),\n span: document.createElement('span'),\n i: document.createElement('i'),\n subtext: document.createElement('small'),\n a: document.createElement('a'),\n li: document.createElement('li'),\n whitespace: document.createTextNode('\\u00A0'),\n fragment: document.createDocumentFragment(),\n option: document.createElement('option')\n};\n\nelementTemplates.selectedOption = elementTemplates.option.cloneNode(false);\nelementTemplates.selectedOption.setAttribute('selected', true);\n\nelementTemplates.noResults = elementTemplates.li.cloneNode(false);\nelementTemplates.noResults.className = 'no-results';\n\nelementTemplates.a.setAttribute('role', 'option');\nelementTemplates.a.className = 'dropdown-item';\n\nelementTemplates.subtext.className = 'text-muted';\n\nelementTemplates.text = elementTemplates.span.cloneNode(false);\nelementTemplates.text.className = 'text';\n\nelementTemplates.checkMark = elementTemplates.span.cloneNode(false);\n\nvar REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);\nvar REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);\n\nvar generateOption = {\n li: function (content, classes, optgroup) {\n var li = elementTemplates.li.cloneNode(false);\n\n if (content) {\n if (content.nodeType === 1 || content.nodeType === 11) {\n li.appendChild(content);\n } else {\n li.innerHTML = content;\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') li.className = classes;\n if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);\n\n return li;\n },\n\n a: function (text, classes, inline) {\n var a = elementTemplates.a.cloneNode(true);\n\n if (text) {\n if (text.nodeType === 11) {\n a.appendChild(text);\n } else {\n a.insertAdjacentHTML('beforeend', text);\n }\n }\n\n if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(/\\s+/));\n if (inline) a.setAttribute('style', inline);\n\n return a;\n },\n\n text: function (options, useFragment) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n\n if (options.content) {\n textElement.innerHTML = options.content;\n } else {\n textElement.textContent = options.text;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false);\n\n // need to use for icons in the button to prevent a breaking change\n iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n }\n\n if (useFragment === true) {\n while (textElement.childNodes.length > 0) {\n elementTemplates.fragment.appendChild(textElement.childNodes[0]);\n }\n } else {\n elementTemplates.fragment.appendChild(textElement);\n }\n\n return elementTemplates.fragment;\n },\n\n label: function (options) {\n var textElement = elementTemplates.text.cloneNode(false),\n subtextElement,\n iconElement;\n\n textElement.innerHTML = options.display;\n\n if (options.icon) {\n var whitespace = elementTemplates.whitespace.cloneNode(false);\n\n iconElement = elementTemplates.span.cloneNode(false);\n iconElement.className = this.options.iconBase + ' ' + options.icon;\n\n elementTemplates.fragment.appendChild(iconElement);\n elementTemplates.fragment.appendChild(whitespace);\n }\n\n if (options.subtext) {\n subtextElement = elementTemplates.subtext.cloneNode(false);\n subtextElement.textContent = options.subtext;\n textElement.appendChild(subtextElement);\n }\n\n elementTemplates.fragment.appendChild(textElement);\n\n return elementTemplates.fragment;\n }\n};\n\nvar getOptionData = {\n fromOption: function (option, type) {\n var value;\n\n switch (type) {\n case 'divider':\n value = option.getAttribute('data-divider') === 'true';\n break;\n\n case 'text':\n value = option.textContent;\n break;\n\n case 'label':\n value = option.label;\n break;\n\n case 'style':\n value = option.style.cssText;\n break;\n\n case 'title':\n value = option.title;\n break;\n\n default:\n value = option.getAttribute('data-' + toKebabCase(type));\n break;\n }\n\n return value;\n },\n fromDataSource: function (option, type) {\n var value;\n\n switch (type) {\n case 'text':\n case 'label':\n value = option.text || option.value || '';\n break;\n\n default:\n value = option[type];\n break;\n }\n\n return value;\n }\n};\n\nfunction showNoResults (searchMatch, searchValue) {\n if (!searchMatch.length) {\n elementTemplates.noResults.innerHTML = this.options.noneResultsText.replace('{0}', '\"' + htmlEscape(searchValue) + '\"');\n this.menuInner.firstChild.appendChild(elementTemplates.noResults);\n }\n}\n\nfunction filterHidden (item) {\n return !(item.hidden || this.options.hideDisabled && item.disabled);\n}\n\nfunction getSelectedOptions () {\n var options = this.selectpicker.main.data;\n\n if (this.options.source.data || this.options.source.search) {\n options = Object.values(this.selectpicker.optionValuesDataMap);\n }\n\n var selectedOptions = options.filter(function (item) {\n if (item.selected) {\n if (this.options.hideDisabled && item.disabled) return false;\n return true;\n }\n\n return false;\n }, this);\n\n // ensure only 1 option is selected if multiple are set in the data source\n if (this.options.source.data && !this.multiple && selectedOptions.length > 1) {\n for (var i = 0; i < selectedOptions.length - 1; i++) {\n selectedOptions[i].selected = false;\n }\n\n selectedOptions = [ selectedOptions[selectedOptions.length - 1] ];\n }\n\n return selectedOptions;\n}\n\nfunction getSelectValues (selectedOptions) {\n var value = [],\n options = selectedOptions || getSelectedOptions.call(this),\n opt;\n\n for (var i = 0, len = options.length; i < len; i++) {\n opt = options[i];\n\n if (!opt.disabled) {\n value.push(opt.value === undefined ? opt.text : opt.value);\n }\n }\n\n if (!this.multiple) {\n return !value.length ? null : value[0];\n }\n\n return value;\n}\n// \n\nvar changedArguments = null;\n\n// shared flag for spacebar selection handling (mirrors original document data flag)\nvar spaceSelectFlag = false;\n\nvar REMOVED_OPTIONS = ['container', 'display', 'mobile', 'styleBase', 'width', 'windowPadding'];\n\nfunction stripRemovedOptions (source) {\n if (!source || typeof source !== 'object') return source;\n\n var result = Object.assign({}, source);\n\n for (var i = 0; i < REMOVED_OPTIONS.length; i++) {\n delete result[REMOVED_OPTIONS[i]];\n }\n\n return result;\n}\n\nclass Selectpicker {\n constructor (element, options) {\n if (typeof element === 'string') {\n element = document.querySelector(element);\n }\n\n if (!element || element.tagName !== 'SELECT') {\n throw new TypeError('Selectpicker requires a select element or selector.');\n }\n\n this.element = element;\n this.newElement = null;\n this.button = null;\n this.menu = null;\n this.options = Selectpicker._buildConfig(element, options || {});\n\n // tracked event listeners for clean teardown\n this._listeners = [];\n this._named = {};\n\n this.selectpicker = {\n main: {\n data: [],\n optionQueue: elementTemplates.fragment.cloneNode(false),\n hasMore: false\n },\n search: {\n data: [],\n hasMore: false\n },\n current: {}, // current is either equal to main or search depending on if a search is in progress\n view: {},\n // map of option values and their respective data (only used in conjunction with options.source)\n optionValuesDataMap: {},\n createdOptions: [],\n openOption: {\n isCreating: false\n },\n isSearching: false,\n keydown: {\n keyHistory: '',\n resetKeyHistory: {\n start: () => {\n return setTimeout(() => {\n this.selectpicker.keydown.keyHistory = '';\n }, 800);\n }\n }\n }\n };\n\n this.sizeInfo = {};\n\n this.init();\n\n instanceMap.set(element, this);\n }\n\n // \n _on (el, type, handler, options) {\n el.addEventListener(type, handler, options);\n this._listeners.push({ el: el, type: type, handler: handler, options: options });\n return handler;\n }\n\n _delegate (el, type, selector, handler, options) {\n var listener = function (e) {\n var target = e.target.closest(selector);\n if (target && el.contains(target)) {\n handler.call(target, e);\n }\n };\n return this._on(el, type, listener, options);\n }\n\n _emit (name, detail) {\n var event = new CustomEvent(name + EVENT_KEY, {\n bubbles: true,\n cancelable: true,\n detail: detail || null\n });\n this.element.dispatchEvent(event);\n return event;\n }\n\n // adds an event listener that replaces any previously-registered listener under `key`\n _replace (key, el, type, handler, options) {\n this._removeNamed(key);\n el.addEventListener(type, handler, options);\n this._named[key] = { el: el, type: type, handler: handler, options: options };\n }\n\n _removeNamed (key) {\n var prev = this._named[key];\n if (prev) {\n prev.el.removeEventListener(prev.type, prev.handler, prev.options);\n delete this._named[key];\n }\n }\n // \n\n init () {\n var that = this,\n id = this.element.getAttribute('id'),\n element = this.element,\n form = element.form;\n\n selectId++;\n this.selectId = 'bs-select-' + selectId;\n\n element.classList.add('bs-select-hidden');\n\n this.multiple = this.element.multiple;\n this.autofocus = this.element.autofocus;\n\n if (element.classList.contains('show-tick')) {\n this.options.showTick = true;\n }\n\n this.newElement = this.createDropdown();\n\n // insert newElement after element, then move element to be the first child of newElement\n element.parentNode.insertBefore(this.newElement, element.nextSibling);\n this.newElement.insertBefore(element, this.newElement.firstChild);\n\n // ensure select is associated with form element if it got unlinked after moving it inside newElement\n if (form && element.form === null) {\n if (!form.id) form.id = 'form-' + this.selectId;\n element.setAttribute('form', form.id);\n }\n\n this.button = this.newElement.querySelector(':scope > button');\n if (this.options.allowClear) this.clearButton = this.button.querySelector('.bs-select-clear-selected');\n this.menu = this.newElement.querySelector(':scope > ' + Selector.MENU);\n this.menuInner = this.menu.querySelector('.inner');\n this.searchbox = this.menu.querySelector('input');\n this.selectedItems = this.newElement.querySelector(':scope > .bs-selected-items-external') || this.menu.querySelector('.bs-selected-items');\n this.createOptionButton = this.menu.querySelector('.bs-create-option');\n\n element.classList.remove('bs-select-hidden');\n\n this.fetchData(function () {\n that.render(true);\n that.buildList();\n\n requestAnimationFrame(function () {\n that._emit('loaded');\n });\n });\n\n if (this.options.dropdownAlignRight === true) this.menu.classList.add(classNames.MENUEND);\n\n if (typeof id !== 'undefined' && id !== null) {\n this.button.setAttribute('data-id', id);\n }\n\n this.checkDisabled();\n this.clickListener();\n\n var Dropdown = getDropdown();\n this.dropdown = new Dropdown(this.button);\n\n // store a reference to the instance for delegated handlers\n this.newElement.bootstrapSelectInstance = this;\n this.menu.bootstrapSelectInstance = this;\n\n if (this.options.liveSearch) {\n this.liveSearchListener();\n this.focusedParent = this.searchbox;\n } else {\n this.focusedParent = this.menuInner;\n }\n\n this.setStyle();\n this.setWidth();\n this._on(this.element, 'hide' + EVENT_KEY, function () {\n if (that.isVirtual()) {\n // empty menu on close\n var menuInner = that.menuInner,\n emptyMenu = menuInner.firstChild.cloneNode(false);\n\n // replace the existing UL with an empty one - this is faster than emptying it\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n menuInner.scrollTop = 0;\n }\n });\n\n // re-emit Bootstrap dropdown events as bootstrap-select events\n this._on(this.newElement, 'hide.bs.dropdown', function (e) {\n that._emit('hide', { bsEvent: e });\n });\n this._on(this.newElement, 'hidden.bs.dropdown', function (e) {\n that._emit('hidden', { bsEvent: e });\n });\n this._on(this.newElement, 'show.bs.dropdown', function (e) {\n that.onShow(e);\n that._emit('show', { bsEvent: e });\n });\n this._on(this.newElement, 'shown.bs.dropdown', function (e) {\n that._emit('shown', { bsEvent: e });\n });\n\n if (element.hasAttribute('required')) {\n this._on(this.element, 'invalid', function () {\n that.button.classList.add('bs-invalid');\n\n var onShownInvalid = function () {\n // set the value to hide the validation message in Chrome when menu is opened\n triggerNative(that.element, 'change');\n that.element.removeEventListener('shown' + EVENT_KEY, onShownInvalid);\n };\n that._on(that.element, 'shown' + EVENT_KEY, onShownInvalid);\n\n var onRendered = function () {\n // if select is no longer invalid, remove the bs-invalid class\n if (that.element.validity.valid) that.button.classList.remove('bs-invalid');\n that.element.removeEventListener('rendered' + EVENT_KEY, onRendered);\n };\n that._on(that.element, 'rendered' + EVENT_KEY, onRendered);\n\n var onBlur = function () {\n that.element.focus();\n that.element.blur();\n that.button.removeEventListener('blur' + EVENT_KEY, onBlur);\n };\n that._on(that.button, 'blur' + EVENT_KEY, onBlur);\n });\n }\n\n if (form) {\n this._on(form, 'reset', function () {\n requestAnimationFrame(function () {\n that.render();\n });\n });\n }\n }\n\n createDropdown () {\n // If we are multiple or showTick option is set, then add the show-tick class\n var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',\n showSelectedTags = this.options.showSelectedTags ? ' show-selected-tags' : '',\n selectedItemsStyle = this.options.selectedItemsStyle === 'list' ? ' selected-items-style-list' : '',\n selectionIndicator = this.options.selectionIndicator === 'checkbox' ? ' selection-indicator-checkbox' : '',\n multiselectable = this.multiple ? ' aria-multiselectable=\"true\"' : '',\n autofocus = this.autofocus ? ' autofocus' : '',\n liveSearchPlaceholder = this.options.liveSearchPlaceholder;\n\n if (liveSearchPlaceholder === null && (this.options.showSelectedTags || this.options.openOptions)) {\n liveSearchPlaceholder = this.options.placeholder || 'Search';\n }\n\n // Elements\n var drop,\n header = '',\n searchbox = '',\n actionsbox = '',\n donebutton = '',\n clearButton = '';\n\n if (this.options.header) {\n header =\n '
    ' +\n '' +\n this.options.header +\n '
    ';\n }\n\n if (this.options.liveSearch) {\n searchbox =\n '
    ' +\n '' +\n (this.options.openOptions\n ? ''\n : '') +\n '
    ';\n }\n\n if (this.multiple && this.options.actionsBox) {\n actionsbox =\n '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n '
    ';\n }\n\n if (this.multiple && this.options.doneButton) {\n donebutton =\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ';\n }\n\n if (this.options.allowClear) {\n clearButton = '×';\n }\n\n drop =\n '
    ' +\n '' +\n '
    ' +\n header +\n searchbox +\n actionsbox +\n '
    ' +\n '
      ' +\n '
    ' +\n '
    ' +\n donebutton +\n '
    ' +\n (this.multiple && this.options.showSelectedTags\n ? ''\n : '') +\n '
    ';\n\n return createFromHTML(drop);\n }\n\n // runs when the dropdown is about to be shown\n onShow () {\n if (this.options.liveSearch && this.searchbox.value) {\n this.searchbox.value = '';\n this.selectpicker.search.previousValue = undefined;\n }\n\n if (!this.newElement.classList.contains(classNames.SHOW)) {\n this.setSize();\n }\n }\n\n setPositionData () {\n this.selectpicker.view.canHighlight = [];\n this.selectpicker.view.size = 0;\n this.selectpicker.view.firstHighlightIndex = false;\n\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var li = this.selectpicker.current.data[i],\n canHighlight = true;\n\n if (li.type === 'divider') {\n canHighlight = false;\n li.height = this.sizeInfo.dividerHeight;\n } else if (li.type === 'optgroup-label') {\n canHighlight = false;\n li.height = this.sizeInfo.dropdownHeaderHeight;\n } else {\n li.height = this.sizeInfo.liHeight;\n }\n\n if (li.disabled) canHighlight = false;\n\n this.selectpicker.view.canHighlight.push(canHighlight);\n\n if (canHighlight) {\n this.selectpicker.view.size++;\n li.posinset = this.selectpicker.view.size;\n if (this.selectpicker.view.firstHighlightIndex === false) this.selectpicker.view.firstHighlightIndex = i;\n }\n\n li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height;\n }\n }\n\n isVirtual () {\n return (this.options.virtualScroll !== false) && (this.selectpicker.main.data.length >= this.options.virtualScroll) || this.options.virtualScroll === true;\n }\n\n createView (isSearching, setSize, refresh) {\n var that = this,\n scrollTop = 0;\n\n this.selectpicker.isSearching = isSearching;\n this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main;\n\n this.setPositionData();\n\n if (setSize) {\n if (refresh) {\n scrollTop = this.menuInner.scrollTop;\n } else if (!that.multiple) {\n var element = that.element,\n selectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof selectedIndex === 'number' && that.options.size !== false) {\n var selectedData = that.selectpicker.main.data[selectedIndex],\n position = selectedData && selectedData.position;\n\n if (position) {\n scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2);\n }\n }\n }\n }\n\n scroll(scrollTop, true);\n\n this._replace('createViewScroll', this.menuInner, 'scroll', function () {\n if (!that.noScroll) scroll(that.menuInner.scrollTop);\n that.noScroll = false;\n });\n\n function scroll (scrollTop, init) {\n var size = that.selectpicker.current.data.length,\n chunks = [],\n chunkSize,\n chunkCount,\n firstChunk,\n lastChunk,\n currentChunk,\n prevPositions,\n positionIsDifferent,\n previousElements,\n menuIsDifferent = true,\n isVirtual = that.isVirtual();\n\n that.selectpicker.view.scrollTop = scrollTop;\n\n chunkSize = that.options.chunkSize; // number of options in a chunk\n chunkCount = Math.ceil(size / chunkSize) || 1; // number of chunks\n\n for (var i = 0; i < chunkCount; i++) {\n var endOfChunk = (i + 1) * chunkSize;\n\n if (i === chunkCount - 1) {\n endOfChunk = size;\n }\n\n chunks[i] = [\n (i) * chunkSize + (!i ? 0 : 1),\n endOfChunk\n ];\n\n if (!size) break;\n\n if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) {\n currentChunk = i;\n }\n }\n\n if (currentChunk === undefined) currentChunk = 0;\n\n prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1];\n\n // always display previous, current, and next chunks\n firstChunk = Math.max(0, currentChunk - 1);\n lastChunk = Math.min(chunkCount - 1, currentChunk + 1);\n\n that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0);\n that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0);\n\n positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;\n\n if (that.activeElement !== undefined) {\n if (init) {\n if (that.activeElement !== that.selectedElement) {\n that.defocusItem(that.activeElement);\n }\n that.activeElement = undefined;\n }\n\n if (that.activeElement !== that.selectedElement) {\n that.defocusItem(that.selectedElement);\n }\n }\n\n if (that.prevActiveElement !== undefined && that.prevActiveElement !== that.activeElement && that.prevActiveElement !== that.selectedElement) {\n that.defocusItem(that.prevActiveElement);\n }\n\n if (init || positionIsDifferent || that.selectpicker.current.hasMore) {\n previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : [];\n\n if (isVirtual === false) {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements;\n } else {\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1);\n }\n\n that.setOptionStatus();\n\n // if searching, check to make sure the list has actually been updated before updating DOM\n // this prevents unnecessary repaints\n if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements);\n\n // if virtual scroll is disabled and not searching,\n // menu should never need to be updated more than once\n if ((init || isVirtual === true) && menuIsDifferent) {\n var menuInner = that.menuInner,\n menuFragment = document.createDocumentFragment(),\n emptyMenu = menuInner.firstChild.cloneNode(false),\n marginTop,\n marginBottom,\n elements = that.selectpicker.view.visibleElements,\n toSanitize = [];\n\n // replace the existing UL with an empty one - this is faster than emptying it\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\n\n for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) {\n var element = elements[i],\n elText,\n elementData;\n\n if (that.options.sanitize) {\n elText = element.lastChild;\n\n if (elText) {\n elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];\n\n if (elementData && elementData.content && !elementData.sanitized) {\n toSanitize.push(elText);\n elementData.sanitized = true;\n }\n }\n }\n\n menuFragment.appendChild(element);\n }\n\n if (that.options.sanitize && toSanitize.length) {\n sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn);\n }\n\n if (isVirtual === true) {\n marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position);\n marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position);\n\n menuInner.firstChild.style.marginTop = marginTop + 'px';\n menuInner.firstChild.style.marginBottom = marginBottom + 'px';\n } else {\n menuInner.firstChild.style.marginTop = 0;\n menuInner.firstChild.style.marginBottom = 0;\n }\n\n menuInner.firstChild.appendChild(menuFragment);\n\n // if an option is encountered that is wider than the current menu width, update the menu width accordingly\n if (isVirtual === true && that.sizeInfo.hasScrollBar) {\n var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;\n\n if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) {\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) {\n // set to 0 to get actual width of menu\n that.menu.style.minWidth = 0;\n\n var actualMenuWidth = menuInner.firstChild.offsetWidth;\n\n if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) {\n that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\n }\n\n // reset to default CSS styling\n that.menu.style.minWidth = '';\n }\n }\n }\n\n if ((!isSearching && that.options.source.data || isSearching && that.options.source.search) && that.selectpicker.current.hasMore && currentChunk === chunkCount - 1) {\n // Don't load the next chunk until scrolling has started\n // This prevents unnecessary requests while the user is typing if pageSize is <= chunkSize\n if (scrollTop > 0) {\n // Chunks use 0-based indexing, but pages use 1-based. Add 1 to convert and add 1 again to get next page\n var page = Math.floor((currentChunk * that.options.chunkSize) / that.options.source.pageSize) + 2;\n\n that.fetchData(function () {\n that.render();\n that.buildList(size, isSearching);\n that.setPositionData();\n scroll(scrollTop);\n }, isSearching ? 'search' : 'data', page, isSearching ? that.selectpicker.search.previousValue : undefined);\n }\n }\n }\n\n that.prevActiveElement = that.activeElement;\n\n if (!that.options.liveSearch) {\n that.menuInner.focus();\n } else if (isSearching && init) {\n var index = 0,\n newActive;\n\n if (!that.selectpicker.view.canHighlight[index]) {\n index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);\n }\n\n newActive = that.selectpicker.view.visibleElements[index];\n\n that.defocusItem(that.selectpicker.view.currentActive);\n\n that.activeElement = (that.selectpicker.current.data[index] || {}).element;\n\n that.focusItem(newActive);\n }\n }\n\n this._replace('createViewResize', window, 'resize', function () {\n var isActive = that.newElement.classList.contains(classNames.SHOW);\n\n if (isActive) scroll(that.menuInner.scrollTop);\n });\n }\n\n focusItem (li, liData, noStyle) {\n if (li) {\n liData = liData || this.selectpicker.current.data[this.selectpicker.current.elements.indexOf(this.activeElement)];\n var a = li.firstChild;\n\n if (a) {\n a.setAttribute('aria-setsize', this.selectpicker.view.size);\n a.setAttribute('aria-posinset', liData.posinset);\n\n if (noStyle !== true) {\n this.focusedParent.setAttribute('aria-activedescendant', a.id);\n li.classList.add('active');\n a.classList.add('active');\n }\n }\n }\n }\n\n defocusItem (li) {\n if (li) {\n li.classList.remove('active');\n if (li.firstChild) li.firstChild.classList.remove('active');\n }\n }\n\n setPlaceholder () {\n var that = this,\n updateIndex = false;\n\n if ((this.options.placeholder || this.options.allowClear) && !this.multiple) {\n if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option');\n\n // this option doesn't create a new
  • element, but does add a new option at the start,\n // so startIndex should increase to prevent having to check every option for the bs-title-option class\n updateIndex = true;\n\n var element = this.element,\n selectTitleOption = false,\n titleNotAppended = !this.selectpicker.view.titleOption.parentNode,\n selectedIndex = element.selectedIndex,\n selectedOption = element.options[selectedIndex],\n firstSelectable = element.querySelector('select > *:not(:disabled)'),\n firstSelectableIndex = firstSelectable ? firstSelectable.index : 0,\n navigation = window.performance && window.performance.getEntriesByType('navigation'),\n // Safari doesn't support getEntriesByType('navigation') - fall back to performance.navigation\n isNotBackForward = (navigation && navigation.length) ? navigation[0].type !== 'back_forward' : window.performance.navigation.type !== 2;\n\n if (titleNotAppended) {\n // Use native JS to prepend option (faster)\n this.selectpicker.view.titleOption.className = 'bs-title-option';\n this.selectpicker.view.titleOption.value = '';\n\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n selectTitleOption = !selectedOption || (selectedIndex === firstSelectableIndex && selectedOption.defaultSelected === false);\n }\n\n if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) {\n element.insertBefore(this.selectpicker.view.titleOption, element.firstChild);\n }\n\n // Set selected *after* appending to select\n if (selectTitleOption && isNotBackForward) {\n element.selectedIndex = 0;\n } else if (document.readyState !== 'complete') {\n // if navigation type is back_forward, there's a chance the select will have its value set by BFCache\n // wait for that value to be set, then run render again\n window.addEventListener('pageshow', function () {\n if (that.selectpicker.view.displayedValue !== element.value) that.render();\n });\n }\n }\n\n return updateIndex;\n }\n\n fetchData (callback, type, page, searchValue) {\n page = page || 1;\n type = type || 'data';\n\n var that = this,\n data = this.options.source[type],\n builtData;\n\n if (data) {\n this.options.virtualScroll = true;\n\n if (typeof data === 'function') {\n data.call(\n this,\n function (data, more, totalItems) {\n var current = that.selectpicker[type === 'search' ? 'search' : 'main'];\n current.hasMore = more;\n current.totalItems = totalItems;\n builtData = that.buildData(data, type);\n callback.call(that, builtData);\n that._emit('fetched');\n },\n page,\n searchValue\n );\n } else if (Array.isArray(data)) {\n builtData = that.buildData(data, type);\n callback.call(that, builtData);\n }\n } else {\n builtData = this.buildData(false, type);\n callback.call(that, builtData);\n }\n }\n\n buildData (data, type) {\n var that = this;\n var dataGetter = data === false ? getOptionData.fromOption : getOptionData.fromDataSource;\n\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([style*=\"display: none\"])',\n mainData = [],\n startLen = this.selectpicker.main.data ? this.selectpicker.main.data.length : 0,\n optID = 0,\n startIndex = this.setPlaceholder() && !data ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop\n\n if (type === 'search') {\n startLen = this.selectpicker.search.data.length;\n }\n\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\n\n var selectOptions = data ? data.filter(filterHidden, this) : this.element.querySelectorAll('select > *' + optionSelector);\n\n function addDivider (config) {\n var previousData = mainData[mainData.length - 1];\n\n // ensure optgroup doesn't create back-to-back dividers\n if (\n previousData &&\n previousData.type === 'divider' &&\n (previousData.optID || config.optID)\n ) {\n return;\n }\n\n config = config || {};\n config.type = 'divider';\n\n mainData.push(config);\n }\n\n function addOption (item, config) {\n config = config || {};\n\n config.divider = dataGetter(item, 'divider');\n\n if (config.divider === true) {\n addDivider({\n optID: config.optID\n });\n } else {\n var liIndex = mainData.length + startLen,\n cssText = dataGetter(item, 'style'),\n inlineStyle = cssText ? htmlEscape(cssText) : '',\n optionClass = (item.className || '') + (config.optgroupClass || '');\n\n if (config.optID) optionClass = 'opt ' + optionClass;\n\n config.optionClass = optionClass.trim();\n config.inlineStyle = inlineStyle;\n\n config.text = dataGetter(item, 'text');\n config.title = dataGetter(item, 'title');\n config.content = dataGetter(item, 'content');\n config.tokens = dataGetter(item, 'tokens');\n config.subtext = dataGetter(item, 'subtext');\n config.icon = dataGetter(item, 'icon');\n\n config.display = config.content || config.text;\n config.value = item.value === undefined ? item.text : item.value;\n config.type = 'option';\n config.index = liIndex;\n\n config.option = !item.option ? item : item.option; // reference option element if it exists\n config.option.liIndex = liIndex;\n config.selected = !!item.selected;\n config.disabled = config.disabled || !!item.disabled;\n\n if (data !== false) {\n if (that.selectpicker.optionValuesDataMap[config.value]) {\n config = Object.assign(that.selectpicker.optionValuesDataMap[config.value], config);\n } else {\n that.selectpicker.optionValuesDataMap[config.value] = config;\n }\n }\n\n mainData.push(config);\n }\n }\n\n function addOptgroup (index, selectOptions) {\n var optgroup = selectOptions[index],\n // skip placeholder option\n previous = index - 1 < startIndex ? false : selectOptions[index - 1],\n next = selectOptions[index + 1],\n options = data ? optgroup.children.filter(filterHidden, this) : optgroup.querySelectorAll('option' + optionSelector);\n\n if (!options.length) return;\n\n var config = {\n display: htmlEscape(dataGetter(item, 'label')),\n subtext: dataGetter(optgroup, 'subtext'),\n icon: dataGetter(optgroup, 'icon'),\n type: 'optgroup-label',\n optgroupClass: ' ' + (optgroup.className || ''),\n optgroup: optgroup\n },\n headerIndex,\n lastIndex;\n\n optID++;\n\n if (previous) {\n addDivider({ optID: optID });\n }\n\n config.optID = optID;\n\n mainData.push(config);\n\n for (var j = 0, len = options.length; j < len; j++) {\n var option = options[j];\n\n if (j === 0) {\n headerIndex = mainData.length - 1;\n lastIndex = headerIndex + len;\n }\n\n addOption(option, {\n headerIndex: headerIndex,\n lastIndex: lastIndex,\n optID: config.optID,\n optgroupClass: config.optgroupClass,\n disabled: optgroup.disabled\n });\n }\n\n if (next) {\n addDivider({ optID: optID });\n }\n }\n\n var item;\n\n for (var len = selectOptions.length, i = startIndex; i < len; i++) {\n item = selectOptions[i];\n var children = item.children;\n\n if (children && children.length) {\n addOptgroup.call(this, i, selectOptions);\n } else {\n addOption.call(this, item, {});\n }\n }\n\n switch (type) {\n case 'data': {\n if (!this.selectpicker.main.data) {\n this.selectpicker.main.data = [];\n }\n Array.prototype.push.apply(this.selectpicker.main.data, mainData);\n this.selectpicker.current.data = this.selectpicker.main.data;\n break;\n }\n case 'search': {\n Array.prototype.push.apply(this.selectpicker.search.data, mainData);\n break;\n }\n }\n\n return mainData;\n }\n\n buildList (size, searching) {\n var that = this,\n selectData = searching ? this.selectpicker.search.data : this.selectpicker.main.data,\n mainElements = [],\n widestOptionLength = 0;\n\n if (that.options.showTick || that.multiple) {\n elementTemplates.checkMark.className = this.options.selectionIndicator === 'checkbox'\n ? 'check-mark bs-selection-indicator'\n : this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';\n\n if (!elementTemplates.checkMark.parentNode) {\n elementTemplates.a.appendChild(elementTemplates.checkMark);\n }\n }\n\n function buildElement (mainElements, item) {\n var liElement,\n combinedLength = 0;\n\n switch (item.type) {\n case 'divider':\n liElement = generateOption.li(\n false,\n classNames.DIVIDER,\n (item.optID ? item.optID + 'div' : undefined)\n );\n\n break;\n\n case 'option':\n liElement = generateOption.li(\n generateOption.a(\n generateOption.text.call(that, item),\n item.optionClass,\n item.inlineStyle\n ),\n '',\n item.optID\n );\n\n if (liElement.firstChild) {\n liElement.firstChild.id = that.selectId + '-' + item.index;\n }\n\n break;\n\n case 'optgroup-label':\n liElement = generateOption.li(\n generateOption.label.call(that, item),\n 'dropdown-header' + item.optgroupClass,\n item.optID\n );\n\n break;\n }\n\n if (item.content) item.sanitized = false;\n\n if (!item.element) {\n item.element = liElement;\n } else {\n item.element.innerHTML = liElement.innerHTML;\n }\n mainElements.push(item.element);\n\n // count the number of characters in the option - not perfect, but should work in most cases\n if (item.display) combinedLength += item.display.length;\n if (item.subtext) combinedLength += item.subtext.length;\n // if there is an icon, ensure this option's width is checked\n if (item.icon) combinedLength += 1;\n\n if (combinedLength > widestOptionLength) {\n widestOptionLength = combinedLength;\n\n // guess which option is the widest\n that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];\n }\n }\n\n var startIndex = size || 0;\n\n for (var len = selectData.length, i = startIndex; i < len; i++) {\n var item = selectData[i];\n\n buildElement(mainElements, item);\n }\n\n if (size) {\n if (searching) {\n Array.prototype.push.apply(this.selectpicker.search.elements, mainElements);\n } else {\n Array.prototype.push.apply(this.selectpicker.main.elements, mainElements);\n this.selectpicker.current.elements = this.selectpicker.main.elements;\n }\n } else {\n if (searching) {\n this.selectpicker.search.elements = mainElements;\n } else {\n this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;\n }\n }\n }\n\n findLis () {\n return this.menuInner.querySelectorAll('.inner > li');\n }\n\n render (init) {\n var that = this,\n element = this.element,\n // ensure titleOption is appended and selected (if necessary) before getting selectedOptions\n placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,\n selectedOptions = getSelectedOptions.call(this),\n selectedCount = selectedOptions.length,\n selectedValues = getSelectValues.call(this, selectedOptions),\n button = this.button,\n buttonInner = button.querySelector('.filter-option-inner-inner'),\n multipleSeparator = document.createTextNode(this.options.multipleSeparator),\n titleFragment = elementTemplates.fragment.cloneNode(false),\n forceCount = this.multiple && this.options.showSelectedTags && selectedCount > 0,\n showCount,\n countMax,\n hasContent = false;\n\n function createSelected (item) {\n if (item.selected) {\n that.createOption(item, true);\n } else if (item.children && item.children.length) {\n item.children.map(createSelected);\n }\n }\n\n // create selected option elements to ensure select value is correct\n if (this.options.source.data && init) {\n selectedOptions.map(createSelected);\n element.appendChild(this.selectpicker.main.optionQueue);\n\n if (placeholderSelected) placeholderSelected = element.selectedIndex === 0;\n }\n\n button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !selectedValues && selectedValues !== 0);\n\n if (!that.multiple && selectedOptions.length === 1) {\n that.selectpicker.view.displayedValue = selectedValues;\n }\n\n if (this.options.selectedTextFormat === 'static') {\n titleFragment = generateOption.text.call(this, { text: this.options.placeholder }, true);\n } else {\n showCount = forceCount || this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 0;\n\n // determine if the number of selected options will be shown (showCount === true)\n if (showCount && !forceCount) {\n countMax = this.options.selectedTextFormat.split('>');\n showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2);\n }\n\n // only loop through all selected options if the count won't be shown\n if (showCount === false) {\n if (!placeholderSelected) {\n for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {\n if (selectedIndex < 50) {\n var option = selectedOptions[selectedIndex],\n titleOptions = {};\n\n if (option) {\n if (this.multiple && selectedIndex > 0) {\n titleFragment.appendChild(multipleSeparator.cloneNode(false));\n }\n\n if (option.title) {\n titleOptions.text = option.title;\n } else if (option.content && that.options.showContent) {\n titleOptions.content = option.content.toString();\n hasContent = true;\n } else {\n if (that.options.showIcon) {\n titleOptions.icon = option.icon;\n }\n if (that.options.showSubtext && !that.multiple && option.subtext) titleOptions.subtext = ' ' + option.subtext;\n titleOptions.text = option.text.trim();\n }\n\n titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));\n }\n } else {\n break;\n }\n }\n\n // add ellipsis\n if (selectedCount > 49) {\n titleFragment.appendChild(document.createTextNode('...'));\n }\n }\n } else {\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([data-divider=\"true\"]):not([style*=\"display: none\"])';\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\n\n // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.\n var totalCount = this.element.querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length,\n tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;\n\n titleFragment = generateOption.text.call(this, {\n text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())\n }, true);\n }\n }\n\n // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText\n if (!titleFragment.childNodes.length) {\n titleFragment = generateOption.text.call(this, {\n text: this.options.placeholder ? this.options.placeholder : this.options.noneSelectedText\n }, true);\n }\n\n // if the select has a title, apply it to the button, and if not, apply titleFragment text\n button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim();\n\n if (this.options.sanitize && hasContent) {\n sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn);\n }\n\n buttonInner.innerHTML = '';\n buttonInner.appendChild(titleFragment);\n\n this.syncTagEditor();\n\n this._emit('rendered');\n }\n\n usesTagEditor () {\n return this.options.liveSearch && (this.options.showSelectedTags || this.options.openOptions);\n }\n\n syncTagEditor () {\n if (!this.usesTagEditor()) return;\n\n if (this.selectedItems) {\n var selectedOptions = getSelectedOptions.call(this),\n useListStyle = this.options.selectedItemsStyle === 'list';\n\n this.selectedItems.innerHTML = '';\n this.selectedItems.hidden = !selectedOptions.length;\n this.selectedItems.classList.toggle('list-group', useListStyle);\n\n for (var i = 0; i < selectedOptions.length; i++) {\n var item = selectedOptions[i],\n selectedTag = document.createElement('button'),\n removeText = this.options.selectedTagRemoveLabel + ' ' + getOptionLabelText(item),\n content = document.createElement('span'),\n label = document.createElement('span'),\n remove = document.createElement('span'),\n icon;\n\n selectedTag.type = 'button';\n selectedTag.className = useListStyle\n ? 'bs-selected-item list-group-item list-group-item-action'\n : 'bs-selected-item';\n selectedTag.setAttribute('data-option-value', item.value);\n selectedTag.setAttribute('aria-label', removeText);\n selectedTag.title = removeText;\n\n content.className = 'bs-selected-item-content';\n\n if (item.icon && this.options.showIcon) {\n icon = document.createElement('span');\n icon.className = 'bs-selected-item-icon ' + this.options.iconBase + ' ' + item.icon;\n icon.setAttribute('aria-hidden', 'true');\n content.appendChild(icon);\n }\n\n label.className = 'bs-selected-item-label';\n label.textContent = getOptionLabelText(item);\n content.appendChild(label);\n\n remove.className = 'bs-selected-item-remove';\n remove.setAttribute('aria-hidden', 'true');\n remove.textContent = '\\u00d7';\n\n selectedTag.appendChild(content);\n selectedTag.appendChild(remove);\n this.selectedItems.appendChild(selectedTag);\n }\n }\n\n this.syncOpenOptionButton();\n\n if (this.newElement && this.newElement.classList.contains(classNames.SHOW)) {\n this.setSize(true);\n }\n }\n\n syncOpenOptionButton () {\n if (!this.createOptionButton) return;\n\n var searchValue = this.searchbox ? this.searchbox.value : '',\n normalizedValue = searchValue.toString().trim(),\n shouldShow = !!normalizedValue &&\n !this.selectpicker.openOption.isCreating &&\n !this.findOptionBySearchValue(normalizedValue);\n\n this.createOptionButton.hidden = !shouldShow;\n this.createOptionButton.disabled = this.selectpicker.openOption.isCreating;\n\n if (shouldShow) {\n this.createOptionButton.textContent = this.options.openOptionsText.replace('{0}', normalizedValue);\n this.createOptionButton.setAttribute('data-search-value', normalizedValue);\n } else {\n this.createOptionButton.textContent = '';\n this.createOptionButton.removeAttribute('data-search-value');\n }\n }\n\n findOptionByValue (value, dataSet) {\n var options = dataSet || this.selectpicker.main.data,\n stringValue = String(value);\n\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option.type === 'option' && String(option.value) === stringValue) {\n return option;\n }\n }\n\n return null;\n }\n\n findOptionBySearchValue (searchValue) {\n var options = this.options.source.data || this.options.source.search\n ? Object.values(this.selectpicker.optionValuesDataMap)\n : this.selectpicker.main.data,\n normalizedSearch = normalizeSearchInput(searchValue, this.options.liveSearchNormalize);\n\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option.type !== 'option') continue;\n\n if (\n normalizeSearchInput(option.text, this.options.liveSearchNormalize) === normalizedSearch ||\n normalizeSearchInput(option.value, this.options.liveSearchNormalize) === normalizedSearch ||\n normalizeSearchInput(option.title, this.options.liveSearchNormalize) === normalizedSearch\n ) {\n return option;\n }\n }\n\n return null;\n }\n\n createOptionElement (optionData) {\n var option = document.createElement('option');\n\n option.value = optionData.value === undefined ? optionData.text : optionData.value;\n option.textContent = optionData.text === undefined ? option.value : optionData.text;\n\n if (optionData.className) option.className = optionData.className;\n if (optionData.title) option.title = optionData.title;\n if (optionData.content) option.setAttribute('data-content', optionData.content);\n if (optionData.tokens) option.setAttribute('data-tokens', optionData.tokens);\n if (optionData.subtext) option.setAttribute('data-subtext', optionData.subtext);\n if (optionData.icon) option.setAttribute('data-icon', optionData.icon);\n if (optionData.disabled) option.disabled = true;\n if (optionData.hidden) option.hidden = true;\n\n return option;\n }\n\n appendCreatedSearchResults (searchValue) {\n if (!this.selectpicker.createdOptions.length) return;\n\n var matches = [];\n\n for (var i = 0; i < this.selectpicker.createdOptions.length; i++) {\n var option = this.selectpicker.createdOptions[i];\n\n if (\n stringSearch(option, normalizeSearchInput(searchValue, this.options.liveSearchNormalize), this._searchStyle(), this.options.liveSearchNormalize) &&\n !this.findOptionByValue(option.value, this.selectpicker.search.data)\n ) {\n matches.push(option);\n }\n }\n\n if (matches.length) this.buildData(matches, 'search');\n }\n\n addCreatedOption (optionData) {\n optionData = Object.assign({}, optionData);\n optionData.value = optionData.value === undefined ? optionData.text : optionData.value;\n optionData.text = optionData.text === undefined ? optionData.value : optionData.text;\n\n var size = this.selectpicker.main.elements ? this.selectpicker.main.elements.length : 0,\n option = this.createOptionElement(optionData);\n optionData.option = option;\n\n this.element.appendChild(option);\n var builtOptions = this.buildData([optionData], 'data'),\n builtOption = builtOptions[0];\n\n this.buildList(size);\n this.selectpicker.createdOptions.push(builtOption);\n\n return builtOption;\n }\n\n removeSelectedTag (value) {\n var option = this.findOptionByValue(value);\n\n if (!option || !option.selected) return;\n\n var prevValue = getSelectValues.call(this);\n\n this.setSelected(option, false);\n changedArguments = [option.index, false, prevValue];\n triggerNative(this.element, 'change');\n\n if (this.options.liveSearch) this.searchbox.focus();\n }\n\n createOpenOption (searchValue) {\n searchValue = searchValue === undefined || searchValue === null ? '' : searchValue.toString().trim();\n\n if (!searchValue || this.selectpicker.openOption.isCreating) return;\n\n var existingOption = this.findOptionBySearchValue(searchValue);\n\n if (existingOption) {\n if (!existingOption.selected) {\n var prevSelectedValue = getSelectValues.call(this);\n\n this.setSelected(existingOption, true);\n changedArguments = [existingOption.index, true, prevSelectedValue];\n triggerNative(this.element, 'change');\n }\n\n if (this.options.liveSearch) this.searchbox.focus();\n return;\n }\n\n var that = this,\n prevValue = getSelectValues.call(this),\n createHandler = this.options.source.create;\n\n this.selectpicker.openOption.isCreating = true;\n this.syncOpenOptionButton();\n\n function finalize (createdOption) {\n that.selectpicker.openOption.isCreating = false;\n\n if (createdOption === undefined || createdOption === null || createdOption === false) {\n that.syncOpenOptionButton();\n return;\n }\n\n if (Array.isArray(createdOption)) createdOption = createdOption[0];\n if (typeof createdOption !== 'object') {\n createdOption = {\n text: createdOption,\n value: createdOption\n };\n }\n\n if (!createdOption.text && !createdOption.value) {\n createdOption.text = searchValue;\n }\n\n if (createdOption.value === undefined) createdOption.value = createdOption.text;\n if (createdOption.text === undefined) createdOption.text = createdOption.value;\n\n var option = that.findOptionByValue(createdOption.value) || that.findOptionBySearchValue(createdOption.text);\n\n if (!option) {\n option = that.addCreatedOption(createdOption);\n }\n\n that.setSelected(option, true);\n\n if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue);\n\n if (that.searchbox) {\n that.searchbox.value = '';\n }\n\n that.selectpicker.search.previousValue = '';\n that.selectpicker.search.data = [];\n that.selectpicker.search.elements = [];\n that.createView(false);\n\n changedArguments = [option.index, true, prevValue];\n triggerNative(that.element, 'change');\n\n if (that.options.liveSearch) that.searchbox.focus();\n }\n\n if (typeof createHandler === 'function') {\n var returnedOption = createHandler.call(this, finalize, searchValue);\n\n if (returnedOption && typeof returnedOption.then === 'function') {\n returnedOption.then(finalize);\n } else if (returnedOption !== undefined) {\n finalize(returnedOption);\n }\n } else {\n finalize({\n text: searchValue,\n value: searchValue\n });\n }\n }\n\n /**\n * @param [newStyle]\n * @param [status]\n */\n setStyle (newStyle, status) {\n var button = this.button,\n newElement = this.newElement,\n style = this.options.style.trim(),\n buttonClass;\n\n if (this.element.getAttribute('class')) {\n var extra = this.element.getAttribute('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, '').trim();\n if (extra) newElement.classList.add.apply(newElement.classList, extra.split(/\\s+/));\n }\n\n if (newStyle) {\n buttonClass = newStyle.trim();\n } else {\n buttonClass = style;\n }\n\n if (status === 'add') {\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n } else if (status === 'remove') {\n if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' '));\n } else {\n if (style) button.classList.remove.apply(button.classList, style.split(' '));\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\n }\n }\n\n liHeight (refresh) {\n if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;\n\n var newElement = elementTemplates.div.cloneNode(false),\n menu = elementTemplates.div.cloneNode(false),\n menuInner = elementTemplates.div.cloneNode(false),\n menuInnerInner = document.createElement('ul'),\n divider = elementTemplates.li.cloneNode(false),\n dropdownHeader = elementTemplates.li.cloneNode(false),\n li,\n a = elementTemplates.a.cloneNode(false),\n text = elementTemplates.span.cloneNode(false),\n header = this.options.header && this.menu.querySelectorAll('.' + classNames.POPOVERHEADER).length > 0 ? this.menu.querySelector('.' + classNames.POPOVERHEADER).cloneNode(true) : null,\n search = this.options.liveSearch && this.menu.querySelector('.bs-searchbox')\n ? this.menu.querySelector('.bs-searchbox').cloneNode(true)\n : null,\n actions = this.options.actionsBox && this.multiple && this.menu.querySelectorAll('.bs-actionsbox').length > 0 ? this.menu.querySelector('.bs-actionsbox').cloneNode(true) : null,\n doneButton = this.options.doneButton && this.multiple && this.menu.querySelectorAll('.bs-donebutton').length > 0 ? this.menu.querySelector('.bs-donebutton').cloneNode(true) : null,\n firstOption = this.element.options[0];\n\n this.sizeInfo.selectWidth = this.newElement.offsetWidth;\n\n text.className = 'text';\n a.className = 'dropdown-item ' + (firstOption ? firstOption.className : '');\n newElement.className = this.menu.parentNode.className + ' ' + classNames.SHOW;\n newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating\n menu.className = classNames.MENU + ' ' + classNames.SHOW;\n menuInner.className = 'inner ' + classNames.SHOW;\n menuInnerInner.className = classNames.MENU + ' inner ' + classNames.SHOW;\n divider.className = classNames.DIVIDER;\n dropdownHeader.className = 'dropdown-header';\n\n text.appendChild(document.createTextNode('\\u200b'));\n\n if (this.selectpicker.current.data.length) {\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\n var data = this.selectpicker.current.data[i];\n if (data.type === 'option' && window.getComputedStyle(data.element.firstChild).display !== 'none') {\n li = data.element;\n break;\n }\n }\n } else {\n li = elementTemplates.li.cloneNode(false);\n a.appendChild(text);\n li.appendChild(a);\n }\n\n dropdownHeader.appendChild(text.cloneNode(true));\n\n if (this.selectpicker.view.widestOption) {\n menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));\n }\n\n menuInnerInner.appendChild(li);\n menuInnerInner.appendChild(divider);\n menuInnerInner.appendChild(dropdownHeader);\n if (header) menu.appendChild(header);\n if (search) menu.appendChild(search);\n if (actions) menu.appendChild(actions);\n menuInner.appendChild(menuInnerInner);\n menu.appendChild(menuInner);\n if (doneButton) menu.appendChild(doneButton);\n newElement.appendChild(menu);\n\n document.body.appendChild(newElement);\n\n var liHeight = li.offsetHeight,\n dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,\n headerHeight = header ? header.offsetHeight : 0,\n searchHeight = search ? search.offsetHeight : 0,\n actionsHeight = actions ? actions.offsetHeight : 0,\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n dividerHeight = outerHeight(divider, true),\n menuStyle = window.getComputedStyle(menu),\n menuWidth = menu.offsetWidth,\n menuPadding = {\n vert: toInteger(menuStyle.paddingTop) +\n toInteger(menuStyle.paddingBottom) +\n toInteger(menuStyle.borderTopWidth) +\n toInteger(menuStyle.borderBottomWidth),\n horiz: toInteger(menuStyle.paddingLeft) +\n toInteger(menuStyle.paddingRight) +\n toInteger(menuStyle.borderLeftWidth) +\n toInteger(menuStyle.borderRightWidth)\n },\n menuExtras = {\n vert: menuPadding.vert +\n toInteger(menuStyle.marginTop) +\n toInteger(menuStyle.marginBottom) + 2,\n horiz: menuPadding.horiz +\n toInteger(menuStyle.marginLeft) +\n toInteger(menuStyle.marginRight) + 2\n },\n scrollBarWidth;\n\n menuInner.style.overflowY = 'scroll';\n\n scrollBarWidth = menu.offsetWidth - menuWidth;\n\n document.body.removeChild(newElement);\n\n this.sizeInfo.liHeight = liHeight;\n this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;\n this.sizeInfo.headerHeight = headerHeight;\n this.sizeInfo.searchHeight = searchHeight;\n this.sizeInfo.actionsHeight = actionsHeight;\n this.sizeInfo.doneButtonHeight = doneButtonHeight;\n this.sizeInfo.dividerHeight = dividerHeight;\n this.sizeInfo.menuPadding = menuPadding;\n this.sizeInfo.menuExtras = menuExtras;\n this.sizeInfo.menuWidth = menuWidth;\n this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;\n this.sizeInfo.scrollBarWidth = scrollBarWidth;\n this.sizeInfo.selectHeight = this.newElement.offsetHeight;\n\n this.setPositionData();\n }\n\n getSelectPosition () {\n var that = this,\n winScrollTop = window.pageYOffset,\n winScrollLeft = window.pageXOffset,\n winHeight = document.documentElement.clientHeight,\n winWidth = document.documentElement.clientWidth,\n pos = offset(that.newElement);\n\n this.sizeInfo.selectOffsetTop = pos.top - winScrollTop;\n this.sizeInfo.selectOffsetBot = winHeight - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight;\n this.sizeInfo.selectOffsetLeft = pos.left - winScrollLeft;\n this.sizeInfo.selectOffsetRight = winWidth - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth;\n }\n\n setMenuSize (isAuto) {\n this.getSelectPosition();\n\n var selectWidth = this.sizeInfo.selectWidth,\n liHeight = this.sizeInfo.liHeight,\n headerHeight = this.sizeInfo.headerHeight,\n searchHeight = this.sizeInfo.searchHeight,\n actionsHeight = this.sizeInfo.actionsHeight,\n doneButtonHeight = this.sizeInfo.doneButtonHeight,\n divHeight = this.sizeInfo.dividerHeight,\n menuPadding = this.sizeInfo.menuPadding,\n menuInnerHeight,\n menuHeight,\n divLength = 0,\n minHeight,\n _minHeight,\n maxHeight,\n menuInnerMinHeight,\n estimate,\n isDropup;\n\n if (this.options.dropupAuto) {\n // Get the estimated height of the menu without scrollbars.\n estimate = liHeight * this.selectpicker.current.data.length + menuPadding.vert;\n\n isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot;\n\n // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)\n if (this.selectpicker.isSearching === true) {\n isDropup = this.selectpicker.dropup;\n }\n\n this.newElement.classList.toggle(classNames.DROPUP, isDropup);\n this.selectpicker.dropup = isDropup;\n }\n\n if (this.options.size === 'auto') {\n _minHeight = this.selectpicker.current.data.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0;\n menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;\n minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0);\n\n if (this.newElement.classList.contains(classNames.DROPUP)) {\n menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;\n }\n\n maxHeight = menuHeight;\n menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;\n } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n for (var i = 0; i < this.options.size; i++) {\n if (this.selectpicker.current.data[i].type === 'divider') divLength++;\n }\n\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\n menuInnerHeight = menuHeight - menuPadding.vert;\n maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\n minHeight = menuInnerMinHeight = '';\n }\n\n setStyles(this.menu, {\n maxHeight: maxHeight + 'px',\n overflow: 'hidden',\n minHeight: minHeight + 'px'\n });\n\n setStyles(this.menuInner, {\n maxHeight: menuInnerHeight + 'px',\n overflow: 'hidden auto',\n minHeight: menuInnerMinHeight + 'px'\n });\n\n // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView\n this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1);\n\n if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) {\n this.sizeInfo.hasScrollBar = true;\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;\n }\n\n if (this.options.dropdownAlignRight === 'auto') {\n this.menu.classList.toggle(classNames.MENUEND, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth));\n }\n\n if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();\n }\n\n setSize (refresh) {\n this.liHeight(refresh);\n\n if (this.options.header) this.menu.style.paddingTop = 0;\n\n if (this.options.size !== false) {\n var that = this;\n\n this.setMenuSize();\n\n if (this.options.liveSearch) {\n this._replace('setMenuSizeInput', this.searchbox, 'input', function () {\n return that.setMenuSize();\n });\n }\n\n if (this.options.size === 'auto') {\n var windowSizeHandler = function () {\n return that.setMenuSize();\n };\n this._replace('setMenuSizeResize', window, 'resize', windowSizeHandler);\n this._replace('setMenuSizeScroll', window, 'scroll', windowSizeHandler);\n } else if (this.options.size && this.options.size !== 'auto' && this.selectpicker.current.elements.length > this.options.size) {\n this._removeNamed('setMenuSizeResize');\n this._removeNamed('setMenuSizeScroll');\n }\n }\n\n this.createView(false, true, refresh);\n }\n\n setWidth () {\n this.menu.style.minWidth = '';\n this.newElement.style.width = '';\n this.newElement.classList.remove('fit-width');\n }\n\n selectPosition () {\n this.bsContainer = createFromHTML('
    ');\n\n var that = this,\n container = resolveContainer(this.options.container),\n pos,\n containerPos,\n actualHeight,\n getPlacement = function (element) {\n var Dropdown = getDropdown(),\n containerPosition = {},\n // fall back to dropdown's default display setting if display is not manually set\n display = that.options.display || (Dropdown.Default ? Dropdown.Default.display : false);\n\n var extraClass = element.getAttribute('class').replace(/form-control|fit-width/gi, '').trim();\n if (extraClass) that.bsContainer.classList.add.apply(that.bsContainer.classList, extraClass.split(/\\s+/));\n that.bsContainer.classList.toggle(classNames.DROPUP, element.classList.contains(classNames.DROPUP));\n pos = offset(element);\n\n if (container !== document.body) {\n containerPos = offset(container);\n var containerStyle = window.getComputedStyle(container);\n containerPos.top += toInteger(containerStyle.borderTopWidth) - container.scrollTop;\n containerPos.left += toInteger(containerStyle.borderLeftWidth) - container.scrollLeft;\n } else {\n containerPos = { top: 0, left: 0 };\n }\n\n actualHeight = element.classList.contains(classNames.DROPUP) ? 0 : element.offsetHeight;\n\n // Bootstrap 5 uses Popper for menu positioning\n if (display === 'static') {\n containerPosition.top = pos.top - containerPos.top + actualHeight;\n containerPosition.left = pos.left - containerPos.left;\n }\n\n containerPosition.width = element.offsetWidth;\n\n setStyles(that.bsContainer, {\n top: containerPosition.top !== undefined ? containerPosition.top + 'px' : '',\n left: containerPosition.left !== undefined ? containerPosition.left + 'px' : '',\n width: containerPosition.width + 'px'\n });\n };\n\n this._on(this.button, 'click', function () {\n if (that.isDisabled()) {\n return;\n }\n\n getPlacement(that.newElement);\n\n container.appendChild(that.bsContainer);\n that.bsContainer.classList.toggle(classNames.SHOW, !that.button.classList.contains(classNames.SHOW));\n that.bsContainer.appendChild(that.menu);\n });\n\n var windowHandler = function () {\n var isActive = that.newElement.classList.contains(classNames.SHOW);\n\n if (isActive) getPlacement(that.newElement);\n };\n this._replace('selectPositionResize', window, 'resize', windowHandler);\n this._replace('selectPositionScroll', window, 'scroll', windowHandler);\n\n this._on(this.element, 'hide' + EVENT_KEY, function () {\n that._menuHeight = outerHeight(that.menu);\n if (that.bsContainer.parentNode) that.bsContainer.parentNode.removeChild(that.bsContainer);\n });\n }\n\n createOption (data, init) {\n var optionData = !data.option ? data : data.option;\n\n if (optionData && optionData.nodeType !== 1) {\n var option = (init ? elementTemplates.selectedOption : elementTemplates.option).cloneNode(true);\n if (optionData.value !== undefined) option.value = optionData.value;\n option.textContent = optionData.text;\n\n option.selected = true;\n\n if (optionData.liIndex !== undefined) {\n option.liIndex = optionData.liIndex;\n } else if (!init) {\n option.liIndex = data.index;\n }\n\n data.option = option;\n\n this.selectpicker.main.optionQueue.appendChild(option);\n }\n }\n\n setOptionStatus (selectedOnly) {\n var that = this;\n\n that.noScroll = false;\n\n if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {\n for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {\n var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],\n option = liData.option;\n\n if (option) {\n if (selectedOnly !== true) {\n that.setDisabled(liData);\n }\n\n that.setSelected(liData);\n }\n }\n\n // append optionQueue (documentFragment with option elements for select options)\n if (this.options.source.data) this.element.appendChild(this.selectpicker.main.optionQueue);\n }\n }\n\n /**\n * @param {Object} liData - the option object that is being changed\n * @param {boolean} selected - true if the option is being selected, false if being deselected\n */\n setSelected (liData, selected) {\n selected = selected === undefined ? liData.selected : selected;\n\n var li = liData.element,\n activeElementIsSet = this.activeElement !== undefined,\n thisIsActive = this.activeElement === li,\n prevActive,\n a,\n keepActive = thisIsActive || (selected && !this.multiple && !activeElementIsSet);\n\n if (selected !== undefined) {\n liData.selected = selected;\n if (liData.option) liData.option.selected = selected;\n }\n\n if (selected && this.options.source.data) {\n this.createOption(liData, false);\n }\n\n if (!li) return;\n\n a = li.firstChild;\n\n if (selected) {\n this.selectedElement = li;\n }\n\n li.classList.toggle('selected', selected);\n\n if (keepActive) {\n this.focusItem(li, liData);\n this.selectpicker.view.currentActive = li;\n this.activeElement = li;\n } else {\n this.defocusItem(li);\n }\n\n if (a) {\n a.classList.toggle('selected', selected);\n\n if (selected) {\n a.setAttribute('aria-selected', true);\n } else {\n if (this.multiple) {\n a.setAttribute('aria-selected', false);\n } else {\n a.removeAttribute('aria-selected');\n }\n }\n }\n\n if (!keepActive && !activeElementIsSet && selected && this.prevActiveElement !== undefined) {\n prevActive = this.prevActiveElement;\n\n this.defocusItem(prevActive);\n }\n }\n\n /**\n * @param {Object} liData - the option that is being disabled\n */\n setDisabled (liData) {\n var disabled = liData.disabled,\n li = liData.element,\n a;\n\n if (!li) return;\n\n a = li.firstChild;\n\n li.classList.toggle(classNames.DISABLED, disabled);\n\n if (a) {\n a.classList.toggle(classNames.DISABLED, disabled);\n\n if (disabled) {\n a.setAttribute('aria-disabled', disabled);\n a.setAttribute('tabindex', -1);\n } else {\n a.removeAttribute('aria-disabled');\n a.setAttribute('tabindex', 0);\n }\n }\n }\n\n isDisabled () {\n return this.element.disabled;\n }\n\n checkDisabled () {\n if (this.isDisabled()) {\n this.newElement.classList.add(classNames.DISABLED);\n this.button.classList.add(classNames.DISABLED);\n this.button.setAttribute('aria-disabled', true);\n } else {\n if (this.button.classList.contains(classNames.DISABLED)) {\n this.newElement.classList.remove(classNames.DISABLED);\n this.button.classList.remove(classNames.DISABLED);\n this.button.setAttribute('aria-disabled', false);\n }\n }\n }\n\n clickListener () {\n var that = this;\n\n spaceSelectFlag = false;\n\n this._on(this.button, 'keyup', function (e) {\n if (/(32)/.test(e.keyCode.toString(10)) && spaceSelectFlag) {\n e.preventDefault();\n spaceSelectFlag = false;\n }\n });\n\n function clearSelection (e) {\n if (that.multiple) {\n that.deselectAll();\n } else {\n var element = that.element,\n prevValue = element.value,\n prevIndex = element.selectedIndex,\n prevOption = element.options[prevIndex],\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false;\n\n if (prevData) {\n that.setSelected(prevData, false);\n }\n\n element.selectedIndex = 0;\n\n changedArguments = [prevIndex, false, prevValue];\n triggerNative(that.element, 'change');\n }\n\n // remove selected styling if menu is open\n if (that.newElement.classList.contains(classNames.SHOW)) {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n }\n\n that.createView(false);\n }\n }\n\n if (this.options.allowClear) {\n this._on(this.button, 'click', function (e) {\n var target = e.target,\n clearButton = that.clearButton;\n\n if (target === clearButton || target.parentElement === clearButton) {\n e.stopImmediatePropagation();\n clearSelection(e);\n }\n });\n }\n\n function setFocus () {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.menuInner.focus();\n }\n }\n\n function checkPopperExists () {\n if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state) {\n setFocus();\n } else {\n requestAnimationFrame(checkPopperExists);\n }\n }\n\n this._on(this.element, 'shown' + EVENT_KEY, function () {\n if (that.menuInner.scrollTop !== that.selectpicker.view.scrollTop) {\n that.menuInner.scrollTop = that.selectpicker.view.scrollTop;\n }\n\n requestAnimationFrame(checkPopperExists);\n });\n\n // ensure posinset and setsize are correct before selecting an option via a click\n this._delegate(this.menuInner, 'mouseover', 'li a', function () {\n var hoverLi = this.parentElement,\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi),\n hoverData = that.selectpicker.current.data[index + position0];\n\n that.focusItem(hoverLi, hoverData, true);\n });\n\n this._delegate(this.menuInner, 'click', 'li a', function (e) {\n that.onOptionClick(this, e);\n });\n\n this._delegate(this.menu, 'click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.btn-close):not(.close)', function (e) {\n if (e.currentTarget === this || e.target === this) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch && !e.target.classList.contains('btn-close') && !e.target.classList.contains('close')) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n }\n });\n\n this._delegate(this.menuInner, 'click', '.divider, .dropdown-header', function (e) {\n e.preventDefault();\n e.stopPropagation();\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n });\n\n this._delegate(this.menu, 'click', '.' + classNames.POPOVERHEADER + ' .btn-close, .' + classNames.POPOVERHEADER + ' .close', function () {\n that.dropdown.hide();\n });\n\n this._delegate(this.newElement, 'click', '.bs-selected-item', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeSelectedTag(this.getAttribute('data-option-value'));\n });\n\n this._delegate(this.menu, 'click', '.bs-create-option', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.createOpenOption(this.getAttribute('data-search-value'));\n });\n\n if (this.searchbox) {\n this._on(this.searchbox, 'click', function (e) {\n e.stopPropagation();\n });\n }\n\n this._delegate(this.menu, 'click', '.actions-btn', function (e) {\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n that.button.focus();\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.classList.contains('bs-select-all')) {\n that.selectAll();\n } else {\n that.deselectAll();\n }\n });\n\n this._on(this.button, 'focus', function (e) {\n var tabindex = that.element.getAttribute('tabindex');\n\n // only change when button is actually focused\n if (tabindex !== undefined && tabindex !== null && e.isTrusted) {\n // apply select element's tabindex to ensure correct order is followed when tabbing to the next element\n this.setAttribute('tabindex', tabindex);\n // set element's tabindex to -1 to allow for reverse tabbing\n that.element.setAttribute('tabindex', -1);\n that.selectpicker.view.tabindex = tabindex;\n }\n });\n\n this._on(this.button, 'blur', function (e) {\n // revert everything to original tabindex\n if (that.selectpicker.view.tabindex !== undefined && e.isTrusted) {\n that.element.setAttribute('tabindex', that.selectpicker.view.tabindex);\n this.setAttribute('tabindex', -1);\n that.selectpicker.view.tabindex = undefined;\n }\n });\n\n this._on(this.element, 'change', function () {\n that.render();\n that._emit('changed', changedArguments ? {\n clickedIndex: changedArguments[0],\n isSelected: changedArguments[1],\n previousValue: changedArguments[2]\n } : null);\n changedArguments = null;\n });\n\n this._on(this.element, 'focus', function () {\n if (!that.options.mobile) that.button.focus();\n });\n }\n\n onOptionClick (clickedAnchor, e, retainActive) {\n var that = this,\n element = that.element,\n li = clickedAnchor.parentElement,\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\n clickedData = that.selectpicker.current.data[Array.prototype.indexOf.call(li.parentElement.children, li) + position0],\n clickedElement = clickedData.element,\n prevValue = getSelectValues.call(that),\n prevIndex = element.selectedIndex,\n prevOption = element.options[prevIndex],\n prevData = prevOption ? that.selectpicker.main.data[prevOption.liIndex] : false,\n triggerChange = true;\n\n // Don't close on multi choice menu\n if (that.multiple && that.options.maxOptions !== 1) {\n e.stopPropagation();\n }\n\n e.preventDefault();\n\n // Don't run if the select is disabled\n if (!that.isDisabled() && !li.classList.contains(classNames.DISABLED)) {\n var option = clickedData.option,\n state = option.selected,\n optgroupData = that.selectpicker.current.data.find(function (datum) {\n return datum.optID === clickedData.optID && datum.type === 'optgroup-label';\n }),\n optgroup = optgroupData ? optgroupData.optgroup : undefined,\n dataGetter = optgroup instanceof Element ? getOptionData.fromOption : getOptionData.fromDataSource,\n optgroupOptions = optgroup && optgroup.children,\n maxOptions = parseInt(that.options.maxOptions),\n maxOptionsGrp = optgroup && parseInt(dataGetter(optgroup, 'maxOptions')) || false;\n\n if (clickedElement === that.activeElement) retainActive = true;\n\n if (!retainActive) {\n that.prevActiveElement = that.activeElement;\n that.activeElement = undefined;\n }\n\n if (!that.multiple || maxOptions === 1) { // Deselect previous option if not multi select\n if (prevData) that.setSelected(prevData, false);\n that.setSelected(clickedData, true);\n } else { // Toggle the clicked option if multi select.\n that.setSelected(clickedData, !state);\n that.focusedParent.focus();\n\n if (maxOptions !== false || maxOptionsGrp !== false) {\n var maxReached = maxOptions < getSelectedOptions.call(that).length,\n selectedGroupOptions = 0;\n\n if (optgroup && optgroup.children) {\n for (var i = 0; i < optgroup.children.length; i++) {\n if (optgroup.children[i].selected) selectedGroupOptions++;\n }\n }\n\n var maxReachedGrp = maxOptionsGrp < selectedGroupOptions;\n\n if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {\n if (maxOptions && maxOptions === 1) {\n element.selectedIndex = -1;\n that.setOptionStatus(true);\n } else if (maxOptionsGrp && maxOptionsGrp === 1) {\n for (var j = 0; j < optgroupOptions.length; j++) {\n var _option = optgroupOptions[j];\n that.setSelected(that.selectpicker.current.data[_option.liIndex], false);\n }\n\n that.setSelected(clickedData, true);\n } else {\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n notify = createFromHTML('
    ');\n\n that.menu.appendChild(notify);\n\n if (maxOptions && maxReached) {\n notify.appendChild(createFromHTML('
    ' + maxTxt + '
    '));\n triggerChange = false;\n that._emit('maxReached');\n }\n\n if (maxOptionsGrp && maxReachedGrp) {\n notify.appendChild(createFromHTML('
    ' + maxTxtGrp + '
    '));\n triggerChange = false;\n that._emit('maxReachedGrp');\n }\n\n setTimeout(function () {\n that.setSelected(clickedData, false);\n }, 10);\n\n notify.classList.add('fadeOut');\n\n setTimeout(function () {\n notify.remove();\n }, 1050);\n }\n }\n }\n }\n\n if (that.options.source.data) that.element.appendChild(that.selectpicker.main.optionQueue);\n\n if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {\n that.button.focus();\n } else if (that.options.liveSearch) {\n that.searchbox.focus();\n }\n\n // Trigger select 'change'\n if (triggerChange) {\n if (that.multiple || prevIndex !== element.selectedIndex) {\n changedArguments = [option.index, option.selected, prevValue];\n triggerNative(that.element, 'change');\n }\n }\n }\n }\n\n liveSearchListener () {\n var that = this;\n\n this._on(this.searchbox, 'click', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'focus', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'touchend', function (e) {\n e.stopPropagation();\n });\n this._on(this.searchbox, 'keydown', function (e) {\n if (e.key === 'Enter' && that.createOptionButton && !that.createOptionButton.hidden && !that.selectpicker.current.data.length) {\n e.preventDefault();\n e.stopPropagation();\n that.createOpenOption(that.searchbox.value);\n }\n });\n\n this._on(this.searchbox, 'input', function () {\n var searchValue = that.searchbox.value;\n\n that.selectpicker.search.elements = [];\n that.selectpicker.search.data = [];\n\n if (searchValue) {\n that.selectpicker.search.previousValue = searchValue;\n\n if (that.options.source.search) {\n that.fetchData(function () {\n that.appendCreatedSearchResults(searchValue);\n that.render();\n that.buildList(undefined, true);\n that.noScroll = true;\n that.menuInner.scrollTop = 0;\n that.createView(true);\n showNoResults.call(that, that.selectpicker.search.data, searchValue);\n }, 'search', 0, searchValue);\n } else {\n var searchMatch = [],\n q = searchValue.toUpperCase(),\n cache = {},\n cacheArr = [],\n searchStyle = that._searchStyle(),\n normalizeSearch = that.options.liveSearchNormalize;\n\n if (normalizeSearch) q = normalizeToBase(q);\n\n for (var i = 0; i < that.selectpicker.main.data.length; i++) {\n var li = that.selectpicker.main.data[i];\n\n if (!cache[i]) {\n cache[i] = stringSearch(li, q, searchStyle, normalizeSearch);\n }\n\n if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) {\n if (li.headerIndex > 0) {\n cache[li.headerIndex - 1] = true;\n cacheArr.push(li.headerIndex - 1);\n }\n\n cache[li.headerIndex] = true;\n cacheArr.push(li.headerIndex);\n\n cache[li.lastIndex + 1] = true;\n }\n\n if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);\n }\n\n for (var j = 0, cacheLen = cacheArr.length; j < cacheLen; j++) {\n var index = cacheArr[j],\n prevIndex = cacheArr[j - 1],\n liData = that.selectpicker.main.data[index],\n liPrev = that.selectpicker.main.data[prevIndex];\n\n if (liData.type !== 'divider' || (liData.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== j)) {\n that.selectpicker.search.data.push(liData);\n searchMatch.push(that.selectpicker.main.elements[index]);\n }\n }\n\n that.activeElement = undefined;\n that.noScroll = true;\n that.menuInner.scrollTop = 0;\n that.selectpicker.search.elements = searchMatch;\n that.createView(true);\n showNoResults.call(that, searchMatch, searchValue);\n }\n } else if (that.selectpicker.search.previousValue) {\n that.menuInner.scrollTop = 0;\n that.createView(false);\n }\n\n that.syncOpenOptionButton();\n });\n }\n\n _searchStyle () {\n return this.options.liveSearchStyle || 'contains';\n }\n\n getValue () {\n var element = this.element;\n\n if (this.multiple) {\n var values = [];\n for (var i = 0; i < element.options.length; i++) {\n if (element.options[i].selected) values.push(element.options[i].value);\n }\n return values;\n }\n\n return element.value;\n }\n\n val (value) {\n var element = this.element;\n\n if (typeof value !== 'undefined') {\n var selectedOptions = getSelectedOptions.call(this),\n prevValue = getSelectValues.call(this, selectedOptions);\n\n changedArguments = [null, null, prevValue];\n\n if (!Array.isArray(value)) value = [ value ];\n\n value.map(String);\n\n for (var i = 0; i < selectedOptions.length; i++) {\n var item = selectedOptions[i];\n\n if (item && value.indexOf(String(item.value)) === -1) {\n this.setSelected(item, false);\n }\n }\n\n // only update selected value if it matches an existing option\n this.selectpicker.main.data.filter(function (item) {\n if (value.indexOf(String(item.value)) !== -1) {\n this.setSelected(item, true);\n return true;\n }\n\n return false;\n }, this);\n\n if (this.options.source.data) element.appendChild(this.selectpicker.main.optionQueue);\n\n this._emit('changed', changedArguments ? {\n clickedIndex: changedArguments[0],\n isSelected: changedArguments[1],\n previousValue: changedArguments[2]\n } : null);\n\n if (this.newElement.classList.contains(classNames.SHOW)) {\n if (this.multiple) {\n this.setOptionStatus(true);\n } else {\n var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\n\n if (typeof liSelectedIndex === 'number') {\n this.setSelected(this.selectpicker.current.data[liSelectedIndex], true);\n }\n }\n }\n\n this.render();\n\n changedArguments = null;\n\n return this.element;\n } else {\n return this.getValue();\n }\n }\n\n changeAll (status) {\n if (!this.multiple) return;\n if (typeof status === 'undefined') status = true;\n\n var element = this.element,\n previousSelected = 0,\n currentSelected = 0,\n prevValue = getSelectValues.call(this);\n\n element.classList.add('bs-select-hidden');\n\n for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) {\n var liData = data[i],\n option = liData.option;\n\n if (option && !liData.disabled && liData.type !== 'divider') {\n if (liData.selected) previousSelected++;\n option.selected = status;\n liData.selected = status;\n if (status === true) currentSelected++;\n }\n }\n\n element.classList.remove('bs-select-hidden');\n\n if (previousSelected === currentSelected) return;\n\n this.setOptionStatus();\n\n changedArguments = [null, null, prevValue];\n\n triggerNative(this.element, 'change');\n }\n\n selectAll () {\n return this.changeAll(true);\n }\n\n deselectAll () {\n return this.changeAll(false);\n }\n\n toggle (e, state) {\n var isActive,\n triggerToggle = state === undefined;\n\n if (e && e.stopPropagation) e.stopPropagation();\n\n if (triggerToggle === false) {\n isActive = this.newElement.classList.contains(classNames.SHOW);\n triggerToggle = (state === true && isActive === false) || (state === false && isActive === true);\n }\n\n if (triggerToggle) this.dropdown.toggle();\n }\n\n open (e) {\n this.toggle(e, true);\n }\n\n close (e) {\n this.toggle(e, false);\n }\n\n _keydown (e, el) {\n var that = this,\n which = e.which || e.keyCode,\n isToggle = el.classList.contains('dropdown-toggle'),\n items = that.findLis(),\n index,\n isActive,\n liActive,\n activeLi,\n offsetVal,\n updateScroll = false,\n downOnTab = which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,\n isArrowKey = REGEXP_ARROW.test(which) || downOnTab,\n scrollTop = that.menuInner.scrollTop,\n isVirtual = that.isVirtual(),\n position0 = isVirtual === true ? that.selectpicker.view.position0 : 0;\n\n // do nothing if a function key is pressed\n if (which >= 112 && which <= 123) return;\n\n isActive = that.menu.classList.contains(classNames.SHOW);\n\n if (\n !isActive &&\n (\n isArrowKey ||\n (which >= 48 && which <= 57) ||\n (which >= 96 && which <= 105) ||\n (which >= 65 && which <= 90)\n )\n ) {\n that.dropdown.show();\n\n if (that.options.liveSearch) {\n that.searchbox.focus();\n return;\n }\n }\n\n if (which === keyCodes.ESCAPE && isActive) {\n e.preventDefault();\n that.dropdown.hide();\n that.button.focus();\n }\n\n if (isArrowKey) { // if up or down\n if (!items.length) return;\n\n liActive = that.activeElement;\n index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1;\n\n if (index !== -1) {\n that.defocusItem(liActive);\n }\n\n if (which === keyCodes.ARROW_UP) { // up\n if (index !== -1) index--;\n if (index + position0 < 0) index += items.length;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0;\n if (index === -1) index = items.length - 1;\n }\n } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down\n index++;\n if (index + position0 >= that.selectpicker.view.canHighlight.length) index = that.selectpicker.view.firstHighlightIndex;\n\n if (!that.selectpicker.view.canHighlight[index + position0]) {\n index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);\n }\n }\n\n e.preventDefault();\n\n var liActiveIndex = position0 + index;\n\n if (which === keyCodes.ARROW_UP) { // up\n // scroll to bottom and highlight last option\n if (position0 === 0 && index === items.length - 1) {\n that.menuInner.scrollTop = that.menuInner.scrollHeight;\n\n liActiveIndex = that.selectpicker.current.elements.length - 1;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n\n // could be undefined if no results exist\n if (activeLi) {\n offsetVal = activeLi.position - activeLi.height;\n\n updateScroll = offsetVal < scrollTop;\n }\n }\n } else if (which === keyCodes.ARROW_DOWN || downOnTab) { // down\n // scroll to top and highlight first option\n if (index === that.selectpicker.view.firstHighlightIndex) {\n that.menuInner.scrollTop = 0;\n\n liActiveIndex = that.selectpicker.view.firstHighlightIndex;\n } else {\n activeLi = that.selectpicker.current.data[liActiveIndex];\n\n // could be undefined if no results exist\n if (activeLi) {\n offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight;\n\n updateScroll = offsetVal > scrollTop;\n }\n }\n }\n\n liActive = that.selectpicker.current.elements[liActiveIndex];\n\n that.activeElement = (that.selectpicker.current.data[liActiveIndex] || {}).element;\n\n that.focusItem(liActive);\n\n that.selectpicker.view.currentActive = liActive;\n\n if (updateScroll) that.menuInner.scrollTop = offsetVal;\n\n if (that.options.liveSearch) {\n that.searchbox.focus();\n } else {\n el.focus();\n }\n } else if (\n (!el.matches('input') && !REGEXP_TAB_OR_ESCAPE.test(which)) ||\n (which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory)\n ) {\n var matches = [],\n keyHistory;\n\n e.preventDefault();\n\n that.selectpicker.keydown.keyHistory += keyCodeMap[which];\n\n if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);\n that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();\n\n keyHistory = that.selectpicker.keydown.keyHistory;\n\n // if all letters are the same, set keyHistory to just the first character when searching\n if (/^(.)\\1+$/.test(keyHistory)) {\n keyHistory = keyHistory.charAt(0);\n }\n\n // find matches\n for (var i = 0; i < that.selectpicker.current.data.length; i++) {\n var li = that.selectpicker.current.data[i],\n hasMatch;\n\n hasMatch = stringSearch(li, keyHistory, 'startsWith', true);\n\n if (hasMatch && that.selectpicker.view.canHighlight[i]) {\n matches.push(li.element);\n }\n }\n\n if (matches.length) {\n var matchIndex = 0;\n\n Array.prototype.forEach.call(items, function (item) {\n item.classList.remove('active');\n if (item.firstChild) item.firstChild.classList.remove('active');\n });\n\n // either only one key has been pressed or they are all the same key\n if (keyHistory.length === 1) {\n matchIndex = matches.indexOf(that.activeElement);\n\n if (matchIndex === -1 || matchIndex === matches.length - 1) {\n matchIndex = 0;\n } else {\n matchIndex++;\n }\n }\n\n activeLi = that.selectpicker.main.data[that.selectpicker.main.elements.indexOf(matches[matchIndex])];\n\n if (activeLi) {\n if (scrollTop - activeLi.position > 0) {\n offsetVal = activeLi.position - activeLi.height;\n updateScroll = true;\n } else {\n offsetVal = activeLi.position - that.sizeInfo.menuInnerHeight;\n // if the option is already visible at the current scroll position, just keep it the same\n updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;\n }\n }\n\n liActive = matches[matchIndex];\n\n that.activeElement = liActive;\n\n that.focusItem(liActive);\n\n if (liActive) liActive.firstChild.focus();\n\n if (updateScroll) that.menuInner.scrollTop = offsetVal;\n\n el.focus();\n }\n }\n\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n if (\n isActive &&\n (\n (which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) ||\n which === keyCodes.ENTER ||\n (which === keyCodes.TAB && that.options.selectOnTab)\n )\n ) {\n if (which !== keyCodes.SPACE) e.preventDefault();\n\n if (!that.options.liveSearch || which !== keyCodes.SPACE) {\n var activeAnchor = that.menuInner.querySelector('.active a');\n if (activeAnchor) that.onOptionClick(activeAnchor, e, true); // retain active class\n el.focus();\n\n if (!that.options.liveSearch) {\n // Prevent screen from scrolling if the user hits the spacebar\n e.preventDefault();\n // Fixes spacebar selection of dropdown items in FF & IE\n spaceSelectFlag = true;\n }\n }\n }\n }\n\n mobile () {\n // ensure mobile is set to true if mobile function is called after init\n this.options.mobile = true;\n this.element.classList.add('mobile-device');\n }\n\n resetMenuData () {\n this.selectpicker.main.data = [];\n this.selectpicker.main.elements = [];\n this.selectpicker.main.hasMore = false;\n this.selectpicker.search.data = [];\n this.selectpicker.search.elements = [];\n this.selectpicker.search.hasMore = false;\n this.selectpicker.current.data = this.selectpicker.main.data;\n this.selectpicker.current.elements = this.selectpicker.main.elements;\n this.selectpicker.current.hasMore = false;\n this.selectpicker.isSearching = false;\n }\n\n refresh () {\n var that = this;\n // update options if data attributes have been changed\n var config = stripRemovedOptions(Object.assign({}, this.options, getAttributesObject(this.element), getDataset(this.element)));\n this.options = config;\n\n if (this.options.source.data) {\n this.render();\n this.buildList();\n } else {\n this.resetMenuData();\n this.fetchData(function () {\n that.render();\n that.buildList();\n });\n }\n\n this.checkDisabled();\n this.setStyle();\n this.setWidth();\n\n this.setSize(true);\n\n this._emit('refreshed');\n }\n\n hide () {\n this.newElement.style.display = 'none';\n }\n\n show () {\n this.newElement.style.display = '';\n }\n\n remove () {\n if (this.newElement.parentNode) this.newElement.parentNode.removeChild(this.newElement);\n instanceMap.delete(this.element);\n }\n\n destroy () {\n // move the select back out of newElement, then remove newElement\n if (this.newElement.parentNode) {\n this.newElement.parentNode.insertBefore(this.element, this.newElement);\n this.newElement.parentNode.removeChild(this.newElement);\n }\n\n if (this.bsContainer) {\n if (this.bsContainer.parentNode) this.bsContainer.parentNode.removeChild(this.bsContainer);\n } else if (this.menu && this.menu.parentNode) {\n this.menu.parentNode.removeChild(this.menu);\n }\n\n if (this.selectpicker.view.titleOption && this.selectpicker.view.titleOption.parentNode) {\n this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);\n }\n\n // remove all tracked event listeners\n for (var i = 0; i < this._listeners.length; i++) {\n var l = this._listeners[i];\n l.el.removeEventListener(l.type, l.handler, l.options);\n }\n this._listeners = [];\n\n for (var key in this._named) {\n if (Object.prototype.hasOwnProperty.call(this._named, key)) {\n this._removeNamed(key);\n }\n }\n\n if (this.dropdown && typeof this.dropdown.dispose === 'function') {\n this.dropdown.dispose();\n }\n\n this.element.classList.remove('bs-select-hidden', 'selectpicker', 'mobile-device');\n\n instanceMap.delete(this.element);\n }\n}\n\n// stores element -> Selectpicker instance\nvar instanceMap = new WeakMap();\n\nSelectpicker.NAME = 'selectpicker';\nSelectpicker.VERSION = '1.1.0';\n\n// user-provided global defaults (set via Selectpicker.setDefaults, used by i18n files)\nSelectpicker.defaults = null;\n\n// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\nSelectpicker.DEFAULTS = {\n noneSelectedText: 'Nothing selected',\n noneResultsText: 'No results matched {0}',\n countSelectedText: function (numSelected) {\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\n ];\n },\n selectAllText: 'Select All',\n deselectAllText: 'Deselect All',\n source: {\n pageSize: 40,\n create: null\n },\n chunkSize: 40,\n doneButton: false,\n doneButtonText: 'Close',\n multipleSeparator: ', ',\n style: classNames.BUTTONCLASS,\n size: 'auto',\n placeholder: null,\n allowClear: false,\n selectedTextFormat: 'values',\n hideDisabled: false,\n showSubtext: false,\n showIcon: true,\n showContent: true,\n dropupAuto: true,\n header: false,\n liveSearch: false,\n liveSearchPlaceholder: null,\n liveSearchNormalize: false,\n liveSearchStyle: 'contains',\n openOptions: false,\n openOptionsText: 'Create \"{0}\"',\n selectionIndicator: 'checkmark',\n actionsBox: false,\n iconBase: classNames.ICONBASE,\n tickIcon: classNames.TICKICON,\n showTick: false,\n showSelectedTags: false,\n selectedItemsStyle: 'tags',\n selectedTagRemoveLabel: 'Remove',\n template: {\n caret: ''\n },\n maxOptions: false,\n selectOnTab: true,\n dropdownAlignRight: false,\n virtualScroll: 600,\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n};\n\nSelectpicker._buildConfig = function (element, options) {\n options = stripRemovedOptions(options || {});\n\n var dataAttributes = stripRemovedOptions(getDataset(element));\n\n for (var dataAttr in dataAttributes) {\n if (Object.prototype.hasOwnProperty.call(dataAttributes, dataAttr) && DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n }\n\n var userDefaults = stripRemovedOptions(Selectpicker.defaults || {});\n\n var config = Object.assign({}, Selectpicker.DEFAULTS, userDefaults, getAttributesObject(element), dataAttributes, options);\n config.template = Object.assign({}, Selectpicker.DEFAULTS.template, userDefaults.template || {}, dataAttributes.template, options.template);\n config.source = Object.assign({}, Selectpicker.DEFAULTS.source, userDefaults.source || {}, options.source);\n\n return config;\n};\n\nSelectpicker.setDefaults = function (newDefaults) {\n Selectpicker.defaults = stripRemovedOptions(Object.assign({}, Selectpicker.defaults, newDefaults));\n};\n\nSelectpicker.getInstance = function (element) {\n if (typeof element === 'string') element = document.querySelector(element);\n return instanceMap.get(element) || null;\n};\n\nSelectpicker.getOrCreateInstance = function (element, options) {\n if (typeof element === 'string') element = document.querySelector(element);\n if (!element || element.tagName !== 'SELECT') return null;\n\n var instance = instanceMap.get(element);\n\n if (instance) {\n options = stripRemovedOptions(options);\n\n if (options && typeof options === 'object') {\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n instance.options[i] = options[i];\n }\n }\n }\n\n return instance;\n }\n\n return new Selectpicker(element, typeof options === 'object' ? options : {});\n};\n\n// \nvar KEYDOWN_SELECTOR = '.bootstrap-select [' + Selector.DATA_TOGGLE + '], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input';\n\n// Handle keyboard navigation ourselves. This listener runs in the capture\n// phase on `window` so it executes before Bootstrap's `document`-level\n// (capture-phase, delegated) dropdown keydown handler and prevents it from\n// processing bootstrap-select's custom menu (which would otherwise error on\n// relocated/container menus and conflict with our own navigation). This\n// replaces the upstream approach of unbinding Bootstrap's global handler.\nwindow.addEventListener('keydown', function (e) {\n var target = e.target;\n if (!target || !target.closest) return;\n\n // Any keydown originating inside a bootstrap-select widget (or its relocated\n // menu container) must not reach Bootstrap's dropdown keydown handler.\n var widget = target.closest('.bootstrap-select, .bs-container');\n if (!widget) return;\n\n e.stopImmediatePropagation();\n\n var trigger = target.closest(KEYDOWN_SELECTOR);\n if (!trigger) return;\n\n var instance;\n for (var node = trigger; node; node = node.parentElement) {\n if (node.bootstrapSelectInstance) {\n instance = node.bootstrapSelectInstance;\n break;\n }\n }\n\n if (instance) instance._keydown(e, trigger);\n}, true);\n\ndocument.addEventListener('focusin', function (e) {\n var target = e.target;\n if (target && target.closest && target.closest(KEYDOWN_SELECTOR)) {\n e.stopPropagation();\n }\n});\n\nfunction initAll () {\n var selects = document.querySelectorAll('.selectpicker');\n Array.prototype.forEach.call(selects, function (select) {\n Selectpicker.getOrCreateInstance(select);\n });\n}\n\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', initAll);\n} else {\n initAll();\n}\n// \n\nif (typeof window !== 'undefined') {\n window.Selectpicker = Selectpicker;\n}\n\nreturn Selectpicker;\n"]} \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.min.js b/docs/dist/js/bootstrap-select.min.js new file mode 100644 index 0000000..1e92c61 --- /dev/null +++ b/docs/dist/js/bootstrap-select.min.js @@ -0,0 +1,10 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e(t)}else e("undefined"!=typeof window?window.bootstrap:void 0)})(function(i){function c(){var e=i||("undefined"!=typeof window?window.bootstrap:void 0);return e&&e.Dropdown||("undefined"!=typeof window?window.Dropdown:void 0)}function x(e){var t=document.createElement("div");return t.innerHTML=e.trim(),t.firstChild}function v(e){return parseInt(e,10)||0}function h(e){e=e.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}}function g(e,t){var i=e.offsetHeight;return t&&(i+=v((t=window.getComputedStyle(e)).marginTop)+v(t.marginBottom)),i}function b(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e.style[i]=t[i])}function y(e,t){e.dispatchEvent(new Event(t,{bubbles:!0}))}function o(e){for(var t={},i=e.attributes,s=0;s{if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if(e===+e+"")return+e;if(/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/.test(e))try{return JSON.parse(e)}catch(e){}return e})(i[s].value))}return t}var u=["sanitize","whiteList","sanitizeFn"],P=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],s={"*":["class","dir","id","lang","role","tabindex","style",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},R=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,q=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i,m=["placeholder"];function C(e,t,i){if(i&&"function"==typeof i)return i(e);for(var s=Object.keys(t),n=0,o=e.length;n{var i=e.nodeName.toLowerCase();if(-1!==t.indexOf(i))return-1===P.indexOf(i)||Boolean(e.nodeValue.match(R)||e.nodeValue.match(q));for(var s=t.filter(function(e){return e instanceof RegExp}),n=0,o=s.length;n]+>/g,"")),a=(a=s?f(a):a).toUpperCase(),o="function"==typeof i?i(a,t):"contains"===i?0<=a.indexOf(t):a.startsWith(t)))break}return o}function l(e,t){return e=(e=null==e?"":e).toString().trim(),(e=t?e&&f(e):e).toUpperCase()}function F(e){return e&&(e.title||e.text||e.value)||""}var U={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},G=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Q=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function K(e){return U[e]}function f(e){return(e=e.toString())&&e.replace(G,K).replace(Q,"")}t={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},e="(?:"+Object.keys(t).join("|")+")",Y=RegExp(e),Z=RegExp(e,"g");var t,Y,Z,k=function(e){return Y.test(e=null==e?"":""+e)?e.replace(Z,$):e};function $(e){return t[e]}var J={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},X=27,ee=13,I=32,S=9,E=38,O=40,te=0,d=".bs.select",z="disabled",ie="dropdown-divider",L="show",A="dropup",N="dropdown-menu",se="dropdown-menu-end",p="btn-light",T="popover-header",e="",ne="bs-ok-default",oe="."+N,le='data-bs-toggle="dropdown"',D={div:document.createElement("div"),span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode("\xa0"),fragment:document.createDocumentFragment(),option:document.createElement("option")},re=(D.selectedOption=D.option.cloneNode(!1),D.selectedOption.setAttribute("selected",!0),D.noResults=D.li.cloneNode(!1),D.noResults.className="no-results",D.a.setAttribute("role","option"),D.a.className="dropdown-item",D.subtext.className="text-muted",D.text=D.span.cloneNode(!1),D.text.className="text",D.checkMark=D.span.cloneNode(!1),new RegExp(E+"|"+O)),ae=new RegExp("^"+S+"$|"+X),H={li:function(e,t,i){var s=D.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?s.appendChild(e):s.innerHTML=e),void 0!==t&&""!==t&&(s.className=t),null!=i&&s.classList.add("optgroup-"+i),s},a:function(e,t,i){var s=D.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&s.classList.add.apply(s.classList,t.split(/\s+/)),i&&s.setAttribute("style",i),s},text:function(e,t){var i,s,n=D.text.cloneNode(!1);if(e.content?n.innerHTML=e.content:(n.textContent=e.text,e.icon&&(i=D.whitespace.cloneNode(!1),(s=(!0===t?D.i:D.span).cloneNode(!1)).className=this.options.iconBase+" "+e.icon,D.fragment.appendChild(s),D.fragment.appendChild(i)),e.subtext&&((s=D.subtext.cloneNode(!1)).textContent=e.subtext,n.appendChild(s))),!0===t)for(;0setTimeout(()=>{this.selectpicker.keydown.keyHistory=""},800)}}},this.sizeInfo={},this.init(),n.set(e,this)}_on(e,t,i,s){return e.addEventListener(t,i,s),this._listeners.push({el:e,type:t,handler:i,options:s}),i}_delegate(i,e,s,n,t){return this._on(i,e,function(e){var t=e.target.closest(s);t&&i.contains(t)&&n.call(t,e)},t)}_emit(e,t){e=new CustomEvent(e+d,{bubbles:!0,cancelable:!0,detail:t||null});return this.element.dispatchEvent(e),e}_replace(e,t,i,s,n){this._removeNamed(e),t.addEventListener(i,s,n),this._named[e]={el:t,type:i,handler:s,options:n}}_removeNamed(e){var t=this._named[e];t&&(t.el.removeEventListener(t.type,t.handler,t.options),delete this._named[e])}init(){var s=this,e=this.element.getAttribute("id"),t=this.element,i=t.form,e=(te++,this.selectId="bs-select-"+te,t.classList.add("bs-select-hidden"),this.multiple=this.element.multiple,this.autofocus=this.element.autofocus,t.classList.contains("show-tick")&&(this.options.showTick=!0),this.newElement=this.createDropdown(),t.parentNode.insertBefore(this.newElement,t.nextSibling),this.newElement.insertBefore(t,this.newElement.firstChild),i&&null===t.form&&(i.id||(i.id="form-"+this.selectId),t.setAttribute("form",i.id)),this.button=this.newElement.querySelector(":scope > button"),this.options.allowClear&&(this.clearButton=this.button.querySelector(".bs-select-clear-selected")),this.menu=this.newElement.querySelector(":scope > "+oe),this.menuInner=this.menu.querySelector(".inner"),this.searchbox=this.menu.querySelector("input"),this.selectedItems=this.newElement.querySelector(":scope > .bs-selected-items-external")||this.menu.querySelector(".bs-selected-items"),this.createOptionButton=this.menu.querySelector(".bs-create-option"),t.classList.remove("bs-select-hidden"),this.fetchData(function(){s.render(!0),s.buildList(),requestAnimationFrame(function(){s._emit("loaded")})}),!0===this.options.dropdownAlignRight&&this.menu.classList.add(se),null!=e&&this.button.setAttribute("data-id",e),this.checkDisabled(),this.clickListener(),c());this.dropdown=new e(this.button),((this.newElement.bootstrapSelectInstance=this).menu.bootstrapSelectInstance=this).options.liveSearch?(this.liveSearchListener(),this.focusedParent=this.searchbox):this.focusedParent=this.menuInner,this.setStyle(),this.setWidth(),this._on(this.element,"hide"+d,function(){var e,t;s.isVirtual()&&(t=(e=s.menuInner).firstChild.cloneNode(!1),e.replaceChild(t,e.firstChild),e.scrollTop=0)}),this._on(this.newElement,"hide.bs.dropdown",function(e){s._emit("hide",{bsEvent:e})}),this._on(this.newElement,"hidden.bs.dropdown",function(e){s._emit("hidden",{bsEvent:e})}),this._on(this.newElement,"show.bs.dropdown",function(e){s.onShow(e),s._emit("show",{bsEvent:e})}),this._on(this.newElement,"shown.bs.dropdown",function(e){s._emit("shown",{bsEvent:e})}),t.hasAttribute("required")&&this._on(this.element,"invalid",function(){s.button.classList.add("bs-invalid");function e(){y(s.element,"change"),s.element.removeEventListener("shown"+d,e)}function t(){s.element.validity.valid&&s.button.classList.remove("bs-invalid"),s.element.removeEventListener("rendered"+d,t)}function i(){s.element.focus(),s.element.blur(),s.button.removeEventListener("blur"+d,i)}s._on(s.element,"shown"+d,e),s._on(s.element,"rendered"+d,t);s._on(s.button,"blur"+d,i)}),i&&this._on(i,"reset",function(){requestAnimationFrame(function(){s.render()})})}createDropdown(){var e=this.multiple||this.options.showTick?" show-tick":"",t=this.options.showSelectedTags?" show-selected-tags":"",i="list"===this.options.selectedItemsStyle?" selected-items-style-list":"",s="checkbox"===this.options.selectionIndicator?" selection-indicator-checkbox":"",n=this.multiple?' aria-multiselectable="true"':"",o=this.autofocus?" autofocus":"",l=this.options.liveSearchPlaceholder;null===l&&(this.options.showSelectedTags||this.options.openOptions)&&(l=this.options.placeholder||"Search");var r="",a="",c="",h="",d="";return this.options.header&&(r='
    '+this.options.header+"
    "),this.options.liveSearch&&(a='"),this.multiple&&this.options.actionsBox&&(c='
    "),this.multiple&&this.options.doneButton&&(h='
    "),this.options.allowClear&&(d='×'),x('")}onShow(){this.options.liveSearch&&this.searchbox.value&&(this.searchbox.value="",this.selectpicker.search.previousValue=void 0),this.newElement.classList.contains(L)||this.setSize()}setPositionData(){this.selectpicker.view.canHighlight=[],this.selectpicker.view.size=0,this.selectpicker.view.firstHighlightIndex=!1;for(var e=0;e=this.options.virtualScroll||!0===this.options.virtualScroll}createView(y,e,t){var I=this,i=0;function S(e,t){var i,s=I.selectpicker.current.data.length,n=[],o=!0,l=I.isVirtual();I.selectpicker.view.scrollTop=e;for(var r,a=I.options.chunkSize,c=Math.ceil(s/a)||1,h=0;hs-1?0:I.selectpicker.current.data[s-1].position-I.selectpicker.current.data[I.selectpicker.view.position1-1].position,p.firstChild.style.marginTop=g+"px",p.firstChild.style.marginBottom=o+"px"):(p.firstChild.style.marginTop=0,p.firstChild.style.marginBottom=0),p.firstChild.appendChild(u),!0===l&&I.sizeInfo.hasScrollBar&&(m=p.firstChild.offsetWidth,t&&mI.sizeInfo.selectWidth?p.firstChild.style.minWidth=I.sizeInfo.menuInnerInnerWidth+"px":m>I.sizeInfo.menuInnerInnerWidth&&(I.menu.style.minWidth=0,(g=p.firstChild.offsetWidth)>I.sizeInfo.menuInnerInnerWidth&&(I.sizeInfo.menuInnerInnerWidth=g,p.firstChild.style.minWidth=I.sizeInfo.menuInnerInnerWidth+"px"),I.menu.style.minWidth=""))}(!y&&I.options.source.data||y&&I.options.source.search)&&I.selectpicker.current.hasMore&&i===c-1&&0 *:not(:disabled)"))?o.index:0,l=(l=window.performance&&window.performance.getEntriesByType("navigation"))&&l.length?"back_forward"!==l[0].type:2!==window.performance.navigation.type,i&&(this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",t=!n||s===o&&!1===n.defaultSelected),!i&&0===this.selectpicker.view.titleOption.index||e.insertBefore(this.selectpicker.view.titleOption,e.firstChild),t&&l?e.selectedIndex=0:"complete"!==document.readyState&&window.addEventListener("pageshow",function(){r.selectpicker.view.displayedValue!==e.value&&r.render()})),a}fetchData(n,o,e,t){e=e||1,o=o||"data";var l,r=this,i=this.options.source[o];i?(this.options.virtualScroll=!0,"function"==typeof i?i.call(this,function(e,t,i){var s=r.selectpicker["search"===o?"search":"main"];s.hasMore=t,s.totalItems=i,l=r.buildData(e,o),n.call(r,l),r._emit("fetched")},e,t):Array.isArray(i)&&(l=r.buildData(i,o),n.call(r,l))):(l=this.buildData(!1,o),n.call(r,l))}buildData(d,e){var o=this,p=!1===d?_.fromOption:_.fromDataSource,u=':not([hidden]):not([data-hidden="true"]):not([style*="display: none"])',m=[],l=this.selectpicker.main.data?this.selectpicker.main.data.length:0,f=0,v=this.setPlaceholder()&&!d?1:0,t=("search"===e&&(l=this.selectpicker.search.data.length),this.options.hideDisabled&&(u+=":not(:disabled)"),d?d.filter(he,this):this.element.querySelectorAll("select > *"+u));function g(e){var t=m[m.length-1];t&&"divider"===t.type&&(t.optID||e.optID)||((e=e||{}).type="divider",m.push(e))}function b(e,t){var i,s,n;(t=t||{}).divider=p(e,"divider"),!0===t.divider?g({optID:t.optID}):(i=m.length+l,s=(s=p(e,"style"))?k(s):"",n=(e.className||"")+(t.optgroupClass||""),t.optID&&(n="opt "+n),t.optionClass=n.trim(),t.inlineStyle=s,t.text=p(e,"text"),t.title=p(e,"title"),t.content=p(e,"content"),t.tokens=p(e,"tokens"),t.subtext=p(e,"subtext"),t.icon=p(e,"icon"),t.display=t.content||t.text,t.value=void 0===e.value?e.text:e.value,t.type="option",t.index=i,t.option=e.option||e,t.option.liIndex=i,t.selected=!!e.selected,t.disabled=t.disabled||!!e.disabled,!1!==d&&(o.selectpicker.optionValuesDataMap[t.value]?t=Object.assign(o.selectpicker.optionValuesDataMap[t.value],t):o.selectpicker.optionValuesDataMap[t.value]=t),m.push(t))}function i(e,t){var i=t[e],s=!(e-1 li")}render(e){var i=this,t=this.element,s=this.setPlaceholder()&&0===t.selectedIndex,n=B.call(this),o=n.length,l=M.call(this,n),r=this.button,a=r.querySelector(".filter-option-inner-inner"),c=document.createTextNode(this.options.multipleSeparator),h=D.fragment.cloneNode(!1),d=this.multiple&&this.options.showSelectedTags&&0")).length&&o>t[1]||1===t.length&&2<=o:e)){if(!s){for(var u=0;u option"+l+", optgroup"+l+" option"+l).length),t="function"==typeof this.options.countSelectedText?this.options.countSelectedText(o,d):this.options.countSelectedText,h=H.text.call(this,{text:t.replace("{0}",o.toString()).replace("{1}",d.toString())},!0);h.childNodes.length||(h=H.text.call(this,{text:this.options.placeholder||this.options.noneSelectedText},!0)),r.title=h.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&p&&C([h],i.options.whiteList,i.options.sanitizeFn),a.innerHTML="",a.appendChild(h),this.syncTagEditor(),this._emit("rendered")}usesTagEditor(){return this.options.liveSearch&&(this.options.showSelectedTags||this.options.openOptions)}syncTagEditor(){if(this.usesTagEditor()){if(this.selectedItems){var e=B.call(this),t="list"===this.options.selectedItemsStyle;this.selectedItems.innerHTML="",this.selectedItems.hidden=!e.length,this.selectedItems.classList.toggle("list-group",t);for(var i=0;ithis.sizeInfo.menuExtras.vert&&l+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot,!0===this.selectpicker.isSearching&&(l=this.selectpicker.dropup),this.newElement.classList.toggle(A,l),this.selectpicker.dropup=l),"auto"===this.options.size)l=3this.options.size){for(var v=0;vthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth),"auto"===this.options.dropdownAlignRight&&this.menu.classList.toggle(se,this.sizeInfo.selectOffsetLeft>this.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.options.size&&(this._removeNamed("setMenuSizeResize"),this._removeNamed("setMenuSizeScroll"))),this.createView(!1,!0,e)}setWidth(){this.menu.style.minWidth="",this.newElement.style.width="",this.newElement.classList.remove("fit-width")}selectPosition(){this.bsContainer=x('
    ');function e(){r.newElement.classList.contains(L)&&i(r.newElement)}var n,o,l,t,r=this,a=(t=this.options.container)?"string"==typeof t?document.querySelector(t):t:null,i=function(e){var t=c(),i={},t=r.options.display||!!t.Default&&t.Default.display,s=e.getAttribute("class").replace(/form-control|fit-width/gi,"").trim();s&&r.bsContainer.classList.add.apply(r.bsContainer.classList,s.split(/\s+/)),r.bsContainer.classList.toggle(A,e.classList.contains(A)),n=h(e),a!==document.body?(o=h(a),s=window.getComputedStyle(a),o.top+=v(s.borderTopWidth)-a.scrollTop,o.left+=v(s.borderLeftWidth)-a.scrollLeft):o={top:0,left:0},l=e.classList.contains(A)?0:e.offsetHeight,"static"===t&&(i.top=n.top-o.top+l,i.left=n.left-o.left),i.width=e.offsetWidth,b(r.bsContainer,{top:void 0!==i.top?i.top+"px":"",left:void 0!==i.left?i.left+"px":"",width:i.width+"px"})};this._on(this.button,"click",function(){r.isDisabled()||(i(r.newElement),a.appendChild(r.bsContainer),r.bsContainer.classList.toggle(L,!r.button.classList.contains(L)),r.bsContainer.appendChild(r.menu))});this._replace("selectPositionResize",window,"resize",e),this._replace("selectPositionScroll",window,"scroll",e),this._on(this.element,"hide"+d,function(){r._menuHeight=g(r.menu),r.bsContainer.parentNode&&r.bsContainer.parentNode.removeChild(r.bsContainer)})}createOption(e,t){var i,s=e.option||e;s&&1!==s.nodeType&&(i=(t?D.selectedOption:D.option).cloneNode(!0),void 0!==s.value&&(i.value=s.value),i.textContent=s.text,i.selected=!0,void 0!==s.liIndex?i.liIndex=s.liIndex:t||(i.liIndex=e.index),e.option=i,this.selectpicker.main.optionQueue.appendChild(i))}setOptionStatus(e){var t=this;if(t.noScroll=!1,t.selectpicker.view.visibleElements&&t.selectpicker.view.visibleElements.length){for(var i=0;i
    ');s.menu.appendChild(k),m&&o&&(k.appendChild(x("
    "+w+"
    ")),h=!1,s._emit("maxReached")),d&&i&&(k.appendChild(x("
    "+e+"
    ")),h=!1,s._emit("maxReachedGrp")),setTimeout(function(){s.setSelected(l,!1)},10),k.classList.add("fadeOut"),setTimeout(function(){k.remove()},1050)}}}else c&&s.setSelected(c,!1),s.setSelected(l,!0);s.options.source.data&&s.element.appendChild(s.selectpicker.main.optionQueue),s.multiple&&(s.multiple,1!==s.options.maxOptions)?s.options.liveSearch&&s.searchbox.focus():s.button.focus(),!h||!s.multiple&&a===n.selectedIndex||(W=[t.index,t.selected,r],y(s.element,"change"))}}liveSearchListener(){var m=this;this._on(this.searchbox,"click",function(e){e.stopPropagation()}),this._on(this.searchbox,"focus",function(e){e.stopPropagation()}),this._on(this.searchbox,"touchend",function(e){e.stopPropagation()}),this._on(this.searchbox,"keydown",function(e){"Enter"!==e.key||!m.createOptionButton||m.createOptionButton.hidden||m.selectpicker.current.data.length||(e.preventDefault(),e.stopPropagation(),m.createOpenOption(m.searchbox.value))}),this._on(this.searchbox,"input",function(){var e=m.searchbox.value;if(m.selectpicker.search.elements=[],m.selectpicker.search.data=[],e)if(m.selectpicker.search.previousValue=e,m.options.source.search)m.fetchData(function(){m.appendCreatedSearchResults(e),m.render(),m.buildList(void 0,!0),m.noScroll=!0,m.menuInner.scrollTop=0,m.createView(!0),ce.call(m,m.selectpicker.search.data,e)},"search",0,e);else{var t=[],i=e.toUpperCase(),s={},n=[],o=m._searchStyle(),l=m.options.liveSearchNormalize;l&&(i=f(i));for(var r=0;r=l.selectpicker.view.canHighlight.length&&(d=l.selectpicker.view.firstHighlightIndex),l.selectpicker.view.canHighlight[d+u])||(d=d+1+l.selectpicker.view.canHighlight.slice(d+u+1).indexOf(!0)),e.preventDefault();var m=u+d;r===E?0===u&&d===c.length-1?(l.menuInner.scrollTop=l.menuInner.scrollHeight,m=l.selectpicker.current.elements.length-1):(n=l.selectpicker.current.data[m])&&(h=(o=n.position-n.height)p+l.sizeInfo.menuInnerHeight)),l.activeElement=s=v[u],l.focusItem(s),s&&s.firstChild.focus(),h&&(l.menuInner.scrollTop=o),t.focus())}i&&(r===I&&!l.selectpicker.keydown.keyHistory||r===ee||r===S&&l.options.selectOnTab)&&(r!==I&&e.preventDefault(),l.options.liveSearch&&r===I||((a=l.menuInner.querySelector(".active a"))&&l.onOptionClick(a,e,!0),t.focus(),l.options.liveSearch)||(e.preventDefault(),V=!0))}}mobile(){this.options.mobile=!0,this.element.classList.add("mobile-device")}resetMenuData(){this.selectpicker.main.data=[],this.selectpicker.main.elements=[],this.selectpicker.main.hasMore=!1,this.selectpicker.search.data=[],this.selectpicker.search.elements=[],this.selectpicker.search.hasMore=!1,this.selectpicker.current.data=this.selectpicker.main.data,this.selectpicker.current.elements=this.selectpicker.main.elements,this.selectpicker.current.hasMore=!1,this.selectpicker.isSearching=!1}refresh(){var e=this,t=r(Object.assign({},this.options,j(this.element),o(this.element)));this.options=t,this.options.source.data?(this.render(),this.buildList()):(this.resetMenuData(),this.fetchData(function(){e.render(),e.buildList()})),this.checkDisabled(),this.setStyle(),this.setWidth(),this.setSize(!0),this._emit("refreshed")}hide(){this.newElement.style.display="none"}show(){this.newElement.style.display=""}remove(){this.newElement.parentNode&&this.newElement.parentNode.removeChild(this.newElement),n.delete(this.element)}destroy(){this.newElement.parentNode&&(this.newElement.parentNode.insertBefore(this.element,this.newElement),this.newElement.parentNode.removeChild(this.newElement)),this.bsContainer?this.bsContainer.parentNode&&this.bsContainer.parentNode.removeChild(this.bsContainer):this.menu&&this.menu.parentNode&&this.menu.parentNode.removeChild(this.menu),this.selectpicker.view.titleOption&&this.selectpicker.view.titleOption.parentNode&&this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption);for(var e,t=0;t
    '},maxOptions:!1,selectOnTab:!0,dropdownAlignRight:!1,virtualScroll:600,sanitize:!0,sanitizeFn:null,whiteList:s},a._buildConfig=function(e,t){t=r(t||{});var i,s=r(o(e));for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&-1!==u.indexOf(i)&&delete s[i];var n=r(a.defaults||{}),e=Object.assign({},a.DEFAULTS,n,j(e),s,t);return e.template=Object.assign({},a.DEFAULTS.template,n.template||{},s.template,t.template),e.source=Object.assign({},a.DEFAULTS.source,n.source||{},t.source),e},a.setDefaults=function(e){a.defaults=r(Object.assign({},a.defaults,e))},a.getInstance=function(e){return"string"==typeof e&&(e=document.querySelector(e)),n.get(e)||null},a.getOrCreateInstance=function(e,t){if(!(e="string"==typeof e?document.querySelector(e):e)||"SELECT"!==e.tagName)return null;var i=n.get(e);if(i){if((t=r(t))&&"object"==typeof t)for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i.options[s]=t[s]);return i}return new a(e,"object"==typeof t?t:{})},".bootstrap-select ["+le+'], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input');function ue(){var e=document.querySelectorAll(".selectpicker");Array.prototype.forEach.call(e,function(e){a.getOrCreateInstance(e)})}return window.addEventListener("keydown",function(e){var t=e.target;if(t&&t.closest&&t.closest(".bootstrap-select, .bs-container")){e.stopImmediatePropagation();t=t.closest(pe);if(t){for(var i,s=t;s;s=s.parentElement)if(s.bootstrapSelectInstance){i=s.bootstrapSelectInstance;break}i&&i._keydown(e,t)}}},!0),document.addEventListener("focusin",function(e){var t=e.target;t&&t.closest&&t.closest(pe)&&e.stopPropagation()}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",ue):ue(),"undefined"!=typeof window&&(window.Selectpicker=a),a}); +//# sourceMappingURL=bootstrap-select.min.js.map \ No newline at end of file diff --git a/docs/dist/js/bootstrap-select.min.js.map b/docs/dist/js/bootstrap-select.min.js.map new file mode 100644 index 0000000..e27f64a --- /dev/null +++ b/docs/dist/js/bootstrap-select.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bootstrap-select.min.js","sources":["../../js/bootstrap-select.js"],"names":["getDropdown","bs","bootstrap","window","undefined","Dropdown","createFromHTML","html","wrapper","document","createElement","innerHTML","trim","firstChild","toInteger","value","parseInt","offset","el","rect","getBoundingClientRect","top","pageYOffset","left","pageXOffset","outerHeight","includeMargin","height","offsetHeight","style","getComputedStyle","marginTop","marginBottom","setStyles","styles","prop","Object","prototype","hasOwnProperty","call","triggerNative","eventName","dispatchEvent","Event","bubbles","getDataset","dataset","attributes","i","length","name","indexOf","slice","replace","m","letter","toUpperCase","test","JSON","parse","e","DISALLOWED_ATTRIBUTES","uriAttrs","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","ParseableAttributes","sanitizeHtml","unsafeElements","whiteList","sanitizeFn","whitelistKeys","keys","len","elements","querySelectorAll","j","len2","elName","nodeName","toLowerCase","parentNode","removeChild","attributeList","whitelistedAttributes","concat","k","len3","attr","allowedAttributeList","attrName","Boolean","nodeValue","match","regExp","filter","RegExp","l","removeAttribute","getAttributesObject","element","attrVal","attributesObject","forEach","item","getAttribute","stringSearch","searchString","method","normalize","stringTypes","searchSuccess","stringType","string","toString","normalizeToBase","startsWith","normalizeSearchInput","getOptionLabelText","option","title","text","deburredLetters","À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ç","ç","Ð","ð","È","É","Ê","Ë","è","é","ê","ë","Ì","Í","Î","Ï","ì","í","î","ï","Ñ","ñ","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","Ù","Ú","Û","Ü","ù","ú","û","ü","Ý","ý","ÿ","Æ","æ","Þ","þ","ß","Ā","Ă","Ą","ā","ă","ą","Ć","Ĉ","Ċ","Č","ć","ĉ","ċ","č","Ď","Đ","ď","đ","Ē","Ĕ","Ė","Ę","Ě","ē","ĕ","ė","ę","ě","Ĝ","Ğ","Ġ","Ģ","ĝ","ğ","ġ","ģ","Ĥ","Ħ","ĥ","ħ","Ĩ","Ī","Ĭ","Į","İ","ĩ","ī","ĭ","į","ı","Ĵ","ĵ","Ķ","ķ","ĸ","Ĺ","Ļ","Ľ","Ŀ","Ł","ĺ","ļ","ľ","ŀ","ł","Ń","Ņ","Ň","Ŋ","ń","ņ","ň","ŋ","Ō","Ŏ","Ő","ō","ŏ","ő","Ŕ","Ŗ","Ř","ŕ","ŗ","ř","Ś","Ŝ","Ş","Š","ś","ŝ","ş","š","Ţ","Ť","Ŧ","ţ","ť","ŧ","Ũ","Ū","Ŭ","Ů","Ű","Ų","ũ","ū","ŭ","ů","ű","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","Ż","Ž","ź","ż","ž","IJ","ij","Œ","œ","ʼn","ſ","reLatin","reComboMark","deburrLetter","key","map","&","<",">","\"","'","`","source","join","testRegexp","replaceRegexp","htmlEscape","escaper","keyCodeMap","32","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","keyCodes","selectId","EVENT_KEY","classNames","Selector","elementTemplates","subtext","whitespace","createTextNode","fragment","createDocumentFragment","REGEXP_ARROW","selectedOption","cloneNode","setAttribute","noResults","className","checkMark","REGEXP_TAB_OR_ESCAPE","generateOption","content","classes","optgroup","nodeType","appendChild","classList","add","inline","insertAdjacentHTML","apply","split","options","useFragment","iconElement","textElement","textContent","icon","this","iconBase","subtextElement","childNodes","label","display","getOptionData","fromOption","type","cssText","$","ofs","fromDataSource","showNoResults","searchMatch","searchValue","noneResultsText","menuInner","filterHidden","hidden","hideDisabled","disabled","getSelectedOptions","selectpicker","main","data","selectedOptions","search","values","optionValuesDataMap","selected","multiple","getSelectValues","opt","push","changedArguments","spaceSelectFlag","REMOVED_OPTIONS","stripRemovedOptions","result","assign","Selectpicker","constructor","querySelector","tagName","TypeError","newElement","button","menu","_buildConfig","_listeners","_named","optionQueue","hasMore","current","view","createdOptions","openOption","isCreating","isSearching","keydown","keyHistory","resetKeyHistory","start","setTimeout","sizeInfo","init","instanceMap","set","_on","handler","addEventListener","_delegate","selector","target","closest","contains","_emit","detail","event","CustomEvent","cancelable","_replace","_removeNamed","prev","removeEventListener","that","id","form","autofocus","showTick","createDropdown","insertBefore","nextSibling","allowClear","clearButton","searchbox","selectedItems","createOptionButton","remove","fetchData","render","buildList","requestAnimationFrame","dropdownAlignRight","checkDisabled","clickListener","dropdown","bootstrapSelectInstance","liveSearch","liveSearchListener","focusedParent","setStyle","setWidth","emptyMenu","isVirtual","replaceChild","scrollTop","bsEvent","onShow","hasAttribute","onShownInvalid","onRendered","validity","valid","onBlur","focus","blur","showSelectedTags","selectedItemsStyle","selectionIndicator","multiselectable","liveSearchPlaceholder","openOptions","placeholder","header","actionsbox","donebutton","actionsBox","selectAllText","deselectAllText","doneButton","doneButtonText","previousValue","setSize","setPositionData","canHighlight","size","firstHighlightIndex","dividerHeight","dropdownHeaderHeight","liHeight","posinset","position","virtualScroll","createView","refresh","scroll","currentChunk","chunks","menuIsDifferent","array2","chunkSize","chunkCount","Math","ceil","endOfChunk","menuInnerHeight","prevPositions","position0","position1","firstChunk","max","lastChunk","min","positionIsDifferent","activeElement","selectedElement","defocusItem","prevActiveElement","previousElements","visibleElements","setOptionStatus","array1","every","index","menuFragment","toSanitize","actualMenuWidth","visibleElementsLen","elText","elementData","sanitize","lastChild","sanitized","hasScrollBar","menuInnerInnerWidth","offsetWidth","totalMenuWidth","selectWidth","minWidth","page","floor","pageSize","newActive","currentActive","focusItem","selectedIndex","liIndex","selectedData","noScroll","liData","noStyle","setPlaceholder","selectTitleOption","titleNotAppended","firstSelectableIndex","isNotBackForward","updateIndex","titleOption","firstSelectable","navigation","performance","getEntriesByType","defaultSelected","readyState","displayedValue","callback","builtData","more","totalItems","buildData","Array","isArray","dataGetter","optionSelector","mainData","startLen","optID","startIndex","selectOptions","addDivider","config","previousData","addOption","inlineStyle","optionClass","divider","optgroupClass","tokens","addOptgroup","previous","next","children","headerIndex","lastIndex","searching","selectData","mainElements","widestOptionLength","tickIcon","liElement","combinedLength","widestOption","findLis","placeholderSelected","selectedCount","selectedValues","buttonInner","multipleSeparator","titleFragment","forceCount","hasContent","createSelected","createOption","toggle","selectedTextFormat","showCount","countMax","titleOptions","showContent","showIcon","showSubtext","totalCount","tr8nText","countSelectedText","noneSelectedText","syncTagEditor","usesTagEditor","useListStyle","selectedTag","removeText","selectedTagRemoveLabel","syncOpenOptionButton","normalizedValue","shouldShow","findOptionBySearchValue","openOptionsText","findOptionByValue","dataSet","stringValue","String","normalizedSearch","liveSearchNormalize","createOptionElement","optionData","appendCreatedSearchResults","matches","_searchStyle","addCreatedOption","builtOption","removeSelectedTag","prevValue","setSelected","createOpenOption","createHandler","returnedOption","finalize","createdOption","existingOption","prevSelectedValue","create","then","newStyle","status","extra","buttonClass","menuInnerInner","dropdownHeader","actions","firstOption","width","body","headerHeight","searchHeight","actionsHeight","doneButtonHeight","menuStyle","menuWidth","menuPadding","vert","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginLeft","marginRight","overflowY","scrollBarWidth","selectHeight","getSelectPosition","winScrollTop","winScrollLeft","winHeight","documentElement","clientHeight","winWidth","clientWidth","pos","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","setMenuSize","isAuto","menuHeight","minHeight","maxHeight","menuInnerMinHeight","isDropup","divHeight","divLength","dropupAuto","estimate","dropup","_minHeight","overflow","_popper","update","windowSizeHandler","selectPosition","bsContainer","windowHandler","getPlacement","containerPos","actualHeight","container","containerPosition","Default","extraClass","containerStyle","scrollLeft","isDisabled","_menuHeight","selectedOnly","setDisabled","activeElementIsSet","keepActive","prevActive","checkPopperExists","state","keyCode","preventDefault","prevData","parentElement","stopImmediatePropagation","deselectAll","prevOption","prevIndex","hoverLi","hoverData","onOptionClick","currentTarget","stopPropagation","hide","selectAll","tabindex","isTrusted","clickedIndex","isSelected","mobile","clickedAnchor","retainActive","clickedData","clickedElement","triggerChange","maxOptions","optgroupData","find","datum","Element","optgroupOptions","maxOptionsGrp","maxReached","selectedGroupOptions","maxReachedGrp","_option","maxOptionsText","maxOptionsArr","maxTxt","maxTxtGrp","notify","q","cache","cacheArr","searchStyle","normalizeSearch","cacheLen","liPrev","liveSearchStyle","getValue","val","liSelectedIndex","changeAll","previousSelected","currentSelected","triggerToggle","isActive","open","close","_keydown","liActive","activeLi","offsetVal","which","isToggle","items","updateScroll","downOnTab","selectOnTab","isArrowKey","show","lastIndexOf","liActiveIndex","scrollHeight","cancel","clearTimeout","charAt","matchIndex","activeAnchor","resetMenuData","delete","destroy","dispose","WeakMap","KEYDOWN_SELECTOR","NAME","VERSION","defaults","DEFAULTS","numSelected","numAll","numGroup","template","caret","dataAttr","dataAttributes","userDefaults","setDefaults","newDefaults","getInstance","get","getOrCreateInstance","instance","initAll","selects","select","trigger","node"],"mappings":"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,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAC1BC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACvEC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACxDC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACtFC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IAAKC,SAAU,IACtFC,SAAU,IAAMC,SAAU,IAC1BC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC,SAAU,IAAMC,SAAU,IAAKC,SAAU,IACzCC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"} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-am_ET.js b/docs/dist/js/i18n/defaults-am_ET.js new file mode 100644 index 0000000..c205d1d --- /dev/null +++ b/docs/dist/js/i18n/defaults-am_ET.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'ምንም አልተመረጠም', + noneResultsText: 'ከ{0} ጋር ተመሳሳይ ውጤት የለም', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} ምርጫ ተመርጧል' : '{0} ምርጫዎች ተመርጠዋል'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)', + (numGroup == 1) ? 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)' + ]; + }, + selectAllText: 'ሁሉም ይመረጥ', + deselectAllText: 'ሁሉም አይመረጥ', + multipleSeparator: ' ፣ ' +}); + +})); + +//# sourceMappingURL=defaults-am_ET.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-am_ET.js.map b/docs/dist/js/i18n/defaults-am_ET.js.map new file mode 100644 index 0000000..631502f --- /dev/null +++ b/docs/dist/js/i18n/defaults-am_ET.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-am_ET.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;AAClC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;AAC3C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;AACrE,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;AACtF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;AAC/F,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM;AAC5B,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO;AAC/B,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG","file":"defaults-am_ET.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'ምንም አልተመረጠም',\n noneResultsText: 'ከ{0} ጋር ተመሳሳይ ውጤት የለም',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} ምርጫ ተመርጧል' : '{0} ምርጫዎች ተመርጠዋል';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)',\n (numGroup == 1) ? 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)'\n ];\n },\n selectAllText: 'ሁሉም ይመረጥ',\n deselectAllText: 'ሁሉም አይመረጥ',\n multipleSeparator: ' ፣ '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-am_ET.min.js b/docs/dist/js/i18n/defaults-am_ET.min.js new file mode 100644 index 0000000..c43edcf --- /dev/null +++ b/docs/dist/js/i18n/defaults-am_ET.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u121d\u1295\u121d \u12a0\u120d\u1270\u1218\u1228\u1320\u121d",noneResultsText:"\u12a8{0} \u130b\u122d \u1270\u1218\u1233\u1233\u12ed \u12cd\u1324\u1275 \u12e8\u1208\u121d",countSelectedText:function(e,t){return 1==e?"{0} \u121d\u122d\u132b \u1270\u1218\u122d\u1327\u120d":"{0} \u121d\u122d\u132b\u12ce\u127d \u1270\u1218\u122d\u1320\u12cb\u120d"},maxOptionsText:function(e,t){return[1==e?"\u1308\u12f0\u1265 \u120b\u12ed \u1270\u12f0\u122d\u1237\u120d (\u1262\u1260\u12db {n} \u121d\u122d\u132b)":"\u1308\u12f0\u1265 \u120b\u12ed \u1270\u12f0\u122d\u1237\u120d (\u1262\u1260\u12db {n} \u121d\u122d\u132b\u12ce\u127d)",1==t?"\u12e8\u1261\u12f5\u1295 \u1308\u12f0\u1265 \u120b\u12ed \u1270\u12f0\u122d\u1237\u120d (\u1262\u1260\u12db {n} \u121d\u122d\u132b)":"\u12e8\u1261\u12f5\u1295 \u1308\u12f0\u1265 \u120b\u12ed \u1270\u12f0\u122d\u1237\u120d (\u1262\u1260\u12db {n} \u121d\u122d\u132b\u12ce\u127d)"]},selectAllText:"\u1201\u1209\u121d \u12ed\u1218\u1228\u1325",deselectAllText:"\u1201\u1209\u121d \u12a0\u12ed\u1218\u1228\u1325",multipleSeparator:" \u1363 "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ar_AR.js b/docs/dist/js/i18n/defaults-ar_AR.js new file mode 100644 index 0000000..600ecc6 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ar_AR.js @@ -0,0 +1,52 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +/*! + * Translated default messages for bootstrap-select. + * Locale: AR (Arabic) + * Author: Yasser Lotfy + */ +Selectpicker.setDefaults({ + noneSelectedText: 'لم يتم إختيار شئ', + noneResultsText: 'لا توجد نتائج مطابقة لـ {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} خيار تم إختياره' : '{0} خيارات تمت إختيارها'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)', + (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)' + ]; + }, + selectAllText: 'إختيار الجميع', + deselectAllText: 'إلغاء إختيار الجميع', + multipleSeparator: '، ' +}); + +})); + +//# sourceMappingURL=defaults-ar_AR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ar_AR.js.map b/docs/dist/js/i18n/defaults-ar_AR.js.map new file mode 100644 index 0000000..1b2b465 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ar_AR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ar_AR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,GAAG;AACH,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;AACpD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AACtB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACvC,CAAC,EAAE;AACH,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AACvC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AACjD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU;AAClF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;AAC1G,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;AAC7H,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ;AACjC,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;AACzC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-ar_AR.js","sourcesContent":["/*!\n * Translated default messages for bootstrap-select.\n * Locale: AR (Arabic)\n * Author: Yasser Lotfy \n */\nSelectpicker.setDefaults({\n noneSelectedText: 'لم يتم إختيار شئ',\n noneResultsText: 'لا توجد نتائج مطابقة لـ {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} خيار تم إختياره' : '{0} خيارات تمت إختيارها';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)',\n (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)'\n ];\n },\n selectAllText: 'إختيار الجميع',\n deselectAllText: 'إلغاء إختيار الجميع',\n multipleSeparator: '، '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ar_AR.min.js b/docs/dist/js/i18n/defaults-ar_AR.min.js new file mode 100644 index 0000000..7cf17b9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ar_AR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u0644\u0645 \u064a\u062a\u0645 \u0625\u062e\u062a\u064a\u0627\u0631 \u0634\u0626",noneResultsText:"\u0644\u0627 \u062a\u0648\u062c\u062f \u0646\u062a\u0627\u0626\u062c \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0640 {0}",countSelectedText:function(e,t){return 1==e?"{0} \u062e\u064a\u0627\u0631 \u062a\u0645 \u0625\u062e\u062a\u064a\u0627\u0631\u0647":"{0} \u062e\u064a\u0627\u0631\u0627\u062a \u062a\u0645\u062a \u0625\u062e\u062a\u064a\u0627\u0631\u0647\u0627"},maxOptionsText:function(e,t){return[1==e?"\u062a\u062e\u0637\u0649 \u0627\u0644\u062d\u062f \u0627\u0644\u0645\u0633\u0645\u0648\u062d ({n} \u062e\u064a\u0627\u0631 \u0628\u062d\u062f \u0623\u0642\u0635\u0649)":"\u062a\u062e\u0637\u0649 \u0627\u0644\u062d\u062f \u0627\u0644\u0645\u0633\u0645\u0648\u062d ({n} \u062e\u064a\u0627\u0631\u0627\u062a \u0628\u062d\u062f \u0623\u0642\u0635\u0649)",1==t?"\u062a\u062e\u0637\u0649 \u0627\u0644\u062d\u062f \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0644\u0644\u0645\u062c\u0645\u0648\u0639\u0629 ({n} \u062e\u064a\u0627\u0631 \u0628\u062d\u062f \u0623\u0642\u0635\u0649)":"\u062a\u062e\u0637\u0649 \u0627\u0644\u062d\u062f \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0644\u0644\u0645\u062c\u0645\u0648\u0639\u0629 ({n} \u062e\u064a\u0627\u0631\u0627\u062a \u0628\u062d\u062f \u0623\u0642\u0635\u0649)"]},selectAllText:"\u0625\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u062c\u0645\u064a\u0639",deselectAllText:"\u0625\u0644\u063a\u0627\u0621 \u0625\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u062c\u0645\u064a\u0639",multipleSeparator:"\u060c "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-bg_BG.js b/docs/dist/js/i18n/defaults-bg_BG.js new file mode 100644 index 0000000..a8b5c25 --- /dev/null +++ b/docs/dist/js/i18n/defaults-bg_BG.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Нищо избрано', + noneResultsText: 'Няма резултат за {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} избран елемент' : '{0} избрани елемента'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)', + (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)' + ]; + }, + selectAllText: 'Избери всички', + deselectAllText: 'Размаркирай всички', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-bg_BG.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-bg_BG.js.map b/docs/dist/js/i18n/defaults-bg_BG.js.map new file mode 100644 index 0000000..111a36b --- /dev/null +++ b/docs/dist/js/i18n/defaults-bg_BG.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-bg_BG.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,SAAS;AACnC,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC1C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU;AAC9E,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;AACjH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;AAClI,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ;AACjC,EAAE,eAAe,CAAC,CAAC,YAAY,CAAC,QAAQ;AACxC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-bg_BG.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Нищо избрано',\n noneResultsText: 'Няма резултат за {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} избран елемент' : '{0} избрани елемента';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)',\n (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)'\n ];\n },\n selectAllText: 'Избери всички',\n deselectAllText: 'Размаркирай всички',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-bg_BG.min.js b/docs/dist/js/i18n/defaults-bg_BG.min.js new file mode 100644 index 0000000..b773289 --- /dev/null +++ b/docs/dist/js/i18n/defaults-bg_BG.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u041d\u0438\u0449\u043e \u0438\u0437\u0431\u0440\u0430\u043d\u043e",noneResultsText:"\u041d\u044f\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442 \u0437\u0430 {0}",countSelectedText:function(e,t){return 1==e?"{0} \u0438\u0437\u0431\u0440\u0430\u043d \u0435\u043b\u0435\u043c\u0435\u043d\u0442":"{0} \u0438\u0437\u0431\u0440\u0430\u043d\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430"},maxOptionsText:function(e,t){return[1==e?"\u041b\u0438\u043c\u0438\u0442\u0430 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 ({n} \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)":"\u041b\u0438\u043c\u0438\u0442\u0430 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 ({n} \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)",1==t?"\u0413\u0440\u0443\u043f\u043e\u0432\u0438\u044f \u043b\u0438\u043c\u0438\u0442 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 ({n} \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)":"\u0413\u0440\u0443\u043f\u043e\u0432\u0438\u044f \u043b\u0438\u043c\u0438\u0442 \u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0430\u0442 ({n} \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)"]},selectAllText:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0432\u0441\u0438\u0447\u043a\u0438",deselectAllText:"\u0420\u0430\u0437\u043c\u0430\u0440\u043a\u0438\u0440\u0430\u0439 \u0432\u0441\u0438\u0447\u043a\u0438",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-cs_CZ.js b/docs/dist/js/i18n/defaults-cs_CZ.js new file mode 100644 index 0000000..de6d52d --- /dev/null +++ b/docs/dist/js/i18n/defaults-cs_CZ.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Vyberte ze seznamu', + noneResultsText: 'Pro hledání {0} nebyly nalezeny žádné výsledky', + countSelectedText: 'Vybrané {0} z {1}', + maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']], + multipleSeparator: ', ', + selectAllText: 'Vybrat vše', + deselectAllText: 'Zrušit výběr' +}); + +})); + +//# sourceMappingURL=defaults-cs_CZ.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-cs_CZ.js.map b/docs/dist/js/i18n/defaults-cs_CZ.js.map new file mode 100644 index 0000000..ece7004 --- /dev/null +++ b/docs/dist/js/i18n/defaults-cs_CZ.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-cs_CZ.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;AACzC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACpE,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACzC,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI;AACzH,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9B,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,GAAG","file":"defaults-cs_CZ.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Vyberte ze seznamu',\n noneResultsText: 'Pro hledání {0} nebyly nalezeny žádné výsledky',\n countSelectedText: 'Vybrané {0} z {1}',\n maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']],\n multipleSeparator: ', ',\n selectAllText: 'Vybrat vše',\n deselectAllText: 'Zrušit výběr'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-cs_CZ.min.js b/docs/dist/js/i18n/defaults-cs_CZ.min.js new file mode 100644 index 0000000..b51c4bf --- /dev/null +++ b/docs/dist/js/i18n/defaults-cs_CZ.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Vyberte ze seznamu",noneResultsText:"Pro hled\xe1n\xed {0} nebyly nalezeny \u017e\xe1dn\xe9 v\xfdsledky",countSelectedText:"Vybran\xe9 {0} z {1}",maxOptionsText:["Limit p\u0159ekro\u010den ({n} {var} max)","Limit skupiny p\u0159ekro\u010den ({n} {var} max)",["polo\u017eek","polo\u017eka"]],multipleSeparator:", ",selectAllText:"Vybrat v\u0161e",deselectAllText:"Zru\u0161it v\xfdb\u011br"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-da_DK.js b/docs/dist/js/i18n/defaults-da_DK.js new file mode 100644 index 0000000..014eb83 --- /dev/null +++ b/docs/dist/js/i18n/defaults-da_DK.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Intet valgt', + noneResultsText: 'Ingen resultater fundet {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} valgt' : '{0} valgt'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)', + (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)' + ]; + }, + selectAllText: 'Markér alle', + deselectAllText: 'Afmarkér alle', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-da_DK.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-da_DK.js.map b/docs/dist/js/i18n/defaults-da_DK.js.map new file mode 100644 index 0000000..0107b02 --- /dev/null +++ b/docs/dist/js/i18n/defaults-da_DK.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-da_DK.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;AACjD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;AAC1D,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG;AAC/F,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC9G,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/B,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;AACnC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-da_DK.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Intet valgt',\n noneResultsText: 'Ingen resultater fundet {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} valgt' : '{0} valgt';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)',\n (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)'\n ];\n },\n selectAllText: 'Markér alle',\n deselectAllText: 'Afmarkér alle',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-da_DK.min.js b/docs/dist/js/i18n/defaults-da_DK.min.js new file mode 100644 index 0000000..3f212cd --- /dev/null +++ b/docs/dist/js/i18n/defaults-da_DK.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Intet valgt",noneResultsText:"Ingen resultater fundet {0}",countSelectedText:function(e,t){return"{0} valgt"},maxOptionsText:function(e,t){return[1==e?"Begr\xe6nsning n\xe5et (max {n} valgt)":"Begr\xe6nsning n\xe5et (max {n} valgte)",1==t?"Gruppe-begr\xe6nsning n\xe5et (max {n} valgt)":"Gruppe-begr\xe6nsning n\xe5et (max {n} valgte)"]},selectAllText:"Mark\xe9r alle",deselectAllText:"Afmark\xe9r alle",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-de_DE.js b/docs/dist/js/i18n/defaults-de_DE.js new file mode 100644 index 0000000..e13c67e --- /dev/null +++ b/docs/dist/js/i18n/defaults-de_DE.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Bitte wählen...', + noneResultsText: 'Keine Ergebnisse für {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} Element ausgewählt' : '{0} Elemente ausgewählt'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)', + (numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)' + ]; + }, + selectAllText: 'Alles auswählen', + deselectAllText: 'Nichts auswählen', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-de_DE.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-de_DE.js.map b/docs/dist/js/i18n/defaults-de_DE.js.map new file mode 100644 index 0000000..bfbbbc0 --- /dev/null +++ b/docs/dist/js/i18n/defaults-de_DE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-de_DE.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK;AACtC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE;AACrF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI;AACjG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG;AAClH,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACtC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-de_DE.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Bitte wählen...',\n noneResultsText: 'Keine Ergebnisse für {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} Element ausgewählt' : '{0} Elemente ausgewählt';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)',\n (numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)'\n ];\n },\n selectAllText: 'Alles auswählen',\n deselectAllText: 'Nichts auswählen',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-de_DE.min.js b/docs/dist/js/i18n/defaults-de_DE.min.js new file mode 100644 index 0000000..4e7fdb9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-de_DE.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Bitte w\xe4hlen...",noneResultsText:"Keine Ergebnisse f\xfcr {0}",countSelectedText:function(e,t){return 1==e?"{0} Element ausgew\xe4hlt":"{0} Elemente ausgew\xe4hlt"},maxOptionsText:function(e,t){return[1==e?"Limit erreicht ({n} Element max.)":"Limit erreicht ({n} Elemente max.)",1==t?"Gruppen-Limit erreicht ({n} Element max.)":"Gruppen-Limit erreicht ({n} Elemente max.)"]},selectAllText:"Alles ausw\xe4hlen",deselectAllText:"Nichts ausw\xe4hlen",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-en_US.js b/docs/dist/js/i18n/defaults-en_US.js new file mode 100644 index 0000000..8ca9152 --- /dev/null +++ b/docs/dist/js/i18n/defaults-en_US.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nothing selected', + noneResultsText: 'No results match {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} item selected' : '{0} items selected'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', + (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' + ]; + }, + selectAllText: 'Select All', + deselectAllText: 'Deselect All', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-en_US.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-en_US.js.map b/docs/dist/js/i18n/defaults-en_US.js.map new file mode 100644 index 0000000..918f264 --- /dev/null +++ b/docs/dist/js/i18n/defaults-en_US.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-en_US.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC1C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC3E,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG;AACvF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;AACpG,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;AAC9B,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;AAClC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-en_US.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nothing selected',\n noneResultsText: 'No results match {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\n ];\n },\n selectAllText: 'Select All',\n deselectAllText: 'Deselect All',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-en_US.min.js b/docs/dist/js/i18n/defaults-en_US.min.js new file mode 100644 index 0000000..da65421 --- /dev/null +++ b/docs/dist/js/i18n/defaults-en_US.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nothing selected",noneResultsText:"No results match {0}",countSelectedText:function(e,t){return 1==e?"{0} item selected":"{0} items selected"},maxOptionsText:function(e,t){return[1==e?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==t?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_CL.js b/docs/dist/js/i18n/defaults-es_CL.js new file mode 100644 index 0000000..8c3cd5b --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_CL.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'No hay selección', + noneResultsText: 'No hay resultados {0}', + countSelectedText: 'Seleccionados {0} de {1}', + maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']], + multipleSeparator: ', ', + selectAllText: 'Seleccionar Todos', + deselectAllText: 'Desmarcar Todos' +}); + +})); + +//# sourceMappingURL=defaults-es_CL.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_CL.js.map b/docs/dist/js/i18n/defaults-es_CL.js.map new file mode 100644 index 0000000..55ec557 --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_CL.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-es_CL.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE;AACvC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAC3C,EAAE,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAChD,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,IAAI;AAC9H,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE;AACrC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,GAAG","file":"defaults-es_CL.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'No hay selección',\n noneResultsText: 'No hay resultados {0}',\n countSelectedText: 'Seleccionados {0} de {1}',\n maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],\n multipleSeparator: ', ',\n selectAllText: 'Seleccionar Todos',\n deselectAllText: 'Desmarcar Todos'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_CL.min.js b/docs/dist/js/i18n/defaults-es_CL.min.js new file mode 100644 index 0000000..0d2b238 --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_CL.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"No hay selecci\xf3n",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["L\xedmite alcanzado ({n} {var} max)","L\xedmite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", ",selectAllText:"Seleccionar Todos",deselectAllText:"Desmarcar Todos"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_ES.js b/docs/dist/js/i18n/defaults-es_ES.js new file mode 100644 index 0000000..02efa93 --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_ES.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'No hay selección', + noneResultsText: 'No hay resultados {0}', + countSelectedText: 'Seleccionados {0} de {1}', + maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']], + multipleSeparator: ', ', + selectAllText: 'Seleccionar Todos', + deselectAllText: 'Desmarcar Todos' +}); + +})); + +//# sourceMappingURL=defaults-es_ES.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_ES.js.map b/docs/dist/js/i18n/defaults-es_ES.js.map new file mode 100644 index 0000000..4366d88 --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_ES.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-es_ES.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE;AACvC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AAC3C,EAAE,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAChD,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,IAAI;AAC9H,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE;AACrC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,GAAG","file":"defaults-es_ES.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'No hay selección',\n noneResultsText: 'No hay resultados {0}',\n countSelectedText: 'Seleccionados {0} de {1}',\n maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],\n multipleSeparator: ', ',\n selectAllText: 'Seleccionar Todos',\n deselectAllText: 'Desmarcar Todos'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-es_ES.min.js b/docs/dist/js/i18n/defaults-es_ES.min.js new file mode 100644 index 0000000..0d2b238 --- /dev/null +++ b/docs/dist/js/i18n/defaults-es_ES.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"No hay selecci\xf3n",noneResultsText:"No hay resultados {0}",countSelectedText:"Seleccionados {0} de {1}",maxOptionsText:["L\xedmite alcanzado ({n} {var} max)","L\xedmite del grupo alcanzado({n} {var} max)",["elementos","element"]],multipleSeparator:", ",selectAllText:"Seleccionar Todos",deselectAllText:"Desmarcar Todos"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-et_EE.js b/docs/dist/js/i18n/defaults-et_EE.js new file mode 100644 index 0000000..b2ec4c2 --- /dev/null +++ b/docs/dist/js/i18n/defaults-et_EE.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Valikut pole tehtud', + noneResultsText: 'Otsingule {0} ei ole vasteid', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} item selected' : '{0} items selected'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + 'Limiit on {n} max', + 'Globaalne limiit on {n} max' + ]; + }, + selectAllText: 'Vali kõik', + deselectAllText: 'Tühista kõik', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-et_EE.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-et_EE.js.map b/docs/dist/js/i18n/defaults-et_EE.js.map new file mode 100644 index 0000000..fb790ea --- /dev/null +++ b/docs/dist/js/i18n/defaults-et_EE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-et_EE.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1C,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE;AAClD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC3E,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;AAC7B,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;AAClC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-et_EE.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Valikut pole tehtud',\n noneResultsText: 'Otsingule {0} ei ole vasteid',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n 'Limiit on {n} max',\n 'Globaalne limiit on {n} max'\n ];\n },\n selectAllText: 'Vali kõik',\n deselectAllText: 'Tühista kõik',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-et_EE.min.js b/docs/dist/js/i18n/defaults-et_EE.min.js new file mode 100644 index 0000000..2c70143 --- /dev/null +++ b/docs/dist/js/i18n/defaults-et_EE.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Valikut pole tehtud",noneResultsText:"Otsingule {0} ei ole vasteid",countSelectedText:function(e,t){return 1==e?"{0} item selected":"{0} items selected"},maxOptionsText:function(e,t){return["Limiit on {n} max","Globaalne limiit on {n} max"]},selectAllText:"Vali k\xf5ik",deselectAllText:"T\xfchista k\xf5ik",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-eu.js b/docs/dist/js/i18n/defaults-eu.js new file mode 100644 index 0000000..8c4c098 --- /dev/null +++ b/docs/dist/js/i18n/defaults-eu.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Hautapenik ez', + noneResultsText: 'Emaitzarik ez {0}', + countSelectedText: '{1}(e)tik {0} hautatuta', + maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']], + multipleSeparator: ', ', + selectAllText: 'Hautatu Guztiak', + deselectAllText: 'Desautatu Guztiak' +}); + +})); + +//# sourceMappingURL=defaults-eu.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-eu.js.map b/docs/dist/js/i18n/defaults-eu.js.map new file mode 100644 index 0000000..89d7170 --- /dev/null +++ b/docs/dist/js/i18n/defaults-eu.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-eu.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AACvC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AAC/C,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI;AACvI,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;AACtC,GAAG","file":"defaults-eu.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Hautapenik ez',\n noneResultsText: 'Emaitzarik ez {0}',\n countSelectedText: '{1}(e)tik {0} hautatuta',\n maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']],\n multipleSeparator: ', ',\n selectAllText: 'Hautatu Guztiak',\n deselectAllText: 'Desautatu Guztiak'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-eu.min.js b/docs/dist/js/i18n/defaults-eu.min.js new file mode 100644 index 0000000..ad4fa88 --- /dev/null +++ b/docs/dist/js/i18n/defaults-eu.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Hautapenik ez",noneResultsText:"Emaitzarik ez {0}",countSelectedText:"{1}(e)tik {0} hautatuta",maxOptionsText:["Mugara iritsita ({n} {var} gehienez)","Taldearen mugara iritsita ({n} {var} gehienez)",["elementu","elementu"]],multipleSeparator:", ",selectAllText:"Hautatu Guztiak",deselectAllText:"Desautatu Guztiak"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fa_IR.js b/docs/dist/js/i18n/defaults-fa_IR.js new file mode 100644 index 0000000..7a75c01 --- /dev/null +++ b/docs/dist/js/i18n/defaults-fa_IR.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'چیزی انتخاب نشده است', + noneResultsText: 'هیج مشابهی برای {0} پیدا نشد', + countSelectedText: '{0} از {1} مورد انتخاب شده', + maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'], + selectAllText: 'انتخاب همه', + deselectAllText: 'انتخاب هیچ کدام', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-fa_IR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fa_IR.js.map b/docs/dist/js/i18n/defaults-fa_IR.js.map new file mode 100644 index 0000000..8ddc7ea --- /dev/null +++ b/docs/dist/js/i18n/defaults-fa_IR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-fa_IR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC3C,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;AAClD,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;AAClD,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;AAC3F,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK;AAC9B,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;AACrC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-fa_IR.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'چیزی انتخاب نشده است',\n noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',\n countSelectedText: '{0} از {1} مورد انتخاب شده',\n maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],\n selectAllText: 'انتخاب همه',\n deselectAllText: 'انتخاب هیچ کدام',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fa_IR.min.js b/docs/dist/js/i18n/defaults-fa_IR.min.js new file mode 100644 index 0000000..7281c7f --- /dev/null +++ b/docs/dist/js/i18n/defaults-fa_IR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u0686\u06cc\u0632\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a",noneResultsText:"\u0647\u06cc\u062c \u0645\u0634\u0627\u0628\u0647\u06cc \u0628\u0631\u0627\u06cc {0} \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f",countSelectedText:"{0} \u0627\u0632 {1} \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647",maxOptionsText:["\u0628\u06cc\u0634\u062a\u0631 \u0645\u0645\u06a9\u0646 \u0646\u06cc\u0633\u062a {\u062d\u062f\u0627\u06a9\u062b\u0631 {n} \u0639\u062f\u062f}","\u0628\u06cc\u0634\u062a\u0631 \u0645\u0645\u06a9\u0646 \u0646\u06cc\u0633\u062a {\u062d\u062f\u0627\u06a9\u062b\u0631 {n} \u0639\u062f\u062f}"],selectAllText:"\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u0645\u0647",deselectAllText:"\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fi_FI.js b/docs/dist/js/i18n/defaults-fi_FI.js new file mode 100644 index 0000000..5554b57 --- /dev/null +++ b/docs/dist/js/i18n/defaults-fi_FI.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Ei valintoja', + noneResultsText: 'Ei hakutuloksia {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} valittu' : '{0} valitut'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)', + (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)' + ]; + }, + selectAllText: 'Valitse kaikki', + deselectAllText: 'Poista kaikki', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-fi_FI.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fi_FI.js.map b/docs/dist/js/i18n/defaults-fi_FI.js.map new file mode 100644 index 0000000..44d1b44 --- /dev/null +++ b/docs/dist/js/i18n/defaults-fi_FI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-fi_FI.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AACzC,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AAC9D,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG;AAC9G,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;AACvG,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;AAClC,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AACnC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-fi_FI.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Ei valintoja',\n noneResultsText: 'Ei hakutuloksia {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} valittu' : '{0} valitut';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)',\n (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)'\n ];\n },\n selectAllText: 'Valitse kaikki',\n deselectAllText: 'Poista kaikki',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fi_FI.min.js b/docs/dist/js/i18n/defaults-fi_FI.min.js new file mode 100644 index 0000000..f67c7e0 --- /dev/null +++ b/docs/dist/js/i18n/defaults-fi_FI.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Ei valintoja",noneResultsText:"Ei hakutuloksia {0}",countSelectedText:function(e,t){return 1==e?"{0} valittu":"{0} valitut"},maxOptionsText:function(e,t){return["Valintojen maksimim\xe4\xe4r\xe4 ({n} saavutettu)","Ryhm\xe4n maksimim\xe4\xe4r\xe4 ({n} saavutettu)"]},selectAllText:"Valitse kaikki",deselectAllText:"Poista kaikki",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fr_FR.js b/docs/dist/js/i18n/defaults-fr_FR.js new file mode 100644 index 0000000..ae45e6e --- /dev/null +++ b/docs/dist/js/i18n/defaults-fr_FR.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Aucune sélection', + noneResultsText: 'Aucun résultat pour {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected > 1) ? '{0} éléments sélectionnés' : '{0} élément sélectionné'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)', + (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)' + ]; + }, + multipleSeparator: ', ', + selectAllText: 'Tout sélectionner', + deselectAllText: 'Tout désélectionner' +}); + +})); + +//# sourceMappingURL=defaults-fr_FR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fr_FR.js.map b/docs/dist/js/i18n/defaults-fr_FR.js.map new file mode 100644 index 0000000..7032401 --- /dev/null +++ b/docs/dist/js/i18n/defaults-fr_FR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-fr_FR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;AACvC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AAC7C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG;AACvF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;AAChG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;AACrH,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AACrC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACxC,GAAG","file":"defaults-fr_FR.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Aucune sélection',\n noneResultsText: 'Aucun résultat pour {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected > 1) ? '{0} éléments sélectionnés' : '{0} élément sélectionné';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)',\n (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)'\n ];\n },\n multipleSeparator: ', ',\n selectAllText: 'Tout sélectionner',\n deselectAllText: 'Tout désélectionner'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-fr_FR.min.js b/docs/dist/js/i18n/defaults-fr_FR.min.js new file mode 100644 index 0000000..187ff7f --- /dev/null +++ b/docs/dist/js/i18n/defaults-fr_FR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Aucune s\xe9lection",noneResultsText:"Aucun r\xe9sultat pour {0}",countSelectedText:function(e,t){return 1{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Odaberite stavku",noneResultsText:"Nema rezultata pretrage {0}",countSelectedText:function(e,t){return 1==e?"{0} stavka selektirana":"{0} stavke selektirane"},maxOptionsText:function(e,t){return[1==e?"Limit je postignut ({n} stvar maximalno)":"Limit je postignut ({n} stavke maksimalno)",1==t?"Grupni limit je postignut ({n} stvar maksimalno)":"Grupni limit je postignut ({n} stavke maksimalno)"]},selectAllText:"Selektiraj sve",deselectAllText:"Deselektiraj sve",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-hu_HU.js b/docs/dist/js/i18n/defaults-hu_HU.js new file mode 100644 index 0000000..458eda9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-hu_HU.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Válasszon!', + noneResultsText: 'Nincs találat {0}', + countSelectedText: function (numSelected, numTotal) { + return '{0} elem kiválasztva'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + 'Legfeljebb {n} elem választható', + 'A csoportban legfeljebb {n} elem választható' + ]; + }, + selectAllText: 'Mind', + deselectAllText: 'Egyik sem', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-hu_HU.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-hu_HU.js.map b/docs/dist/js/i18n/defaults-hu_HU.js.map new file mode 100644 index 0000000..2ce9d64 --- /dev/null +++ b/docs/dist/js/i18n/defaults-hu_HU.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-hu_HU.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG;AACjC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AACvC,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AAClC,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG;AACxC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpD,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;AACxB,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;AAC/B,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-hu_HU.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Válasszon!',\n noneResultsText: 'Nincs találat {0}',\n countSelectedText: function (numSelected, numTotal) {\n return '{0} elem kiválasztva';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n 'Legfeljebb {n} elem választható',\n 'A csoportban legfeljebb {n} elem választható'\n ];\n },\n selectAllText: 'Mind',\n deselectAllText: 'Egyik sem',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-hu_HU.min.js b/docs/dist/js/i18n/defaults-hu_HU.min.js new file mode 100644 index 0000000..93d0cd4 --- /dev/null +++ b/docs/dist/js/i18n/defaults-hu_HU.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"V\xe1lasszon!",noneResultsText:"Nincs tal\xe1lat {0}",countSelectedText:function(e,t){return"{0} elem kiv\xe1lasztva"},maxOptionsText:function(e,t){return["Legfeljebb {n} elem v\xe1laszthat\xf3","A csoportban legfeljebb {n} elem v\xe1laszthat\xf3"]},selectAllText:"Mind",deselectAllText:"Egyik sem",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-id_ID.js b/docs/dist/js/i18n/defaults-id_ID.js new file mode 100644 index 0000000..b71764d --- /dev/null +++ b/docs/dist/js/i18n/defaults-id_ID.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Tidak ada yang dipilih', + noneResultsText: 'Tidak ada yang cocok {0}', + countSelectedText: '{0} terpilih', + maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'], + selectAllText: 'Pilih Semua', + deselectAllText: 'Hapus Semua', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-id_ID.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-id_ID.js.map b/docs/dist/js/i18n/defaults-id_ID.js.map new file mode 100644 index 0000000..6c6b347 --- /dev/null +++ b/docs/dist/js/i18n/defaults-id_ID.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-id_ID.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpC,EAAE,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AAC1F,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AAC/B,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AACjC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-id_ID.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Tidak ada yang dipilih',\n noneResultsText: 'Tidak ada yang cocok {0}',\n countSelectedText: '{0} terpilih',\n maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'],\n selectAllText: 'Pilih Semua',\n deselectAllText: 'Hapus Semua',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-id_ID.min.js b/docs/dist/js/i18n/defaults-id_ID.min.js new file mode 100644 index 0000000..b387f4d --- /dev/null +++ b/docs/dist/js/i18n/defaults-id_ID.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Tidak ada yang dipilih",noneResultsText:"Tidak ada yang cocok {0}",countSelectedText:"{0} terpilih",maxOptionsText:["Mencapai batas (maksimum {n})","Mencapai batas grup (maksimum {n})"],selectAllText:"Pilih Semua",deselectAllText:"Hapus Semua",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-it_IT.js b/docs/dist/js/i18n/defaults-it_IT.js new file mode 100644 index 0000000..15ad9bb --- /dev/null +++ b/docs/dist/js/i18n/defaults-it_IT.js @@ -0,0 +1,42 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nessuna selezione', + noneResultsText: 'Nessun risultato per {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? 'Selezionato {0} di {1}' : 'Selezionati {0} di {1}'; + }, + maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']], + multipleSeparator: ', ', + selectAllText: 'Seleziona Tutto', + deselectAllText: 'Deseleziona Tutto' +}); + +})); + +//# sourceMappingURL=defaults-it_IT.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-it_IT.js.map b/docs/dist/js/i18n/defaults-it_IT.js.map new file mode 100644 index 0000000..c7e1beb --- /dev/null +++ b/docs/dist/js/i18n/defaults-it_IT.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-it_IT.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;AACxC,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AACpF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI;AAChI,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;AACtC,GAAG","file":"defaults-it_IT.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nessuna selezione',\n noneResultsText: 'Nessun risultato per {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? 'Selezionato {0} di {1}' : 'Selezionati {0} di {1}';\n },\n maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']],\n multipleSeparator: ', ',\n selectAllText: 'Seleziona Tutto',\n deselectAllText: 'Deseleziona Tutto'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-it_IT.min.js b/docs/dist/js/i18n/defaults-it_IT.min.js new file mode 100644 index 0000000..31d2fd6 --- /dev/null +++ b/docs/dist/js/i18n/defaults-it_IT.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nessuna selezione",noneResultsText:"Nessun risultato per {0}",countSelectedText:function(e,t){return 1==e?"Selezionato {0} di {1}":"Selezionati {0} di {1}"},maxOptionsText:["Limite raggiunto ({n} {var} max)","Limite del gruppo raggiunto ({n} {var} max)",["elementi","elemento"]],multipleSeparator:", ",selectAllText:"Seleziona Tutto",deselectAllText:"Deseleziona Tutto"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ja_JP.js b/docs/dist/js/i18n/defaults-ja_JP.js new file mode 100644 index 0000000..f290892 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ja_JP.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: '選択されていません', + noneResultsText: '\'{0}\'は見つかりません', + countSelectedText: '{0}/{1} 選択中', + maxOptionsText: ['選択上限数を超えています(最大{n}{var})', 'グループの選択上限数を超えています(最大{n}{var})', ['アイテム', 'アイテム']], + selectAllText: '全て選択', + deselectAllText: '選択をクリア', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-ja_JP.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ja_JP.js.map b/docs/dist/js/i18n/defaults-ja_JP.js.map new file mode 100644 index 0000000..c93402e --- /dev/null +++ b/docs/dist/js/i18n/defaults-ja_JP.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ja_JP.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,YAAY;AAChC,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,aAAa;AACrC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACnC,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;AAClG,EAAE,aAAa,CAAC,CAAC,OAAO;AACxB,EAAE,eAAe,CAAC,CAAC,SAAS;AAC5B,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-ja_JP.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: '選択されていません',\n noneResultsText: '\\'{0}\\'は見つかりません',\n countSelectedText: '{0}/{1} 選択中',\n maxOptionsText: ['選択上限数を超えています(最大{n}{var})', 'グループの選択上限数を超えています(最大{n}{var})', ['アイテム', 'アイテム']],\n selectAllText: '全て選択',\n deselectAllText: '選択をクリア',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ja_JP.min.js b/docs/dist/js/i18n/defaults-ja_JP.min.js new file mode 100644 index 0000000..740b93d --- /dev/null +++ b/docs/dist/js/i18n/defaults-ja_JP.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093",noneResultsText:"'{0}'\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093",countSelectedText:"{0}/{1} \u9078\u629e\u4e2d",maxOptionsText:["\u9078\u629e\u4e0a\u9650\u6570\u3092\u8d85\u3048\u3066\u3044\u307e\u3059(\u6700\u5927{n}{var})","\u30b0\u30eb\u30fc\u30d7\u306e\u9078\u629e\u4e0a\u9650\u6570\u3092\u8d85\u3048\u3066\u3044\u307e\u3059(\u6700\u5927{n}{var})",["\u30a2\u30a4\u30c6\u30e0","\u30a2\u30a4\u30c6\u30e0"]],selectAllText:"\u5168\u3066\u9078\u629e",deselectAllText:"\u9078\u629e\u3092\u30af\u30ea\u30a2",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-kh_KM.js b/docs/dist/js/i18n/defaults-kh_KM.js new file mode 100644 index 0000000..5c89f88 --- /dev/null +++ b/docs/dist/js/i18n/defaults-kh_KM.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'មិនមានអ្វីបានជ្រើសរើស', + noneResultsText: 'មិនមានលទ្ធផល {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} ធាតុដែលបានជ្រើស' : '{0} ធាតុដែលបានជ្រើស'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'ឈានដល់ដែនកំណត់ ( {n} ធាតុអតិបរមា)' : 'អតិបរមាឈានដល់ដែនកំណត់ ( {n} ធាតុ)', + (numGroup == 1) ? 'ដែនកំណត់ក្រុមឈានដល់ ( {n} អតិបរមាធាតុ)' : 'អតិបរមាក្រុមឈានដល់ដែនកំណត់ ( {n} ធាតុ)' + ]; + }, + selectAllText: 'ជ្រើស​យក​ទាំងអស់', + deselectAllText: 'មិនជ្រើស​យក​ទាំងអស', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-kh_KM.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-kh_KM.js.map b/docs/dist/js/i18n/defaults-kh_KM.js.map new file mode 100644 index 0000000..54cb9ed --- /dev/null +++ b/docs/dist/js/i18n/defaults-kh_KM.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-kh_KM.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,wBAAwB;AAC5C,EAAE,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG;AACtC,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;AAC9E,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;AAChG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC3G,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,mBAAmB;AACpC,EAAE,eAAe,CAAC,CAAC,qBAAqB;AACxC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-kh_KM.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'មិនមានអ្វីបានជ្រើសរើស',\n noneResultsText: 'មិនមានលទ្ធផល {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} ធាតុដែលបានជ្រើស' : '{0} ធាតុដែលបានជ្រើស';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'ឈានដល់ដែនកំណត់ ( {n} ធាតុអតិបរមា)' : 'អតិបរមាឈានដល់ដែនកំណត់ ( {n} ធាតុ)',\n (numGroup == 1) ? 'ដែនកំណត់ក្រុមឈានដល់ ( {n} អតិបរមាធាតុ)' : 'អតិបរមាក្រុមឈានដល់ដែនកំណត់ ( {n} ធាតុ)'\n ];\n },\n selectAllText: 'ជ្រើស​យក​ទាំងអស់',\n deselectAllText: 'មិនជ្រើស​យក​ទាំងអស',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-kh_KM.min.js b/docs/dist/js/i18n/defaults-kh_KM.min.js new file mode 100644 index 0000000..6d4473c --- /dev/null +++ b/docs/dist/js/i18n/defaults-kh_KM.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u1798\u17b7\u1793\u1798\u17b6\u1793\u17a2\u17d2\u179c\u17b8\u1794\u17b6\u1793\u1787\u17d2\u179a\u17be\u179f\u179a\u17be\u179f",noneResultsText:"\u1798\u17b7\u1793\u1798\u17b6\u1793\u179b\u1791\u17d2\u1792\u1795\u179b {0}",countSelectedText:function(e,t){return"{0} \u1792\u17b6\u178f\u17bb\u178a\u17c2\u179b\u1794\u17b6\u1793\u1787\u17d2\u179a\u17be\u179f"},maxOptionsText:function(e,t){return[1==e?"\u1788\u17b6\u1793\u178a\u179b\u17cb\u178a\u17c2\u1793\u1780\u17c6\u178e\u178f\u17cb ( {n} \u1792\u17b6\u178f\u17bb\u17a2\u178f\u17b7\u1794\u179a\u1798\u17b6)":"\u17a2\u178f\u17b7\u1794\u179a\u1798\u17b6\u1788\u17b6\u1793\u178a\u179b\u17cb\u178a\u17c2\u1793\u1780\u17c6\u178e\u178f\u17cb ( {n} \u1792\u17b6\u178f\u17bb)",1==t?"\u178a\u17c2\u1793\u1780\u17c6\u178e\u178f\u17cb\u1780\u17d2\u179a\u17bb\u1798\u1788\u17b6\u1793\u178a\u179b\u17cb ( {n} \u17a2\u178f\u17b7\u1794\u179a\u1798\u17b6\u1792\u17b6\u178f\u17bb)":"\u17a2\u178f\u17b7\u1794\u179a\u1798\u17b6\u1780\u17d2\u179a\u17bb\u1798\u1788\u17b6\u1793\u178a\u179b\u17cb\u178a\u17c2\u1793\u1780\u17c6\u178e\u178f\u17cb ( {n} \u1792\u17b6\u178f\u17bb)"]},selectAllText:"\u1787\u17d2\u179a\u17be\u179f\u200b\u1799\u1780\u200b\u1791\u17b6\u17c6\u1784\u17a2\u179f\u17cb",deselectAllText:"\u1798\u17b7\u1793\u1787\u17d2\u179a\u17be\u179f\u200b\u1799\u1780\u200b\u1791\u17b6\u17c6\u1784\u17a2\u179f",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ko_KR.js b/docs/dist/js/i18n/defaults-ko_KR.js new file mode 100644 index 0000000..16d48a5 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ko_KR.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: '항목을 선택해주세요', + noneResultsText: '{0} 검색 결과가 없습니다', + countSelectedText: function (numSelected, numTotal) { + return '{0}개를 선택하였습니다'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + '{n}개까지 선택 가능합니다', + '해당 그룹은 {n}개까지 선택 가능합니다' + ]; + }, + selectAllText: '전체선택', + deselectAllText: '전체해제', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-ko_KR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ko_KR.js.map b/docs/dist/js/i18n/defaults-ko_KR.js.map new file mode 100644 index 0000000..085027d --- /dev/null +++ b/docs/dist/js/i18n/defaults-ko_KR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ko_KR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,QAAQ;AACjC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;AACrC,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS;AAC3B,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AACxB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;AAC9B,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,OAAO;AACxB,EAAE,eAAe,CAAC,CAAC,OAAO;AAC1B,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-ko_KR.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: '항목을 선택해주세요',\n noneResultsText: '{0} 검색 결과가 없습니다',\n countSelectedText: function (numSelected, numTotal) {\n return '{0}개를 선택하였습니다';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n '{n}개까지 선택 가능합니다',\n '해당 그룹은 {n}개까지 선택 가능합니다'\n ];\n },\n selectAllText: '전체선택',\n deselectAllText: '전체해제',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ko_KR.min.js b/docs/dist/js/i18n/defaults-ko_KR.min.js new file mode 100644 index 0000000..b778e63 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ko_KR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\ud56d\ubaa9\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694",noneResultsText:"{0} \uac80\uc0c9 \uacb0\uacfc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4",countSelectedText:function(e,t){return"{0}\uac1c\ub97c \uc120\ud0dd\ud558\uc600\uc2b5\ub2c8\ub2e4"},maxOptionsText:function(e,t){return["{n}\uac1c\uae4c\uc9c0 \uc120\ud0dd \uac00\ub2a5\ud569\ub2c8\ub2e4","\ud574\ub2f9 \uadf8\ub8f9\uc740 {n}\uac1c\uae4c\uc9c0 \uc120\ud0dd \uac00\ub2a5\ud569\ub2c8\ub2e4"]},selectAllText:"\uc804\uccb4\uc120\ud0dd",deselectAllText:"\uc804\uccb4\ud574\uc81c",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lt_LT.js b/docs/dist/js/i18n/defaults-lt_LT.js new file mode 100644 index 0000000..a2b6a65 --- /dev/null +++ b/docs/dist/js/i18n/defaults-lt_LT.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Niekas nepasirinkta', + noneResultsText: 'Niekas nesutapo su {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} elementas pasirinktas' : '{0} elementai(-ų) pasirinkta'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)', + (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)' + ]; + }, + selectAllText: 'Pasirinkti visus', + deselectAllText: 'Atmesti visus', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-lt_LT.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lt_LT.js.map b/docs/dist/js/i18n/defaults-lt_LT.js.map new file mode 100644 index 0000000..420a88b --- /dev/null +++ b/docs/dist/js/i18n/defaults-lt_LT.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-lt_LT.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;AAC1C,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC5C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE;AAC7F,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,GAAG;AACpH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;AACnI,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;AACnC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-lt_LT.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Niekas nepasirinkta',\n noneResultsText: 'Niekas nesutapo su {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} elementas pasirinktas' : '{0} elementai(-ų) pasirinkta';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)',\n (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)'\n ];\n },\n selectAllText: 'Pasirinkti visus',\n deselectAllText: 'Atmesti visus',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lt_LT.min.js b/docs/dist/js/i18n/defaults-lt_LT.min.js new file mode 100644 index 0000000..4afdf6a --- /dev/null +++ b/docs/dist/js/i18n/defaults-lt_LT.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Niekas nepasirinkta",noneResultsText:"Niekas nesutapo su {0}",countSelectedText:function(e,t){return 1==e?"{0} elementas pasirinktas":"{0} elementai(-\u0173) pasirinkta"},maxOptionsText:function(e,t){return[1==e?"Pasiekta riba ({n} elementas daugiausiai)":"Riba pasiekta ({n} elementai(-\u0173) daugiausiai)",1==t?"Grup\u0117s riba pasiekta ({n} elementas daugiausiai)":"Grup\u0117s riba pasiekta ({n} elementai(-\u0173) daugiausiai)"]},selectAllText:"Pasirinkti visus",deselectAllText:"Atmesti visus",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lv_LV.js b/docs/dist/js/i18n/defaults-lv_LV.js new file mode 100644 index 0000000..7a8b618 --- /dev/null +++ b/docs/dist/js/i18n/defaults-lv_LV.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nekas nav atzīmēts', + noneResultsText: 'Nav neviena rezultāta {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} ieraksts atzīmēts' : '{0} ieraksti atzīmēts'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Sasniegts limits ({n} ieraksts maksimums)' : 'Sasniegts limits ({n} ieraksti maksimums)', + (numGroup == 1) ? 'Sasniegts grupas limits ({n} ieraksts maksimums)' : 'Sasniegts grupas limits ({n} ieraksti maksimums)' + ]; + }, + selectAllText: 'Atzīmēt visu', + deselectAllText: 'Neatzīmēt nevienu', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-lv_LV.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lv_LV.js.map b/docs/dist/js/i18n/defaults-lv_LV.js.map new file mode 100644 index 0000000..552c325 --- /dev/null +++ b/docs/dist/js/i18n/defaults-lv_LV.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-lv_LV.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;AACzC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC/C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;AAClF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG;AAChH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC/H,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACvC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-lv_LV.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nekas nav atzīmēts',\n noneResultsText: 'Nav neviena rezultāta {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} ieraksts atzīmēts' : '{0} ieraksti atzīmēts';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Sasniegts limits ({n} ieraksts maksimums)' : 'Sasniegts limits ({n} ieraksti maksimums)',\n (numGroup == 1) ? 'Sasniegts grupas limits ({n} ieraksts maksimums)' : 'Sasniegts grupas limits ({n} ieraksti maksimums)'\n ];\n },\n selectAllText: 'Atzīmēt visu',\n deselectAllText: 'Neatzīmēt nevienu',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-lv_LV.min.js b/docs/dist/js/i18n/defaults-lv_LV.min.js new file mode 100644 index 0000000..1e3a960 --- /dev/null +++ b/docs/dist/js/i18n/defaults-lv_LV.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nekas nav atz\u012bm\u0113ts",noneResultsText:"Nav neviena rezult\u0101ta {0}",countSelectedText:function(e,t){return 1==e?"{0} ieraksts atz\u012bm\u0113ts":"{0} ieraksti atz\u012bm\u0113ts"},maxOptionsText:function(e,t){return[1==e?"Sasniegts limits ({n} ieraksts maksimums)":"Sasniegts limits ({n} ieraksti maksimums)",1==t?"Sasniegts grupas limits ({n} ieraksts maksimums)":"Sasniegts grupas limits ({n} ieraksti maksimums)"]},selectAllText:"Atz\u012bm\u0113t visu",deselectAllText:"Neatz\u012bm\u0113t nevienu",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nb_NO.js b/docs/dist/js/i18n/defaults-nb_NO.js new file mode 100644 index 0000000..80bf25c --- /dev/null +++ b/docs/dist/js/i18n/defaults-nb_NO.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Ingen valgt', + noneResultsText: 'Søket gir ingen treff {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} alternativ valgt' : '{0} alternativer valgt'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)', + (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)' + ]; + }, + selectAllText: 'Merk alle', + deselectAllText: 'Fjern alle', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-nb_NO.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nb_NO.js.map b/docs/dist/js/i18n/defaults-nb_NO.js.map new file mode 100644 index 0000000..9501842 --- /dev/null +++ b/docs/dist/js/i18n/defaults-nb_NO.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-nb_NO.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAC/C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;AAClF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;AACpF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACnH,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC7B,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAChC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-nb_NO.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Ingen valgt',\n noneResultsText: 'Søket gir ingen treff {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} alternativ valgt' : '{0} alternativer valgt';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)',\n (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)'\n ];\n },\n selectAllText: 'Merk alle',\n deselectAllText: 'Fjern alle',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nb_NO.min.js b/docs/dist/js/i18n/defaults-nb_NO.min.js new file mode 100644 index 0000000..3c9483f --- /dev/null +++ b/docs/dist/js/i18n/defaults-nb_NO.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Ingen valgt",noneResultsText:"S\xf8ket gir ingen treff {0}",countSelectedText:function(e,t){return 1==e?"{0} alternativ valgt":"{0} alternativer valgt"},maxOptionsText:function(e,t){return["Grense n\xe5dd (maks {n} valg)","Grense for grupper n\xe5dd (maks {n} grupper)"]},selectAllText:"Merk alle",deselectAllText:"Fjern alle",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nl_NL.js b/docs/dist/js/i18n/defaults-nl_NL.js new file mode 100644 index 0000000..f48d397 --- /dev/null +++ b/docs/dist/js/i18n/defaults-nl_NL.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Niets geselecteerd', + noneResultsText: 'Geen resultaten gevonden voor {0}', + countSelectedText: '{0} van {1} geselecteerd', + maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']], + selectAllText: 'Alles selecteren', + deselectAllText: 'Alles deselecteren', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-nl_NL.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nl_NL.js.map b/docs/dist/js/i18n/defaults-nl_NL.js.map new file mode 100644 index 0000000..7428fff --- /dev/null +++ b/docs/dist/js/i18n/defaults-nl_NL.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-nl_NL.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;AACzC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;AACvD,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE;AAChD,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI;AAChH,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;AACxC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-nl_NL.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Niets geselecteerd',\n noneResultsText: 'Geen resultaten gevonden voor {0}',\n countSelectedText: '{0} van {1} geselecteerd',\n maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']],\n selectAllText: 'Alles selecteren',\n deselectAllText: 'Alles deselecteren',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-nl_NL.min.js b/docs/dist/js/i18n/defaults-nl_NL.min.js new file mode 100644 index 0000000..b9143e1 --- /dev/null +++ b/docs/dist/js/i18n/defaults-nl_NL.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Niets geselecteerd",noneResultsText:"Geen resultaten gevonden voor {0}",countSelectedText:"{0} van {1} geselecteerd",maxOptionsText:["Limiet bereikt ({n} {var} max)","Groep limiet bereikt ({n} {var} max)",["items","item"]],selectAllText:"Alles selecteren",deselectAllText:"Alles deselecteren",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pl_PL.js b/docs/dist/js/i18n/defaults-pl_PL.js new file mode 100644 index 0000000..82a5d2f --- /dev/null +++ b/docs/dist/js/i18n/defaults-pl_PL.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nic nie zaznaczono', + noneResultsText: 'Brak wyników wyszukiwania {0}', + countSelectedText: 'Zaznaczono {0} z {1}', + maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']], + selectAllText: 'Zaznacz wszystkie', + deselectAllText: 'Odznacz wszystkie', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-pl_PL.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pl_PL.js.map b/docs/dist/js/i18n/defaults-pl_PL.js.map new file mode 100644 index 0000000..b044682 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pl_PL.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-pl_PL.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE;AACzC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC5C,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI;AAC1H,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;AACrC,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;AACvC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-pl_PL.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nic nie zaznaczono',\n noneResultsText: 'Brak wyników wyszukiwania {0}',\n countSelectedText: 'Zaznaczono {0} z {1}',\n maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']],\n selectAllText: 'Zaznacz wszystkie',\n deselectAllText: 'Odznacz wszystkie',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pl_PL.min.js b/docs/dist/js/i18n/defaults-pl_PL.min.js new file mode 100644 index 0000000..c18cc79 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pl_PL.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nic nie zaznaczono",noneResultsText:"Brak wynik\xf3w wyszukiwania {0}",countSelectedText:"Zaznaczono {0} z {1}",maxOptionsText:["Osi\u0105gni\u0119to limit ({n} {var} max)","Limit grupy osi\u0105gni\u0119ty ({n} {var} max)",["elementy","element"]],selectAllText:"Zaznacz wszystkie",deselectAllText:"Odznacz wszystkie",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_BR.js b/docs/dist/js/i18n/defaults-pt_BR.js new file mode 100644 index 0000000..908ef34 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_BR.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nada selecionado', + noneResultsText: 'Nada encontrado contendo {0}', + countSelectedText: 'Selecionado {0} de {1}', + maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']], + multipleSeparator: ', ', + selectAllText: 'Selecionar Todos', + deselectAllText: 'Desmarcar Todos' +}); + +})); + +//# sourceMappingURL=defaults-pt_BR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_BR.js.map b/docs/dist/js/i18n/defaults-pt_BR.js.map new file mode 100644 index 0000000..f9b655f --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_BR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-pt_BR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;AACvC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AAClD,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI;AACvH,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,GAAG","file":"defaults-pt_BR.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nada selecionado',\n noneResultsText: 'Nada encontrado contendo {0}',\n countSelectedText: 'Selecionado {0} de {1}',\n maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']],\n multipleSeparator: ', ',\n selectAllText: 'Selecionar Todos',\n deselectAllText: 'Desmarcar Todos'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_BR.min.js b/docs/dist/js/i18n/defaults-pt_BR.min.js new file mode 100644 index 0000000..a476fe2 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_BR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var o;try{o=require("bootstrap")}catch(e){o=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nada selecionado",noneResultsText:"Nada encontrado contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite excedido (m\xe1x. {n} {var})","Limite do grupo excedido (m\xe1x. {n} {var})",["itens","item"]],multipleSeparator:", ",selectAllText:"Selecionar Todos",deselectAllText:"Desmarcar Todos"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_PT.js b/docs/dist/js/i18n/defaults-pt_PT.js new file mode 100644 index 0000000..dfc777e --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_PT.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nenhum seleccionado', + noneResultsText: 'Sem resultados contendo {0}', + countSelectedText: 'Selecionado {0} de {1}', + maxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']], + multipleSeparator: ', ', + selectAllText: 'Selecionar Tudo', + deselectAllText: 'Desmarcar Todos' +}); + +})); + +//# sourceMappingURL=defaults-pt_PT.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_PT.js.map b/docs/dist/js/i18n/defaults-pt_PT.js.map new file mode 100644 index 0000000..da3e4a8 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_PT.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-pt_PT.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE;AAC1C,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACjD,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI;AAClI,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,GAAG","file":"defaults-pt_PT.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nenhum seleccionado',\n noneResultsText: 'Sem resultados contendo {0}',\n countSelectedText: 'Selecionado {0} de {1}',\n maxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']],\n multipleSeparator: ', ',\n selectAllText: 'Selecionar Tudo',\n deselectAllText: 'Desmarcar Todos'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-pt_PT.min.js b/docs/dist/js/i18n/defaults-pt_PT.min.js new file mode 100644 index 0000000..a3c7080 --- /dev/null +++ b/docs/dist/js/i18n/defaults-pt_PT.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Nenhum seleccionado",noneResultsText:"Sem resultados contendo {0}",countSelectedText:"Selecionado {0} de {1}",maxOptionsText:["Limite ultrapassado (m\xe1x. {n} {var})","Limite de sele\xe7\xf5es ultrapassado (m\xe1x. {n} {var})",["itens","item"]],multipleSeparator:", ",selectAllText:"Selecionar Tudo",deselectAllText:"Desmarcar Todos"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ro_RO.js b/docs/dist/js/i18n/defaults-ro_RO.js new file mode 100644 index 0000000..141a667 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ro_RO.js @@ -0,0 +1,41 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + doneButtonText: 'Închide', + noneSelectedText: 'Nu a fost selectat nimic', + noneResultsText: 'Nu există niciun rezultat {0}', + countSelectedText: '{0} din {1} selectat(e)', + maxOptionsText: ['Limita a fost atinsă ({n} {var} max)', 'Limita de grup a fost atinsă ({n} {var} max)', ['iteme', 'item']], + selectAllText: 'Selectează toate', + deselectAllText: 'Deselectează toate', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-ro_RO.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ro_RO.js.map b/docs/dist/js/i18n/defaults-ro_RO.js.map new file mode 100644 index 0000000..6a1cb1a --- /dev/null +++ b/docs/dist/js/i18n/defaults-ro_RO.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ro_RO.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE;AAC5B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/C,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAC/C,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI;AAC9H,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;AACxC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-ro_RO.js","sourcesContent":["Selectpicker.setDefaults({\n doneButtonText: 'Închide',\n noneSelectedText: 'Nu a fost selectat nimic',\n noneResultsText: 'Nu există niciun rezultat {0}',\n countSelectedText: '{0} din {1} selectat(e)',\n maxOptionsText: ['Limita a fost atinsă ({n} {var} max)', 'Limita de grup a fost atinsă ({n} {var} max)', ['iteme', 'item']],\n selectAllText: 'Selectează toate',\n deselectAllText: 'Deselectează toate',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ro_RO.min.js b/docs/dist/js/i18n/defaults-ro_RO.min.js new file mode 100644 index 0000000..b9459f2 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ro_RO.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({doneButtonText:"\xcenchide",noneSelectedText:"Nu a fost selectat nimic",noneResultsText:"Nu exist\u0103 niciun rezultat {0}",countSelectedText:"{0} din {1} selectat(e)",maxOptionsText:["Limita a fost atins\u0103 ({n} {var} max)","Limita de grup a fost atins\u0103 ({n} {var} max)",["iteme","item"]],selectAllText:"Selecteaz\u0103 toate",deselectAllText:"Deselecteaz\u0103 toate",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ru_RU.js b/docs/dist/js/i18n/defaults-ru_RU.js new file mode 100644 index 0000000..b2ba8b8 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ru_RU.js @@ -0,0 +1,41 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Ничего не выбрано', + noneResultsText: 'Совпадений не найдено {0}', + countSelectedText: 'Выбрано {0} из {1}', + maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['шт.', 'шт.']], + doneButtonText: 'Закрыть', + selectAllText: 'Выбрать все', + deselectAllText: 'Отменить все', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-ru_RU.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ru_RU.js.map b/docs/dist/js/i18n/defaults-ru_RU.js.map new file mode 100644 index 0000000..d44f004 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ru_RU.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ru_RU.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS;AACxC,EAAE,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AAC/C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC1C,EAAE,cAAc,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ;AAC9H,EAAE,cAAc,CAAC,CAAC,UAAU;AAC5B,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK;AAC/B,EAAE,eAAe,CAAC,CAAC,SAAS,CAAC,KAAK;AAClC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-ru_RU.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Ничего не выбрано',\n noneResultsText: 'Совпадений не найдено {0}',\n countSelectedText: 'Выбрано {0} из {1}',\n maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['шт.', 'шт.']],\n doneButtonText: 'Закрыть',\n selectAllText: 'Выбрать все',\n deselectAllText: 'Отменить все',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ru_RU.min.js b/docs/dist/js/i18n/defaults-ru_RU.min.js new file mode 100644 index 0000000..4154f1e --- /dev/null +++ b/docs/dist/js/i18n/defaults-ru_RU.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e",noneResultsText:"\u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e {0}",countSelectedText:"\u0412\u044b\u0431\u0440\u0430\u043d\u043e {0} \u0438\u0437 {1}",maxOptionsText:["\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043f\u0440\u0435\u0434\u0435\u043b ({n} {var} \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)","\u0414\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043f\u0440\u0435\u0434\u0435\u043b \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 ({n} {var} \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)",["\u0448\u0442.","\u0448\u0442."]],doneButtonText:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c",selectAllText:"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435",deselectAllText:"\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sk_SK.js b/docs/dist/js/i18n/defaults-sk_SK.js new file mode 100644 index 0000000..4ac7d52 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sk_SK.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Vyberte zo zoznamu', + noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky', + countSelectedText: 'Vybrané {0} z {1}', + maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']], + selectAllText: 'Vybrať všetky', + deselectAllText: 'Zrušiť výber', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-sk_SK.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sk_SK.js.map b/docs/dist/js/i18n/defaults-sk_SK.js.map new file mode 100644 index 0000000..24c944d --- /dev/null +++ b/docs/dist/js/i18n/defaults-sk_SK.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-sk_SK.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;AACzC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;AAClE,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACzC,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI;AAC5H,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACjC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-sk_SK.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Vyberte zo zoznamu',\n noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky',\n countSelectedText: 'Vybrané {0} z {1}',\n maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']],\n selectAllText: 'Vybrať všetky',\n deselectAllText: 'Zrušiť výber',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sk_SK.min.js b/docs/dist/js/i18n/defaults-sk_SK.min.js new file mode 100644 index 0000000..bf13c76 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sk_SK.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Vyberte zo zoznamu",noneResultsText:"Pre v\xfdraz {0} neboli n\xe1jden\xe9 \u017eiadne v\xfdsledky",countSelectedText:"Vybran\xe9 {0} z {1}",maxOptionsText:["Limit prekro\u010den\xfd ({n} {var} max)","Limit skupiny prekro\u010den\xfd ({n} {var} max)",["polo\u017eiek","polo\u017eka"]],selectAllText:"Vybra\u0165 v\u0161etky",deselectAllText:"Zru\u0161i\u0165 v\xfdber",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sl_SI.js b/docs/dist/js/i18n/defaults-sl_SI.js new file mode 100644 index 0000000..c53c672 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sl_SI.js @@ -0,0 +1,45 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Nič izbranega', + noneResultsText: 'Ni zadetkov za {0}', + countSelectedText: '{0} od {1} izbranih', + maxOptionsText: function (numAll, numGroup) { + return [ + 'Omejitev dosežena (max. izbranih: {n})', + 'Omejitev skupine dosežena (max. izbranih: {n})' + ]; + }, + selectAllText: 'Izberi vse', + deselectAllText: 'Počisti izbor', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-sl_SI.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sl_SI.js.map b/docs/dist/js/i18n/defaults-sl_SI.js.map new file mode 100644 index 0000000..78621b6 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sl_SI.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-sl_SI.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;AACpC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AACxC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC3C,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;AAC/C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;AACtD,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;AAC9B,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;AACnC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-sl_SI.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Nič izbranega',\n noneResultsText: 'Ni zadetkov za {0}',\n countSelectedText: '{0} od {1} izbranih',\n maxOptionsText: function (numAll, numGroup) {\n return [\n 'Omejitev dosežena (max. izbranih: {n})',\n 'Omejitev skupine dosežena (max. izbranih: {n})'\n ];\n },\n selectAllText: 'Izberi vse',\n deselectAllText: 'Počisti izbor',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sl_SI.min.js b/docs/dist/js/i18n/defaults-sl_SI.min.js new file mode 100644 index 0000000..4ad4649 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sl_SI.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Ni\u010d izbranega",noneResultsText:"Ni zadetkov za {0}",countSelectedText:"{0} od {1} izbranih",maxOptionsText:function(e,t){return["Omejitev dose\u017eena (max. izbranih: {n})","Omejitev skupine dose\u017eena (max. izbranih: {n})"]},selectAllText:"Izberi vse",deselectAllText:"Po\u010disti izbor",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sr_SP.js b/docs/dist/js/i18n/defaults-sr_SP.js new file mode 100644 index 0000000..2013bc7 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sr_SP.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Izaberite', + noneResultsText: 'Nema rezultata za {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} izabrana' : '{0} izabrane'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit je dostignut ({n} stvar maximalno)' : 'Limit je dostignut ({n} stavke maksimalno)', + (numGroup == 1) ? 'Grupni limit je dostignut ({n} stvar maksimalno)' : 'Grupni limit je dostignut ({n} stavke maksimalno)' + ]; + }, + selectAllText: 'Izaberi sve', + deselectAllText: 'Obrisi sve', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-sr_SP.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sr_SP.js.map b/docs/dist/js/i18n/defaults-sr_SP.js.map new file mode 100644 index 0000000..fcf5037 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sr_SP.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-sr_SP.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE;AAChC,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC3C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;AAChE,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG;AAChH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;AAChI,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;AAC/B,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;AAChC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-sr_SP.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Izaberite',\n noneResultsText: 'Nema rezultata za {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} izabrana' : '{0} izabrane';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit je dostignut ({n} stvar maximalno)' : 'Limit je dostignut ({n} stavke maksimalno)',\n (numGroup == 1) ? 'Grupni limit je dostignut ({n} stvar maksimalno)' : 'Grupni limit je dostignut ({n} stavke maksimalno)'\n ];\n },\n selectAllText: 'Izaberi sve',\n deselectAllText: 'Obrisi sve',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sr_SP.min.js b/docs/dist/js/i18n/defaults-sr_SP.min.js new file mode 100644 index 0000000..4e8ba4c --- /dev/null +++ b/docs/dist/js/i18n/defaults-sr_SP.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Izaberite",noneResultsText:"Nema rezultata za {0}",countSelectedText:function(e,t){return 1==e?"{0} izabrana":"{0} izabrane"},maxOptionsText:function(e,t){return[1==e?"Limit je dostignut ({n} stvar maximalno)":"Limit je dostignut ({n} stavke maksimalno)",1==t?"Grupni limit je dostignut ({n} stvar maksimalno)":"Grupni limit je dostignut ({n} stavke maksimalno)"]},selectAllText:"Izaberi sve",deselectAllText:"Obrisi sve",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sv_SE.js b/docs/dist/js/i18n/defaults-sv_SE.js new file mode 100644 index 0000000..8b90c1e --- /dev/null +++ b/docs/dist/js/i18n/defaults-sv_SE.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Inget valt', + noneResultsText: 'Inget sökresultat matchar {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected === 1) ? '{0} alternativ valt' : '{0} alternativ valda'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + 'Gräns uppnåd (max {n} alternativ)', + 'Gräns uppnåd (max {n} gruppalternativ)' + ]; + }, + selectAllText: 'Markera alla', + deselectAllText: 'Avmarkera alla', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-sv_SE.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sv_SE.js.map b/docs/dist/js/i18n/defaults-sv_SE.js.map new file mode 100644 index 0000000..8349de3 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sv_SE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-sv_SE.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AACjC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACnD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;AAChF,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG;AAC1C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE;AAC9C,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;AAChC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;AACpC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-sv_SE.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Inget valt',\n noneResultsText: 'Inget sökresultat matchar {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected === 1) ? '{0} alternativ valt' : '{0} alternativ valda';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n 'Gräns uppnåd (max {n} alternativ)',\n 'Gräns uppnåd (max {n} gruppalternativ)'\n ];\n },\n selectAllText: 'Markera alla',\n deselectAllText: 'Avmarkera alla',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-sv_SE.min.js b/docs/dist/js/i18n/defaults-sv_SE.min.js new file mode 100644 index 0000000..06140e3 --- /dev/null +++ b/docs/dist/js/i18n/defaults-sv_SE.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Inget valt",noneResultsText:"Inget s\xf6kresultat matchar {0}",countSelectedText:function(e,t){return 1===e?"{0} alternativ valt":"{0} alternativ valda"},maxOptionsText:function(e,t){return["Gr\xe4ns uppn\xe5d (max {n} alternativ)","Gr\xe4ns uppn\xe5d (max {n} gruppalternativ)"]},selectAllText:"Markera alla",deselectAllText:"Avmarkera alla",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-th_TH.js b/docs/dist/js/i18n/defaults-th_TH.js new file mode 100644 index 0000000..b2356e9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-th_TH.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'ไม่ได้เลือกอะไรเลย', + noneResultsText: 'ไม่มีผลลัพธ์ที่ตรงกัน {0}', + countSelectedText: '{0} รายการที่เลือก', + maxOptionsText: ['เกินจำนวนที่กำหนด (สูงสุด {n} รายการ)', 'เกินจำนวนที่กำหนด (สูงสุด {n} กลุ่ม)'], + selectAllText: 'เลือกทั้งหมด', + deselectAllText: 'ไม่เลือกทั้งหมด', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-th_TH.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-th_TH.js.map b/docs/dist/js/i18n/defaults-th_TH.js.map new file mode 100644 index 0000000..d6a0b2c --- /dev/null +++ b/docs/dist/js/i18n/defaults-th_TH.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-th_TH.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,qBAAqB;AACzC,EAAE,eAAe,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG;AAC/C,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;AAC1C,EAAE,cAAc,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AACpG,EAAE,aAAa,CAAC,CAAC,eAAe;AAChC,EAAE,eAAe,CAAC,CAAC,kBAAkB;AACrC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-th_TH.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'ไม่ได้เลือกอะไรเลย',\n noneResultsText: 'ไม่มีผลลัพธ์ที่ตรงกัน {0}',\n countSelectedText: '{0} รายการที่เลือก',\n maxOptionsText: ['เกินจำนวนที่กำหนด (สูงสุด {n} รายการ)', 'เกินจำนวนที่กำหนด (สูงสุด {n} กลุ่ม)'],\n selectAllText: 'เลือกทั้งหมด',\n deselectAllText: 'ไม่เลือกทั้งหมด',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-th_TH.min.js b/docs/dist/js/i18n/defaults-th_TH.min.js new file mode 100644 index 0000000..8f71d7d --- /dev/null +++ b/docs/dist/js/i18n/defaults-th_TH.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2d\u0e30\u0e44\u0e23\u0e40\u0e25\u0e22",noneResultsText:"\u0e44\u0e21\u0e48\u0e21\u0e35\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19 {0}",countSelectedText:"{0} \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01",maxOptionsText:["\u0e40\u0e01\u0e34\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14 (\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {n} \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23)","\u0e40\u0e01\u0e34\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14 (\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {n} \u0e01\u0e25\u0e38\u0e48\u0e21)"],selectAllText:"\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",deselectAllText:"\u0e44\u0e21\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tk_TK.js b/docs/dist/js/i18n/defaults-tk_TK.js new file mode 100644 index 0000000..55ad9e9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-tk_TK.js @@ -0,0 +1,51 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Hiç biri saýlanmady', + noneResultsText: 'Gabat gelýän tapylmady {0}', + countSelectedText: function (numSelected, numTotal) { + return numSelected == 1 ? '{0} element saýlandy' : '{0} element saýlandy'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + numAll == 1 + ? 'Çäkden geçdi (maksimum {n} sany element)' + : 'Çäkden geçdi (maksimum {n} sany element)', + numGroup == 1 + ? 'Topar çäkleri geçdi (maksimum {n} sany element)' + : 'Topar çäkleri geçdi (maksimum {n} sany element)' + ]; + }, + selectAllText: 'Hemmesini saýla', + deselectAllText: 'Hemmesini aýyr', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-tk_TK.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tk_TK.js.map b/docs/dist/js/i18n/defaults-tk_TK.js.map new file mode 100644 index 0000000..0b5d013 --- /dev/null +++ b/docs/dist/js/i18n/defaults-tk_TK.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-tk_TK.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;AAC1C,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;AAChD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;AAC9E,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;AACjB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AACpD,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG;AACrD,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE;AACnC,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;AACpC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-tk_TK.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Hiç biri saýlanmady',\n noneResultsText: 'Gabat gelýän tapylmady {0}',\n countSelectedText: function (numSelected, numTotal) {\n return numSelected == 1 ? '{0} element saýlandy' : '{0} element saýlandy';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n numAll == 1\n ? 'Çäkden geçdi (maksimum {n} sany element)'\n : 'Çäkden geçdi (maksimum {n} sany element)',\n numGroup == 1\n ? 'Topar çäkleri geçdi (maksimum {n} sany element)'\n : 'Topar çäkleri geçdi (maksimum {n} sany element)'\n ];\n },\n selectAllText: 'Hemmesini saýla',\n deselectAllText: 'Hemmesini aýyr',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tk_TK.min.js b/docs/dist/js/i18n/defaults-tk_TK.min.js new file mode 100644 index 0000000..e8ac527 --- /dev/null +++ b/docs/dist/js/i18n/defaults-tk_TK.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Hi\xe7 biri sa\xfdlanmady",noneResultsText:"Gabat gel\xfd\xe4n tapylmady {0}",countSelectedText:function(e,t){return"{0} element sa\xfdlandy"},maxOptionsText:function(e,t){return["\xc7\xe4kden ge\xe7di (maksimum {n} sany element)","Topar \xe7\xe4kleri ge\xe7di (maksimum {n} sany element)"]},selectAllText:"Hemmesini sa\xfdla",deselectAllText:"Hemmesini a\xfdyr",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tr_TR.js b/docs/dist/js/i18n/defaults-tr_TR.js new file mode 100644 index 0000000..da1c21b --- /dev/null +++ b/docs/dist/js/i18n/defaults-tr_TR.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Hiçbiri seçilmedi', + noneResultsText: 'Hiçbir sonuç bulunamadı {0}', + countSelectedText: function (numSelected, numTotal) { + return (numSelected == 1) ? '{0} öğe seçildi' : '{0} öğe seçildi'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)', + (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' + ]; + }, + selectAllText: 'Tümünü Seç', + deselectAllText: 'Tüm Seçimleri Kaldır', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-tr_TR.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tr_TR.js.map b/docs/dist/js/i18n/defaults-tr_TR.js.map new file mode 100644 index 0000000..44e1904 --- /dev/null +++ b/docs/dist/js/i18n/defaults-tr_TR.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-tr_TR.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AACxC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;AACjD,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;AACtE,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG;AAC3G,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvH,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;AAC9B,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AAC1C,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-tr_TR.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Hiçbiri seçilmedi',\n noneResultsText: 'Hiçbir sonuç bulunamadı {0}',\n countSelectedText: function (numSelected, numTotal) {\n return (numSelected == 1) ? '{0} öğe seçildi' : '{0} öğe seçildi';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)',\n (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)'\n ];\n },\n selectAllText: 'Tümünü Seç',\n deselectAllText: 'Tüm Seçimleri Kaldır',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-tr_TR.min.js b/docs/dist/js/i18n/defaults-tr_TR.min.js new file mode 100644 index 0000000..1d236af --- /dev/null +++ b/docs/dist/js/i18n/defaults-tr_TR.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Hi\xe7biri se\xe7ilmedi",noneResultsText:"Hi\xe7bir sonu\xe7 bulunamad\u0131 {0}",countSelectedText:function(e,t){return"{0} \xf6\u011fe se\xe7ildi"},maxOptionsText:function(e,t){return[1==e?"Limit a\u015f\u0131ld\u0131 (maksimum {n} say\u0131da \xf6\u011fe )":"Limit a\u015f\u0131ld\u0131 (maksimum {n} say\u0131da \xf6\u011fe)","Grup limiti a\u015f\u0131ld\u0131 (maksimum {n} say\u0131da \xf6\u011fe)"]},selectAllText:"T\xfcm\xfcn\xfc Se\xe7",deselectAllText:"T\xfcm Se\xe7imleri Kald\u0131r",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ua_UA.js b/docs/dist/js/i18n/defaults-ua_UA.js new file mode 100644 index 0000000..e7798e9 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ua_UA.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Нічого не вибрано', + noneResultsText: 'Збігів не знайдено {0}', + countSelectedText: 'Вибрано {0} із {1}', + maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']], + multipleSeparator: ', ', + selectAllText: 'Вибрати все', + deselectAllText: 'Скасувати вибір усі' +}); + +})); + +//# sourceMappingURL=defaults-ua_UA.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ua_UA.js.map b/docs/dist/js/i18n/defaults-ua_UA.js.map new file mode 100644 index 0000000..def3200 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ua_UA.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-ua_UA.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS;AACxC,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;AAC5C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;AAC1C,EAAE,cAAc,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI;AAC5H,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK;AAC/B,EAAE,eAAe,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;AACxC,GAAG","file":"defaults-ua_UA.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Нічого не вибрано',\n noneResultsText: 'Збігів не знайдено {0}',\n countSelectedText: 'Вибрано {0} із {1}',\n maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],\n multipleSeparator: ', ',\n selectAllText: 'Вибрати все',\n deselectAllText: 'Скасувати вибір усі'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-ua_UA.min.js b/docs/dist/js/i18n/defaults-ua_UA.min.js new file mode 100644 index 0000000..aae9d70 --- /dev/null +++ b/docs/dist/js/i18n/defaults-ua_UA.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u041d\u0456\u0447\u043e\u0433\u043e \u043d\u0435 \u0432\u0438\u0431\u0440\u0430\u043d\u043e",noneResultsText:"\u0417\u0431\u0456\u0433\u0456\u0432 \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e {0}",countSelectedText:"\u0412\u0438\u0431\u0440\u0430\u043d\u043e {0} \u0456\u0437 {1}",maxOptionsText:["\u0414\u043e\u0441\u044f\u0433\u043d\u0443\u0442\u0430 \u043c\u0435\u0436\u0430 ({n} {var} \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)","\u0414\u043e\u0441\u044f\u0433\u043d\u0443\u0442\u0430 \u043c\u0435\u0436\u0430 \u0432 \u0433\u0440\u0443\u043f\u0456 ({n} {var} \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c)",["items","item"]],multipleSeparator:", ",selectAllText:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0432\u0441\u0435",deselectAllText:"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 \u0443\u0441\u0456"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-vi_VN.js b/docs/dist/js/i18n/defaults-vi_VN.js new file mode 100644 index 0000000..f547c72 --- /dev/null +++ b/docs/dist/js/i18n/defaults-vi_VN.js @@ -0,0 +1,47 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: 'Chưa chọn', + noneResultsText: 'Không có kết quả cho {0}', + countSelectedText: function (numSelected, numTotal) { + return '{0} mục đã chọn'; + }, + maxOptionsText: function (numAll, numGroup) { + return [ + 'Không thể chọn (giới hạn {n} mục)', + 'Không thể chọn (giới hạn {n} mục)' + ]; + }, + selectAllText: 'Chọn tất cả', + deselectAllText: 'Bỏ chọn', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-vi_VN.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-vi_VN.js.map b/docs/dist/js/i18n/defaults-vi_VN.js.map new file mode 100644 index 0000000..eb080d2 --- /dev/null +++ b/docs/dist/js/i18n/defaults-vi_VN.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-vi_VN.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;AAC9C,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7B,EAAE,EAAE;AACJ,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,CAAC;AACZ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC1C,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzC,IAAI,EAAE;AACN,EAAE,EAAE;AACJ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC/B,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7B,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-vi_VN.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: 'Chưa chọn',\n noneResultsText: 'Không có kết quả cho {0}',\n countSelectedText: function (numSelected, numTotal) {\n return '{0} mục đã chọn';\n },\n maxOptionsText: function (numAll, numGroup) {\n return [\n 'Không thể chọn (giới hạn {n} mục)',\n 'Không thể chọn (giới hạn {n} mục)'\n ];\n },\n selectAllText: 'Chọn tất cả',\n deselectAllText: 'Bỏ chọn',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-vi_VN.min.js b/docs/dist/js/i18n/defaults-vi_VN.min.js new file mode 100644 index 0000000..4b5a1f7 --- /dev/null +++ b/docs/dist/js/i18n/defaults-vi_VN.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"Ch\u01b0a ch\u1ecdn",noneResultsText:"Kh\xf4ng c\xf3 k\u1ebft qu\u1ea3 cho {0}",countSelectedText:function(e,t){return"{0} m\u1ee5c \u0111\xe3 ch\u1ecdn"},maxOptionsText:function(e,t){return["Kh\xf4ng th\u1ec3 ch\u1ecdn (gi\u1edbi h\u1ea1n {n} m\u1ee5c)","Kh\xf4ng th\u1ec3 ch\u1ecdn (gi\u1edbi h\u1ea1n {n} m\u1ee5c)"]},selectAllText:"Ch\u1ecdn t\u1ea5t c\u1ea3",deselectAllText:"B\u1ecf ch\u1ecdn",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_CN.js b/docs/dist/js/i18n/defaults-zh_CN.js new file mode 100644 index 0000000..320bdc7 --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_CN.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: '没有选中任何项', + noneResultsText: '没有找到匹配项', + countSelectedText: '选中{1}中的{0}项', + maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'], + multipleSeparator: ', ', + selectAllText: '全选', + deselectAllText: '取消全选' +}); + +})); + +//# sourceMappingURL=defaults-zh_CN.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_CN.js.map b/docs/dist/js/i18n/defaults-zh_CN.js.map new file mode 100644 index 0000000..beb3881 --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_CN.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-zh_CN.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,UAAU;AAC9B,EAAE,eAAe,CAAC,CAAC,UAAU;AAC7B,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACnC,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;AAC3D,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1B,EAAE,aAAa,CAAC,CAAC,KAAK;AACtB,EAAE,eAAe,CAAC,CAAC,MAAM;AACzB,GAAG","file":"defaults-zh_CN.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: '没有选中任何项',\n noneResultsText: '没有找到匹配项',\n countSelectedText: '选中{1}中的{0}项',\n maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],\n multipleSeparator: ', ',\n selectAllText: '全选',\n deselectAllText: '取消全选'\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_CN.min.js b/docs/dist/js/i18n/defaults-zh_CN.min.js new file mode 100644 index 0000000..525c69a --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_CN.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u6ca1\u6709\u9009\u4e2d\u4efb\u4f55\u9879",noneResultsText:"\u6ca1\u6709\u627e\u5230\u5339\u914d\u9879",countSelectedText:"\u9009\u4e2d{1}\u4e2d\u7684{0}\u9879",maxOptionsText:["\u8d85\u51fa\u9650\u5236 (\u6700\u591a\u9009\u62e9{n}\u9879)","\u7ec4\u9009\u62e9\u8d85\u51fa\u9650\u5236(\u6700\u591a\u9009\u62e9{n}\u7ec4)"],multipleSeparator:", ",selectAllText:"\u5168\u9009",deselectAllText:"\u53d6\u6d88\u5168\u9009"})}); \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_TW.js b/docs/dist/js/i18n/defaults-zh_TW.js new file mode 100644 index 0000000..75f6b3e --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_TW.js @@ -0,0 +1,40 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ + +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['bootstrap'], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments (Node, bundlers). + var bootstrap; + try { + bootstrap = require('bootstrap'); + } catch (e) { + bootstrap = undefined; + } + module.exports = factory(bootstrap); + } else { + // Browser globals. + factory(typeof window !== 'undefined' ? window.bootstrap : undefined); + } +}(function (bootstrap) { +Selectpicker.setDefaults({ + noneSelectedText: '沒有選取任何項目', + noneResultsText: '沒有找到符合的結果', + countSelectedText: '已經選取{0}個項目', + maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'], + selectAllText: '選取全部', + deselectAllText: '全部取消', + multipleSeparator: ', ' +}); + +})); + +//# sourceMappingURL=defaults-zh_TW.js.map \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_TW.js.map b/docs/dist/js/i18n/defaults-zh_TW.js.map new file mode 100644 index 0000000..22b92ec --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_TW.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../js/i18n/defaults-zh_TW.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,CAAC,WAAW,EAAE;AAC1B,EAAE,gBAAgB,CAAC,CAAC,WAAW;AAC/B,EAAE,eAAe,CAAC,CAAC,YAAY;AAC/B,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM;AAClC,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AACxD,EAAE,aAAa,CAAC,CAAC,OAAO;AACxB,EAAE,eAAe,CAAC,CAAC,OAAO;AAC1B,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG","file":"defaults-zh_TW.js","sourcesContent":["Selectpicker.setDefaults({\n noneSelectedText: '沒有選取任何項目',\n noneResultsText: '沒有找到符合的結果',\n countSelectedText: '已經選取{0}個項目',\n maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],\n selectAllText: '選取全部',\n deselectAllText: '全部取消',\n multipleSeparator: ', '\n});\n"]} \ No newline at end of file diff --git a/docs/dist/js/i18n/defaults-zh_TW.min.js b/docs/dist/js/i18n/defaults-zh_TW.min.js new file mode 100644 index 0000000..9daef98 --- /dev/null +++ b/docs/dist/js/i18n/defaults-zh_TW.min.js @@ -0,0 +1,9 @@ +/*! + * Bootstrap-select v1.1.1 (https://github.com/CrestApps/crestapps-bootstrap-select) + * + * CrestApps fork (vanilla JavaScript, Bootstrap 5+) of snapappointments/bootstrap-select + * Copyright 2012-2018 SnapAppointments, LLC (original work) + * Fork modifications Copyright 2024-2026 CrestApps + * Licensed under MIT (https://github.com/CrestApps/crestapps-bootstrap-select/blob/main/LICENSE) + */ +(e=>{if("function"==typeof define&&define.amd)define(["bootstrap"],e);else if("object"==typeof module&&module.exports){var t;try{t=require("bootstrap")}catch(e){t=void 0}module.exports=e()}else e()})(function(e){Selectpicker.setDefaults({noneSelectedText:"\u6c92\u6709\u9078\u53d6\u4efb\u4f55\u9805\u76ee",noneResultsText:"\u6c92\u6709\u627e\u5230\u7b26\u5408\u7684\u7d50\u679c",countSelectedText:"\u5df2\u7d93\u9078\u53d6{0}\u500b\u9805\u76ee",maxOptionsText:["\u8d85\u904e\u9650\u5236 (\u6700\u591a\u9078\u64c7{n}\u9805)","\u8d85\u904e\u9650\u5236(\u6700\u591a\u9078\u64c7{n}\u7d44)"],selectAllText:"\u9078\u53d6\u5168\u90e8",deselectAllText:"\u5168\u90e8\u53d6\u6d88",multipleSeparator:", "})}); \ No newline at end of file diff --git a/docs/docs/1.0/examples/index.html b/docs/docs/1.0/examples/index.html index b8a4d57..44a0a81 100644 --- a/docs/docs/1.0/examples/index.html +++ b/docs/docs/1.0/examples/index.html @@ -9,8 +9,8 @@ - - + + @@ -41,7 +41,7 @@

    Key wordsLimit the number of selections

    Limit the number of options that can be selected via the data-max-options attribute. It also works for option groups. Customize the message displayed when the limit is reached with maxOptionsText.

    -
    <select class="selectpicker" multiple data-max-options="2">
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
    </select>

    <select class="selectpicker" multiple>
    <optgroup label="Condiments" data-max-options="2">
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
    </optgroup>
    <optgroup label="Breads" data-max-options="2">
    <option>Plain</option>
    <option>Steamed</option>
    <option>Toasted</option>
    </optgroup>
    </select>
    +
    <div class="row g-3">
    <div class="col-md-6">
    <label for="max-options-example">Overall limit</label>
    <select id="max-options-example" class="selectpicker" multiple data-max-options="2" data-width="100%">
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
    </select>
    </div>

    <div class="col-md-6">
    <label for="max-options-groups-example">Per-group limit</label>
    <select id="max-options-groups-example" class="selectpicker" multiple data-width="100%">
    <optgroup label="Condiments" data-max-options="2">
    <option>Mustard</option>
    <option>Ketchup</option>
    <option>Relish</option>
    </optgroup>
    <optgroup label="Breads" data-max-options="2">
    <option>Plain</option>
    <option>Steamed</option>
    <option>Toasted</option>
    </optgroup>
    </select>
    </div>
    </div>

    Custom button text


    Placeholder

    diff --git a/docs/docs/1.0/index.html b/docs/docs/1.0/index.html index 1307818..945d7bb 100644 --- a/docs/docs/1.0/index.html +++ b/docs/docs/1.0/index.html @@ -9,8 +9,8 @@ - - + + diff --git a/docs/docs/1.0/methods/index.html b/docs/docs/1.0/methods/index.html index e50a880..9271908 100644 --- a/docs/docs/1.0/methods/index.html +++ b/docs/docs/1.0/methods/index.html @@ -9,8 +9,8 @@ - - + + diff --git a/docs/docs/1.0/options/index.html b/docs/docs/1.0/options/index.html index 5f96960..b6ca11f 100644 --- a/docs/docs/1.0/options/index.html +++ b/docs/docs/1.0/options/index.html @@ -9,8 +9,8 @@ - - + + diff --git a/docs/docs/1.0/search-index.json b/docs/docs/1.0/search-index.json index d563da1..89744c2 100644 --- a/docs/docs/1.0/search-index.json +++ b/docs/docs/1.0/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":91,"t":"Getting Started","u":"/docs/1.0/","b":["Docs"]},{"i":102,"t":"Basic examples","u":"/docs/1.0/examples/","b":["Docs"]},{"i":168,"t":"Methods","u":"/docs/1.0/methods/","b":["Docs"]},{"i":172,"t":"Core options","u":"/docs/1.0/options/","b":["Docs"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/91",[0,1.137,1,1.137]],["t/102",[2,1.137,3,1.137]],["t/168",[4,1.46]],["t/172",[5,1.137,6,1.137]]],"invertedIndex":[["basic",{"_index":2,"t":{"102":{"position":[[0,5]]}}}],["core",{"_index":5,"t":{"172":{"position":[[0,4]]}}}],["exampl",{"_index":3,"t":{"102":{"position":[[6,8]]}}}],["get",{"_index":0,"t":{"91":{"position":[[0,7]]}}}],["method",{"_index":4,"t":{"168":{"position":[[0,7]]}}}],["option",{"_index":6,"t":{"172":{"position":[[5,7]]}}}],["start",{"_index":1,"t":{"91":{"position":[[8,7]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":93,"t":"Quick start","u":"/docs/1.0/","h":"#quick-start","p":91},{"i":95,"t":"Using the CDN build","u":"/docs/1.0/","h":"#using-the-cdn-build","p":91},{"i":97,"t":"Usage","u":"/docs/1.0/","h":"","p":91},{"i":98,"t":"Via selectpicker class","u":"/docs/1.0/","h":"#via-selectpicker-class","p":91},{"i":100,"t":"Via JavaScript","u":"/docs/1.0/","h":"#via-javascript","p":91},{"i":104,"t":"Standalone basic","u":"/docs/1.0/examples/","h":"","p":102},{"i":106,"t":"Live search","u":"/docs/1.0/examples/","h":"","p":102},{"i":108,"t":"Multiple select","u":"/docs/1.0/examples/","h":"","p":102},{"i":110,"t":"Standard select boxes","u":"/docs/1.0/examples/","h":"#standard-select-boxes","p":102},{"i":112,"t":"Select boxes with optgroups","u":"/docs/1.0/examples/","h":"#select-boxes-with-optgroups","p":102},{"i":114,"t":"Multiple select boxes","u":"/docs/1.0/examples/","h":"#multiple-select-boxes","p":102},{"i":116,"t":"Live search","u":"/docs/1.0/examples/","h":"","p":102},{"i":117,"t":"Live search","u":"/docs/1.0/examples/","h":"#live-search-1","p":102},{"i":119,"t":"Key words","u":"/docs/1.0/examples/","h":"#key-words","p":102},{"i":121,"t":"Limit the number of selections","u":"/docs/1.0/examples/","h":"","p":102},{"i":123,"t":"Custom button text","u":"/docs/1.0/examples/","h":"","p":102},{"i":124,"t":"Placeholder","u":"/docs/1.0/examples/","h":"#placeholder","p":102},{"i":126,"t":"Selected text","u":"/docs/1.0/examples/","h":"#selected-text","p":102},{"i":128,"t":"Selected text format","u":"/docs/1.0/examples/","h":"#selected-text-format","p":102},{"i":130,"t":"Styling","u":"/docs/1.0/examples/","h":"","p":102},{"i":131,"t":"Button classes","u":"/docs/1.0/examples/","h":"#button-classes","p":102},{"i":133,"t":"Checkmark on selected option","u":"/docs/1.0/examples/","h":"#checkmark-on-selected-option","p":102},{"i":135,"t":"Menu arrow","u":"/docs/1.0/examples/","h":"#menu-arrow","p":102},{"i":137,"t":"Style individual options","u":"/docs/1.0/examples/","h":"#style-individual-options","p":102},{"i":139,"t":"Width","u":"/docs/1.0/examples/","h":"#width","p":102},{"i":141,"t":"Customize options","u":"/docs/1.0/examples/","h":"","p":102},{"i":142,"t":"Icons","u":"/docs/1.0/examples/","h":"#icons","p":102},{"i":144,"t":"Custom content","u":"/docs/1.0/examples/","h":"#custom-content","p":102},{"i":146,"t":"Subtext","u":"/docs/1.0/examples/","h":"#subtext","p":102},{"i":148,"t":"Customize menu","u":"/docs/1.0/examples/","h":"","p":102},{"i":149,"t":"Menu size","u":"/docs/1.0/examples/","h":"#menu-size","p":102},{"i":151,"t":"Select/deselect all options","u":"/docs/1.0/examples/","h":"#selectdeselect-all-options","p":102},{"i":153,"t":"Divider","u":"/docs/1.0/examples/","h":"#divider","p":102},{"i":155,"t":"Menu header","u":"/docs/1.0/examples/","h":"#menu-header","p":102},{"i":157,"t":"Container","u":"/docs/1.0/examples/","h":"#container","p":102},{"i":159,"t":"Dropup menu","u":"/docs/1.0/examples/","h":"#dropup-menu","p":102},{"i":161,"t":"Disabled","u":"/docs/1.0/examples/","h":"","p":102},{"i":162,"t":"Disabled select box","u":"/docs/1.0/examples/","h":"#disabled-select-box","p":102},{"i":164,"t":"Disabled options","u":"/docs/1.0/examples/","h":"#disabled-options","p":102},{"i":166,"t":"Disabled option groups","u":"/docs/1.0/examples/","h":"#disabled-option-groups","p":102},{"i":170,"t":"Static methods","u":"/docs/1.0/methods/","h":"#static-methods","p":168},{"i":174,"t":"Default settings","u":"/docs/1.0/options/","h":"","p":172},{"i":176,"t":"Events","u":"/docs/1.0/options/","h":"","p":172},{"i":178,"t":"Sanitizer","u":"/docs/1.0/options/","h":"#sanitizer","p":172}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/93",[0,3.417,1,3.417]],["t/95",[2,2.84,3,2.84,4,2.84]],["t/97",[5,4.288]],["t/98",[6,2.413,7,2.84,8,2.413]],["t/100",[6,2.904,9,3.417]],["t/104",[10,3.417,11,3.417]],["t/106",[12,2.566,13,2.566]],["t/108",[14,2.904,15,1.563]],["t/110",[15,1.299,16,2.84,17,1.923]],["t/112",[15,1.299,17,1.923,18,2.84]],["t/114",[14,2.413,15,1.299,17,1.923]],["t/116",[12,2.566,13,2.566]],["t/117",[12,2.566,13,2.566]],["t/119",[19,3.417,20,3.417]],["t/121",[15,1.299,21,2.84,22,2.84]],["t/123",[23,1.923,24,2.413,25,2.132]],["t/124",[26,4.288]],["t/126",[15,1.563,25,2.566]],["t/128",[15,1.299,25,2.132,27,2.84]],["t/130",[28,3.644]],["t/131",[8,2.904,24,2.904]],["t/133",[15,1.299,29,2.84,30,1.616]],["t/135",[31,2.112,32,3.417]],["t/137",[28,2.413,30,1.616,33,2.84]],["t/139",[34,4.288]],["t/141",[23,2.313,30,1.944]],["t/142",[35,4.288]],["t/144",[23,2.313,36,3.417]],["t/146",[37,4.288]],["t/148",[23,2.313,31,2.112]],["t/149",[31,2.112,38,3.417]],["t/151",[30,1.944,39,3.417]],["t/153",[40,4.288]],["t/155",[31,2.112,41,3.417]],["t/157",[42,4.288]],["t/159",[31,2.112,43,3.417]],["t/161",[44,2.903]],["t/162",[15,1.299,17,1.923,44,1.923]],["t/164",[30,1.944,44,2.313]],["t/166",[30,1.616,44,1.923,45,2.84]],["t/170",[46,3.417,47,3.417]],["t/174",[48,3.417,49,3.417]],["t/176",[50,4.288]],["t/178",[51,4.288]]],"invertedIndex":[["arrow",{"_index":32,"t":{"135":{"position":[[5,5]]}}}],["basic",{"_index":11,"t":{"104":{"position":[[11,5]]}}}],["box",{"_index":17,"t":{"110":{"position":[[16,5]]},"112":{"position":[[7,5]]},"114":{"position":[[16,5]]},"162":{"position":[[16,3]]}}}],["build",{"_index":4,"t":{"95":{"position":[[14,5]]}}}],["button",{"_index":24,"t":{"123":{"position":[[7,6]]},"131":{"position":[[0,6]]}}}],["cdn",{"_index":3,"t":{"95":{"position":[[10,3]]}}}],["checkmark",{"_index":29,"t":{"133":{"position":[[0,9]]}}}],["class",{"_index":8,"t":{"98":{"position":[[17,5]]},"131":{"position":[[7,7]]}}}],["contain",{"_index":42,"t":{"157":{"position":[[0,9]]}}}],["content",{"_index":36,"t":{"144":{"position":[[7,7]]}}}],["custom",{"_index":23,"t":{"123":{"position":[[0,6]]},"141":{"position":[[0,9]]},"144":{"position":[[0,6]]},"148":{"position":[[0,9]]}}}],["default",{"_index":48,"t":{"174":{"position":[[0,7]]}}}],["disabl",{"_index":44,"t":{"161":{"position":[[0,8]]},"162":{"position":[[0,8]]},"164":{"position":[[0,8]]},"166":{"position":[[0,8]]}}}],["divid",{"_index":40,"t":{"153":{"position":[[0,7]]}}}],["dropup",{"_index":43,"t":{"159":{"position":[[0,6]]}}}],["event",{"_index":50,"t":{"176":{"position":[[0,6]]}}}],["format",{"_index":27,"t":{"128":{"position":[[14,6]]}}}],["group",{"_index":45,"t":{"166":{"position":[[16,6]]}}}],["header",{"_index":41,"t":{"155":{"position":[[5,6]]}}}],["icon",{"_index":35,"t":{"142":{"position":[[0,5]]}}}],["individu",{"_index":33,"t":{"137":{"position":[[6,10]]}}}],["javascript",{"_index":9,"t":{"100":{"position":[[4,10]]}}}],["key",{"_index":19,"t":{"119":{"position":[[0,3]]}}}],["limit",{"_index":21,"t":{"121":{"position":[[0,5]]}}}],["live",{"_index":12,"t":{"106":{"position":[[0,4]]},"116":{"position":[[0,4]]},"117":{"position":[[0,4]]}}}],["menu",{"_index":31,"t":{"135":{"position":[[0,4]]},"148":{"position":[[10,4]]},"149":{"position":[[0,4]]},"155":{"position":[[0,4]]},"159":{"position":[[7,4]]}}}],["method",{"_index":47,"t":{"170":{"position":[[7,7]]}}}],["multipl",{"_index":14,"t":{"108":{"position":[[0,8]]},"114":{"position":[[0,8]]}}}],["number",{"_index":22,"t":{"121":{"position":[[10,6]]}}}],["optgroup",{"_index":18,"t":{"112":{"position":[[18,9]]}}}],["option",{"_index":30,"t":{"133":{"position":[[22,6]]},"137":{"position":[[17,7]]},"141":{"position":[[10,7]]},"151":{"position":[[20,7]]},"164":{"position":[[9,7]]},"166":{"position":[[9,6]]}}}],["placehold",{"_index":26,"t":{"124":{"position":[[0,11]]}}}],["quick",{"_index":0,"t":{"93":{"position":[[0,5]]}}}],["sanit",{"_index":51,"t":{"178":{"position":[[0,9]]}}}],["search",{"_index":13,"t":{"106":{"position":[[5,6]]},"116":{"position":[[5,6]]},"117":{"position":[[5,6]]}}}],["select",{"_index":15,"t":{"108":{"position":[[9,6]]},"110":{"position":[[9,6]]},"112":{"position":[[0,6]]},"114":{"position":[[9,6]]},"121":{"position":[[20,10]]},"126":{"position":[[0,8]]},"128":{"position":[[0,8]]},"133":{"position":[[13,8]]},"162":{"position":[[9,6]]}}}],["select/deselect",{"_index":39,"t":{"151":{"position":[[0,15]]}}}],["selectpick",{"_index":7,"t":{"98":{"position":[[4,12]]}}}],["set",{"_index":49,"t":{"174":{"position":[[8,8]]}}}],["size",{"_index":38,"t":{"149":{"position":[[5,4]]}}}],["standalon",{"_index":10,"t":{"104":{"position":[[0,10]]}}}],["standard",{"_index":16,"t":{"110":{"position":[[0,8]]}}}],["start",{"_index":1,"t":{"93":{"position":[[6,5]]}}}],["static",{"_index":46,"t":{"170":{"position":[[0,6]]}}}],["style",{"_index":28,"t":{"130":{"position":[[0,7]]},"137":{"position":[[0,5]]}}}],["subtext",{"_index":37,"t":{"146":{"position":[[0,7]]}}}],["text",{"_index":25,"t":{"123":{"position":[[14,4]]},"126":{"position":[[9,4]]},"128":{"position":[[9,4]]}}}],["us",{"_index":2,"t":{"95":{"position":[[0,5]]}}}],["usag",{"_index":5,"t":{"97":{"position":[[0,5]]}}}],["via",{"_index":6,"t":{"98":{"position":[[0,3]]},"100":{"position":[[0,3]]}}}],["width",{"_index":34,"t":{"139":{"position":[[0,5]]}}}],["word",{"_index":20,"t":{"119":{"position":[[4,5]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":91,"t":"Install and use the CrestApps bootstrap-select fork with Bootstrap 5+.","s":"Getting Started","u":"/docs/1.0/","p":91},{"i":102,"t":"Live bootstrap-select examples hosted by the Docusaurus docs site.","s":"Basic examples","u":"/docs/1.0/examples/","p":102},{"i":168,"t":"bootstrap-select instance and static methods.","s":"Methods","u":"/docs/1.0/methods/","p":168},{"i":172,"t":"bootstrap-select options, events, and sanitizer settings.","s":"Core options","u":"/docs/1.0/options/","p":172}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/91",[0,1.119,1,1.119,2,1.119,3,0.138,4,0.098,5,1.119,6,1.119]],["t/102",[3,0.098,4,0.098,7,1.119,8,1.119,9,1.119,10,1.119,11,1.119,12,1.119]],["t/168",[3,0.118,4,0.118,13,1.347,14,1.347,15,1.347]],["t/172",[3,0.11,4,0.11,16,1.261,17,1.261,18,1.261,19,1.261]]],"invertedIndex":[["5",{"_index":6,"t":{"91":{"position":[[67,3]]}}}],["bootstrap",{"_index":3,"t":{"91":{"position":[[30,9],[57,9]]},"102":{"position":[[5,9]]},"168":{"position":[[0,9]]},"172":{"position":[[0,9]]}}}],["crestapp",{"_index":2,"t":{"91":{"position":[[20,9]]}}}],["doc",{"_index":11,"t":{"102":{"position":[[56,4]]}}}],["docusauru",{"_index":10,"t":{"102":{"position":[[45,10]]}}}],["event",{"_index":17,"t":{"172":{"position":[[26,7]]}}}],["exampl",{"_index":8,"t":{"102":{"position":[[22,8]]}}}],["fork",{"_index":5,"t":{"91":{"position":[[47,4]]}}}],["host",{"_index":9,"t":{"102":{"position":[[31,6]]}}}],["instal",{"_index":0,"t":{"91":{"position":[[0,7]]}}}],["instanc",{"_index":13,"t":{"168":{"position":[[17,8]]}}}],["live",{"_index":7,"t":{"102":{"position":[[0,4]]}}}],["method",{"_index":15,"t":{"168":{"position":[[37,8]]}}}],["option",{"_index":16,"t":{"172":{"position":[[17,8]]}}}],["sanit",{"_index":18,"t":{"172":{"position":[[38,9]]}}}],["select",{"_index":4,"t":{"91":{"position":[[40,6]]},"102":{"position":[[15,6]]},"168":{"position":[[10,6]]},"172":{"position":[[10,6]]}}}],["set",{"_index":19,"t":{"172":{"position":[[48,9]]}}}],["site",{"_index":12,"t":{"102":{"position":[[61,5]]}}}],["static",{"_index":14,"t":{"168":{"position":[[30,6]]}}}],["us",{"_index":1,"t":{"91":{"position":[[12,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[],"invertedIndex":[],"pipeline":["stemmer"]}},{"documents":[{"i":92,"t":"CrestApps fork This is the CrestApps fork of snapappointments/bootstrap-select. It removes the jQuery dependency entirely, uses plain vanilla JavaScript, and supports Bootstrap 5+ only. Older Bootstrap and jQuery compatibility paths are intentionally out of scope so the library can stay small and forward-focused.","s":"Getting Started","u":"/docs/1.0/","h":"","p":91},{"i":94,"t":"bootstrap-select requires Bootstrap 5+ (CSS and JS, including its bundled Popper). jQuery is not required. Install with npm: npm install crestapps-bootstrap-select bootstrap Load Bootstrap 5 first, then bootstrap-select's CSS and JS (after Bootstrap's JavaScript): ","s":"Quick start","u":"/docs/1.0/","h":"#quick-start","p":91},{"i":96,"t":"After the package is published to npm, it will also be available through jsDelivr. Prefer pinning an explicit package version in production: You can replace @1.0.0 with the version you want to consume. During development, @latest also works, but a fixed version is safer for production deployments. When loaded via a
    Alternatively, use the data-width attribute to set the width of the select. Set data-width to 'auto' to automatically adjust the width of the select to its widest option. 'fit' automatically adjusts the width of the select to the width of its currently selected option. An exact value can also be specified, e.g., 300px or 50%. ","s":"Width","u":"/docs/1.0/examples/","h":"#width","p":102},{"i":143,"t":"Add an icon to an option or optgroup with the data-icon attribute: Bootstrap 5 icons Bootstrap 5 does not include an icon font. To use Font Awesome or another icon library, set iconBase and tickIcon to match that library. ","s":"Icons","u":"/docs/1.0/examples/","h":"#icons","p":102},{"i":145,"t":"Insert custom HTML into the option with the data-content attribute: Custom content is sanitized This feature inserts HTML into the DOM. By default, it is sanitized using our built-in sanitizer. ","s":"Custom content","u":"/docs/1.0/examples/","h":"#custom-content","p":102},{"i":147,"t":"Add subtext to an option or optgroup with the data-subtext attribute: ","s":"Subtext","u":"/docs/1.0/examples/","h":"#subtext","p":102},{"i":150,"t":"The size option is set to 'auto' by default. When size is set to 'auto', the menu always opens up to show as many items as the window will allow without being cut off. Set size to false to always show all items. The size of the menu can also be specifed using the data-size attribute. Specify a number for data-size to choose the maximum number of items to show in the menu. ","s":"Menu size","u":"/docs/1.0/examples/","h":"#menu-size","p":102},{"i":152,"t":"Adds two buttons to the top of the menu - Select All & Deselect All with data-actions-box=\"true\". ","s":"Select/deselect all options","u":"/docs/1.0/examples/","h":"#selectdeselect-all-options","p":102},{"i":154,"t":"Add data-divider=\"true\" to an option to turn it into a divider. ","s":"Divider","u":"/docs/1.0/examples/","h":"#divider","p":102},{"i":156,"t":"Add a header to the dropdown menu, e.g. header: 'Select a condiment' or data-header=\"Select a condiment\" ","s":"Menu header","u":"/docs/1.0/examples/","h":"#menu-header","p":102},{"i":158,"t":"Append the select menu to a specific element, e.g. container: 'body' or data-container=\".main-content\". This is useful if the select element is inside an element with overflow: hidden.
    ","s":"Container","u":"/docs/1.0/examples/","h":"#container","p":102},{"i":160,"t":"dropupAuto is set to true by default, which automatically determines whether or not the menu should display above or below the select box. If dropupAuto is set to false, manually make the select a dropup menu by adding the .dropup class to the select. ","s":"Dropup menu","u":"/docs/1.0/examples/","h":"#dropup-menu","p":102},{"i":163,"t":"","s":"Disabled select box","u":"/docs/1.0/examples/","h":"#disabled-select-box","p":102},{"i":165,"t":"","s":"Disabled options","u":"/docs/1.0/examples/","h":"#disabled-options","p":102},{"i":167,"t":"","s":"Disabled option groups","u":"/docs/1.0/examples/","h":"#disabled-option-groups","p":102},{"i":169,"t":"Interface with bootstrap-select. In this fork, methods are called directly on the Selectpicker instance (there is no jQuery $.fn.selectpicker). Obtain an instance with Selectpicker.getInstance(elementOrSelector) (returns the existing instance) or Selectpicker.getOrCreateInstance(elementOrSelector, options). const picker = Selectpicker.getInstance('#my-select'); .val()​ You can set the selected value by calling the val method on the instance. Selectpicker.getInstance('#my-select').val('Mustard'); Selectpicker.getInstance('#my-select').val(['Mustard', 'Relish']); This is different to setting value directly on the select element. If you set value on the element directly, the bootstrap-select UI will not refresh (as the change event only fires from user interaction). You will have to call the UI render method yourself. const select = document.querySelector('#my-select'); select.value = 'Mustard'; Selectpicker.getInstance(select).render(); // this is the equivalent of the above Selectpicker.getInstance(select).val('Mustard'); Called with no argument, val() returns the current value (a string for single selects, or an array of strings for multiple selects). .selectAll()​ This will select all items in a multi-select. Selectpicker.getInstance('#my-select').selectAll(); .deselectAll()​ This will deselect all items in a multi-select. Selectpicker.getInstance('#my-select').deselectAll(); .render()​ You can force a re-render of the bootstrap-select UI with the render method. This is useful if you programmatically change any underlying values that affect the layout of the element. Selectpicker.getInstance('#my-select').render(); .mobile()​ Enable mobile scrolling by calling mobile(). This enables the device's native menu for select menus. The method for detecting the browser is left up to the user. if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) { Selectpicker.getInstance('#my-select').mobile(); } .setStyle()​ Modify the class(es) associated with either the button itself or its container. If changing the class on the container: const select = document.querySelector('#my-select'); select.closest('.bootstrap-select').classList.add('col-lg-12'); Selectpicker.getInstance(select).setStyle(); If changing the class(es) on the button (altering data-style): const picker = Selectpicker.getInstance('#my-select'); // Replace class picker.setStyle('btn-danger'); // Add class picker.setStyle('btn-lg', 'add'); // Remove class picker.setStyle('btn-lg', 'remove'); .refresh()​ To programmatically update a select with JavaScript, first manipulate the select, then use the refresh method to update the UI to match the new state. This is necessary when removing or adding options, or when disabling/enabling a select via JavaScript. Selectpicker.getInstance('#my-select').refresh(); For example, to remove an option then refresh: document.querySelector('.rm-mustard').addEventListener('click', function () { const select = document.querySelector('.remove-example'); const option = select.querySelector('[value=\"Mustard\"]'); if (option) option.remove(); Selectpicker.getInstance(select).refresh(); }); Or to disable/enable a select: const select = document.querySelector('.disable-example'); document.querySelector('.ex-disable').addEventListener('click', function () { select.disabled = true; Selectpicker.getInstance(select).refresh(); }); document.querySelector('.ex-enable').addEventListener('click', function () { select.disabled = false; Selectpicker.getInstance(select).refresh(); }); .toggle()​ Programmatically toggles the bootstrap-select menu open/closed. Selectpicker.getInstance('#my-select').toggle(); .open() and .close() are also available. .hide()​ To programmatically hide the bootstrap-select use the hide method (this only affects the visibility of the bootstrap-select itself). Selectpicker.getInstance('#my-select').hide(); .show()​ To programmatically show the bootstrap-select use the show method (this only affects the visibility of the bootstrap-select itself). Selectpicker.getInstance('#my-select').show(); .destroy()​ To programmatically destroy the bootstrap-select, use the destroy method. This removes the generated UI and restores the original + html={String.raw`
    +
    + + +
    - `} +
    + + +
    +
    `} /> ```html - +
    +
    + + +
    - +
    + + +
    +
    ``` # Custom button text diff --git a/docs/versioned_docs/version-1.1/examples.mdx b/docs/versioned_docs/version-1.1/examples.mdx index b4a8717..caf326f 100644 --- a/docs/versioned_docs/version-1.1/examples.mdx +++ b/docs/versioned_docs/version-1.1/examples.mdx @@ -319,45 +319,61 @@ new Selectpicker('#tag-editor', { Limit the number of options that can be selected via the `data-max-options` attribute. It also works for option groups. Customize the message displayed when the limit is reached with `maxOptionsText`. - - - - + html={String.raw`
    +
    + + +
    - `} +
    + + +
    +
    `} /> ```html - +
    +
    + + +
    - +
    + + +
    +
    ``` # Custom button text