diff --git a/package.json b/package.json index b6b3cf00ba1..4608174f35f 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "workspaces": [ ".scripts/assets-build-tool", - "src/lib/", + "src/Frontend/", "src/OrchardCore.Modules/*", "src/OrchardCore.Modules/*/Assets/", "src/OrchardCore.Themes/*", diff --git a/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/strength.ts b/src/Frontend/components/strength.ts similarity index 56% rename from src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/strength.ts rename to src/Frontend/components/strength.ts index b15d794d7b6..9179ccf22aa 100644 --- a/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/strength.ts +++ b/src/Frontend/components/strength.ts @@ -1,4 +1,20 @@ -export default function strength(element, options) { +/** + * This function initializes a password strength checker on a given input element. + * It evaluates the password based on specified requirements such as minimum length, + * presence of uppercase, lowercase, digits, and special characters. + * A visual progress bar is displayed to indicate the strength level of the password. + * + * @param {HTMLElement} element - The input element to which the strength checker is applied. + * @param {Object} options - Configuration options for password requirements and display settings. + * @param {number} options.requiredLength - Minimum required length of the password. + * @param {boolean} options.requireUppercase - Whether an uppercase letter is required. + * @param {boolean} options.requireLowercase - Whether a lowercase letter is required. + * @param {boolean} options.requireDigit - Whether a digit is required. + * @param {boolean} options.requireNonAlphanumeric - Whether a special character is required. + * @param {string} options.target - CSS selector for the element where the strength progress bar is displayed. + * @param {string} options.style - CSS style string for the progress bar. + */ +export default function strength(element: HTMLInputElement, options: any) { const settings = Object.assign({ requiredLength: 8, @@ -22,11 +38,11 @@ export default function strength(element, options) { let valid = false; - function getPercentage(a, b) { + function getPercentage(a: number, b: number) { return (b / a) * 100; } - function getLevel(value) { + function getLevel(value: number) { if (value >= 100) { return "bg-success"; @@ -43,7 +59,7 @@ export default function strength(element, options) { return "bg-danger"; } - function checkStrength(value) { + function checkStrength(value: string) { const minLength = value.length >= settings.requiredLength ? 1 : 0; capitalletters = !settings.requireUppercase || value.match(upperCase) ? 1 : 0; @@ -59,7 +75,7 @@ export default function strength(element, options) { createProgressBar(percentage, getLevel(percentage)); } - function createProgressBar(percentage, level) { + function createProgressBar(percentage: string | number, level: string) { const el = document.createElement("div"); el.className = "progress"; el.setAttribute("value", percentage.toString()); @@ -75,15 +91,15 @@ export default function strength(element, options) { target.appendChild(el); } - element.addEventListener("keyup", (event) => checkStrength(element.value)); - element.addEventListener("keydown", (event) => checkStrength(element.value)); - element.addEventListener("change", (event) => checkStrength(element.value)); + element.addEventListener("keyup", () => checkStrength(element.value)); + element.addEventListener("keydown", () => checkStrength(element.value)); + element.addEventListener("change", () => checkStrength(element.value)); element.addEventListener("drop", (event) => { event.preventDefault(); - checkStrength(event.dataTransfer.getData("text")); + checkStrength(event.dataTransfer?.getData("text") ?? ""); }); - element.form.addEventListener("submit", (event) => { + element.form?.addEventListener("submit", (event) => { checkStrength(element.value); if (!valid) { event.preventDefault(); diff --git a/src/Frontend/package.json b/src/Frontend/package.json new file mode 100644 index 00000000000..d84d0b22e8b --- /dev/null +++ b/src/Frontend/package.json @@ -0,0 +1,5 @@ +{ + "name": "@orchardcore/frontend", + "version": "1.0.0", + "type": "module" +} diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.css b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.css index 7c1c0a20da6..7ef678bb181 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.css +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.css @@ -725,4 +725,5 @@ select.selectpicker { margin-bottom: 0; width: 100%; float: none; -} \ No newline at end of file +} +/*# sourceMappingURL=node_modules\bootstrap-select\dist\css\bootstrap-select.css.map */ \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.map b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.map index 3450b71e9b9..fea44712a76 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.map +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/bootstrap-select.map @@ -1 +1 @@ -{"version":3,"sourceRoot":null,"mappings":"qPAOA,sLA8BA,6GAMA,oDAKA,0OAkBA,8DAIA,6DAIA,yDAIA,sOAOA,8jDA2BA,yMAYA,4CAIA,6CAIA,8GAOA,wDAIA,yDAIA,4NAOA,gIAKA,iDAIA,kGAIA,kNAOA,iFAOA,gFAIA,uEAKA,yGAKA,uGAMA,yGAKA,0GAKA,2LAMA,0LAMA,gHAMA,sGAKA,sMAQA,kKAOA,wEAIA,sEAIA,wDAIA,0EAKA,0FAKA,8FAOA,gDAIA,iDAIA,2DAIA,kLAYA,8FAMA,iGAMA,sFAIA,qFAIA,qJAOA,4GAIA,yNAQA,iIAIA,8EAIA,wGAMA,uEAIA,wEAIA,0GAOA,+DAIA,8DAIA,+GAMA,wFAIA,uFAIA,iGAIA,gGAIA,0KAOA,+EAIA,yFAIA,mFAIA,2DAIA,+HAOA,qEAIA,sJAWA,sDAIA,2EAIA,kEAIA,0IAQA,4DAIA,wEAIA,yEAIA,mEAIA,qEAIA,sEAIA,uEAIA,wWAkBA,2NAMA,6FAOA,qGAMA,yJAKA,2EAIA,6FAMA,oHAMA,0FAIA,yFAIA,sFAIA,qFAIA,yKAUA,6LAQA,iMAQA,6HAKA,sNAUA,4FAIA,6FAIA,oNAUA,4FAIA,6FAIA,gJAOA,8IAOA,mHAKA,mHAKA,kHAKA,kHAKA,oUAOA,4DAMA,yGAOA,wCAIA,2CAIA,yGAOA,oCAIA,qCAIA,wCAIA,4CAIA,+CAIA","sources":[""],"sourcesContent":["/*!\n * Bootstrap-select v1.14.0-beta3 (https://developer.snapappointments.com/bootstrap-select)\n *\n * Copyright 2012-2022 SnapAppointments, LLC\n * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)\n */\n@-webkit-keyframes bs-notify-fadeOut {\n 0% {\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n }\n}\n@-o-keyframes bs-notify-fadeOut {\n 0% {\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n }\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: 220px;\n vertical-align: middle;\n}\n.bootstrap-select > .dropdown-toggle {\n position: relative;\n width: 100%;\n white-space: nowrap;\n display: -webkit-inline-box;\n display: -webkit-inline-flex;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -webkit-justify-content: space-between;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n[dir=\"ltr\"] .bootstrap-select > .dropdown-toggle {\n text-align: right;\n}\n[dir=\"rtl\"] .bootstrap-select > .dropdown-toggle {\n text-align: left;\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 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[dir=\"ltr\"] .bootstrap-select > select {\n left: 50%;\n}\n[dir=\"rtl\"] .bootstrap-select > select {\n right: 50%;\n}\n.bootstrap-select > select.mobile-device {\n top: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2 !important;\n}\n[dir=\"ltr\"] .bootstrap-select > select.mobile-device {\n left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select > select.mobile-device {\n right: 0;\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.fit-width {\n width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: 220px;\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}\n[dir=\"ltr\"] .bootstrap-select:not(.input-group-btn),\n[dir=\"ltr\"] .bootstrap-select[class*=\"col-\"] {\n margin-left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select:not(.input-group-btn),\n[dir=\"rtl\"] .bootstrap-select[class*=\"col-\"] {\n margin-right: 0;\n}\n[dir=\"ltr\"] .bootstrap-select.dropdown-menu-right,\n[dir=\"ltr\"] .bootstrap-select[class*=\"col-\"].dropdown-menu-right,\n[dir=\"ltr\"] .row .bootstrap-select[class*=\"col-\"].dropdown-menu-right {\n float: right;\n}\n[dir=\"rtl\"] .bootstrap-select.dropdown-menu-right,\n[dir=\"rtl\"] .bootstrap-select[class*=\"col-\"].dropdown-menu-right,\n[dir=\"rtl\"] .row .bootstrap-select[class*=\"col-\"].dropdown-menu-right {\n float: left;\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 height: 0 !important;\n padding: 0 !important;\n}\n[dir=\"ltr\"] .bootstrap-select.bs-container {\n left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select.bs-container {\n right: 0;\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 height: 100%;\n width: 100%;\n overflow: hidden;\n -webkit-box-flex: 0;\n -webkit-flex: 0 1 auto;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .filter-option {\n left: 0;\n float: left;\n text-align: left;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .filter-option {\n right: 0;\n float: right;\n text-align: right;\n}\n[dir=\"ltr\"] .bs3.bootstrap-select .dropdown-toggle .filter-option {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .bs3.bootstrap-select .dropdown-toggle .filter-option {\n padding-left: inherit;\n}\n.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n position: absolute;\n padding-top: inherit;\n padding-bottom: inherit;\n float: none;\n}\n[dir=\"ltr\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n padding-left: inherit;\n}\n[dir=\"rtl\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n padding-right: inherit;\n}\n[dir=\"ltr\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner {\n padding-left: inherit;\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 opacity: 0 !important;\n overflow: hidden;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .filter-expand {\n float: left;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .filter-expand {\n float: right;\n}\n.bootstrap-select .dropdown-toggle .caret {\n position: absolute;\n top: 50%;\n margin-top: -2px;\n vertical-align: middle;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .caret {\n right: 12px;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .caret {\n left: 12px;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n position: relative;\n display: block;\n text-align: center;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n margin-right: 5px;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n margin-left: 5px;\n}\n[dir=\"ltr\"] .bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n padding-left: inherit;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {\n position: relative;\n top: -webkit-calc(((-1em / 1.5) + 1ex) / 2);\n top: calc(((-1em / 1.5) + 1ex) / 2);\n pointer-events: none;\n}\n.bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {\n top: auto;\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 -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\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 -webkit-box-shadow: none;\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 -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.bootstrap-select .dropdown-menu li a.opt {\n position: relative;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-menu li a.opt {\n padding-left: 2.25em;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-menu li a.opt {\n padding-right: 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[dir=\"ltr\"] .bootstrap-select .dropdown-menu li small {\n padding-left: 0.5em;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-menu li small {\n padding-right: 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 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n pointer-events: none;\n opacity: 0.9;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.bootstrap-select .dropdown-menu .notify.fadeOut {\n -webkit-animation: 300ms linear 750ms forwards bs-notify-fadeOut;\n -o-animation: 300ms linear 750ms forwards bs-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 top: 5px;\n}\n[dir=\"ltr\"] .bootstrap-select.show-tick .dropdown-menu .selected span.check-mark {\n right: 15px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-tick .dropdown-menu .selected span.check-mark {\n left: 15px;\n}\n[dir=\"ltr\"] .bootstrap-select.show-tick .dropdown-menu li a span.text {\n margin-right: 34px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-tick .dropdown-menu li a span.text {\n margin-left: 34px;\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 -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n}\n[dir=\"ltr\"] .bootstrap-select .bs-ok-default:after {\n border-width: 0 0.26em 0.26em 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n -o-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n[dir=\"rtl\"] .bootstrap-select .bs-ok-default:after {\n border-width: 0 0 0.26em 0.26em;\n -webkit-transform: rotate(-45deg);\n -ms-transform: rotate(-45deg);\n -o-transform: rotate(-45deg);\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 display: none;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before {\n left: 9px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before {\n right: 9px;\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 display: none;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after {\n left: 10px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after {\n right: 10px;\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[dir=\"ltr\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before {\n right: 12px;\n left: auto;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before {\n left: 12px;\n right: auto;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after {\n right: 13px;\n left: auto;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after {\n left: 13px;\n right: 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.bs-actionsbox {\n width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\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 width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n[dir=\"ltr\"] .bs-donebutton {\n float: left;\n}\n[dir=\"rtl\"] .bs-donebutton {\n float: right;\n}\n.bs-donebutton .btn-group {\n display: block;\n}\n.bs-donebutton .btn-group button {\n width: 100%;\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}"],"names":[]} +{"version":3,"sourceRoot":null,"mappings":"qPAOA,sLA8BA,6GAMA,oDAKA,0OAkBA,8DAIA,6DAIA,yDAIA,sOAOA,8jDA2BA,yMAYA,4CAIA,6CAIA,8GAOA,wDAIA,yDAIA,4NAOA,gIAKA,iDAIA,kGAIA,kNAOA,iFAOA,gFAIA,uEAKA,yGAKA,uGAMA,yGAKA,0GAKA,2LAMA,0LAMA,gHAMA,sGAKA,sMAQA,kKAOA,wEAIA,sEAIA,wDAIA,0EAKA,0FAKA,8FAOA,gDAIA,iDAIA,2DAIA,kLAYA,8FAMA,iGAMA,sFAIA,qFAIA,qJAOA,4GAIA,yNAQA,iIAIA,8EAIA,wGAMA,uEAIA,wEAIA,0GAOA,+DAIA,8DAIA,+GAMA,wFAIA,uFAIA,iGAIA,gGAIA,0KAOA,+EAIA,yFAIA,mFAIA,2DAIA,+HAOA,qEAIA,sJAWA,sDAIA,2EAIA,kEAIA,0IAQA,4DAIA,wEAIA,yEAIA,mEAIA,qEAIA,sEAIA,uEAIA,wWAkBA,2NAMA,6FAOA,qGAMA,yJAKA,2EAIA,6FAMA,oHAMA,0FAIA,yFAIA,sFAIA,qFAIA,yKAUA,6LAQA,iMAQA,6HAKA,sNAUA,4FAIA,6FAIA,oNAUA,4FAIA,6FAIA,gJAOA,8IAOA,mHAKA,mHAKA,kHAKA,kHAKA,oUAOA,4DAMA,yGAOA,wCAIA,2CAIA,yGAOA,oCAIA,qCAIA,wCAIA,4CAIA,+CAIA","sources":[""],"sourcesContent":["/*!\n * Bootstrap-select v1.14.0-beta3 (https://developer.snapappointments.com/bootstrap-select)\n *\n * Copyright 2012-2022 SnapAppointments, LLC\n * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)\n */\n@-webkit-keyframes bs-notify-fadeOut {\n 0% {\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n }\n}\n@-o-keyframes bs-notify-fadeOut {\n 0% {\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n }\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: 220px;\n vertical-align: middle;\n}\n.bootstrap-select > .dropdown-toggle {\n position: relative;\n width: 100%;\n white-space: nowrap;\n display: -webkit-inline-box;\n display: -webkit-inline-flex;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -webkit-align-items: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -webkit-justify-content: space-between;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n[dir=\"ltr\"] .bootstrap-select > .dropdown-toggle {\n text-align: right;\n}\n[dir=\"rtl\"] .bootstrap-select > .dropdown-toggle {\n text-align: left;\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 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[dir=\"ltr\"] .bootstrap-select > select {\n left: 50%;\n}\n[dir=\"rtl\"] .bootstrap-select > select {\n right: 50%;\n}\n.bootstrap-select > select.mobile-device {\n top: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2 !important;\n}\n[dir=\"ltr\"] .bootstrap-select > select.mobile-device {\n left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select > select.mobile-device {\n right: 0;\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.fit-width {\n width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: 220px;\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}\n[dir=\"ltr\"] .bootstrap-select:not(.input-group-btn),\n[dir=\"ltr\"] .bootstrap-select[class*=\"col-\"] {\n margin-left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select:not(.input-group-btn),\n[dir=\"rtl\"] .bootstrap-select[class*=\"col-\"] {\n margin-right: 0;\n}\n[dir=\"ltr\"] .bootstrap-select.dropdown-menu-right,\n[dir=\"ltr\"] .bootstrap-select[class*=\"col-\"].dropdown-menu-right,\n[dir=\"ltr\"] .row .bootstrap-select[class*=\"col-\"].dropdown-menu-right {\n float: right;\n}\n[dir=\"rtl\"] .bootstrap-select.dropdown-menu-right,\n[dir=\"rtl\"] .bootstrap-select[class*=\"col-\"].dropdown-menu-right,\n[dir=\"rtl\"] .row .bootstrap-select[class*=\"col-\"].dropdown-menu-right {\n float: left;\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 height: 0 !important;\n padding: 0 !important;\n}\n[dir=\"ltr\"] .bootstrap-select.bs-container {\n left: 0;\n}\n[dir=\"rtl\"] .bootstrap-select.bs-container {\n right: 0;\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 height: 100%;\n width: 100%;\n overflow: hidden;\n -webkit-box-flex: 0;\n -webkit-flex: 0 1 auto;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .filter-option {\n left: 0;\n float: left;\n text-align: left;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .filter-option {\n right: 0;\n float: right;\n text-align: right;\n}\n[dir=\"ltr\"] .bs3.bootstrap-select .dropdown-toggle .filter-option {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .bs3.bootstrap-select .dropdown-toggle .filter-option {\n padding-left: inherit;\n}\n.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n position: absolute;\n padding-top: inherit;\n padding-bottom: inherit;\n float: none;\n}\n[dir=\"ltr\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n padding-left: inherit;\n}\n[dir=\"rtl\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option {\n padding-right: inherit;\n}\n[dir=\"ltr\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner {\n padding-left: inherit;\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 opacity: 0 !important;\n overflow: hidden;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .filter-expand {\n float: left;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .filter-expand {\n float: right;\n}\n.bootstrap-select .dropdown-toggle .caret {\n position: absolute;\n top: 50%;\n margin-top: -2px;\n vertical-align: middle;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .caret {\n right: 12px;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .caret {\n left: 12px;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n position: relative;\n display: block;\n text-align: center;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n margin-right: 5px;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n margin-left: 5px;\n}\n[dir=\"ltr\"] .bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n padding-right: inherit;\n}\n[dir=\"rtl\"] .bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected {\n padding-left: inherit;\n}\n.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {\n position: relative;\n top: -webkit-calc(((-1em / 1.5) + 1ex) / 2);\n top: calc(((-1em / 1.5) + 1ex) / 2);\n pointer-events: none;\n}\n.bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected span {\n top: auto;\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 -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\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 -webkit-box-shadow: none;\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 -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.bootstrap-select .dropdown-menu li a.opt {\n position: relative;\n}\n[dir=\"ltr\"] .bootstrap-select .dropdown-menu li a.opt {\n padding-left: 2.25em;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-menu li a.opt {\n padding-right: 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[dir=\"ltr\"] .bootstrap-select .dropdown-menu li small {\n padding-left: 0.5em;\n}\n[dir=\"rtl\"] .bootstrap-select .dropdown-menu li small {\n padding-right: 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 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n pointer-events: none;\n opacity: 0.9;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.bootstrap-select .dropdown-menu .notify.fadeOut {\n -webkit-animation: 300ms linear 750ms forwards bs-notify-fadeOut;\n -o-animation: 300ms linear 750ms forwards bs-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 top: 5px;\n}\n[dir=\"ltr\"] .bootstrap-select.show-tick .dropdown-menu .selected span.check-mark {\n right: 15px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-tick .dropdown-menu .selected span.check-mark {\n left: 15px;\n}\n[dir=\"ltr\"] .bootstrap-select.show-tick .dropdown-menu li a span.text {\n margin-right: 34px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-tick .dropdown-menu li a span.text {\n margin-left: 34px;\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 -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n}\n[dir=\"ltr\"] .bootstrap-select .bs-ok-default:after {\n border-width: 0 0.26em 0.26em 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n -o-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n[dir=\"rtl\"] .bootstrap-select .bs-ok-default:after {\n border-width: 0 0 0.26em 0.26em;\n -webkit-transform: rotate(-45deg);\n -ms-transform: rotate(-45deg);\n -o-transform: rotate(-45deg);\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 display: none;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before {\n left: 9px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before {\n right: 9px;\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 display: none;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after {\n left: 10px;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after {\n right: 10px;\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[dir=\"ltr\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before {\n right: 12px;\n left: auto;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before {\n left: 12px;\n right: auto;\n}\n[dir=\"ltr\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after {\n right: 13px;\n left: auto;\n}\n[dir=\"rtl\"] .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after {\n left: 13px;\n right: 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.bs-actionsbox {\n width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\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 width: 100%;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n[dir=\"ltr\"] .bs-donebutton {\n float: left;\n}\n[dir=\"rtl\"] .bs-donebutton {\n float: right;\n}\n.bs-donebutton .btn-group {\n display: block;\n}\n.bs-donebutton .btn-group button {\n width: 100%;\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}\n/*# sourceMappingURL=node_modules\\bootstrap-select\\dist\\css\\bootstrap-select.css.map */"],"names":[]} diff --git a/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/setup.ts b/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/setup.ts index f0e6c70f55f..4e73a259403 100644 --- a/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/setup.ts +++ b/src/OrchardCore.Modules/OrchardCore.Setup/Assets/ts/setup.ts @@ -1,103 +1,7 @@ -import strenght from "./strength"; - -document.addEventListener("DOMContentLoaded", function () { - toggleConnectionStringAndPrefix(); - - // Show hide the connection string when a provider is selected - document - .getElementById("DatabaseProvider") - ?.addEventListener("change", function () { - toggleConnectionStringAndPrefix(); - }); - - // Refresh the recipe description - document.querySelectorAll("#recipes div a").forEach(function (element) { - element.addEventListener("click", function () { - refreshDescription(this); - }); - }); - - const passwordElement = document.getElementById("Password"); - const options = JSON.parse(passwordElement?.dataset.strength ?? "") ?? { - requiredLength: 6, - requiredUniqueChars: 1, - requireNonAlphanumeric: true, - requireLowercase: true, - requireUppercase: true, - requireDigit: true, - }; - - strenght(passwordElement, options); - - if (passwordElement) { - passwordElement.addEventListener("focus", function () { - const popover = document.createElement("div"); - popover.className = "popover bs-popover-top"; - popover.role = "tooltip"; - popover.innerHTML = `