diff --git a/.gitignore b/.gitignore
index e350d718..6ca0279d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -268,4 +268,5 @@ Web/Resgrid.WebCore/wwwroot/js/ng/polyfills.js
Web/Resgrid.WebCore/wwwroot/js/ng/runtime.js
Web/Resgrid.WebCore/wwwroot/js/ng/styles.css
Web/Resgrid.WebCore/wwwroot/js/ng/*
-Web/Resgrid.WebCore/wwwroot/lib/*
\ No newline at end of file
+Web/Resgrid.WebCore/wwwroot/lib/*
+/Web/Resgrid.Web/wwwroot/lib
diff --git a/Web/Resgrid.Web/libman.json b/Web/Resgrid.Web/libman.json
index d9c87ecd..2547205d 100644
--- a/Web/Resgrid.Web/libman.json
+++ b/Web/Resgrid.Web/libman.json
@@ -1,6 +1,6 @@
{
"version": "1.0",
- "defaultProvider": "unpkg",
+ "defaultProvider": "jsdelivr",
"libraries": [
{
"library": "jquery-validation-unobtrusive@3.2.11",
@@ -11,13 +11,10 @@
"destination": "wwwroot/lib/jquery-validate/"
},
{
+ "provider": "cdnjs",
"library": "font-awesome@4.7.0",
"destination": "wwwroot/lib/font-awesome/"
},
- {
- "library": "fullcalendar@3.10.0",
- "destination": "wwwroot/lib/fullcalendar/"
- },
{
"library": "metismenu@3.0.7",
"destination": "wwwroot/lib/metisMenu/"
@@ -151,6 +148,7 @@
"destination": "wwwroot/lib/bootstrapvalidator/"
},
{
+ "provider": "unpkg",
"library": "twitter-bootstrap-wizard@1.2",
"destination": "wwwroot/lib/twitter-bootstrap-wizard/"
},
@@ -164,15 +162,10 @@
},
{
"library": "@microsoft/signalr@latest",
- "destination": "wwwroot/lib/signalr/",
- "files": [
- "dist/browser/signalr.js",
- "dist/browser/signalr.js.map",
- "dist/browser/signalr.min.js",
- "dist/browser/signalr.min.js.map"
- ]
+ "destination": "wwwroot/lib/signalr/"
},
{
+ "provider": "unpkg",
"library": "survey-jquery@1.8.57",
"destination": "wwwroot/lib/survey-jquery/"
},
@@ -189,26 +182,12 @@
"destination": "wwwroot/lib/surveyjs-widgets/"
},
{
- "library": "formBuilder@3.7.3",
- "destination": "wwwroot/lib/formBuilder/",
- "files": [
- "dist/form-builder.min.js",
- "dist/form-builder.min.js.gz",
- "dist/form-render.min.js",
- "dist/form-render.min.js.gz",
- "README.md",
- "package.json",
- "LICENSE",
- "CHANGELOG.md"
- ]
+ "library": "formBuilder@3.19.13",
+ "destination": "wwwroot/lib/formBuilder/"
},
{
"library": "bstreeview@1.2.0",
- "destination": "wwwroot/lib/bstreeview/",
- "files": [
- "dist/css/bstreeview.min.css",
- "dist/js/bstreeview.min.js"
- ]
+ "destination": "wwwroot/lib/bstreeview/"
},
{
"library": "retina.js@1.1.0",
@@ -216,384 +195,39 @@
},
{
"library": "quill@1.3.6",
- "destination": "wwwroot/lib/quill/",
- "files": [
- "dist/quill.bubble.css",
- "dist/quill.core.css",
- "dist/quill.core.js",
- "dist/quill.js",
- "dist/quill.min.js",
- "dist/quill.min.js.map",
- "dist/quill.snow.css"
- ]
+ "destination": "wwwroot/lib/quill/"
},
{
"library": "bootstrap@3.4.0",
- "destination": "wwwroot/lib/bootstrap/",
- "files": [
- "dist/css/bootstrap-theme.css",
- "dist/css/bootstrap-theme.css.map",
- "dist/css/bootstrap-theme.min.css",
- "dist/css/bootstrap-theme.min.css.map",
- "dist/css/bootstrap.css",
- "dist/css/bootstrap.css.map",
- "dist/css/bootstrap.min.css",
- "dist/css/bootstrap.min.css.map",
- "dist/fonts/glyphicons-halflings-regular.eot",
- "dist/fonts/glyphicons-halflings-regular.svg",
- "dist/fonts/glyphicons-halflings-regular.ttf",
- "dist/fonts/glyphicons-halflings-regular.woff",
- "dist/fonts/glyphicons-halflings-regular.woff2",
- "dist/js/bootstrap.js",
- "dist/js/bootstrap.min.js",
- "dist/js/npm.js"
- ]
+ "destination": "wwwroot/lib/bootstrap/"
},
{
"library": "jquery@2.2.4",
- "destination": "wwwroot/lib/jquery/",
- "files": [
- "dist/jquery.js",
- "dist/jquery.min.js",
- "dist/jquery.min.map"
- ]
+ "destination": "wwwroot/lib/jquery/"
},
{
"library": "bootstrap-tour@0.11.0",
- "destination": "wwwroot/lib/bootstrap-tour/",
- "files": [
- "build/css/bootstrap-tour-standalone.css",
- "build/css/bootstrap-tour-standalone.min.css",
- "build/css/bootstrap-tour.css",
- "build/css/bootstrap-tour.min.css",
- "build/js/bootstrap-tour-standalone.js",
- "build/js/bootstrap-tour-standalone.min.js",
- "build/js/bootstrap-tour.js",
- "build/js/bootstrap-tour.min.js"
- ]
+ "destination": "wwwroot/lib/bootstrap-tour/"
},
{
"library": "select2@4.0.13",
- "destination": "wwwroot/lib/select2/",
- "files": [
- "dist/css/select2.css",
- "dist/css/select2.min.css",
- "dist/js/select2.full.js",
- "dist/js/select2.full.min.js",
- "dist/js/select2.js",
- "dist/js/select2.min.js",
- "dist/js/i18n/af.js",
- "dist/js/i18n/ar.js",
- "dist/js/i18n/az.js",
- "dist/js/i18n/bg.js",
- "dist/js/i18n/bn.js",
- "dist/js/i18n/bs.js",
- "dist/js/i18n/build.txt",
- "dist/js/i18n/ca.js",
- "dist/js/i18n/cs.js",
- "dist/js/i18n/da.js",
- "dist/js/i18n/de.js",
- "dist/js/i18n/dsb.js",
- "dist/js/i18n/el.js",
- "dist/js/i18n/en.js",
- "dist/js/i18n/es.js",
- "dist/js/i18n/et.js",
- "dist/js/i18n/eu.js",
- "dist/js/i18n/fa.js",
- "dist/js/i18n/fi.js",
- "dist/js/i18n/fr.js",
- "dist/js/i18n/gl.js",
- "dist/js/i18n/he.js",
- "dist/js/i18n/hi.js",
- "dist/js/i18n/hr.js",
- "dist/js/i18n/hsb.js",
- "dist/js/i18n/hu.js",
- "dist/js/i18n/hy.js",
- "dist/js/i18n/id.js",
- "dist/js/i18n/is.js",
- "dist/js/i18n/it.js",
- "dist/js/i18n/ja.js",
- "dist/js/i18n/ka.js",
- "dist/js/i18n/km.js",
- "dist/js/i18n/ko.js",
- "dist/js/i18n/lt.js",
- "dist/js/i18n/lv.js",
- "dist/js/i18n/mk.js",
- "dist/js/i18n/ms.js",
- "dist/js/i18n/nb.js",
- "dist/js/i18n/ne.js",
- "dist/js/i18n/nl.js",
- "dist/js/i18n/pl.js",
- "dist/js/i18n/ps.js",
- "dist/js/i18n/pt-BR.js",
- "dist/js/i18n/pt.js",
- "dist/js/i18n/ro.js",
- "dist/js/i18n/ru.js",
- "dist/js/i18n/sk.js",
- "dist/js/i18n/sl.js",
- "dist/js/i18n/sq.js",
- "dist/js/i18n/sr-Cyrl.js",
- "dist/js/i18n/sr.js",
- "dist/js/i18n/sv.js",
- "dist/js/i18n/th.js",
- "dist/js/i18n/tk.js",
- "dist/js/i18n/tr.js",
- "dist/js/i18n/uk.js",
- "dist/js/i18n/vi.js",
- "dist/js/i18n/zh-CN.js",
- "dist/js/i18n/zh-TW.js"
- ]
+ "destination": "wwwroot/lib/select2/"
},
{
"library": "leaflet@1.7.1",
- "destination": "wwwroot/lib/leaflet/",
- "files": [
- "dist/images/layers-2x.png",
- "dist/images/layers.png",
- "dist/images/marker-icon-2x.png",
- "dist/images/marker-icon.png",
- "dist/images/marker-shadow.png",
- "dist/leaflet-src.esm.js",
- "dist/leaflet-src.esm.js.map",
- "dist/leaflet-src.js",
- "dist/leaflet-src.js.map",
- "dist/leaflet.css",
- "dist/leaflet.js",
- "dist/leaflet.js.map",
- "dist/reference-1.6.0-newleafdoc.html",
- "dist/reference-1.6.0-oldleafdoc.html",
- "dist/reference-1.6.0.html"
- ]
+ "destination": "wwwroot/lib/leaflet/"
},
{
"library": "moment@2.24.0",
- "destination": "wwwroot/lib/moment/",
- "files": [
- "min/locales.js",
- "min/locales.min.js",
- "min/moment-with-locales.js",
- "min/moment-with-locales.min.js",
- "min/moment.min.js"
- ]
+ "destination": "wwwroot/lib/moment/"
},
{
"library": "typed.js@2.0.12",
- "destination": "wwwroot/lib/typed.js/",
- "files": [
- "lib/typed.min.js",
- "lib/typed.min.js.map",
- "lib/typed.js"
- ]
+ "destination": "wwwroot/lib/typed.js/"
},
{
"library": "@selectize/selectize@0.13.5",
- "destination": "wwwroot/lib/selectize/selectize/",
- "files": [
- "dist/css/selectize.bootstrap2.css",
- "dist/css/selectize.bootstrap3.css",
- "dist/css/selectize.bootstrap4.css",
- "dist/css/selectize.bootstrap5.css",
- "dist/css/selectize.css",
- "dist/css/selectize.default.css",
- "dist/css/selectize.legacy.css",
- "dist/js/selectize.js",
- "dist/js/selectize.min.js",
- "dist/js/standalone/selectize.js",
- "dist/js/standalone/selectize.min.js",
- "dist/less/selectize.bootstrap2.less",
- "dist/less/selectize.bootstrap3.less",
- "dist/less/selectize.default.less",
- "dist/less/selectize.legacy.less",
- "dist/less/selectize.less",
- "dist/less/plugins/drag_drop.less",
- "dist/less/plugins/dropdown_header.less",
- "dist/less/plugins/optgroup_columns.less",
- "dist/less/plugins/remove_button.less",
- "dist/scss/selectize.bootstrap3.scss",
- "dist/scss/selectize.bootstrap4.scss",
- "dist/scss/selectize.bootstrap5.scss",
- "dist/scss/selectize.default.scss",
- "dist/scss/selectize.scss",
- "dist/scss/plugins/drag_drop.scss",
- "dist/scss/plugins/dropdown_header.scss",
- "dist/scss/plugins/optgroup_columns.scss",
- "dist/scss/plugins/remove_button.scss",
- "dist/vendor/bootstrap4/bootstrap-grid.scss",
- "dist/vendor/bootstrap4/bootstrap-reboot.scss",
- "dist/vendor/bootstrap4/bootstrap.scss",
- "dist/vendor/bootstrap4/_alert.scss",
- "dist/vendor/bootstrap4/_badge.scss",
- "dist/vendor/bootstrap4/_breadcrumb.scss",
- "dist/vendor/bootstrap4/_button-group.scss",
- "dist/vendor/bootstrap4/_buttons.scss",
- "dist/vendor/bootstrap4/_card.scss",
- "dist/vendor/bootstrap4/_carousel.scss",
- "dist/vendor/bootstrap4/_close.scss",
- "dist/vendor/bootstrap4/_code.scss",
- "dist/vendor/bootstrap4/_custom-forms.scss",
- "dist/vendor/bootstrap4/_dropdown.scss",
- "dist/vendor/bootstrap4/_forms.scss",
- "dist/vendor/bootstrap4/_functions.scss",
- "dist/vendor/bootstrap4/_grid.scss",
- "dist/vendor/bootstrap4/_images.scss",
- "dist/vendor/bootstrap4/_input-group.scss",
- "dist/vendor/bootstrap4/_jumbotron.scss",
- "dist/vendor/bootstrap4/_list-group.scss",
- "dist/vendor/bootstrap4/_media.scss",
- "dist/vendor/bootstrap4/_mixins.scss",
- "dist/vendor/bootstrap4/_modal.scss",
- "dist/vendor/bootstrap4/_nav.scss",
- "dist/vendor/bootstrap4/_navbar.scss",
- "dist/vendor/bootstrap4/_pagination.scss",
- "dist/vendor/bootstrap4/_popover.scss",
- "dist/vendor/bootstrap4/_print.scss",
- "dist/vendor/bootstrap4/_progress.scss",
- "dist/vendor/bootstrap4/_reboot.scss",
- "dist/vendor/bootstrap4/_root.scss",
- "dist/vendor/bootstrap4/_spinners.scss",
- "dist/vendor/bootstrap4/_tables.scss",
- "dist/vendor/bootstrap4/_toasts.scss",
- "dist/vendor/bootstrap4/_tooltip.scss",
- "dist/vendor/bootstrap4/_transitions.scss",
- "dist/vendor/bootstrap4/_type.scss",
- "dist/vendor/bootstrap4/_utilities.scss",
- "dist/vendor/bootstrap4/_variables.scss",
- "dist/vendor/bootstrap4/mixins/_alert.scss",
- "dist/vendor/bootstrap4/mixins/_background-variant.scss",
- "dist/vendor/bootstrap4/mixins/_badge.scss",
- "dist/vendor/bootstrap4/mixins/_border-radius.scss",
- "dist/vendor/bootstrap4/mixins/_box-shadow.scss",
- "dist/vendor/bootstrap4/mixins/_breakpoints.scss",
- "dist/vendor/bootstrap4/mixins/_buttons.scss",
- "dist/vendor/bootstrap4/mixins/_caret.scss",
- "dist/vendor/bootstrap4/mixins/_clearfix.scss",
- "dist/vendor/bootstrap4/mixins/_deprecate.scss",
- "dist/vendor/bootstrap4/mixins/_float.scss",
- "dist/vendor/bootstrap4/mixins/_forms.scss",
- "dist/vendor/bootstrap4/mixins/_gradients.scss",
- "dist/vendor/bootstrap4/mixins/_grid-framework.scss",
- "dist/vendor/bootstrap4/mixins/_grid.scss",
- "dist/vendor/bootstrap4/mixins/_hover.scss",
- "dist/vendor/bootstrap4/mixins/_image.scss",
- "dist/vendor/bootstrap4/mixins/_list-group.scss",
- "dist/vendor/bootstrap4/mixins/_lists.scss",
- "dist/vendor/bootstrap4/mixins/_nav-divider.scss",
- "dist/vendor/bootstrap4/mixins/_pagination.scss",
- "dist/vendor/bootstrap4/mixins/_reset-text.scss",
- "dist/vendor/bootstrap4/mixins/_resize.scss",
- "dist/vendor/bootstrap4/mixins/_screen-reader.scss",
- "dist/vendor/bootstrap4/mixins/_size.scss",
- "dist/vendor/bootstrap4/mixins/_table-row.scss",
- "dist/vendor/bootstrap4/mixins/_text-emphasis.scss",
- "dist/vendor/bootstrap4/mixins/_text-hide.scss",
- "dist/vendor/bootstrap4/mixins/_text-truncate.scss",
- "dist/vendor/bootstrap4/mixins/_transition.scss",
- "dist/vendor/bootstrap4/mixins/_visibility.scss",
- "dist/vendor/bootstrap4/utilities/_align.scss",
- "dist/vendor/bootstrap4/utilities/_background.scss",
- "dist/vendor/bootstrap4/utilities/_borders.scss",
- "dist/vendor/bootstrap4/utilities/_clearfix.scss",
- "dist/vendor/bootstrap4/utilities/_display.scss",
- "dist/vendor/bootstrap4/utilities/_embed.scss",
- "dist/vendor/bootstrap4/utilities/_flex.scss",
- "dist/vendor/bootstrap4/utilities/_float.scss",
- "dist/vendor/bootstrap4/utilities/_interactions.scss",
- "dist/vendor/bootstrap4/utilities/_overflow.scss",
- "dist/vendor/bootstrap4/utilities/_position.scss",
- "dist/vendor/bootstrap4/utilities/_screenreaders.scss",
- "dist/vendor/bootstrap4/utilities/_shadows.scss",
- "dist/vendor/bootstrap4/utilities/_sizing.scss",
- "dist/vendor/bootstrap4/utilities/_spacing.scss",
- "dist/vendor/bootstrap4/utilities/_stretched-link.scss",
- "dist/vendor/bootstrap4/utilities/_text.scss",
- "dist/vendor/bootstrap4/utilities/_visibility.scss",
- "dist/vendor/bootstrap4/vendor/_rfs.scss",
- "dist/vendor/bootstrap5/bootstrap-grid.scss",
- "dist/vendor/bootstrap5/bootstrap-reboot.scss",
- "dist/vendor/bootstrap5/bootstrap-utilities.scss",
- "dist/vendor/bootstrap5/bootstrap.scss",
- "dist/vendor/bootstrap5/_accordion.scss",
- "dist/vendor/bootstrap5/_alert.scss",
- "dist/vendor/bootstrap5/_badge.scss",
- "dist/vendor/bootstrap5/_breadcrumb.scss",
- "dist/vendor/bootstrap5/_button-group.scss",
- "dist/vendor/bootstrap5/_buttons.scss",
- "dist/vendor/bootstrap5/_card.scss",
- "dist/vendor/bootstrap5/_carousel.scss",
- "dist/vendor/bootstrap5/_close.scss",
- "dist/vendor/bootstrap5/_containers.scss",
- "dist/vendor/bootstrap5/_dropdown.scss",
- "dist/vendor/bootstrap5/_forms.scss",
- "dist/vendor/bootstrap5/_functions.scss",
- "dist/vendor/bootstrap5/_grid.scss",
- "dist/vendor/bootstrap5/_helpers.scss",
- "dist/vendor/bootstrap5/_images.scss",
- "dist/vendor/bootstrap5/_list-group.scss",
- "dist/vendor/bootstrap5/_mixins.scss",
- "dist/vendor/bootstrap5/_modal.scss",
- "dist/vendor/bootstrap5/_nav.scss",
- "dist/vendor/bootstrap5/_navbar.scss",
- "dist/vendor/bootstrap5/_offcanvas.scss",
- "dist/vendor/bootstrap5/_pagination.scss",
- "dist/vendor/bootstrap5/_placeholders.scss",
- "dist/vendor/bootstrap5/_popover.scss",
- "dist/vendor/bootstrap5/_progress.scss",
- "dist/vendor/bootstrap5/_reboot.scss",
- "dist/vendor/bootstrap5/_root.scss",
- "dist/vendor/bootstrap5/_spinners.scss",
- "dist/vendor/bootstrap5/_tables.scss",
- "dist/vendor/bootstrap5/_toasts.scss",
- "dist/vendor/bootstrap5/_tooltip.scss",
- "dist/vendor/bootstrap5/_transitions.scss",
- "dist/vendor/bootstrap5/_type.scss",
- "dist/vendor/bootstrap5/_utilities.scss",
- "dist/vendor/bootstrap5/_variables.scss",
- "dist/vendor/bootstrap5/forms/_floating-labels.scss",
- "dist/vendor/bootstrap5/forms/_form-check.scss",
- "dist/vendor/bootstrap5/forms/_form-control.scss",
- "dist/vendor/bootstrap5/forms/_form-range.scss",
- "dist/vendor/bootstrap5/forms/_form-select.scss",
- "dist/vendor/bootstrap5/forms/_form-text.scss",
- "dist/vendor/bootstrap5/forms/_input-group.scss",
- "dist/vendor/bootstrap5/forms/_labels.scss",
- "dist/vendor/bootstrap5/forms/_validation.scss",
- "dist/vendor/bootstrap5/helpers/_clearfix.scss",
- "dist/vendor/bootstrap5/helpers/_colored-links.scss",
- "dist/vendor/bootstrap5/helpers/_position.scss",
- "dist/vendor/bootstrap5/helpers/_ratio.scss",
- "dist/vendor/bootstrap5/helpers/_stacks.scss",
- "dist/vendor/bootstrap5/helpers/_stretched-link.scss",
- "dist/vendor/bootstrap5/helpers/_text-truncation.scss",
- "dist/vendor/bootstrap5/helpers/_visually-hidden.scss",
- "dist/vendor/bootstrap5/helpers/_vr.scss",
- "dist/vendor/bootstrap5/mixins/_alert.scss",
- "dist/vendor/bootstrap5/mixins/_backdrop.scss",
- "dist/vendor/bootstrap5/mixins/_border-radius.scss",
- "dist/vendor/bootstrap5/mixins/_box-shadow.scss",
- "dist/vendor/bootstrap5/mixins/_breakpoints.scss",
- "dist/vendor/bootstrap5/mixins/_buttons.scss",
- "dist/vendor/bootstrap5/mixins/_caret.scss",
- "dist/vendor/bootstrap5/mixins/_clearfix.scss",
- "dist/vendor/bootstrap5/mixins/_color-scheme.scss",
- "dist/vendor/bootstrap5/mixins/_container.scss",
- "dist/vendor/bootstrap5/mixins/_deprecate.scss",
- "dist/vendor/bootstrap5/mixins/_forms.scss",
- "dist/vendor/bootstrap5/mixins/_gradients.scss",
- "dist/vendor/bootstrap5/mixins/_grid.scss",
- "dist/vendor/bootstrap5/mixins/_image.scss",
- "dist/vendor/bootstrap5/mixins/_list-group.scss",
- "dist/vendor/bootstrap5/mixins/_lists.scss",
- "dist/vendor/bootstrap5/mixins/_pagination.scss",
- "dist/vendor/bootstrap5/mixins/_reset-text.scss",
- "dist/vendor/bootstrap5/mixins/_resize.scss",
- "dist/vendor/bootstrap5/mixins/_table-variants.scss",
- "dist/vendor/bootstrap5/mixins/_text-truncate.scss",
- "dist/vendor/bootstrap5/mixins/_transition.scss",
- "dist/vendor/bootstrap5/mixins/_utilities.scss",
- "dist/vendor/bootstrap5/mixins/_visually-hidden.scss",
- "dist/vendor/bootstrap5/utilities/_api.scss",
- "dist/vendor/bootstrap5/vendor/_rfs.scss"
- ]
+ "destination": "wwwroot/lib/selectize/selectize/"
},
{
"library": "@geoman-io/leaflet-geoman-free@2.13.0",
@@ -601,581 +235,39 @@
},
{
"library": "@claviska/jquery-minicolors@2.3.6",
- "destination": "wwwroot/lib/claviska/jquery-minicolors/",
- "files": [
- "jquery.minicolors.css",
- "jquery.minicolors.js",
- "jquery.minicolors.min.js",
- "jquery.minicolors.png"
- ]
+ "destination": "wwwroot/lib/claviska/jquery-minicolors/"
},
{
- "library": "@algolia/autocomplete-js@1.8.3",
+ "library": "@algolia/autocomplete-js@1.18.1",
"destination": "wwwroot/lib/algolia/autocomplete-js/"
},
{
- "library": "@algolia/autocomplete-theme-classic@1.6.3",
+ "library": "@algolia/autocomplete-theme-classic@1.18.1",
"destination": "wwwroot/lib/algolia/autocomplete-theme-classic/"
},
{
"library": "bootstrap-select@1.13.18",
- "destination": "wwwroot/lib/bootstrap-select/",
- "files": [
- "dist/css/bootstrap-select.css",
- "dist/css/bootstrap-select.css.map",
- "dist/css/bootstrap-select.min.css",
- "dist/js/bootstrap-select.js",
- "dist/js/bootstrap-select.js.map",
- "dist/js/bootstrap-select.min.js",
- "dist/js/bootstrap-select.min.js.map",
- "dist/js/i18n/defaults-am_ET.js",
- "dist/js/i18n/defaults-am_ET.js.map",
- "dist/js/i18n/defaults-am_ET.min.js",
- "dist/js/i18n/defaults-ar_AR.js",
- "dist/js/i18n/defaults-ar_AR.js.map",
- "dist/js/i18n/defaults-ar_AR.min.js",
- "dist/js/i18n/defaults-bg_BG.js",
- "dist/js/i18n/defaults-bg_BG.js.map",
- "dist/js/i18n/defaults-bg_BG.min.js",
- "dist/js/i18n/defaults-cs_CZ.js",
- "dist/js/i18n/defaults-cs_CZ.js.map",
- "dist/js/i18n/defaults-cs_CZ.min.js",
- "dist/js/i18n/defaults-da_DK.js",
- "dist/js/i18n/defaults-da_DK.js.map",
- "dist/js/i18n/defaults-da_DK.min.js",
- "dist/js/i18n/defaults-de_DE.js",
- "dist/js/i18n/defaults-de_DE.js.map",
- "dist/js/i18n/defaults-de_DE.min.js",
- "dist/js/i18n/defaults-en_US.js",
- "dist/js/i18n/defaults-en_US.js.map",
- "dist/js/i18n/defaults-en_US.min.js",
- "dist/js/i18n/defaults-es_CL.js",
- "dist/js/i18n/defaults-es_CL.js.map",
- "dist/js/i18n/defaults-es_CL.min.js",
- "dist/js/i18n/defaults-es_ES.js",
- "dist/js/i18n/defaults-es_ES.js.map",
- "dist/js/i18n/defaults-es_ES.min.js",
- "dist/js/i18n/defaults-et_EE.js",
- "dist/js/i18n/defaults-et_EE.js.map",
- "dist/js/i18n/defaults-et_EE.min.js",
- "dist/js/i18n/defaults-eu.js",
- "dist/js/i18n/defaults-eu.js.map",
- "dist/js/i18n/defaults-eu.min.js",
- "dist/js/i18n/defaults-fa_IR.js",
- "dist/js/i18n/defaults-fa_IR.js.map",
- "dist/js/i18n/defaults-fa_IR.min.js",
- "dist/js/i18n/defaults-fi_FI.js",
- "dist/js/i18n/defaults-fi_FI.js.map",
- "dist/js/i18n/defaults-fi_FI.min.js",
- "dist/js/i18n/defaults-fr_FR.js",
- "dist/js/i18n/defaults-fr_FR.js.map",
- "dist/js/i18n/defaults-fr_FR.min.js",
- "dist/js/i18n/defaults-hr_HR.js",
- "dist/js/i18n/defaults-hr_HR.js.map",
- "dist/js/i18n/defaults-hr_HR.min.js",
- "dist/js/i18n/defaults-hu_HU.js",
- "dist/js/i18n/defaults-hu_HU.js.map",
- "dist/js/i18n/defaults-hu_HU.min.js",
- "dist/js/i18n/defaults-id_ID.js",
- "dist/js/i18n/defaults-id_ID.js.map",
- "dist/js/i18n/defaults-id_ID.min.js",
- "dist/js/i18n/defaults-it_IT.js",
- "dist/js/i18n/defaults-it_IT.js.map",
- "dist/js/i18n/defaults-it_IT.min.js",
- "dist/js/i18n/defaults-ja_JP.js",
- "dist/js/i18n/defaults-ja_JP.js.map",
- "dist/js/i18n/defaults-ja_JP.min.js",
- "dist/js/i18n/defaults-kh_KM.js",
- "dist/js/i18n/defaults-kh_KM.js.map",
- "dist/js/i18n/defaults-kh_KM.min.js",
- "dist/js/i18n/defaults-ko_KR.js",
- "dist/js/i18n/defaults-ko_KR.js.map",
- "dist/js/i18n/defaults-ko_KR.min.js",
- "dist/js/i18n/defaults-lt_LT.js",
- "dist/js/i18n/defaults-lt_LT.js.map",
- "dist/js/i18n/defaults-lt_LT.min.js",
- "dist/js/i18n/defaults-lv_LV.js",
- "dist/js/i18n/defaults-lv_LV.js.map",
- "dist/js/i18n/defaults-lv_LV.min.js",
- "dist/js/i18n/defaults-nb_NO.js",
- "dist/js/i18n/defaults-nb_NO.js.map",
- "dist/js/i18n/defaults-nb_NO.min.js",
- "dist/js/i18n/defaults-nl_NL.js",
- "dist/js/i18n/defaults-nl_NL.js.map",
- "dist/js/i18n/defaults-nl_NL.min.js",
- "dist/js/i18n/defaults-pl_PL.js",
- "dist/js/i18n/defaults-pl_PL.js.map",
- "dist/js/i18n/defaults-pl_PL.min.js",
- "dist/js/i18n/defaults-pt_BR.js",
- "dist/js/i18n/defaults-pt_BR.js.map",
- "dist/js/i18n/defaults-pt_BR.min.js",
- "dist/js/i18n/defaults-pt_PT.js",
- "dist/js/i18n/defaults-pt_PT.js.map",
- "dist/js/i18n/defaults-pt_PT.min.js",
- "dist/js/i18n/defaults-ro_RO.js",
- "dist/js/i18n/defaults-ro_RO.js.map",
- "dist/js/i18n/defaults-ro_RO.min.js",
- "dist/js/i18n/defaults-ru_RU.js",
- "dist/js/i18n/defaults-ru_RU.js.map",
- "dist/js/i18n/defaults-ru_RU.min.js",
- "dist/js/i18n/defaults-sk_SK.js",
- "dist/js/i18n/defaults-sk_SK.js.map",
- "dist/js/i18n/defaults-sk_SK.min.js",
- "dist/js/i18n/defaults-sl_SI.js",
- "dist/js/i18n/defaults-sl_SI.js.map",
- "dist/js/i18n/defaults-sl_SI.min.js",
- "dist/js/i18n/defaults-sr_SP.js",
- "dist/js/i18n/defaults-sr_SP.js.map",
- "dist/js/i18n/defaults-sr_SP.min.js",
- "dist/js/i18n/defaults-sv_SE.js",
- "dist/js/i18n/defaults-sv_SE.js.map",
- "dist/js/i18n/defaults-sv_SE.min.js",
- "dist/js/i18n/defaults-th_TH.js",
- "dist/js/i18n/defaults-th_TH.js.map",
- "dist/js/i18n/defaults-th_TH.min.js",
- "dist/js/i18n/defaults-tr_TR.js",
- "dist/js/i18n/defaults-tr_TR.js.map",
- "dist/js/i18n/defaults-tr_TR.min.js",
- "dist/js/i18n/defaults-ua_UA.js",
- "dist/js/i18n/defaults-ua_UA.js.map",
- "dist/js/i18n/defaults-ua_UA.min.js",
- "dist/js/i18n/defaults-vi_VN.js",
- "dist/js/i18n/defaults-vi_VN.js.map",
- "dist/js/i18n/defaults-vi_VN.min.js",
- "dist/js/i18n/defaults-zh_CN.js",
- "dist/js/i18n/defaults-zh_CN.js.map",
- "dist/js/i18n/defaults-zh_CN.min.js",
- "dist/js/i18n/defaults-zh_TW.js",
- "dist/js/i18n/defaults-zh_TW.js.map",
- "dist/js/i18n/defaults-zh_TW.min.js"
- ]
+ "destination": "wwwroot/lib/bootstrap-select/"
},
{
"library": "tw-elements@1.0.0",
- "destination": "wwwroot/lib/tw-elements/",
- "files": [
- "dist/index.html",
- "dist/package.json",
- "dist/plugin.cjs",
- "dist/README.md",
- "dist/css/tw-elements.min.css",
- "dist/js/chart.es.js",
- "dist/js/chart.es.js.map",
- "dist/js/chartjs-plugin-datalabels.es.js",
- "dist/js/chartjs-plugin-datalabels.es.js.map",
- "dist/js/tw-elements.es.min.js",
- "dist/js/tw-elements.es.min.js.map",
- "dist/js/tw-elements.umd.min.js",
- "dist/js/tw-elements.umd.min.js.map",
- "dist/src/js/autoinit/autoinitCallbacks.js",
- "dist/src/js/autoinit/chartsInit.js",
- "dist/src/js/autoinit/index.js",
- "dist/src/js/autoinit/jqueryInit.js",
- "dist/src/js/autoinit/Register.js",
- "dist/src/js/components/alert.js",
- "dist/src/js/components/button.js",
- "dist/src/js/components/carousel.js",
- "dist/src/js/components/collapse.js",
- "dist/src/js/components/dropdown.js",
- "dist/src/js/components/lightbox.js",
- "dist/src/js/components/modal.js",
- "dist/src/js/components/offcanvas.js",
- "dist/src/js/components/popconfirm.js",
- "dist/src/js/components/popover.js",
- "dist/src/js/components/rating.js",
- "dist/src/js/components/stepper.js",
- "dist/src/js/components/toast.js",
- "dist/src/js/components/tooltip.js",
- "dist/src/js/components/chips/chip.js",
- "dist/src/js/components/chips/index.js",
- "dist/src/js/components/chips/templates.js",
- "dist/src/js/content-styles/animate.js",
- "dist/src/js/data/chart/chartDefaults.js",
- "dist/src/js/data/chart/charts.js",
- "dist/src/js/data/datatables/index.js",
- "dist/src/js/data/datatables/util.js",
- "dist/src/js/data/datatables/html/columns.js",
- "dist/src/js/data/datatables/html/pagination.js",
- "dist/src/js/data/datatables/html/rows.js",
- "dist/src/js/data/datatables/html/table.js",
- "dist/src/js/dom/data.js",
- "dist/src/js/dom/event-handler.js",
- "dist/src/js/dom/manipulator.js",
- "dist/src/js/dom/selector-engine.js",
- "dist/src/js/forms/datepicker/date-utils.js",
- "dist/src/js/forms/datepicker/index.js",
- "dist/src/js/forms/datepicker/templates.js",
- "dist/src/js/forms/dateTimepicker/index.js",
- "dist/src/js/forms/dateTimepicker/templates.js",
- "dist/src/js/forms/dateTimepicker/utils.js",
- "dist/src/js/forms/select/index.js",
- "dist/src/js/forms/select/select-option.js",
- "dist/src/js/forms/select/selection-model.js",
- "dist/src/js/forms/select/templates.js",
- "dist/src/js/forms/select/util.js",
- "dist/src/js/forms/timepicker/index.js",
- "dist/src/js/forms/timepicker/templates.js",
- "dist/src/js/forms/timepicker/utils.js",
- "dist/src/js/forms/validation/rules.js",
- "dist/src/js/forms/validation/validation.js",
- "dist/src/js/forms/input.js",
- "dist/src/js/methods/clipboard.js",
- "dist/src/js/methods/infinite-scroll.js",
- "dist/src/js/methods/lazy-load.js",
- "dist/src/js/methods/perfect-scrollbar.js",
- "dist/src/js/methods/ripple.js",
- "dist/src/js/methods/smooth-scroll.js",
- "dist/src/js/methods/sticky.js",
- "dist/src/js/methods/loading-management/index.js",
- "dist/src/js/methods/loading-management/templates.js",
- "dist/src/js/methods/touch/index.js",
- "dist/src/js/methods/touch/pan.js",
- "dist/src/js/methods/touch/pinch.js",
- "dist/src/js/methods/touch/press.js",
- "dist/src/js/methods/touch/rotate.js",
- "dist/src/js/methods/touch/swipe.js",
- "dist/src/js/methods/touch/tap.js",
- "dist/src/js/methods/touch/touchUtil.js",
- "dist/src/js/navigation/scrollspy.js",
- "dist/src/js/navigation/sidenav.js",
- "dist/src/js/navigation/tab.js",
- "dist/src/js/templates/themeSwitcher.js",
- "dist/src/js/util/add-perfect-scrollbar-styles.js",
- "dist/src/js/util/backdrop.js",
- "dist/src/js/util/component-functions.js",
- "dist/src/js/util/focusTrap.js",
- "dist/src/js/util/index.js",
- "dist/src/js/util/keycodes.js",
- "dist/src/js/util/sanitizer.js",
- "dist/src/js/util/scrollbar.js",
- "dist/src/js/util/stack.js",
- "dist/src/js/util/touch/index.js",
- "dist/src/js/util/touch/swipe.js",
- "dist/src/js/util/touch/touchUtil.js",
- "dist/src/js/base-component.js",
- "dist/src/js/index.es.js",
- "dist/src/js/index.umd.js",
- "dist/src/js/plugin.cjs",
- "dist/src/js/theme.js",
- "dist/src/scss/tailwind.scss",
- "types/tw-elements.d.ts",
- "package.json",
- "license",
- "README.md"
- ]
+ "destination": "wwwroot/lib/tw-elements/"
},
{
"library": "tailwindcss@3.3.3",
- "destination": "wwwroot/lib/tailwindcss/",
- "files": [
- "base.css",
- "CHANGELOG.md",
- "colors.d.ts",
- "colors.js",
- "components.css",
- "defaultConfig.d.ts",
- "defaultConfig.js",
- "defaultTheme.d.ts",
- "defaultTheme.js",
- "LICENSE",
- "loadConfig.d.ts",
- "loadConfig.js",
- "package.json",
- "plugin.d.ts",
- "plugin.js",
- "prettier.config.js",
- "README.md",
- "resolveConfig.d.ts",
- "resolveConfig.js",
- "screens.css",
- "tailwind.css",
- "utilities.css",
- "variants.css",
- "lib/cli-peer-dependencies.js",
- "lib/cli.js",
- "lib/corePluginList.js",
- "lib/corePlugins.js",
- "lib/featureFlags.js",
- "lib/index.js",
- "lib/plugin.js",
- "lib/processTailwindFeatures.js",
- "lib/cli/build/deps.js",
- "lib/cli/build/index.js",
- "lib/cli/build/plugin.js",
- "lib/cli/build/utils.js",
- "lib/cli/build/watching.js",
- "lib/cli/help/index.js",
- "lib/cli/init/index.js",
- "lib/cli/index.js",
- "lib/css/LICENSE",
- "lib/css/preflight.css",
- "lib/lib/cacheInvalidation.js",
- "lib/lib/collapseAdjacentRules.js",
- "lib/lib/collapseDuplicateDeclarations.js",
- "lib/lib/content.js",
- "lib/lib/defaultExtractor.js",
- "lib/lib/detectNesting.js",
- "lib/lib/evaluateTailwindFunctions.js",
- "lib/lib/expandApplyAtRules.js",
- "lib/lib/expandTailwindAtRules.js",
- "lib/lib/findAtConfigPath.js",
- "lib/lib/generateRules.js",
- "lib/lib/getModuleDependencies.js",
- "lib/lib/load-config.js",
- "lib/lib/normalizeTailwindDirectives.js",
- "lib/lib/offsets.js",
- "lib/lib/partitionApplyAtRules.js",
- "lib/lib/regex.js",
- "lib/lib/remap-bitfield.js",
- "lib/lib/resolveDefaultsAtRules.js",
- "lib/lib/setupContextUtils.js",
- "lib/lib/setupTrackingContext.js",
- "lib/lib/sharedState.js",
- "lib/lib/substituteScreenAtRules.js",
- "lib/oxide/cli.js",
- "lib/oxide/postcss-plugin.js",
- "lib/oxide/cli/build/deps.js",
- "lib/oxide/cli/build/index.js",
- "lib/oxide/cli/build/plugin.js",
- "lib/oxide/cli/build/utils.js",
- "lib/oxide/cli/build/watching.js",
- "lib/oxide/cli/help/index.js",
- "lib/oxide/cli/init/index.js",
- "lib/oxide/cli/index.js",
- "lib/postcss-plugins/nesting/index.js",
- "lib/postcss-plugins/nesting/plugin.js",
- "lib/postcss-plugins/nesting/README.md",
- "lib/public/colors.js",
- "lib/public/create-plugin.js",
- "lib/public/default-config.js",
- "lib/public/default-theme.js",
- "lib/public/load-config.js",
- "lib/public/resolve-config.js",
- "lib/util/applyImportantSelector.js",
- "lib/util/bigSign.js",
- "lib/util/buildMediaQuery.js",
- "lib/util/cloneDeep.js",
- "lib/util/cloneNodes.js",
- "lib/util/color.js",
- "lib/util/colorNames.js",
- "lib/util/configurePlugins.js",
- "lib/util/createPlugin.js",
- "lib/util/createUtilityPlugin.js",
- "lib/util/dataTypes.js",
- "lib/util/defaults.js",
- "lib/util/escapeClassName.js",
- "lib/util/escapeCommas.js",
- "lib/util/flattenColorPalette.js",
- "lib/util/formatVariantSelector.js",
- "lib/util/getAllConfigs.js",
- "lib/util/hashConfig.js",
- "lib/util/isKeyframeRule.js",
- "lib/util/isPlainObject.js",
- "lib/util/isSyntacticallyValidPropertyValue.js",
- "lib/util/log.js",
- "lib/util/nameClass.js",
- "lib/util/negateValue.js",
- "lib/util/normalizeConfig.js",
- "lib/util/normalizeScreens.js",
- "lib/util/parseAnimationValue.js",
- "lib/util/parseBoxShadowValue.js",
- "lib/util/parseDependency.js",
- "lib/util/parseGlob.js",
- "lib/util/parseObjectStyles.js",
- "lib/util/pluginUtils.js",
- "lib/util/prefixSelector.js",
- "lib/util/pseudoElements.js",
- "lib/util/removeAlphaVariables.js",
- "lib/util/resolveConfig.js",
- "lib/util/resolveConfigPath.js",
- "lib/util/responsive.js",
- "lib/util/splitAtTopLevelOnly.js",
- "lib/util/tap.js",
- "lib/util/toColorValue.js",
- "lib/util/toPath.js",
- "lib/util/transformThemeValue.js",
- "lib/util/validateConfig.js",
- "lib/util/validateFormalSyntax.js",
- "lib/util/withAlphaVariable.js",
- "lib/value-parser/index.d.js",
- "lib/value-parser/index.js",
- "lib/value-parser/LICENSE",
- "lib/value-parser/parse.js",
- "lib/value-parser/README.md",
- "lib/value-parser/stringify.js",
- "lib/value-parser/unit.js",
- "lib/value-parser/walk.js",
- "nesting/index.js",
- "peers/index.js",
- "scripts/create-plugin-list.js",
- "scripts/generate-types.js",
- "scripts/release-channel.js",
- "scripts/release-notes.js",
- "scripts/swap-engines.js",
- "scripts/type-utils.js",
- "stubs/.gitignore",
- "stubs/.prettierrc.json",
- "stubs/config.full.js",
- "stubs/config.simple.js",
- "stubs/postcss.config.cjs",
- "stubs/postcss.config.js",
- "stubs/tailwind.config.cjs",
- "stubs/tailwind.config.js",
- "stubs/tailwind.config.ts",
- "types/config.d.ts",
- "types/index.d.ts",
- "types/generated/.gitkeep",
- "types/generated/colors.d.ts",
- "types/generated/corePluginList.d.ts",
- "types/generated/default-theme.d.ts"
- ]
+ "destination": "wwwroot/lib/tailwindcss/"
},
{
"library": "@tailwindcss/postcss7-compat@2.2.17",
- "destination": "wwwroot/lib/tailwindcss/postcss7-compat/",
- "files": [
- "dist/base.css",
- "dist/base.min.css",
- "dist/components.css",
- "dist/components.min.css",
- "dist/tailwind-dark.css",
- "dist/tailwind-dark.min.css",
- "dist/tailwind-experimental.css",
- "dist/tailwind-experimental.min.css",
- "dist/tailwind.css",
- "dist/tailwind.min.css",
- "dist/utilities.css",
- "dist/utilities.min.css",
- "stubs/defaultConfig.stub.js",
- "stubs/defaultPostCssConfig.stub.js",
- "stubs/simpleConfig.stub.js",
- "nesting/index.js",
- "nesting/plugin.js",
- "nesting/README.md",
- "README.md",
- "LICENSE",
- "package.json"
- ]
+ "destination": "wwwroot/lib/tailwindcss/postcss7-compat/"
},
{
"library": "postcss@7.0.39",
- "destination": "wwwroot/lib/postcss/",
- "files": [
- "LICENSE",
- "package.json",
- "README.md",
- "lib/at-rule.js",
- "lib/comment.js",
- "lib/container.js",
- "lib/css-syntax-error.js",
- "lib/declaration.js",
- "lib/input.js",
- "lib/lazy-result.js",
- "lib/list.js",
- "lib/map-generator.js",
- "lib/node.js",
- "lib/parse.js",
- "lib/parser.js",
- "lib/postcss.d.ts",
- "lib/postcss.js",
- "lib/previous-map.js",
- "lib/processor.js",
- "lib/result.js",
- "lib/root.js",
- "lib/rule.js",
- "lib/stringifier.js",
- "lib/stringify.js",
- "lib/terminal-highlight.js",
- "lib/tokenize.js",
- "lib/vendor.js",
- "lib/warn-once.js",
- "lib/warning.js"
- ]
+ "destination": "wwwroot/lib/postcss/"
},
{
"library": "autoprefixer@9.8.8",
- "destination": "wwwroot/lib/autoprefixer/",
- "files": [
- "LICENSE",
- "package.json",
- "README.md",
- "bin/autoprefixer",
- "data/prefixes.js",
- "lib/at-rule.js",
- "lib/autoprefixer.js",
- "lib/brackets.js",
- "lib/browsers.js",
- "lib/declaration.js",
- "lib/info.js",
- "lib/old-selector.js",
- "lib/old-value.js",
- "lib/prefixer.js",
- "lib/prefixes.js",
- "lib/processor.js",
- "lib/resolution.js",
- "lib/selector.js",
- "lib/supports.js",
- "lib/transition.js",
- "lib/utils.js",
- "lib/value.js",
- "lib/hacks/align-content.js",
- "lib/hacks/align-items.js",
- "lib/hacks/align-self.js",
- "lib/hacks/animation.js",
- "lib/hacks/appearance.js",
- "lib/hacks/backdrop-filter.js",
- "lib/hacks/background-clip.js",
- "lib/hacks/background-size.js",
- "lib/hacks/block-logical.js",
- "lib/hacks/border-image.js",
- "lib/hacks/border-radius.js",
- "lib/hacks/break-props.js",
- "lib/hacks/color-adjust.js",
- "lib/hacks/cross-fade.js",
- "lib/hacks/display-flex.js",
- "lib/hacks/display-grid.js",
- "lib/hacks/filter-value.js",
- "lib/hacks/filter.js",
- "lib/hacks/flex-basis.js",
- "lib/hacks/flex-direction.js",
- "lib/hacks/flex-flow.js",
- "lib/hacks/flex-grow.js",
- "lib/hacks/flex-shrink.js",
- "lib/hacks/flex-spec.js",
- "lib/hacks/flex-wrap.js",
- "lib/hacks/flex.js",
- "lib/hacks/fullscreen.js",
- "lib/hacks/gradient.js",
- "lib/hacks/grid-area.js",
- "lib/hacks/grid-column-align.js",
- "lib/hacks/grid-end.js",
- "lib/hacks/grid-row-align.js",
- "lib/hacks/grid-row-column.js",
- "lib/hacks/grid-rows-columns.js",
- "lib/hacks/grid-start.js",
- "lib/hacks/grid-template-areas.js",
- "lib/hacks/grid-template.js",
- "lib/hacks/grid-utils.js",
- "lib/hacks/image-rendering.js",
- "lib/hacks/image-set.js",
- "lib/hacks/inline-logical.js",
- "lib/hacks/intrinsic.js",
- "lib/hacks/justify-content.js",
- "lib/hacks/mask-border.js",
- "lib/hacks/mask-composite.js",
- "lib/hacks/order.js",
- "lib/hacks/overscroll-behavior.js",
- "lib/hacks/pixelated.js",
- "lib/hacks/place-self.js",
- "lib/hacks/placeholder-shown.js",
- "lib/hacks/placeholder.js",
- "lib/hacks/text-decoration-skip-ink.js",
- "lib/hacks/text-decoration.js",
- "lib/hacks/text-emphasis-position.js",
- "lib/hacks/transform-decl.js",
- "lib/hacks/user-select.js",
- "lib/hacks/writing-mode.js"
- ]
+ "destination": "wwwroot/lib/autoprefixer/"
},
{
"provider": "unpkg",
@@ -1185,31 +277,12 @@
{
"provider": "unpkg",
"library": "jquery-datetimepicker@2.5.21",
- "destination": "wwwroot/lib/jquery-datetimepicker/",
- "files": [
- "screen/1.png",
- "screen/2.png",
- "screen/3.1.png",
- "screen/3.png",
- "screen/4.png",
- "screen/5.png",
- "screen/6.png",
- "build/jquery.datetimepicker.full.js",
- "build/jquery.datetimepicker.full.min.js",
- "build/jquery.datetimepicker.min.css",
- "build/jquery.datetimepicker.min.js",
- "bower.json",
- "datetimepicker.jquery.json",
- "doc.tpl",
- "index.html",
- "jquery.datetimepicker.css",
- "jquery.datetimepicker.js",
- "jquery.js",
- "karma.conf.js",
- "MIT-LICENSE.txt",
- "package.json",
- "README.md"
- ]
+ "destination": "wwwroot/lib/jquery-datetimepicker/"
+ },
+ {
+ "provider": "jsdelivr",
+ "library": "fullcalendar@3.10.0",
+ "destination": "wwwroot/lib/fullcalendar/"
}
]
}
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/autocomplete.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/autocomplete.js
index c60df01f..055f0bb2 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/autocomplete.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/autocomplete.js
@@ -1,17 +1,14 @@
var _excluded = ["components"];
-
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import { createAutocomplete } from '@algolia/autocomplete-core';
-import { createRef, debounce, getItemsCount } from '@algolia/autocomplete-shared';
+import { createRef, debounce, getItemsCount, warn } from '@algolia/autocomplete-shared';
import htm from 'htm';
import { createAutocompleteDom } from './createAutocompleteDom';
import { createEffectWrapper } from './createEffectWrapper';
@@ -21,16 +18,15 @@ import { getPanelPlacementStyle } from './getPanelPlacementStyle';
import { renderPanel, renderSearchBox } from './render';
import { userAgents } from './userAgents';
import { mergeDeep, pickBy, setProperties } from './utils';
+var instancesCount = 0;
export function autocomplete(options) {
var _createEffectWrapper = createEffectWrapper(),
- runEffect = _createEffectWrapper.runEffect,
- cleanupEffects = _createEffectWrapper.cleanupEffects,
- runEffects = _createEffectWrapper.runEffects;
-
+ runEffect = _createEffectWrapper.runEffect,
+ cleanupEffects = _createEffectWrapper.cleanupEffects,
+ runEffects = _createEffectWrapper.runEffects;
var _createReactiveWrappe = createReactiveWrapper(),
- reactive = _createReactiveWrappe.reactive,
- runReactives = _createReactiveWrappe.runReactives;
-
+ reactive = _createReactiveWrappe.reactive,
+ runReactives = _createReactiveWrappe.runReactives;
var hasNoResultsSourceTemplateRef = createRef(false);
var optionsRef = createRef(options);
var onStateChangeRef = createRef(undefined);
@@ -44,7 +40,6 @@ export function autocomplete(options) {
return createAutocomplete(_objectSpread(_objectSpread({}, props.value.core), {}, {
onStateChange: function onStateChange(params) {
var _onStateChangeRef$cur, _props$value$core$onS, _props$value$core;
-
hasNoResultsSourceTemplateRef.current = params.state.collections.some(function (collection) {
return collection.source.templates.noResults;
});
@@ -53,17 +48,13 @@ export function autocomplete(options) {
},
shouldPanelOpen: optionsRef.current.shouldPanelOpen || function (_ref) {
var state = _ref.state;
-
if (isDetached.value) {
return true;
}
-
var hasItems = getItemsCount(state) > 0;
-
if (!props.value.core.openOnFocus && !state.query) {
return hasItems;
}
-
var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);
return !hasItems && hasNoResultsTemplate || hasItems;
},
@@ -119,7 +110,6 @@ export function autocomplete(options) {
translations: props.value.renderer.translations
});
});
-
function setPanelPosition() {
setProperties(dom.value.panel, {
style: isDetached.value ? {} : getPanelPlacementStyle({
@@ -130,7 +120,6 @@ export function autocomplete(options) {
})
});
}
-
function scheduleRender(state) {
lastStateRef.current = state;
var renderProps = {
@@ -150,7 +139,6 @@ export function autocomplete(options) {
renderSearchBox(renderProps);
renderPanel(render, renderProps);
}
-
runEffect(function () {
var environmentProps = autocomplete.value.getEnvironmentProps({
formElement: dom.value.form,
@@ -167,15 +155,14 @@ export function autocomplete(options) {
runEffect(function () {
var panelContainerElement = isDetached.value ? props.value.core.environment.document.body : props.value.renderer.panelContainer;
var panelElement = isDetached.value ? dom.value.detachedOverlay : dom.value.panel;
-
if (isDetached.value && lastStateRef.current.isOpen) {
setIsModalOpen(true);
}
-
scheduleRender(lastStateRef.current);
return function () {
if (panelContainerElement.contains(panelElement)) {
panelContainerElement.removeChild(panelElement);
+ panelContainerElement.classList.remove('aa-Detached');
}
};
});
@@ -191,25 +178,23 @@ export function autocomplete(options) {
var state = _ref2.state;
scheduleRender(state);
}, 0);
-
onStateChangeRef.current = function (_ref3) {
var state = _ref3.state,
- prevState = _ref3.prevState;
-
+ prevState = _ref3.prevState;
if (isDetached.value && prevState.isOpen !== state.isOpen) {
setIsModalOpen(state.isOpen);
- } // The outer DOM might have changed since the last time the panel was
+ }
+
+ // The outer DOM might have changed since the last time the panel was
// positioned. The layout might have shifted vertically for instance.
// It's therefore safer to re-calculate the panel position before opening
// it again.
-
-
if (!isDetached.value && state.isOpen && !prevState.isOpen) {
setPanelPosition();
- } // We scroll to the top of the panel whenever the query changes (i.e. new
- // results come in) so that users don't have to.
-
+ }
+ // We scroll to the top of the panel whenever the query changes (i.e. new
+ // results come in) so that users don't have to.
if (state.query !== prevState.query) {
var scrollablePanels = props.value.core.environment.document.querySelectorAll('.aa-Panel--scrollable');
scrollablePanels.forEach(function (scrollablePanel) {
@@ -218,12 +203,10 @@ export function autocomplete(options) {
}
});
}
-
debouncedRender({
state: state
});
};
-
return function () {
onStateChangeRef.current = undefined;
};
@@ -232,7 +215,6 @@ export function autocomplete(options) {
var onResize = debounce(function () {
var previousIsDetached = isDetached.value;
isDetached.value = props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;
-
if (previousIsDetached !== isDetached.value) {
update({});
} else {
@@ -248,20 +230,18 @@ export function autocomplete(options) {
if (!isDetached.value) {
return function () {};
}
-
function toggleModalClassname(isActive) {
dom.value.detachedContainer.classList.toggle('aa-DetachedContainer--modal', isActive);
}
-
function onChange(event) {
toggleModalClassname(event.matches);
}
-
var isModalDetachedMql = props.value.core.environment.matchMedia(getComputedStyle(props.value.core.environment.document.documentElement).getPropertyValue('--aa-detached-modal-media-query'));
- toggleModalClassname(isModalDetachedMql.matches); // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,
+ toggleModalClassname(isModalDetachedMql.matches);
+
+ // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,
// so we must use `addListener` and `removeListener` to observe media query lists.
// See https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener
-
var hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);
hasModernEventListener ? isModalDetachedMql.addEventListener('change', onChange) : isModalDetachedMql.addListener(onChange);
return function () {
@@ -272,19 +252,16 @@ export function autocomplete(options) {
requestAnimationFrame(setPanelPosition);
return function () {};
});
-
function destroy() {
+ instancesCount--;
cleanupEffects();
}
-
function update() {
var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
cleanupEffects();
-
var _props$value$renderer = props.value.renderer,
- components = _props$value$renderer.components,
- rendererProps = _objectWithoutProperties(_props$value$renderer, _excluded);
-
+ components = _props$value$renderer.components,
+ rendererProps = _objectWithoutProperties(_props$value$renderer, _excluded);
optionsRef.current = mergeDeep(rendererProps, props.value.core, {
// We need to filter out default components so they can be replaced with
// a new `renderer`, without getting rid of user components.
@@ -303,26 +280,22 @@ export function autocomplete(options) {
scheduleRender(lastStateRef.current);
});
}
-
function setIsModalOpen(value) {
- requestAnimationFrame(function () {
- var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);
-
- if (value === prevValue) {
- return;
- }
-
- if (value) {
- props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);
- props.value.core.environment.document.body.classList.add('aa-Detached');
- dom.value.input.focus();
- } else {
- props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);
- props.value.core.environment.document.body.classList.remove('aa-Detached');
- }
- });
+ var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);
+ if (value === prevValue) {
+ return;
+ }
+ if (value) {
+ props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);
+ props.value.core.environment.document.body.classList.add('aa-Detached');
+ dom.value.input.focus();
+ } else {
+ props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);
+ props.value.core.environment.document.body.classList.remove('aa-Detached');
+ }
}
-
+ process.env.NODE_ENV !== 'production' ? warn(instancesCount === 0, "Autocomplete doesn't support multiple instances running at the same time. Make sure to destroy the previous instance before creating a new one.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-destroy") : void 0;
+ instancesCount++;
return _objectSpread(_objectSpread({}, autocompleteScopeApi), {}, {
update: update,
destroy: destroy
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.d.ts
index 214dbdda..25ba46c2 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.d.ts
@@ -1,6 +1,5 @@
-///
-import { AutocompleteRenderer, HighlightHitParams } from '../types';
+import { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';
export declare function createHighlightComponent({ createElement, Fragment, }: AutocompleteRenderer): {
- ({ hit, attribute, tagName, }: HighlightHitParams): JSX.Element;
+ ({ hit, attribute, tagName, }: HighlightHitParams): VNode;
__autocomplete_componentName: string;
};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.js
index f3a17d4c..dfdc6ef4 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Highlight.js
@@ -1,13 +1,12 @@
import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';
export function createHighlightComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function Highlight(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitHighlight({
hit: hit,
attribute: attribute
@@ -17,7 +16,6 @@ export function createHighlightComponent(_ref) {
}, x.value) : x.value;
}));
}
-
Highlight.__autocomplete_componentName = 'Highlight';
return Highlight;
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.d.ts
index bb5937f5..b4c6d3d4 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.d.ts
@@ -1,6 +1,5 @@
-///
-import { AutocompleteRenderer, HighlightHitParams } from '../types';
+import { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';
export declare function createReverseHighlightComponent({ createElement, Fragment, }: AutocompleteRenderer): {
- ({ hit, attribute, tagName, }: HighlightHitParams): JSX.Element;
+ ({ hit, attribute, tagName, }: HighlightHitParams): VNode;
__autocomplete_componentName: string;
};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js
index bca45bb6..2d3adfa1 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js
@@ -1,13 +1,12 @@
import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';
export function createReverseHighlightComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function ReverseHighlight(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitReverseHighlight({
hit: hit,
attribute: attribute
@@ -17,7 +16,6 @@ export function createReverseHighlightComponent(_ref) {
}, x.value) : x.value;
}));
}
-
ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';
return ReverseHighlight;
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.d.ts
index c4bbd509..99aa0e08 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.d.ts
@@ -1,6 +1,5 @@
-///
-import { AutocompleteRenderer, HighlightHitParams } from '../types';
+import { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';
export declare function createReverseSnippetComponent({ createElement, Fragment, }: AutocompleteRenderer): {
- ({ hit, attribute, tagName, }: HighlightHitParams): JSX.Element;
+ ({ hit, attribute, tagName, }: HighlightHitParams): VNode;
__autocomplete_componentName: string;
};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js
index 7d22aad0..2df22a02 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js
@@ -1,13 +1,12 @@
import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';
export function createReverseSnippetComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function ReverseSnippet(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitReverseSnippet({
hit: hit,
attribute: attribute
@@ -17,7 +16,6 @@ export function createReverseSnippetComponent(_ref) {
}, x.value) : x.value;
}));
}
-
ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';
return ReverseSnippet;
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.d.ts
index 7b478583..6e2f1539 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.d.ts
@@ -1,6 +1,5 @@
-///
-import { AutocompleteRenderer, HighlightHitParams } from '../types';
+import { AutocompleteRenderer, HighlightHitParams, VNode } from '../types';
export declare function createSnippetComponent({ createElement, Fragment, }: AutocompleteRenderer): {
- ({ hit, attribute, tagName, }: HighlightHitParams): JSX.Element;
+ ({ hit, attribute, tagName, }: HighlightHitParams): VNode;
__autocomplete_componentName: string;
};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.js
index 9065a0dc..0458683d 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/components/Snippet.js
@@ -1,13 +1,12 @@
import { parseAlgoliaHitSnippet } from '@algolia/autocomplete-preset-algolia';
export function createSnippetComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function Snippet(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitSnippet({
hit: hit,
attribute: attribute
@@ -17,7 +16,6 @@ export function createSnippetComponent(_ref) {
}, x.value) : x.value;
}));
}
-
Snippet.__autocomplete_componentName = 'Snippet';
return Snippet;
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createAutocompleteDom.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createAutocompleteDom.js
index 6f4d8d63..64fbf1b8 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createAutocompleteDom.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createAutocompleteDom.js
@@ -1,24 +1,24 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';
import { getCreateDomElement } from './getCreateDomElement';
import { setProperties } from './utils';
export function createAutocompleteDom(_ref) {
var autocomplete = _ref.autocomplete,
- autocompleteScopeApi = _ref.autocompleteScopeApi,
- classNames = _ref.classNames,
- environment = _ref.environment,
- isDetached = _ref.isDetached,
- _ref$placeholder = _ref.placeholder,
- placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,
- propGetters = _ref.propGetters,
- setIsModalOpen = _ref.setIsModalOpen,
- state = _ref.state,
- translations = _ref.translations;
+ autocompleteScopeApi = _ref.autocompleteScopeApi,
+ classNames = _ref.classNames,
+ environment = _ref.environment,
+ isDetached = _ref.isDetached,
+ _ref$placeholder = _ref.placeholder,
+ placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,
+ propGetters = _ref.propGetters,
+ setIsModalOpen = _ref.setIsModalOpen,
+ state = _ref.state,
+ translations = _ref.translations;
var createDomElement = getCreateDomElement(environment);
var rootProps = propGetters.getRootProps(_objectSpread({
state: state,
@@ -53,9 +53,13 @@ export function createAutocompleteDom(_ref) {
environment: environment
})]
});
+ // @MAJOR Remove the label wrapper for the submit button.
+ // The submit button is sufficient for accessibility purposes, and
+ // wrapping it with the label actually makes it less accessible (see CR-6077).
var label = createDomElement('label', _objectSpread({
class: classNames.label,
- children: [submitButton]
+ children: [submitButton],
+ ariaLabel: translations.submitButtonTitle
}, labelProps));
var clearButton = createDomElement('button', {
class: classNames.clearButton,
@@ -118,13 +122,11 @@ export function createAutocompleteDom(_ref) {
hidden: Boolean(state.query),
textContent: placeholder
});
-
if (process.env.NODE_ENV === 'test') {
setProperties(panel, {
'data-testid': 'panel'
});
}
-
if (isDetached) {
var detachedSearchButtonIcon = createDomElement('div', {
class: classNames.detachedSearchButtonIcon,
@@ -135,6 +137,8 @@ export function createAutocompleteDom(_ref) {
var detachedSearchButton = createDomElement('button', {
type: 'button',
class: classNames.detachedSearchButton,
+ title: translations.detachedSearchButtonTitle,
+ id: labelProps.id,
onClick: function onClick() {
setIsModalOpen(true);
},
@@ -163,7 +167,6 @@ export function createAutocompleteDom(_ref) {
} else {
root.appendChild(form);
}
-
return {
detachedContainer: detachedContainer,
detachedOverlay: detachedOverlay,
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createEffectWrapper.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createEffectWrapper.js
index 14032c10..6f4e12ab 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createEffectWrapper.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createEffectWrapper.js
@@ -1,13 +1,11 @@
export function createEffectWrapper() {
var effects = [];
var cleanups = [];
-
function runEffect(fn) {
effects.push(fn);
var effectCleanup = fn();
cleanups.push(effectCleanup);
}
-
return {
runEffect: runEffect,
cleanupEffects: function cleanupEffects() {
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createReactiveWrapper.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createReactiveWrapper.js
index e695ea77..1fce25f7 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createReactiveWrapper.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/createReactiveWrapper.js
@@ -8,15 +8,12 @@ export function createReactiveWrapper() {
_ref: {
current: current
},
-
get value() {
return this._ref.current;
},
-
set value(value) {
this._ref.current = value;
}
-
};
reactives.push(reactive);
return reactive;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/elements/Input.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/elements/Input.js
index ca07727a..49b5b4ac 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/elements/Input.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/elements/Input.js
@@ -1,27 +1,23 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
var _excluded = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "isDetached", "state"];
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
import { getCreateDomElement } from '../getCreateDomElement';
import { setProperties } from '../utils';
export var Input = function Input(_ref) {
var autocompleteScopeApi = _ref.autocompleteScopeApi,
- environment = _ref.environment,
- classNames = _ref.classNames,
- getInputProps = _ref.getInputProps,
- getInputPropsCore = _ref.getInputPropsCore,
- isDetached = _ref.isDetached,
- state = _ref.state,
- props = _objectWithoutProperties(_ref, _excluded);
-
+ environment = _ref.environment,
+ classNames = _ref.classNames,
+ getInputProps = _ref.getInputProps,
+ getInputPropsCore = _ref.getInputPropsCore,
+ isDetached = _ref.isDetached,
+ state = _ref.state,
+ props = _objectWithoutProperties(_ref, _excluded);
var createDomElement = getCreateDomElement(environment);
var element = createDomElement('input', props);
var inputProps = getInputProps(_objectSpread({
@@ -37,7 +33,6 @@ export var Input = function Input(_ref) {
if (isDetached && event.key === 'Tab') {
return;
}
-
inputProps.onKeyDown(event);
}
}));
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getCreateDomElement.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getCreateDomElement.js
index e48ba815..9add7c20 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getCreateDomElement.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getCreateDomElement.js
@@ -1,28 +1,18 @@
var _excluded = ["children"];
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
import { setProperties } from './utils';
export function getCreateDomElement(environment) {
return function createDomElement(tagName, _ref) {
var _ref$children = _ref.children,
- children = _ref$children === void 0 ? [] : _ref$children,
- props = _objectWithoutProperties(_ref, _excluded);
-
+ children = _ref$children === void 0 ? [] : _ref$children,
+ props = _objectWithoutProperties(_ref, _excluded);
var element = environment.document.createElement(tagName);
setProperties(element, props);
element.append.apply(element, _toConsumableArray(children));
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.d.ts
index 6691997c..70c06f3a 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.d.ts
@@ -1,4 +1,3 @@
-///
import { BaseItem } from '@algolia/autocomplete-core';
import { AutocompleteClassNames, AutocompleteOptions, AutocompleteRender } from './types';
export declare function getDefaultOptions(options: AutocompleteOptions): {
@@ -12,7 +11,7 @@ export declare function getDefaultOptions(options: Autoc
onMouseDown(event: MouseEvent): void;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
onTouchStart(event: TouchEvent): void;
onTouchMove(event: TouchEvent): void;
@@ -27,7 +26,7 @@ export declare function getDefaultOptions(options: Autoc
onReset(event: Event): void;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
action: "";
noValidate: true;
@@ -41,10 +40,10 @@ export declare function getDefaultOptions(options: Autoc
value: string;
autoFocus: boolean;
placeholder: string;
- autoComplete: "off" | "on";
- autoCorrect: "off" | "on";
- autoCapitalize: "off" | "on";
- enterKeyHint: "search" | "go";
+ autoComplete: "on" | "off";
+ autoCorrect: "on" | "off";
+ autoCapitalize: "on" | "off";
+ enterKeyHint: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint;
spellCheck: "false";
maxLength: number;
type: "search";
@@ -53,6 +52,7 @@ export declare function getDefaultOptions(options: Autoc
'aria-controls': string | undefined;
'aria-labelledby': string;
onChange(event: Event): void;
+ onCompositionEnd(event: Event): void;
onKeyDown(event: KeyboardEvent): void;
onFocus(event: Event): void;
onBlur(): void;
@@ -60,16 +60,16 @@ export declare function getDefaultOptions(options: Autoc
};
inputElement: HTMLInputElement;
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
id: string;
value: string;
autoFocus: boolean;
placeholder: string;
- autoComplete: "off" | "on";
- autoCorrect: "off" | "on";
- autoCapitalize: "off" | "on";
- enterKeyHint: "search" | "go";
+ autoComplete: "on" | "off";
+ autoCorrect: "on" | "off";
+ autoCapitalize: "on" | "off";
+ enterKeyHint: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint;
spellCheck: "false";
maxLength: number;
type: "search";
@@ -78,6 +78,7 @@ export declare function getDefaultOptions(options: Autoc
'aria-controls': string | undefined;
'aria-labelledby': string;
onChange(event: Event): void;
+ onCompositionEnd(event: Event): void;
onKeyDown(event: KeyboardEvent): void;
onFocus(event: Event): void;
onBlur(): void;
@@ -86,17 +87,17 @@ export declare function getDefaultOptions(options: Autoc
getItemProps: (params: {
props: {
id: string;
- role: string;
+ role: "option";
'aria-selected': boolean;
onMouseMove(event: MouseEvent): void;
onMouseDown(event: MouseEvent): void;
onClick(event: MouseEvent): void;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
id: string;
- role: string;
+ role: "option";
'aria-selected': boolean;
onMouseMove(event: MouseEvent): void;
onMouseDown(event: MouseEvent): void;
@@ -108,21 +109,21 @@ export declare function getDefaultOptions(options: Autoc
id: string;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
htmlFor: string;
id: string;
};
getListProps: (params: {
props: {
- role: string;
+ role: "listbox";
'aria-labelledby': string;
id: string;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
- role: string;
+ role: "listbox";
'aria-labelledby': string;
id: string;
};
@@ -132,26 +133,26 @@ export declare function getDefaultOptions(options: Autoc
onMouseLeave(): void;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
onMouseDown(event: MouseEvent): void;
onMouseLeave(): void;
};
getRootProps: (params: {
props: {
- role: string;
+ role: "combobox";
'aria-expanded': boolean;
'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
- 'aria-owns': string | undefined;
+ 'aria-controls': string | undefined;
'aria-labelledby': string;
};
} & {
- state: import("./types").AutocompleteState;
+ state: import("@algolia/autocomplete-shared").AutocompleteState;
} & import("@algolia/autocomplete-core").AutocompleteScopeApi) => {
- role: string;
+ role: "combobox";
'aria-expanded': boolean;
'aria-haspopup': boolean | "dialog" | "menu" | "true" | "false" | "grid" | "listbox" | "tree" | undefined;
- 'aria-owns': string | undefined;
+ 'aria-controls': string | undefined;
'aria-labelledby': string;
};
panelContainer: HTMLElement;
@@ -159,38 +160,42 @@ export declare function getDefaultOptions(options: Autoc
render: AutocompleteRender | AutocompleteRender;
renderNoResults: AutocompleteRender | undefined;
renderer: {
- createElement: import("./types").Pragma;
+ createElement: import("@algolia/autocomplete-shared").Pragma;
Fragment: any;
- render: import("./types").Render;
+ render: import("@algolia/autocomplete-shared").Render;
};
detachedMediaQuery: string;
components: {
- [x: string]: (props: any) => JSX.Element;
- Highlight: ({ hit, attribute, tagName, }: import("./types").HighlightHitParams) => JSX.Element;
- ReverseHighlight: ({ hit, attribute, tagName, }: import("./types").HighlightHitParams) => JSX.Element;
- ReverseSnippet: ({ hit, attribute, tagName, }: import("./types").HighlightHitParams) => JSX.Element;
- Snippet: ({ hit, attribute, tagName, }: import("./types").HighlightHitParams) => JSX.Element;
+ [x: string]: (props: any) => import("@algolia/autocomplete-shared").VNode;
+ Highlight: ({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams) => import("@algolia/autocomplete-shared").VNode;
+ ReverseHighlight: ({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams) => import("@algolia/autocomplete-shared").VNode;
+ ReverseSnippet: ({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams) => import("@algolia/autocomplete-shared").VNode;
+ Snippet: ({ hit, attribute, tagName, }: import("@algolia/autocomplete-shared").HighlightHitParams) => import("@algolia/autocomplete-shared").VNode;
};
translations: {
detachedCancelButtonText: string;
clearButtonTitle: string;
submitButtonTitle: string;
+ detachedSearchButtonTitle: string;
};
};
core: {
id: string;
environment: Window;
- getSources?: import("./types").GetSources | undefined;
- initialState?: Partial> | undefined;
- onStateChange?(props: import("./types").OnStateChangeProps): void;
- plugins?: import("./types").AutocompletePlugin[] | undefined;
+ insights?: boolean | import("@algolia/autocomplete-plugin-algolia-insights").CreateAlgoliaInsightsPluginParams | undefined;
+ getSources?: import("@algolia/autocomplete-shared").GetSources | undefined;
+ initialState?: Partial> | undefined;
+ onStateChange?(props: import("@algolia/autocomplete-shared").OnStateChangeProps): void;
+ plugins?: import("@algolia/autocomplete-shared").AutocompletePlugin[] | undefined;
debug?: boolean | undefined;
+ enterKeyHint?: import("@algolia/autocomplete-core").AutocompleteEnterKeyHint | undefined;
+ ignoreCompositionEvents?: boolean | undefined;
placeholder?: string | undefined;
autoFocus?: boolean | undefined;
defaultActiveItemId?: number | null | undefined;
openOnFocus?: boolean | undefined;
stallThreshold?: number | undefined;
- navigator?: Partial> | undefined;
+ navigator?: Partial> | undefined;
shouldPanelOpen?(params: {
state: import("@algolia/autocomplete-core").AutocompleteState;
}): boolean;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.js
index 418d8296..383db980 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getDefaultOptions.js
@@ -1,15 +1,12 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
var _excluded = ["classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations"];
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
-
import { generateAutocompleteId, invariant, warn } from '@algolia/autocomplete-shared';
import { createElement as preactCreateElement, Fragment as PreactFragment, render } from 'preact';
import { createHighlightComponent, createReverseHighlightComponent, createReverseSnippetComponent, createSnippetComponent } from './components';
@@ -42,13 +39,11 @@ var defaultClassNames = {
sourceNoResults: 'aa-SourceNoResults',
submitButton: 'aa-SubmitButton'
};
-
var defaultRender = function defaultRender(_ref, root) {
var children = _ref.children,
- render = _ref.render;
+ render = _ref.render;
render(children, root);
};
-
var defaultRenderer = {
createElement: preactCreateElement,
Fragment: PreactFragment,
@@ -56,39 +51,34 @@ var defaultRenderer = {
};
export function getDefaultOptions(options) {
var _core$id;
-
var classNames = options.classNames,
- container = options.container,
- getEnvironmentProps = options.getEnvironmentProps,
- getFormProps = options.getFormProps,
- getInputProps = options.getInputProps,
- getItemProps = options.getItemProps,
- getLabelProps = options.getLabelProps,
- getListProps = options.getListProps,
- getPanelProps = options.getPanelProps,
- getRootProps = options.getRootProps,
- panelContainer = options.panelContainer,
- panelPlacement = options.panelPlacement,
- render = options.render,
- renderNoResults = options.renderNoResults,
- renderer = options.renderer,
- detachedMediaQuery = options.detachedMediaQuery,
- components = options.components,
- translations = options.translations,
- core = _objectWithoutProperties(options, _excluded);
- /* eslint-disable no-restricted-globals */
-
+ container = options.container,
+ getEnvironmentProps = options.getEnvironmentProps,
+ getFormProps = options.getFormProps,
+ getInputProps = options.getInputProps,
+ getItemProps = options.getItemProps,
+ getLabelProps = options.getLabelProps,
+ getListProps = options.getListProps,
+ getPanelProps = options.getPanelProps,
+ getRootProps = options.getRootProps,
+ panelContainer = options.panelContainer,
+ panelPlacement = options.panelPlacement,
+ render = options.render,
+ renderNoResults = options.renderNoResults,
+ renderer = options.renderer,
+ detachedMediaQuery = options.detachedMediaQuery,
+ components = options.components,
+ translations = options.translations,
+ core = _objectWithoutProperties(options, _excluded);
+ /* eslint-disable no-restricted-globals */
var environment = typeof window !== 'undefined' ? window : {};
/* eslint-enable no-restricted-globals */
-
var containerElement = getHTMLElement(environment, container);
invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');
process.env.NODE_ENV !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), "You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`." + "\nTo get rid of this warning, do any of the following depending on your use case." + "\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option." + '\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;
process.env.NODE_ENV !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, "You provided an incomplete `renderer` (missing: ".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), "). This can cause rendering issues.") + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;
-
var defaultedRenderer = _objectSpread(_objectSpread({}, defaultRenderer), renderer);
-
var defaultComponents = {
Highlight: createHighlightComponent(defaultedRenderer),
ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),
@@ -98,6 +88,7 @@ export function getDefaultOptions(options) {
var defaultTranslations = {
clearButtonTitle: 'Clear',
detachedCancelButtonText: 'Cancel',
+ detachedSearchButtonTitle: 'Search',
submitButtonTitle: 'Submit'
};
return {
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js
index a015a6d5..933eb321 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js
@@ -1,14 +1,13 @@
export function getPanelPlacementStyle(_ref) {
var panelPlacement = _ref.panelPlacement,
- container = _ref.container,
- form = _ref.form,
- environment = _ref.environment;
- var containerRect = container.getBoundingClientRect(); // Some browsers have specificities to retrieve the document scroll position.
+ container = _ref.container,
+ form = _ref.form,
+ environment = _ref.environment;
+ var containerRect = container.getBoundingClientRect();
+ // Some browsers have specificities to retrieve the document scroll position.
// See https://stackoverflow.com/a/28633515/9940315
-
var scrollTop = environment.pageYOffset || environment.document.documentElement.scrollTop || environment.document.body.scrollTop || 0;
var top = scrollTop + containerRect.top + containerRect.height;
-
switch (panelPlacement) {
case 'start':
{
@@ -17,7 +16,6 @@ export function getPanelPlacementStyle(_ref) {
left: containerRect.left
};
}
-
case 'end':
{
return {
@@ -25,7 +23,6 @@ export function getPanelPlacementStyle(_ref) {
right: environment.document.documentElement.clientWidth - (containerRect.left + containerRect.width)
};
}
-
case 'full-width':
{
return {
@@ -36,7 +33,6 @@ export function getPanelPlacementStyle(_ref) {
maxWidth: 'unset'
};
}
-
case 'input-wrapper-width':
{
var formRect = form.getBoundingClientRect();
@@ -48,7 +44,6 @@ export function getPanelPlacementStyle(_ref) {
maxWidth: 'unset'
};
}
-
default:
{
throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(panelPlacement), " is not valid."));
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/render.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/render.js
index c26b32b6..f49945ff 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/render.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/render.js
@@ -1,21 +1,20 @@
-function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
-
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
+function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
/** @jsxRuntime classic */
-
/** @jsx renderer.createElement */
+
import { setProperties, setPropertiesWithoutEvents } from './utils';
export function renderSearchBox(_ref) {
var autocomplete = _ref.autocomplete,
- autocompleteScopeApi = _ref.autocompleteScopeApi,
- dom = _ref.dom,
- propGetters = _ref.propGetters,
- state = _ref.state;
+ autocompleteScopeApi = _ref.autocompleteScopeApi,
+ dom = _ref.dom,
+ propGetters = _ref.propGetters,
+ state = _ref.state;
setPropertiesWithoutEvents(dom.root, propGetters.getRootProps(_objectSpread({
state: state,
props: autocomplete.getRootProps({})
@@ -45,38 +44,35 @@ export function renderSearchBox(_ref) {
}
export function renderPanel(render, _ref2) {
var autocomplete = _ref2.autocomplete,
- autocompleteScopeApi = _ref2.autocompleteScopeApi,
- classNames = _ref2.classNames,
- html = _ref2.html,
- dom = _ref2.dom,
- panelContainer = _ref2.panelContainer,
- propGetters = _ref2.propGetters,
- state = _ref2.state,
- components = _ref2.components,
- renderer = _ref2.renderer;
-
+ autocompleteScopeApi = _ref2.autocompleteScopeApi,
+ classNames = _ref2.classNames,
+ html = _ref2.html,
+ dom = _ref2.dom,
+ panelContainer = _ref2.panelContainer,
+ propGetters = _ref2.propGetters,
+ state = _ref2.state,
+ components = _ref2.components,
+ renderer = _ref2.renderer;
if (!state.isOpen) {
if (panelContainer.contains(dom.panel)) {
panelContainer.removeChild(dom.panel);
}
-
return;
- } // We add the panel element to the DOM when it's not yet appended and that the
- // items are fetched.
-
+ }
+ // We add the panel element to the DOM when it's not yet appended and that the
+ // items are fetched.
if (!panelContainer.contains(dom.panel) && state.status !== 'loading') {
panelContainer.appendChild(dom.panel);
}
-
dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');
var sections = state.collections.filter(function (_ref3) {
var source = _ref3.source,
- items = _ref3.items;
+ items = _ref3.items;
return source.templates.noResults || items.length > 0;
}).map(function (_ref4, sourceIndex) {
var source = _ref4.source,
- items = _ref4.items;
+ items = _ref4.items;
return renderer.createElement("section", {
key: sourceIndex,
className: classNames.source,
@@ -105,13 +101,12 @@ export function renderPanel(render, _ref2) {
}, propGetters.getListProps(_objectSpread({
state: state,
props: autocomplete.getListProps({
- sourceIndex: sourceIndex
+ source: source
})
}, autocompleteScopeApi))), items.map(function (item) {
var itemProps = autocomplete.getItemProps({
item: item,
- source: source,
- sourceIndex: sourceIndex
+ source: source
});
return renderer.createElement("li", _extends({
key: itemProps.id,
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js
index 25788e5d..558dc9fd 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js
@@ -1,9 +1,9 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import { createRequester, fetchAlgoliaResults } from '@algolia/autocomplete-preset-algolia';
import { userAgents } from '../userAgents';
export var createAlgoliaRequester = createRequester(function (params) {
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js
index 45bb38be..cda1beaa 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js
@@ -1,14 +1,14 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import { createAlgoliaRequester } from './createAlgoliaRequester';
+
/**
* Retrieves Algolia facet hits from multiple indices.
*/
-
export function getAlgoliaFacets(requestParams) {
var requester = createAlgoliaRequester({
transformResponse: function transformResponse(response) {
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js
index c4c12ddc..4a6ed923 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js
@@ -1,8 +1,8 @@
import { createAlgoliaRequester } from './createAlgoliaRequester';
+
/**
* Retrieves Algolia results from multiple indices.
*/
-
export var getAlgoliaResults = createAlgoliaRequester({
transformResponse: function transformResponse(response) {
return response.hits;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteApi.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteApi.d.ts
index 3291e3fe..52a13e93 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteApi.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteApi.d.ts
@@ -1,5 +1,5 @@
import { AutocompleteScopeApi as AutocompleteCoreScopeApi, BaseItem } from '@algolia/autocomplete-core';
-import { AutocompleteOptions } from './AutocompleteOptions';
+import { AutocompleteOptions } from './';
export interface AutocompleteApi extends AutocompleteCoreScopeApi {
/**
* Updates the Autocomplete experience.
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.d.ts
deleted file mode 100644
index 3798dee3..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-export declare type AutocompleteClassNames = {
- detachedCancelButton: string;
- detachedFormContainer: string;
- detachedContainer: string;
- detachedOverlay: string;
- detachedSearchButton: string;
- detachedSearchButtonIcon: string;
- detachedSearchButtonPlaceholder: string;
- detachedSearchButtonQuery: string;
- form: string;
- input: string;
- inputWrapper: string;
- inputWrapperPrefix: string;
- inputWrapperSuffix: string;
- item: string;
- label: string;
- list: string;
- loadingIndicator: string;
- panel: string;
- panelLayout: string;
- clearButton: string;
- root: string;
- source: string;
- sourceFooter: string;
- sourceHeader: string;
- sourceNoResults: string;
- submitButton: string;
-};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteClassNames.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.d.ts
deleted file mode 100644
index 0459e89f..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { BaseItem } from '@algolia/autocomplete-core';
-import { InternalAutocompleteSource } from './AutocompleteSource';
-export interface AutocompleteCollection {
- source: InternalAutocompleteSource;
- items: TItem[];
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteCollection.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.d.ts
deleted file mode 100644
index cc127283..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-///
-import { HighlightHitParams } from '.';
-declare type AutocompleteHighlightComponent = ({ hit, attribute, tagName, }: HighlightHitParams) => JSX.Element;
-export declare type PublicAutocompleteComponents = Record JSX.Element>;
-export interface AutocompleteComponents extends PublicAutocompleteComponents {
- /**
- * Highlight matches in an Algolia hit.
- */
- Highlight: AutocompleteHighlightComponent;
- /**
- * Reverse-highlight matches in an Algolia hit.
- */
- ReverseHighlight: AutocompleteHighlightComponent;
- /**
- * Reverse-highlight and snippets matches in an Algolia hit.
- */
- ReverseSnippet: AutocompleteHighlightComponent;
- /**
- * Highlight and snippet matches in an Algolia hit.
- */
- Snippet: AutocompleteHighlightComponent;
-}
-export {};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteComponents.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.d.ts
deleted file mode 100644
index e54d3bdd..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.d.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-import { AutocompleteScopeApi, AutocompleteOptions as AutocompleteCoreOptions, BaseItem, GetSourcesParams } from '@algolia/autocomplete-core';
-import { MaybePromise } from '@algolia/autocomplete-shared';
-import { AutocompleteClassNames } from './AutocompleteClassNames';
-import { PublicAutocompleteComponents } from './AutocompleteComponents';
-import { AutocompletePlugin } from './AutocompletePlugin';
-import { AutocompletePropGetters } from './AutocompletePropGetters';
-import { AutocompleteRender } from './AutocompleteRender';
-import { AutocompleteRenderer } from './AutocompleteRenderer';
-import { AutocompleteSource } from './AutocompleteSource';
-import { AutocompleteState } from './AutocompleteState';
-import { AutocompleteTranslations } from './AutocompleteTranslations';
-export interface OnStateChangeProps extends AutocompleteScopeApi {
- /**
- * The current Autocomplete state.
- */
- state: AutocompleteState;
- /**
- * The previous Autocomplete state.
- */
- prevState: AutocompleteState;
-}
-export declare type GetSources = (params: GetSourcesParams) => MaybePromise | boolean | undefined>>;
-export interface AutocompleteOptions extends AutocompleteCoreOptions, Partial> {
- /**
- * The container for the Autocomplete search box.
- *
- * You can either pass a [CSS selector](https://developer.mozilla.org/docs/Web/CSS/CSS_Selectors) or an [Element](https://developer.mozilla.org/docs/Web/API/HTMLElement). If there are several containers matching the selector, Autocomplete picks up the first one.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-container
- */
- container: string | HTMLElement;
- /**
- * The container for the Autocomplete panel.
- *
- * You can either pass a [CSS selector](https://developer.mozilla.org/docs/Web/CSS/CSS_Selectors) or an [Element](https://developer.mozilla.org/docs/Web/API/HTMLElement). If there are several containers matching the selector, Autocomplete picks up the first one.
- *
- * @default document.body
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-panelcontainer
- */
- panelContainer?: string | HTMLElement;
- /**
- * The Media Query to turn Autocomplete into a detached experience.
- *
- * @default "(max-width: 680px)"
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-detachedmediaquery
- * @link https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries
- */
- detachedMediaQuery?: string;
- getSources?: GetSources;
- /**
- * The panel's horizontal position.
- *
- * @default "input-wrapper-width"
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-panelplacement
- */
- panelPlacement?: 'start' | 'end' | 'full-width' | 'input-wrapper-width';
- /**
- * Class names to inject for each created DOM element.
- *
- * This is useful to style your autocomplete with external CSS frameworks.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-classnames
- */
- classNames?: Partial;
- /**
- * The function that renders the autocomplete panel.
- *
- * This is useful to customize the rendering, for example, using multi-row or multi-column layouts.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render
- */
- render?: AutocompleteRender;
- /**
- * The function that renders a no results section when there are no hits.
- *
- * This is useful to let the user know that the query returned no results.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-rendernoresults
- */
- renderNoResults?: AutocompleteRender;
- initialState?: Partial>;
- onStateChange?(props: OnStateChangeProps): void;
- /**
- * The virtual DOM implementation to plug to Autocomplete. It defaults to Preact.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer
- */
- renderer?: AutocompleteRenderer;
- plugins?: Array>;
- /**
- * Components to register in the Autocomplete rendering lifecycles.
- *
- * Registered components become available in [`templates`](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/templates/), [`render`](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render), and in [`renderNoResults`](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-rendernoresults).
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-components
- */
- components?: PublicAutocompleteComponents;
- /**
- * A mapping of translation strings.
- *
- * Defaults to English values.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-translations
- */
- translations?: Partial;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteOptions.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.d.ts
deleted file mode 100644
index bd5bdf98..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { AutocompletePlugin as AutocompleteCorePlugin, BaseItem } from '@algolia/autocomplete-core';
-import { AutocompleteOptions } from './AutocompleteOptions';
-export declare type AutocompletePlugin = Omit, 'getSources'> & {
- /**
- * The [sources](https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/) to get the suggestions from.
- *
- * When defined, they’re merged with the sources of your Autocomplete instance.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/plugins/#param-getsources
- */
- getSources?: AutocompleteOptions['getSources'];
-};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePlugin.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.d.ts
deleted file mode 100644
index 28547655..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { BaseItem, AutocompleteApi as AutocompleteCoreApi, AutocompleteScopeApi } from '@algolia/autocomplete-core';
-import { AutocompleteState } from './AutocompleteState';
-declare type PropsGetterParams = TParam & {
- state: AutocompleteState;
-} & AutocompleteScopeApi;
-export declare type AutocompletePropGetters = {
- getEnvironmentProps(params: PropsGetterParams['getEnvironmentProps']>;
- }>): ReturnType['getEnvironmentProps']>;
- getFormProps(params: PropsGetterParams['getFormProps']>;
- }>): ReturnType['getFormProps']>;
- getInputProps(params: PropsGetterParams['getInputProps']>;
- inputElement: HTMLInputElement;
- }>): ReturnType['getInputProps']>;
- getItemProps(params: PropsGetterParams['getItemProps']>;
- }>): ReturnType['getItemProps']>;
- getLabelProps(params: PropsGetterParams['getLabelProps']>;
- }>): ReturnType['getLabelProps']>;
- getListProps(params: PropsGetterParams['getListProps']>;
- }>): ReturnType['getListProps']>;
- getPanelProps(params: PropsGetterParams['getPanelProps']>;
- }>): ReturnType['getPanelProps']>;
- getRootProps(params: PropsGetterParams['getRootProps']>;
- }>): ReturnType['getRootProps']>;
-};
-export {};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompletePropGetters.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.d.ts
deleted file mode 100644
index 01f5fc8d..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { AutocompleteScopeApi, BaseItem } from '@algolia/autocomplete-core';
-import { AutocompleteComponents } from './AutocompleteComponents';
-import { HTMLTemplate, Pragma, PragmaFrag, Render, VNode } from './AutocompleteRenderer';
-import { AutocompleteState } from './AutocompleteState';
-export declare type AutocompleteRender = (params: AutocompleteScopeApi & {
- children: VNode;
- state: AutocompleteState;
- sections: VNode[];
- elements: Record;
- components: AutocompleteComponents;
- createElement: Pragma;
- Fragment: PragmaFrag;
- html: HTMLTemplate;
- render: Render;
-}, root: HTMLElement) => void;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRender.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.d.ts
deleted file mode 100644
index 3ca05d5a..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-///
-export declare type Pragma = (type: any, props: Record | null, ...children: ComponentChildren[]) => JSX.Element;
-export declare type PragmaFrag = any;
-declare type ComponentChild = VNode | string | number | boolean | null | undefined;
-declare type ComponentChildren = ComponentChild[] | ComponentChild;
-export declare type VNode = {
- type: any;
- key: string | number | any;
- props: TProps & {
- children: ComponentChildren;
- };
-};
-export declare type Render = (vnode: ComponentChild, parent: Element | Document | ShadowRoot | DocumentFragment, replaceNode?: Element | Text | undefined) => void;
-export declare type AutocompleteRenderer = {
- /**
- * The function to create virtual nodes.
- *
- * @default preact.createElement
- */
- createElement: Pragma;
- /**
- * The component to use to create fragments.
- *
- * @default preact.Fragment
- */
- Fragment: PragmaFrag;
- /**
- * The function to render children to an element.
- */
- render?: Render;
-};
-export declare type HTMLTemplate = (strings: TemplateStringsArray, ...values: any[]) => VNode | VNode[];
-export {};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteRenderer.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.d.ts
deleted file mode 100644
index e1b87b65..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.d.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import { AutocompleteSource as AutocompleteCoreSource, InternalAutocompleteSource as InternalAutocompleteCoreSource, BaseItem } from '@algolia/autocomplete-core';
-import { AutocompleteComponents } from './AutocompleteComponents';
-import { AutocompleteRenderer, HTMLTemplate, VNode } from './AutocompleteRenderer';
-import { AutocompleteState } from './AutocompleteState';
-declare type Template = (params: TParams & AutocompleteRenderer & {
- components: AutocompleteComponents;
- html: HTMLTemplate;
-}) => VNode | VNode[] | string;
-/**
- * Templates to display in the autocomplete panel.
- *
- * A template can either return a string, or perform DOM mutations (manipulating DOM elements with JavaScript and attaching events) without returning a string.
- */
-export declare type SourceTemplates = {
- /**
- * A function that returns the template for each item of the source.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/templates/#param-item
- */
- item: Template<{
- item: TItem;
- state: AutocompleteState;
- }>;
- /**
- * A function that returns the template for the header (before the list of items).
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/templates/#param-header
- */
- header?: Template<{
- state: AutocompleteState;
- source: AutocompleteSource;
- items: TItem[];
- }>;
- /**
- * A function that returns the template for the footer (after the list of items).
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/templates/#param-footer
- */
- footer?: Template<{
- state: AutocompleteState;
- source: AutocompleteSource;
- items: TItem[];
- }>;
- /**
- * A function that returns the template for when there are no items.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/templates/#param-noresults
- */
- noResults?: Template<{
- state: AutocompleteState;
- source: AutocompleteSource;
- }>;
-};
-declare type WithTemplates = TType & {
- /**
- * A set of templates to customize how sections and their items are displayed.
- *
- * See [**Displaying items with Templates**](templates) for more information.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-templates
- */
- templates: SourceTemplates;
-};
-export interface AutocompleteCoreSourceWithDocs extends AutocompleteCoreSource {
- /**
- * Unique identifier for the source.
- *
- * It is used as value for the `data-autocomplete-source-id` attribute of the source `section` container.
- */
- sourceId: string;
-}
-export declare type AutocompleteSource = WithTemplates, TItem>;
-export declare type InternalAutocompleteSource = WithTemplates, TItem>;
-export {};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteSource.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.d.ts
deleted file mode 100644
index 36d6ce97..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { AutocompleteState as AutocompleteCoreState, BaseItem } from '@algolia/autocomplete-core';
-import { AutocompleteCollection } from './AutocompleteCollection';
-export declare type AutocompleteState = Omit, 'collections'> & {
- /**
- * The collections of items.
- *
- * @link https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/state/#param-collections
- */
- collections: Array>;
-};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteState.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.d.ts
deleted file mode 100644
index 4238a484..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare type AutocompleteTranslations = {
- detachedCancelButtonText: string;
- clearButtonTitle: string;
- submitButtonTitle: string;
-};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/AutocompleteTranslations.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.d.ts
deleted file mode 100644
index b81ec320..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export declare type HighlightHitParams = {
- /**
- * The Algolia hit whose attribute to retrieve the highlighted parts from.
- */
- hit: THit;
- /**
- * The attribute to retrieve the highlighted parts from.
- *
- * You can use the array syntax to reference nested attributes.
- */
- attribute: keyof THit | string[];
- /**
- * The tag name to use for highlighted parts.
- *
- * @default "mark"
- */
- tagName?: string;
-};
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.js
deleted file mode 100644
index 8cec2e9c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/HighlightHitParams.js
+++ /dev/null
@@ -1 +0,0 @@
-export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.d.ts b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.d.ts
index 0c635765..76b0ecc8 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.d.ts
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.d.ts
@@ -1,14 +1,9 @@
+export * from '@algolia/autocomplete-shared/dist/esm/js';
export * from './AutocompleteApi';
-export * from './AutocompleteClassNames';
-export * from './AutocompleteCollection';
-export * from './AutocompleteComponents';
export * from './AutocompleteDom';
-export * from './AutocompleteOptions';
-export * from './AutocompletePlugin';
-export * from './AutocompletePropGetters';
-export * from './AutocompleteRender';
-export * from './AutocompleteRenderer';
-export * from './AutocompleteSource';
-export * from './AutocompleteState';
-export * from './AutocompleteTranslations';
-export * from './HighlightHitParams';
+import { AutocompleteOptions as AutocompleteCoreOptions, BaseItem } from '@algolia/autocomplete-core';
+import { AutocompleteOptions as AutocompleteJsOptions } from '@algolia/autocomplete-shared/dist/esm/js';
+export type { AutocompleteInsightsApi, AlgoliaInsightsHit, } from '@algolia/autocomplete-core';
+export interface AutocompleteOptions extends AutocompleteJsOptions {
+ insights?: AutocompleteCoreOptions['insights'];
+}
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.js
index 788c047d..2911c7fc 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/types/index.js
@@ -1,14 +1,4 @@
+export * from '@algolia/autocomplete-shared/dist/esm/js';
export * from './AutocompleteApi';
-export * from './AutocompleteClassNames';
-export * from './AutocompleteCollection';
-export * from './AutocompleteComponents';
export * from './AutocompleteDom';
-export * from './AutocompleteOptions';
-export * from './AutocompletePlugin';
-export * from './AutocompletePropGetters';
-export * from './AutocompleteRender';
-export * from './AutocompleteRenderer';
-export * from './AutocompleteSource';
-export * from './AutocompleteState';
-export * from './AutocompleteTranslations';
-export * from './HighlightHitParams';
\ No newline at end of file
+export {};
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js
index f288c2f1..15663e1e 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js
@@ -5,6 +5,5 @@ export function getHTMLElement(environment, value) {
invariant(element !== null, "The element ".concat(JSON.stringify(value), " is not in the document."));
return element;
}
-
return value;
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js
index 22ba0c86..1ee9034e 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js
@@ -2,12 +2,10 @@ export function mergeClassNames() {
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
values[_key] = arguments[_key];
}
-
return values.reduce(function (acc, current) {
Object.keys(current).forEach(function (key) {
var accValue = acc[key];
var currentValue = current[key];
-
if (accValue !== currentValue) {
acc[key] = [accValue, currentValue].filter(Boolean).join(' ');
}
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeDeep.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeDeep.js
index 718269b1..0978c77b 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeDeep.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/mergeDeep.js
@@ -1,31 +1,21 @@
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
-
var isPlainObject = function isPlainObject(value) {
return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';
};
-
export function mergeDeep() {
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
values[_key] = arguments[_key];
}
-
return values.reduce(function (acc, current) {
Object.keys(current).forEach(function (key) {
var accValue = acc[key];
var currentValue = current[key];
-
if (Array.isArray(accValue) && Array.isArray(currentValue)) {
acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));
} else if (isPlainObject(accValue) && isPlainObject(currentValue)) {
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/pickBy.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/pickBy.js
index 59725793..889a932c 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/pickBy.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/pickBy.js
@@ -1,34 +1,26 @@
+function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
+function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
+function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
-function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
+function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
export function pickBy(obj, predicate) {
return Object.entries(obj).reduce(function (acc, _ref) {
var _ref2 = _slicedToArray(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
-
+ key = _ref2[0],
+ value = _ref2[1];
if (predicate({
key: key,
value: value
})) {
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value));
}
-
return acc;
}, {});
}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/setProperties.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/setProperties.js
index bc21acb2..32b3a8af 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/setProperties.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/esm/utils/setProperties.js
@@ -6,6 +6,7 @@
* See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin
*/
var TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];
+
/*
* Taken from Preact
*
@@ -21,24 +22,21 @@ function setStyle(style, key, value) {
style[key] = value + 'px';
}
}
+
/**
* Proxy an event to hooked event handlers
*/
-
-
function eventProxy(event) {
this._listeners[event.type](event);
}
+
/**
* Set a property value on a DOM node
*/
-
-
export function setProperty(dom, name, value) {
var useCapture;
var nameLower;
var oldValue = dom[name];
-
if (name === 'style') {
if (typeof value == 'string') {
dom.style = value;
@@ -53,7 +51,8 @@ export function setProperty(dom, name, value) {
}
}
}
- } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
+ }
+ // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
else if (name[0] === 'o' && name[1] === 'n') {
useCapture = name !== (name = name.replace(/Capture$/, ''));
nameLower = name.toLowerCase();
@@ -61,18 +60,19 @@ export function setProperty(dom, name, value) {
name = name.slice(2);
if (!dom._listeners) dom._listeners = {};
dom._listeners[name] = value;
-
if (value) {
if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
} else {
dom.removeEventListener(name, eventProxy, useCapture);
}
- } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
+ } else if (name !== 'list' && name !== 'tagName' &&
+ // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
// setAttribute
name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
dom[name] = value == null ? '' : value;
} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
- if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
+ if (value == null || value === false &&
+ // ARIA-attributes have a different notion of boolean values.
// The value `false` is different from the attribute not
// existing on the DOM, so we can't remove it. For non-boolean
// ARIA-attributes we could treat false as a removal, but the
@@ -85,17 +85,17 @@ export function setProperty(dom, name, value) {
}
}
}
-
function getNormalizedName(name) {
switch (name) {
case 'onChange':
return 'onInput';
-
+ // see: https://github.com/preactjs/preact/issues/1978
+ case 'onCompositionEnd':
+ return 'oncompositionend';
default:
return name;
}
}
-
export function setProperties(dom, props) {
for (var name in props) {
setProperty(dom, getNormalizedName(name), props[name]);
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.development.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.development.js
index 70dba093..9977cb51 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.development.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.development.js
@@ -1,47 +1,69 @@
-/*! @algolia/autocomplete-js 1.8.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
+/*! @algolia/autocomplete-js 1.18.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@algolia/autocomplete-js"] = {}));
})(this, (function (exports) { 'use strict';
- function ownKeys$g(object, enumerableOnly) {
+ function _iterableToArrayLimit$2(arr, i) {
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
+ if (null != _i) {
+ var _s,
+ _e,
+ _x,
+ _r,
+ _arr = [],
+ _n = !0,
+ _d = !1;
+ try {
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
+ if (Object(_i) !== _i) return;
+ _n = !1;
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
+ } catch (err) {
+ _d = !0, _e = err;
+ } finally {
+ try {
+ if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
+ } finally {
+ if (_d) throw _e;
+ }
+ }
+ return _arr;
+ }
+ }
+ function ownKeys$h(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
- i % 2 ? ownKeys$g(Object(source), !0).forEach(function (key) {
- _defineProperty$g(target, key, source[key]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$g(Object(source)).forEach(function (key) {
+ i % 2 ? ownKeys$h(Object(source), !0).forEach(function (key) {
+ _defineProperty$h(target, key, source[key]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$h(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
- function _typeof$3(obj) {
+ function _typeof$i(obj) {
"@babel/helpers - typeof";
- return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return _typeof$i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof$3(obj);
+ }, _typeof$i(obj);
}
-
- function _defineProperty$g(obj, key, value) {
+ function _defineProperty$h(obj, key, value) {
+ key = _toPropertyKey$h(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -52,53 +74,40 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
function _extends() {
- _extends = Object.assign || function (target) {
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
-
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
-
return target;
};
-
return _extends.apply(this, arguments);
}
-
- function _objectWithoutPropertiesLoose$4(source, excluded) {
+ function _objectWithoutPropertiesLoose$5(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
-
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
-
return target;
}
-
- function _objectWithoutProperties$4(source, excluded) {
+ function _objectWithoutProperties$5(source, excluded) {
if (source == null) return {};
-
- var target = _objectWithoutPropertiesLoose$4(source, excluded);
-
+ var target = _objectWithoutPropertiesLoose$5(source, excluded);
var key, i;
-
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
@@ -106,84 +115,56 @@
target[key] = source[key];
}
}
-
return target;
}
-
- function _slicedToArray$1(arr, i) {
- return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$6(arr, i) || _nonIterableRest$1();
+ function _slicedToArray$2(arr, i) {
+ return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$9(arr, i) || _nonIterableRest$2();
}
-
- function _toConsumableArray$5(arr) {
- return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$6(arr) || _nonIterableSpread$5();
+ function _toConsumableArray$7(arr) {
+ return _arrayWithoutHoles$7(arr) || _iterableToArray$7(arr) || _unsupportedIterableToArray$9(arr) || _nonIterableSpread$7();
}
-
- function _arrayWithoutHoles$5(arr) {
- if (Array.isArray(arr)) return _arrayLikeToArray$6(arr);
+ function _arrayWithoutHoles$7(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray$9(arr);
}
-
- function _arrayWithHoles$1(arr) {
+ function _arrayWithHoles$2(arr) {
if (Array.isArray(arr)) return arr;
}
-
- function _iterableToArray$5(iter) {
+ function _iterableToArray$7(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
- function _iterableToArrayLimit$1(arr, i) {
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
-
- if (_i == null) return;
- var _arr = [];
- var _n = true;
- var _d = false;
-
- var _s, _e;
-
- try {
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
-
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"] != null) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
-
- return _arr;
- }
-
- function _unsupportedIterableToArray$6(o, minLen) {
+ function _unsupportedIterableToArray$9(o, minLen) {
if (!o) return;
- if (typeof o === "string") return _arrayLikeToArray$6(o, minLen);
+ if (typeof o === "string") return _arrayLikeToArray$9(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen);
}
-
- function _arrayLikeToArray$6(arr, len) {
+ function _arrayLikeToArray$9(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
return arr2;
}
-
- function _nonIterableSpread$5() {
+ function _nonIterableSpread$7() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
- function _nonIterableRest$1() {
+ function _nonIterableRest$2() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
+ function _toPrimitive$h(input, hint) {
+ if (typeof input !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (typeof res !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
+ function _toPropertyKey$h(arg) {
+ var key = _toPrimitive$h(arg, "string");
+ return typeof key === "symbol" ? key : String(key);
+ }
function createRef(initialValue) {
return {
@@ -197,117 +178,95 @@
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
-
if (timerId) {
clearTimeout(timerId);
}
-
timerId = setTimeout(function () {
return fn.apply(void 0, args);
}, time);
};
}
- function _slicedToArray(arr, i) {
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$5(arr, i) || _nonIterableRest();
+ function _slicedToArray$1(arr, i) {
+ return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$8(arr, i) || _nonIterableRest$1();
}
-
- function _nonIterableRest() {
+ function _nonIterableRest$1() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
- function _unsupportedIterableToArray$5(o, minLen) {
+ function _unsupportedIterableToArray$8(o, minLen) {
if (!o) return;
- if (typeof o === "string") return _arrayLikeToArray$5(o, minLen);
+ if (typeof o === "string") return _arrayLikeToArray$8(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen);
}
-
- function _arrayLikeToArray$5(arr, len) {
+ function _arrayLikeToArray$8(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
-
- function _iterableToArrayLimit(arr, i) {
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
-
- if (_i == null) return;
- var _arr = [];
- var _n = true;
- var _d = false;
-
- var _s, _e;
-
- try {
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
-
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
+ function _iterableToArrayLimit$1(arr, i) {
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
+ if (null != _i) {
+ var _s,
+ _e,
+ _x,
+ _r,
+ _arr = [],
+ _n = !0,
+ _d = !1;
try {
- if (!_n && _i["return"] != null) _i["return"]();
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
+ if (Object(_i) !== _i) return;
+ _n = !1;
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
+ } catch (err) {
+ _d = !0, _e = err;
} finally {
- if (_d) throw _e;
+ try {
+ if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
+ } finally {
+ if (_d) throw _e;
+ }
}
+ return _arr;
}
-
- return _arr;
}
-
- function _arrayWithHoles(arr) {
+ function _arrayWithHoles$1(arr) {
if (Array.isArray(arr)) return arr;
}
-
- function _typeof$2(obj) {
+ function _typeof$h(obj) {
"@babel/helpers - typeof";
- return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return _typeof$h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof$2(obj);
+ }, _typeof$h(obj);
}
/**
* Decycles objects with circular references.
* This is used to print cyclic structures in development environment only.
*/
-
-
function decycle(obj) {
var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();
-
- if (!obj || _typeof$2(obj) !== 'object') {
+ if (!obj || _typeof$h(obj) !== 'object') {
return obj;
}
-
if (seen.has(obj)) {
return '[Circular]';
}
-
var newSeen = seen.add(obj);
-
if (Array.isArray(obj)) {
return obj.map(function (x) {
return decycle(x, newSeen);
});
}
-
return Object.fromEntries(Object.entries(obj).map(function (_ref) {
- var _ref2 = _slicedToArray(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
-
+ var _ref2 = _slicedToArray$1(_ref, 2),
+ key = _ref2[0],
+ value = _ref2[1];
return [key, decycle(value, newSeen)];
}));
}
@@ -333,7 +292,6 @@
if (state.collections.length === 0) {
return 0;
}
-
return state.collections.reduce(function (sum, collection) {
return sum + collection.items.length;
}, 0);
@@ -345,15 +303,51 @@
* to where the error comes from.
*/
function invariant(condition, message) {
-
if (!condition) {
throw new Error("[Autocomplete] ".concat(typeof message === 'function' ? message() : message));
}
}
+ function isPrimitive(obj) {
+ return obj !== Object(obj);
+ }
+ function isEqual(first, second) {
+ if (first === second) {
+ return true;
+ }
+ if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {
+ return first === second;
+ }
+ if (Object.keys(first).length !== Object.keys(second).length) {
+ return false;
+ }
+ for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {
+ var key = _Object$keys[_i];
+ if (!(key in second)) {
+ return false;
+ }
+ if (!isEqual(first[key], second[key])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
var noop = function noop() {};
- var version = '1.8.3';
+ /**
+ * Safely runs code meant for browser environments only.
+ */
+ function safelyRunOnBrowser(callback) {
+ if (typeof window !== 'undefined') {
+ return callback({
+ window: window
+ });
+ }
+ return undefined;
+ }
+
+ var version = '1.18.1';
var userAgents$1 = [{
segment: 'autocomplete-core',
@@ -363,25 +357,740 @@
var warnCache = {
current: {}
};
+
/**
* Logs a warning if the condition is not met.
* This is used to log issues in development environment only.
*/
-
function warn(condition, message) {
-
if (condition) {
return;
}
+ var sanitizedMessage = message.trim();
+ var hasAlreadyPrinted = warnCache.current[sanitizedMessage];
+ if (!hasAlreadyPrinted) {
+ warnCache.current[sanitizedMessage] = true;
+
+ // eslint-disable-next-line no-console
+ console.warn("[Autocomplete] ".concat(sanitizedMessage));
+ }
+ }
+
+ function createClickedEvent(_ref) {
+ var item = _ref.item,
+ _ref$items = _ref.items,
+ items = _ref$items === void 0 ? [] : _ref$items;
+ return {
+ index: item.__autocomplete_indexName,
+ items: [item],
+ positions: [1 + items.findIndex(function (x) {
+ return x.objectID === item.objectID;
+ })],
+ queryID: item.__autocomplete_queryID,
+ algoliaSource: ['autocomplete']
+ };
+ }
+
+ function _slicedToArray(arr, i) {
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$7(arr, i) || _nonIterableRest();
+ }
+ function _nonIterableRest() {
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+ function _unsupportedIterableToArray$7(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray$7(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen);
+ }
+ function _arrayLikeToArray$7(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
+ return arr2;
+ }
+ function _iterableToArrayLimit(arr, i) {
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
+ if (null != _i) {
+ var _s,
+ _e,
+ _x,
+ _r,
+ _arr = [],
+ _n = !0,
+ _d = !1;
+ try {
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
+ if (Object(_i) !== _i) return;
+ _n = !1;
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
+ } catch (err) {
+ _d = !0, _e = err;
+ } finally {
+ try {
+ if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
+ } finally {
+ if (_d) throw _e;
+ }
+ }
+ return _arr;
+ }
+ }
+ function _arrayWithHoles(arr) {
+ if (Array.isArray(arr)) return arr;
+ }
+ /**
+ * Determines if a given insights `client` supports the optional call to `init`
+ * and the ability to set credentials via extra parameters when sending events.
+ */
+ function isModernInsightsClient(client) {
+ var _split$map = (client.version || '').split('.').map(Number),
+ _split$map2 = _slicedToArray(_split$map, 2),
+ major = _split$map2[0],
+ minor = _split$map2[1];
+
+ /* eslint-disable @typescript-eslint/camelcase */
+ var v3 = major >= 3;
+ var v2_4 = major === 2 && minor >= 4;
+ var v1_10 = major === 1 && minor >= 10;
+ return v3 || v2_4 || v1_10;
+ /* eslint-enable @typescript-eslint/camelcase */
+ }
+
+ var _excluded$8 = ["items"],
+ _excluded2$1 = ["items"];
+ function _typeof$g(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$g = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$g(obj);
+ }
+ function _toConsumableArray$6(arr) {
+ return _arrayWithoutHoles$6(arr) || _iterableToArray$6(arr) || _unsupportedIterableToArray$6(arr) || _nonIterableSpread$6();
+ }
+ function _nonIterableSpread$6() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+ function _unsupportedIterableToArray$6(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray$6(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen);
+ }
+ function _iterableToArray$6(iter) {
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
+ }
+ function _arrayWithoutHoles$6(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray$6(arr);
+ }
+ function _arrayLikeToArray$6(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
+ return arr2;
+ }
+ function _objectWithoutProperties$4(source, excluded) {
+ if (source == null) return {};
+ var target = _objectWithoutPropertiesLoose$4(source, excluded);
+ var key, i;
+ if (Object.getOwnPropertySymbols) {
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
+ key = sourceSymbolKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
+ target[key] = source[key];
+ }
+ }
+ return target;
+ }
+ function _objectWithoutPropertiesLoose$4(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+ return target;
+ }
+ function ownKeys$g(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ })), keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+ function _objectSpread$g(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = null != arguments[i] ? arguments[i] : {};
+ i % 2 ? ownKeys$g(Object(source), !0).forEach(function (key) {
+ _defineProperty$g(target, key, source[key]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$g(Object(source)).forEach(function (key) {
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ return target;
+ }
+ function _defineProperty$g(obj, key, value) {
+ key = _toPropertyKey$g(key);
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return obj;
+ }
+ function _toPropertyKey$g(arg) {
+ var key = _toPrimitive$g(arg, "string");
+ return _typeof$g(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$g(input, hint) {
+ if (_typeof$g(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$g(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
+ function chunk(item) {
+ var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
+ var chunks = [];
+ for (var i = 0; i < item.objectIDs.length; i += chunkSize) {
+ chunks.push(_objectSpread$g(_objectSpread$g({}, item), {}, {
+ objectIDs: item.objectIDs.slice(i, i + chunkSize)
+ }));
+ }
+ return chunks;
+ }
+ function mapToInsightsParamsApi(params) {
+ return params.map(function (_ref) {
+ var items = _ref.items,
+ param = _objectWithoutProperties$4(_ref, _excluded$8);
+ return _objectSpread$g(_objectSpread$g({}, param), {}, {
+ objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {
+ var objectID = _ref2.objectID;
+ return objectID;
+ })) || param.objectIDs
+ });
+ });
+ }
+ function createSearchInsightsApi(searchInsights) {
+ var canSendHeaders = isModernInsightsClient(searchInsights);
+ function sendToInsights(method, payloads, items) {
+ if (canSendHeaders && typeof items !== 'undefined') {
+ var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,
+ appId = _items$0$__autocomple.appId,
+ apiKey = _items$0$__autocomple.apiKey;
+ var headers = {
+ 'X-Algolia-Application-Id': appId,
+ 'X-Algolia-API-Key': apiKey
+ };
+ searchInsights.apply(void 0, [method].concat(_toConsumableArray$6(payloads), [{
+ headers: headers
+ }]));
+ } else {
+ searchInsights.apply(void 0, [method].concat(_toConsumableArray$6(payloads)));
+ }
+ }
+ return {
+ /**
+ * Initializes Insights with Algolia credentials.
+ */
+ init: function init(appId, apiKey) {
+ searchInsights('init', {
+ appId: appId,
+ apiKey: apiKey
+ });
+ },
+ /**
+ * Sets the authenticated user token to attach to events.
+ * Unsets the authenticated token by passing `undefined`.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/
+ */
+ setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {
+ searchInsights('setAuthenticatedUserToken', authenticatedUserToken);
+ },
+ /**
+ * Sets the user token to attach to events.
+ */
+ setUserToken: function setUserToken(userToken) {
+ searchInsights('setUserToken', userToken);
+ },
+ /**
+ * Sends click events to capture a query and its clicked items and positions.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/
+ */
+ clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {
+ for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
+ params[_key] = arguments[_key];
+ }
+ if (params.length > 0) {
+ sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);
+ }
+ },
+ /**
+ * Sends click events to capture clicked items.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/
+ */
+ clickedObjectIDs: function clickedObjectIDs() {
+ for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ params[_key2] = arguments[_key2];
+ }
+ if (params.length > 0) {
+ sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);
+ }
+ },
+ /**
+ * Sends click events to capture the filters a user clicks on.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/
+ */
+ clickedFilters: function clickedFilters() {
+ for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+ params[_key3] = arguments[_key3];
+ }
+ if (params.length > 0) {
+ searchInsights.apply(void 0, ['clickedFilters'].concat(params));
+ }
+ },
+ /**
+ * Sends conversion events to capture a query and its clicked items.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/
+ */
+ convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {
+ for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+ params[_key4] = arguments[_key4];
+ }
+ if (params.length > 0) {
+ sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);
+ }
+ },
+ /**
+ * Sends conversion events to capture clicked items.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/
+ */
+ convertedObjectIDs: function convertedObjectIDs() {
+ for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
+ params[_key5] = arguments[_key5];
+ }
+ if (params.length > 0) {
+ sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);
+ }
+ },
+ /**
+ * Sends conversion events to capture the filters a user uses when converting.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/
+ */
+ convertedFilters: function convertedFilters() {
+ for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
+ params[_key6] = arguments[_key6];
+ }
+ if (params.length > 0) {
+ searchInsights.apply(void 0, ['convertedFilters'].concat(params));
+ }
+ },
+ /**
+ * Sends view events to capture clicked items.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/
+ */
+ viewedObjectIDs: function viewedObjectIDs() {
+ for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
+ params[_key7] = arguments[_key7];
+ }
+ if (params.length > 0) {
+ params.reduce(function (acc, _ref3) {
+ var items = _ref3.items,
+ param = _objectWithoutProperties$4(_ref3, _excluded2$1);
+ return [].concat(_toConsumableArray$6(acc), _toConsumableArray$6(chunk(_objectSpread$g(_objectSpread$g({}, param), {}, {
+ objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {
+ var objectID = _ref4.objectID;
+ return objectID;
+ })) || param.objectIDs
+ })).map(function (payload) {
+ return {
+ items: items,
+ payload: payload
+ };
+ })));
+ }, []).forEach(function (_ref5) {
+ var items = _ref5.items,
+ payload = _ref5.payload;
+ return sendToInsights('viewedObjectIDs', [payload], items);
+ });
+ }
+ },
+ /**
+ * Sends view events to capture the filters a user uses when viewing.
+ *
+ * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/
+ */
+ viewedFilters: function viewedFilters() {
+ for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
+ params[_key8] = arguments[_key8];
+ }
+ if (params.length > 0) {
+ searchInsights.apply(void 0, ['viewedFilters'].concat(params));
+ }
+ }
+ };
+ }
+
+ function createViewedEvents(_ref) {
+ var items = _ref.items;
+ var itemsByIndexName = items.reduce(function (acc, current) {
+ var _acc$current$__autoco;
+ acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);
+ return acc;
+ }, {});
+ return Object.keys(itemsByIndexName).map(function (indexName) {
+ var items = itemsByIndexName[indexName];
+ return {
+ index: indexName,
+ items: items,
+ algoliaSource: ['autocomplete']
+ };
+ });
+ }
+
+ function isAlgoliaInsightsHit(hit) {
+ return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;
+ }
+
+ function _typeof$f(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$f(obj);
+ }
+ function _toConsumableArray$5(arr) {
+ return _arrayWithoutHoles$5(arr) || _iterableToArray$5(arr) || _unsupportedIterableToArray$5(arr) || _nonIterableSpread$5();
+ }
+ function _nonIterableSpread$5() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+ }
+ function _unsupportedIterableToArray$5(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray$5(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen);
+ }
+ function _iterableToArray$5(iter) {
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
+ }
+ function _arrayWithoutHoles$5(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray$5(arr);
+ }
+ function _arrayLikeToArray$5(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
+ return arr2;
+ }
+ function ownKeys$f(object, enumerableOnly) {
+ var keys = Object.keys(object);
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(object);
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+ })), keys.push.apply(keys, symbols);
+ }
+ return keys;
+ }
+ function _objectSpread$f(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = null != arguments[i] ? arguments[i] : {};
+ i % 2 ? ownKeys$f(Object(source), !0).forEach(function (key) {
+ _defineProperty$f(target, key, source[key]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$f(Object(source)).forEach(function (key) {
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+ });
+ }
+ return target;
+ }
+ function _defineProperty$f(obj, key, value) {
+ key = _toPropertyKey$f(key);
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return obj;
+ }
+ function _toPropertyKey$f(arg) {
+ var key = _toPrimitive$f(arg, "string");
+ return _typeof$f(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$f(input, hint) {
+ if (_typeof$f(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$f(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
+ var VIEW_EVENT_DELAY = 400;
+ var ALGOLIA_INSIGHTS_VERSION = '2.15.0';
+ var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@".concat(ALGOLIA_INSIGHTS_VERSION, "/dist/search-insights.min.js");
+ var sendViewedObjectIDs = debounce(function (_ref) {
+ var onItemsChange = _ref.onItemsChange,
+ items = _ref.items,
+ insights = _ref.insights,
+ state = _ref.state;
+ onItemsChange({
+ insights: insights,
+ insightsEvents: createViewedEvents({
+ items: items
+ }).map(function (event) {
+ return _objectSpread$f({
+ eventName: 'Items Viewed'
+ }, event);
+ }),
+ state: state
+ });
+ }, VIEW_EVENT_DELAY);
+ function createAlgoliaInsightsPlugin(options) {
+ var _getOptions = getOptions(options),
+ providedInsightsClient = _getOptions.insightsClient,
+ insightsInitParams = _getOptions.insightsInitParams,
+ onItemsChange = _getOptions.onItemsChange,
+ onSelectEvent = _getOptions.onSelect,
+ onActiveEvent = _getOptions.onActive,
+ __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;
+ var insightsClient = providedInsightsClient;
+ if (!providedInsightsClient) {
+ safelyRunOnBrowser(function (_ref2) {
+ var window = _ref2.window;
+ var pointer = window.AlgoliaAnalyticsObject || 'aa';
+ if (typeof pointer === 'string') {
+ insightsClient = window[pointer];
+ }
+ if (!insightsClient) {
+ window.AlgoliaAnalyticsObject = pointer;
+ if (!window[pointer]) {
+ window[pointer] = function () {
+ if (!window[pointer].queue) {
+ window[pointer].queue = [];
+ }
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+ window[pointer].queue.push(args);
+ };
+ }
+ window[pointer].version = ALGOLIA_INSIGHTS_VERSION;
+ insightsClient = window[pointer];
+ loadInsights(window);
+ }
+ });
+ }
+
+ // We return an empty plugin if `insightsClient` is still undefined at
+ // this stage, which can happen in server environments.
+ if (!insightsClient) {
+ return {};
+ }
+ if (insightsInitParams) {
+ insightsClient('init', _objectSpread$f({
+ partial: true
+ }, insightsInitParams));
+ }
+ var insights = createSearchInsightsApi(insightsClient);
+ var previousItems = createRef([]);
+ var debouncedOnStateChange = debounce(function (_ref3) {
+ var state = _ref3.state;
+ if (!state.isOpen) {
+ return;
+ }
+ var items = state.collections.reduce(function (acc, current) {
+ return [].concat(_toConsumableArray$5(acc), _toConsumableArray$5(current.items));
+ }, []).filter(isAlgoliaInsightsHit);
+ if (!isEqual(previousItems.current.map(function (x) {
+ return x.objectID;
+ }), items.map(function (x) {
+ return x.objectID;
+ }))) {
+ previousItems.current = items;
+ if (items.length > 0) {
+ sendViewedObjectIDs({
+ onItemsChange: onItemsChange,
+ items: items,
+ insights: insights,
+ state: state
+ });
+ }
+ }
+ }, 0);
+ return {
+ name: 'aa.algoliaInsightsPlugin',
+ subscribe: function subscribe(_ref4) {
+ var setContext = _ref4.setContext,
+ onSelect = _ref4.onSelect,
+ onActive = _ref4.onActive;
+ function setInsightsContext(userToken) {
+ setContext({
+ algoliaInsightsPlugin: {
+ __algoliaSearchParameters: _objectSpread$f(_objectSpread$f({}, __autocomplete_clickAnalytics ? {
+ clickAnalytics: true
+ } : {}), userToken ? {
+ userToken: normalizeUserToken(userToken)
+ } : {}),
+ insights: insights
+ }
+ });
+ }
+ insightsClient('addAlgoliaAgent', 'insights-plugin');
+ setInsightsContext();
+
+ // Handles user token changes
+ insightsClient('onUserTokenChange', function (userToken) {
+ setInsightsContext(userToken);
+ });
+ insightsClient('getUserToken', null, function (_error, userToken) {
+ setInsightsContext(userToken);
+ });
+ onSelect(function (_ref5) {
+ var item = _ref5.item,
+ state = _ref5.state,
+ event = _ref5.event,
+ source = _ref5.source;
+ if (!isAlgoliaInsightsHit(item)) {
+ return;
+ }
+ onSelectEvent({
+ state: state,
+ event: event,
+ insights: insights,
+ item: item,
+ insightsEvents: [_objectSpread$f({
+ eventName: 'Item Selected'
+ }, createClickedEvent({
+ item: item,
+ items: source.getItems().filter(isAlgoliaInsightsHit)
+ }))]
+ });
+ });
+ onActive(function (_ref6) {
+ var item = _ref6.item,
+ source = _ref6.source,
+ state = _ref6.state,
+ event = _ref6.event;
+ if (!isAlgoliaInsightsHit(item)) {
+ return;
+ }
+ onActiveEvent({
+ state: state,
+ event: event,
+ insights: insights,
+ item: item,
+ insightsEvents: [_objectSpread$f({
+ eventName: 'Item Active'
+ }, createClickedEvent({
+ item: item,
+ items: source.getItems().filter(isAlgoliaInsightsHit)
+ }))]
+ });
+ });
+ },
+ onStateChange: function onStateChange(_ref7) {
+ var state = _ref7.state;
+ debouncedOnStateChange({
+ state: state
+ });
+ },
+ __autocomplete_pluginOptions: options
+ };
+ }
+ function getAlgoliaSources() {
+ var _context$algoliaInsig;
+ var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
+ var context = arguments.length > 1 ? arguments[1] : undefined;
+ return [].concat(_toConsumableArray$5(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray$5((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : []));
+ }
+ function getOptions(options) {
+ return _objectSpread$f({
+ onItemsChange: function onItemsChange(_ref8) {
+ var insights = _ref8.insights,
+ insightsEvents = _ref8.insightsEvents,
+ state = _ref8.state;
+ insights.viewedObjectIDs.apply(insights, _toConsumableArray$5(insightsEvents.map(function (event) {
+ return _objectSpread$f(_objectSpread$f({}, event), {}, {
+ algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)
+ });
+ })));
+ },
+ onSelect: function onSelect(_ref9) {
+ var insights = _ref9.insights,
+ insightsEvents = _ref9.insightsEvents,
+ state = _ref9.state;
+ insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray$5(insightsEvents.map(function (event) {
+ return _objectSpread$f(_objectSpread$f({}, event), {}, {
+ algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)
+ });
+ })));
+ },
+ onActive: noop,
+ __autocomplete_clickAnalytics: true
+ }, options);
+ }
+ function loadInsights(environment) {
+ var errorMessage = "[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete";
+ try {
+ var script = environment.document.createElement('script');
+ script.async = true;
+ script.src = ALGOLIA_INSIGHTS_SRC;
+ script.onerror = function () {
+ // eslint-disable-next-line no-console
+ console.error(errorMessage);
+ };
+ document.body.appendChild(script);
+ } catch (cause) {
+ // eslint-disable-next-line no-console
+ console.error(errorMessage);
+ }
+ }
- var sanitizedMessage = message.trim();
- var hasAlreadyPrinted = warnCache.current[sanitizedMessage];
-
- if (!hasAlreadyPrinted) {
- warnCache.current[sanitizedMessage] = true; // eslint-disable-next-line no-console
-
- console.warn("[Autocomplete] ".concat(sanitizedMessage));
- }
+ /**
+ * While `search-insights` supports both string and number user tokens,
+ * the Search API only accepts strings. This function normalizes the user token.
+ */
+ function normalizeUserToken(userToken) {
+ return typeof userToken === 'number' ? userToken.toString() : userToken;
}
function checkOptions(options) {
@@ -401,7 +1110,6 @@
if (onfinally) {
state.onCancelList.push(onfinally);
}
-
return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {
state.onCancelList = [];
return onfinally();
@@ -420,24 +1128,20 @@
}
};
}
-
function cancelable(promise) {
return createInternalCancelablePromise(promise, {
isCanceled: false,
onCancelList: []
});
}
-
function createCallback(onResult, state, fallback) {
if (!onResult) {
return fallback;
}
-
return function callback(arg) {
if (state.isCanceled) {
return arg;
}
-
return onResult(arg);
};
}
@@ -494,7 +1198,6 @@
if (latestResolvedValue && currentPromiseId < latestResolvedId) {
return latestResolvedValue;
}
-
latestResolvedId = currentPromiseId;
latestResolvedValue = x;
return x;
@@ -522,47 +1225,39 @@
if (!itemCount) {
return null;
}
-
if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {
return itemCount + moveAmount;
}
-
var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;
-
if (numericIndex <= -1 || numericIndex >= itemCount) {
return defaultActiveItemId === null ? null : 0;
}
-
return numericIndex;
}
- function ownKeys$f(object, enumerableOnly) {
+ function ownKeys$e(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
- function _objectSpread$f(target) {
+ function _objectSpread$e(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
- i % 2 ? ownKeys$f(Object(source), !0).forEach(function (key) {
- _defineProperty$f(target, key, source[key]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$f(Object(source)).forEach(function (key) {
+ i % 2 ? ownKeys$e(Object(source), !0).forEach(function (key) {
+ _defineProperty$e(target, key, source[key]);
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$e(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
- function _defineProperty$f(obj, key, value) {
+ function _defineProperty$e(obj, key, value) {
+ key = _toPropertyKey$e(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -573,37 +1268,48 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
- function _typeof$1(obj) {
+ function _toPropertyKey$e(arg) {
+ var key = _toPrimitive$e(arg, "string");
+ return _typeof$e(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$e(input, hint) {
+ if (_typeof$e(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$e(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
+ function _typeof$e(obj) {
"@babel/helpers - typeof";
- return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return _typeof$e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof$1(obj);
+ }, _typeof$e(obj);
}
function getNormalizedSources(getSources, params) {
var seenSourceIds = [];
return Promise.resolve(getSources(params)).then(function (sources) {
invariant(Array.isArray(sources), function () {
- return "The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(_typeof$1(sources)), ":\n\n").concat(JSON.stringify(decycle(sources), null, 2));
+ return "The `getSources` function must return an array of sources but returned type ".concat(JSON.stringify(_typeof$e(sources)), ":\n\n").concat(JSON.stringify(decycle(sources), null, 2));
});
- return Promise.all(sources // We allow `undefined` and `false` sources to allow users to use
+ return Promise.all(sources
+ // We allow `undefined` and `false` sources to allow users to use
// `Boolean(query) && source` (=> `false`).
// We need to remove these values at this point.
.filter(function (maybeSource) {
return Boolean(maybeSource);
}).map(function (source) {
invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');
-
if (seenSourceIds.includes(source.sourceId)) {
throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(source.sourceId), " is not unique."));
}
-
seenSourceIds.push(source.sourceId);
var defaultSource = {
getItemInputValue: function getItemInputValue(_ref) {
@@ -623,9 +1329,7 @@
Object.keys(defaultSource).forEach(function (key) {
defaultSource[key].__default = true;
});
-
- var normalizedSource = _objectSpread$f(_objectSpread$f({}, defaultSource), source);
-
+ var normalizedSource = _objectSpread$e(_objectSpread$e({}, defaultSource), source);
return Promise.resolve(normalizedSource);
}));
});
@@ -645,17 +1349,18 @@
var nextValue = previousValue + collectionsCount;
acc.push(nextValue);
return acc;
- }, []); // Based on the accumulated counts, we can infer the index of the suggestion.
+ }, []);
+ // Based on the accumulated counts, we can infer the index of the suggestion.
var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {
if (current <= state.activeItemId) {
return acc + 1;
}
-
return acc;
}, 0);
return state.collections[collectionIndex];
}
+
/**
* Gets the highlighted index relative to a suggestion object (not the absolute
* highlighted index).
@@ -665,37 +1370,28 @@
* ↑
* (absolute: 3, relative: 1)
*/
-
-
function getRelativeActiveItemId(_ref) {
var state = _ref.state,
- collection = _ref.collection;
+ collection = _ref.collection;
var isOffsetFound = false;
var counter = 0;
var previousItemsOffset = 0;
-
while (isOffsetFound === false) {
var currentCollection = state.collections[counter];
-
if (currentCollection === collection) {
isOffsetFound = true;
break;
}
-
previousItemsOffset += currentCollection.items.length;
counter++;
}
-
return state.activeItemId - previousItemsOffset;
}
-
function getActiveItem(state) {
var collection = getCollectionFromActiveItemId(state);
-
if (!collection) {
return null;
}
-
var item = collection.items[getRelativeActiveItemId({
state: state,
collection: collection
@@ -717,78 +1413,34 @@
};
}
+ /**
+ * Returns a full element id for an autocomplete element.
+ *
+ * @param autocompleteInstanceId The id of the autocomplete instance
+ * @param elementId The specific element id
+ * @param source The source of the element, when it needs to be scoped
+ */
+ function getAutocompleteElementId(autocompleteInstanceId, elementId, source) {
+ return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\s/g, '');
+ }
+
function isOrContainsNode(parent, child) {
return parent === child || parent.contains(child);
}
- var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]/i;
+ var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;
function isSamsung(userAgent) {
return Boolean(userAgent && userAgent.match(regex));
}
- function ownKeys$e(object, enumerableOnly) {
- var keys = Object.keys(object);
-
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- enumerableOnly && (symbols = symbols.filter(function (sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- })), keys.push.apply(keys, symbols);
- }
-
- return keys;
- }
-
- function _objectSpread$e(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = null != arguments[i] ? arguments[i] : {};
- i % 2 ? ownKeys$e(Object(source), !0).forEach(function (key) {
- _defineProperty$e(target, key, source[key]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$e(Object(source)).forEach(function (key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
-
- return target;
- }
-
- function _defineProperty$e(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
- }
-
function mapToAlgoliaResponse(rawResults) {
- var results = rawResults.map(function (result) {
- var _hits;
-
- return _objectSpread$e(_objectSpread$e({}, result), {}, {
- hits: (_hits = result.hits) === null || _hits === void 0 ? void 0 : _hits.map(function (hit) {
- // Bring support for the Insights plugin.
- return _objectSpread$e(_objectSpread$e({}, hit), {}, {
- __autocomplete_indexName: result.index,
- __autocomplete_queryID: result.queryID
- });
- })
- });
- });
return {
- results: results,
- hits: results.map(function (result) {
+ results: rawResults,
+ hits: rawResults.map(function (result) {
return result.hits;
}).filter(Boolean),
- facetHits: results.map(function (result) {
+ facetHits: rawResults.map(function (result) {
var _facetHits;
-
return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {
// Bring support for the highlighting components.
return {
@@ -805,19 +1457,29 @@
};
}
+ function getNativeEvent(event) {
+ return event.nativeEvent || event;
+ }
+
+ function _typeof$d(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$d(obj);
+ }
function ownKeys$d(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$d(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -827,11 +1489,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$d(obj, key, value) {
+ key = _toPropertyKey$d(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -842,9 +1503,22 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$d(arg) {
+ var key = _toPrimitive$d(arg, "string");
+ return _typeof$d(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$d(input, hint) {
+ if (_typeof$d(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$d(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function createStore(reducer, props, onStoreStateChange) {
var state = props.initialState;
return {
@@ -853,7 +1527,6 @@
},
dispatch: function dispatch(action, payload) {
var prevState = _objectSpread$d({}, state);
-
state = reducer(state, {
type: action,
props: props,
@@ -868,19 +1541,25 @@
};
}
+ function _typeof$c(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$c(obj);
+ }
function ownKeys$c(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$c(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -890,11 +1569,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$c(obj, key, value) {
+ key = _toPropertyKey$c(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -905,20 +1583,30 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$c(arg) {
+ var key = _toPrimitive$c(arg, "string");
+ return _typeof$c(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$c(input, hint) {
+ if (_typeof$c(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$c(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function getAutocompleteSetters(_ref) {
var store = _ref.store;
-
var setActiveItemId = function setActiveItemId(value) {
store.dispatch('setActiveItemId', value);
};
-
var setQuery = function setQuery(value) {
store.dispatch('setQuery', value);
};
-
var setCollections = function setCollections(rawValue) {
var baseItemId = 0;
var value = rawValue.map(function (collection) {
@@ -934,19 +1622,15 @@
});
store.dispatch('setCollections', value);
};
-
var setIsOpen = function setIsOpen(value) {
store.dispatch('setIsOpen', value);
};
-
var setStatus = function setStatus(value) {
store.dispatch('setStatus', value);
};
-
var setContext = function setContext(value) {
store.dispatch('setContext', value);
};
-
return {
setActiveItemId: setActiveItemId,
setQuery: setQuery,
@@ -957,14 +1641,21 @@
};
}
+ function _typeof$b(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$b = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$b(obj);
+ }
function _toConsumableArray$4(arr) {
return _arrayWithoutHoles$4(arr) || _iterableToArray$4(arr) || _unsupportedIterableToArray$4(arr) || _nonIterableSpread$4();
}
-
function _nonIterableSpread$4() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
function _unsupportedIterableToArray$4(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray$4(o, minLen);
@@ -973,38 +1664,27 @@
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen);
}
-
function _iterableToArray$4(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
function _arrayWithoutHoles$4(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray$4(arr);
}
-
function _arrayLikeToArray$4(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
-
function ownKeys$b(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$b(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1014,11 +1694,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$b(obj, key, value) {
+ key = _toPropertyKey$b(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1029,25 +1708,38 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$b(arg) {
+ var key = _toPrimitive$b(arg, "string");
+ return _typeof$b(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$b(input, hint) {
+ if (_typeof$b(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$b(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function getDefaultProps(props, pluginSubscribers) {
var _props$id;
/* eslint-disable no-restricted-globals */
-
-
var environment = typeof window !== 'undefined' ? window : {};
/* eslint-enable no-restricted-globals */
-
var plugins = props.plugins || [];
return _objectSpread$b(_objectSpread$b({
debug: false,
openOnFocus: false,
+ enterKeyHint: undefined,
+ ignoreCompositionEvents: false,
placeholder: '',
autoFocus: false,
defaultActiveItemId: null,
stallThreshold: 300,
+ insights: undefined,
environment: environment,
shouldPanelOpen: function shouldPanelOpen(_ref) {
var state = _ref.state;
@@ -1074,31 +1766,25 @@
}, props.initialState),
onStateChange: function onStateChange(params) {
var _props$onStateChange;
-
(_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);
plugins.forEach(function (x) {
var _x$onStateChange;
-
return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);
});
},
onSubmit: function onSubmit(params) {
var _props$onSubmit;
-
(_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);
plugins.forEach(function (x) {
var _x$onSubmit;
-
return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);
});
},
onReset: function onReset(params) {
var _props$onReset;
-
(_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);
plugins.forEach(function (x) {
var _x$onReset;
-
return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);
});
},
@@ -1116,7 +1802,6 @@
source.onSelect(params);
pluginSubscribers.forEach(function (x) {
var _x$onSelect;
-
return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);
});
},
@@ -1124,7 +1809,6 @@
source.onActive(params);
pluginSubscribers.forEach(function (x) {
var _x$onActive;
-
return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);
});
},
@@ -1132,7 +1816,6 @@
source.onResolve(params);
pluginSubscribers.forEach(function (x) {
var _x$onResolve;
-
return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);
});
}
@@ -1158,19 +1841,25 @@
});
}
+ function _typeof$a(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$a(obj);
+ }
function ownKeys$a(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$a(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1180,11 +1869,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$a(obj, key, value) {
+ key = _toPropertyKey$a(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1195,15 +1883,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$a(arg) {
+ var key = _toPrimitive$a(arg, "string");
+ return _typeof$a(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$a(input, hint) {
+ if (_typeof$a(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$a(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function reshape(_ref) {
var collections = _ref.collections,
- props = _ref.props,
- state = _ref.state; // Sources are grouped by `sourceId` to conveniently pick them via destructuring.
+ props = _ref.props,
+ state = _ref.state;
+ // Sources are grouped by `sourceId` to conveniently pick them via destructuring.
// Example: `const { recentSearchesPlugin } = sourcesBySourceId`
-
var originalSourcesBySourceId = collections.reduce(function (acc, collection) {
return _objectSpread$a(_objectSpread$a({}, acc), {}, _defineProperty$a({}, collection.source.sourceId, _objectSpread$a(_objectSpread$a({}, collection.source), {}, {
getItems: function getItems() {
@@ -1212,25 +1913,23 @@
}
})));
}, {});
-
var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {
- if (plugin.reshape) {
- return plugin.reshape(acc);
- }
-
- return acc;
- }, {
- sourcesBySourceId: originalSourcesBySourceId,
- state: state
- }),
- sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;
-
+ if (plugin.reshape) {
+ return plugin.reshape(acc);
+ }
+ return acc;
+ }, {
+ sourcesBySourceId: originalSourcesBySourceId,
+ state: state
+ }),
+ sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;
var reshapeSources = props.reshape({
sourcesBySourceId: sourcesBySourceId,
sources: Object.values(sourcesBySourceId),
state: state
- }); // We reconstruct the collections with the items modified by the `reshape` prop.
+ });
+ // We reconstruct the collections with the items modified by the `reshape` prop.
return flatten(reshapeSources).filter(Boolean).map(function (source) {
return {
source: source,
@@ -1239,29 +1938,25 @@
});
}
- function _typeof(obj) {
+ function _typeof$9(obj) {
"@babel/helpers - typeof";
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return _typeof$9 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof(obj);
+ }, _typeof$9(obj);
}
-
function ownKeys$9(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$9(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1271,11 +1966,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$9(obj, key, value) {
+ key = _toPropertyKey$9(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1286,18 +1980,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey$9(arg) {
+ var key = _toPrimitive$9(arg, "string");
+ return _typeof$9(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$9(input, hint) {
+ if (_typeof$9(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$9(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function _toConsumableArray$3(arr) {
return _arrayWithoutHoles$3(arr) || _iterableToArray$3(arr) || _unsupportedIterableToArray$3(arr) || _nonIterableSpread$3();
}
-
function _nonIterableSpread$3() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
function _unsupportedIterableToArray$3(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray$3(o, minLen);
@@ -1306,38 +2010,27 @@
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen);
}
-
function _iterableToArray$3(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
function _arrayWithoutHoles$3(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray$3(arr);
}
-
function _arrayLikeToArray$3(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
-
function isDescription(item) {
return Boolean(item.execute);
}
-
function isRequesterDescription(description) {
return Boolean(description === null || description === void 0 ? void 0 : description.execute);
}
-
function preResolve(itemsOrDescription, sourceId, state) {
if (isRequesterDescription(itemsOrDescription)) {
var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray$3(Object.keys(state.context).map(function (key) {
var _state$context$key;
-
return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;
})))) : {};
return _objectSpread$9(_objectSpread$9({}, itemsOrDescription), {}, {
@@ -1352,7 +2045,6 @@
})
});
}
-
return {
items: itemsOrDescription,
sourceId: sourceId
@@ -1364,18 +2056,15 @@
acc.push(current);
return acc;
}
-
var searchClient = current.searchClient,
- execute = current.execute,
- requesterId = current.requesterId,
- requests = current.requests;
+ execute = current.execute,
+ requesterId = current.requesterId,
+ requests = current.requests;
var container = acc.find(function (item) {
return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;
});
-
if (container) {
var _container$items;
-
(_container$items = container.items).push.apply(_container$items, _toConsumableArray$3(requests));
} else {
var request = {
@@ -1386,18 +2075,16 @@
};
acc.push(request);
}
-
return acc;
}, []);
var values = packed.map(function (maybeDescription) {
if (!isDescription(maybeDescription)) {
return Promise.resolve(maybeDescription);
}
-
var _ref = maybeDescription,
- execute = _ref.execute,
- items = _ref.items,
- searchClient = _ref.searchClient;
+ execute = _ref.execute,
+ items = _ref.items,
+ searchClient = _ref.searchClient;
return execute({
searchClient: searchClient,
requests: items
@@ -1425,7 +2112,7 @@
state: store.getState()
});
invariant(Array.isArray(items), function () {
- return "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned type ").concat(JSON.stringify(_typeof(items)), ":\n\n").concat(JSON.stringify(decycle(items), null, 2), ".\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems");
+ return "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned type ").concat(JSON.stringify(_typeof$9(items)), ":\n\n").concat(JSON.stringify(decycle(items), null, 2), ".\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems");
});
invariant(items.every(Boolean), "The `getItems` function from source \"".concat(source.sourceId, "\" must return an array of items but returned ").concat(JSON.stringify(undefined), ".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"));
return {
@@ -1434,22 +2121,27 @@
};
});
}
-
+
+ function _typeof$8(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$8 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$8(obj);
+ }
var _excluded$7 = ["event", "nextState", "props", "query", "refresh", "store"];
-
function ownKeys$8(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$8(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1459,11 +2151,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$8(obj, key, value) {
+ key = _toPropertyKey$8(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1474,20 +2165,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey$8(arg) {
+ var key = _toPrimitive$8(arg, "string");
+ return _typeof$8(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$8(input, hint) {
+ if (_typeof$8(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$8(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function _objectWithoutProperties$3(source, excluded) {
if (source == null) return {};
-
var target = _objectWithoutPropertiesLoose$3(source, excluded);
-
var key, i;
-
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
@@ -1495,51 +2194,44 @@
target[key] = source[key];
}
}
-
return target;
}
-
function _objectWithoutPropertiesLoose$3(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
-
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
-
return target;
}
var lastStalledId = null;
var runConcurrentSafePromise = createConcurrentSafePromise();
function onInput(_ref) {
var event = _ref.event,
- _ref$nextState = _ref.nextState,
- nextState = _ref$nextState === void 0 ? {} : _ref$nextState,
- props = _ref.props,
- query = _ref.query,
- refresh = _ref.refresh,
- store = _ref.store,
- setters = _objectWithoutProperties$3(_ref, _excluded$7);
-
+ _ref$nextState = _ref.nextState,
+ nextState = _ref$nextState === void 0 ? {} : _ref$nextState,
+ props = _ref.props,
+ query = _ref.query,
+ refresh = _ref.refresh,
+ store = _ref.store,
+ setters = _objectWithoutProperties$3(_ref, _excluded$7);
if (lastStalledId) {
props.environment.clearTimeout(lastStalledId);
}
-
var setCollections = setters.setCollections,
- setIsOpen = setters.setIsOpen,
- setQuery = setters.setQuery,
- setActiveItemId = setters.setActiveItemId,
- setStatus = setters.setStatus;
+ setIsOpen = setters.setIsOpen,
+ setQuery = setters.setQuery,
+ setActiveItemId = setters.setActiveItemId,
+ setStatus = setters.setStatus,
+ setContext = setters.setContext;
setQuery(query);
setActiveItemId(props.defaultActiveItemId);
-
if (!query && props.openOnFocus === false) {
var _nextState$isOpen;
-
var collections = store.getState().collections.map(function (collection) {
return _objectSpread$8(_objectSpread$8({}, collection), {}, {
items: []
@@ -1549,28 +2241,28 @@
setCollections(collections);
setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({
state: store.getState()
- })); // We make sure to update the latest resolved value of the tracked
+ }));
+
+ // We make sure to update the latest resolved value of the tracked
// promises to keep late resolving promises from "cancelling" the state
// updates performed in this code path.
// We chain with a void promise to respect `onInput`'s expected return type.
-
var _request = cancelable(runConcurrentSafePromise(collections).then(function () {
return Promise.resolve();
}));
-
return store.pendingRequests.add(_request);
}
-
setStatus('loading');
lastStalledId = props.environment.setTimeout(function () {
setStatus('stalled');
- }, props.stallThreshold); // We track the entire promise chain triggered by `onInput` before mutating
+ }, props.stallThreshold);
+
+ // We track the entire promise chain triggered by `onInput` before mutating
// the Autocomplete state to make sure that any state manipulation is based on
// fresh data regardless of when promises individually resolve.
// We don't track nested promises and only rely on the full chain resolution,
// meaning we should only ever manipulate the state once this concurrent-safe
// promise is resolved.
-
var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread$8({
query: query,
refresh: refresh,
@@ -1585,6 +2277,20 @@
return preResolve(itemsOrDescription, source.sourceId, store.getState());
});
})).then(resolve).then(function (responses) {
+ var __automaticInsights = responses.some(function (_ref2) {
+ var items = _ref2.items;
+ return isSearchResponseWithAutomaticInsightsFlag(items);
+ });
+
+ // No need to pollute the context if `__automaticInsights=false`
+ if (__automaticInsights) {
+ var _store$getState$conte;
+ setContext({
+ algoliaInsightsPlugin: _objectSpread$8(_objectSpread$8({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, {
+ __automaticInsights: __automaticInsights
+ })
+ });
+ }
return postResolve(responses, sources, store);
}).then(function (collections) {
return reshape({
@@ -1594,12 +2300,12 @@
});
});
}))).then(function (collections) {
- var _nextState$isOpen2; // Parameters passed to `onInput` could be stale when the following code
+ var _nextState$isOpen2;
+ // Parameters passed to `onInput` could be stale when the following code
// executes, because `onInput` calls may not resolve in order.
// If it becomes a problem we'll need to save the last passed parameters.
// See: https://codesandbox.io/s/agitated-cookies-y290z
-
setStatus('idle');
setCollections(collections);
var isPanelOpen = props.shouldPanelOpen({
@@ -1607,12 +2313,11 @@
});
setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);
var highlightedItem = getActiveItem(store.getState());
-
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,
- itemInputValue = highlightedItem.itemInputValue,
- itemUrl = highlightedItem.itemUrl,
- source = highlightedItem.source;
+ itemInputValue = highlightedItem.itemInputValue,
+ itemUrl = highlightedItem.itemUrl,
+ source = highlightedItem.source;
source.onActive(_objectSpread$8({
event: event,
item: item,
@@ -1625,29 +2330,36 @@
}
}).finally(function () {
setStatus('idle');
-
if (lastStalledId) {
props.environment.clearTimeout(lastStalledId);
}
});
return store.pendingRequests.add(request);
}
+ function isSearchResponseWithAutomaticInsightsFlag(items) {
+ return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights);
+ }
- var _excluded$6 = ["event", "props", "refresh", "store"];
+ function _typeof$7(obj) {
+ "@babel/helpers - typeof";
+ return _typeof$7 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$7(obj);
+ }
+ var _excluded$6 = ["event", "props", "refresh", "store"];
function ownKeys$7(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$7(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1657,11 +2369,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$7(obj, key, value) {
+ key = _toPropertyKey$7(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1672,20 +2383,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey$7(arg) {
+ var key = _toPrimitive$7(arg, "string");
+ return _typeof$7(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$7(input, hint) {
+ if (_typeof$7(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$7(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function _objectWithoutProperties$2(source, excluded) {
if (source == null) return {};
-
var target = _objectWithoutPropertiesLoose$2(source, excluded);
-
var key, i;
-
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
@@ -1693,36 +2412,31 @@
target[key] = source[key];
}
}
-
return target;
}
-
function _objectWithoutPropertiesLoose$2(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
-
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
-
return target;
}
function onKeyDown(_ref) {
var event = _ref.event,
- props = _ref.props,
- refresh = _ref.refresh,
- store = _ref.store,
- setters = _objectWithoutProperties$2(_ref, _excluded$6);
-
+ props = _ref.props,
+ refresh = _ref.refresh,
+ store = _ref.store,
+ setters = _objectWithoutProperties$2(_ref, _excluded$6);
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
// eslint-disable-next-line no-inner-declarations
var triggerScrollIntoView = function triggerScrollIntoView() {
- var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId));
-
+ var highlightedItem = getActiveItem(store.getState());
+ var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));
if (nodeItem) {
if (nodeItem.scrollIntoViewIfNeeded) {
nodeItem.scrollIntoViewIfNeeded(false);
@@ -1731,16 +2445,13 @@
}
}
}; // eslint-disable-next-line no-inner-declarations
-
-
var triggerOnActive = function triggerOnActive() {
var highlightedItem = getActiveItem(store.getState());
-
if (store.getState().activeItemId !== null && highlightedItem) {
var item = highlightedItem.item,
- itemInputValue = highlightedItem.itemInputValue,
- itemUrl = highlightedItem.itemUrl,
- source = highlightedItem.source;
+ itemInputValue = highlightedItem.itemInputValue,
+ itemUrl = highlightedItem.itemUrl,
+ source = highlightedItem.source;
source.onActive(_objectSpread$7({
event: event,
item: item,
@@ -1753,11 +2464,10 @@
}
}; // Default browser behavior changes the caret placement on ArrowUp and
// ArrowDown.
+ event.preventDefault();
-
- event.preventDefault(); // When re-opening the panel, we need to split the logic to keep the actions
+ // When re-opening the panel, we need to split the logic to keep the actions
// synchronized as `onInput` returns a promise.
-
if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {
onInput(_objectSpread$7({
event: event,
@@ -1769,10 +2479,10 @@
store.dispatch(event.key, {
nextActiveItemId: props.defaultActiveItemId
});
- triggerOnActive(); // Since we rely on the DOM, we need to wait for all the micro tasks to
+ triggerOnActive();
+ // Since we rely on the DOM, we need to wait for all the micro tasks to
// finish (which include re-opening the panel) to make sure all the
// elements are available.
-
setTimeout(triggerScrollIntoView, 0);
});
} else {
@@ -1785,18 +2495,20 @@
// from removing the query right away because we first want to close the
// panel.
event.preventDefault();
- store.dispatch(event.key, null); // Hitting the `Escape` key signals the end of a user interaction with the
+ store.dispatch(event.key, null);
+
+ // Hitting the `Escape` key signals the end of a user interaction with the
// autocomplete. At this point, we should ignore any requests that are still
// pending and could reopen the panel once they resolve, because that would
// result in an unsolicited UI behavior.
-
store.pendingRequests.cancelAll();
} else if (event.key === 'Tab') {
- store.dispatch('blur', null); // Hitting the `Escape` key signals the end of a user interaction with the
+ store.dispatch('blur', null);
+
+ // Hitting the `Tab` key signals the end of a user interaction with the
// autocomplete. At this point, we should ignore any requests that are still
// pending and could reopen the panel once they resolve, because that would
// result in an unsolicited UI behavior.
-
store.pendingRequests.cancelAll();
} else if (event.key === 'Enter') {
// No active item, so we let the browser handle the native `onSubmit` form
@@ -1811,20 +2523,17 @@
if (!props.debug) {
store.pendingRequests.cancelAll();
}
-
return;
- } // This prevents the `onSubmit` event to be sent because an item is
- // highlighted.
-
+ }
+ // This prevents the `onSubmit` event to be sent because an item is
+ // highlighted.
event.preventDefault();
-
var _ref2 = getActiveItem(store.getState()),
- item = _ref2.item,
- itemInputValue = _ref2.itemInputValue,
- itemUrl = _ref2.itemUrl,
- source = _ref2.source;
-
+ item = _ref2.item,
+ itemInputValue = _ref2.itemInputValue,
+ itemUrl = _ref2.itemUrl,
+ source = _ref2.source;
if (event.metaKey || event.ctrlKey) {
if (itemUrl !== undefined) {
source.onSelect(_objectSpread$7({
@@ -1877,7 +2586,6 @@
});
return;
}
-
onInput(_objectSpread$7({
event: event,
nextState: {
@@ -1902,27 +2610,31 @@
}
}
- var _excluded$5 = ["props", "refresh", "store"],
- _excluded2 = ["inputElement", "formElement", "panelElement"],
- _excluded3 = ["inputElement"],
- _excluded4 = ["inputElement", "maxLength"],
- _excluded5 = ["sourceIndex"],
- _excluded6 = ["sourceIndex"],
- _excluded7 = ["item", "source", "sourceIndex"];
+ function _typeof$6(obj) {
+ "@babel/helpers - typeof";
+ return _typeof$6 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$6(obj);
+ }
+ var _excluded$5 = ["props", "refresh", "store"],
+ _excluded2 = ["inputElement", "formElement", "panelElement"],
+ _excluded3 = ["inputElement"],
+ _excluded4 = ["inputElement", "maxLength"],
+ _excluded5 = ["source"],
+ _excluded6 = ["item", "source"];
function ownKeys$6(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$6(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -1932,11 +2644,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$6(obj, key, value) {
+ key = _toPropertyKey$6(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -1947,20 +2658,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey$6(arg) {
+ var key = _toPrimitive$6(arg, "string");
+ return _typeof$6(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$6(input, hint) {
+ if (_typeof$6(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$6(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function _objectWithoutProperties$1(source, excluded) {
if (source == null) return {};
-
var target = _objectWithoutPropertiesLoose$1(source, excluded);
-
var key, i;
-
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
@@ -1968,36 +2687,30 @@
target[key] = source[key];
}
}
-
return target;
}
-
function _objectWithoutPropertiesLoose$1(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
-
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
-
return target;
}
function getPropGetters(_ref) {
var props = _ref.props,
- refresh = _ref.refresh,
- store = _ref.store,
- setters = _objectWithoutProperties$1(_ref, _excluded$5);
-
+ refresh = _ref.refresh,
+ store = _ref.store,
+ setters = _objectWithoutProperties$1(_ref, _excluded$5);
var getEnvironmentProps = function getEnvironmentProps(providedProps) {
var inputElement = providedProps.inputElement,
- formElement = providedProps.formElement,
- panelElement = providedProps.panelElement,
- rest = _objectWithoutProperties$1(providedProps, _excluded2);
-
+ formElement = providedProps.formElement,
+ panelElement = providedProps.panelElement,
+ rest = _objectWithoutProperties$1(providedProps, _excluded2);
function onMouseDownOrTouchStart(event) {
// The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`
// handler when it's not an interaction with Autocomplete.
@@ -2006,29 +2719,27 @@
// (no interaction with the autocomplete, no future state updates)
// - OR the touched target is the input element (should open the panel)
var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();
-
if (!isAutocompleteInteraction || event.target === inputElement) {
return;
- } // @TODO: support cases where there are multiple Autocomplete instances.
- // Right now, a second instance makes this computation return false.
-
+ }
+ // @TODO: support cases where there are multiple Autocomplete instances.
+ // Right now, a second instance makes this computation return false.
var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {
return isOrContainsNode(contextNode, event.target);
});
-
if (isTargetWithinAutocomplete === false) {
- store.dispatch('blur', null); // If requests are still pending when the user closes the panel, they
+ store.dispatch('blur', null);
+
+ // If requests are still pending when the user closes the panel, they
// could reopen the panel once they resolve.
// We want to prevent any subsequent query from reopening the panel
// because it would result in an unsolicited UI behavior.
-
if (!props.debug) {
store.pendingRequests.cancelAll();
}
}
}
-
return _objectSpread$6({
// We do not rely on the native `blur` event of the input to close the
// panel, but rather on a custom `touchstart`/`mousedown` event outside
@@ -2049,33 +2760,31 @@
if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {
return;
}
-
inputElement.blur();
}
}, rest);
};
-
var getRootProps = function getRootProps(rest) {
return _objectSpread$6({
role: 'combobox',
'aria-expanded': store.getState().isOpen,
'aria-haspopup': 'listbox',
- 'aria-owns': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
- 'aria-labelledby': "".concat(props.id, "-label")
+ 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref2) {
+ var source = _ref2.source;
+ return getAutocompleteElementId(props.id, 'list', source);
+ }).join(' ') : undefined,
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label')
}, rest);
};
-
var getFormProps = function getFormProps(providedProps) {
providedProps.inputElement;
- var rest = _objectWithoutProperties$1(providedProps, _excluded3);
-
+ var rest = _objectWithoutProperties$1(providedProps, _excluded3);
return _objectSpread$6({
action: '',
noValidate: true,
role: 'search',
onSubmit: function onSubmit(event) {
var _providedProps$inputE;
-
event.preventDefault();
props.onSubmit(_objectSpread$6({
event: event,
@@ -2087,7 +2796,6 @@
},
onReset: function onReset(event) {
var _providedProps$inputE2;
-
event.preventDefault();
props.onReset(_objectSpread$6({
event: event,
@@ -2099,10 +2807,8 @@
}
}, rest);
};
-
var getInputProps = function getInputProps(providedProps) {
var _props$environment$na;
-
function onFocus(event) {
// We want to trigger a query when `openOnFocus` is true
// because the panel should open with the current query.
@@ -2115,27 +2821,29 @@
store: store
}, setters));
}
-
store.dispatch('focus', null);
}
-
- var _ref2 = providedProps || {};
- _ref2.inputElement;
- var _ref2$maxLength = _ref2.maxLength,
- maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,
- rest = _objectWithoutProperties$1(_ref2, _excluded4);
-
+ var _ref3 = providedProps || {};
+ _ref3.inputElement;
+ var _ref3$maxLength = _ref3.maxLength,
+ maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength,
+ rest = _objectWithoutProperties$1(_ref3, _excluded4);
var activeItem = getActiveItem(store.getState());
var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';
var shouldFallbackKeyHint = isSamsung(userAgent);
- var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';
+ var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');
return _objectSpread$6({
'aria-autocomplete': 'both',
- 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined,
- 'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined,
- 'aria-labelledby': "".concat(props.id, "-label"),
+ 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined,
+ 'aria-controls': store.getState().isOpen ? store.getState().collections.filter(function (collection) {
+ return collection.items.length > 0;
+ }).map(function (_ref4) {
+ var source = _ref4.source;
+ return getAutocompleteElementId(props.id, 'list', source);
+ }).join(' ') : undefined,
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),
value: store.getState().completion || store.getState().query,
- id: "".concat(props.id, "-input"),
+ id: getAutocompleteElementId(props.id, 'input'),
autoComplete: 'off',
autoCorrect: 'off',
autoCapitalize: 'off',
@@ -2146,6 +2854,20 @@
maxLength: maxLength,
type: 'search',
onChange: function onChange(event) {
+ var value = event.currentTarget.value;
+ if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {
+ setters.setQuery(value);
+ return;
+ }
+ onInput(_objectSpread$6({
+ event: event,
+ props: props,
+ query: value.slice(0, maxLength),
+ refresh: refresh,
+ store: store
+ }, setters));
+ },
+ onCompositionEnd: function onCompositionEnd(event) {
onInput(_objectSpread$6({
event: event,
props: props,
@@ -2155,6 +2877,9 @@
}, setters));
},
onKeyDown: function onKeyDown$1(event) {
+ if (getNativeEvent(event).isComposing) {
+ return;
+ }
onKeyDown(_objectSpread$6({
event: event,
props: props,
@@ -2181,34 +2906,22 @@
}
}, rest);
};
-
- var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {
- return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId;
- };
-
- var getLabelProps = function getLabelProps(providedProps) {
- var _ref3 = providedProps || {},
- sourceIndex = _ref3.sourceIndex,
- rest = _objectWithoutProperties$1(_ref3, _excluded5);
-
+ var getLabelProps = function getLabelProps(rest) {
return _objectSpread$6({
- htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"),
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label")
+ htmlFor: getAutocompleteElementId(props.id, 'input'),
+ id: getAutocompleteElementId(props.id, 'label')
}, rest);
};
-
var getListProps = function getListProps(providedProps) {
- var _ref4 = providedProps || {},
- sourceIndex = _ref4.sourceIndex,
- rest = _objectWithoutProperties$1(_ref4, _excluded6);
-
+ var _ref5 = providedProps || {},
+ source = _ref5.source,
+ rest = _objectWithoutProperties$1(_ref5, _excluded5);
return _objectSpread$6({
role: 'listbox',
- 'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"),
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list")
+ 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),
+ id: getAutocompleteElementId(props.id, 'list', source)
}, rest);
};
-
var getPanelProps = function getPanelProps(rest) {
return _objectSpread$6({
onMouseDown: function onMouseDown(event) {
@@ -2222,31 +2935,25 @@
}
}, rest);
};
-
var getItemProps = function getItemProps(providedProps) {
var item = providedProps.item,
- source = providedProps.source,
- sourceIndex = providedProps.sourceIndex,
- rest = _objectWithoutProperties$1(providedProps, _excluded7);
-
+ source = providedProps.source,
+ rest = _objectWithoutProperties$1(providedProps, _excluded6);
return _objectSpread$6({
- id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id),
+ id: getAutocompleteElementId(props.id, "item-".concat(item.__autocomplete_id), source),
role: 'option',
'aria-selected': store.getState().activeItemId === item.__autocomplete_id,
onMouseMove: function onMouseMove(event) {
if (item.__autocomplete_id === store.getState().activeItemId) {
return;
}
-
store.dispatch('mousemove', item.__autocomplete_id);
var activeItem = getActiveItem(store.getState());
-
if (store.getState().activeItemId !== null && activeItem) {
var _item = activeItem.item,
- itemInputValue = activeItem.itemInputValue,
- itemUrl = activeItem.itemUrl,
- _source = activeItem.source;
-
+ itemInputValue = activeItem.itemInputValue,
+ itemUrl = activeItem.itemUrl,
+ _source = activeItem.source;
_source.onActive(_objectSpread$6({
event: event,
item: _item,
@@ -2271,12 +2978,13 @@
var itemUrl = source.getItemUrl({
item: item,
state: store.getState()
- }); // If `getItemUrl` is provided, it means that the suggestion
+ });
+
+ // If `getItemUrl` is provided, it means that the suggestion
// is a link, not plain text that aims at updating the query.
// We can therefore skip the state change because it will update
// the `activeItemId`, resulting in a UI flash, especially
// noticeable on mobile.
-
var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread$6({
event: event,
nextState: {
@@ -2301,7 +3009,6 @@
}
}, rest);
};
-
return {
getEnvironmentProps: getEnvironmentProps,
getRootProps: getRootProps,
@@ -2314,19 +3021,25 @@
};
}
+ function _typeof$5(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$5(obj);
+ }
function ownKeys$5(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$5(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -2336,11 +3049,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$5(obj, key, value) {
+ key = _toPropertyKey$5(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -2351,14 +3063,26 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$5(arg) {
+ var key = _toPrimitive$5(arg, "string");
+ return _typeof$5(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$5(input, hint) {
+ if (_typeof$5(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$5(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function getMetadata(_ref) {
var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;
-
var plugins = _ref.plugins,
- options = _ref.options;
+ options = _ref.options;
var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;
var extraOptions = optionsKey ? _defineProperty$5({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};
return {
@@ -2376,11 +3100,9 @@
}
function injectMetadata(_ref3) {
var _environment$navigato, _environment$navigato2;
-
var metadata = _ref3.metadata,
- environment = _ref3.environment;
+ environment = _ref3.environment;
var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');
-
if (isMetadataEnabled) {
var metadataContainer = environment.document.createElement('meta');
var headRef = environment.document.querySelector('head');
@@ -2394,29 +3116,32 @@
function getCompletion(_ref) {
var _getActiveItem;
-
var state = _ref.state;
-
if (state.isOpen === false || state.activeItemId === null) {
return null;
}
-
return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;
}
+ function _typeof$4(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$4 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$4(obj);
+ }
function ownKeys$4(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$4(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -2426,11 +3151,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$4(obj, key, value) {
+ key = _toPropertyKey$4(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -2441,9 +3165,22 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$4(arg) {
+ var key = _toPrimitive$4(arg, "string");
+ return _typeof$4(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$4(input, hint) {
+ if (_typeof$4(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$4(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
var stateReducer = function stateReducer(state, action) {
switch (action.type) {
case 'setActiveItemId':
@@ -2452,7 +3189,6 @@
activeItemId: action.payload
});
}
-
case 'setQuery':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
@@ -2460,61 +3196,52 @@
completion: null
});
}
-
case 'setCollections':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
collections: action.payload
});
}
-
case 'setIsOpen':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
isOpen: action.payload
});
}
-
case 'setStatus':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
status: action.payload
});
}
-
case 'setContext':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
context: _objectSpread$4(_objectSpread$4({}, state.context), action.payload)
});
}
-
case 'ArrowDown':
{
var nextState = _objectSpread$4(_objectSpread$4({}, state), {}, {
activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});
-
return _objectSpread$4(_objectSpread$4({}, nextState), {}, {
completion: getCompletion({
state: nextState
})
});
}
-
case 'ArrowUp':
{
var _nextState = _objectSpread$4(_objectSpread$4({}, state), {}, {
activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)
});
-
return _objectSpread$4(_objectSpread$4({}, _nextState), {}, {
completion: getCompletion({
state: _nextState
})
});
}
-
case 'Escape':
{
if (state.isOpen) {
@@ -2524,7 +3251,6 @@
completion: null
});
}
-
return _objectSpread$4(_objectSpread$4({}, state), {}, {
activeItemId: null,
query: '',
@@ -2532,7 +3258,6 @@
collections: []
});
}
-
case 'submit':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
@@ -2541,20 +3266,21 @@
status: 'idle'
});
}
-
case 'reset':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
- activeItemId: // Since we open the panel on reset when openOnFocus=true
+ activeItemId:
+ // Since we open the panel on reset when openOnFocus=true
// we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)
+
// Since we close the panel when openOnFocus=false
// we lose track of the highlighted index. (Query-suggestions use-case)
action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,
status: 'idle',
+ completion: null,
query: ''
});
}
-
case 'focus':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
@@ -2564,52 +3290,53 @@
})
});
}
-
case 'blur':
{
if (action.props.debug) {
return state;
}
-
return _objectSpread$4(_objectSpread$4({}, state), {}, {
isOpen: false,
activeItemId: null
});
}
-
case 'mousemove':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
activeItemId: action.payload
});
}
-
case 'mouseleave':
{
return _objectSpread$4(_objectSpread$4({}, state), {}, {
activeItemId: action.props.defaultActiveItemId
});
}
-
default:
invariant(false, "The reducer action ".concat(JSON.stringify(action.type), " is not supported."));
return state;
}
};
+ function _typeof$3(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$3(obj);
+ }
function ownKeys$3(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$3(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -2619,11 +3346,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$3(obj, key, value) {
+ key = _toPropertyKey$3(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -2634,9 +3360,22 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$3(arg) {
+ var key = _toPrimitive$3(arg, "string");
+ return _typeof$3(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$3(input, hint) {
+ if (_typeof$3(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$3(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function createAutocomplete(options) {
checkOptions(options);
var subscribers = [];
@@ -2651,55 +3390,71 @@
store: store,
navigator: props.navigator
}, setters));
-
function onStoreStateChange(_ref) {
+ var _state$context, _state$context$algoli;
var prevState = _ref.prevState,
- state = _ref.state;
+ state = _ref.state;
props.onStateChange(_objectSpread$3({
prevState: prevState,
state: state,
refresh: refresh,
navigator: props.navigator
}, setters));
+ if (!isAlgoliaInsightsPluginEnabled() && (_state$context = state.context) !== null && _state$context !== void 0 && (_state$context$algoli = _state$context.algoliaInsightsPlugin) !== null && _state$context$algoli !== void 0 && _state$context$algoli.__automaticInsights && props.insights !== false) {
+ var plugin = createAlgoliaInsightsPlugin({
+ __autocomplete_clickAnalytics: false
+ });
+ props.plugins.push(plugin);
+ subscribePlugins([plugin]);
+ }
}
-
function refresh() {
return onInput(_objectSpread$3({
event: new Event('input'),
nextState: {
isOpen: store.getState().isOpen
},
- props: props,
- navigator: props.navigator,
- query: store.getState().query,
- refresh: refresh,
- store: store
- }, setters));
- }
-
- props.plugins.forEach(function (plugin) {
- var _plugin$subscribe;
-
- return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread$3(_objectSpread$3({}, setters), {}, {
- navigator: props.navigator,
- refresh: refresh,
- onSelect: function onSelect(fn) {
- subscribers.push({
- onSelect: fn
- });
- },
- onActive: function onActive(fn) {
- subscribers.push({
- onActive: fn
- });
- },
- onResolve: function onResolve(fn) {
- subscribers.push({
- onResolve: fn
- });
- }
- }));
- });
+ props: props,
+ navigator: props.navigator,
+ query: store.getState().query,
+ refresh: refresh,
+ store: store
+ }, setters));
+ }
+ function subscribePlugins(plugins) {
+ plugins.forEach(function (plugin) {
+ var _plugin$subscribe;
+ return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread$3(_objectSpread$3({}, setters), {}, {
+ navigator: props.navigator,
+ refresh: refresh,
+ onSelect: function onSelect(fn) {
+ subscribers.push({
+ onSelect: fn
+ });
+ },
+ onActive: function onActive(fn) {
+ subscribers.push({
+ onActive: fn
+ });
+ },
+ onResolve: function onResolve(fn) {
+ subscribers.push({
+ onResolve: fn
+ });
+ }
+ }));
+ });
+ }
+ function isAlgoliaInsightsPluginEnabled() {
+ return props.plugins.some(function (plugin) {
+ return plugin.name === 'aa.algoliaInsightsPlugin';
+ });
+ }
+ if (props.insights && !isAlgoliaInsightsPluginEnabled()) {
+ var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights;
+ props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));
+ }
+ subscribePlugins(props.plugins);
injectMetadata({
metadata: getMetadata({
plugins: props.plugins,
@@ -2735,7 +3490,6 @@
invariant(element !== null, "The element ".concat(JSON.stringify(value), " is not in the document."));
return element;
}
-
return value;
}
@@ -2743,12 +3497,10 @@
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
values[_key] = arguments[_key];
}
-
return values.reduce(function (acc, current) {
Object.keys(current).forEach(function (key) {
var accValue = acc[key];
var currentValue = current[key];
-
if (accValue !== currentValue) {
acc[key] = [accValue, currentValue].filter(Boolean).join(' ');
}
@@ -2758,21 +3510,18 @@
}
var isPlainObject = function isPlainObject(value) {
- return value && _typeof$3(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';
+ return value && _typeof$i(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';
};
-
function mergeDeep() {
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
values[_key] = arguments[_key];
}
-
return values.reduce(function (acc, current) {
Object.keys(current).forEach(function (key) {
var accValue = acc[key];
var currentValue = current[key];
-
if (Array.isArray(accValue) && Array.isArray(currentValue)) {
- acc[key] = accValue.concat.apply(accValue, _toConsumableArray$5(currentValue));
+ acc[key] = accValue.concat.apply(accValue, _toConsumableArray$7(currentValue));
} else if (isPlainObject(accValue) && isPlainObject(currentValue)) {
acc[key] = mergeDeep(accValue, currentValue);
} else {
@@ -2785,17 +3534,15 @@
function pickBy(obj, predicate) {
return Object.entries(obj).reduce(function (acc, _ref) {
- var _ref2 = _slicedToArray$1(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
-
+ var _ref2 = _slicedToArray$2(_ref, 2),
+ key = _ref2[0],
+ value = _ref2[1];
if (predicate({
key: key,
value: value
})) {
- return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty$g({}, key, value));
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty$h({}, key, value));
}
-
return acc;
}, {});
}
@@ -2808,6 +3555,7 @@
* See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin
*/
var TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];
+
/*
* Taken from Preact
*
@@ -2823,24 +3571,21 @@
style[key] = value + 'px';
}
}
+
/**
* Proxy an event to hooked event handlers
*/
-
-
function eventProxy(event) {
this._listeners[event.type](event);
}
+
/**
* Set a property value on a DOM node
*/
-
-
function setProperty(dom, name, value) {
var useCapture;
var nameLower;
var oldValue = dom[name];
-
if (name === 'style') {
if (typeof value == 'string') {
dom.style = value;
@@ -2855,7 +3600,8 @@
}
}
}
- } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
+ }
+ // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6
else if (name[0] === 'o' && name[1] === 'n') {
useCapture = name !== (name = name.replace(/Capture$/, ''));
nameLower = name.toLowerCase();
@@ -2863,18 +3609,19 @@
name = name.slice(2);
if (!dom._listeners) dom._listeners = {};
dom._listeners[name] = value;
-
if (value) {
if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);
} else {
dom.removeEventListener(name, eventProxy, useCapture);
}
- } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
+ } else if (name !== 'list' && name !== 'tagName' &&
+ // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using
// setAttribute
name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {
dom[name] = value == null ? '' : value;
} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {
- if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.
+ if (value == null || value === false &&
+ // ARIA-attributes have a different notion of boolean values.
// The value `false` is different from the attribute not
// existing on the DOM, so we can't remove it. For non-boolean
// ARIA-attributes we could treat false as a removal, but the
@@ -2887,17 +3634,17 @@
}
}
}
-
function getNormalizedName(name) {
switch (name) {
case 'onChange':
return 'onInput';
-
+ // see: https://github.com/preactjs/preact/issues/1978
+ case 'onCompositionEnd':
+ return 'oncompositionend';
default:
return name;
}
}
-
function setProperties(dom, props) {
for (var name in props) {
setProperty(dom, getNormalizedName(name), props[name]);
@@ -2915,12 +3662,11 @@
function getCreateDomElement(environment) {
return function createDomElement(tagName, _ref) {
var _ref$children = _ref.children,
- children = _ref$children === void 0 ? [] : _ref$children,
- props = _objectWithoutProperties$4(_ref, _excluded$4);
-
+ children = _ref$children === void 0 ? [] : _ref$children,
+ props = _objectWithoutProperties$5(_ref, _excluded$4);
var element = environment.document.createElement(tagName);
setProperties(element, props);
- element.append.apply(element, _toConsumableArray$5(children));
+ element.append.apply(element, _toConsumableArray$7(children));
return element;
};
}
@@ -2928,14 +3674,13 @@
var _excluded$3 = ["autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "isDetached", "state"];
var Input = function Input(_ref) {
var autocompleteScopeApi = _ref.autocompleteScopeApi,
- environment = _ref.environment;
- _ref.classNames;
- var getInputProps = _ref.getInputProps,
- getInputPropsCore = _ref.getInputPropsCore,
- isDetached = _ref.isDetached,
- state = _ref.state,
- props = _objectWithoutProperties$4(_ref, _excluded$3);
-
+ environment = _ref.environment;
+ _ref.classNames;
+ var getInputProps = _ref.getInputProps,
+ getInputPropsCore = _ref.getInputPropsCore,
+ isDetached = _ref.isDetached,
+ state = _ref.state,
+ props = _objectWithoutProperties$5(_ref, _excluded$3);
var createDomElement = getCreateDomElement(environment);
var element = createDomElement('input', props);
var inputProps = getInputProps(_objectSpread2({
@@ -2951,7 +3696,6 @@
if (isDetached && event.key === 'Tab') {
return;
}
-
inputProps.onKeyDown(event);
}
}));
@@ -2985,16 +3729,16 @@
function createAutocompleteDom(_ref) {
var autocomplete = _ref.autocomplete,
- autocompleteScopeApi = _ref.autocompleteScopeApi,
- classNames = _ref.classNames,
- environment = _ref.environment,
- isDetached = _ref.isDetached,
- _ref$placeholder = _ref.placeholder,
- placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,
- propGetters = _ref.propGetters,
- setIsModalOpen = _ref.setIsModalOpen,
- state = _ref.state,
- translations = _ref.translations;
+ autocompleteScopeApi = _ref.autocompleteScopeApi,
+ classNames = _ref.classNames,
+ environment = _ref.environment,
+ isDetached = _ref.isDetached,
+ _ref$placeholder = _ref.placeholder,
+ placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,
+ propGetters = _ref.propGetters,
+ setIsModalOpen = _ref.setIsModalOpen,
+ state = _ref.state,
+ translations = _ref.translations;
var createDomElement = getCreateDomElement(environment);
var rootProps = propGetters.getRootProps(_objectSpread2({
state: state,
@@ -3029,9 +3773,13 @@
environment: environment
})]
});
+ // @MAJOR Remove the label wrapper for the submit button.
+ // The submit button is sufficient for accessibility purposes, and
+ // wrapping it with the label actually makes it less accessible (see CR-6077).
var label = createDomElement('label', _objectSpread2({
class: classNames.label,
- children: [submitButton]
+ children: [submitButton],
+ ariaLabel: translations.submitButtonTitle
}, labelProps));
var clearButton = createDomElement('button', {
class: classNames.clearButton,
@@ -3094,13 +3842,11 @@
hidden: Boolean(state.query),
textContent: placeholder
});
-
if ("development" === 'test') {
setProperties(panel, {
'data-testid': 'panel'
});
}
-
if (isDetached) {
var detachedSearchButtonIcon = createDomElement('div', {
class: classNames.detachedSearchButtonIcon,
@@ -3111,6 +3857,8 @@
var detachedSearchButton = createDomElement('button', {
type: 'button',
class: classNames.detachedSearchButton,
+ title: translations.detachedSearchButtonTitle,
+ id: labelProps.id,
onClick: function onClick() {
setIsModalOpen(true);
},
@@ -3139,7 +3887,6 @@
} else {
root.appendChild(form);
}
-
return {
detachedContainer: detachedContainer,
detachedOverlay: detachedOverlay,
@@ -3160,13 +3907,11 @@
function createEffectWrapper() {
var effects = [];
var cleanups = [];
-
function runEffect(fn) {
effects.push(fn);
var effectCleanup = fn();
cleanups.push(effectCleanup);
}
-
return {
runEffect: runEffect,
cleanupEffects: function cleanupEffects() {
@@ -3196,15 +3941,12 @@
_ref: {
current: current
},
-
get value() {
return this._ref.current;
},
-
set value(value) {
this._ref.current = value;
}
-
};
reactives.push(reactive);
return reactive;
@@ -3217,7 +3959,7 @@
};
}
- var n,l,u,t,r,o,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n);}function v(l,u,i){var t,r,o,f={};for(o in u)"key"==o?t=u[o]:"ref"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(n){return n.children}function _(n,l){this.props=n,this.context=l;}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v2&&(f.children=arguments.length>3?n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function _(n){return n.children}function k(n,l){this.props=n,this.context=l;}function b(n,l){if(null==l)return n.__?b(n.__,n.__.__k.indexOf(n)+1):null;for(var u;ll&&t.sort(f));w.__r=0;}function x(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,g,m,w=i&&i.__k||s,x=w.length;for(u.__k=[],h=0;h0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=w[h])||y&&d.key==y.key&&d.type===y.type)w[h]=void 0;else for(v=0;v=0;l--)if((u=n.__k[l])&&(i=$(u)))return i;return null}function H(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||T(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||T(n,r,l[r],u[r],i);}function I(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||a.test(l)?u:u+"px";}function T(n,l,u,i,t){var r;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else {if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||I(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||I(n.style,l,u[l]);}else if("o"===l[0]&&"n"===l[1])r=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?z:j,r):n.removeEventListener(l,r?z:j,r);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==l&&"height"!==l&&"href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&"-"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u));}}function j(n){return this.l[n.type+!1](l.event?l.event(n):n)}function z(n){return this.l[n.type+!0](l.event?l.event(n):n)}function L(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,b,g,m,w,A,P,C,$,H,I=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof I){if(g=u.props,m=(s=I.contextType)&&t[s.__c],w=s?m?m.props.value:s.__:t,i.__c?b=(a=u.__c=i.__c).__=a.__E:("prototype"in I&&I.prototype.render?u.__c=a=new I(g,w):(u.__c=a=new k(g,w),a.constructor=I,a.render=q),m&&m.sub(a),a.props=g,a.state||(a.state={}),a.context=w,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=I.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,I.getDerivedStateFromProps(g,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==I.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else {if(null==I.getDerivedStateFromProps&&g!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(g,w),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(g,a.__s,w)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=g,a.state=a.__s,a.__d=!1),a.__e=!1,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u);}),A=0;A 0 && arguments[0] !== undefined ? arguments[0] : [];
var value = initialValue;
@@ -3236,7 +3977,6 @@
},
add: function add(part) {
var lastPart = value[value.length - 1];
-
if ((lastPart === null || lastPart === void 0 ? void 0 : lastPart.isHighlighted) === part.isHighlighted) {
value[value.length - 1] = {
value: lastPart.value + part.value,
@@ -3248,7 +3988,6 @@
}
};
}
-
function parseAttribute(_ref) {
var highlightedValue = _ref.highlightedValue;
var preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);
@@ -3263,7 +4002,6 @@
value: postTagParts[0],
isHighlighted: true
});
-
if (postTagParts[1] !== '') {
parts.add({
value: postTagParts[1],
@@ -3277,11 +4015,9 @@
function _toConsumableArray$2(arr) {
return _arrayWithoutHoles$2(arr) || _iterableToArray$2(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableSpread$2();
}
-
function _nonIterableSpread$2() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
function _unsupportedIterableToArray$2(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
@@ -3290,35 +4026,26 @@
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
}
-
function _iterableToArray$2(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
function _arrayWithoutHoles$2(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray$2(arr);
}
-
function _arrayLikeToArray$2(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function parseAlgoliaHitHighlight(_ref) {
var hit = _ref.hit,
- attribute = _ref.attribute;
+ attribute = _ref.attribute;
var path = Array.isArray(attribute) ? attribute : [attribute];
var highlightedValue = getAttributeValueByPath(hit, ['_highlightResult'].concat(_toConsumableArray$2(path), ['value']));
-
if (typeof highlightedValue !== 'string') {
"development" !== 'production' ? warn(false, "The attribute \"".concat(path.join('.'), "\" described by the path ").concat(JSON.stringify(path), " does not exist on the hit. Did you set it in `attributesToHighlight`?") + '\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/') : void 0 ;
highlightedValue = getAttributeValueByPath(hit, path) || '';
}
-
return parseAttribute({
highlightedValue: highlightedValue
});
@@ -3334,40 +4061,41 @@
var hasAlphanumeric = new RegExp(/\w/i);
var regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;
var regexHasEscapedHtml = RegExp(regexEscapedHtml.source);
-
function unescape(value) {
return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {
return htmlEscapes[character];
}) : value;
}
-
function isPartHighlighted(parts, i) {
var _parts, _parts2;
-
var current = parts[i];
var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;
var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;
-
if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {
return isPreviousHighlighted;
}
-
return current.isHighlighted;
}
+ function _typeof$2(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$2(obj);
+ }
function ownKeys$2(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -3377,11 +4105,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$2(obj, key, value) {
+ key = _toPropertyKey$2(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -3392,9 +4119,22 @@
} else {
obj[key] = value;
}
-
return obj;
}
+ function _toPropertyKey$2(arg) {
+ var key = _toPrimitive$2(arg, "string");
+ return _typeof$2(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$2(input, hint) {
+ if (_typeof$2(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$2(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function reverseHighlightedParts(parts) {
// We don't want to highlight the whole word when no parts match.
if (!parts.some(function (part) {
@@ -3406,7 +4146,6 @@
});
});
}
-
return parts.map(function (part, i) {
return _objectSpread$2(_objectSpread$2({}, part), {}, {
isHighlighted: !isPartHighlighted(parts, i)
@@ -3421,11 +4160,9 @@
function _toConsumableArray$1(arr) {
return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1();
}
-
function _nonIterableSpread$1() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
function _unsupportedIterableToArray$1(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
@@ -3434,35 +4171,26 @@
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
}
-
function _iterableToArray$1(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
function _arrayWithoutHoles$1(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
}
-
function _arrayLikeToArray$1(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function parseAlgoliaHitSnippet(_ref) {
var hit = _ref.hit,
- attribute = _ref.attribute;
+ attribute = _ref.attribute;
var path = Array.isArray(attribute) ? attribute : [attribute];
var highlightedValue = getAttributeValueByPath(hit, ['_snippetResult'].concat(_toConsumableArray$1(path), ['value']));
-
if (typeof highlightedValue !== 'string') {
"development" !== 'production' ? warn(false, "The attribute \"".concat(path.join('.'), "\" described by the path ").concat(JSON.stringify(path), " does not exist on the hit. Did you set it in `attributesToSnippet`?") + '\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/') : void 0 ;
highlightedValue = getAttributeValueByPath(hit, path) || '';
}
-
return parseAttribute({
highlightedValue: highlightedValue
});
@@ -3472,19 +4200,25 @@
return reverseHighlightedParts(parseAlgoliaHitSnippet(props));
}
+ function _typeof$1(obj) {
+ "@babel/helpers - typeof";
+
+ return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof$1(obj);
+ }
function ownKeys$1(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread$1(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -3494,11 +4228,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty$1(obj, key, value) {
+ key = _toPropertyKey$1(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -3509,10 +4242,22 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey$1(arg) {
+ var key = _toPrimitive$1(arg, "string");
+ return _typeof$1(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive$1(input, hint) {
+ if (_typeof$1(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof$1(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function createRequester(fetcher, requesterId) {
function execute(fetcherParams) {
return fetcher({
@@ -3523,8 +4268,8 @@
}).then(function (responses) {
return responses.map(function (response, index) {
var _fetcherParams$reques = fetcherParams.requests[index],
- sourceId = _fetcherParams$reques.sourceId,
- transformResponse = _fetcherParams$reques.transformResponse;
+ sourceId = _fetcherParams$reques.sourceId,
+ transformResponse = _fetcherParams$reques.transformResponse;
return {
items: response,
sourceId: sourceId,
@@ -3533,7 +4278,6 @@
});
});
}
-
return function createSpecifiedRequester(requesterParams) {
return function requester(requestParams) {
return _objectSpread$1(_objectSpread$1({
@@ -3544,21 +4288,41 @@
};
}
- var _excluded$2 = ["params"];
+ // typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect
+ function getAppIdAndApiKey(searchClient) {
+ var transporter = searchClient.transporter || {};
+ var headers = transporter.headers || transporter.baseHeaders || {};
+ var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {};
+ var APP_ID = 'x-algolia-application-id';
+ var API_KEY = 'x-algolia-api-key';
+ var appId = headers[APP_ID] || queryParameters[APP_ID];
+ var apiKey = headers[API_KEY] || queryParameters[API_KEY];
+ return {
+ appId: appId,
+ apiKey: apiKey
+ };
+ }
+
+ function _typeof(obj) {
+ "@babel/helpers - typeof";
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
+ return typeof obj;
+ } : function (obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ }, _typeof(obj);
+ }
+ var _excluded$2 = ["params"];
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
-
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
-
return keys;
}
-
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
@@ -3568,11 +4332,10 @@
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
-
return target;
}
-
function _defineProperty(obj, key, value) {
+ key = _toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
@@ -3583,20 +4346,28 @@
} else {
obj[key] = value;
}
-
return obj;
}
-
+ function _toPropertyKey(arg) {
+ var key = _toPrimitive(arg, "string");
+ return _typeof(key) === "symbol" ? key : String(key);
+ }
+ function _toPrimitive(input, hint) {
+ if (_typeof(input) !== "object" || input === null) return input;
+ var prim = input[Symbol.toPrimitive];
+ if (prim !== undefined) {
+ var res = prim.call(input, hint || "default");
+ if (_typeof(res) !== "object") return res;
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return (hint === "string" ? String : Number)(input);
+ }
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
-
var target = _objectWithoutPropertiesLoose(source, excluded);
-
var key, i;
-
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
@@ -3604,33 +4375,26 @@
target[key] = source[key];
}
}
-
return target;
}
-
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
-
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
-
return target;
}
-
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
-
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
-
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -3639,43 +4403,38 @@
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
-
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
-
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
-
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
- arr2[i] = arr[i];
- }
-
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function fetchAlgoliaResults(_ref) {
var searchClient = _ref.searchClient,
- queries = _ref.queries,
- _ref$userAgents = _ref.userAgents,
- userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;
-
+ queries = _ref.queries,
+ _ref$userAgents = _ref.userAgents,
+ userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;
if (typeof searchClient.addAlgoliaAgent === 'function') {
var algoliaAgents = [].concat(_toConsumableArray(userAgents$1), _toConsumableArray(userAgents));
algoliaAgents.forEach(function (_ref2) {
var segment = _ref2.segment,
- version = _ref2.version;
+ version = _ref2.version;
searchClient.addAlgoliaAgent(segment, version);
});
}
-
+ var _getAppIdAndApiKey = getAppIdAndApiKey(searchClient),
+ appId = _getAppIdAndApiKey.appId,
+ apiKey = _getAppIdAndApiKey.apiKey;
+ invariant(Boolean(appId), 'The Algolia `appId` was not accessible from the searchClient passed.');
+ invariant(Boolean(apiKey), 'The Algolia `apiKey` was not accessible from the searchClient passed.');
return searchClient.search(queries.map(function (searchParameters) {
var params = searchParameters.params,
- headers = _objectWithoutProperties(searchParameters, _excluded$2);
-
+ headers = _objectWithoutProperties(searchParameters, _excluded$2);
return _objectSpread(_objectSpread({}, headers), {}, {
params: _objectSpread({
hitsPerPage: 5,
@@ -3684,19 +4443,33 @@
}, params)
});
})).then(function (response) {
- return response.results;
+ return response.results.map(function (result, resultIndex) {
+ var _result$hits;
+ return _objectSpread(_objectSpread({}, result), {}, {
+ hits: (_result$hits = result.hits) === null || _result$hits === void 0 ? void 0 : _result$hits.map(function (hit) {
+ return _objectSpread(_objectSpread({}, hit), {}, {
+ // Bring support for the Insights plugin.
+ __autocomplete_indexName: result.index || queries[resultIndex].indexName,
+ __autocomplete_queryID: result.queryID,
+ __autocomplete_algoliaCredentials: {
+ appId: appId,
+ apiKey: apiKey
+ }
+ });
+ })
+ });
+ });
});
}
function createHighlightComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function Highlight(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitHighlight({
hit: hit,
attribute: attribute
@@ -3706,20 +4479,18 @@
}, x.value) : x.value;
}));
}
-
Highlight.__autocomplete_componentName = 'Highlight';
return Highlight;
}
function createReverseHighlightComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function ReverseHighlight(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitReverseHighlight({
hit: hit,
attribute: attribute
@@ -3729,20 +4500,18 @@
}, x.value) : x.value;
}));
}
-
ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';
return ReverseHighlight;
}
function createReverseSnippetComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function ReverseSnippet(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitReverseSnippet({
hit: hit,
attribute: attribute
@@ -3752,20 +4521,18 @@
}, x.value) : x.value;
}));
}
-
ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';
return ReverseSnippet;
}
function createSnippetComponent(_ref) {
var createElement = _ref.createElement,
- Fragment = _ref.Fragment;
-
+ Fragment = _ref.Fragment;
function Snippet(_ref2) {
var hit = _ref2.hit,
- attribute = _ref2.attribute,
- _ref2$tagName = _ref2.tagName,
- tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
+ attribute = _ref2.attribute,
+ _ref2$tagName = _ref2.tagName,
+ tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;
return createElement(Fragment, {}, parseAlgoliaHitSnippet({
hit: hit,
attribute: attribute
@@ -3775,7 +4542,6 @@
}, x.value) : x.value;
}));
}
-
Snippet.__autocomplete_componentName = 'Snippet';
return Snippet;
}
@@ -3809,53 +4575,46 @@
sourceNoResults: 'aa-SourceNoResults',
submitButton: 'aa-SubmitButton'
};
-
var defaultRender = function defaultRender(_ref, root) {
var children = _ref.children,
- render = _ref.render;
+ render = _ref.render;
render(children, root);
};
-
var defaultRenderer = {
- createElement: v,
- Fragment: d,
- render: S
+ createElement: y,
+ Fragment: _,
+ render: B
};
function getDefaultOptions(options) {
var _core$id;
-
var classNames = options.classNames,
- container = options.container,
- getEnvironmentProps = options.getEnvironmentProps,
- getFormProps = options.getFormProps,
- getInputProps = options.getInputProps,
- getItemProps = options.getItemProps,
- getLabelProps = options.getLabelProps,
- getListProps = options.getListProps,
- getPanelProps = options.getPanelProps,
- getRootProps = options.getRootProps,
- panelContainer = options.panelContainer,
- panelPlacement = options.panelPlacement,
- render = options.render,
- renderNoResults = options.renderNoResults,
- renderer = options.renderer,
- detachedMediaQuery = options.detachedMediaQuery,
- components = options.components,
- translations = options.translations,
- core = _objectWithoutProperties$4(options, _excluded$1);
- /* eslint-disable no-restricted-globals */
-
+ container = options.container,
+ getEnvironmentProps = options.getEnvironmentProps,
+ getFormProps = options.getFormProps,
+ getInputProps = options.getInputProps,
+ getItemProps = options.getItemProps,
+ getLabelProps = options.getLabelProps,
+ getListProps = options.getListProps,
+ getPanelProps = options.getPanelProps,
+ getRootProps = options.getRootProps,
+ panelContainer = options.panelContainer,
+ panelPlacement = options.panelPlacement,
+ render = options.render,
+ renderNoResults = options.renderNoResults,
+ renderer = options.renderer,
+ detachedMediaQuery = options.detachedMediaQuery,
+ components = options.components,
+ translations = options.translations,
+ core = _objectWithoutProperties$5(options, _excluded$1);
+ /* eslint-disable no-restricted-globals */
var environment = typeof window !== 'undefined' ? window : {};
/* eslint-enable no-restricted-globals */
-
var containerElement = getHTMLElement(environment, container);
invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');
"development" !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), "You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`." + "\nTo get rid of this warning, do any of the following depending on your use case." + "\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option." + '\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;
"development" !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, "You provided an incomplete `renderer` (missing: ".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), "). This can cause rendering issues.") + '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;
-
var defaultedRenderer = _objectSpread2(_objectSpread2({}, defaultRenderer), renderer);
-
var defaultComponents = {
Highlight: createHighlightComponent(defaultedRenderer),
ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),
@@ -3865,6 +4624,7 @@
var defaultTranslations = {
clearButtonTitle: 'Clear',
detachedCancelButtonText: 'Cancel',
+ detachedSearchButtonTitle: 'Search',
submitButtonTitle: 'Submit'
};
return {
@@ -3921,15 +4681,14 @@
function getPanelPlacementStyle(_ref) {
var panelPlacement = _ref.panelPlacement,
- container = _ref.container,
- form = _ref.form,
- environment = _ref.environment;
- var containerRect = container.getBoundingClientRect(); // Some browsers have specificities to retrieve the document scroll position.
+ container = _ref.container,
+ form = _ref.form,
+ environment = _ref.environment;
+ var containerRect = container.getBoundingClientRect();
+ // Some browsers have specificities to retrieve the document scroll position.
// See https://stackoverflow.com/a/28633515/9940315
-
var scrollTop = environment.pageYOffset || environment.document.documentElement.scrollTop || environment.document.body.scrollTop || 0;
var top = scrollTop + containerRect.top + containerRect.height;
-
switch (panelPlacement) {
case 'start':
{
@@ -3938,7 +4697,6 @@
left: containerRect.left
};
}
-
case 'end':
{
return {
@@ -3946,7 +4704,6 @@
right: environment.document.documentElement.clientWidth - (containerRect.left + containerRect.width)
};
}
-
case 'full-width':
{
return {
@@ -3957,7 +4714,6 @@
maxWidth: 'unset'
};
}
-
case 'input-wrapper-width':
{
var formRect = form.getBoundingClientRect();
@@ -3969,7 +4725,6 @@
maxWidth: 'unset'
};
}
-
default:
{
throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(panelPlacement), " is not valid."));
@@ -3979,10 +4734,10 @@
function renderSearchBox(_ref) {
var autocomplete = _ref.autocomplete,
- autocompleteScopeApi = _ref.autocompleteScopeApi,
- dom = _ref.dom,
- propGetters = _ref.propGetters,
- state = _ref.state;
+ autocompleteScopeApi = _ref.autocompleteScopeApi,
+ dom = _ref.dom,
+ propGetters = _ref.propGetters,
+ state = _ref.state;
setPropertiesWithoutEvents(dom.root, propGetters.getRootProps(_objectSpread2({
state: state,
props: autocomplete.getRootProps({})
@@ -4012,38 +4767,35 @@
}
function renderPanel(render, _ref2) {
var autocomplete = _ref2.autocomplete,
- autocompleteScopeApi = _ref2.autocompleteScopeApi,
- classNames = _ref2.classNames,
- html = _ref2.html,
- dom = _ref2.dom,
- panelContainer = _ref2.panelContainer,
- propGetters = _ref2.propGetters,
- state = _ref2.state,
- components = _ref2.components,
- renderer = _ref2.renderer;
-
+ autocompleteScopeApi = _ref2.autocompleteScopeApi,
+ classNames = _ref2.classNames,
+ html = _ref2.html,
+ dom = _ref2.dom,
+ panelContainer = _ref2.panelContainer,
+ propGetters = _ref2.propGetters,
+ state = _ref2.state,
+ components = _ref2.components,
+ renderer = _ref2.renderer;
if (!state.isOpen) {
if (panelContainer.contains(dom.panel)) {
panelContainer.removeChild(dom.panel);
}
-
return;
- } // We add the panel element to the DOM when it's not yet appended and that the
- // items are fetched.
-
+ }
+ // We add the panel element to the DOM when it's not yet appended and that the
+ // items are fetched.
if (!panelContainer.contains(dom.panel) && state.status !== 'loading') {
panelContainer.appendChild(dom.panel);
}
-
dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');
var sections = state.collections.filter(function (_ref3) {
var source = _ref3.source,
- items = _ref3.items;
+ items = _ref3.items;
return source.templates.noResults || items.length > 0;
}).map(function (_ref4, sourceIndex) {
var source = _ref4.source,
- items = _ref4.items;
+ items = _ref4.items;
return renderer.createElement("section", {
key: sourceIndex,
className: classNames.source,
@@ -4072,13 +4824,12 @@
}, propGetters.getListProps(_objectSpread2({
state: state,
props: autocomplete.getListProps({
- sourceIndex: sourceIndex
+ source: source
})
}, autocompleteScopeApi))), items.map(function (item) {
var itemProps = autocomplete.getItemProps({
item: item,
- source: source,
- sourceIndex: sourceIndex
+ source: source
});
return renderer.createElement("li", _extends({
key: itemProps.id,
@@ -4132,16 +4883,15 @@
}];
var _excluded = ["components"];
+ var instancesCount = 0;
function autocomplete(options) {
var _createEffectWrapper = createEffectWrapper(),
- runEffect = _createEffectWrapper.runEffect,
- cleanupEffects = _createEffectWrapper.cleanupEffects,
- runEffects = _createEffectWrapper.runEffects;
-
+ runEffect = _createEffectWrapper.runEffect,
+ cleanupEffects = _createEffectWrapper.cleanupEffects,
+ runEffects = _createEffectWrapper.runEffects;
var _createReactiveWrappe = createReactiveWrapper(),
- reactive = _createReactiveWrappe.reactive,
- runReactives = _createReactiveWrappe.runReactives;
-
+ reactive = _createReactiveWrappe.reactive,
+ runReactives = _createReactiveWrappe.runReactives;
var hasNoResultsSourceTemplateRef = createRef(false);
var optionsRef = createRef(options);
var onStateChangeRef = createRef(undefined);
@@ -4155,7 +4905,6 @@
return createAutocomplete(_objectSpread2(_objectSpread2({}, props.value.core), {}, {
onStateChange: function onStateChange(params) {
var _onStateChangeRef$cur, _props$value$core$onS, _props$value$core;
-
hasNoResultsSourceTemplateRef.current = params.state.collections.some(function (collection) {
return collection.source.templates.noResults;
});
@@ -4164,17 +4913,13 @@
},
shouldPanelOpen: optionsRef.current.shouldPanelOpen || function (_ref) {
var state = _ref.state;
-
if (isDetached.value) {
return true;
}
-
var hasItems = getItemsCount(state) > 0;
-
if (!props.value.core.openOnFocus && !state.query) {
return hasItems;
}
-
var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);
return !hasItems && hasNoResultsTemplate || hasItems;
},
@@ -4230,7 +4975,6 @@
translations: props.value.renderer.translations
});
});
-
function setPanelPosition() {
setProperties(dom.value.panel, {
style: isDetached.value ? {} : getPanelPlacementStyle({
@@ -4241,7 +4985,6 @@
})
});
}
-
function scheduleRender(state) {
lastStateRef.current = state;
var renderProps = {
@@ -4261,7 +5004,6 @@
renderSearchBox(renderProps);
renderPanel(render, renderProps);
}
-
runEffect(function () {
var environmentProps = autocomplete.value.getEnvironmentProps({
formElement: dom.value.form,
@@ -4271,22 +5013,21 @@
setProperties(props.value.core.environment, environmentProps);
return function () {
setProperties(props.value.core.environment, Object.keys(environmentProps).reduce(function (acc, key) {
- return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty$g({}, key, undefined));
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty$h({}, key, undefined));
}, {}));
};
});
runEffect(function () {
var panelContainerElement = isDetached.value ? props.value.core.environment.document.body : props.value.renderer.panelContainer;
var panelElement = isDetached.value ? dom.value.detachedOverlay : dom.value.panel;
-
if (isDetached.value && lastStateRef.current.isOpen) {
setIsModalOpen(true);
}
-
scheduleRender(lastStateRef.current);
return function () {
if (panelContainerElement.contains(panelElement)) {
panelContainerElement.removeChild(panelElement);
+ panelContainerElement.classList.remove('aa-Detached');
}
};
});
@@ -4302,25 +5043,23 @@
var state = _ref2.state;
scheduleRender(state);
}, 0);
-
onStateChangeRef.current = function (_ref3) {
var state = _ref3.state,
- prevState = _ref3.prevState;
-
+ prevState = _ref3.prevState;
if (isDetached.value && prevState.isOpen !== state.isOpen) {
setIsModalOpen(state.isOpen);
- } // The outer DOM might have changed since the last time the panel was
+ }
+
+ // The outer DOM might have changed since the last time the panel was
// positioned. The layout might have shifted vertically for instance.
// It's therefore safer to re-calculate the panel position before opening
// it again.
-
-
if (!isDetached.value && state.isOpen && !prevState.isOpen) {
setPanelPosition();
- } // We scroll to the top of the panel whenever the query changes (i.e. new
- // results come in) so that users don't have to.
-
+ }
+ // We scroll to the top of the panel whenever the query changes (i.e. new
+ // results come in) so that users don't have to.
if (state.query !== prevState.query) {
var scrollablePanels = props.value.core.environment.document.querySelectorAll('.aa-Panel--scrollable');
scrollablePanels.forEach(function (scrollablePanel) {
@@ -4329,12 +5068,10 @@
}
});
}
-
debouncedRender({
state: state
});
};
-
return function () {
onStateChangeRef.current = undefined;
};
@@ -4343,7 +5080,6 @@
var onResize = debounce(function () {
var previousIsDetached = isDetached.value;
isDetached.value = props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;
-
if (previousIsDetached !== isDetached.value) {
update({});
} else {
@@ -4359,20 +5095,18 @@
if (!isDetached.value) {
return function () {};
}
-
function toggleModalClassname(isActive) {
dom.value.detachedContainer.classList.toggle('aa-DetachedContainer--modal', isActive);
}
-
function onChange(event) {
toggleModalClassname(event.matches);
}
-
var isModalDetachedMql = props.value.core.environment.matchMedia(getComputedStyle(props.value.core.environment.document.documentElement).getPropertyValue('--aa-detached-modal-media-query'));
- toggleModalClassname(isModalDetachedMql.matches); // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,
+ toggleModalClassname(isModalDetachedMql.matches);
+
+ // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,
// so we must use `addListener` and `removeListener` to observe media query lists.
// See https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener
-
var hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);
hasModernEventListener ? isModalDetachedMql.addEventListener('change', onChange) : isModalDetachedMql.addListener(onChange);
return function () {
@@ -4383,19 +5117,16 @@
requestAnimationFrame(setPanelPosition);
return function () {};
});
-
function destroy() {
+ instancesCount--;
cleanupEffects();
}
-
function update() {
var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
cleanupEffects();
-
var _props$value$renderer = props.value.renderer,
- components = _props$value$renderer.components,
- rendererProps = _objectWithoutProperties$4(_props$value$renderer, _excluded);
-
+ components = _props$value$renderer.components,
+ rendererProps = _objectWithoutProperties$5(_props$value$renderer, _excluded);
optionsRef.current = mergeDeep(rendererProps, props.value.core, {
// We need to filter out default components so they can be replaced with
// a new `renderer`, without getting rid of user components.
@@ -4414,26 +5145,22 @@
scheduleRender(lastStateRef.current);
});
}
-
function setIsModalOpen(value) {
- requestAnimationFrame(function () {
- var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);
-
- if (value === prevValue) {
- return;
- }
-
- if (value) {
- props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);
- props.value.core.environment.document.body.classList.add('aa-Detached');
- dom.value.input.focus();
- } else {
- props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);
- props.value.core.environment.document.body.classList.remove('aa-Detached');
- }
- });
+ var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);
+ if (value === prevValue) {
+ return;
+ }
+ if (value) {
+ props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);
+ props.value.core.environment.document.body.classList.add('aa-Detached');
+ dom.value.input.focus();
+ } else {
+ props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);
+ props.value.core.environment.document.body.classList.remove('aa-Detached');
+ }
}
-
+ "development" !== 'production' ? warn(instancesCount === 0, "Autocomplete doesn't support multiple instances running at the same time. Make sure to destroy the previous instance before creating a new one.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-destroy") : void 0;
+ instancesCount++;
return _objectSpread2(_objectSpread2({}, autocompleteScopeApi), {}, {
update: update,
destroy: destroy
@@ -4449,7 +5176,6 @@
/**
* Retrieves Algolia facet hits from multiple indices.
*/
-
function getAlgoliaFacets(requestParams) {
var requester = createAlgoliaRequester({
transformResponse: function transformResponse(response) {
@@ -4469,7 +5195,6 @@
/**
* Retrieves Algolia results from multiple indices.
*/
-
var getAlgoliaResults = createAlgoliaRequester({
transformResponse: function transformResponse(response) {
return response.hits;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.production.js b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.production.js
index 1b597488..be7c47e5 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.production.js
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/dist/umd/index.production.js
@@ -1,3 +1,3 @@
-/*! @algolia/autocomplete-js 1.8.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){u=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=n?null===r?null:0:o}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:m(),plugins:o,initialState:H({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(F(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:y,onResolve:y};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=I(I({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return d(e)})).then((function(e){return e.map((function(e){return H(H({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:H({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ce,le,se,pe=null,fe=(ce=-1,le=-1,se=void 0,function(e){var t=++ce;return Promise.resolve(e).then((function(e){return se&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var be=["props","refresh","store"],Oe=["inputElement","formElement","panelElement"],_e=["inputElement"],Pe=["inputElement","maxLength"],je=["sourceIndex"],Se=["sourceIndex"],we=["item","source","sourceIndex"];function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ee(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function De(e){var t=e.props,n=e.refresh,r=e.store,o=Ce(e,be),a=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return Ee({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Ce(e,Oe))},getRootProps:function(e){return Ee({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,Ee({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(Ee({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(Ee({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},Ce(e,_e))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=Ce(n,je);return Ee({htmlFor:"".concat(a(t.id,r),"-input"),id:"".concat(a(t.id,r),"-label")},o)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&de(Ee({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var u=e||{};u.inputElement;var c=u.maxLength,l=void 0===c?512:c,s=Ce(u,Pe),p=A(r.getState()),f=function(e){return Boolean(e&&e.match(C))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),d=null!=p&&p.itemUrl&&!f?"go":"search";return Ee({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){de(Ee({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=ye(e,ve);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},u=function(){var e=A(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,u=e.itemUrl,c=e.source;c.onActive(he({event:t,item:n,itemInputValue:i,itemUrl:u,refresh:r,source:c,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?de(he({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),u(),setTimeout(i,0)})):(o.dispatch(t.key,{}),u(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=A(o.getState()),l=c.item,s=c.itemInputValue,p=c.itemUrl,f=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:p,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:p,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a)),void n.navigator.navigate({itemUrl:p,item:l,state:o.getState()});de(he({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},a)).then((function(){f.onSelect(he({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},a))}))}}}(Ee({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:y,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},s)},getPanelProps:function(e){return Ee({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=Ce(n,Se);return Ee({role:"listbox","aria-labelledby":"".concat(a(t.id,r),"-label"),id:"".concat(a(t.id,r),"-list")},o)},getItemProps:function(e){var i=e.item,u=e.source,c=e.sourceIndex,l=Ce(e,we);return Ee({id:"".concat(a(t.id,c),"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=A(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,u=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(Ee({event:e,item:a,itemInputValue:u,itemUrl:c,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),c=u.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():de(Ee({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(Ee({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:r.getState()},o))}))}},l)}}}function ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xe(e){for(var t=1;t=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},c=0;c"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(u(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][l+1])?(u(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(u(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return u(),i}(e)),t),arguments,[])).length>1?t:t[0]}var ze=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Ge(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Ke(){for(var e=arguments.length,t=new Array(e),n=0;n\n \n',t},st=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function pt(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,a=e.environment,u=e.isDetached,c=e.placeholder,l=void 0===c?"Search":c,s=e.propGetters,p=e.setIsModalOpen,f=e.state,d=e.translations,v=ut(a),m=s.getRootProps(n({state:f,props:t.getRootProps({})},r)),h=v("div",n({class:o.root},m)),g=v("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),y=v("div",{class:o.detachedOverlay,children:[g],onMouseDown:function(){p(!1),t.setIsOpen(!1)}}),b=s.getLabelProps(n({state:f,props:t.getLabelProps({})},r)),O=v("button",{class:o.submitButton,type:"submit",title:d.submitButtonTitle,children:[st({environment:a})]}),_=v("label",n({class:o.label,children:[O]},b)),P=v("button",{class:o.clearButton,type:"reset",title:d.clearButtonTitle,children:[ze({environment:a})]}),j=v("div",{class:o.loadingIndicator,children:[lt({environment:a})]}),S=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,a=e.getInputPropsCore,u=e.isDetached,c=e.state,l=i(e,ct),s=ut(r)("input",l),p=o(n({state:c,props:a({inputElement:s}),inputElement:s},t));return ot(s,n(n({},p),{},{onKeyDown:function(e){u&&"Tab"===e.key||p.onKeyDown(e)}})),s}({class:o.input,environment:a,state:f,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:u}),w=v("div",{class:o.inputWrapperPrefix,children:[_,j]}),I=v("div",{class:o.inputWrapperSuffix,children:[P]}),E=v("div",{class:o.inputWrapper,children:[S]}),A=s.getFormProps(n({state:f,props:t.getFormProps({inputElement:S})},r)),C=v("form",n({class:o.form,children:[w,E,I]},A)),D=s.getPanelProps(n({state:f,props:t.getPanelProps({})},r)),k=v("div",n({class:o.panel},D)),x=v("div",{class:o.detachedSearchButtonQuery,textContent:f.query}),q=v("div",{class:o.detachedSearchButtonPlaceholder,hidden:Boolean(f.query),textContent:l});if(u){var N=v("div",{class:o.detachedSearchButtonIcon,children:[st({environment:a})]}),R=v("button",{type:"button",class:o.detachedSearchButton,onClick:function(){p(!0)},children:[N,q,x]}),B=v("button",{type:"button",class:o.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),p(!1)}}),T=v("div",{class:o.detachedFormContainer,children:[C,B]});g.appendChild(T),h.appendChild(R)}else h.appendChild(C);return{detachedContainer:g,detachedOverlay:y,detachedSearchButtonQuery:x,detachedSearchButtonPlaceholder:q,inputWrapper:E,input:S,root:h,form:C,label:_,submitButton:O,clearButton:P,loadingIndicator:j,panel:k}}var ft,dt,vt,mt,ht,gt,yt={},bt=[],Ot=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function _t(e,t){for(var n in t)e[n]=t[n];return e}function Pt(e){var t=e.parentNode;t&&t.removeChild(e)}function jt(e,t,n){var r,o,a,i={};for(a in t)"key"==a?r=t[a]:"ref"==a?o=t[a]:i[a]=t[a];if(arguments.length>2&&(i.children=arguments.length>3?ft.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return St(e,i,r,o,null)}function St(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++vt:o};return null==o&&null!=dt.vnode&&dt.vnode(a),a}function wt(e){return e.children}function It(e,t){this.props=e,this.context=t}function Et(e,t){if(null==t)return e.__?Et(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?St(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=g[s])||f&&d.key==f.key&&d.type===f.type)g[s]=void 0;else for(p=0;p0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Qt);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function zt(e){return function(e){if(Array.isArray(e))return Gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Gt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Yt=new RegExp(/\w/i),Xt=/&(amp|quot|lt|gt|#39);/g,Zt=RegExp(Xt.source);function en(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,u=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Yt.test((o=a.value)&&Zt.test(o)?o.replace(Xt,(function(e){return Jt[e]})):o)||u!==i?a.isHighlighted:u}function tn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nn(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function gn(e){return function(e){if(Array.isArray(e))return yn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return yn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(h.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:An,options:e}}))})),j=p(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),S={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},w={setActiveItemId:P.value.setActiveItemId,setQuery:P.value.setQuery,setCollections:P.value.setCollections,setIsOpen:P.value.setIsOpen,setStatus:P.value.setStatus,setContext:P.value.setContext,refresh:P.value.refresh,navigator:P.value.navigator},I=d((function(){return $e.bind(O.value.renderer.renderer.createElement)})),E=d((function(){return pt({autocomplete:P.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:S,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function A(){ot(E.value.panel,{style:_.value?{}:En({panelPlacement:O.value.renderer.panelPlacement,container:E.value.root,form:E.value.form,environment:O.value.core.environment})})}function C(e){j.current=e;var t={autocomplete:P.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:E.value,panelContainer:_.value?E.value.detachedContainer:O.value.renderer.panelContainer,propGetters:S,state:j.current,renderer:O.value.renderer.renderer},r=!g(e)&&!h.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,a=e.propGetters,i=e.state;at(o.root,a.getRootProps(n({state:i,props:t.getRootProps({})},r))),at(o.input,a.getInputProps(n({state:i,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),ot(o.label,{hidden:"stalled"===i.status}),ot(o.loadingIndicator,{hidden:"stalled"!==i.status}),ot(o.clearButton,{hidden:!i.query}),ot(o.detachedSearchButtonQuery,{textContent:i.query}),ot(o.detachedSearchButtonPlaceholder,{hidden:Boolean(i.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,i=t.classNames,u=t.html,c=t.dom,l=t.panelContainer,s=t.propGetters,p=t.state,f=t.components,d=t.renderer;if(p.isOpen){l.contains(c.panel)||"loading"===p.status||l.appendChild(c.panel),c.panel.classList.toggle("aa-Panel--stalled","stalled"===p.status);var v=p.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var c=e.source,l=e.items;return d.createElement("section",{key:t,className:i.source,"data-autocomplete-source-id":c.sourceId},c.templates.header&&d.createElement("div",{className:i.sourceHeader},c.templates.header({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:u})),c.templates.noResults&&0===l.length?d.createElement("div",{className:i.sourceNoResults},c.templates.noResults({components:f,createElement:d.createElement,Fragment:d.Fragment,source:c,state:p,html:u})):d.createElement("ul",a({className:i.list},s.getListProps(n({state:p,props:r.getListProps({sourceIndex:t})},o))),l.map((function(e){var l=r.getItemProps({item:e,source:c,sourceIndex:t});return d.createElement("li",a({key:l.id,className:i.item},s.getItemProps(n({state:p,props:l},o))),c.templates.item({components:f,createElement:d.createElement,Fragment:d.Fragment,item:e,state:p,html:u}))}))),c.templates.footer&&d.createElement("div",{className:i.sourceFooter},c.templates.footer({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:u})))})),m=d.createElement(d.Fragment,null,d.createElement("div",{className:i.panelLayout},v),d.createElement("div",{className:"aa-GradientBottom"})),h=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:m,state:p,sections:v,elements:h},d),{},{components:f,html:u},o),c.panel)}else l.contains(c.panel)&&l.removeChild(c.panel)}(r,t)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c();var t=O.value.renderer,n=t.components,r=i(t,Cn);y.current=Ye(r,O.value.core,{components:Xe(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),l(),P.value.refresh().then((function(){C(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(E.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),E.value.input.focus()):(O.value.core.environment.document.body.removeChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return u((function(){var e=P.value.getEnvironmentProps({formElement:E.value.form,panelElement:E.value.panel,inputElement:E.value.input});return ot(O.value.core.environment,e),function(){ot(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),u((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?E.value.detachedOverlay:E.value.panel;return _.value&&j.current.isOpen&&k(!0),C(j.current),function(){e.contains(t)&&e.removeChild(t)}})),u((function(){var e=O.value.renderer.container;return e.appendChild(E.value.root),function(){e.removeChild(E.value.root)}})),u((function(){var e=f((function(e){C(e.state)}),0);return b.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||A(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){b.current=void 0}})),u((function(){var e=f((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?D({}):requestAnimationFrame(A)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),u((function(){if(!_.value)return function(){};function e(e){E.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),u((function(){return requestAnimationFrame(A),function(){}})),n(n({},w),{},{update:D,destroy:function(){c()}})},e.getAlgoliaFacets=function(e){var t=Dn({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=kn,Object.defineProperty(e,"__esModule",{value:!0})}));
+/*! @algolia/autocomplete-js 1.18.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(D(n),[{headers:u}]))}else e.apply(void 0,[t].concat(D(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",B(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",B(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",B(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",B(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=k(t,A);return[].concat(D(e),D(q(N(N({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function L(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function F(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function M(e){return function(e){if(Array.isArray(e))return H(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&z({onItemsChange:o,items:n,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function o(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:W(W({},a?{clickAnalytics:!0}:{}),e?{userToken:X(e)}:{}),insights:c}})}l("addAlgoliaAgent","insights-plugin"),o(),l("onUserTokenChange",(function(e){o(e)})),l("getUserToken",null,(function(e,t){o(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,o=e.source;F(t)&&i({state:n,event:r,insights:c,item:t,insightsEvents:[W({eventName:"Item Selected"},j({item:t,items:o.getItems().filter(F)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;F(t)&&u({state:r,event:o,insights:c,item:t,insightsEvents:[W({eventName:"Item Active"},j({item:t,items:n.getItems().filter(F)}))]})}))},onStateChange:function(e){var t=e.state;m({state:t})},__autocomplete_pluginOptions:e}}function J(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;return[].concat(M(t),["autocomplete-internal"],M(null!==(e=n.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function X(e){return"number"==typeof e?e.toString():e}function Y(e,t){var n=t;return{then:function(t,r){return Y(e.then(ee(t,n,e),ee(r,n,e)),n)},catch:function(t){return Y(e.catch(ee(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Y(e.finally(ee(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Z(e){return Y(e,{isCanceled:!1,onCancelList:[]})}function ee(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function te(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function re(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:d(),plugins:o,initialState:Se({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(he(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:_,onResolve:_};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=re(re({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return m(e)})).then((function(e){return e.map((function(e){return Se(Se({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Se({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function we(e){return we="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},we(e)}function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ae(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Qe,Ke,$e,ze=null,Ge=(Qe=-1,Ke=-1,$e=void 0,function(e){var t=++Qe;return Promise.resolve(e).then((function(e){return $e&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function rt(e){return rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(e)}var ot=["props","refresh","store"],it=["inputElement","formElement","panelElement"],ut=["inputElement"],at=["inputElement","maxLength"],lt=["source"],ct=["item","source"];function st(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ft(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function vt(e){var t=e.props,n=e.refresh,r=e.store,o=mt(e,ot);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return ft({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},mt(e,it))},getRootProps:function(e){return ft({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ae(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ae(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,ft({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(ft({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(ft({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},mt(e,ut))},getLabelProps:function(e){return ft({htmlFor:ae(t.id,"input"),id:ae(t.id,"label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&Je(ft({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var l=a.maxLength,c=void 0===l?512:l,s=mt(a,at),f=ue(r.getState()),p=function(e){return Boolean(e&&e.match(le))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return ft({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?ae(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.filter((function(e){return e.items.length>0})).map((function(e){var n=e.source;return ae(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ae(t.id,"label"),value:r.getState().completion||r.getState().query,id:ae(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&ce(e).isComposing?o.setQuery(i):Je(ft({event:e,props:t,query:i.slice(0,c),refresh:n,store:r},o))},onCompositionEnd:function(e){Je(ft({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){ce(e).isComposing||function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=nt(e,Ye);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=ue(o.getState()),t=n.environment.document.getElementById(ae(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},a=function(){var e=ue(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,l=e.source;l.onActive(et({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?Je(et({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ue(o.getState()),c=l.item,s=l.itemInputValue,f=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(et({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(et({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(et({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:c,state:o.getState()});Je(et({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(et({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(ft({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:_,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return ft({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=mt(n,lt);return ft({role:"listbox","aria-labelledby":ae(t.id,"label"),id:ae(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,u=e.source,a=mt(e,ct);return ft({id:ae(t.id,"item-".concat(i.__autocomplete_id),u),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=ue(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(ft({event:e,item:u,itemInputValue:a,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),l=u.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():Je(ft({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(ft({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function dt(e){return dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dt(e)}function yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},l=0;l"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var Tt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function qt(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Bt(){for(var e=arguments.length,t=new Array(e),n=0;n\n \n',t},Xt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n};function Yt(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.classNames,i=e.environment,a=e.isDetached,l=e.placeholder,c=void 0===l?"Search":l,s=e.propGetters,f=e.setIsModalOpen,p=e.state,m=e.translations,v=zt(i),d=s.getRootProps(n({state:p,props:t.getRootProps({})},r)),y=v("div",n({class:o.root},d)),b=v("div",{class:o.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),g=v("div",{class:o.detachedOverlay,children:[b],onMouseDown:function(){f(!1),t.setIsOpen(!1)}}),h=s.getLabelProps(n({state:p,props:t.getLabelProps({})},r)),_=v("button",{class:o.submitButton,type:"submit",title:m.submitButtonTitle,children:[Xt({environment:i})]}),O=v("label",n({class:o.label,children:[_],ariaLabel:m.submitButtonTitle},h)),S=v("button",{class:o.clearButton,type:"reset",title:m.clearButtonTitle,children:[Tt({environment:i})]}),j=v("div",{class:o.loadingIndicator,children:[Jt({environment:i})]}),P=function(e){var t=e.autocompleteScopeApi,r=e.environment;e.classNames;var o=e.getInputProps,i=e.getInputPropsCore,a=e.isDetached,l=e.state,c=u(e,Gt),s=zt(r)("input",c),f=o(n({state:l,props:i({inputElement:s}),inputElement:s},t));return Qt(s,n(n({},f),{},{onKeyDown:function(e){a&&"Tab"===e.key||f.onKeyDown(e)}})),s}({class:o.input,environment:i,state:p,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:r,isDetached:a}),w=v("div",{class:o.inputWrapperPrefix,children:[O,j]}),I=v("div",{class:o.inputWrapperSuffix,children:[S]}),A=v("div",{class:o.inputWrapper,children:[P]}),E=s.getFormProps(n({state:p,props:t.getFormProps({inputElement:P})},r)),D=v("form",n({class:o.form,children:[w,A,I]},E)),C=s.getPanelProps(n({state:p,props:t.getPanelProps({})},r)),k=v("div",n({class:o.panel},C)),x=v("div",{class:o.detachedSearchButtonQuery,textContent:p.query}),N=v("div",{class:o.detachedSearchButtonPlaceholder,hidden:Boolean(p.query),textContent:c});if(a){var T=v("div",{class:o.detachedSearchButtonIcon,children:[Xt({environment:i})]}),q=v("button",{type:"button",class:o.detachedSearchButton,title:m.detachedSearchButtonTitle,id:h.id,onClick:function(){f(!0)},children:[T,N,x]}),B=v("button",{type:"button",class:o.detachedCancelButton,textContent:m.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),f(!1)}}),R=v("div",{class:o.detachedFormContainer,children:[D,B]});b.appendChild(R),y.appendChild(q)}else y.appendChild(D);return{detachedContainer:b,detachedOverlay:g,detachedSearchButtonQuery:x,detachedSearchButtonPlaceholder:N,inputWrapper:A,input:P,root:y,form:D,label:O,submitButton:_,clearButton:S,loadingIndicator:j,panel:k}}var Zt,en,tn,nn,rn,on,un,an={},ln=[],cn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function sn(e,t){for(var n in t)e[n]=t[n];return e}function fn(e){var t=e.parentNode;t&&t.removeChild(e)}function pn(e,t,n){var r,o,i,u={};for(i in t)"key"==i?r=t[i]:"ref"==i?o=t[i]:u[i]=t[i];if(arguments.length>2&&(u.children=arguments.length>3?Zt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return mn(e,u,r,o,null)}function mn(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++tn:o};return null==o&&null!=en.vnode&&en.vnode(i),i}function vn(e){return e.children}function dn(e,t){this.props=e,this.context=t}function yn(e,t){if(null==t)return e.__?yn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&nn.sort(un));hn.__r=0}function _n(e,t,n,r,o,i,u,a,l,c){var s,f,p,m,v,d,y,b=r&&r.__k||ln,g=b.length;for(n.__k=[],s=0;s0?mn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=b[s])||p&&m.key==p.key&&m.type===p.type)b[s]=void 0;else for(f=0;f=0;t--)if((n=e.__k[t])&&(r=jn(n)))return r;return null}function Pn(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||cn.test(t)?n:n+"px"}function wn(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Pn(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||Pn(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?An:In,i):e.removeEventListener(t,i?An:In,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function In(e){return this.l[e.type+!1](en.event?en.event(e):e)}function An(e){return this.l[e.type+!0](en.event?en.event(e):e)}function En(e,t,n,r,o,i,u,a,l){var c,s,f,p,m,v,d,y,b,g,h,_,O,S,j,P=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(c=en.__b)&&c(t);try{e:if("function"==typeof P){if(y=t.props,b=(c=P.contextType)&&r[c.__c],g=c?b?b.props.value:c.__:r,n.__c?d=(s=t.__c=n.__c).__=s.__E:("prototype"in P&&P.prototype.render?t.__c=s=new P(y,g):(t.__c=s=new dn(y,g),s.constructor=P,s.render=Nn),b&&b.sub(s),s.props=y,s.state||(s.state={}),s.context=g,s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),null==s.__s&&(s.__s=s.state),null!=P.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=sn({},s.__s)),sn(s.__s,P.getDerivedStateFromProps(y,s.__s))),p=s.props,m=s.state,s.__v=t,f)null==P.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==P.getDerivedStateFromProps&&y!==p&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,g),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(s.props=y,s.state=s.__s,s.__d=!1),s.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),h=0;h0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(qn);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Rn(e){return function(e){if(Array.isArray(e))return Ln(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ln(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ln(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ln(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Mn=new RegExp(/\w/i),Hn=/&(amp|quot|lt|gt|#39);/g,Vn=RegExp(Hn.source);function Wn(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Mn.test((o=i.value)&&Vn.test(o)?o.replace(Hn,(function(e){return Un[e]})):o)||a!==u?i.isHighlighted:a}function Qn(e){return Qn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qn(e)}function Kn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $n(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function cr(e){return function(e){if(Array.isArray(e))return sr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return sr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return sr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function sr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;if(!_.value.core.openOnFocus&&!t.query)return n;var r=Boolean(y.current||_.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:_r,options:e}}))})),j=f(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},_.value.core.initialState)),P={getEnvironmentProps:_.value.renderer.getEnvironmentProps,getFormProps:_.value.renderer.getFormProps,getInputProps:_.value.renderer.getInputProps,getItemProps:_.value.renderer.getItemProps,getLabelProps:_.value.renderer.getLabelProps,getListProps:_.value.renderer.getListProps,getPanelProps:_.value.renderer.getPanelProps,getRootProps:_.value.renderer.getRootProps},w={setActiveItemId:S.value.setActiveItemId,setQuery:S.value.setQuery,setCollections:S.value.setCollections,setIsOpen:S.value.setIsOpen,setStatus:S.value.setStatus,setContext:S.value.setContext,refresh:S.value.refresh,navigator:S.value.navigator},I=m((function(){return Nt.bind(_.value.renderer.renderer.createElement)})),A=m((function(){return Yt({autocomplete:S.value,autocompleteScopeApi:w,classNames:_.value.renderer.classNames,environment:_.value.core.environment,isDetached:O.value,placeholder:_.value.core.placeholder,propGetters:P,setIsModalOpen:k,state:j.current,translations:_.value.renderer.translations})}));function E(){Qt(A.value.panel,{style:O.value?{}:hr({panelPlacement:_.value.renderer.panelPlacement,container:A.value.root,form:A.value.form,environment:_.value.core.environment})})}function D(e){j.current=e;var t={autocomplete:S.value,autocompleteScopeApi:w,classNames:_.value.renderer.classNames,components:_.value.renderer.components,container:_.value.renderer.container,html:I.value,dom:A.value,panelContainer:O.value?A.value.detachedContainer:_.value.renderer.panelContainer,propGetters:P,state:j.current,renderer:_.value.renderer.renderer},r=!b(e)&&!y.current&&_.value.renderer.renderNoResults||_.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;Kt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),Kt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),Qt(o.label,{hidden:"stalled"===u.status}),Qt(o.loadingIndicator,{hidden:"stalled"!==u.status}),Qt(o.clearButton,{hidden:!u.query}),Qt(o.detachedSearchButtonQuery,{textContent:u.query}),Qt(o.detachedSearchButtonPlaceholder,{hidden:Boolean(u.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,l=t.dom,c=t.panelContainer,s=t.propGetters,f=t.state,p=t.components,m=t.renderer;if(f.isOpen){c.contains(l.panel)||"loading"===f.status||c.appendChild(l.panel),l.panel.classList.toggle("aa-Panel--stalled","stalled"===f.status);var v=f.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var l=e.source,c=e.items;return m.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":l.sourceId},l.templates.header&&m.createElement("div",{className:u.sourceHeader},l.templates.header({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})),l.templates.noResults&&0===c.length?m.createElement("div",{className:u.sourceNoResults},l.templates.noResults({components:p,createElement:m.createElement,Fragment:m.Fragment,source:l,state:f,html:a})):m.createElement("ul",i({className:u.list},s.getListProps(n({state:f,props:r.getListProps({source:l})},o))),c.map((function(e){var t=r.getItemProps({item:e,source:l});return m.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:f,props:t},o))),l.templates.item({components:p,createElement:m.createElement,Fragment:m.Fragment,item:e,state:f,html:a}))}))),l.templates.footer&&m.createElement("div",{className:u.sourceFooter},l.templates.footer({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})))})),d=m.createElement(m.Fragment,null,m.createElement("div",{className:u.panelLayout},v),m.createElement("div",{className:"aa-GradientBottom"})),y=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:d,state:f,sections:v,elements:y},m),{},{components:p,html:a},o),l.panel)}else c.contains(l.panel)&&c.removeChild(l.panel)}(r,t)}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l();var t=_.value.renderer,n=t.components,r=u(t,Or);g.current=Lt(r,_.value.core,{components:Ft(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),c(),S.value.refresh().then((function(){D(j.current)}))}function k(e){e!==_.value.core.environment.document.body.contains(A.value.detachedOverlay)&&(e?(_.value.core.environment.document.body.appendChild(A.value.detachedOverlay),_.value.core.environment.document.body.classList.add("aa-Detached"),A.value.input.focus()):(_.value.core.environment.document.body.removeChild(A.value.detachedOverlay),_.value.core.environment.document.body.classList.remove("aa-Detached")))}return a((function(){var e=S.value.getEnvironmentProps({formElement:A.value.form,panelElement:A.value.panel,inputElement:A.value.input});return Qt(_.value.core.environment,e),function(){Qt(_.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=O.value?_.value.core.environment.document.body:_.value.renderer.panelContainer,t=O.value?A.value.detachedOverlay:A.value.panel;return O.value&&j.current.isOpen&&k(!0),D(j.current),function(){e.contains(t)&&(e.removeChild(t),e.classList.remove("aa-Detached"))}})),a((function(){var e=_.value.renderer.container;return e.appendChild(A.value.root),function(){e.removeChild(A.value.root)}})),a((function(){var e=p((function(e){D(e.state)}),0);return h.current=function(t){var n=t.state,r=t.prevState;(O.value&&r.isOpen!==n.isOpen&&k(n.isOpen),O.value||!n.isOpen||r.isOpen||E(),n.query!==r.query)&&_.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){h.current=void 0}})),a((function(){var e=p((function(){var e=O.value;O.value=_.value.core.environment.matchMedia(_.value.renderer.detachedMediaQuery).matches,e!==O.value?C({}):requestAnimationFrame(E)}),20);return _.value.core.environment.addEventListener("resize",e),function(){_.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!O.value)return function(){};function e(e){A.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=_.value.core.environment.matchMedia(getComputedStyle(_.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(E),function(){}})),n(n({},w),{},{update:C,destroy:function(){l()}})},e.getAlgoliaFacets=function(e){var t=Sr({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=jr,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.production.js.map
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/package.json b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/package.json
index b55883e8..4b1fe2c6 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/package.json
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-js/package.json
@@ -1,7 +1,7 @@
{
"name": "@algolia/autocomplete-js",
"description": "Fast and fully-featured autocomplete JavaScript library.",
- "version": "1.8.3",
+ "version": "1.18.1",
"license": "MIT",
"homepage": "https://github.com/algolia/autocomplete",
"repository": "algolia/autocomplete",
@@ -31,14 +31,14 @@
"watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\""
},
"dependencies": {
- "@algolia/autocomplete-core": "1.8.3",
- "@algolia/autocomplete-preset-algolia": "1.8.3",
- "@algolia/autocomplete-shared": "1.8.3",
+ "@algolia/autocomplete-core": "1.18.1",
+ "@algolia/autocomplete-preset-algolia": "1.18.1",
+ "@algolia/autocomplete-shared": "1.18.1",
"htm": "^3.1.1",
- "preact": "^10.0.0"
+ "preact": "^10.13.2"
},
"devDependencies": {
- "@algolia/client-search": "4.14.3"
+ "@algolia/client-search": "4.16.0"
},
"peerDependencies": {
"@algolia/client-search": ">= 4.5.1 < 6",
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.css b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.css
index 7393cb8b..d9a0e4f0 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.css
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.css
@@ -1,60 +1,60 @@
-/*! @algolia/autocomplete-theme-classic 1.6.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
-/* ---------------- */
-/* 1. CSS Variables */
-/* 2. Dark Mode */
-/* 3. Autocomplete */
-/* 4. Panel */
-/* 5. Sources */
-/* 6. Hit Layout */
-/* 7. Panel Header */
-/* 8. Panel Footer */
-/* 9. Detached Mode */
-/* 10. Gradients */
-/* 11. Utilities */
-/* ---------------- */
-/* Note: */
-/* This theme reflects the markup structure of autocomplete with SCSS indentation. */
-/* We use the SASS `@at-root` function to keep specificity low. */
-/* ---------------- */
-/* 1. CSS Variables */
-/* ---------------- */
+/*! @algolia/autocomplete-theme-classic 1.18.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
+/* ----------------*/
+/* 1. CSS Variables*/
+/* 2. Dark Mode*/
+/* 3. Autocomplete*/
+/* 4. Panel*/
+/* 5. Sources*/
+/* 6. Hit Layout*/
+/* 7. Panel Header*/
+/* 8. Panel Footer*/
+/* 9. Detached Mode*/
+/* 10. Gradients*/
+/* 11. Utilities*/
+/* ----------------*/
+/* Note:*/
+/* This theme reflects the markup structure of autocomplete with SCSS indentation.*/
+/* We use the SASS `@at-root` function to keep specificity low.*/
+/* ----------------*/
+/* 1. CSS Variables*/
+/* ----------------*/
:root {
- /* Input */
+ /* Input*/
--aa-search-input-height: 44px;
--aa-input-icon-size: 20px;
- /* Size and spacing */
+ /* Size and spacing*/
--aa-base-unit: 16;
--aa-spacing-factor: 1;
--aa-spacing: calc(var(--aa-base-unit) * var(--aa-spacing-factor) * 1px);
--aa-spacing-half: calc(var(--aa-spacing) / 2);
--aa-panel-max-height: 650px;
- /* Z-index */
+ /* Z-index*/
--aa-base-z-index: 9999;
- /* Font */
+ /* Font*/
--aa-font-size: calc(var(--aa-base-unit) * 1px);
--aa-font-family: inherit;
--aa-font-weight-medium: 500;
--aa-font-weight-semibold: 600;
--aa-font-weight-bold: 700;
- /* Icons */
+ /* Icons*/
--aa-icon-size: 20px;
--aa-icon-stroke-width: 1.6;
--aa-icon-color-rgb: 119, 119, 163;
--aa-icon-color-alpha: 1;
--aa-action-icon-size: 20px;
- /* Text colors */
+ /* Text colors*/
--aa-text-color-rgb: 38, 38, 39;
--aa-text-color-alpha: 1;
--aa-primary-color-rgb: 62, 52, 211;
--aa-primary-color-alpha: 0.2;
--aa-muted-color-rgb: 128, 126, 163;
--aa-muted-color-alpha: 0.6;
- /* Border colors */
+ /* Border colors*/
--aa-panel-border-color-rgb: 128, 126, 163;
--aa-panel-border-color-alpha: 0.3;
--aa-input-border-color-rgb: 128, 126, 163;
--aa-input-border-color-alpha: 0.8;
- /* Background colors */
+ /* Background colors*/
--aa-background-color-rgb: 255, 255, 255;
--aa-background-color-alpha: 1;
--aa-input-background-color-rgb: 255, 255, 255;
@@ -63,23 +63,23 @@
--aa-selected-color-alpha: 0.205;
--aa-description-highlight-background-color-rgb: 245, 223, 77;
--aa-description-highlight-background-color-alpha: 0.5;
- /* Detached mode */
+ /* Detached mode*/
--aa-detached-media-query: (max-width: 680px);
--aa-detached-modal-media-query: (min-width: 680px);
--aa-detached-modal-max-width: 680px;
--aa-detached-modal-max-height: 500px;
--aa-overlay-color-rgb: 115, 114, 129;
--aa-overlay-color-alpha: 0.4;
- /* Shadows */
+ /* Shadows*/
--aa-panel-shadow: 0 0 0 1px rgba(35, 38, 59, .1),
0 6px 16px -4px rgba(35, 38, 59, .15);
- /* Scrollbar */
+ /* Scrollbar*/
--aa-scrollbar-width: 13px;
--aa-scrollbar-track-background-color-rgb: 234, 234, 234;
--aa-scrollbar-track-background-color-alpha: 1;
--aa-scrollbar-thumb-background-color-rgb: var(--aa-background-color-rgb);
--aa-scrollbar-thumb-background-color-alpha: 1;
- /* Touch screens */
+ /* Touch screens*/
}
@media (hover: none) and (pointer: coarse) {
:root {
@@ -88,49 +88,49 @@
}
}
-/* ---------------- */
-/* 2. Dark Mode */
-/* ---------------- */
+/* ----------------*/
+/* 2. Dark Mode*/
+/* ----------------*/
body {
/* stylelint-disable selector-no-qualifying-type, selector-class-pattern */
/* stylelint-enable selector-no-qualifying-type, selector-class-pattern */
}
body[data-theme=dark], body.dark {
- /* Text colors */
+ /* Text colors*/
--aa-text-color-rgb: 183, 192, 199;
--aa-primary-color-rgb: 146, 138, 255;
--aa-muted-color-rgb: 146, 138, 255;
- /* Background colors */
+ /* Background colors*/
--aa-input-background-color-rgb: 0, 3, 9;
--aa-background-color-rgb: 21, 24, 42;
--aa-selected-color-rgb: 146, 138, 255;
--aa-selected-color-alpha: 0.25;
--aa-description-highlight-background-color-rgb: 0 255 255;
--aa-description-highlight-background-color-alpha: 0.25;
- /* Icons */
+ /* Icons*/
--aa-icon-color-rgb: 119, 119, 163;
- /* Shadows */
+ /* Shadows*/
--aa-panel-shadow: inset 1px 1px 0 0 rgb(44, 46, 64),
0 3px 8px 0 rgb(0, 3, 9);
- /* Scrollbar */
+ /* Scrollbar*/
--aa-scrollbar-track-background-color-rgb: 44, 46, 64;
--aa-scrollbar-thumb-background-color-rgb: var(--aa-background-color-rgb);
}
-/* Reset for `@extend` */
+/* Reset for `@extend`*/
.aa-Panel *, .aa-Autocomplete *,
.aa-DetachedFormContainer * {
box-sizing: border-box;
}
-/* Init for `@extend` */
+/* Init for `@extend`*/
.aa-Panel, .aa-Autocomplete,
.aa-DetachedFormContainer {
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
font-family: inherit;
font-family: var(--aa-font-family);
- font-size: 16px;
+ font-size: calc(16 * 1px);
font-size: var(--aa-font-size);
font-weight: normal;
line-height: 1em;
@@ -139,16 +139,16 @@ body[data-theme=dark], body.dark {
text-align: left;
}
-/* ---------------- */
-/* 3. Autocomplete */
-/* ---------------- */
+/* ----------------*/
+/* 3. Autocomplete*/
+/* ----------------*/
.aa-Autocomplete,
.aa-DetachedFormContainer {
- /* Search box */
+ /* Search box*/
}
.aa-Form {
align-items: center;
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-input-background-color-rgb), var(--aa-input-background-color-alpha));
border: 1px solid rgba(128, 126, 163, 0.8);
border: 1px solid rgba(var(--aa-input-border-color-rgb), var(--aa-input-border-color-alpha));
@@ -159,15 +159,8 @@ body[data-theme=dark], body.dark {
position: relative;
width: 100%;
}
-.aa-Form[focus-within] {
- border-color: #3e34d3;
- border-color: rgba(var(--aa-primary-color-rgb), 1);
- box-shadow: rgba(62, 52, 211, 0.2) 0 0 0 2px, inset rgba(62, 52, 211, 0.2) 0 0 0 2px;
- box-shadow: rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 2px, inset rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 2px;
- outline: currentColor none medium;
-}
.aa-Form:focus-within {
- border-color: #3e34d3;
+ border-color: rgba(62, 52, 211, 1);
border-color: rgba(var(--aa-primary-color-rgb), 1);
box-shadow: rgba(62, 52, 211, 0.2) 0 0 0 2px, inset rgba(62, 52, 211, 0.2) 0 0 0 2px;
box-shadow: rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 2px, inset rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 2px;
@@ -180,7 +173,7 @@ body[data-theme=dark], body.dark {
height: 44px;
height: var(--aa-search-input-height);
order: 1;
- /* Container for search and loading icons */
+ /* Container for search and loading icons*/
}
.aa-Label,
.aa-LoadingIndicator {
@@ -193,7 +186,7 @@ body[data-theme=dark], body.dark {
}
.aa-Label svg,
.aa-LoadingIndicator svg {
- color: #3e34d3;
+ color: rgba(62, 52, 211, 1);
color: rgba(var(--aa-primary-color-rgb), 1);
height: auto;
max-height: 20px;
@@ -207,27 +200,32 @@ body[data-theme=dark], body.dark {
.aa-SubmitButton,
.aa-LoadingIndicator {
height: 100%;
- padding-left: 11px;
+ padding-left: calc((16 * 1 * 1px) * 0.75 - 1px);
+ padding-left: calc(calc(16 * 1 * 1px) * 0.75 - 1px);
padding-left: calc(var(--aa-spacing) * 0.75 - 1px);
- padding-right: 8px;
+ padding-right: calc((16 * 1 * 1px) / 2);
+ padding-right: calc(calc(16 * 1 * 1px) / 2);
padding-right: var(--aa-spacing-half);
- width: 47px;
+ width: calc((16 * 1 * 1px) * 1.75 + 20px - 1px);
+ width: calc(calc(16 * 1 * 1px) * 1.75 + 20px - 1px);
width: calc(var(--aa-spacing) * 1.75 + var(--aa-icon-size) - 1px);
}
@media (hover: none) and (pointer: coarse) {
.aa-SubmitButton,
-.aa-LoadingIndicator {
- padding-left: 3px;
+ .aa-LoadingIndicator {
+ padding-left: calc(((16 * 1 * 1px) / 2) / 2 - 1px);
+ padding-left: calc(calc(calc(16 * 1 * 1px) / 2) / 2 - 1px);
padding-left: calc(var(--aa-spacing-half) / 2 - 1px);
- width: 39px;
+ width: calc(20px + (16 * 1 * 1px) * 1.25 - 1px);
+ width: calc(20px + calc(16 * 1 * 1px) * 1.25 - 1px);
width: calc(var(--aa-icon-size) + var(--aa-spacing) * 1.25 - 1px);
}
}
.aa-SubmitButton {
-webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+ -moz-appearance: none;
+ appearance: none;
background: none;
border: 0;
margin: 0;
@@ -246,34 +244,29 @@ body[data-theme=dark], body.dark {
order: 3;
position: relative;
width: 100%;
- /* Search box input (with placeholder and query) */
+ /* Search box input (with placeholder and query)*/
}
.aa-Input {
-webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+ -moz-appearance: none;
+ appearance: none;
background: none;
border: 0;
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
font: inherit;
height: 44px;
height: var(--aa-search-input-height);
padding: 0;
width: 100%;
- /* Focus is set and styled on the parent, it isn't necessary here */
- /* Remove native appearence */
+ /* Focus is set and styled on the parent, it isn't necessary here*/
+ /* Remove native appearance*/
}
.aa-Input::-moz-placeholder {
color: rgba(128, 126, 163, 0.6);
color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha));
opacity: 1;
}
-.aa-Input:-ms-input-placeholder {
- color: rgba(128, 126, 163, 0.6);
- color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha));
- opacity: 1;
-}
.aa-Input::placeholder {
color: rgba(128, 126, 163, 0.6);
color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha));
@@ -286,7 +279,7 @@ body[data-theme=dark], body.dark {
}
.aa-Input::-webkit-search-decoration, .aa-Input::-webkit-search-cancel-button, .aa-Input::-webkit-search-results-button, .aa-Input::-webkit-search-results-decoration {
-webkit-appearance: none;
- appearance: none;
+ appearance: none;
}
.aa-InputWrapperSuffix {
@@ -295,7 +288,7 @@ body[data-theme=dark], body.dark {
height: 44px;
height: var(--aa-search-input-height);
order: 4;
- /* Accelerator to clear the query */
+ /* Accelerator to clear the query*/
}
.aa-ClearButton {
align-items: center;
@@ -307,17 +300,19 @@ body[data-theme=dark], body.dark {
display: flex;
height: 100%;
margin: 0;
- padding: 0 12.8333333333px;
+ padding: 0 calc((16 * 1 * 1px) * 0.8333333333 - 0.5px);
+ padding: 0 calc(calc(16 * 1 * 1px) * 0.8333333333 - 0.5px);
padding: 0 calc(var(--aa-spacing) * 0.8333333333 - 0.5px);
}
@media (hover: none) and (pointer: coarse) {
.aa-ClearButton {
- padding: 0 10.1666666667px;
+ padding: 0 calc((16 * 1 * 1px) * 0.6666666667 - 0.5px);
+ padding: 0 calc(calc(16 * 1 * 1px) * 0.6666666667 - 0.5px);
padding: 0 calc(var(--aa-spacing) * 0.6666666667 - 0.5px);
}
}
.aa-ClearButton:hover, .aa-ClearButton:focus {
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
}
.aa-ClearButton[hidden] {
@@ -330,21 +325,23 @@ body[data-theme=dark], body.dark {
width: var(--aa-icon-size);
}
-/* ---------------- */
-/* 4. Panel */
-/* ---------------- */
+/* ----------------*/
+/* 4. Panel*/
+/* ----------------*/
.aa-Panel {
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
- border-radius: 4px;
+ border-radius: calc((16 * 1 * 1px) / 4);
+ border-radius: calc(calc(16 * 1 * 1px) / 4);
border-radius: calc(var(--aa-spacing) / 4);
- box-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15);
+ box-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1),
+ 0 6px 16px -4px rgba(35, 38, 59, 0.15);
box-shadow: var(--aa-panel-shadow);
margin: 8px 0 0;
overflow: hidden;
position: absolute;
transition: opacity 200ms ease-in, filter 200ms ease-in;
- /* When a request isn't resolved yet */
+ /* When a request isn't resolved yet*/
}
@media screen and (prefers-reduced-motion) {
.aa-Panel {
@@ -353,8 +350,8 @@ body[data-theme=dark], body.dark {
}
.aa-Panel button {
-webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
+ -moz-appearance: none;
+ appearance: none;
background: none;
border: 0;
margin: 0;
@@ -402,9 +399,10 @@ body[data-theme=dark], body.dark {
max-height: var(--aa-panel-max-height);
overflow-x: hidden;
overflow-y: auto;
- padding: 8px;
+ padding: calc((16 * 1 * 1px) / 2);
+ padding: calc(calc(16 * 1 * 1px) / 2);
padding: var(--aa-spacing-half);
- scrollbar-color: white #eaeaea;
+ scrollbar-color: rgba(255, 255, 255, 1) rgba(234, 234, 234, 1);
scrollbar-color: rgba(var(--aa-scrollbar-thumb-background-color-rgb), var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb), var(--aa-scrollbar-track-background-color-alpha));
scrollbar-width: thin;
}
@@ -413,40 +411,40 @@ body[data-theme=dark], body.dark {
width: var(--aa-scrollbar-width);
}
.aa-Panel--scrollable::-webkit-scrollbar-track {
- background-color: #eaeaea;
+ background-color: rgba(234, 234, 234, 1);
background-color: rgba(var(--aa-scrollbar-track-background-color-rgb), var(--aa-scrollbar-track-background-color-alpha));
}
.aa-Panel--scrollable::-webkit-scrollbar-thumb {
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-scrollbar-thumb-background-color-rgb), var(--aa-scrollbar-thumb-background-color-alpha));
- border-color: #eaeaea;
+ border-color: rgba(234, 234, 234, 1);
border-color: rgba(var(--aa-scrollbar-track-background-color-rgb), var(--aa-scrollbar-track-background-color-alpha));
border-radius: 9999px;
border-style: solid;
border-width: 3px 2px 3px 3px;
}
-/* ---------------- */
-/* 5. Sources */
-/* Each source can be styled independently */
-/* ---------------- */
+/* ----------------*/
+/* 5. Sources*/
+/* Each source can be styled independently*/
+/* ----------------*/
.aa-Source {
margin: 0;
padding: 0;
position: relative;
width: 100%;
- /* List of results inside the source */
- /* Source title */
- /* See all button */
+ /* List of results inside the source*/
+ /* Source title*/
+ /* See all button*/
}
.aa-Source:empty {
- /* Hide empty section */
+ /* Hide empty section*/
display: none;
}
.aa-SourceNoResults {
font-size: 1em;
margin: 0;
- padding: 16px;
+ padding: calc(16 * 1 * 1px);
padding: var(--aa-spacing);
}
@@ -458,28 +456,30 @@ body[data-theme=dark], body.dark {
}
.aa-SourceHeader {
- margin: 8px 0.5em 8px 0;
+ margin: calc((16 * 1 * 1px) / 2) 0.5em calc((16 * 1 * 1px) / 2) 0;
+ margin: calc(calc(16 * 1 * 1px) / 2) 0.5em calc(calc(16 * 1 * 1px) / 2) 0;
margin: var(--aa-spacing-half) 0.5em var(--aa-spacing-half) 0;
padding: 0;
position: relative;
- /* Hide empty header */
- /* Title typography */
- /* Line separator */
+ /* Hide empty header*/
+ /* Title typography*/
+ /* Line separator*/
}
.aa-SourceHeader:empty {
display: none;
}
.aa-SourceHeaderTitle {
- background: white;
+ background: rgba(255, 255, 255, 1);
background: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
- color: #3e34d3;
+ color: rgba(62, 52, 211, 1);
color: rgba(var(--aa-primary-color-rgb), 1);
display: inline-block;
font-size: 0.8em;
font-weight: 600;
font-weight: var(--aa-font-weight-semibold);
margin: 0;
- padding: 0 8px 0 0;
+ padding: 0 calc((16 * 1 * 1px) / 2) 0 0;
+ padding: 0 calc(calc(16 * 1 * 1px) / 2) 0 0;
padding: 0 var(--aa-spacing-half) 0 0;
position: relative;
z-index: 9999;
@@ -487,7 +487,7 @@ body[data-theme=dark], body.dark {
}
.aa-SourceHeaderLine {
- border-bottom: solid 1px #3e34d3;
+ border-bottom: solid 1px rgba(62, 52, 211, 1);
border-bottom: solid 1px rgba(var(--aa-primary-color-rgb), 1);
display: block;
height: 2px;
@@ -497,14 +497,15 @@ body[data-theme=dark], body.dark {
padding: 0;
position: absolute;
right: 0;
- top: 8px;
+ top: calc((16 * 1 * 1px) / 2);
+ top: calc(calc(16 * 1 * 1px) / 2);
top: var(--aa-spacing-half);
- z-index: 9998;
+ z-index: calc(9999 - 1);
z-index: calc(var(--aa-base-z-index) - 1);
}
.aa-SourceFooterSeeAll {
- background: linear-gradient(180deg, white, rgba(128, 126, 163, 0.14));
+ background: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(128, 126, 163, 0.14));
background: linear-gradient(180deg, rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha)), rgba(128, 126, 163, 0.14));
border: 1px solid rgba(128, 126, 163, 0.6);
border: 1px solid rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha));
@@ -515,31 +516,34 @@ body[data-theme=dark], body.dark {
font-weight: 500;
font-weight: var(--aa-font-weight-medium);
padding: 0.475em 1em 0.6em;
+ -webkit-text-decoration: none;
text-decoration: none;
}
.aa-SourceFooterSeeAll:focus, .aa-SourceFooterSeeAll:hover {
- border: 1px solid #3e34d3;
+ border: 1px solid rgba(62, 52, 211, 1);
border: 1px solid rgba(var(--aa-primary-color-rgb), 1);
- color: #3e34d3;
+ color: rgba(62, 52, 211, 1);
color: rgba(var(--aa-primary-color-rgb), 1);
}
-/* ---------------- */
-/* 6. Hit Layout */
-/* ---------------- */
+/* ----------------*/
+/* 6. Hit Layout*/
+/* ----------------*/
.aa-Item {
align-items: center;
border-radius: 3px;
cursor: pointer;
display: grid;
- min-height: 40px;
+ min-height: calc((16 * 1 * 1px) * 2.5);
+ min-height: calc(calc(16 * 1 * 1px) * 2.5);
min-height: calc(var(--aa-spacing) * 2.5);
- padding: 4px;
+ padding: calc(((16 * 1 * 1px) / 2) / 2);
+ padding: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
padding: calc(var(--aa-spacing-half) / 2);
- /* When the result is active */
- /* The result type icon inlined SVG or image */
- /* wrap hit with url but we don't need to see it */
- /* Secondary click actions */
+ /* When the result is active*/
+ /* The result type icon inlined SVG or image*/
+ /* wrap hit with url but we don't need to see it*/
+ /* Secondary click actions*/
}
.aa-Item[aria-selected=true] {
background-color: rgba(179, 173, 214, 0.205);
@@ -551,31 +555,35 @@ body[data-theme=dark], body.dark {
}
.aa-ItemIcon {
align-items: center;
- background: white;
+ background: rgba(255, 255, 255, 1);
background: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
border-radius: 3px;
box-shadow: inset 0 0 0 1px rgba(128, 126, 163, 0.3);
box-shadow: inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha));
- color: #7777a3;
+ color: rgba(119, 119, 163, 1);
color: rgba(var(--aa-icon-color-rgb), var(--aa-icon-color-alpha));
display: flex;
flex-shrink: 0;
font-size: 0.7em;
- height: 28px;
+ height: calc(20px + ((16 * 1 * 1px) / 2));
+ height: calc(20px + calc(calc(16 * 1 * 1px) / 2));
height: calc(var(--aa-icon-size) + var(--aa-spacing-half));
justify-content: center;
overflow: hidden;
stroke-width: 1.6;
stroke-width: var(--aa-icon-stroke-width);
text-align: center;
- width: 28px;
+ width: calc(20px + ((16 * 1 * 1px) / 2));
+ width: calc(20px + calc(calc(16 * 1 * 1px) / 2));
width: calc(var(--aa-icon-size) + var(--aa-spacing-half));
}
.aa-ItemIcon img {
height: auto;
- max-height: 20px;
+ max-height: calc(20px + ((16 * 1 * 1px) / 2) - 8px);
+ max-height: calc(20px + calc(calc(16 * 1 * 1px) / 2) - 8px);
max-height: calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);
- max-width: 20px;
+ max-width: calc(20px + ((16 * 1 * 1px) / 2) - 8px);
+ max-width: calc(20px + calc(calc(16 * 1 * 1px) / 2) - 8px);
max-width: calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);
width: auto;
}
@@ -601,7 +609,8 @@ body[data-theme=dark], body.dark {
.aa-ItemIcon--picture img {
max-height: 100%;
max-width: 100%;
- padding: 8px;
+ padding: calc((16 * 1 * 1px) / 2);
+ padding: calc(calc(16 * 1 * 1px) / 2);
padding: var(--aa-spacing-half);
}
@@ -609,8 +618,10 @@ body[data-theme=dark], body.dark {
align-items: center;
cursor: pointer;
display: grid;
- grid-gap: 8px;
- gap: 8px;
+ gap: calc((16 * 1 * 1px) / 2);
+ gap: calc(calc(16 * 1 * 1px) / 2);
+ grid-gap: calc((16 * 1 * 1px) / 2);
+ grid-gap: calc(calc(16 * 1 * 1px) / 2);
grid-gap: var(--aa-spacing-half);
gap: var(--aa-spacing-half);
grid-auto-flow: column;
@@ -622,7 +633,7 @@ body[data-theme=dark], body.dark {
}
.aa-ItemContent mark {
background: none;
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
font-style: normal;
font-weight: 700;
@@ -640,14 +651,17 @@ body[data-theme=dark], body.dark {
}
.aa-ItemContent--indented {
- padding-left: 36px;
+ padding-left: calc(20px + (16 * 1 * 1px));
+ padding-left: calc(20px + calc(16 * 1 * 1px));
padding-left: calc(var(--aa-icon-size) + var(--aa-spacing));
}
.aa-ItemContentBody {
display: grid;
- grid-gap: 4px;
- gap: 4px;
+ gap: calc(((16 * 1 * 1px) / 2) / 2);
+ gap: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
+ grid-gap: calc(((16 * 1 * 1px) / 2) / 2);
+ grid-gap: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
grid-gap: calc(var(--aa-spacing-half) / 2);
gap: calc(var(--aa-spacing-half) / 2);
}
@@ -678,21 +692,26 @@ body[data-theme=dark], body.dark {
.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon::before {
border-width: 0 0 1.5px;
- margin-left: 8px;
+ margin-left: calc((16 * 1 * 1px) / 2);
+ margin-left: calc(calc(16 * 1 * 1px) / 2);
margin-left: var(--aa-spacing-half);
- margin-right: 4px;
+ margin-right: calc(((16 * 1 * 1px) / 2) / 2);
+ margin-right: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
margin-right: calc(var(--aa-spacing-half) / 2);
- width: 10px;
+ width: calc(((16 * 1 * 1px) / 2) + 2px);
+ width: calc(calc(calc(16 * 1 * 1px) / 2) + 2px);
width: calc(var(--aa-spacing-half) + 2px);
}
.aa-ItemContentSubtitle--standalone {
align-items: center;
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
display: grid;
- grid-gap: 8px;
- gap: 8px;
+ gap: calc((16 * 1 * 1px) / 2);
+ gap: calc(calc(16 * 1 * 1px) / 2);
+ grid-gap: calc((16 * 1 * 1px) / 2);
+ grid-gap: calc(calc(16 * 1 * 1px) / 2);
grid-gap: var(--aa-spacing-half);
gap: var(--aa-spacing-half);
grid-auto-flow: column;
@@ -701,20 +720,22 @@ body[data-theme=dark], body.dark {
.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon::before {
border-radius: 0 0 0 3px;
border-width: 0 0 1.5px 1.5px;
- height: 8px;
+ height: calc((16 * 1 * 1px) / 2);
+ height: calc(calc(16 * 1 * 1px) / 2);
height: var(--aa-spacing-half);
- width: 8px;
+ width: calc((16 * 1 * 1px) / 2);
+ width: calc(calc(16 * 1 * 1px) / 2);
width: var(--aa-spacing-half);
}
.aa-ItemContentSubtitleCategory {
- color: #807ea3;
+ color: rgba(128, 126, 163, 1);
color: rgba(var(--aa-muted-color-rgb), 1);
font-weight: 500;
}
.aa-ItemContentDescription {
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
font-size: 0.85em;
max-width: 100%;
@@ -727,7 +748,7 @@ body[data-theme=dark], body.dark {
.aa-ItemContentDescription mark {
background: rgba(245, 223, 77, 0.5);
background: rgba(var(--aa-description-highlight-background-color-rgb), var(--aa-description-highlight-background-color-alpha));
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
font-style: normal;
font-weight: 500;
@@ -754,8 +775,10 @@ body[data-theme=dark], body.dark {
align-items: center;
color: inherit;
display: grid;
- grid-gap: 4px;
- gap: 4px;
+ gap: calc(((16 * 1 * 1px) / 2) / 2);
+ gap: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
+ grid-gap: calc(((16 * 1 * 1px) / 2) / 2);
+ grid-gap: calc(calc(calc(16 * 1 * 1px) / 2) / 2);
grid-gap: calc(var(--aa-spacing-half) / 2);
gap: calc(var(--aa-spacing-half) / 2);
grid-auto-flow: column;
@@ -765,6 +788,7 @@ body[data-theme=dark], body.dark {
.aa-ItemLink {
color: inherit;
+ -webkit-text-decoration: none;
text-decoration: none;
}
@@ -773,7 +797,8 @@ body[data-theme=dark], body.dark {
grid-auto-flow: column;
height: 100%;
justify-self: end;
- margin: 0 -5.3333333333px;
+ margin: 0 calc((16 * 1 * 1px) / -3);
+ margin: 0 calc(calc(16 * 1 * 1px) / -3);
margin: 0 calc(var(--aa-spacing) / -3);
padding: 0 2px 0 0;
}
@@ -790,7 +815,7 @@ body[data-theme=dark], body.dark {
padding: 0;
}
.aa-ItemActionButton:hover svg, .aa-ItemActionButton:focus svg {
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
}
@media (hover: none) and (pointer: coarse) {
@@ -802,7 +827,7 @@ body[data-theme=dark], body.dark {
color: rgba(128, 126, 163, 0.6);
color: rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha));
margin: 0;
- margin: 5.3333333333px;
+ margin: calc(calc(16 * 1 * 1px) / 3);
margin: calc(var(--aa-spacing) / 3);
stroke-width: 1.6;
stroke-width: var(--aa-icon-stroke-width);
@@ -814,28 +839,31 @@ body[data-theme=dark], body.dark {
visibility: hidden;
}
-/*---------------- */
-/* 7. Panel Header */
-/*---------------- */
+/*----------------*/
+/* 7. Panel Header*/
+/*----------------*/
.aa-PanelHeader {
align-items: center;
- background: #3e34d3;
+ background: rgba(62, 52, 211, 1);
background: rgba(var(--aa-primary-color-rgb), 1);
color: #fff;
display: grid;
height: var(--aa-modal-header-height);
margin: 0;
- padding: 8px 16px;
+ padding: calc((16 * 1 * 1px) / 2) calc(16 * 1 * 1px);
+ padding: calc(calc(16 * 1 * 1px) / 2) calc(16 * 1 * 1px);
padding: var(--aa-spacing-half) var(--aa-spacing);
position: relative;
}
.aa-PanelHeader::after {
- background-image: linear-gradient(white, rgba(255, 255, 255, 0));
+ background-image: linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
background-image: linear-gradient(rgba(var(--aa-background-color-rgb), 1), rgba(var(--aa-background-color-rgb), 0));
- bottom: -8px;
+ bottom: calc(((16 * 1 * 1px) / 2) * -1);
+ bottom: calc(calc(calc(16 * 1 * 1px) / 2) * -1);
bottom: calc(var(--aa-spacing-half) * -1);
content: "";
- height: 8px;
+ height: calc((16 * 1 * 1px) / 2);
+ height: calc(calc(16 * 1 * 1px) / 2);
height: var(--aa-spacing-half);
left: 0;
pointer-events: none;
@@ -845,18 +873,18 @@ body[data-theme=dark], body.dark {
z-index: var(--aa-base-z-index);
}
-/*---------------- */
-/* 8. Panel Footer */
-/*---------------- */
+/*----------------*/
+/* 8. Panel Footer*/
+/*----------------*/
.aa-PanelFooter {
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
box-shadow: inset 0 1px 0 rgba(128, 126, 163, 0.3);
box-shadow: inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb), var(--aa-panel-border-color-alpha));
display: flex;
justify-content: space-between;
margin: 0;
- padding: 16px;
+ padding: calc(16 * 1 * 1px);
padding: var(--aa-spacing);
position: relative;
z-index: 9999;
@@ -866,27 +894,29 @@ body[data-theme=dark], body.dark {
background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(128, 126, 163, 0.6));
background-image: linear-gradient(rgba(var(--aa-background-color-rgb), 0), rgba(var(--aa-muted-color-rgb), var(--aa-muted-color-alpha)));
content: "";
- height: 16px;
+ height: calc(16 * 1 * 1px);
height: var(--aa-spacing);
left: 0;
opacity: 0.12;
pointer-events: none;
position: absolute;
right: 0;
- top: -16px;
+ top: calc((16 * 1 * 1px) * -1);
+ top: calc(calc(16 * 1 * 1px) * -1);
top: calc(var(--aa-spacing) * -1);
- z-index: 9998;
+ z-index: calc(9999 - 1);
z-index: calc(var(--aa-base-z-index) - 1);
}
-/*---------------- */
-/* 9. Detached Mode */
-/*---------------- */
+/*----------------*/
+/* 9. Detached Mode*/
+/*----------------*/
.aa-DetachedContainer {
- background: white;
+ background: rgba(255, 255, 255, 1);
background: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
bottom: 0;
- box-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1), 0 6px 16px -4px rgba(35, 38, 59, 0.15);
+ box-shadow: 0 0 0 1px rgba(35, 38, 59, 0.1),
+ 0 6px 16px -4px rgba(35, 38, 59, 0.15);
box-shadow: var(--aa-panel-shadow);
display: flex;
flex-direction: column;
@@ -904,11 +934,12 @@ body[data-theme=dark], body.dark {
height: 32px;
}
.aa-DetachedContainer .aa-SourceHeader {
- margin: 8px 0 8px 2px;
+ margin: calc((16 * 1 * 1px) / 2) 0 calc((16 * 1 * 1px) / 2) 2px;
+ margin: calc(calc(16 * 1 * 1px) / 2) 0 calc(calc(16 * 1 * 1px) / 2) 2px;
margin: var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px;
}
.aa-DetachedContainer .aa-Panel {
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-background-color-rgb), var(--aa-background-color-alpha));
border-radius: 0;
box-shadow: none;
@@ -936,7 +967,8 @@ body[data-theme=dark], body.dark {
flex-direction: row;
justify-content: space-between;
margin: 0;
- padding: 8px;
+ padding: calc((16 * 1 * 1px) / 2);
+ padding: calc(calc(16 * 1 * 1px) / 2);
padding: var(--aa-spacing-half);
}
.aa-DetachedCancelButton {
@@ -944,13 +976,15 @@ body[data-theme=dark], body.dark {
border: 0;
border-radius: 3px;
color: inherit;
- color: #262627;
+ color: rgba(38, 38, 39, 1);
color: rgba(var(--aa-text-color-rgb), var(--aa-text-color-alpha));
cursor: pointer;
font: inherit;
- margin: 0 0 0 8px;
+ margin: 0 0 0 calc((16 * 1 * 1px) / 2);
+ margin: 0 0 0 calc(calc(16 * 1 * 1px) / 2);
margin: 0 0 0 var(--aa-spacing-half);
- padding: 0 8px;
+ padding: 0 calc((16 * 1 * 1px) / 2);
+ padding: 0 calc(calc(16 * 1 * 1px) / 2);
padding: 0 var(--aa-spacing-half);
}
.aa-DetachedCancelButton:hover, .aa-DetachedCancelButton:focus {
@@ -971,15 +1005,19 @@ body[data-theme=dark], body.dark {
.aa-DetachedContainer--modal .aa-PanelLayout {
max-height: 500px;
max-height: var(--aa-detached-modal-max-height);
- padding-bottom: 8px;
+ padding-bottom: calc((16 * 1 * 1px) / 2);
+ padding-bottom: calc(calc(16 * 1 * 1px) / 2);
padding-bottom: var(--aa-spacing-half);
position: static;
}
+.aa-DetachedContainer--modal .aa-PanelLayout:empty {
+ display: none;
+}
-/* Search Button */
+/* Search Button*/
.aa-DetachedSearchButton {
align-items: center;
- background-color: white;
+ background-color: rgba(255, 255, 255, 1);
background-color: rgba(var(--aa-input-background-color-rgb), var(--aa-input-background-color-alpha));
border: 1px solid rgba(128, 126, 163, 0.8);
border: 1px solid rgba(var(--aa-input-border-color-rgb), var(--aa-input-border-color-alpha));
@@ -991,19 +1029,19 @@ body[data-theme=dark], body.dark {
font: inherit;
font-family: inherit;
font-family: var(--aa-font-family);
- font-size: 16px;
+ font-size: calc(16 * 1px);
font-size: var(--aa-font-size);
height: 44px;
height: var(--aa-search-input-height);
margin: 0;
- padding: 0 5.5px;
+ padding: 0 calc(44px / 8);
padding: 0 calc(var(--aa-search-input-height) / 8);
position: relative;
text-align: left;
width: 100%;
}
.aa-DetachedSearchButton:focus {
- border-color: #3e34d3;
+ border-color: rgba(62, 52, 211, 1);
border-color: rgba(var(--aa-primary-color-rgb), 1);
box-shadow: rgba(62, 52, 211, 0.2) 0 0 0 3px, inset rgba(62, 52, 211, 0.2) 0 0 0 2px;
box-shadow: rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 3px, inset rgba(var(--aa-primary-color-rgb), var(--aa-primary-color-alpha)) 0 0 0 2px;
@@ -1011,18 +1049,33 @@ body[data-theme=dark], body.dark {
}
.aa-DetachedSearchButtonIcon {
align-items: center;
- color: #3e34d3;
+ color: rgba(62, 52, 211, 1);
color: rgba(var(--aa-primary-color-rgb), 1);
cursor: auto;
cursor: initial;
display: flex;
+ flex-shrink: 0;
height: 100%;
justify-content: center;
- width: 36px;
+ width: calc(20px + (16 * 1 * 1px));
+ width: calc(20px + calc(16 * 1 * 1px));
width: calc(var(--aa-icon-size) + var(--aa-spacing));
}
-/* Remove scroll on `body` */
+.aa-DetachedSearchButtonQuery {
+ color: rgba(38, 38, 39, 1);
+ color: rgba(var(--aa-text-color-rgb), 1);
+ line-height: 1.25em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.aa-DetachedSearchButtonPlaceholder[hidden] {
+ display: none;
+}
+
+/* Remove scroll on `body`*/
.aa-Detached {
height: 100vh;
overflow: hidden;
@@ -1038,16 +1091,17 @@ body[data-theme=dark], body.dark {
position: fixed;
right: 0;
top: 0;
- z-index: 9998;
+ z-index: calc(9999 - 1);
z-index: calc(var(--aa-base-z-index) - 1);
}
-/*---------------- */
-/* 10. Gradients */
-/*---------------- */
+/*----------------*/
+/* 10. Gradients*/
+/*----------------*/
.aa-GradientTop,
.aa-GradientBottom {
- height: 8px;
+ height: calc((16 * 1 * 1px) / 2);
+ height: calc(calc(16 * 1 * 1px) / 2);
height: var(--aa-spacing-half);
left: 0;
pointer-events: none;
@@ -1058,24 +1112,26 @@ body[data-theme=dark], body.dark {
}
.aa-GradientTop {
- background-image: linear-gradient(white, rgba(255, 255, 255, 0));
+ background-image: linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
background-image: linear-gradient(rgba(var(--aa-background-color-rgb), 1), rgba(var(--aa-background-color-rgb), 0));
top: 0;
}
.aa-GradientBottom {
- background-image: linear-gradient(rgba(255, 255, 255, 0), white);
+ background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
background-image: linear-gradient(rgba(var(--aa-background-color-rgb), 0), rgba(var(--aa-background-color-rgb), 1));
- border-bottom-left-radius: 4px;
+ border-bottom-left-radius: calc((16 * 1 * 1px) / 4);
+ border-bottom-left-radius: calc(calc(16 * 1 * 1px) / 4);
border-bottom-left-radius: calc(var(--aa-spacing) / 4);
- border-bottom-right-radius: 4px;
+ border-bottom-right-radius: calc((16 * 1 * 1px) / 4);
+ border-bottom-right-radius: calc(calc(16 * 1 * 1px) / 4);
border-bottom-right-radius: calc(var(--aa-spacing) / 4);
bottom: 0;
}
-/*---------------- */
-/* 11. Utilities */
-/*---------------- */
+/*----------------*/
+/* 11. Utilities*/
+/*----------------*/
@media (hover: none) and (pointer: coarse) {
.aa-DesktopOnly {
display: none;
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.min.css b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.min.css
index e9afc8af..0f3ea225 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.min.css
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/dist/theme.min.css
@@ -1,2 +1,4 @@
-/*! @algolia/autocomplete-theme-classic 1.6.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
-:root{--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-rgb:119,119,163;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px rgba(35,38,59,0.1),0 6px 16px -4px rgba(35,38,59,0.15);--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb);--aa-scrollbar-thumb-background-color-alpha:1}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-icon-color-rgb:119,119,163;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-Form:focus-within{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*0.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}@media (hover:none) and (pointer:coarse){.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}}.aa-SubmitButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-LoadingIndicator[hidden]{display:none}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::-moz-placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:-ms-input-placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input::placeholder{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;background:none;border:0;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*0.83333 - .5px)}@media (hover:none) and (pointer:coarse){.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*0.66667 - .5px)}}.aa-ClearButton:focus,.aa-ClearButton:hover{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton[hidden]{display:none}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}.aa-Panel button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border-radius:9999px;border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-Source:empty{display:none}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{list-style:none;margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeader:empty{display:none}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,rgba(128,126,163,.14));background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),rgba(128,126,163,.14));border:1px solid rgba(128,126,163,.6);border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px rgba(76,69,88,.15);color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{align-items:center;border-radius:3px;cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{align-items:center;background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:3px;box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;grid-gap:8px;gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent:empty{display:none}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;grid-gap:4px;gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:rgba(128,126,163,.64);border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;grid-gap:8px;gap:8px;grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:rgba(245,223,77,.5);background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:rgba(62,52,211,.2);background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;grid-gap:4px;gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}@media (hover:none) and (pointer:coarse){.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}}.aa-ItemActionButton svg{color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);content:"";height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 rgba(128,126,163,.3);box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(hsla(0,0%,100%,0),rgba(128,126,163,.6));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));content:"";height:16px;height:var(--aa-spacing);left:0;opacity:.12;pointer-events:none;position:absolute;right:0;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px rgba(35,38,59,.1),0 6px 16px -4px rgba(35,38,59,.15);box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid rgba(128,126,163,.3);border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:inherit;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px rgba(128,126,163,.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128,126,163,.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:rgba(128,126,163,.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px rgba(62,52,211,.2),inset 0 0 0 2px rgba(62,52,211,.2);box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(115,114,129,.4);background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,hsla(0,0%,100%,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(hsla(0,0%,100%,0),#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}@media (hover:none) and (pointer:coarse){.aa-DesktopOnly{display:none}}@media (hover:hover){.aa-TouchOnly{display:none}}
\ No newline at end of file
+/*! @algolia/autocomplete-theme-classic 1.18.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */
+:root{--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-rgb:119,119,163;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px rgba(35,38,59,0.1),0 6px 16px -4px rgba(35,38,59,0.15);--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb);--aa-scrollbar-thumb-background-color-alpha:1}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-icon-color-rgb:119,119,163;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *{box-sizing:border-box}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:calc(16 * 1px);font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{align-items:center;background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128, 126, 163,0.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Form:focus-within{border-color:rgba(62, 52, 211,1);border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:rgba(62, 52, 211,0.2) 0 0 0 2px,inset rgba(62, 52, 211,0.2) 0 0 0 2px;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{color:rgba(62, 52, 211,1);color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:calc((16 * 1 * 1px)*0.75 - 1px);padding-left:calc(calc(16 * 1 * 1px)*0.75 - 1px);padding-left:calc(var(--aa-spacing)*0.75 - 1px);padding-right:calc((16 * 1 * 1px) / 2);padding-right:calc(calc(16 * 1 * 1px) / 2);padding-right:var(--aa-spacing-half);width:calc((16 * 1 * 1px)*1.75 + 20px - 1px);width:calc(calc(16 * 1 * 1px)*1.75 + 20px - 1px);width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}@media (hover:none) and (pointer:coarse){.aa-LoadingIndicator,.aa-SubmitButton{padding-left:calc(((16 * 1 * 1px) / 2)/2 - 1px);padding-left:calc(calc(calc(16 * 1 * 1px) / 2)/2 - 1px);padding-left:calc(var(--aa-spacing-half)/2 - 1px);width:calc(20px + (16 * 1 * 1px)*1.25 - 1px);width:calc(20px + calc(16 * 1 * 1px)*1.25 - 1px);width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}}.aa-SubmitButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-LoadingIndicator[hidden]{display:none}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::-moz-placeholder{color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input::placeholder{color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;background:none;border:0;color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 calc((16 * 1 * 1px)*0.83333 - .5px);padding:0 calc(calc(16 * 1 * 1px)*0.83333 - .5px);padding:0 calc(var(--aa-spacing)*0.83333 - .5px)}@media (hover:none) and (pointer:coarse){.aa-ClearButton{padding:0 calc((16 * 1 * 1px)*0.66667 - .5px);padding:0 calc(calc(16 * 1 * 1px)*0.66667 - .5px);padding:0 calc(var(--aa-spacing)*0.66667 - .5px)}}.aa-ClearButton:focus,.aa-ClearButton:hover{color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton[hidden]{display:none}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:calc((16 * 1 * 1px)/4);border-radius:calc(calc(16 * 1 * 1px)/4);border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px rgba(35, 38, 59, 0.1),
+ 0 6px 16px -4px rgba(35, 38, 59, 0.15);box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}.aa-Panel button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:calc((16 * 1 * 1px) / 2);padding:calc(calc(16 * 1 * 1px) / 2);padding:var(--aa-spacing-half);scrollbar-color:rgba(255, 255, 255,1) rgba(234, 234, 234,1);scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:rgba(234, 234, 234,1);background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border-radius:9999px;border:3px solid rgba(234, 234, 234,1);border:3px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-right-width:2px}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-Source:empty{display:none}.aa-SourceNoResults{font-size:1em;margin:0;padding:calc(16 * 1 * 1px);padding:var(--aa-spacing)}.aa-List{list-style:none;margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:calc((16 * 1 * 1px) / 2) .5em calc((16 * 1 * 1px) / 2) 0;margin:calc(calc(16 * 1 * 1px) / 2) .5em calc(calc(16 * 1 * 1px) / 2) 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeader:empty{display:none}.aa-SourceHeaderTitle{background:rgba(255, 255, 255,1);background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:rgba(62, 52, 211,1);color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 calc((16 * 1 * 1px) / 2) 0 0;padding:0 calc(calc(16 * 1 * 1px) / 2) 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid rgba(62, 52, 211,1);border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:calc((16 * 1 * 1px) / 2);top:calc(calc(16 * 1 * 1px) / 2);top:var(--aa-spacing-half);z-index:calc(9999 - 1);z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,rgba(255, 255, 255,1),rgba(128,126,163,.14));background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),rgba(128,126,163,.14));border:1px solid rgba(128, 126, 163,0.6);border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px rgba(76,69,88,.15);color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;-webkit-text-decoration:none;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid rgba(62, 52, 211,1);border:1px solid rgba(var(--aa-primary-color-rgb),1);color:rgba(62, 52, 211,1);color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{align-items:center;border-radius:3px;cursor:pointer;display:grid;min-height:calc((16 * 1 * 1px)*2.5);min-height:calc(calc(16 * 1 * 1px)*2.5);min-height:calc(var(--aa-spacing)*2.5);padding:calc(((16 * 1 * 1px) / 2)/2);padding:calc(calc(calc(16 * 1 * 1px) / 2)/2);padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179, 173, 214,0.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{align-items:center;background:rgba(255, 255, 255,1);background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:3px;box-shadow:inset 0 0 0 1px rgba(128, 126, 163,0.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:rgba(119, 119, 163,1);color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:calc(20px + ((16 * 1 * 1px) / 2));height:calc(20px + calc(calc(16 * 1 * 1px) / 2));height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);text-align:center;width:calc(20px + ((16 * 1 * 1px) / 2));width:calc(20px + calc(calc(16 * 1 * 1px) / 2));width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:calc(20px + ((16 * 1 * 1px) / 2) - 8px);max-height:calc(20px + calc(calc(16 * 1 * 1px) / 2) - 8px);max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:calc(20px + ((16 * 1 * 1px) / 2) - 8px);max-width:calc(20px + calc(calc(16 * 1 * 1px) / 2) - 8px);max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:calc((16 * 1 * 1px) / 2);padding:calc(calc(16 * 1 * 1px) / 2);padding:var(--aa-spacing-half)}.aa-ItemContent{align-items:center;cursor:pointer;display:grid;gap:calc((16 * 1 * 1px) / 2);gap:calc(calc(16 * 1 * 1px) / 2);grid-gap:calc((16 * 1 * 1px) / 2);grid-gap:calc(calc(16 * 1 * 1px) / 2);grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent:empty{display:none}.aa-ItemContent mark{background:none;color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle{display:block}.aa-ItemContent--indented{padding-left:calc(20px + (16 * 1 * 1px));padding-left:calc(20px + calc(16 * 1 * 1px));padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{display:grid;gap:calc(((16 * 1 * 1px) / 2)/2);gap:calc(calc(calc(16 * 1 * 1px) / 2)/2);grid-gap:calc(((16 * 1 * 1px) / 2)/2);grid-gap:calc(calc(calc(16 * 1 * 1px) / 2)/2);grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:rgba(128, 126, 163,.64);border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:calc((16 * 1 * 1px) / 2);margin-left:calc(calc(16 * 1 * 1px) / 2);margin-left:var(--aa-spacing-half);margin-right:calc(((16 * 1 * 1px) / 2)/2);margin-right:calc(calc(calc(16 * 1 * 1px) / 2)/2);margin-right:calc(var(--aa-spacing-half)/2);width:calc(((16 * 1 * 1px) / 2) + 2px);width:calc(calc(calc(16 * 1 * 1px) / 2) + 2px);width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{align-items:center;color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:calc((16 * 1 * 1px) / 2);gap:calc(calc(16 * 1 * 1px) / 2);grid-gap:calc((16 * 1 * 1px) / 2);grid-gap:calc(calc(16 * 1 * 1px) / 2);grid-gap:var(--aa-spacing-half);gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:calc((16 * 1 * 1px) / 2);height:calc(calc(16 * 1 * 1px) / 2);height:var(--aa-spacing-half);width:calc((16 * 1 * 1px) / 2);width:calc(calc(16 * 1 * 1px) / 2);width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:rgba(128, 126, 163,1);color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty{display:none}.aa-ItemContentDescription mark{background:rgba(245, 223, 77,0.5);background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:rgba(62, 52, 211,0.2);background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{align-items:center;color:inherit;display:grid;gap:calc(((16 * 1 * 1px) / 2)/2);gap:calc(calc(calc(16 * 1 * 1px) / 2)/2);grid-gap:calc(((16 * 1 * 1px) / 2)/2);grid-gap:calc(calc(calc(16 * 1 * 1px) / 2)/2);grid-gap:calc(var(--aa-spacing-half)/2);gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;-webkit-text-decoration:none;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 calc((16 * 1 * 1px)/-3);margin:0 calc(calc(16 * 1 * 1px)/-3);margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}@media (hover:none) and (pointer:coarse){.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}}.aa-ItemActionButton svg{color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:0;margin:calc(calc(16 * 1 * 1px)/3);margin:calc(var(--aa-spacing)/3);stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:rgba(62, 52, 211,1);background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:calc((16 * 1 * 1px) / 2) calc(16 * 1 * 1px);padding:calc(calc(16 * 1 * 1px) / 2) calc(16 * 1 * 1px);padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(rgba(255, 255, 255,1),rgba(255, 255, 255,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:calc(((16 * 1 * 1px) / 2)*-1);bottom:calc(calc(calc(16 * 1 * 1px) / 2)*-1);bottom:calc(var(--aa-spacing-half)*-1);content:"";height:calc((16 * 1 * 1px) / 2);height:calc(calc(16 * 1 * 1px) / 2);height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 rgba(128, 126, 163,0.3);box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:calc(16 * 1 * 1px);padding:var(--aa-spacing);position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter:after{background-image:linear-gradient(rgba(255, 255, 255,0),rgba(128, 126, 163,0.6));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));content:"";height:calc(16 * 1 * 1px);height:var(--aa-spacing);left:0;opacity:.12;pointer-events:none;position:absolute;right:0;top:calc((16 * 1 * 1px)*-1);top:calc(calc(16 * 1 * 1px)*-1);top:calc(var(--aa-spacing)*-1);z-index:calc(9999 - 1);z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:rgba(255, 255, 255,1);background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px rgba(35, 38, 59, 0.1),
+ 0 6px 16px -4px rgba(35, 38, 59, 0.15);box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:calc((16 * 1 * 1px) / 2) 0 calc((16 * 1 * 1px) / 2) 2px;margin:calc(calc(16 * 1 * 1px) / 2) 0 calc(calc(16 * 1 * 1px) / 2) 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid rgba(128, 126, 163,0.3);border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:calc((16 * 1 * 1px) / 2);padding:calc(calc(16 * 1 * 1px) / 2);padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:inherit;color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 calc((16 * 1 * 1px) / 2);margin:0 0 0 calc(calc(16 * 1 * 1px) / 2);margin:0 0 0 var(--aa-spacing-half);padding:0 calc((16 * 1 * 1px) / 2);padding:0 calc(calc(16 * 1 * 1px) / 2);padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px rgba(128, 126, 163,0.3);box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:calc((16 * 1 * 1px) / 2);padding-bottom:calc(calc(16 * 1 * 1px) / 2);padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedContainer--modal .aa-PanelLayout:empty{display:none}.aa-DetachedSearchButton{align-items:center;background-color:rgba(255, 255, 255,1);background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid rgba(128, 126, 163,0.8);border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:rgba(128, 126, 163,0.6);color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:calc(16 * 1px);font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 calc(44px/8);padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:rgba(62, 52, 211,1);border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:rgba(62, 52, 211,0.2) 0 0 0 3px,inset rgba(62, 52, 211,0.2) 0 0 0 2px;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:medium none currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:rgba(62, 52, 211,1);color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;flex-shrink:0;height:100%;justify-content:center;width:calc(20px + (16 * 1 * 1px));width:calc(20px + calc(16 * 1 * 1px));width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-DetachedSearchButtonQuery{color:rgba(38, 38, 39,1);color:rgba(var(--aa-text-color-rgb),1);line-height:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-DetachedSearchButtonPlaceholder[hidden]{display:none}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(115, 114, 129,0.4);background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:calc(9999 - 1);z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:calc((16 * 1 * 1px) / 2);height:calc(calc(16 * 1 * 1px) / 2);height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(rgba(255, 255, 255,1),rgba(255, 255, 255,0));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(rgba(255, 255, 255,0),rgba(255, 255, 255,1));background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:calc((16 * 1 * 1px)/4);border-bottom-left-radius:calc(calc(16 * 1 * 1px)/4);border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:calc((16 * 1 * 1px)/4);border-bottom-right-radius:calc(calc(16 * 1 * 1px)/4);border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}@media (hover:none) and (pointer:coarse){.aa-DesktopOnly{display:none}}@media (hover:hover){.aa-TouchOnly{display:none}}
\ No newline at end of file
diff --git a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/package.json b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/package.json
index 70e9ef46..4115106f 100644
--- a/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/package.json
+++ b/Web/Resgrid.Web/wwwroot/lib/algolia/autocomplete-theme-classic/package.json
@@ -1,7 +1,7 @@
{
"name": "@algolia/autocomplete-theme-classic",
"description": "Classic theme for Algolia Autocomplete.",
- "version": "1.6.3",
+ "version": "1.18.1",
"license": "MIT",
"homepage": "https://github.com/algolia/autocomplete",
"repository": "algolia/autocomplete",
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/.npmignore b/Web/Resgrid.Web/wwwroot/lib/font-awesome/.npmignore
deleted file mode 100644
index 54a691f8..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/.npmignore
+++ /dev/null
@@ -1,42 +0,0 @@
-*.pyc
-*.egg-info
-*.db
-*.db.old
-*.swp
-*.db-journal
-
-.coverage
-.DS_Store
-.installed.cfg
-_gh_pages/*
-
-.idea/*
-.svn/*
-src/website/static/*
-src/website/media/*
-
-bin
-cfcache
-develop-eggs
-dist
-downloads
-eggs
-parts
-tmp
-.sass-cache
-node_modules
-
-src/website/settingslocal.py
-stunnel.log
-
-.ruby-version
-
-# don't need these in the npm package.
-src/
-_config.yml
-bower.json
-component.json
-composer.json
-CONTRIBUTING.md
-Gemfile
-Gemfile.lock
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/HELP-US-OUT.txt b/Web/Resgrid.Web/wwwroot/lib/font-awesome/HELP-US-OUT.txt
deleted file mode 100644
index 83d083dd..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/HELP-US-OUT.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
-Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
-comprehensive icon sets or copy and paste your own.
-
-Please. Check it out.
-
--Dave Gandy
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/README.md b/Web/Resgrid.Web/wwwroot/lib/font-awesome/README.md
deleted file mode 100644
index 3e1c1cfc..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/README.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# [Font Awesome v4.7.0](http://fontawesome.io)
-### The iconic font and CSS framework
-
-Font Awesome is a full suite of 675 pictographic icons for easy scalable vector graphics on websites,
-created and maintained by [Dave Gandy](https://twitter.com/davegandy).
-Stay up to date with the latest release and announcements on Twitter:
-[@fontawesome](http://twitter.com/fontawesome).
-
-Get started at http://fontawesome.io!
-
-## License
-- The Font Awesome font is licensed under the SIL OFL 1.1:
- - http://scripts.sil.org/OFL
-- Font Awesome CSS, LESS, and Sass files are licensed under the MIT License:
- - https://opensource.org/licenses/mit-license.html
-- The Font Awesome documentation is licensed under the CC BY 3.0 License:
- - http://creativecommons.org/licenses/by/3.0/
-- Attribution is no longer required as of Font Awesome 3.0, but much appreciated:
- - `Font Awesome by Dave Gandy - http://fontawesome.io`
-- Full details: http://fontawesome.io/license/
-
-## Changelog
-- [v4.7.0 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/10012)
-- [v4.6.3 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9189)
-- [v4.6.3 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9189)
-- [v4.6.2 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9117)
-- [v4.6.1 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/8962)
-- [v4.6.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.6.0+is%3Aclosed)
-- [v4.5.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.5.0+is%3Aclosed)
-- [v4.4.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.4.0+is%3Aclosed)
-- [v4.3.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.3.0+is%3Aclosed)
-- [v4.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=12&page=1&state=closed)
-- [v4.1.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=6&page=1&state=closed)
-- [v4.0.3 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=9&page=1&state=closed)
-- [v4.0.2 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=8&page=1&state=closed)
-- [v4.0.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=7&page=1&state=closed)
-- [v4.0.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=2&page=1&state=closed)
-- [v3.2.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=5&page=1&state=closed)
-- [v3.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=3&page=1&state=closed)
-- [v3.1.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=4&page=1&state=closed)
-- v3.1.0 - Added 54 icons, icon stacking styles, flipping and rotating icons, removed Sass support
-- v3.0.2 - much improved rendering and alignment in IE7
-- v3.0.1 - much improved rendering in webkit, various bug fixes
-- v3.0.0 - all icons redesigned from scratch, optimized for Bootstrap's 14px default
-
-## Contributing
-
-Please read through our [contributing guidelines](https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md).
-Included are directions for opening issues, coding standards, and notes on development.
-
-## Versioning
-
-Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered
-with the following format:
-
-`..`
-
-And constructed with the following guidelines:
-
-* Breaking backward compatibility bumps the major (and resets the minor and patch)
-* New additions, including new icons, without breaking backward compatibility bumps the minor (and resets the patch)
-* Bug fixes, changes to brand logos, and misc changes bumps the patch
-
-For more information on SemVer, please visit http://semver.org.
-
-## Author
-- Email: dave@fontawesome.io
-- Twitter: http://twitter.com/davegandy
-- GitHub: https://github.com/davegandy
-
-## Component
-To include as a [component](https://github.com/componentjs/component), just run
-
- $ component install FortAwesome/Font-Awesome
-
-Or add
-
- "FortAwesome/Font-Awesome": "*"
-
-to the `dependencies` in your `component.json`.
-
-## Hacking on Font Awesome
-
-**Before you can build the project**, you must first have the following installed:
-
-- [Ruby](https://www.ruby-lang.org/en/)
-- Ruby Development Headers
- - **Ubuntu:** `sudo apt-get install ruby-dev` *(Only if you're __NOT__ using `rbenv` or `rvm`)*
- - **Windows:** [DevKit](http://rubyinstaller.org/)
-- [Bundler](http://bundler.io/) (Run `gem install bundler` to install).
-- [Node Package Manager (AKA NPM)](https://docs.npmjs.com/getting-started/installing-node)
-- [Less](http://lesscss.org/) (Run `npm install -g less` to install).
-- [Less Plugin: Clean CSS](https://github.com/less/less-plugin-clean-css) (Run `npm install -g less-plugin-clean-css` to install).
-
-From the root of the repository, install the tools used to develop.
-
- $ bundle install
- $ npm install
-
-Build the project and documentation:
-
- $ bundle exec jekyll build
-
-Or serve it on a local server on http://localhost:7998/Font-Awesome/:
-
- $ bundle exec jekyll -w serve
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/animated.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/animated.less
deleted file mode 100644
index 66ad52a5..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/animated.less
+++ /dev/null
@@ -1,34 +0,0 @@
-// Animated Icons
-// --------------------------
-
-.@{fa-css-prefix}-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear;
-}
-
-.@{fa-css-prefix}-pulse {
- -webkit-animation: fa-spin 1s infinite steps(8);
- animation: fa-spin 1s infinite steps(8);
-}
-
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/bordered-pulled.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/bordered-pulled.less
deleted file mode 100644
index f1c8ad75..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/bordered-pulled.less
+++ /dev/null
@@ -1,25 +0,0 @@
-// Bordered & Pulled
-// -------------------------
-
-.@{fa-css-prefix}-border {
- padding: .2em .25em .15em;
- border: solid .08em @fa-border-color;
- border-radius: .1em;
-}
-
-.@{fa-css-prefix}-pull-left { float: left; }
-.@{fa-css-prefix}-pull-right { float: right; }
-
-.@{fa-css-prefix} {
- &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
- &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
-}
-
-/* Deprecated as of 4.4.0 */
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-.@{fa-css-prefix} {
- &.pull-left { margin-right: .3em; }
- &.pull-right { margin-left: .3em; }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/core.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/core.less
deleted file mode 100644
index c577ac84..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/core.less
+++ /dev/null
@@ -1,12 +0,0 @@
-// Base Class Definition
-// -------------------------
-
-.@{fa-css-prefix} {
- display: inline-block;
- font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
- font-size: inherit; // can't have font-size inherit on line above, so need to override
- text-rendering: auto; // optimizelegibility throws things off #1094
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/fixed-width.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/fixed-width.less
deleted file mode 100644
index 110289f2..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/fixed-width.less
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.@{fa-css-prefix}-fw {
- width: (18em / 14);
- text-align: center;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/font-awesome.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/font-awesome.less
deleted file mode 100644
index c3677def..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/font-awesome.less
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-@import "variables.less";
-@import "mixins.less";
-@import "path.less";
-@import "core.less";
-@import "larger.less";
-@import "fixed-width.less";
-@import "list.less";
-@import "bordered-pulled.less";
-@import "animated.less";
-@import "rotated-flipped.less";
-@import "stacked.less";
-@import "icons.less";
-@import "screen-reader.less";
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/icons.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/icons.less
deleted file mode 100644
index 159d6004..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/icons.less
+++ /dev/null
@@ -1,789 +0,0 @@
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- readers do not read off random characters that represent icons */
-
-.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
-.@{fa-css-prefix}-music:before { content: @fa-var-music; }
-.@{fa-css-prefix}-search:before { content: @fa-var-search; }
-.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
-.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
-.@{fa-css-prefix}-star:before { content: @fa-var-star; }
-.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
-.@{fa-css-prefix}-user:before { content: @fa-var-user; }
-.@{fa-css-prefix}-film:before { content: @fa-var-film; }
-.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
-.@{fa-css-prefix}-th:before { content: @fa-var-th; }
-.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
-.@{fa-css-prefix}-check:before { content: @fa-var-check; }
-.@{fa-css-prefix}-remove:before,
-.@{fa-css-prefix}-close:before,
-.@{fa-css-prefix}-times:before { content: @fa-var-times; }
-.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
-.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
-.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
-.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
-.@{fa-css-prefix}-gear:before,
-.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
-.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
-.@{fa-css-prefix}-home:before { content: @fa-var-home; }
-.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
-.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
-.@{fa-css-prefix}-road:before { content: @fa-var-road; }
-.@{fa-css-prefix}-download:before { content: @fa-var-download; }
-.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
-.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
-.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
-.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
-.@{fa-css-prefix}-rotate-right:before,
-.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
-.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
-.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
-.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
-.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
-.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
-.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
-.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
-.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
-.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
-.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
-.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
-.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
-.@{fa-css-prefix}-book:before { content: @fa-var-book; }
-.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
-.@{fa-css-prefix}-print:before { content: @fa-var-print; }
-.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
-.@{fa-css-prefix}-font:before { content: @fa-var-font; }
-.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
-.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
-.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
-.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
-.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
-.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
-.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
-.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
-.@{fa-css-prefix}-list:before { content: @fa-var-list; }
-.@{fa-css-prefix}-dedent:before,
-.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
-.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
-.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
-.@{fa-css-prefix}-photo:before,
-.@{fa-css-prefix}-image:before,
-.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
-.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
-.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
-.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
-.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
-.@{fa-css-prefix}-edit:before,
-.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
-.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
-.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
-.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
-.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
-.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
-.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
-.@{fa-css-prefix}-play:before { content: @fa-var-play; }
-.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
-.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
-.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
-.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
-.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
-.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
-.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
-.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
-.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
-.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
-.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
-.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
-.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
-.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
-.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
-.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
-.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
-.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
-.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
-.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
-.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
-.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
-.@{fa-css-prefix}-mail-forward:before,
-.@{fa-css-prefix}-share:before { content: @fa-var-share; }
-.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
-.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
-.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
-.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
-.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
-.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
-.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
-.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
-.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
-.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
-.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
-.@{fa-css-prefix}-warning:before,
-.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
-.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
-.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
-.@{fa-css-prefix}-random:before { content: @fa-var-random; }
-.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
-.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
-.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
-.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
-.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
-.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
-.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
-.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
-.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
-.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
-.@{fa-css-prefix}-bar-chart-o:before,
-.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }
-.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
-.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
-.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
-.@{fa-css-prefix}-key:before { content: @fa-var-key; }
-.@{fa-css-prefix}-gears:before,
-.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
-.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
-.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
-.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
-.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
-.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
-.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
-.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
-.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
-.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
-.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
-.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
-.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
-.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
-.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
-.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
-.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
-.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
-.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
-.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
-.@{fa-css-prefix}-facebook-f:before,
-.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
-.@{fa-css-prefix}-github:before { content: @fa-var-github; }
-.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
-.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
-.@{fa-css-prefix}-feed:before,
-.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
-.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
-.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
-.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
-.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
-.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
-.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
-.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
-.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
-.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
-.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
-.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
-.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
-.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
-.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
-.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
-.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
-.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
-.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
-.@{fa-css-prefix}-group:before,
-.@{fa-css-prefix}-users:before { content: @fa-var-users; }
-.@{fa-css-prefix}-chain:before,
-.@{fa-css-prefix}-link:before { content: @fa-var-link; }
-.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
-.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
-.@{fa-css-prefix}-cut:before,
-.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
-.@{fa-css-prefix}-copy:before,
-.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
-.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
-.@{fa-css-prefix}-save:before,
-.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
-.@{fa-css-prefix}-square:before { content: @fa-var-square; }
-.@{fa-css-prefix}-navicon:before,
-.@{fa-css-prefix}-reorder:before,
-.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
-.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
-.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
-.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
-.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
-.@{fa-css-prefix}-table:before { content: @fa-var-table; }
-.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
-.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
-.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
-.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
-.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
-.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
-.@{fa-css-prefix}-money:before { content: @fa-var-money; }
-.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
-.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
-.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
-.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
-.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
-.@{fa-css-prefix}-unsorted:before,
-.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
-.@{fa-css-prefix}-sort-down:before,
-.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
-.@{fa-css-prefix}-sort-up:before,
-.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
-.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
-.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
-.@{fa-css-prefix}-rotate-left:before,
-.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
-.@{fa-css-prefix}-legal:before,
-.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
-.@{fa-css-prefix}-dashboard:before,
-.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
-.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
-.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
-.@{fa-css-prefix}-flash:before,
-.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
-.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
-.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
-.@{fa-css-prefix}-paste:before,
-.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
-.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
-.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
-.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
-.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
-.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
-.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
-.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
-.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
-.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
-.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
-.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
-.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
-.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
-.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
-.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
-.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
-.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
-.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
-.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
-.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
-.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
-.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
-.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
-.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
-.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
-.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
-.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
-.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
-.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
-.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
-.@{fa-css-prefix}-mobile-phone:before,
-.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
-.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
-.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
-.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
-.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
-.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
-.@{fa-css-prefix}-mail-reply:before,
-.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
-.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
-.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
-.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
-.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
-.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
-.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
-.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
-.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
-.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
-.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
-.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
-.@{fa-css-prefix}-code:before { content: @fa-var-code; }
-.@{fa-css-prefix}-mail-reply-all:before,
-.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
-.@{fa-css-prefix}-star-half-empty:before,
-.@{fa-css-prefix}-star-half-full:before,
-.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
-.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
-.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
-.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
-.@{fa-css-prefix}-unlink:before,
-.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
-.@{fa-css-prefix}-question:before { content: @fa-var-question; }
-.@{fa-css-prefix}-info:before { content: @fa-var-info; }
-.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
-.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
-.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
-.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
-.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
-.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
-.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
-.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
-.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
-.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
-.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
-.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
-.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
-.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
-.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
-.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
-.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
-.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
-.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
-.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
-.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
-.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
-.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
-.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
-.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
-.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
-.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
-.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
-.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
-.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
-.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
-.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
-.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
-.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
-.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
-.@{fa-css-prefix}-toggle-down:before,
-.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
-.@{fa-css-prefix}-toggle-up:before,
-.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
-.@{fa-css-prefix}-toggle-right:before,
-.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
-.@{fa-css-prefix}-euro:before,
-.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
-.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
-.@{fa-css-prefix}-dollar:before,
-.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
-.@{fa-css-prefix}-rupee:before,
-.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
-.@{fa-css-prefix}-cny:before,
-.@{fa-css-prefix}-rmb:before,
-.@{fa-css-prefix}-yen:before,
-.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
-.@{fa-css-prefix}-ruble:before,
-.@{fa-css-prefix}-rouble:before,
-.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
-.@{fa-css-prefix}-won:before,
-.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
-.@{fa-css-prefix}-bitcoin:before,
-.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
-.@{fa-css-prefix}-file:before { content: @fa-var-file; }
-.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
-.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
-.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
-.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
-.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
-.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
-.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
-.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
-.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
-.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
-.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
-.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
-.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
-.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
-.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
-.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
-.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
-.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
-.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
-.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
-.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
-.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
-.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
-.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
-.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
-.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
-.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
-.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
-.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
-.@{fa-css-prefix}-android:before { content: @fa-var-android; }
-.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
-.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
-.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
-.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
-.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
-.@{fa-css-prefix}-female:before { content: @fa-var-female; }
-.@{fa-css-prefix}-male:before { content: @fa-var-male; }
-.@{fa-css-prefix}-gittip:before,
-.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
-.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
-.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
-.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
-.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
-.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
-.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
-.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
-.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
-.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
-.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
-.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
-.@{fa-css-prefix}-toggle-left:before,
-.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
-.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
-.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
-.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
-.@{fa-css-prefix}-turkish-lira:before,
-.@{fa-css-prefix}-try:before { content: @fa-var-try; }
-.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
-.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
-.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
-.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
-.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
-.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
-.@{fa-css-prefix}-institution:before,
-.@{fa-css-prefix}-bank:before,
-.@{fa-css-prefix}-university:before { content: @fa-var-university; }
-.@{fa-css-prefix}-mortar-board:before,
-.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
-.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
-.@{fa-css-prefix}-google:before { content: @fa-var-google; }
-.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
-.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
-.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
-.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
-.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
-.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
-.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
-.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
-.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
-.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
-.@{fa-css-prefix}-language:before { content: @fa-var-language; }
-.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
-.@{fa-css-prefix}-building:before { content: @fa-var-building; }
-.@{fa-css-prefix}-child:before { content: @fa-var-child; }
-.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
-.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }
-.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
-.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
-.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
-.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
-.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
-.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
-.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
-.@{fa-css-prefix}-automobile:before,
-.@{fa-css-prefix}-car:before { content: @fa-var-car; }
-.@{fa-css-prefix}-cab:before,
-.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
-.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
-.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
-.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
-.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
-.@{fa-css-prefix}-database:before { content: @fa-var-database; }
-.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }
-.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }
-.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }
-.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }
-.@{fa-css-prefix}-file-photo-o:before,
-.@{fa-css-prefix}-file-picture-o:before,
-.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }
-.@{fa-css-prefix}-file-zip-o:before,
-.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }
-.@{fa-css-prefix}-file-sound-o:before,
-.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }
-.@{fa-css-prefix}-file-movie-o:before,
-.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }
-.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }
-.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
-.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
-.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
-.@{fa-css-prefix}-life-bouy:before,
-.@{fa-css-prefix}-life-buoy:before,
-.@{fa-css-prefix}-life-saver:before,
-.@{fa-css-prefix}-support:before,
-.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
-.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }
-.@{fa-css-prefix}-ra:before,
-.@{fa-css-prefix}-resistance:before,
-.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
-.@{fa-css-prefix}-ge:before,
-.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
-.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
-.@{fa-css-prefix}-git:before { content: @fa-var-git; }
-.@{fa-css-prefix}-y-combinator-square:before,
-.@{fa-css-prefix}-yc-square:before,
-.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
-.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
-.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
-.@{fa-css-prefix}-wechat:before,
-.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
-.@{fa-css-prefix}-send:before,
-.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
-.@{fa-css-prefix}-send-o:before,
-.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }
-.@{fa-css-prefix}-history:before { content: @fa-var-history; }
-.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }
-.@{fa-css-prefix}-header:before { content: @fa-var-header; }
-.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
-.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }
-.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
-.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
-.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
-.@{fa-css-prefix}-soccer-ball-o:before,
-.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }
-.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
-.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
-.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
-.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
-.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
-.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
-.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }
-.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
-.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
-.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
-.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
-.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
-.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
-.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
-.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
-.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
-.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
-.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
-.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }
-.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
-.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
-.@{fa-css-prefix}-at:before { content: @fa-var-at; }
-.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }
-.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
-.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
-.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }
-.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }
-.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }
-.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
-.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
-.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
-.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
-.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
-.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
-.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
-.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
-.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }
-.@{fa-css-prefix}-shekel:before,
-.@{fa-css-prefix}-sheqel:before,
-.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }
-.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }
-.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
-.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
-.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
-.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
-.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
-.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
-.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
-.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
-.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
-.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
-.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
-.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }
-.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
-.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
-.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
-.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
-.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
-.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
-.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
-.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
-.@{fa-css-prefix}-intersex:before,
-.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
-.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
-.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
-.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
-.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
-.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
-.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
-.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
-.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
-.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
-.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }
-.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
-.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
-.@{fa-css-prefix}-server:before { content: @fa-var-server; }
-.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
-.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
-.@{fa-css-prefix}-hotel:before,
-.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
-.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
-.@{fa-css-prefix}-train:before { content: @fa-var-train; }
-.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
-.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
-.@{fa-css-prefix}-yc:before,
-.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
-.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
-.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
-.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
-.@{fa-css-prefix}-battery-4:before,
-.@{fa-css-prefix}-battery:before,
-.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
-.@{fa-css-prefix}-battery-3:before,
-.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
-.@{fa-css-prefix}-battery-2:before,
-.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
-.@{fa-css-prefix}-battery-1:before,
-.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
-.@{fa-css-prefix}-battery-0:before,
-.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
-.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
-.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
-.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
-.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
-.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
-.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }
-.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
-.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
-.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
-.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
-.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }
-.@{fa-css-prefix}-hourglass-1:before,
-.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
-.@{fa-css-prefix}-hourglass-2:before,
-.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
-.@{fa-css-prefix}-hourglass-3:before,
-.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
-.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
-.@{fa-css-prefix}-hand-grab-o:before,
-.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }
-.@{fa-css-prefix}-hand-stop-o:before,
-.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }
-.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }
-.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }
-.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }
-.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }
-.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }
-.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
-.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
-.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
-.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
-.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
-.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
-.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
-.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
-.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
-.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
-.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
-.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
-.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
-.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
-.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
-.@{fa-css-prefix}-tv:before,
-.@{fa-css-prefix}-television:before { content: @fa-var-television; }
-.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
-.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
-.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
-.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }
-.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }
-.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }
-.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }
-.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
-.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
-.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
-.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }
-.@{fa-css-prefix}-map:before { content: @fa-var-map; }
-.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }
-.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }
-.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
-.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
-.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
-.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
-.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
-.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
-.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }
-.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
-.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
-.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
-.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
-.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
-.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
-.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
-.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
-.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }
-.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
-.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }
-.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
-.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
-.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
-.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
-.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
-.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
-.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
-.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
-.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
-.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
-.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
-.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }
-.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }
-.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
-.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
-.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }
-.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
-.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
-.@{fa-css-prefix}-asl-interpreting:before,
-.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
-.@{fa-css-prefix}-deafness:before,
-.@{fa-css-prefix}-hard-of-hearing:before,
-.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
-.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
-.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
-.@{fa-css-prefix}-signing:before,
-.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
-.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
-.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
-.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
-.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
-.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
-.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
-.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
-.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
-.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
-.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
-.@{fa-css-prefix}-google-plus-circle:before,
-.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }
-.@{fa-css-prefix}-fa:before,
-.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
-.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }
-.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
-.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }
-.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
-.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
-.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }
-.@{fa-css-prefix}-vcard:before,
-.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
-.@{fa-css-prefix}-vcard-o:before,
-.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }
-.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
-.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }
-.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }
-.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
-.@{fa-css-prefix}-drivers-license:before,
-.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
-.@{fa-css-prefix}-drivers-license-o:before,
-.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }
-.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
-.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
-.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
-.@{fa-css-prefix}-thermometer-4:before,
-.@{fa-css-prefix}-thermometer:before,
-.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
-.@{fa-css-prefix}-thermometer-3:before,
-.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
-.@{fa-css-prefix}-thermometer-2:before,
-.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
-.@{fa-css-prefix}-thermometer-1:before,
-.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
-.@{fa-css-prefix}-thermometer-0:before,
-.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
-.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
-.@{fa-css-prefix}-bathtub:before,
-.@{fa-css-prefix}-s15:before,
-.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
-.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
-.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
-.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
-.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
-.@{fa-css-prefix}-times-rectangle:before,
-.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
-.@{fa-css-prefix}-times-rectangle-o:before,
-.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }
-.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
-.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
-.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
-.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
-.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
-.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }
-.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
-.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }
-.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
-.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
-.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/larger.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/larger.less
deleted file mode 100644
index c9d64677..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/larger.less
+++ /dev/null
@@ -1,13 +0,0 @@
-// Icon Sizes
-// -------------------------
-
-/* makes the font 33% larger relative to the icon container */
-.@{fa-css-prefix}-lg {
- font-size: (4em / 3);
- line-height: (3em / 4);
- vertical-align: -15%;
-}
-.@{fa-css-prefix}-2x { font-size: 2em; }
-.@{fa-css-prefix}-3x { font-size: 3em; }
-.@{fa-css-prefix}-4x { font-size: 4em; }
-.@{fa-css-prefix}-5x { font-size: 5em; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/list.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/list.less
deleted file mode 100644
index 0b440382..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/list.less
+++ /dev/null
@@ -1,19 +0,0 @@
-// List Icons
-// -------------------------
-
-.@{fa-css-prefix}-ul {
- padding-left: 0;
- margin-left: @fa-li-width;
- list-style-type: none;
- > li { position: relative; }
-}
-.@{fa-css-prefix}-li {
- position: absolute;
- left: -@fa-li-width;
- width: @fa-li-width;
- top: (2em / 14);
- text-align: center;
- &.@{fa-css-prefix}-lg {
- left: (-@fa-li-width + (4em / 14));
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/mixins.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/mixins.less
deleted file mode 100644
index beef231d..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/mixins.less
+++ /dev/null
@@ -1,60 +0,0 @@
-// Mixins
-// --------------------------
-
-.fa-icon() {
- display: inline-block;
- font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
- font-size: inherit; // can't have font-size inherit on line above, so need to override
- text-rendering: auto; // optimizelegibility throws things off #1094
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
-}
-
-.fa-icon-rotate(@degrees, @rotation) {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
- -webkit-transform: rotate(@degrees);
- -ms-transform: rotate(@degrees);
- transform: rotate(@degrees);
-}
-
-.fa-icon-flip(@horiz, @vert, @rotation) {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
- -webkit-transform: scale(@horiz, @vert);
- -ms-transform: scale(@horiz, @vert);
- transform: scale(@horiz, @vert);
-}
-
-
-// Only display content to screen readers. A la Bootstrap 4.
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-
-.sr-only() {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0,0,0,0);
- border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
-.sr-only-focusable() {
- &:active,
- &:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/path.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/path.less
deleted file mode 100644
index 835be41f..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/path.less
+++ /dev/null
@@ -1,15 +0,0 @@
-/* FONT PATH
- * -------------------------- */
-
-@font-face {
- font-family: 'FontAwesome';
- src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
- src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
- url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
- url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
- url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
- url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
- // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
- font-weight: normal;
- font-style: normal;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/rotated-flipped.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/rotated-flipped.less
deleted file mode 100644
index f6ba8147..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/rotated-flipped.less
+++ /dev/null
@@ -1,20 +0,0 @@
-// Rotated & Flipped Icons
-// -------------------------
-
-.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
-.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
-.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
-
-.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
-.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
-
-// Hook for IE8-9
-// -------------------------
-
-:root .@{fa-css-prefix}-rotate-90,
-:root .@{fa-css-prefix}-rotate-180,
-:root .@{fa-css-prefix}-rotate-270,
-:root .@{fa-css-prefix}-flip-horizontal,
-:root .@{fa-css-prefix}-flip-vertical {
- filter: none;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/screen-reader.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/screen-reader.less
deleted file mode 100644
index 11c18819..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/screen-reader.less
+++ /dev/null
@@ -1,5 +0,0 @@
-// Screen Readers
-// -------------------------
-
-.sr-only { .sr-only(); }
-.sr-only-focusable { .sr-only-focusable(); }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/stacked.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/stacked.less
deleted file mode 100644
index fc53fb0e..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/stacked.less
+++ /dev/null
@@ -1,20 +0,0 @@
-// Stacked Icons
-// -------------------------
-
-.@{fa-css-prefix}-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle;
-}
-.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center;
-}
-.@{fa-css-prefix}-stack-1x { line-height: inherit; }
-.@{fa-css-prefix}-stack-2x { font-size: 2em; }
-.@{fa-css-prefix}-inverse { color: @fa-inverse; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/variables.less b/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/variables.less
deleted file mode 100644
index 7ddbbc01..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/less/variables.less
+++ /dev/null
@@ -1,800 +0,0 @@
-// Variables
-// --------------------------
-
-@fa-font-path: "../fonts";
-@fa-font-size-base: 14px;
-@fa-line-height-base: 1;
-//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly
-@fa-css-prefix: fa;
-@fa-version: "4.7.0";
-@fa-border-color: #eee;
-@fa-inverse: #fff;
-@fa-li-width: (30em / 14);
-
-@fa-var-500px: "\f26e";
-@fa-var-address-book: "\f2b9";
-@fa-var-address-book-o: "\f2ba";
-@fa-var-address-card: "\f2bb";
-@fa-var-address-card-o: "\f2bc";
-@fa-var-adjust: "\f042";
-@fa-var-adn: "\f170";
-@fa-var-align-center: "\f037";
-@fa-var-align-justify: "\f039";
-@fa-var-align-left: "\f036";
-@fa-var-align-right: "\f038";
-@fa-var-amazon: "\f270";
-@fa-var-ambulance: "\f0f9";
-@fa-var-american-sign-language-interpreting: "\f2a3";
-@fa-var-anchor: "\f13d";
-@fa-var-android: "\f17b";
-@fa-var-angellist: "\f209";
-@fa-var-angle-double-down: "\f103";
-@fa-var-angle-double-left: "\f100";
-@fa-var-angle-double-right: "\f101";
-@fa-var-angle-double-up: "\f102";
-@fa-var-angle-down: "\f107";
-@fa-var-angle-left: "\f104";
-@fa-var-angle-right: "\f105";
-@fa-var-angle-up: "\f106";
-@fa-var-apple: "\f179";
-@fa-var-archive: "\f187";
-@fa-var-area-chart: "\f1fe";
-@fa-var-arrow-circle-down: "\f0ab";
-@fa-var-arrow-circle-left: "\f0a8";
-@fa-var-arrow-circle-o-down: "\f01a";
-@fa-var-arrow-circle-o-left: "\f190";
-@fa-var-arrow-circle-o-right: "\f18e";
-@fa-var-arrow-circle-o-up: "\f01b";
-@fa-var-arrow-circle-right: "\f0a9";
-@fa-var-arrow-circle-up: "\f0aa";
-@fa-var-arrow-down: "\f063";
-@fa-var-arrow-left: "\f060";
-@fa-var-arrow-right: "\f061";
-@fa-var-arrow-up: "\f062";
-@fa-var-arrows: "\f047";
-@fa-var-arrows-alt: "\f0b2";
-@fa-var-arrows-h: "\f07e";
-@fa-var-arrows-v: "\f07d";
-@fa-var-asl-interpreting: "\f2a3";
-@fa-var-assistive-listening-systems: "\f2a2";
-@fa-var-asterisk: "\f069";
-@fa-var-at: "\f1fa";
-@fa-var-audio-description: "\f29e";
-@fa-var-automobile: "\f1b9";
-@fa-var-backward: "\f04a";
-@fa-var-balance-scale: "\f24e";
-@fa-var-ban: "\f05e";
-@fa-var-bandcamp: "\f2d5";
-@fa-var-bank: "\f19c";
-@fa-var-bar-chart: "\f080";
-@fa-var-bar-chart-o: "\f080";
-@fa-var-barcode: "\f02a";
-@fa-var-bars: "\f0c9";
-@fa-var-bath: "\f2cd";
-@fa-var-bathtub: "\f2cd";
-@fa-var-battery: "\f240";
-@fa-var-battery-0: "\f244";
-@fa-var-battery-1: "\f243";
-@fa-var-battery-2: "\f242";
-@fa-var-battery-3: "\f241";
-@fa-var-battery-4: "\f240";
-@fa-var-battery-empty: "\f244";
-@fa-var-battery-full: "\f240";
-@fa-var-battery-half: "\f242";
-@fa-var-battery-quarter: "\f243";
-@fa-var-battery-three-quarters: "\f241";
-@fa-var-bed: "\f236";
-@fa-var-beer: "\f0fc";
-@fa-var-behance: "\f1b4";
-@fa-var-behance-square: "\f1b5";
-@fa-var-bell: "\f0f3";
-@fa-var-bell-o: "\f0a2";
-@fa-var-bell-slash: "\f1f6";
-@fa-var-bell-slash-o: "\f1f7";
-@fa-var-bicycle: "\f206";
-@fa-var-binoculars: "\f1e5";
-@fa-var-birthday-cake: "\f1fd";
-@fa-var-bitbucket: "\f171";
-@fa-var-bitbucket-square: "\f172";
-@fa-var-bitcoin: "\f15a";
-@fa-var-black-tie: "\f27e";
-@fa-var-blind: "\f29d";
-@fa-var-bluetooth: "\f293";
-@fa-var-bluetooth-b: "\f294";
-@fa-var-bold: "\f032";
-@fa-var-bolt: "\f0e7";
-@fa-var-bomb: "\f1e2";
-@fa-var-book: "\f02d";
-@fa-var-bookmark: "\f02e";
-@fa-var-bookmark-o: "\f097";
-@fa-var-braille: "\f2a1";
-@fa-var-briefcase: "\f0b1";
-@fa-var-btc: "\f15a";
-@fa-var-bug: "\f188";
-@fa-var-building: "\f1ad";
-@fa-var-building-o: "\f0f7";
-@fa-var-bullhorn: "\f0a1";
-@fa-var-bullseye: "\f140";
-@fa-var-bus: "\f207";
-@fa-var-buysellads: "\f20d";
-@fa-var-cab: "\f1ba";
-@fa-var-calculator: "\f1ec";
-@fa-var-calendar: "\f073";
-@fa-var-calendar-check-o: "\f274";
-@fa-var-calendar-minus-o: "\f272";
-@fa-var-calendar-o: "\f133";
-@fa-var-calendar-plus-o: "\f271";
-@fa-var-calendar-times-o: "\f273";
-@fa-var-camera: "\f030";
-@fa-var-camera-retro: "\f083";
-@fa-var-car: "\f1b9";
-@fa-var-caret-down: "\f0d7";
-@fa-var-caret-left: "\f0d9";
-@fa-var-caret-right: "\f0da";
-@fa-var-caret-square-o-down: "\f150";
-@fa-var-caret-square-o-left: "\f191";
-@fa-var-caret-square-o-right: "\f152";
-@fa-var-caret-square-o-up: "\f151";
-@fa-var-caret-up: "\f0d8";
-@fa-var-cart-arrow-down: "\f218";
-@fa-var-cart-plus: "\f217";
-@fa-var-cc: "\f20a";
-@fa-var-cc-amex: "\f1f3";
-@fa-var-cc-diners-club: "\f24c";
-@fa-var-cc-discover: "\f1f2";
-@fa-var-cc-jcb: "\f24b";
-@fa-var-cc-mastercard: "\f1f1";
-@fa-var-cc-paypal: "\f1f4";
-@fa-var-cc-stripe: "\f1f5";
-@fa-var-cc-visa: "\f1f0";
-@fa-var-certificate: "\f0a3";
-@fa-var-chain: "\f0c1";
-@fa-var-chain-broken: "\f127";
-@fa-var-check: "\f00c";
-@fa-var-check-circle: "\f058";
-@fa-var-check-circle-o: "\f05d";
-@fa-var-check-square: "\f14a";
-@fa-var-check-square-o: "\f046";
-@fa-var-chevron-circle-down: "\f13a";
-@fa-var-chevron-circle-left: "\f137";
-@fa-var-chevron-circle-right: "\f138";
-@fa-var-chevron-circle-up: "\f139";
-@fa-var-chevron-down: "\f078";
-@fa-var-chevron-left: "\f053";
-@fa-var-chevron-right: "\f054";
-@fa-var-chevron-up: "\f077";
-@fa-var-child: "\f1ae";
-@fa-var-chrome: "\f268";
-@fa-var-circle: "\f111";
-@fa-var-circle-o: "\f10c";
-@fa-var-circle-o-notch: "\f1ce";
-@fa-var-circle-thin: "\f1db";
-@fa-var-clipboard: "\f0ea";
-@fa-var-clock-o: "\f017";
-@fa-var-clone: "\f24d";
-@fa-var-close: "\f00d";
-@fa-var-cloud: "\f0c2";
-@fa-var-cloud-download: "\f0ed";
-@fa-var-cloud-upload: "\f0ee";
-@fa-var-cny: "\f157";
-@fa-var-code: "\f121";
-@fa-var-code-fork: "\f126";
-@fa-var-codepen: "\f1cb";
-@fa-var-codiepie: "\f284";
-@fa-var-coffee: "\f0f4";
-@fa-var-cog: "\f013";
-@fa-var-cogs: "\f085";
-@fa-var-columns: "\f0db";
-@fa-var-comment: "\f075";
-@fa-var-comment-o: "\f0e5";
-@fa-var-commenting: "\f27a";
-@fa-var-commenting-o: "\f27b";
-@fa-var-comments: "\f086";
-@fa-var-comments-o: "\f0e6";
-@fa-var-compass: "\f14e";
-@fa-var-compress: "\f066";
-@fa-var-connectdevelop: "\f20e";
-@fa-var-contao: "\f26d";
-@fa-var-copy: "\f0c5";
-@fa-var-copyright: "\f1f9";
-@fa-var-creative-commons: "\f25e";
-@fa-var-credit-card: "\f09d";
-@fa-var-credit-card-alt: "\f283";
-@fa-var-crop: "\f125";
-@fa-var-crosshairs: "\f05b";
-@fa-var-css3: "\f13c";
-@fa-var-cube: "\f1b2";
-@fa-var-cubes: "\f1b3";
-@fa-var-cut: "\f0c4";
-@fa-var-cutlery: "\f0f5";
-@fa-var-dashboard: "\f0e4";
-@fa-var-dashcube: "\f210";
-@fa-var-database: "\f1c0";
-@fa-var-deaf: "\f2a4";
-@fa-var-deafness: "\f2a4";
-@fa-var-dedent: "\f03b";
-@fa-var-delicious: "\f1a5";
-@fa-var-desktop: "\f108";
-@fa-var-deviantart: "\f1bd";
-@fa-var-diamond: "\f219";
-@fa-var-digg: "\f1a6";
-@fa-var-dollar: "\f155";
-@fa-var-dot-circle-o: "\f192";
-@fa-var-download: "\f019";
-@fa-var-dribbble: "\f17d";
-@fa-var-drivers-license: "\f2c2";
-@fa-var-drivers-license-o: "\f2c3";
-@fa-var-dropbox: "\f16b";
-@fa-var-drupal: "\f1a9";
-@fa-var-edge: "\f282";
-@fa-var-edit: "\f044";
-@fa-var-eercast: "\f2da";
-@fa-var-eject: "\f052";
-@fa-var-ellipsis-h: "\f141";
-@fa-var-ellipsis-v: "\f142";
-@fa-var-empire: "\f1d1";
-@fa-var-envelope: "\f0e0";
-@fa-var-envelope-o: "\f003";
-@fa-var-envelope-open: "\f2b6";
-@fa-var-envelope-open-o: "\f2b7";
-@fa-var-envelope-square: "\f199";
-@fa-var-envira: "\f299";
-@fa-var-eraser: "\f12d";
-@fa-var-etsy: "\f2d7";
-@fa-var-eur: "\f153";
-@fa-var-euro: "\f153";
-@fa-var-exchange: "\f0ec";
-@fa-var-exclamation: "\f12a";
-@fa-var-exclamation-circle: "\f06a";
-@fa-var-exclamation-triangle: "\f071";
-@fa-var-expand: "\f065";
-@fa-var-expeditedssl: "\f23e";
-@fa-var-external-link: "\f08e";
-@fa-var-external-link-square: "\f14c";
-@fa-var-eye: "\f06e";
-@fa-var-eye-slash: "\f070";
-@fa-var-eyedropper: "\f1fb";
-@fa-var-fa: "\f2b4";
-@fa-var-facebook: "\f09a";
-@fa-var-facebook-f: "\f09a";
-@fa-var-facebook-official: "\f230";
-@fa-var-facebook-square: "\f082";
-@fa-var-fast-backward: "\f049";
-@fa-var-fast-forward: "\f050";
-@fa-var-fax: "\f1ac";
-@fa-var-feed: "\f09e";
-@fa-var-female: "\f182";
-@fa-var-fighter-jet: "\f0fb";
-@fa-var-file: "\f15b";
-@fa-var-file-archive-o: "\f1c6";
-@fa-var-file-audio-o: "\f1c7";
-@fa-var-file-code-o: "\f1c9";
-@fa-var-file-excel-o: "\f1c3";
-@fa-var-file-image-o: "\f1c5";
-@fa-var-file-movie-o: "\f1c8";
-@fa-var-file-o: "\f016";
-@fa-var-file-pdf-o: "\f1c1";
-@fa-var-file-photo-o: "\f1c5";
-@fa-var-file-picture-o: "\f1c5";
-@fa-var-file-powerpoint-o: "\f1c4";
-@fa-var-file-sound-o: "\f1c7";
-@fa-var-file-text: "\f15c";
-@fa-var-file-text-o: "\f0f6";
-@fa-var-file-video-o: "\f1c8";
-@fa-var-file-word-o: "\f1c2";
-@fa-var-file-zip-o: "\f1c6";
-@fa-var-files-o: "\f0c5";
-@fa-var-film: "\f008";
-@fa-var-filter: "\f0b0";
-@fa-var-fire: "\f06d";
-@fa-var-fire-extinguisher: "\f134";
-@fa-var-firefox: "\f269";
-@fa-var-first-order: "\f2b0";
-@fa-var-flag: "\f024";
-@fa-var-flag-checkered: "\f11e";
-@fa-var-flag-o: "\f11d";
-@fa-var-flash: "\f0e7";
-@fa-var-flask: "\f0c3";
-@fa-var-flickr: "\f16e";
-@fa-var-floppy-o: "\f0c7";
-@fa-var-folder: "\f07b";
-@fa-var-folder-o: "\f114";
-@fa-var-folder-open: "\f07c";
-@fa-var-folder-open-o: "\f115";
-@fa-var-font: "\f031";
-@fa-var-font-awesome: "\f2b4";
-@fa-var-fonticons: "\f280";
-@fa-var-fort-awesome: "\f286";
-@fa-var-forumbee: "\f211";
-@fa-var-forward: "\f04e";
-@fa-var-foursquare: "\f180";
-@fa-var-free-code-camp: "\f2c5";
-@fa-var-frown-o: "\f119";
-@fa-var-futbol-o: "\f1e3";
-@fa-var-gamepad: "\f11b";
-@fa-var-gavel: "\f0e3";
-@fa-var-gbp: "\f154";
-@fa-var-ge: "\f1d1";
-@fa-var-gear: "\f013";
-@fa-var-gears: "\f085";
-@fa-var-genderless: "\f22d";
-@fa-var-get-pocket: "\f265";
-@fa-var-gg: "\f260";
-@fa-var-gg-circle: "\f261";
-@fa-var-gift: "\f06b";
-@fa-var-git: "\f1d3";
-@fa-var-git-square: "\f1d2";
-@fa-var-github: "\f09b";
-@fa-var-github-alt: "\f113";
-@fa-var-github-square: "\f092";
-@fa-var-gitlab: "\f296";
-@fa-var-gittip: "\f184";
-@fa-var-glass: "\f000";
-@fa-var-glide: "\f2a5";
-@fa-var-glide-g: "\f2a6";
-@fa-var-globe: "\f0ac";
-@fa-var-google: "\f1a0";
-@fa-var-google-plus: "\f0d5";
-@fa-var-google-plus-circle: "\f2b3";
-@fa-var-google-plus-official: "\f2b3";
-@fa-var-google-plus-square: "\f0d4";
-@fa-var-google-wallet: "\f1ee";
-@fa-var-graduation-cap: "\f19d";
-@fa-var-gratipay: "\f184";
-@fa-var-grav: "\f2d6";
-@fa-var-group: "\f0c0";
-@fa-var-h-square: "\f0fd";
-@fa-var-hacker-news: "\f1d4";
-@fa-var-hand-grab-o: "\f255";
-@fa-var-hand-lizard-o: "\f258";
-@fa-var-hand-o-down: "\f0a7";
-@fa-var-hand-o-left: "\f0a5";
-@fa-var-hand-o-right: "\f0a4";
-@fa-var-hand-o-up: "\f0a6";
-@fa-var-hand-paper-o: "\f256";
-@fa-var-hand-peace-o: "\f25b";
-@fa-var-hand-pointer-o: "\f25a";
-@fa-var-hand-rock-o: "\f255";
-@fa-var-hand-scissors-o: "\f257";
-@fa-var-hand-spock-o: "\f259";
-@fa-var-hand-stop-o: "\f256";
-@fa-var-handshake-o: "\f2b5";
-@fa-var-hard-of-hearing: "\f2a4";
-@fa-var-hashtag: "\f292";
-@fa-var-hdd-o: "\f0a0";
-@fa-var-header: "\f1dc";
-@fa-var-headphones: "\f025";
-@fa-var-heart: "\f004";
-@fa-var-heart-o: "\f08a";
-@fa-var-heartbeat: "\f21e";
-@fa-var-history: "\f1da";
-@fa-var-home: "\f015";
-@fa-var-hospital-o: "\f0f8";
-@fa-var-hotel: "\f236";
-@fa-var-hourglass: "\f254";
-@fa-var-hourglass-1: "\f251";
-@fa-var-hourglass-2: "\f252";
-@fa-var-hourglass-3: "\f253";
-@fa-var-hourglass-end: "\f253";
-@fa-var-hourglass-half: "\f252";
-@fa-var-hourglass-o: "\f250";
-@fa-var-hourglass-start: "\f251";
-@fa-var-houzz: "\f27c";
-@fa-var-html5: "\f13b";
-@fa-var-i-cursor: "\f246";
-@fa-var-id-badge: "\f2c1";
-@fa-var-id-card: "\f2c2";
-@fa-var-id-card-o: "\f2c3";
-@fa-var-ils: "\f20b";
-@fa-var-image: "\f03e";
-@fa-var-imdb: "\f2d8";
-@fa-var-inbox: "\f01c";
-@fa-var-indent: "\f03c";
-@fa-var-industry: "\f275";
-@fa-var-info: "\f129";
-@fa-var-info-circle: "\f05a";
-@fa-var-inr: "\f156";
-@fa-var-instagram: "\f16d";
-@fa-var-institution: "\f19c";
-@fa-var-internet-explorer: "\f26b";
-@fa-var-intersex: "\f224";
-@fa-var-ioxhost: "\f208";
-@fa-var-italic: "\f033";
-@fa-var-joomla: "\f1aa";
-@fa-var-jpy: "\f157";
-@fa-var-jsfiddle: "\f1cc";
-@fa-var-key: "\f084";
-@fa-var-keyboard-o: "\f11c";
-@fa-var-krw: "\f159";
-@fa-var-language: "\f1ab";
-@fa-var-laptop: "\f109";
-@fa-var-lastfm: "\f202";
-@fa-var-lastfm-square: "\f203";
-@fa-var-leaf: "\f06c";
-@fa-var-leanpub: "\f212";
-@fa-var-legal: "\f0e3";
-@fa-var-lemon-o: "\f094";
-@fa-var-level-down: "\f149";
-@fa-var-level-up: "\f148";
-@fa-var-life-bouy: "\f1cd";
-@fa-var-life-buoy: "\f1cd";
-@fa-var-life-ring: "\f1cd";
-@fa-var-life-saver: "\f1cd";
-@fa-var-lightbulb-o: "\f0eb";
-@fa-var-line-chart: "\f201";
-@fa-var-link: "\f0c1";
-@fa-var-linkedin: "\f0e1";
-@fa-var-linkedin-square: "\f08c";
-@fa-var-linode: "\f2b8";
-@fa-var-linux: "\f17c";
-@fa-var-list: "\f03a";
-@fa-var-list-alt: "\f022";
-@fa-var-list-ol: "\f0cb";
-@fa-var-list-ul: "\f0ca";
-@fa-var-location-arrow: "\f124";
-@fa-var-lock: "\f023";
-@fa-var-long-arrow-down: "\f175";
-@fa-var-long-arrow-left: "\f177";
-@fa-var-long-arrow-right: "\f178";
-@fa-var-long-arrow-up: "\f176";
-@fa-var-low-vision: "\f2a8";
-@fa-var-magic: "\f0d0";
-@fa-var-magnet: "\f076";
-@fa-var-mail-forward: "\f064";
-@fa-var-mail-reply: "\f112";
-@fa-var-mail-reply-all: "\f122";
-@fa-var-male: "\f183";
-@fa-var-map: "\f279";
-@fa-var-map-marker: "\f041";
-@fa-var-map-o: "\f278";
-@fa-var-map-pin: "\f276";
-@fa-var-map-signs: "\f277";
-@fa-var-mars: "\f222";
-@fa-var-mars-double: "\f227";
-@fa-var-mars-stroke: "\f229";
-@fa-var-mars-stroke-h: "\f22b";
-@fa-var-mars-stroke-v: "\f22a";
-@fa-var-maxcdn: "\f136";
-@fa-var-meanpath: "\f20c";
-@fa-var-medium: "\f23a";
-@fa-var-medkit: "\f0fa";
-@fa-var-meetup: "\f2e0";
-@fa-var-meh-o: "\f11a";
-@fa-var-mercury: "\f223";
-@fa-var-microchip: "\f2db";
-@fa-var-microphone: "\f130";
-@fa-var-microphone-slash: "\f131";
-@fa-var-minus: "\f068";
-@fa-var-minus-circle: "\f056";
-@fa-var-minus-square: "\f146";
-@fa-var-minus-square-o: "\f147";
-@fa-var-mixcloud: "\f289";
-@fa-var-mobile: "\f10b";
-@fa-var-mobile-phone: "\f10b";
-@fa-var-modx: "\f285";
-@fa-var-money: "\f0d6";
-@fa-var-moon-o: "\f186";
-@fa-var-mortar-board: "\f19d";
-@fa-var-motorcycle: "\f21c";
-@fa-var-mouse-pointer: "\f245";
-@fa-var-music: "\f001";
-@fa-var-navicon: "\f0c9";
-@fa-var-neuter: "\f22c";
-@fa-var-newspaper-o: "\f1ea";
-@fa-var-object-group: "\f247";
-@fa-var-object-ungroup: "\f248";
-@fa-var-odnoklassniki: "\f263";
-@fa-var-odnoklassniki-square: "\f264";
-@fa-var-opencart: "\f23d";
-@fa-var-openid: "\f19b";
-@fa-var-opera: "\f26a";
-@fa-var-optin-monster: "\f23c";
-@fa-var-outdent: "\f03b";
-@fa-var-pagelines: "\f18c";
-@fa-var-paint-brush: "\f1fc";
-@fa-var-paper-plane: "\f1d8";
-@fa-var-paper-plane-o: "\f1d9";
-@fa-var-paperclip: "\f0c6";
-@fa-var-paragraph: "\f1dd";
-@fa-var-paste: "\f0ea";
-@fa-var-pause: "\f04c";
-@fa-var-pause-circle: "\f28b";
-@fa-var-pause-circle-o: "\f28c";
-@fa-var-paw: "\f1b0";
-@fa-var-paypal: "\f1ed";
-@fa-var-pencil: "\f040";
-@fa-var-pencil-square: "\f14b";
-@fa-var-pencil-square-o: "\f044";
-@fa-var-percent: "\f295";
-@fa-var-phone: "\f095";
-@fa-var-phone-square: "\f098";
-@fa-var-photo: "\f03e";
-@fa-var-picture-o: "\f03e";
-@fa-var-pie-chart: "\f200";
-@fa-var-pied-piper: "\f2ae";
-@fa-var-pied-piper-alt: "\f1a8";
-@fa-var-pied-piper-pp: "\f1a7";
-@fa-var-pinterest: "\f0d2";
-@fa-var-pinterest-p: "\f231";
-@fa-var-pinterest-square: "\f0d3";
-@fa-var-plane: "\f072";
-@fa-var-play: "\f04b";
-@fa-var-play-circle: "\f144";
-@fa-var-play-circle-o: "\f01d";
-@fa-var-plug: "\f1e6";
-@fa-var-plus: "\f067";
-@fa-var-plus-circle: "\f055";
-@fa-var-plus-square: "\f0fe";
-@fa-var-plus-square-o: "\f196";
-@fa-var-podcast: "\f2ce";
-@fa-var-power-off: "\f011";
-@fa-var-print: "\f02f";
-@fa-var-product-hunt: "\f288";
-@fa-var-puzzle-piece: "\f12e";
-@fa-var-qq: "\f1d6";
-@fa-var-qrcode: "\f029";
-@fa-var-question: "\f128";
-@fa-var-question-circle: "\f059";
-@fa-var-question-circle-o: "\f29c";
-@fa-var-quora: "\f2c4";
-@fa-var-quote-left: "\f10d";
-@fa-var-quote-right: "\f10e";
-@fa-var-ra: "\f1d0";
-@fa-var-random: "\f074";
-@fa-var-ravelry: "\f2d9";
-@fa-var-rebel: "\f1d0";
-@fa-var-recycle: "\f1b8";
-@fa-var-reddit: "\f1a1";
-@fa-var-reddit-alien: "\f281";
-@fa-var-reddit-square: "\f1a2";
-@fa-var-refresh: "\f021";
-@fa-var-registered: "\f25d";
-@fa-var-remove: "\f00d";
-@fa-var-renren: "\f18b";
-@fa-var-reorder: "\f0c9";
-@fa-var-repeat: "\f01e";
-@fa-var-reply: "\f112";
-@fa-var-reply-all: "\f122";
-@fa-var-resistance: "\f1d0";
-@fa-var-retweet: "\f079";
-@fa-var-rmb: "\f157";
-@fa-var-road: "\f018";
-@fa-var-rocket: "\f135";
-@fa-var-rotate-left: "\f0e2";
-@fa-var-rotate-right: "\f01e";
-@fa-var-rouble: "\f158";
-@fa-var-rss: "\f09e";
-@fa-var-rss-square: "\f143";
-@fa-var-rub: "\f158";
-@fa-var-ruble: "\f158";
-@fa-var-rupee: "\f156";
-@fa-var-s15: "\f2cd";
-@fa-var-safari: "\f267";
-@fa-var-save: "\f0c7";
-@fa-var-scissors: "\f0c4";
-@fa-var-scribd: "\f28a";
-@fa-var-search: "\f002";
-@fa-var-search-minus: "\f010";
-@fa-var-search-plus: "\f00e";
-@fa-var-sellsy: "\f213";
-@fa-var-send: "\f1d8";
-@fa-var-send-o: "\f1d9";
-@fa-var-server: "\f233";
-@fa-var-share: "\f064";
-@fa-var-share-alt: "\f1e0";
-@fa-var-share-alt-square: "\f1e1";
-@fa-var-share-square: "\f14d";
-@fa-var-share-square-o: "\f045";
-@fa-var-shekel: "\f20b";
-@fa-var-sheqel: "\f20b";
-@fa-var-shield: "\f132";
-@fa-var-ship: "\f21a";
-@fa-var-shirtsinbulk: "\f214";
-@fa-var-shopping-bag: "\f290";
-@fa-var-shopping-basket: "\f291";
-@fa-var-shopping-cart: "\f07a";
-@fa-var-shower: "\f2cc";
-@fa-var-sign-in: "\f090";
-@fa-var-sign-language: "\f2a7";
-@fa-var-sign-out: "\f08b";
-@fa-var-signal: "\f012";
-@fa-var-signing: "\f2a7";
-@fa-var-simplybuilt: "\f215";
-@fa-var-sitemap: "\f0e8";
-@fa-var-skyatlas: "\f216";
-@fa-var-skype: "\f17e";
-@fa-var-slack: "\f198";
-@fa-var-sliders: "\f1de";
-@fa-var-slideshare: "\f1e7";
-@fa-var-smile-o: "\f118";
-@fa-var-snapchat: "\f2ab";
-@fa-var-snapchat-ghost: "\f2ac";
-@fa-var-snapchat-square: "\f2ad";
-@fa-var-snowflake-o: "\f2dc";
-@fa-var-soccer-ball-o: "\f1e3";
-@fa-var-sort: "\f0dc";
-@fa-var-sort-alpha-asc: "\f15d";
-@fa-var-sort-alpha-desc: "\f15e";
-@fa-var-sort-amount-asc: "\f160";
-@fa-var-sort-amount-desc: "\f161";
-@fa-var-sort-asc: "\f0de";
-@fa-var-sort-desc: "\f0dd";
-@fa-var-sort-down: "\f0dd";
-@fa-var-sort-numeric-asc: "\f162";
-@fa-var-sort-numeric-desc: "\f163";
-@fa-var-sort-up: "\f0de";
-@fa-var-soundcloud: "\f1be";
-@fa-var-space-shuttle: "\f197";
-@fa-var-spinner: "\f110";
-@fa-var-spoon: "\f1b1";
-@fa-var-spotify: "\f1bc";
-@fa-var-square: "\f0c8";
-@fa-var-square-o: "\f096";
-@fa-var-stack-exchange: "\f18d";
-@fa-var-stack-overflow: "\f16c";
-@fa-var-star: "\f005";
-@fa-var-star-half: "\f089";
-@fa-var-star-half-empty: "\f123";
-@fa-var-star-half-full: "\f123";
-@fa-var-star-half-o: "\f123";
-@fa-var-star-o: "\f006";
-@fa-var-steam: "\f1b6";
-@fa-var-steam-square: "\f1b7";
-@fa-var-step-backward: "\f048";
-@fa-var-step-forward: "\f051";
-@fa-var-stethoscope: "\f0f1";
-@fa-var-sticky-note: "\f249";
-@fa-var-sticky-note-o: "\f24a";
-@fa-var-stop: "\f04d";
-@fa-var-stop-circle: "\f28d";
-@fa-var-stop-circle-o: "\f28e";
-@fa-var-street-view: "\f21d";
-@fa-var-strikethrough: "\f0cc";
-@fa-var-stumbleupon: "\f1a4";
-@fa-var-stumbleupon-circle: "\f1a3";
-@fa-var-subscript: "\f12c";
-@fa-var-subway: "\f239";
-@fa-var-suitcase: "\f0f2";
-@fa-var-sun-o: "\f185";
-@fa-var-superpowers: "\f2dd";
-@fa-var-superscript: "\f12b";
-@fa-var-support: "\f1cd";
-@fa-var-table: "\f0ce";
-@fa-var-tablet: "\f10a";
-@fa-var-tachometer: "\f0e4";
-@fa-var-tag: "\f02b";
-@fa-var-tags: "\f02c";
-@fa-var-tasks: "\f0ae";
-@fa-var-taxi: "\f1ba";
-@fa-var-telegram: "\f2c6";
-@fa-var-television: "\f26c";
-@fa-var-tencent-weibo: "\f1d5";
-@fa-var-terminal: "\f120";
-@fa-var-text-height: "\f034";
-@fa-var-text-width: "\f035";
-@fa-var-th: "\f00a";
-@fa-var-th-large: "\f009";
-@fa-var-th-list: "\f00b";
-@fa-var-themeisle: "\f2b2";
-@fa-var-thermometer: "\f2c7";
-@fa-var-thermometer-0: "\f2cb";
-@fa-var-thermometer-1: "\f2ca";
-@fa-var-thermometer-2: "\f2c9";
-@fa-var-thermometer-3: "\f2c8";
-@fa-var-thermometer-4: "\f2c7";
-@fa-var-thermometer-empty: "\f2cb";
-@fa-var-thermometer-full: "\f2c7";
-@fa-var-thermometer-half: "\f2c9";
-@fa-var-thermometer-quarter: "\f2ca";
-@fa-var-thermometer-three-quarters: "\f2c8";
-@fa-var-thumb-tack: "\f08d";
-@fa-var-thumbs-down: "\f165";
-@fa-var-thumbs-o-down: "\f088";
-@fa-var-thumbs-o-up: "\f087";
-@fa-var-thumbs-up: "\f164";
-@fa-var-ticket: "\f145";
-@fa-var-times: "\f00d";
-@fa-var-times-circle: "\f057";
-@fa-var-times-circle-o: "\f05c";
-@fa-var-times-rectangle: "\f2d3";
-@fa-var-times-rectangle-o: "\f2d4";
-@fa-var-tint: "\f043";
-@fa-var-toggle-down: "\f150";
-@fa-var-toggle-left: "\f191";
-@fa-var-toggle-off: "\f204";
-@fa-var-toggle-on: "\f205";
-@fa-var-toggle-right: "\f152";
-@fa-var-toggle-up: "\f151";
-@fa-var-trademark: "\f25c";
-@fa-var-train: "\f238";
-@fa-var-transgender: "\f224";
-@fa-var-transgender-alt: "\f225";
-@fa-var-trash: "\f1f8";
-@fa-var-trash-o: "\f014";
-@fa-var-tree: "\f1bb";
-@fa-var-trello: "\f181";
-@fa-var-tripadvisor: "\f262";
-@fa-var-trophy: "\f091";
-@fa-var-truck: "\f0d1";
-@fa-var-try: "\f195";
-@fa-var-tty: "\f1e4";
-@fa-var-tumblr: "\f173";
-@fa-var-tumblr-square: "\f174";
-@fa-var-turkish-lira: "\f195";
-@fa-var-tv: "\f26c";
-@fa-var-twitch: "\f1e8";
-@fa-var-twitter: "\f099";
-@fa-var-twitter-square: "\f081";
-@fa-var-umbrella: "\f0e9";
-@fa-var-underline: "\f0cd";
-@fa-var-undo: "\f0e2";
-@fa-var-universal-access: "\f29a";
-@fa-var-university: "\f19c";
-@fa-var-unlink: "\f127";
-@fa-var-unlock: "\f09c";
-@fa-var-unlock-alt: "\f13e";
-@fa-var-unsorted: "\f0dc";
-@fa-var-upload: "\f093";
-@fa-var-usb: "\f287";
-@fa-var-usd: "\f155";
-@fa-var-user: "\f007";
-@fa-var-user-circle: "\f2bd";
-@fa-var-user-circle-o: "\f2be";
-@fa-var-user-md: "\f0f0";
-@fa-var-user-o: "\f2c0";
-@fa-var-user-plus: "\f234";
-@fa-var-user-secret: "\f21b";
-@fa-var-user-times: "\f235";
-@fa-var-users: "\f0c0";
-@fa-var-vcard: "\f2bb";
-@fa-var-vcard-o: "\f2bc";
-@fa-var-venus: "\f221";
-@fa-var-venus-double: "\f226";
-@fa-var-venus-mars: "\f228";
-@fa-var-viacoin: "\f237";
-@fa-var-viadeo: "\f2a9";
-@fa-var-viadeo-square: "\f2aa";
-@fa-var-video-camera: "\f03d";
-@fa-var-vimeo: "\f27d";
-@fa-var-vimeo-square: "\f194";
-@fa-var-vine: "\f1ca";
-@fa-var-vk: "\f189";
-@fa-var-volume-control-phone: "\f2a0";
-@fa-var-volume-down: "\f027";
-@fa-var-volume-off: "\f026";
-@fa-var-volume-up: "\f028";
-@fa-var-warning: "\f071";
-@fa-var-wechat: "\f1d7";
-@fa-var-weibo: "\f18a";
-@fa-var-weixin: "\f1d7";
-@fa-var-whatsapp: "\f232";
-@fa-var-wheelchair: "\f193";
-@fa-var-wheelchair-alt: "\f29b";
-@fa-var-wifi: "\f1eb";
-@fa-var-wikipedia-w: "\f266";
-@fa-var-window-close: "\f2d3";
-@fa-var-window-close-o: "\f2d4";
-@fa-var-window-maximize: "\f2d0";
-@fa-var-window-minimize: "\f2d1";
-@fa-var-window-restore: "\f2d2";
-@fa-var-windows: "\f17a";
-@fa-var-won: "\f159";
-@fa-var-wordpress: "\f19a";
-@fa-var-wpbeginner: "\f297";
-@fa-var-wpexplorer: "\f2de";
-@fa-var-wpforms: "\f298";
-@fa-var-wrench: "\f0ad";
-@fa-var-xing: "\f168";
-@fa-var-xing-square: "\f169";
-@fa-var-y-combinator: "\f23b";
-@fa-var-y-combinator-square: "\f1d4";
-@fa-var-yahoo: "\f19e";
-@fa-var-yc: "\f23b";
-@fa-var-yc-square: "\f1d4";
-@fa-var-yelp: "\f1e9";
-@fa-var-yen: "\f157";
-@fa-var-yoast: "\f2b1";
-@fa-var-youtube: "\f167";
-@fa-var-youtube-play: "\f16a";
-@fa-var-youtube-square: "\f166";
-
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/package.json b/Web/Resgrid.Web/wwwroot/lib/font-awesome/package.json
deleted file mode 100644
index 86f58db0..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "font-awesome",
- "description": "The iconic font and CSS framework",
- "version": "4.7.0",
- "style": "css/font-awesome.css",
- "keywords": ["font", "awesome", "fontawesome", "icon", "font", "bootstrap"],
- "homepage": "http://fontawesome.io/",
- "bugs": {
- "url" : "http://github.com/FortAwesome/Font-Awesome/issues"
- },
- "author": {
- "name": "Dave Gandy",
- "email": "dave@fontawesome.io",
- "web": "http://twitter.com/davegandy"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/FortAwesome/Font-Awesome.git"
- },
- "contributors": [
- {
- "name": "Brian Talbot",
- "web": "http://twitter.com/talbs"
- },
- {
- "name": "Travis Chase",
- "web": "http://twitter.com/supercodepoet"
- },
- {
- "name": "Rob Madole",
- "web": "http://twitter.com/robmadole"
- },
- {
- "name": "Geremia Taglialatela",
- "web": "http://twitter.com/gtagliala"
- }
- ],
- "license": "(OFL-1.1 AND MIT)",
- "dependencies": {
- },
- "engines" : {
- "node" : ">=0.10.3"
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_animated.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_animated.scss
deleted file mode 100644
index 8a020dbf..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_animated.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-// Spinning Icons
-// --------------------------
-
-.#{$fa-css-prefix}-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear;
-}
-
-.#{$fa-css-prefix}-pulse {
- -webkit-animation: fa-spin 1s infinite steps(8);
- animation: fa-spin 1s infinite steps(8);
-}
-
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_bordered-pulled.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_bordered-pulled.scss
deleted file mode 100644
index d4b85a02..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_bordered-pulled.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-// Bordered & Pulled
-// -------------------------
-
-.#{$fa-css-prefix}-border {
- padding: .2em .25em .15em;
- border: solid .08em $fa-border-color;
- border-radius: .1em;
-}
-
-.#{$fa-css-prefix}-pull-left { float: left; }
-.#{$fa-css-prefix}-pull-right { float: right; }
-
-.#{$fa-css-prefix} {
- &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
- &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
-}
-
-/* Deprecated as of 4.4.0 */
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-.#{$fa-css-prefix} {
- &.pull-left { margin-right: .3em; }
- &.pull-right { margin-left: .3em; }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_core.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_core.scss
deleted file mode 100644
index 7425ef85..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_core.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Base Class Definition
-// -------------------------
-
-.#{$fa-css-prefix} {
- display: inline-block;
- font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
- font-size: inherit; // can't have font-size inherit on line above, so need to override
- text-rendering: auto; // optimizelegibility throws things off #1094
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_fixed-width.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_fixed-width.scss
deleted file mode 100644
index b221c981..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_fixed-width.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.#{$fa-css-prefix}-fw {
- width: (18em / 14);
- text-align: center;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_icons.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_icons.scss
deleted file mode 100644
index e63e702c..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_icons.scss
+++ /dev/null
@@ -1,789 +0,0 @@
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- readers do not read off random characters that represent icons */
-
-.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
-.#{$fa-css-prefix}-music:before { content: $fa-var-music; }
-.#{$fa-css-prefix}-search:before { content: $fa-var-search; }
-.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
-.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
-.#{$fa-css-prefix}-star:before { content: $fa-var-star; }
-.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
-.#{$fa-css-prefix}-user:before { content: $fa-var-user; }
-.#{$fa-css-prefix}-film:before { content: $fa-var-film; }
-.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
-.#{$fa-css-prefix}-th:before { content: $fa-var-th; }
-.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
-.#{$fa-css-prefix}-check:before { content: $fa-var-check; }
-.#{$fa-css-prefix}-remove:before,
-.#{$fa-css-prefix}-close:before,
-.#{$fa-css-prefix}-times:before { content: $fa-var-times; }
-.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
-.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
-.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
-.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
-.#{$fa-css-prefix}-gear:before,
-.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
-.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
-.#{$fa-css-prefix}-home:before { content: $fa-var-home; }
-.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
-.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
-.#{$fa-css-prefix}-road:before { content: $fa-var-road; }
-.#{$fa-css-prefix}-download:before { content: $fa-var-download; }
-.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
-.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
-.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
-.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
-.#{$fa-css-prefix}-rotate-right:before,
-.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
-.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
-.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
-.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
-.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
-.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
-.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
-.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
-.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
-.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
-.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
-.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
-.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
-.#{$fa-css-prefix}-book:before { content: $fa-var-book; }
-.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
-.#{$fa-css-prefix}-print:before { content: $fa-var-print; }
-.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
-.#{$fa-css-prefix}-font:before { content: $fa-var-font; }
-.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
-.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
-.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
-.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
-.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
-.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
-.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
-.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
-.#{$fa-css-prefix}-list:before { content: $fa-var-list; }
-.#{$fa-css-prefix}-dedent:before,
-.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
-.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
-.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
-.#{$fa-css-prefix}-photo:before,
-.#{$fa-css-prefix}-image:before,
-.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
-.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
-.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
-.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
-.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
-.#{$fa-css-prefix}-edit:before,
-.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
-.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
-.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
-.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
-.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
-.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
-.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
-.#{$fa-css-prefix}-play:before { content: $fa-var-play; }
-.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
-.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
-.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
-.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
-.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
-.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
-.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
-.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
-.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
-.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
-.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
-.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
-.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
-.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
-.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
-.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
-.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
-.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
-.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
-.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
-.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
-.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
-.#{$fa-css-prefix}-mail-forward:before,
-.#{$fa-css-prefix}-share:before { content: $fa-var-share; }
-.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
-.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
-.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
-.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
-.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
-.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
-.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
-.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
-.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
-.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
-.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
-.#{$fa-css-prefix}-warning:before,
-.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
-.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
-.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
-.#{$fa-css-prefix}-random:before { content: $fa-var-random; }
-.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
-.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
-.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
-.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
-.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
-.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
-.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
-.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
-.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
-.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
-.#{$fa-css-prefix}-bar-chart-o:before,
-.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }
-.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
-.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
-.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
-.#{$fa-css-prefix}-key:before { content: $fa-var-key; }
-.#{$fa-css-prefix}-gears:before,
-.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
-.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
-.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
-.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
-.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
-.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
-.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
-.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
-.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
-.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
-.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
-.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
-.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
-.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
-.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
-.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
-.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
-.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
-.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
-.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
-.#{$fa-css-prefix}-facebook-f:before,
-.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
-.#{$fa-css-prefix}-github:before { content: $fa-var-github; }
-.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
-.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
-.#{$fa-css-prefix}-feed:before,
-.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
-.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
-.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
-.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
-.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
-.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
-.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
-.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
-.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
-.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
-.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
-.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
-.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
-.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
-.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
-.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
-.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
-.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
-.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
-.#{$fa-css-prefix}-group:before,
-.#{$fa-css-prefix}-users:before { content: $fa-var-users; }
-.#{$fa-css-prefix}-chain:before,
-.#{$fa-css-prefix}-link:before { content: $fa-var-link; }
-.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
-.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
-.#{$fa-css-prefix}-cut:before,
-.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
-.#{$fa-css-prefix}-copy:before,
-.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
-.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
-.#{$fa-css-prefix}-save:before,
-.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
-.#{$fa-css-prefix}-square:before { content: $fa-var-square; }
-.#{$fa-css-prefix}-navicon:before,
-.#{$fa-css-prefix}-reorder:before,
-.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
-.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
-.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
-.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
-.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
-.#{$fa-css-prefix}-table:before { content: $fa-var-table; }
-.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
-.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
-.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
-.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
-.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
-.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
-.#{$fa-css-prefix}-money:before { content: $fa-var-money; }
-.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
-.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
-.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
-.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
-.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
-.#{$fa-css-prefix}-unsorted:before,
-.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
-.#{$fa-css-prefix}-sort-down:before,
-.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
-.#{$fa-css-prefix}-sort-up:before,
-.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
-.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
-.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
-.#{$fa-css-prefix}-rotate-left:before,
-.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
-.#{$fa-css-prefix}-legal:before,
-.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
-.#{$fa-css-prefix}-dashboard:before,
-.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
-.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
-.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
-.#{$fa-css-prefix}-flash:before,
-.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
-.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
-.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
-.#{$fa-css-prefix}-paste:before,
-.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
-.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
-.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
-.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
-.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
-.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
-.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
-.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
-.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
-.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
-.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
-.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
-.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
-.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
-.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
-.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
-.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
-.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
-.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
-.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
-.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
-.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
-.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
-.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
-.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
-.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
-.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
-.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
-.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
-.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
-.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
-.#{$fa-css-prefix}-mobile-phone:before,
-.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
-.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
-.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
-.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
-.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
-.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
-.#{$fa-css-prefix}-mail-reply:before,
-.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
-.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
-.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
-.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
-.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
-.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
-.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
-.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
-.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
-.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
-.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
-.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
-.#{$fa-css-prefix}-code:before { content: $fa-var-code; }
-.#{$fa-css-prefix}-mail-reply-all:before,
-.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
-.#{$fa-css-prefix}-star-half-empty:before,
-.#{$fa-css-prefix}-star-half-full:before,
-.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
-.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
-.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
-.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
-.#{$fa-css-prefix}-unlink:before,
-.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
-.#{$fa-css-prefix}-question:before { content: $fa-var-question; }
-.#{$fa-css-prefix}-info:before { content: $fa-var-info; }
-.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
-.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
-.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
-.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
-.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
-.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
-.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
-.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
-.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
-.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
-.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
-.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
-.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
-.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
-.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
-.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
-.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
-.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
-.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
-.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
-.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
-.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
-.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
-.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
-.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
-.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
-.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
-.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
-.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
-.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
-.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
-.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
-.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
-.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
-.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
-.#{$fa-css-prefix}-toggle-down:before,
-.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
-.#{$fa-css-prefix}-toggle-up:before,
-.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
-.#{$fa-css-prefix}-toggle-right:before,
-.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
-.#{$fa-css-prefix}-euro:before,
-.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
-.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
-.#{$fa-css-prefix}-dollar:before,
-.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
-.#{$fa-css-prefix}-rupee:before,
-.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
-.#{$fa-css-prefix}-cny:before,
-.#{$fa-css-prefix}-rmb:before,
-.#{$fa-css-prefix}-yen:before,
-.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
-.#{$fa-css-prefix}-ruble:before,
-.#{$fa-css-prefix}-rouble:before,
-.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
-.#{$fa-css-prefix}-won:before,
-.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
-.#{$fa-css-prefix}-bitcoin:before,
-.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
-.#{$fa-css-prefix}-file:before { content: $fa-var-file; }
-.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
-.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
-.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
-.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
-.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
-.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
-.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
-.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
-.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
-.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
-.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
-.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
-.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
-.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
-.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
-.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
-.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
-.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
-.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
-.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
-.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
-.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
-.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
-.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
-.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
-.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
-.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
-.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
-.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
-.#{$fa-css-prefix}-android:before { content: $fa-var-android; }
-.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
-.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
-.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
-.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
-.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
-.#{$fa-css-prefix}-female:before { content: $fa-var-female; }
-.#{$fa-css-prefix}-male:before { content: $fa-var-male; }
-.#{$fa-css-prefix}-gittip:before,
-.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }
-.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
-.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
-.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
-.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
-.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
-.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
-.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
-.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
-.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
-.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
-.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
-.#{$fa-css-prefix}-toggle-left:before,
-.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
-.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
-.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
-.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
-.#{$fa-css-prefix}-turkish-lira:before,
-.#{$fa-css-prefix}-try:before { content: $fa-var-try; }
-.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
-.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }
-.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }
-.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }
-.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }
-.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }
-.#{$fa-css-prefix}-institution:before,
-.#{$fa-css-prefix}-bank:before,
-.#{$fa-css-prefix}-university:before { content: $fa-var-university; }
-.#{$fa-css-prefix}-mortar-board:before,
-.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }
-.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }
-.#{$fa-css-prefix}-google:before { content: $fa-var-google; }
-.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }
-.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }
-.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }
-.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }
-.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }
-.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }
-.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }
-.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }
-.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }
-.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }
-.#{$fa-css-prefix}-language:before { content: $fa-var-language; }
-.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }
-.#{$fa-css-prefix}-building:before { content: $fa-var-building; }
-.#{$fa-css-prefix}-child:before { content: $fa-var-child; }
-.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }
-.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }
-.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }
-.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }
-.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }
-.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }
-.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }
-.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }
-.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }
-.#{$fa-css-prefix}-automobile:before,
-.#{$fa-css-prefix}-car:before { content: $fa-var-car; }
-.#{$fa-css-prefix}-cab:before,
-.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }
-.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }
-.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }
-.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }
-.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }
-.#{$fa-css-prefix}-database:before { content: $fa-var-database; }
-.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }
-.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }
-.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }
-.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }
-.#{$fa-css-prefix}-file-photo-o:before,
-.#{$fa-css-prefix}-file-picture-o:before,
-.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }
-.#{$fa-css-prefix}-file-zip-o:before,
-.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }
-.#{$fa-css-prefix}-file-sound-o:before,
-.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }
-.#{$fa-css-prefix}-file-movie-o:before,
-.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }
-.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }
-.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }
-.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }
-.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }
-.#{$fa-css-prefix}-life-bouy:before,
-.#{$fa-css-prefix}-life-buoy:before,
-.#{$fa-css-prefix}-life-saver:before,
-.#{$fa-css-prefix}-support:before,
-.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }
-.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }
-.#{$fa-css-prefix}-ra:before,
-.#{$fa-css-prefix}-resistance:before,
-.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }
-.#{$fa-css-prefix}-ge:before,
-.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }
-.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }
-.#{$fa-css-prefix}-git:before { content: $fa-var-git; }
-.#{$fa-css-prefix}-y-combinator-square:before,
-.#{$fa-css-prefix}-yc-square:before,
-.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }
-.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }
-.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }
-.#{$fa-css-prefix}-wechat:before,
-.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }
-.#{$fa-css-prefix}-send:before,
-.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }
-.#{$fa-css-prefix}-send-o:before,
-.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }
-.#{$fa-css-prefix}-history:before { content: $fa-var-history; }
-.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }
-.#{$fa-css-prefix}-header:before { content: $fa-var-header; }
-.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }
-.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }
-.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }
-.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }
-.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }
-.#{$fa-css-prefix}-soccer-ball-o:before,
-.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }
-.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }
-.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }
-.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }
-.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }
-.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }
-.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }
-.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }
-.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }
-.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }
-.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }
-.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }
-.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }
-.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }
-.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }
-.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }
-.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }
-.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }
-.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }
-.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }
-.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }
-.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }
-.#{$fa-css-prefix}-at:before { content: $fa-var-at; }
-.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }
-.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }
-.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }
-.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }
-.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }
-.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }
-.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }
-.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }
-.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }
-.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }
-.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }
-.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }
-.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }
-.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }
-.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }
-.#{$fa-css-prefix}-shekel:before,
-.#{$fa-css-prefix}-sheqel:before,
-.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }
-.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }
-.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }
-.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }
-.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }
-.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }
-.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }
-.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }
-.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }
-.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }
-.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }
-.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }
-.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }
-.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }
-.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }
-.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }
-.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }
-.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }
-.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }
-.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }
-.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }
-.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }
-.#{$fa-css-prefix}-intersex:before,
-.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }
-.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }
-.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }
-.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }
-.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }
-.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }
-.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }
-.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }
-.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }
-.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }
-.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }
-.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }
-.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }
-.#{$fa-css-prefix}-server:before { content: $fa-var-server; }
-.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }
-.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }
-.#{$fa-css-prefix}-hotel:before,
-.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }
-.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }
-.#{$fa-css-prefix}-train:before { content: $fa-var-train; }
-.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }
-.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }
-.#{$fa-css-prefix}-yc:before,
-.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }
-.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }
-.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }
-.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }
-.#{$fa-css-prefix}-battery-4:before,
-.#{$fa-css-prefix}-battery:before,
-.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }
-.#{$fa-css-prefix}-battery-3:before,
-.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }
-.#{$fa-css-prefix}-battery-2:before,
-.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }
-.#{$fa-css-prefix}-battery-1:before,
-.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }
-.#{$fa-css-prefix}-battery-0:before,
-.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }
-.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }
-.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }
-.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }
-.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }
-.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }
-.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }
-.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }
-.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }
-.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }
-.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }
-.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }
-.#{$fa-css-prefix}-hourglass-1:before,
-.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }
-.#{$fa-css-prefix}-hourglass-2:before,
-.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }
-.#{$fa-css-prefix}-hourglass-3:before,
-.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }
-.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }
-.#{$fa-css-prefix}-hand-grab-o:before,
-.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }
-.#{$fa-css-prefix}-hand-stop-o:before,
-.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }
-.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }
-.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }
-.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }
-.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }
-.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }
-.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }
-.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }
-.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }
-.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }
-.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }
-.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }
-.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }
-.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }
-.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }
-.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }
-.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }
-.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }
-.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }
-.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }
-.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }
-.#{$fa-css-prefix}-tv:before,
-.#{$fa-css-prefix}-television:before { content: $fa-var-television; }
-.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }
-.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }
-.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }
-.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }
-.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }
-.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }
-.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }
-.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }
-.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }
-.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }
-.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }
-.#{$fa-css-prefix}-map:before { content: $fa-var-map; }
-.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }
-.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }
-.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }
-.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }
-.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }
-.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }
-.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }
-.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }
-.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }
-.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }
-.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }
-.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }
-.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }
-.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }
-.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }
-.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }
-.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }
-.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }
-.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }
-.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }
-.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }
-.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }
-.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }
-.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }
-.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }
-.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }
-.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }
-.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }
-.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }
-.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }
-.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }
-.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }
-.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }
-.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }
-.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }
-.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }
-.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }
-.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }
-.#{$fa-css-prefix}-asl-interpreting:before,
-.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }
-.#{$fa-css-prefix}-deafness:before,
-.#{$fa-css-prefix}-hard-of-hearing:before,
-.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }
-.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }
-.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }
-.#{$fa-css-prefix}-signing:before,
-.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }
-.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }
-.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }
-.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }
-.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }
-.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }
-.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }
-.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }
-.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }
-.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }
-.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }
-.#{$fa-css-prefix}-google-plus-circle:before,
-.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }
-.#{$fa-css-prefix}-fa:before,
-.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }
-.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; }
-.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; }
-.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; }
-.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; }
-.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; }
-.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; }
-.#{$fa-css-prefix}-vcard:before,
-.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; }
-.#{$fa-css-prefix}-vcard-o:before,
-.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; }
-.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; }
-.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; }
-.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; }
-.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; }
-.#{$fa-css-prefix}-drivers-license:before,
-.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; }
-.#{$fa-css-prefix}-drivers-license-o:before,
-.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; }
-.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; }
-.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; }
-.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; }
-.#{$fa-css-prefix}-thermometer-4:before,
-.#{$fa-css-prefix}-thermometer:before,
-.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; }
-.#{$fa-css-prefix}-thermometer-3:before,
-.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; }
-.#{$fa-css-prefix}-thermometer-2:before,
-.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; }
-.#{$fa-css-prefix}-thermometer-1:before,
-.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; }
-.#{$fa-css-prefix}-thermometer-0:before,
-.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; }
-.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; }
-.#{$fa-css-prefix}-bathtub:before,
-.#{$fa-css-prefix}-s15:before,
-.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; }
-.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; }
-.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; }
-.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; }
-.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; }
-.#{$fa-css-prefix}-times-rectangle:before,
-.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; }
-.#{$fa-css-prefix}-times-rectangle-o:before,
-.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; }
-.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; }
-.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; }
-.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; }
-.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; }
-.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; }
-.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; }
-.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; }
-.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; }
-.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; }
-.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; }
-.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_larger.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_larger.scss
deleted file mode 100644
index 41e9a818..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_larger.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// Icon Sizes
-// -------------------------
-
-/* makes the font 33% larger relative to the icon container */
-.#{$fa-css-prefix}-lg {
- font-size: (4em / 3);
- line-height: (3em / 4);
- vertical-align: -15%;
-}
-.#{$fa-css-prefix}-2x { font-size: 2em; }
-.#{$fa-css-prefix}-3x { font-size: 3em; }
-.#{$fa-css-prefix}-4x { font-size: 4em; }
-.#{$fa-css-prefix}-5x { font-size: 5em; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_list.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_list.scss
deleted file mode 100644
index 7d1e4d54..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_list.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// List Icons
-// -------------------------
-
-.#{$fa-css-prefix}-ul {
- padding-left: 0;
- margin-left: $fa-li-width;
- list-style-type: none;
- > li { position: relative; }
-}
-.#{$fa-css-prefix}-li {
- position: absolute;
- left: -$fa-li-width;
- width: $fa-li-width;
- top: (2em / 14);
- text-align: center;
- &.#{$fa-css-prefix}-lg {
- left: -$fa-li-width + (4em / 14);
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_mixins.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_mixins.scss
deleted file mode 100644
index c3bbd574..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_mixins.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-// Mixins
-// --------------------------
-
-@mixin fa-icon() {
- display: inline-block;
- font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
- font-size: inherit; // can't have font-size inherit on line above, so need to override
- text-rendering: auto; // optimizelegibility throws things off #1094
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-
-}
-
-@mixin fa-icon-rotate($degrees, $rotation) {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
- -webkit-transform: rotate($degrees);
- -ms-transform: rotate($degrees);
- transform: rotate($degrees);
-}
-
-@mixin fa-icon-flip($horiz, $vert, $rotation) {
- -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
- -webkit-transform: scale($horiz, $vert);
- -ms-transform: scale($horiz, $vert);
- transform: scale($horiz, $vert);
-}
-
-
-// Only display content to screen readers. A la Bootstrap 4.
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-
-@mixin sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0,0,0,0);
- border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
-@mixin sr-only-focusable {
- &:active,
- &:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
- }
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_path.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_path.scss
deleted file mode 100644
index bb457c23..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_path.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-/* FONT PATH
- * -------------------------- */
-
-@font-face {
- font-family: 'FontAwesome';
- src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
- src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
- url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
- url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
- url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
- url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
-// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
- font-weight: normal;
- font-style: normal;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_rotated-flipped.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_rotated-flipped.scss
deleted file mode 100644
index a3558fd0..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_rotated-flipped.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// Rotated & Flipped Icons
-// -------------------------
-
-.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
-.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
-.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
-
-.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
-.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
-
-// Hook for IE8-9
-// -------------------------
-
-:root .#{$fa-css-prefix}-rotate-90,
-:root .#{$fa-css-prefix}-rotate-180,
-:root .#{$fa-css-prefix}-rotate-270,
-:root .#{$fa-css-prefix}-flip-horizontal,
-:root .#{$fa-css-prefix}-flip-vertical {
- filter: none;
-}
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_screen-reader.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_screen-reader.scss
deleted file mode 100644
index 637426f0..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_screen-reader.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-// Screen Readers
-// -------------------------
-
-.sr-only { @include sr-only(); }
-.sr-only-focusable { @include sr-only-focusable(); }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_stacked.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_stacked.scss
deleted file mode 100644
index aef74036..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_stacked.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// Stacked Icons
-// -------------------------
-
-.#{$fa-css-prefix}-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle;
-}
-.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center;
-}
-.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
-.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
-.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_variables.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_variables.scss
deleted file mode 100644
index 498fc4a0..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/_variables.scss
+++ /dev/null
@@ -1,800 +0,0 @@
-// Variables
-// --------------------------
-
-$fa-font-path: "../fonts" !default;
-$fa-font-size-base: 14px !default;
-$fa-line-height-base: 1 !default;
-//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly
-$fa-css-prefix: fa !default;
-$fa-version: "4.7.0" !default;
-$fa-border-color: #eee !default;
-$fa-inverse: #fff !default;
-$fa-li-width: (30em / 14) !default;
-
-$fa-var-500px: "\f26e";
-$fa-var-address-book: "\f2b9";
-$fa-var-address-book-o: "\f2ba";
-$fa-var-address-card: "\f2bb";
-$fa-var-address-card-o: "\f2bc";
-$fa-var-adjust: "\f042";
-$fa-var-adn: "\f170";
-$fa-var-align-center: "\f037";
-$fa-var-align-justify: "\f039";
-$fa-var-align-left: "\f036";
-$fa-var-align-right: "\f038";
-$fa-var-amazon: "\f270";
-$fa-var-ambulance: "\f0f9";
-$fa-var-american-sign-language-interpreting: "\f2a3";
-$fa-var-anchor: "\f13d";
-$fa-var-android: "\f17b";
-$fa-var-angellist: "\f209";
-$fa-var-angle-double-down: "\f103";
-$fa-var-angle-double-left: "\f100";
-$fa-var-angle-double-right: "\f101";
-$fa-var-angle-double-up: "\f102";
-$fa-var-angle-down: "\f107";
-$fa-var-angle-left: "\f104";
-$fa-var-angle-right: "\f105";
-$fa-var-angle-up: "\f106";
-$fa-var-apple: "\f179";
-$fa-var-archive: "\f187";
-$fa-var-area-chart: "\f1fe";
-$fa-var-arrow-circle-down: "\f0ab";
-$fa-var-arrow-circle-left: "\f0a8";
-$fa-var-arrow-circle-o-down: "\f01a";
-$fa-var-arrow-circle-o-left: "\f190";
-$fa-var-arrow-circle-o-right: "\f18e";
-$fa-var-arrow-circle-o-up: "\f01b";
-$fa-var-arrow-circle-right: "\f0a9";
-$fa-var-arrow-circle-up: "\f0aa";
-$fa-var-arrow-down: "\f063";
-$fa-var-arrow-left: "\f060";
-$fa-var-arrow-right: "\f061";
-$fa-var-arrow-up: "\f062";
-$fa-var-arrows: "\f047";
-$fa-var-arrows-alt: "\f0b2";
-$fa-var-arrows-h: "\f07e";
-$fa-var-arrows-v: "\f07d";
-$fa-var-asl-interpreting: "\f2a3";
-$fa-var-assistive-listening-systems: "\f2a2";
-$fa-var-asterisk: "\f069";
-$fa-var-at: "\f1fa";
-$fa-var-audio-description: "\f29e";
-$fa-var-automobile: "\f1b9";
-$fa-var-backward: "\f04a";
-$fa-var-balance-scale: "\f24e";
-$fa-var-ban: "\f05e";
-$fa-var-bandcamp: "\f2d5";
-$fa-var-bank: "\f19c";
-$fa-var-bar-chart: "\f080";
-$fa-var-bar-chart-o: "\f080";
-$fa-var-barcode: "\f02a";
-$fa-var-bars: "\f0c9";
-$fa-var-bath: "\f2cd";
-$fa-var-bathtub: "\f2cd";
-$fa-var-battery: "\f240";
-$fa-var-battery-0: "\f244";
-$fa-var-battery-1: "\f243";
-$fa-var-battery-2: "\f242";
-$fa-var-battery-3: "\f241";
-$fa-var-battery-4: "\f240";
-$fa-var-battery-empty: "\f244";
-$fa-var-battery-full: "\f240";
-$fa-var-battery-half: "\f242";
-$fa-var-battery-quarter: "\f243";
-$fa-var-battery-three-quarters: "\f241";
-$fa-var-bed: "\f236";
-$fa-var-beer: "\f0fc";
-$fa-var-behance: "\f1b4";
-$fa-var-behance-square: "\f1b5";
-$fa-var-bell: "\f0f3";
-$fa-var-bell-o: "\f0a2";
-$fa-var-bell-slash: "\f1f6";
-$fa-var-bell-slash-o: "\f1f7";
-$fa-var-bicycle: "\f206";
-$fa-var-binoculars: "\f1e5";
-$fa-var-birthday-cake: "\f1fd";
-$fa-var-bitbucket: "\f171";
-$fa-var-bitbucket-square: "\f172";
-$fa-var-bitcoin: "\f15a";
-$fa-var-black-tie: "\f27e";
-$fa-var-blind: "\f29d";
-$fa-var-bluetooth: "\f293";
-$fa-var-bluetooth-b: "\f294";
-$fa-var-bold: "\f032";
-$fa-var-bolt: "\f0e7";
-$fa-var-bomb: "\f1e2";
-$fa-var-book: "\f02d";
-$fa-var-bookmark: "\f02e";
-$fa-var-bookmark-o: "\f097";
-$fa-var-braille: "\f2a1";
-$fa-var-briefcase: "\f0b1";
-$fa-var-btc: "\f15a";
-$fa-var-bug: "\f188";
-$fa-var-building: "\f1ad";
-$fa-var-building-o: "\f0f7";
-$fa-var-bullhorn: "\f0a1";
-$fa-var-bullseye: "\f140";
-$fa-var-bus: "\f207";
-$fa-var-buysellads: "\f20d";
-$fa-var-cab: "\f1ba";
-$fa-var-calculator: "\f1ec";
-$fa-var-calendar: "\f073";
-$fa-var-calendar-check-o: "\f274";
-$fa-var-calendar-minus-o: "\f272";
-$fa-var-calendar-o: "\f133";
-$fa-var-calendar-plus-o: "\f271";
-$fa-var-calendar-times-o: "\f273";
-$fa-var-camera: "\f030";
-$fa-var-camera-retro: "\f083";
-$fa-var-car: "\f1b9";
-$fa-var-caret-down: "\f0d7";
-$fa-var-caret-left: "\f0d9";
-$fa-var-caret-right: "\f0da";
-$fa-var-caret-square-o-down: "\f150";
-$fa-var-caret-square-o-left: "\f191";
-$fa-var-caret-square-o-right: "\f152";
-$fa-var-caret-square-o-up: "\f151";
-$fa-var-caret-up: "\f0d8";
-$fa-var-cart-arrow-down: "\f218";
-$fa-var-cart-plus: "\f217";
-$fa-var-cc: "\f20a";
-$fa-var-cc-amex: "\f1f3";
-$fa-var-cc-diners-club: "\f24c";
-$fa-var-cc-discover: "\f1f2";
-$fa-var-cc-jcb: "\f24b";
-$fa-var-cc-mastercard: "\f1f1";
-$fa-var-cc-paypal: "\f1f4";
-$fa-var-cc-stripe: "\f1f5";
-$fa-var-cc-visa: "\f1f0";
-$fa-var-certificate: "\f0a3";
-$fa-var-chain: "\f0c1";
-$fa-var-chain-broken: "\f127";
-$fa-var-check: "\f00c";
-$fa-var-check-circle: "\f058";
-$fa-var-check-circle-o: "\f05d";
-$fa-var-check-square: "\f14a";
-$fa-var-check-square-o: "\f046";
-$fa-var-chevron-circle-down: "\f13a";
-$fa-var-chevron-circle-left: "\f137";
-$fa-var-chevron-circle-right: "\f138";
-$fa-var-chevron-circle-up: "\f139";
-$fa-var-chevron-down: "\f078";
-$fa-var-chevron-left: "\f053";
-$fa-var-chevron-right: "\f054";
-$fa-var-chevron-up: "\f077";
-$fa-var-child: "\f1ae";
-$fa-var-chrome: "\f268";
-$fa-var-circle: "\f111";
-$fa-var-circle-o: "\f10c";
-$fa-var-circle-o-notch: "\f1ce";
-$fa-var-circle-thin: "\f1db";
-$fa-var-clipboard: "\f0ea";
-$fa-var-clock-o: "\f017";
-$fa-var-clone: "\f24d";
-$fa-var-close: "\f00d";
-$fa-var-cloud: "\f0c2";
-$fa-var-cloud-download: "\f0ed";
-$fa-var-cloud-upload: "\f0ee";
-$fa-var-cny: "\f157";
-$fa-var-code: "\f121";
-$fa-var-code-fork: "\f126";
-$fa-var-codepen: "\f1cb";
-$fa-var-codiepie: "\f284";
-$fa-var-coffee: "\f0f4";
-$fa-var-cog: "\f013";
-$fa-var-cogs: "\f085";
-$fa-var-columns: "\f0db";
-$fa-var-comment: "\f075";
-$fa-var-comment-o: "\f0e5";
-$fa-var-commenting: "\f27a";
-$fa-var-commenting-o: "\f27b";
-$fa-var-comments: "\f086";
-$fa-var-comments-o: "\f0e6";
-$fa-var-compass: "\f14e";
-$fa-var-compress: "\f066";
-$fa-var-connectdevelop: "\f20e";
-$fa-var-contao: "\f26d";
-$fa-var-copy: "\f0c5";
-$fa-var-copyright: "\f1f9";
-$fa-var-creative-commons: "\f25e";
-$fa-var-credit-card: "\f09d";
-$fa-var-credit-card-alt: "\f283";
-$fa-var-crop: "\f125";
-$fa-var-crosshairs: "\f05b";
-$fa-var-css3: "\f13c";
-$fa-var-cube: "\f1b2";
-$fa-var-cubes: "\f1b3";
-$fa-var-cut: "\f0c4";
-$fa-var-cutlery: "\f0f5";
-$fa-var-dashboard: "\f0e4";
-$fa-var-dashcube: "\f210";
-$fa-var-database: "\f1c0";
-$fa-var-deaf: "\f2a4";
-$fa-var-deafness: "\f2a4";
-$fa-var-dedent: "\f03b";
-$fa-var-delicious: "\f1a5";
-$fa-var-desktop: "\f108";
-$fa-var-deviantart: "\f1bd";
-$fa-var-diamond: "\f219";
-$fa-var-digg: "\f1a6";
-$fa-var-dollar: "\f155";
-$fa-var-dot-circle-o: "\f192";
-$fa-var-download: "\f019";
-$fa-var-dribbble: "\f17d";
-$fa-var-drivers-license: "\f2c2";
-$fa-var-drivers-license-o: "\f2c3";
-$fa-var-dropbox: "\f16b";
-$fa-var-drupal: "\f1a9";
-$fa-var-edge: "\f282";
-$fa-var-edit: "\f044";
-$fa-var-eercast: "\f2da";
-$fa-var-eject: "\f052";
-$fa-var-ellipsis-h: "\f141";
-$fa-var-ellipsis-v: "\f142";
-$fa-var-empire: "\f1d1";
-$fa-var-envelope: "\f0e0";
-$fa-var-envelope-o: "\f003";
-$fa-var-envelope-open: "\f2b6";
-$fa-var-envelope-open-o: "\f2b7";
-$fa-var-envelope-square: "\f199";
-$fa-var-envira: "\f299";
-$fa-var-eraser: "\f12d";
-$fa-var-etsy: "\f2d7";
-$fa-var-eur: "\f153";
-$fa-var-euro: "\f153";
-$fa-var-exchange: "\f0ec";
-$fa-var-exclamation: "\f12a";
-$fa-var-exclamation-circle: "\f06a";
-$fa-var-exclamation-triangle: "\f071";
-$fa-var-expand: "\f065";
-$fa-var-expeditedssl: "\f23e";
-$fa-var-external-link: "\f08e";
-$fa-var-external-link-square: "\f14c";
-$fa-var-eye: "\f06e";
-$fa-var-eye-slash: "\f070";
-$fa-var-eyedropper: "\f1fb";
-$fa-var-fa: "\f2b4";
-$fa-var-facebook: "\f09a";
-$fa-var-facebook-f: "\f09a";
-$fa-var-facebook-official: "\f230";
-$fa-var-facebook-square: "\f082";
-$fa-var-fast-backward: "\f049";
-$fa-var-fast-forward: "\f050";
-$fa-var-fax: "\f1ac";
-$fa-var-feed: "\f09e";
-$fa-var-female: "\f182";
-$fa-var-fighter-jet: "\f0fb";
-$fa-var-file: "\f15b";
-$fa-var-file-archive-o: "\f1c6";
-$fa-var-file-audio-o: "\f1c7";
-$fa-var-file-code-o: "\f1c9";
-$fa-var-file-excel-o: "\f1c3";
-$fa-var-file-image-o: "\f1c5";
-$fa-var-file-movie-o: "\f1c8";
-$fa-var-file-o: "\f016";
-$fa-var-file-pdf-o: "\f1c1";
-$fa-var-file-photo-o: "\f1c5";
-$fa-var-file-picture-o: "\f1c5";
-$fa-var-file-powerpoint-o: "\f1c4";
-$fa-var-file-sound-o: "\f1c7";
-$fa-var-file-text: "\f15c";
-$fa-var-file-text-o: "\f0f6";
-$fa-var-file-video-o: "\f1c8";
-$fa-var-file-word-o: "\f1c2";
-$fa-var-file-zip-o: "\f1c6";
-$fa-var-files-o: "\f0c5";
-$fa-var-film: "\f008";
-$fa-var-filter: "\f0b0";
-$fa-var-fire: "\f06d";
-$fa-var-fire-extinguisher: "\f134";
-$fa-var-firefox: "\f269";
-$fa-var-first-order: "\f2b0";
-$fa-var-flag: "\f024";
-$fa-var-flag-checkered: "\f11e";
-$fa-var-flag-o: "\f11d";
-$fa-var-flash: "\f0e7";
-$fa-var-flask: "\f0c3";
-$fa-var-flickr: "\f16e";
-$fa-var-floppy-o: "\f0c7";
-$fa-var-folder: "\f07b";
-$fa-var-folder-o: "\f114";
-$fa-var-folder-open: "\f07c";
-$fa-var-folder-open-o: "\f115";
-$fa-var-font: "\f031";
-$fa-var-font-awesome: "\f2b4";
-$fa-var-fonticons: "\f280";
-$fa-var-fort-awesome: "\f286";
-$fa-var-forumbee: "\f211";
-$fa-var-forward: "\f04e";
-$fa-var-foursquare: "\f180";
-$fa-var-free-code-camp: "\f2c5";
-$fa-var-frown-o: "\f119";
-$fa-var-futbol-o: "\f1e3";
-$fa-var-gamepad: "\f11b";
-$fa-var-gavel: "\f0e3";
-$fa-var-gbp: "\f154";
-$fa-var-ge: "\f1d1";
-$fa-var-gear: "\f013";
-$fa-var-gears: "\f085";
-$fa-var-genderless: "\f22d";
-$fa-var-get-pocket: "\f265";
-$fa-var-gg: "\f260";
-$fa-var-gg-circle: "\f261";
-$fa-var-gift: "\f06b";
-$fa-var-git: "\f1d3";
-$fa-var-git-square: "\f1d2";
-$fa-var-github: "\f09b";
-$fa-var-github-alt: "\f113";
-$fa-var-github-square: "\f092";
-$fa-var-gitlab: "\f296";
-$fa-var-gittip: "\f184";
-$fa-var-glass: "\f000";
-$fa-var-glide: "\f2a5";
-$fa-var-glide-g: "\f2a6";
-$fa-var-globe: "\f0ac";
-$fa-var-google: "\f1a0";
-$fa-var-google-plus: "\f0d5";
-$fa-var-google-plus-circle: "\f2b3";
-$fa-var-google-plus-official: "\f2b3";
-$fa-var-google-plus-square: "\f0d4";
-$fa-var-google-wallet: "\f1ee";
-$fa-var-graduation-cap: "\f19d";
-$fa-var-gratipay: "\f184";
-$fa-var-grav: "\f2d6";
-$fa-var-group: "\f0c0";
-$fa-var-h-square: "\f0fd";
-$fa-var-hacker-news: "\f1d4";
-$fa-var-hand-grab-o: "\f255";
-$fa-var-hand-lizard-o: "\f258";
-$fa-var-hand-o-down: "\f0a7";
-$fa-var-hand-o-left: "\f0a5";
-$fa-var-hand-o-right: "\f0a4";
-$fa-var-hand-o-up: "\f0a6";
-$fa-var-hand-paper-o: "\f256";
-$fa-var-hand-peace-o: "\f25b";
-$fa-var-hand-pointer-o: "\f25a";
-$fa-var-hand-rock-o: "\f255";
-$fa-var-hand-scissors-o: "\f257";
-$fa-var-hand-spock-o: "\f259";
-$fa-var-hand-stop-o: "\f256";
-$fa-var-handshake-o: "\f2b5";
-$fa-var-hard-of-hearing: "\f2a4";
-$fa-var-hashtag: "\f292";
-$fa-var-hdd-o: "\f0a0";
-$fa-var-header: "\f1dc";
-$fa-var-headphones: "\f025";
-$fa-var-heart: "\f004";
-$fa-var-heart-o: "\f08a";
-$fa-var-heartbeat: "\f21e";
-$fa-var-history: "\f1da";
-$fa-var-home: "\f015";
-$fa-var-hospital-o: "\f0f8";
-$fa-var-hotel: "\f236";
-$fa-var-hourglass: "\f254";
-$fa-var-hourglass-1: "\f251";
-$fa-var-hourglass-2: "\f252";
-$fa-var-hourglass-3: "\f253";
-$fa-var-hourglass-end: "\f253";
-$fa-var-hourglass-half: "\f252";
-$fa-var-hourglass-o: "\f250";
-$fa-var-hourglass-start: "\f251";
-$fa-var-houzz: "\f27c";
-$fa-var-html5: "\f13b";
-$fa-var-i-cursor: "\f246";
-$fa-var-id-badge: "\f2c1";
-$fa-var-id-card: "\f2c2";
-$fa-var-id-card-o: "\f2c3";
-$fa-var-ils: "\f20b";
-$fa-var-image: "\f03e";
-$fa-var-imdb: "\f2d8";
-$fa-var-inbox: "\f01c";
-$fa-var-indent: "\f03c";
-$fa-var-industry: "\f275";
-$fa-var-info: "\f129";
-$fa-var-info-circle: "\f05a";
-$fa-var-inr: "\f156";
-$fa-var-instagram: "\f16d";
-$fa-var-institution: "\f19c";
-$fa-var-internet-explorer: "\f26b";
-$fa-var-intersex: "\f224";
-$fa-var-ioxhost: "\f208";
-$fa-var-italic: "\f033";
-$fa-var-joomla: "\f1aa";
-$fa-var-jpy: "\f157";
-$fa-var-jsfiddle: "\f1cc";
-$fa-var-key: "\f084";
-$fa-var-keyboard-o: "\f11c";
-$fa-var-krw: "\f159";
-$fa-var-language: "\f1ab";
-$fa-var-laptop: "\f109";
-$fa-var-lastfm: "\f202";
-$fa-var-lastfm-square: "\f203";
-$fa-var-leaf: "\f06c";
-$fa-var-leanpub: "\f212";
-$fa-var-legal: "\f0e3";
-$fa-var-lemon-o: "\f094";
-$fa-var-level-down: "\f149";
-$fa-var-level-up: "\f148";
-$fa-var-life-bouy: "\f1cd";
-$fa-var-life-buoy: "\f1cd";
-$fa-var-life-ring: "\f1cd";
-$fa-var-life-saver: "\f1cd";
-$fa-var-lightbulb-o: "\f0eb";
-$fa-var-line-chart: "\f201";
-$fa-var-link: "\f0c1";
-$fa-var-linkedin: "\f0e1";
-$fa-var-linkedin-square: "\f08c";
-$fa-var-linode: "\f2b8";
-$fa-var-linux: "\f17c";
-$fa-var-list: "\f03a";
-$fa-var-list-alt: "\f022";
-$fa-var-list-ol: "\f0cb";
-$fa-var-list-ul: "\f0ca";
-$fa-var-location-arrow: "\f124";
-$fa-var-lock: "\f023";
-$fa-var-long-arrow-down: "\f175";
-$fa-var-long-arrow-left: "\f177";
-$fa-var-long-arrow-right: "\f178";
-$fa-var-long-arrow-up: "\f176";
-$fa-var-low-vision: "\f2a8";
-$fa-var-magic: "\f0d0";
-$fa-var-magnet: "\f076";
-$fa-var-mail-forward: "\f064";
-$fa-var-mail-reply: "\f112";
-$fa-var-mail-reply-all: "\f122";
-$fa-var-male: "\f183";
-$fa-var-map: "\f279";
-$fa-var-map-marker: "\f041";
-$fa-var-map-o: "\f278";
-$fa-var-map-pin: "\f276";
-$fa-var-map-signs: "\f277";
-$fa-var-mars: "\f222";
-$fa-var-mars-double: "\f227";
-$fa-var-mars-stroke: "\f229";
-$fa-var-mars-stroke-h: "\f22b";
-$fa-var-mars-stroke-v: "\f22a";
-$fa-var-maxcdn: "\f136";
-$fa-var-meanpath: "\f20c";
-$fa-var-medium: "\f23a";
-$fa-var-medkit: "\f0fa";
-$fa-var-meetup: "\f2e0";
-$fa-var-meh-o: "\f11a";
-$fa-var-mercury: "\f223";
-$fa-var-microchip: "\f2db";
-$fa-var-microphone: "\f130";
-$fa-var-microphone-slash: "\f131";
-$fa-var-minus: "\f068";
-$fa-var-minus-circle: "\f056";
-$fa-var-minus-square: "\f146";
-$fa-var-minus-square-o: "\f147";
-$fa-var-mixcloud: "\f289";
-$fa-var-mobile: "\f10b";
-$fa-var-mobile-phone: "\f10b";
-$fa-var-modx: "\f285";
-$fa-var-money: "\f0d6";
-$fa-var-moon-o: "\f186";
-$fa-var-mortar-board: "\f19d";
-$fa-var-motorcycle: "\f21c";
-$fa-var-mouse-pointer: "\f245";
-$fa-var-music: "\f001";
-$fa-var-navicon: "\f0c9";
-$fa-var-neuter: "\f22c";
-$fa-var-newspaper-o: "\f1ea";
-$fa-var-object-group: "\f247";
-$fa-var-object-ungroup: "\f248";
-$fa-var-odnoklassniki: "\f263";
-$fa-var-odnoklassniki-square: "\f264";
-$fa-var-opencart: "\f23d";
-$fa-var-openid: "\f19b";
-$fa-var-opera: "\f26a";
-$fa-var-optin-monster: "\f23c";
-$fa-var-outdent: "\f03b";
-$fa-var-pagelines: "\f18c";
-$fa-var-paint-brush: "\f1fc";
-$fa-var-paper-plane: "\f1d8";
-$fa-var-paper-plane-o: "\f1d9";
-$fa-var-paperclip: "\f0c6";
-$fa-var-paragraph: "\f1dd";
-$fa-var-paste: "\f0ea";
-$fa-var-pause: "\f04c";
-$fa-var-pause-circle: "\f28b";
-$fa-var-pause-circle-o: "\f28c";
-$fa-var-paw: "\f1b0";
-$fa-var-paypal: "\f1ed";
-$fa-var-pencil: "\f040";
-$fa-var-pencil-square: "\f14b";
-$fa-var-pencil-square-o: "\f044";
-$fa-var-percent: "\f295";
-$fa-var-phone: "\f095";
-$fa-var-phone-square: "\f098";
-$fa-var-photo: "\f03e";
-$fa-var-picture-o: "\f03e";
-$fa-var-pie-chart: "\f200";
-$fa-var-pied-piper: "\f2ae";
-$fa-var-pied-piper-alt: "\f1a8";
-$fa-var-pied-piper-pp: "\f1a7";
-$fa-var-pinterest: "\f0d2";
-$fa-var-pinterest-p: "\f231";
-$fa-var-pinterest-square: "\f0d3";
-$fa-var-plane: "\f072";
-$fa-var-play: "\f04b";
-$fa-var-play-circle: "\f144";
-$fa-var-play-circle-o: "\f01d";
-$fa-var-plug: "\f1e6";
-$fa-var-plus: "\f067";
-$fa-var-plus-circle: "\f055";
-$fa-var-plus-square: "\f0fe";
-$fa-var-plus-square-o: "\f196";
-$fa-var-podcast: "\f2ce";
-$fa-var-power-off: "\f011";
-$fa-var-print: "\f02f";
-$fa-var-product-hunt: "\f288";
-$fa-var-puzzle-piece: "\f12e";
-$fa-var-qq: "\f1d6";
-$fa-var-qrcode: "\f029";
-$fa-var-question: "\f128";
-$fa-var-question-circle: "\f059";
-$fa-var-question-circle-o: "\f29c";
-$fa-var-quora: "\f2c4";
-$fa-var-quote-left: "\f10d";
-$fa-var-quote-right: "\f10e";
-$fa-var-ra: "\f1d0";
-$fa-var-random: "\f074";
-$fa-var-ravelry: "\f2d9";
-$fa-var-rebel: "\f1d0";
-$fa-var-recycle: "\f1b8";
-$fa-var-reddit: "\f1a1";
-$fa-var-reddit-alien: "\f281";
-$fa-var-reddit-square: "\f1a2";
-$fa-var-refresh: "\f021";
-$fa-var-registered: "\f25d";
-$fa-var-remove: "\f00d";
-$fa-var-renren: "\f18b";
-$fa-var-reorder: "\f0c9";
-$fa-var-repeat: "\f01e";
-$fa-var-reply: "\f112";
-$fa-var-reply-all: "\f122";
-$fa-var-resistance: "\f1d0";
-$fa-var-retweet: "\f079";
-$fa-var-rmb: "\f157";
-$fa-var-road: "\f018";
-$fa-var-rocket: "\f135";
-$fa-var-rotate-left: "\f0e2";
-$fa-var-rotate-right: "\f01e";
-$fa-var-rouble: "\f158";
-$fa-var-rss: "\f09e";
-$fa-var-rss-square: "\f143";
-$fa-var-rub: "\f158";
-$fa-var-ruble: "\f158";
-$fa-var-rupee: "\f156";
-$fa-var-s15: "\f2cd";
-$fa-var-safari: "\f267";
-$fa-var-save: "\f0c7";
-$fa-var-scissors: "\f0c4";
-$fa-var-scribd: "\f28a";
-$fa-var-search: "\f002";
-$fa-var-search-minus: "\f010";
-$fa-var-search-plus: "\f00e";
-$fa-var-sellsy: "\f213";
-$fa-var-send: "\f1d8";
-$fa-var-send-o: "\f1d9";
-$fa-var-server: "\f233";
-$fa-var-share: "\f064";
-$fa-var-share-alt: "\f1e0";
-$fa-var-share-alt-square: "\f1e1";
-$fa-var-share-square: "\f14d";
-$fa-var-share-square-o: "\f045";
-$fa-var-shekel: "\f20b";
-$fa-var-sheqel: "\f20b";
-$fa-var-shield: "\f132";
-$fa-var-ship: "\f21a";
-$fa-var-shirtsinbulk: "\f214";
-$fa-var-shopping-bag: "\f290";
-$fa-var-shopping-basket: "\f291";
-$fa-var-shopping-cart: "\f07a";
-$fa-var-shower: "\f2cc";
-$fa-var-sign-in: "\f090";
-$fa-var-sign-language: "\f2a7";
-$fa-var-sign-out: "\f08b";
-$fa-var-signal: "\f012";
-$fa-var-signing: "\f2a7";
-$fa-var-simplybuilt: "\f215";
-$fa-var-sitemap: "\f0e8";
-$fa-var-skyatlas: "\f216";
-$fa-var-skype: "\f17e";
-$fa-var-slack: "\f198";
-$fa-var-sliders: "\f1de";
-$fa-var-slideshare: "\f1e7";
-$fa-var-smile-o: "\f118";
-$fa-var-snapchat: "\f2ab";
-$fa-var-snapchat-ghost: "\f2ac";
-$fa-var-snapchat-square: "\f2ad";
-$fa-var-snowflake-o: "\f2dc";
-$fa-var-soccer-ball-o: "\f1e3";
-$fa-var-sort: "\f0dc";
-$fa-var-sort-alpha-asc: "\f15d";
-$fa-var-sort-alpha-desc: "\f15e";
-$fa-var-sort-amount-asc: "\f160";
-$fa-var-sort-amount-desc: "\f161";
-$fa-var-sort-asc: "\f0de";
-$fa-var-sort-desc: "\f0dd";
-$fa-var-sort-down: "\f0dd";
-$fa-var-sort-numeric-asc: "\f162";
-$fa-var-sort-numeric-desc: "\f163";
-$fa-var-sort-up: "\f0de";
-$fa-var-soundcloud: "\f1be";
-$fa-var-space-shuttle: "\f197";
-$fa-var-spinner: "\f110";
-$fa-var-spoon: "\f1b1";
-$fa-var-spotify: "\f1bc";
-$fa-var-square: "\f0c8";
-$fa-var-square-o: "\f096";
-$fa-var-stack-exchange: "\f18d";
-$fa-var-stack-overflow: "\f16c";
-$fa-var-star: "\f005";
-$fa-var-star-half: "\f089";
-$fa-var-star-half-empty: "\f123";
-$fa-var-star-half-full: "\f123";
-$fa-var-star-half-o: "\f123";
-$fa-var-star-o: "\f006";
-$fa-var-steam: "\f1b6";
-$fa-var-steam-square: "\f1b7";
-$fa-var-step-backward: "\f048";
-$fa-var-step-forward: "\f051";
-$fa-var-stethoscope: "\f0f1";
-$fa-var-sticky-note: "\f249";
-$fa-var-sticky-note-o: "\f24a";
-$fa-var-stop: "\f04d";
-$fa-var-stop-circle: "\f28d";
-$fa-var-stop-circle-o: "\f28e";
-$fa-var-street-view: "\f21d";
-$fa-var-strikethrough: "\f0cc";
-$fa-var-stumbleupon: "\f1a4";
-$fa-var-stumbleupon-circle: "\f1a3";
-$fa-var-subscript: "\f12c";
-$fa-var-subway: "\f239";
-$fa-var-suitcase: "\f0f2";
-$fa-var-sun-o: "\f185";
-$fa-var-superpowers: "\f2dd";
-$fa-var-superscript: "\f12b";
-$fa-var-support: "\f1cd";
-$fa-var-table: "\f0ce";
-$fa-var-tablet: "\f10a";
-$fa-var-tachometer: "\f0e4";
-$fa-var-tag: "\f02b";
-$fa-var-tags: "\f02c";
-$fa-var-tasks: "\f0ae";
-$fa-var-taxi: "\f1ba";
-$fa-var-telegram: "\f2c6";
-$fa-var-television: "\f26c";
-$fa-var-tencent-weibo: "\f1d5";
-$fa-var-terminal: "\f120";
-$fa-var-text-height: "\f034";
-$fa-var-text-width: "\f035";
-$fa-var-th: "\f00a";
-$fa-var-th-large: "\f009";
-$fa-var-th-list: "\f00b";
-$fa-var-themeisle: "\f2b2";
-$fa-var-thermometer: "\f2c7";
-$fa-var-thermometer-0: "\f2cb";
-$fa-var-thermometer-1: "\f2ca";
-$fa-var-thermometer-2: "\f2c9";
-$fa-var-thermometer-3: "\f2c8";
-$fa-var-thermometer-4: "\f2c7";
-$fa-var-thermometer-empty: "\f2cb";
-$fa-var-thermometer-full: "\f2c7";
-$fa-var-thermometer-half: "\f2c9";
-$fa-var-thermometer-quarter: "\f2ca";
-$fa-var-thermometer-three-quarters: "\f2c8";
-$fa-var-thumb-tack: "\f08d";
-$fa-var-thumbs-down: "\f165";
-$fa-var-thumbs-o-down: "\f088";
-$fa-var-thumbs-o-up: "\f087";
-$fa-var-thumbs-up: "\f164";
-$fa-var-ticket: "\f145";
-$fa-var-times: "\f00d";
-$fa-var-times-circle: "\f057";
-$fa-var-times-circle-o: "\f05c";
-$fa-var-times-rectangle: "\f2d3";
-$fa-var-times-rectangle-o: "\f2d4";
-$fa-var-tint: "\f043";
-$fa-var-toggle-down: "\f150";
-$fa-var-toggle-left: "\f191";
-$fa-var-toggle-off: "\f204";
-$fa-var-toggle-on: "\f205";
-$fa-var-toggle-right: "\f152";
-$fa-var-toggle-up: "\f151";
-$fa-var-trademark: "\f25c";
-$fa-var-train: "\f238";
-$fa-var-transgender: "\f224";
-$fa-var-transgender-alt: "\f225";
-$fa-var-trash: "\f1f8";
-$fa-var-trash-o: "\f014";
-$fa-var-tree: "\f1bb";
-$fa-var-trello: "\f181";
-$fa-var-tripadvisor: "\f262";
-$fa-var-trophy: "\f091";
-$fa-var-truck: "\f0d1";
-$fa-var-try: "\f195";
-$fa-var-tty: "\f1e4";
-$fa-var-tumblr: "\f173";
-$fa-var-tumblr-square: "\f174";
-$fa-var-turkish-lira: "\f195";
-$fa-var-tv: "\f26c";
-$fa-var-twitch: "\f1e8";
-$fa-var-twitter: "\f099";
-$fa-var-twitter-square: "\f081";
-$fa-var-umbrella: "\f0e9";
-$fa-var-underline: "\f0cd";
-$fa-var-undo: "\f0e2";
-$fa-var-universal-access: "\f29a";
-$fa-var-university: "\f19c";
-$fa-var-unlink: "\f127";
-$fa-var-unlock: "\f09c";
-$fa-var-unlock-alt: "\f13e";
-$fa-var-unsorted: "\f0dc";
-$fa-var-upload: "\f093";
-$fa-var-usb: "\f287";
-$fa-var-usd: "\f155";
-$fa-var-user: "\f007";
-$fa-var-user-circle: "\f2bd";
-$fa-var-user-circle-o: "\f2be";
-$fa-var-user-md: "\f0f0";
-$fa-var-user-o: "\f2c0";
-$fa-var-user-plus: "\f234";
-$fa-var-user-secret: "\f21b";
-$fa-var-user-times: "\f235";
-$fa-var-users: "\f0c0";
-$fa-var-vcard: "\f2bb";
-$fa-var-vcard-o: "\f2bc";
-$fa-var-venus: "\f221";
-$fa-var-venus-double: "\f226";
-$fa-var-venus-mars: "\f228";
-$fa-var-viacoin: "\f237";
-$fa-var-viadeo: "\f2a9";
-$fa-var-viadeo-square: "\f2aa";
-$fa-var-video-camera: "\f03d";
-$fa-var-vimeo: "\f27d";
-$fa-var-vimeo-square: "\f194";
-$fa-var-vine: "\f1ca";
-$fa-var-vk: "\f189";
-$fa-var-volume-control-phone: "\f2a0";
-$fa-var-volume-down: "\f027";
-$fa-var-volume-off: "\f026";
-$fa-var-volume-up: "\f028";
-$fa-var-warning: "\f071";
-$fa-var-wechat: "\f1d7";
-$fa-var-weibo: "\f18a";
-$fa-var-weixin: "\f1d7";
-$fa-var-whatsapp: "\f232";
-$fa-var-wheelchair: "\f193";
-$fa-var-wheelchair-alt: "\f29b";
-$fa-var-wifi: "\f1eb";
-$fa-var-wikipedia-w: "\f266";
-$fa-var-window-close: "\f2d3";
-$fa-var-window-close-o: "\f2d4";
-$fa-var-window-maximize: "\f2d0";
-$fa-var-window-minimize: "\f2d1";
-$fa-var-window-restore: "\f2d2";
-$fa-var-windows: "\f17a";
-$fa-var-won: "\f159";
-$fa-var-wordpress: "\f19a";
-$fa-var-wpbeginner: "\f297";
-$fa-var-wpexplorer: "\f2de";
-$fa-var-wpforms: "\f298";
-$fa-var-wrench: "\f0ad";
-$fa-var-xing: "\f168";
-$fa-var-xing-square: "\f169";
-$fa-var-y-combinator: "\f23b";
-$fa-var-y-combinator-square: "\f1d4";
-$fa-var-yahoo: "\f19e";
-$fa-var-yc: "\f23b";
-$fa-var-yc-square: "\f1d4";
-$fa-var-yelp: "\f1e9";
-$fa-var-yen: "\f157";
-$fa-var-yoast: "\f2b1";
-$fa-var-youtube: "\f167";
-$fa-var-youtube-play: "\f16a";
-$fa-var-youtube-square: "\f166";
-
diff --git a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/font-awesome.scss b/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/font-awesome.scss
deleted file mode 100644
index f1c83aaa..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/font-awesome/scss/font-awesome.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-@import "variables";
-@import "mixins";
-@import "path";
-@import "core";
-@import "larger";
-@import "fixed-width";
-@import "list";
-@import "bordered-pulled";
-@import "animated";
-@import "rotated-flipped";
-@import "stacked";
-@import "icons";
-@import "screen-reader";
diff --git a/Web/Resgrid.Web/wwwroot/lib/formBuilder/CHANGELOG.md b/Web/Resgrid.Web/wwwroot/lib/formBuilder/CHANGELOG.md
deleted file mode 100644
index e81df57f..00000000
--- a/Web/Resgrid.Web/wwwroot/lib/formBuilder/CHANGELOG.md
+++ /dev/null
@@ -1,576 +0,0 @@
-## [3.7.3](https://github.com/kevinchappell/formBuilder/compare/v3.7.2...v3.7.3) (2021-07-13)
-
-
-### Bug Fixes
-
-* documentation code colors ([b2db0d7](https://github.com/kevinchappell/formBuilder/commit/b2db0d7a06576a05802d8af68e89adad45301824))
-
-## [3.7.2](https://github.com/kevinchappell/formBuilder/compare/v3.7.1...v3.7.2) (2021-06-07)
-
-
-### Bug Fixes
-
-* save not returning js formData ([490ad72](https://github.com/kevinchappell/formBuilder/commit/490ad72c3efd7055792c9990821005f65d6ee812))
-
-## [3.7.1](https://github.com/kevinchappell/formBuilder/compare/v3.7.0...v3.7.1) (2021-06-04)
-
-
-### Bug Fixes
-
-* setData working intermittently ([753280f](https://github.com/kevinchappell/formBuilder/commit/753280f183663dd153802458209b6427c10f4c36)), closes [#1197](https://github.com/kevinchappell/formBuilder/issues/1197)
-
-# [3.7.0](https://github.com/kevinchappell/formBuilder/compare/v3.6.2...v3.7.0) (2021-05-28)
-
-
-### Features
-
-* persistDefaultFields option ([36f45f1](https://github.com/kevinchappell/formBuilder/commit/36f45f11535d5d8dedd38c94e0d6bc031a13d29c)), closes [#980](https://github.com/kevinchappell/formBuilder/issues/980)
-
-## [3.6.2](https://github.com/kevinchappell/formBuilder/compare/v3.6.1...v3.6.2) (2020-12-07)
-
-
-### Bug Fixes
-
-* radio group option remove button visible on second option ([8a838f7](https://github.com/kevinchappell/formBuilder/commit/8a838f7b18835af6a7055f3db183590eb8255c9c)), closes [#1143](https://github.com/kevinchappell/formBuilder/issues/1143)
-
-## [3.6.1](https://github.com/kevinchappell/formBuilder/compare/v3.6.0...v3.6.1) (2020-08-24)
-
-
-### Bug Fixes
-
-* onAddOption default ([55f4a8f](https://github.com/kevinchappell/formBuilder/commit/55f4a8f273c11641e882a149aaeba782ba1a031d))
-
-# [3.6.0](https://github.com/kevinchappell/formBuilder/compare/v3.5.2...v3.6.0) (2020-08-24)
-
-
-### Features
-
-* custom option attributes ([c072cae](https://github.com/kevinchappell/formBuilder/commit/c072caeb7db83d61faf12c4ee9783e5ae6d28cbf)), closes [#1038](https://github.com/kevinchappell/formBuilder/issues/1038) [#986](https://github.com/kevinchappell/formBuilder/issues/986) [#956](https://github.com/kevinchappell/formBuilder/issues/956)
-
-## [3.5.2](https://github.com/kevinchappell/formBuilder/compare/v3.5.1...v3.5.2) (2020-08-23)
-
-
-### Bug Fixes
-
-* icon name conflict ([1231aae](https://github.com/kevinchappell/formBuilder/commit/1231aae178edad3dad8cdffb753020db3bc6a24c))
-
-## [3.5.1](https://github.com/kevinchappell/formBuilder/compare/v3.5.0...v3.5.1) (2020-08-23)
-
-
-### Bug Fixes
-
-* site home url in /docs ([b73d695](https://github.com/kevinchappell/formBuilder/commit/b73d69553998b0356eb907316c7face77bbd70f4))
-
-# [3.5.0](https://github.com/kevinchappell/formBuilder/compare/v3.4.5...v3.5.0) (2020-08-23)
-
-
-### Features
-
-* onAddOption ([7824e08](https://github.com/kevinchappell/formBuilder/commit/7824e08c657df9b55bf65597b48067965780471a)), closes [#1098](https://github.com/kevinchappell/formBuilder/issues/1098)
-
-## [3.4.5](https://github.com/kevinchappell/formBuilder/compare/v3.4.4...v3.4.5) (2020-08-23)
-
-
-### Bug Fixes
-
-* onSave not called when save called from the api ([d607b02](https://github.com/kevinchappell/formBuilder/commit/d607b02c4001bee160aade80c11cce93451a12d0)), closes [#1058](https://github.com/kevinchappell/formBuilder/issues/1058)
-
-## [3.4.4](https://github.com/kevinchappell/formBuilder/compare/v3.4.3...v3.4.4) (2020-08-22)
-
-
-### Bug Fixes
-
-* checkbox other value ([7e7569e](https://github.com/kevinchappell/formBuilder/commit/7e7569ef770d2adc568b1663c5a5ebb4095cf2c9)), closes [#1061](https://github.com/kevinchappell/formBuilder/issues/1061)
-* timeout memory leaks ([34fa376](https://github.com/kevinchappell/formBuilder/commit/34fa3768979743730d7a558cde66e0cfe188dc91))
-
-## [3.4.3](https://github.com/kevinchappell/formBuilder/compare/v3.4.2...v3.4.3) (2020-08-22)
-
-
-### Bug Fixes
-
-* copy language files from module ([0fee6c3](https://github.com/kevinchappell/formBuilder/commit/0fee6c3fbae0f4ced16ad196494a891f9d140066)), closes [#1068](https://github.com/kevinchappell/formBuilder/issues/1068)
-
-## [3.4.2](https://github.com/kevinchappell/formBuilder/compare/v3.4.1...v3.4.2) (2020-03-04)
-
-
-### Bug Fixes
-
-* clone id bug ([82c29a9](https://github.com/kevinchappell/formBuilder/commit/82c29a9448ce31b247a24fb2c678f101bfb04cd0))
-
-## [3.4.1](https://github.com/kevinchappell/formBuilder/compare/v3.4.0...v3.4.1) (2020-03-02)
-
-
-### Bug Fixes
-
-* multiple attribute added to select ([bb04cd4](https://github.com/kevinchappell/formBuilder/commit/bb04cd4fa41a73520aec669da370699a2c900544))
-
-# [3.4.0](https://github.com/kevinchappell/formBuilder/compare/v3.3.4...v3.4.0) (2020-02-02)
-
-
-### Bug Fixes
-
-* website generation and deployment ([6ba8ce0](https://github.com/kevinchappell/formBuilder/commit/6ba8ce094c2b28853413613f46581f7cc79702e3))
-
-
-### Features
-
-* **editor:** hidden field labels ([f9b648c](https://github.com/kevinchappell/formBuilder/commit/f9b648c109584202b5d739886b5d449e8807f94c))
-
-## [3.3.5](https://github.com/kevinchappell/formBuilder/compare/v3.3.4...v3.3.5) (2020-02-02)
-
-
-### Bug Fixes
-
-* website generation and deployment ([6ba8ce0](https://github.com/kevinchappell/formBuilder/commit/6ba8ce094c2b28853413613f46581f7cc79702e3))
-
-## [3.3.4](https://github.com/kevinchappell/formBuilder/compare/v3.3.3...v3.3.4) (2020-02-01)
-
-
-### Bug Fixes
-
-* update dependencies ([2c81e41](https://github.com/kevinchappell/formBuilder/commit/2c81e4114870abb5b49e9fc780e22d791d6e845c))
-
-## [3.3.3](https://github.com/kevinchappell/formBuilder/compare/v3.3.2...v3.3.3) (2020-02-01)
-
-
-### Bug Fixes
-
-* travis deploy ([127909d](https://github.com/kevinchappell/formBuilder/commit/127909d5e36416d1bdab8356884317d724ddd0bb))
-* travis node version, include docs in dist package ([78799a5](https://github.com/kevinchappell/formBuilder/commit/78799a520f6af0bea7800ccfb27473a6a60844a7))
-
-## [3.3.2](https://github.com/kevinchappell/formBuilder/compare/v3.3.1...v3.3.2) (2020-01-31)
-
-
-### Bug Fixes
-
-* build ([55721ec](https://github.com/kevinchappell/formBuilder/commit/55721ec85dc55f289d46d1ead3941bdbbdc66f21))
-
-## [3.3.1](https://github.com/kevinchappell/formBuilder/compare/v3.3.0...v3.3.1) (2020-01-28)
-
-
-### Bug Fixes
-
-* field removed from stage but not formData ([2c6d824](https://github.com/kevinchappell/formBuilder/commit/2c6d824fe5dcbe413440b3c3fa59b5944e1c5bf9)), closes [#1028](https://github.com/kevinchappell/formBuilder/issues/1028)
-
-# [3.3.0](https://github.com/kevinchappell/formBuilder/compare/v3.2.6...v3.3.0) (2020-01-26)
-
-
-### Bug Fixes
-
-* **demo:** clear current id when removed from stage ([e0c0f2e](https://github.com/kevinchappell/formBuilder/commit/e0c0f2ea8f204da6e11d8de938e27ca6687d5588))
-
-
-### Features
-
-* getCurrentFieldId ([c0148b3](https://github.com/kevinchappell/formBuilder/commit/c0148b33dc7154e2bc2a241255b7a2db6257534f)), closes [#571](https://github.com/kevinchappell/formBuilder/issues/571)
-
-## [3.2.6](https://github.com/kevinchappell/formBuilder/compare/v3.2.5...v3.2.6) (2019-12-31)
-
-
-### Bug Fixes
-
-* adblock because of fb- prefix ([e091474](https://github.com/kevinchappell/formBuilder/commit/e091474219cba88ff0c950649de62ec0de9ab414))
-
-## [3.2.5](https://github.com/kevinchappell/formBuilder/compare/v3.2.4...v3.2.5) (2019-06-26)
-
-
-### Bug Fixes
-
-* browserslist config, build:vendor ([32acf6b](https://github.com/kevinchappell/formBuilder/commit/32acf6b))
-
-## [3.2.4](https://github.com/kevinchappell/formBuilder/compare/v3.2.3...v3.2.4) (2019-05-27)
-
-
-### Bug Fixes
-
-* npm audit ([d7d7535](https://github.com/kevinchappell/formBuilder/commit/d7d7535))
-* numeric value preservation ([9e4de4f](https://github.com/kevinchappell/formBuilder/commit/9e4de4f)), closes [#945](https://github.com/kevinchappell/formBuilder/issues/945)
-
-## [3.2.3](https://github.com/kevinchappell/formBuilder/compare/v3.2.2...v3.2.3) (2019-05-02)
-
-
-### Bug Fixes
-
-* development build, upgrade babel ([a3e446c](https://github.com/kevinchappell/formBuilder/commit/a3e446c)), closes [#942](https://github.com/kevinchappell/formBuilder/issues/942)
-* use run-script instead of run ([e8275e5](https://github.com/kevinchappell/formBuilder/commit/e8275e5))
-
-## [3.2.2](https://github.com/kevinchappell/formBuilder/compare/v3.2.1...v3.2.2) (2019-04-23)
-
-
-### Bug Fixes
-
-* update jquery dependency ([5541494](https://github.com/kevinchappell/formBuilder/commit/5541494))
-
-## [3.2.1](https://github.com/kevinchappell/formBuilder/compare/v3.2.0...v3.2.1) (2019-03-30)
-
-
-### Bug Fixes
-
-* **btn:** button style classes not correctly applied ([3278840](https://github.com/kevinchappell/formBuilder/commit/3278840))
-
-# [3.2.0](https://github.com/kevinchappell/formBuilder/compare/v3.1.3...v3.2.0) (2019-03-29)
-
-
-### Features
-
-* **i18n:** add support for translatable typeUserAttrs ([158b278](https://github.com/kevinchappell/formBuilder/commit/158b278)), closes [#919](https://github.com/kevinchappell/formBuilder/issues/919)
-
-## [3.1.3](https://github.com/kevinchappell/formBuilder/compare/v3.1.2...v3.1.3) (2018-12-12)
-
-
-### Bug Fixes
-
-* **dependency:** har-validator 5.1.2 was unpublished, causing ci builds to fail. Update dependencies to fix ([051c0e0](https://github.com/kevinchappell/formBuilder/commit/051c0e0))
-* **langs:** Update formBuilder-languages dependency ([5b39cb1](https://github.com/kevinchappell/formBuilder/commit/5b39cb1))
-
-## [3.1.2](https://github.com/kevinchappell/formBuilder/compare/v3.1.1...v3.1.2) (2018-11-20)
-
-
-### Bug Fixes
-
-* **xml:** fields are nesting ([428ad4f](https://github.com/kevinchappell/formBuilder/commit/428ad4f))
-
-## [3.1.1](https://github.com/kevinchappell/formBuilder/compare/v3.1.0...v3.1.1) (2018-11-19)
-
-
-### Bug Fixes
-
-* **formRender:** error when destrtcuring null ([0b958af](https://github.com/kevinchappell/formBuilder/commit/0b958af))
-
-# [3.1.0](https://github.com/kevinchappell/formBuilder/compare/v3.0.2...v3.1.0) (2018-11-15)
-
-
-### Features
-
-* **column:** add bootstrap grid/column support ([e9cc23a](https://github.com/kevinchappell/formBuilder/commit/e9cc23a)), closes [#859](https://github.com/kevinchappell/formBuilder/issues/859)
-
-## [3.0.2](https://github.com/kevinchappell/formBuilder/compare/v3.0.1...v3.0.2) (2018-11-12)
-
-
-### Bug Fixes
-
-* **package.json:** remove preinstall ([#865](https://github.com/kevinchappell/formBuilder/issues/865)) ([3ab0d35](https://github.com/kevinchappell/formBuilder/commit/3ab0d35))
-
-## [3.0.1](https://github.com/kevinchappell/formBuilder/compare/v3.0.0...v3.0.1) (2018-11-08)
-
-
-### Bug Fixes
-
-* **plugins:** fix plugins build script ([de388bd](https://github.com/kevinchappell/formBuilder/commit/de388bd))
-
-# [3.0.0](https://github.com/kevinchappell/formBuilder/compare/v2.10.9...v3.0.0) (2018-11-07)
-
-
-### Bug Fixes
-
-* **labels:** html in xml labels breaks forms ([#858](https://github.com/kevinchappell/formBuilder/issues/858)) ([ea29e79](https://github.com/kevinchappell/formBuilder/commit/ea29e79))
-
-
-### BREAKING CHANGES
-
-* **labels:** Existing forms created using xml dataType that have html labels will have their labels converted to text
-
-Note: the next major release will drop xml support completely
-
-## [2.10.9](https://github.com/kevinchappell/formBuilder/compare/v2.10.8...v2.10.9) (2018-11-06)
-
-
-### Bug Fixes
-
-* **docs:** use highlightjs 9.12.0 ([2c61944](https://github.com/kevinchappell/formBuilder/commit/2c61944))
-
-## [2.10.8](https://github.com/kevinchappell/formBuilder/compare/v2.10.7...v2.10.8) (2018-11-06)
-
-
-### Bug Fixes
-
-* **cd:** website auto deploy ([8235f2b](https://github.com/kevinchappell/formBuilder/commit/8235f2b))
-
-## [2.10.7](https://github.com/kevinchappell/formBuilder/compare/v2.10.6...v2.10.7) (2018-11-06)
-
-
-### Bug Fixes
-
-* **cd:** update travis config and deploy script ([ac03283](https://github.com/kevinchappell/formBuilder/commit/ac03283))
-* **formData:** formData getter not working ([235b77e](https://github.com/kevinchappell/formBuilder/commit/235b77e))
-
-## [2.10.6](https://github.com/kevinchappell/formBuilder/compare/v2.10.5...v2.10.6) (2018-11-06)
-
-
-### Bug Fixes
-
-* **cd:** update deploy script to not require babel-node ([f161be5](https://github.com/kevinchappell/formBuilder/commit/f161be5))
-* **cd:** update readme, have deploy script return, run deploy script directly ([1916870](https://github.com/kevinchappell/formBuilder/commit/1916870))
-
-## [2.10.5](https://github.com/kevinchappell/formBuilder/compare/v2.10.4...v2.10.5) (2018-11-06)
-
-
-### Bug Fixes
-
-* **cd:** semantic-release plugins, site deploy commands ([57325bc](https://github.com/kevinchappell/formBuilder/commit/57325bc))
-
-## [2.10.4](https://github.com/kevinchappell/formBuilder/compare/v2.10.3...v2.10.4) (2018-11-06)
-
-
-### Bug Fixes
-
-* **cd:** update encrypted access keys ([d36cab9](https://github.com/kevinchappell/formBuilder/commit/d36cab9))
-* **ci:** deploy ([68e897a](https://github.com/kevinchappell/formBuilder/commit/68e897a))
-* **ci:** deploy script typo ([2e3fbe1](https://github.com/kevinchappell/formBuilder/commit/2e3fbe1))
-* **ci:** deploys ([63aa874](https://github.com/kevinchappell/formBuilder/commit/63aa874))
-* **docs:** Add missing documentation ([#855](https://github.com/kevinchappell/formBuilder/issues/855)) ([094573c](https://github.com/kevinchappell/formBuilder/commit/094573c)), closes [#678](https://github.com/kevinchappell/formBuilder/issues/678) [#648](https://github.com/kevinchappell/formBuilder/issues/648)
-* **package.json:** update repository.url ([a511e0d](https://github.com/kevinchappell/formBuilder/commit/a511e0d))
-
-- v2.10.3 - Bugfix fbControlsLoaded [#853](https://github.com/kevinchappell/formBuilder/pull/853)
-- v2.10.2 - Bugfix i18n lookups [#852](https://github.com/kevinchappell/formBuilder/pull/852)
-- v2.10.1 - Bugfix typeUserAttrs [#851](https://github.com/kevinchappell/formBuilder/pull/851)
-- v2.10.0 - Release 2.10.0 [#842](https://github.com/kevinchappell/formBuilder/pull/842)
- ## Fixed:
- - inline checkbox/radio
- - bug with clear() as reported in #750 and #828, control type check to clear() so that method doesn't reset the value for checkboxes and radio buttons, which caused the userData getter to work incorrectly.
- - #530, Modified helpers.js::xmlSave() to serialize field data so any XML in a field's attributes is properly escaped. (#804)
- - doubleclick event handler, resolves #535
- - new option name, resolves #687
- - name attribute for inputs with multiple, resolves #736
- - current formData not carried over to new formBuilder instance on language change, resolves #735
- - attrString util, resolves #739
- - Lock dev dependency versions, prevents breaking changes introduced by node_modules
- - Ensure custom attributes are included in exported data resolves #824 resolves #773
- - Other option should hide input value when deselected, resolves #808
- - do not disable className or name attributes- resolves #819
- - ensure html from label is correctly escaped, resolves #816
- - inputSet bug
- - label saving, add esc to close data modal, resolves #757
- - attribute placeholder typo, fix label added when it should be removed, resolves #763
- - bug where empty className is not applied
- - label overflow problem, resolves #779
- - duplicate custom controls
-
-
- ## Added:
- - Deploy script
- - formbuilder-languages module
- - disableSubtypes option
- - `onremove` to typeUserEvents
- - `disableHTMLLabels` option, resolves #747
- - `replaceFields` option
- - `layout` and `layoutTemplates` docs
- - `onOpenFieldEdit` and `scrollToFieldOnAdd` options, `closeAllFieldEdit` action
- - `toggleAllFieldEdit` action
- - `setData` and render actions to formRender, resolves #770
- - `onFieldAdd` option and `toggleFieldEdit` action, resolves #772
- - Enable multiple select field for typeUserAttrs, resolves #776
- - `allowStageSort` option, resolves #777
-
-
- ## Removed:
- - remove mi18n network dependency
- - package-lock.json
- - replace comma, resolves #740
- - unused modules
- - gulp
-
-
- ## Improved:
- - Documentation
- - xmlSave performance and code style
- - Demo, moved to src so can transpile, inline style, more api buttons for manual testing
- - Switch to yarn
- - Use existing formBuilder instance instead of creating a new one on setLang, fixes memory leak where reference was maintained to old instance
- - typeUserAttrs docs, resolves #810
- - code style and cleanup
- - use spaces instead of tabs for data formatting
- - use both instance methods and jQuery plugin calls ie. `fbInstance.setData(formData)` and `$('.build-wrap').formBuilder('setData', formData)`
- - update mi18n, add support checkbox custom attributes
- - reduce file churn
- - improve stickyControls
- - use onRender instead of setTimeout
-
-- v2.9.8 - hotfix(inputSets): control icon [#634](https://github.com/kevinchappell/formBuilder/pull/634)
-- v2.9.7 - Merge branch 'hotfix/2.9.7'
-- v2.9.6 - Removed unused style, add get-data class to data button [#605](https://github.com/kevinchappell/formBuilder/pull/605)
-- v2.9.5 - Improvements(options) disabledFieldButtons option [#604](https://github.com/kevinchappell/formBuilder/pull/604)
-- v2.9.4 - Pull primary input outside of label for "other" option [#598](https://github.com/kevinchappell/formBuilder/pull/598)
-- v2.9.3 - Fix Edge "Help Text" issue #560 [#596](https://github.com/kevinchappell/formBuilder/pull/596)
-- v2.9.2 - Do not default select radio [#603](https://github.com/kevinchappell/formBuilder/pull/603)
-- v2.9.1 - Move bootstrap stuff inside .formbuilder selector [#602](https://github.com/kevinchappell/formBuilder/pull/602)
-- v2.9.0 - feature(option) replaceFields [#593](https://github.com/kevinchappell/formBuilder/pull/593)
-- v2.8.0 - improvement(checkbox): markup change [#585](https://github.com/kevinchappell/formBuilder/pull/585)
-- v2.7.0 - v2.6.0
-- v2.6.0 - Add support for disabling form action buttons (copy, edit, remove) [#550](https://github.com/kevinchappell/formBuilder/pull/550)
-- v2.5.3 - Hotfix: paragraph label overflow resolves #517 [#525](https://github.com/kevinchappell/formBuilder/pull/525)
-- v2.5.2 - Fineuploader error handling & reporting [#516](https://github.com/kevinchappell/formBuilder/pull/516)
- + fixed autocomplete control behaviour [#521](https://github.com/kevinchappell/formBuilder/pull/521)
-- v2.5.1 - copy in control config rather than reference it so any alterations arent global. support fineuploader handler having querystring args. fix bug in applying fineuploader config to defaults. [#513](https://github.com/kevinchappell/formBuilder/pull/513)
-- v2.5.0 - upgraded fineuploader plugin to use cdnjs by default so it no longer … [#509](https://github.com/kevinchappell/formBuilder/pull/509)
-- v2.4.1 - Hotfix: disableFields option [#508](https://github.com/kevinchappell/formBuilder/pull/508)
-- v2.4.0 - New control plugin to replace the default file upload type [#506](https://github.com/kevinchappell/formBuilder/pull/506)
-- v2.3.5 - Hotfix: Constraint API [#505](https://github.com/kevinchappell/formBuilder/pull/505)
-- v2.3.4 - Hotfix: preload values to exisitng field types, fix fieldOrder [#501](https://github.com/kevinchappell/formBuilder/pull/501)
-- v2.3.3 - Hotfix: actionButtons are submitting forms [#498](https://github.com/kevinchappell/formBuilder/pull/498)
-- v2.3.2 - Hotfix: btn-undefined [#496](https://github.com/kevinchappell/formBuilder/pull/496)
-- v2.3.1 - Hotfix: opts.messages, sourcemaps [#495](https://github.com/kevinchappell/formBuilder/pull/495)
-- v2.3.0 - General cleanup, actionButtons option [#494](https://github.com/kevinchappell/formBuilder/pull/494)
-- v2.2.8 - Bug/extend fields [#493](https://github.com/kevinchappell/formBuilder/pull/493)
-- v2.2.7 - Make checkbox valid when at least one checkbox is checked [#490](https://github.com/kevinchappell/formBuilder/pull/490)
-- v2.2.6 - Remove outdated unminified files [#488](https://github.com/kevinchappell/formBuilder/pull/488)
-- v2.2.5 - Update package manager files to serve correct- updated version [#487](https://github.com/kevinchappell/formBuilder/pull/487)
-- v2.2.4 - Fix Other input behavior [#485](https://github.com/kevinchappell/formBuilder/pull/485)
-- v2.2.3 - Return unformatted JSON by default [#481](https://github.com/kevinchappell/formBuilder/pull/481)
-- v2.2.2 - Hotfix: getData [#464](https://github.com/kevinchappell/formBuilder/pull/464)
-- v2.2.1 - Hotfix: bootstrap addon style, Update documentation
-- v2.2.0 - Feature: Controls API, see: https://formbuilder.online/docs/formBuilder/overview/
- Feature: Injected styles, no longer to need include css file.
-- v2.1.2 - Update npm scripts
-- v2.1.1 - Required checkbox fix, form-horizontal css alignment fix [#422](https://github.com/kevinchappell/formBuilder/pull/422)
-- v2.1.0 - Update docs & Critical fixes [#420](https://github.com/kevinchappell/formBuilder/pull/420)
-- v2.0.0 - ✨ Custom Controls, Automatic i18n, WYSIWYG Editor, HTML Labels ✨ [#414](https://github.com/kevinchappell/formBuilder/pull/414)
-- v1.24.7 - Fix textarea value not saving when preview changed [#408](https://github.com/kevinchappell/formBuilder/pull/408)
-- v1.24.6 - Bugfix: XMLParser children in ie #369, date form-control class #351 [#373](https://github.com/kevinchappell/formBuilder/pull/373)
-- v1.24.5 - Code cleanup, alignment issues, check select required fix
-- v1.24.4 - Bug fixes: bower.json, formRender children undefined
-- v1.24.2 - Hotfix: typeUserEvents, attribute array converted to comma separated list [#297](https://github.com/kevinchappell/formBuilder/pull/297)
-- v1.24.1 - Bugfix: defaultFields names are overwritten [#295](https://github.com/kevinchappell/formBuilder/pull/295)
-- v1.24.0 - Hotfix and Feature bonanza [#293](https://github.com/kevinchappell/formBuilder/pull/293)
-- v1.23.1 - Hotfix: deleteId undefined [#291](https://github.com/kevinchappell/formBuilder/pull/291)
-- v1.23.0 - Feature: inputSets [#285](https://github.com/kevinchappell/formBuilder/pull/285)
-- v1.22.1 - Bugfix: updateJSON does not set correct version [#284](https://github.com/kevinchappell/formBuilder/pull/284)
-- v1.22.0 - Feature: Rows Attribute for TextArea [#282](https://github.com/kevinchappell/formBuilder/pull/282)
-- v1.21.3 - Hotfix: addField index 0 without fields [#279](https://github.com/kevinchappell/formBuilder/pull/279)
-- v1.21.2 - Add Build and commit to gulp tag task [#278](https://github.com/kevinchappell/formBuilder/pull/278)
-- v1.21.1 - Chore: Add gulp tag task [#277](https://github.com/kevinchappell/formBuilder/pull/277)
-- v1.21.0 - Feature: addField and removeField actions [#276](https://github.com/kevinchappell/formBuilder/pull/276)
-- v1.20.3 - Bugfix: multi option name attribute [#274](https://github.com/kevinchappell/formBuilder/pull/274)
-- v1.20.2 - Bugfix: gulp font-edit [#263](https://github.com/kevinchappell/formBuilder/pull/263)
-- v1.20.1 - Bugfix: XML other option [#262](https://github.com/kevinchappell/formBuilder/pull/262)
-- v1.20.0 - Feature: typeUserEvents [#260](https://github.com/kevinchappell/formBuilder/pull/260)
-- v1.19.4 - Bugfix: typeUserAttrs repeated value from formData [#258](https://github.com/kevinchappell/formBuilder/pull/258)
-- v1.19.3 - Feature: tel subtype [#256](https://github.com/kevinchappell/formBuilder/pull/256)
-- v1.19.2 - Hotfix: Correctly escape attributes [#255](https://github.com/kevinchappell/formBuilder/pull/255)
-- v1.19.1 - Hotfix: typeUserAttrs duplicate attributes [#254](https://github.com/kevinchappell/formBuilder/pull/254)
-- v1.19.0 - Feature: Copy button [#252](https://github.com/kevinchappell/formBuilder/pull/252)
-- v1.18.0 - Feature: typeUserAttrs [#247](https://github.com/kevinchappell/formBuilder/pull/247)
-- v1.17.2 - Bugfix: Classes not saving in XML mode and option pre-select issues[#250](https://github.com/kevinchappell/formBuilder/pull/250)
-- v1.17.1 - Bugfix: `clearFields` action will error if no fields on stage[#245](https://github.com/kevinchappell/formBuilder/pull/245)
-- v1.17.0 - Feature: `showActionButtons` option and `showData` action[#244](https://github.com/kevinchappell/formBuilder/pull/244)
-- v1.16.0 - Feature: JSON support[#237](https://github.com/kevinchappell/formBuilder/pull/237)
-- v1.15.6 - Bugfix: Remove fields from `disableFields` option.[#231](https://github.com/kevinchappell/formBuilder/pull/231)
-- v1.15.5 - Feature: `save` action [#228](https://github.com/kevinchappell/formBuilder/pull/228)
-- v1.15.4 - Bugfix: formRender textarea value undefined [#224](https://github.com/kevinchappell/formBuilder/pull/224)
-- v1.15.3 - Bugfix: Cannot run formRender on multiple elements [#223](https://github.com/kevinchappell/formBuilder/pull/223)
-- v1.15.2 - Feature/Bugfix: Actions, formRender textarea `value` bugfix [#219](https://github.com/kevinchappell/formBuilder/pull/219)
-- v1.15.0 - Feature/Bugfix: Allow multiple files, bugfixes [#211](https://github.com/kevinchappell/formBuilder/pull/211)
-- v1.14.6 - Hotfix: set Sortable `scroll` to `false` [#206](https://github.com/kevinchappell/formBuilder/pull/206)
-- v1.14.5 - Chore: Add composer.json [#207](https://github.com/kevinchappell/formBuilder/pull/207)
-- v1.14.4 - Bugfix: Form not saving when fields added by click [#203](https://github.com/kevinchappell/formBuilder/pull/203)
-- v1.14.3 - Bugfix/Chore: fix formRender missing bootstrap styling, updated demo [#202](https://github.com/kevinchappell/formBuilder/pull/202)
-- v1.14.2 - Feature: Value attribute, improved mobile styling [#199](https://github.com/kevinchappell/formBuilder/pull/199)
-- v1.14.1 - Bugfix: Option defaults not rendering [#198](https://github.com/kevinchappell/formBuilder/pull/198)
-- v1.14.0 - Feature: Fast edit options. Click to add field, sticky controls, auto edit toggle [#190](https://github.com/kevinchappell/formBuilder/pull/190)
-- v1.11.0 - Feature: Number input [#188](https://github.com/kevinchappell/formBuilder/pull/188)
-- v1.10.6 - Bugfix: Limit scope of bootstrap helpers [#187](https://github.com/kevinchappell/formBuilder/pull/187)
-- v1.10.5 - Bugfix: Other option for radio and checkbox xml attribute [#186](https://github.com/kevinchappell/formBuilder/pull/186)
-- v1.10.4 - Bugfix: Object.assign [#181](https://github.com/kevinchappell/formBuilder/pull/181)
-- v1.10.3 - Bugfix: defaultFields multiple select not applied [#176](https://github.com/kevinchappell/formBuilder/pull/176)
-- v1.10.2 - Bugfix: Remove role limit [#175](https://github.com/kevinchappell/formBuilder/pull/175)
-- v1.10.1 - Bugfix: Removing an option causes error [#169](https://github.com/kevinchappell/formBuilder/pull/169)
-- v1.10.0 - Feature: Add "Other" option to checkbox and radio group fields [#168](https://github.com/kevinchappell/formBuilder/pull/168)
-- v1.9.33 - Bugfix: field close tab callback fired twice on mobile [#167](https://github.com/kevinchappell/formBuilder/pull/167)
-- v1.9.32 - Bugfix: Change validators to run on blur instead of keyup [#164](https://github.com/kevinchappell/formBuilder/pull/164)
-- v1.9.31 - Bugfix: Firefox loses reference to textarea [#161](https://github.com/kevinchappell/formBuilder/pull/161)
-- v1.9.30 - Bugfix: Block elements missing classNames [#159](https://github.com/kevinchappell/formBuilder/pull/159)
-- v1.9.28 - Bugfix: Remove polyfills causing problems in some apps [#151](https://github.com/kevinchappell/formBuilder/pull/151)
-- v1.9.27 - Bugfix: Header subtypes [#136](https://github.com/kevinchappell/formBuilder/pull/136)
-- v1.9.26 - Bugfix: saved subtypes not rendering [#134](https://github.com/kevinchappell/formBuilder/pull/134)
-- v1.9.25 - Bugfix: Standardizes how field variables are processed from xml, defaultfields and new field sources [#129](https://github.com/kevinchappell/formBuilder/pull/129)
-- v1.9.24 - Bugfix: Update internal field id to better handle multiple editors [#126](https://github.com/kevinchappell/formBuilder/pull/126)
-- v1.9.23 - Bugfix: editing class attribute is wonky [#122](https://github.com/kevinchappell/formBuilder/pull/122)
-- v1.9.22 - Feature: `controlOrder` option. [#118](https://github.com/kevinchappell/formBuilder/pull/118)
-- v1.9.21 - Bugfix: Add pull left and right to `_bs.scss`
-- v1.9.20 - Feature: sortableFields #114
-- v1.9.19
- - Feature: controlPosition option #114
- - Feature: sortableFields option #114
-- v1.9.18 - Bugfix: Button variables not processed from XML #113
-- v1.9.17 - Bugfix: Umlauts break XML #112
-- v1.9.16 - Bugfix: XML parse issue [#110](https://github.com/kevinchappell/formBuilder/pull/110)
-- v1.9.15 - Bugfix: Option character encoding problem [#109](https://github.com/kevinchappell/formBuilder/pull/109)
-- v1.9.14 -
- - Feature: Header and Paragraph tags [#108](https://github.com/kevinchappell/formBuilder/pull/108)
- - Bugfix: button classes, special character encoding, renamed functions for Selenium
- - Chore: added/updated comments [#106](https://github.com/kevinchappell/formBuilder/pull/106)
-- v1.9.13 - Bugfix: Add `defaultFields` to formData [#103](https://github.com/kevinchappell/formBuilder/pull/103)
-- v1.9.12 - Feature: disableFields option, formRender jQuery fallback, formSaved Event [#101](https://github.com/kevinchappell/formBuilder/pull/101)
-- v1.9.11 - Bugfix: formRender hidden field issue [#100](https://github.com/kevinchappell/formBuilder/pull/100)
-- v1.9.10 - Bugfix: formRender not rendering with containers [#98](https://github.com/kevinchappell/formBuilder/pull/98)
-- v1.9.9 - Bugfix: formRender reinit, take regular js object [#97](https://github.com/kevinchappell/formBuilder/pull/97)
-- v1.9.8 - Bugfix: Enter toggles XML field [#95](https://github.com/kevinchappell/formBuilder/pull/95)
-- v1.9.7 - Bugfix: Radio group and checkbox group not rendered correctly in IE [#93](https://github.com/kevinchappell/formBuilder/pull/93)
-- v1.9.6 - Bugfix: Arrows functions don't work with arguments.callee [#92](https://github.com/kevinchappell/formBuilder/pull/92)
-- v1.9.5 - Bugfix: IE Element.remove() polyfill [#91](https://github.com/kevinchappell/formBuilder/pull/91)
-- v1.9.4 - Bugfix: IE compatibility issues [#90](https://github.com/kevinchappell/formBuilder/pull/90)
-- v1.9.3 - Bugfix: Update .jshintrc [#89](https://github.com/kevinchappell/formBuilder/pull/89)
-- v1.9.2 - Bugfix: remove CustomEvent, no IE support [#88](https://github.com/kevinchappell/formBuilder/pull/88)
-- v1.9.1 - Bugfix: invalid package.json [#86](https://github.com/kevinchappell/formBuilder/pull/86)
-- v1.9.0 - Feature: Style and data updates, Class attribute [#85](https://github.com/kevinchappell/formBuilder/pull/85)
-- v1.8.2 - Bugfix: Radio group preview [#82](https://github.com/kevinchappell/formBuilder/pull/82)
-- v1.8.1 - Feature: File upload element [#80](https://github.com/kevinchappell/formBuilder/pull/80)
-- v1.8.0 - Feature: Button element [#79](https://github.com/kevinchappell/formBuilder/pull/79)
-- v1.7.10 - Bugfix: stringify bug causing `null` to be 'null'
-- v1.7.9 -
- - Add options to formRender
- + `render` : defaults to `true`, will not render the html fields if set false.
- + `notify` : Allows you to define your own handler for notifications. defaults to console.log, console.warn and console.error.
- - Set form field data to template element to be used by other modules.
-- v1.7.8 - Add fontello fonts with config and Makefile for editing icons.
-- v1.7.7
- - Bugfix: Close button doesn't close #71
- - Bugfix: max-length attribute should be maxlength #70
- - Chore: Add gulp plumber to build process to catch errors instead of fail build.
-- v1.7.6 - Bugfix: radio and checkbox group options without values cause formRender error.
-- v1.7.5
- - Bugfix: Multiple selection bug for checkbox group and radio group fields. [#66](https://github.com/kevinchappell/formBuilder/pull/66)
- - Chore: Refactor build process, Add linter and code style settings, formRender santized attributes [#67](https://github.com/kevinchappell/formBuilder/pull/67)
-- v1.7.4 - Feature: Multiple selection. See: [#65](https://github.com/kevinchappell/formBuilder/pull/65)
-- v1.7.3 - Feature: Mobile support for touch based drag and drop. See: [#64](https://github.com/kevinchappell/formBuilder/pull/64)
-- v1.7.2 - Bugfix/Feature: Added placeholder attribute for `text` and `textarea` fields. See: [#63](https://github.com/kevinchappell/formBuilder/pull/63)
-- v1.7.1 - Bugfix/Feature: Added reinitialization to formBuilder. See: [#62](https://github.com/kevinchappell/formBuilder/pull/62)
-- v1.7.0 - Feature: Added sub-types to the `text` input for `password`, `color`, and `email` html5 inputs.
-- v1.6.8 - Bugfix: Description and required not rendered in formRender
-- v1.6.7 - Bugfix: fields are not sortable
-- v1.6.6 - Bugfix: change should be triggered when hidden textarea updated
-- v1.6.5 - Feature: Make rendered fields targetable
-- v1.6.4 - Bugfix: User options should be deep copied with `$.extend`
-- v1.6.3 - Bugfix: Remove `max-length` attribute for hidden fields, Update preview and label for `textarea`
-- v1.6.2 - Bugfix: Option text not rendered in IE #39
-- v1.6.1 - Bugfix: required attribute should not be rendered when false.
-- v1.6.0 - Feature: Hidden input field type added
-- v1.5.4 - update gulp to autopush tags
-- v1.5.3 - Bugfix: multiple formBuilder on one page.
-- v1.5.2 - Bugfix: formRender radio-group invalid name property
-- v1.5.1 - Bugfix: Add minimal Bootstrap styling for `formRender`
-- v1.5 - Feature: checkbox inputs can now be made into toggle switch. [details here](https://github.com/kevinchappell/formBuilder/pull/24)
-- v1.4.0 - Feature: `formRender` is a companion plugin to render saved formData into a usable form. [details here](https://github.com/kevinchappell/formBuilder/pull/20)
-- v1.3.5 - Bugfix: XML parse and save
- + This fix brings a slight update in XML markup for multiple value fields, specifically the `