{ "version": 3, "sources": ["../../javascript/controllers/accordion-controller.js", "../../javascript/controllers/accordion2-controller.js", "../../javascript/controllers/admin-beer-controller.js", "../../javascript/controllers/admin-merge-controller.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AlgoliaInsightsHit.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AutocompleteInsightsApi.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/EventParams.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/InsightsClient.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/index.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/decycle.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/invariant.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/MaybePromise.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/SearchResponse.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/UserAgent.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/warn.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteClassNames.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteCollection.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteComponents.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteOptions.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompletePlugin.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompletePropGetters.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteRender.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteRenderer.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteSource.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteState.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteTranslations.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/HighlightHitParams.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/js/index.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/index.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js", "../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getPluginSubmitPromise.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getAutocompleteElementId.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNativeEvent.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/reshape.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/onInput.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/metadata.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteApi.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteCollection.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteContext.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteEnvironment.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteOptions.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePropGetters.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePlugin.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteReshape.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSetters.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteState.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/core/index.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteStore.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/types/AutocompleteSubscribers.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/types/index.js", "../../../node_modules/@algolia/autocomplete-core/dist/esm/index.js", "../../../node_modules/htm/dist/htm.module.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/ClearIcon.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeDeep.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/pickBy.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/setProperties.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/getCreateDomElement.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/Input.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/LoadingIcon.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/SearchIcon.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/createAutocompleteDom.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/createEffectWrapper.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/createReactiveWrapper.js", "../../../node_modules/preact/src/constants.js", "../../../node_modules/preact/src/util.js", "../../../node_modules/preact/src/options.js", "../../../node_modules/preact/src/create-element.js", "../../../node_modules/preact/src/component.js", "../../../node_modules/preact/src/diff/props.js", "../../../node_modules/preact/src/create-context.js", "../../../node_modules/preact/src/diff/children.js", "../../../node_modules/preact/src/diff/index.js", "../../../node_modules/preact/src/render.js", "../../../node_modules/preact/src/clone-element.js", "../../../node_modules/preact/src/diff/catch-error.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/HighlightedHit.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/SnippetedHit.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/index.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createRequester.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/index.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/index.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/getAlgoliaFacets.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/getAlgoliaResults.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/index.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.js", "../../../node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createRequester.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/types/index.js", "../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/components/Highlight.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/components/Snippet.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/components/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/getDefaultOptions.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/render.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/autocomplete.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/types/AutocompleteApi.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/types/AutocompleteDom.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/types/index.js", "../../../node_modules/@algolia/autocomplete-js/dist/esm/index.js", "../../../node_modules/algoliasearch/dist/algoliasearch-lite.umd.js", "../../javascript/controllers/algolia-autocomplete-controller.js", "../../javascript/vendor/aria-autocomplete.min.js", "../../javascript/controllers/aria-autocomplete-controller.js", "../../javascript/controllers/auto-save-controller.js", "../../javascript/controllers/auto-textfield-height-controller.js", "../../javascript/controllers/autocomplete-controller.js", "../../javascript/controllers/availability-promo-controller.js", "../../javascript/controllers/beacon-controller.js", "../../javascript/controllers/product-autocomplete-controller.js", "../../javascript/controllers/beer-autocomplete-controller.js", "../../javascript/controllers/beer-info-controller.js", "../../javascript/controllers/beer-suggestions-controller.js", "../../javascript/controllers/beers-added-modal-controller.js", "../../javascript/controllers/block-modal-controller.js", "../../javascript/controllers/brewery-autocomplete-controller.js", "../../javascript/controllers/brewery-multi-select-controller.js", "../../javascript/controllers/bulk-move-controller.js", "../../javascript/controllers/calculator-controller.js", "../../javascript/controllers/calendly-controller.js", "../../javascript/controllers/charts-controller.js", "../../javascript/controllers/checkbox-counter-controller.js", "../../javascript/controllers/checkbox-submit-controller.js", "../../javascript/controllers/checkbox-toggle-controller.js", "../../javascript/controllers/checklist-accordion-controller.js", "../../javascript/controllers/checklists-controller.js", "../../javascript/controllers/choose-saved-card-controller.js", "../../javascript/controllers/clipboard_controller.js", "../../javascript/controllers/closeable-controller.js", "../../javascript/controllers/codemirror-controller.js", "../../javascript/controllers/collapsible-controller.js", "../../javascript/controllers/collapsible-simple-controller.js", "../../javascript/controllers/condition-ids-controller.js", "../../javascript/controllers/conditional-input-controller.js", "../../javascript/controllers/custom-product-autocomplete-controller.js", "../../javascript/controllers/date-input-controller.js", "../../javascript/controllers/digital-display-controller.js", "../../javascript/controllers/ds-beer-autocomplete-controller.js", "../../../node_modules/ev-emitter/ev-emitter.js", "../../../node_modules/get-size/get-size.js", "../../../node_modules/desandro-matches-selector/matches-selector.js", "../../../node_modules/fizzy-ui-utils/utils.js", "../../../node_modules/outlayer/item.js", "../../../node_modules/outlayer/outlayer.js", "../../../node_modules/masonry-layout/masonry.js", "../../../node_modules/imagesloaded/imagesloaded.js", "../../javascript/controllers/filter-templates-controller.js", "../../javascript/controllers/fonts-controller.js", "../../javascript/controllers/google-autocomplete-controller.js", "../../javascript/controllers/hamburger-menu-controller.js", "../../javascript/models/debouncer.js", "../../javascript/controllers/hiding-header-controller.js", "../../javascript/controllers/honeybadger-controller.js", "../../javascript/controllers/image-background-remover-controller.js", "../../javascript/lib/load-styles.js", "../../javascript/controllers/image-editor-controller.js", "../../javascript/controllers/location-autocomplete-controller.js", "../../javascript/controllers/masonry-grid-controller.js", "../../javascript/controllers/menu-controller.js", "../../javascript/controllers/menu-search-controller.js", "../../javascript/controllers/menu-section-controller.js", "../../javascript/controllers/menu-sections-controller.js", "../../javascript/controllers/modular-controller.js", "../../javascript/controllers/multi-select-controller.js", "../../javascript/controllers/order-search-controller.js", "../../javascript/controllers/orders-controller.js", "../../javascript/controllers/pickup-locations-controller.js", "../../javascript/controllers/place-lead-controller.js", "../../javascript/controllers/price-calculator-controller.js", "../../javascript/controllers/print-iframe-controller.js", "../../javascript/controllers/print-menu-landing-page-controller.js", "../../javascript/controllers/print-menus-controller.js", "../../javascript/controllers/print-preview-controller.js", "../../javascript/controllers/product-type-controller.js", "../../javascript/controllers/property-segments-controller.js", "../../javascript/controllers/purchase-limit-controller.js", "../../javascript/controllers/remote-file-form-controller.js", "../../javascript/controllers/scroll-to-top-controller.js", "../../javascript/controllers/segmented_field_controller.js", "../../javascript/controllers/segments-controller.js", "../../javascript/controllers/select-all-controller.js", "../../javascript/controllers/serving-controller.js", "../../javascript/controllers/serving-size-fields-controller.js", "../../javascript/controllers/servings-controller.js", "../../javascript/controllers/shoelace-controller.js", "../../javascript/controllers/show-more-controller.js", "../../javascript/controllers/simple-beer-autocomplete-controller.js", "../../javascript/controllers/simple-modular-controller.js", "../../javascript/controllers/smooth-scroller-controller.js", "../../javascript/controllers/sort-store-controller.js", "../../javascript/controllers/sortable-controller.js", "../../javascript/controllers/sortablejs-controller.js", "../../javascript/controllers/sticky-controller.js", "../../javascript/controllers/streamlined-menu-controller.js", "../../javascript/controllers/stripe-controller.js", "../../javascript/controllers/structured-data-controller.js", "../../javascript/controllers/tabs-controller.js", "../../javascript/controllers/tabs2-controller.js", "../../javascript/controllers/textfit-controller.js", "../../javascript/controllers/tracked-clicks-controller.js", "../../javascript/controllers/trix-controller.js", "../../javascript/controllers/turnstile_controller.js", "../../javascript/controllers/tv-preview-controller.js", "../../javascript/controllers/user-preferences-controller.js", "../../javascript/controllers/video-modal-controller.js", "../../javascript/controllers/viewport-calculate-controller.js", "../../javascript/controllers/viewport-entrance-toggle-controller.js", "../../javascript/controllers/visible-anchor-controller.js", "../../javascript/controllers/visible-controller.js", "../../javascript/controllers/visible-from-radio-controller.js", "../../javascript/controllers/web-menu-preview-sizes-controller.js", "import-glob:./controllers/**/*.js", "../../../node_modules/@stimulus-components/dialog/dist/stimulus-dialog.mjs", "../../../node_modules/stimulus-use/dist/index.js", "../../../node_modules/@stimulus-components/dropdown/dist/stimulus-dropdown.mjs", "../../javascript/shared/beermenus.js", "../../javascript/shared/analytics.js"], "sourcesContent": ["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"section\", \"expanded\", \"content\", \"collapse\"]\n\n async connect() {\n await Accordion.import()\n this.initializeAccordion()\n }\n\n collapse(event) {\n event.preventDefault()\n\n const index = this.collapseTargets.indexOf(event.currentTarget)\n this.$accordions[index].accordion(\"option\", \"active\", false)\n this.scrollTo(this.$accordions[index])\n }\n\n // private\n\n initializeAccordion() {\n this.$accordions = []\n\n this.sectionTargets.forEach((section, index) => {\n // 0 expands the first element, the only one in this case.\n const active = this.expandedTargets[index].value === \"true\" ? 0 : false\n\n const accordion = $(section).accordion({\n header: \".accordion-tab\",\n autoHeight: false,\n collapsible: true,\n heightStyle: \"content\",\n active: active,\n animate: this.animations,\n icons: this.icons,\n beforeActivate: this.beforeActivate.bind(this),\n activate: this.activate.bind(this)\n })\n this.$accordions[index] = accordion\n })\n\n this.contentTargets.forEach(el => el.classList.remove(\"hidden\"))\n }\n\n beforeActivate(event, ui) {\n BeerMenus.Checklists.closeDriver()\n\n if (ui.newHeader.length) {\n this.scrollTo(ui.newHeader)\n }\n }\n\n activate(event, ui) {\n const expandedIndex = this.contentTargets.indexOf(ui.newPanel[0])\n if (expandedIndex >= 0) {\n this.expandedTargets[expandedIndex].value = true\n }\n\n const collapsedIndex = this.contentTargets.indexOf(ui.oldPanel[0])\n if (collapsedIndex >= 0) {\n this.expandedTargets[collapsedIndex].value = false\n }\n }\n\n scrollTo(header) {\n const scrollTop = header.offset().top +\n ($(\".accordion-scroll-window\").scrollTop() || 0)\n const offset = parseInt(this.data.get(\"offset\")) || 0\n\n if ($(this.element).hasClass('no-body-scroll')){\n $(\".accordion-scroll-window\").animate(\n { scrollTop: scrollTop - offset },\n this.animationDuration,\n \"easeOutQuad\"\n )\n }\n\n else {\n $(\".accordion-scroll-window,html,body\").animate(\n { scrollTop: scrollTop - offset },\n this.animationDuration,\n \"easeOutQuad\"\n )\n }\n }\n\n get animations() {\n return {\n easing: \"easeInOutQuint\",\n duration: this.animationDuration,\n down: {\n easing: \"easeInOutQuart\",\n duration: this.animationDuration\n }\n }\n }\n\n get icons() {\n if (this.data.has(\"icon\") && this.data.has(\"iconActive\")){\n return {\n \"header\": this.data.get(\"icon\"),\n \"activeHeader\": this.data.get(\"iconActive\")\n }\n }\n\n else {\n return {\n \"header\": \"pure-icon pure-icon-angle-down\",\n \"activeHeader\": \"pure-icon pure-icon-angle-up\"\n }\n }\n }\n\n get animationDuration() {\n return 850\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n connect() {\n this.element.addEventListener(\"sl-show\", (event) => {\n setTimeout(\n () => event.target.scrollIntoView({ behavior: \"smooth\" }),\n 300\n );\n if (event.target.localName === \"sl-details\") {\n [...this.element.querySelectorAll(\"sl-details\")].map(\n (details) => (details.open = event.target === details)\n );\n }\n });\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"beer\", \"producer\", \"styleSelect\", \"actions\", \"warning\", \"error\"]\n\n connect() {\n $(this.element).on(\"ajax:beforeSend\", this.beforeSend.bind(this))\n $(this.element).on(\"ajax:success\", this.success.bind(this))\n $(this.element).on(\"ajax:error\", this.error.bind(this))\n }\n\n changeProductType(event) {\n const type = event.currentTarget.value\n\n this.styleSelectTargets.forEach(select => {\n const disabled = select.dataset.type != type\n select.classList.toggle(\"hidden\", disabled)\n select.disabled = disabled\n })\n\n this.producerTargets.forEach(target => {\n const disabled = target.dataset.type != type\n target.classList.toggle(\"hidden\", disabled)\n\n const producerIDInput = target.querySelector(\"input[type=hidden]\")\n if (producerIDInput) {\n producerIDInput.disabled = disabled\n }\n })\n }\n\n // private\n\n beforeSend() {\n this.beerTarget.classList.remove(\"box-shadow-left-green\")\n this.actionsTarget.classList.remove(\"box-shadow-right-green\")\n\n this.beerTarget.classList.remove(\"box-shadow-left-red\")\n this.actionsTarget.classList.remove(\"box-shadow-right-red\")\n\n this.errorTarget.classList.add(\"hidden\")\n }\n\n success(event, data, status, xhr) {\n if (xhr.getResponseHeader(\"SUCCESS\") == \"true\") {\n this.replaceHTML(data)\n this.noteRemovedDuplicates(xhr.getResponseHeader(\"DUPLICATE_IDS\"))\n } else {\n this.scrollToElement()\n this.replaceHTML(data)\n }\n }\n\n error() {\n this.scrollToElement()\n\n this.beerTarget.classList.add(\"box-shadow-left-red\")\n this.actionsTarget.classList.add(\"box-shadow-right-red\")\n this.errorTarget.classList.remove(\"hidden\")\n }\n\n replaceHTML(html) {\n this.element.outerHTML = html\n }\n\n noteRemovedDuplicates(duplicateIDsJSON) {\n if (duplicateIDsJSON) {\n JSON.parse(duplicateIDsJSON).forEach(id => {\n const form = document.querySelector(`[data-id='${id}']`)\n if (form) {\n const inputs = form.elements\n for (var i = 0; i < inputs.length; i++) {\n inputs[i].disabled = true\n }\n\n form.querySelector(\"[data-admin-beer-target='warning']\")\n .classList.remove(\"hidden\")\n form.querySelector(\"[data-admin-beer-target='beer']\")\n .classList.add(\"box-shadow-left-yellow\")\n form.querySelector(\"[data-admin-beer-target='actions']\")\n .classList.add(\"box-shadow-right-yellow\")\n }\n })\n }\n }\n\n scrollToElement() {\n $(\"html, body\").animate({\n scrollTop: $(this.element).offset().top\n }, \"normal\");\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"keeperID\"]\n\n keep(event) {\n event.preventDefault()\n\n this.keeperIDTarget.value = event.currentTarget.dataset.id\n\n const keeper = document.querySelector(`.${this.keeperClass}`)\n if (keeper) {\n keeper.classList.remove(this.keeperClass)\n }\n event.currentTarget.classList.add(this.keeperClass)\n }\n\n // private\n\n get keeperClass() {\n return \"keeper\"\n }\n}\n", "export {};", "export {};", "export {};", "export {};", "export * from './AlgoliaInsightsHit';\nexport * from './AutocompleteInsightsApi';\nexport * from './EventParams';\nexport * from './InsightsClient';", "export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}", "export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}", "function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _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; }\nfunction _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; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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); }\n/**\n * Decycles objects with circular references.\n * This is used to print cyclic structures in development environment only.\n */\nexport function decycle(obj) {\n var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n if (!(process.env.NODE_ENV !== 'production') || !obj || _typeof(obj) !== 'object') {\n return obj;\n }\n if (seen.has(obj)) {\n return '[Circular]';\n }\n var newSeen = seen.add(obj);\n if (Array.isArray(obj)) {\n return obj.map(function (x) {\n return decycle(x, newSeen);\n });\n }\n return Object.fromEntries(Object.entries(obj).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n return [key, decycle(value, newSeen)];\n }));\n}", "export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}", "var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}", "export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}", "export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}", "/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (!condition) {\n throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n }\n}", "function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}", "export {};", "export var noop = function noop() {};", "/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}", "export {};", "export {};", "export var version = '1.19.1';", "import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];", "export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export * from './AutocompleteClassNames';\nexport * from './AutocompleteCollection';\nexport * from './AutocompleteComponents';\nexport * from './AutocompleteOptions';\nexport * from './AutocompletePlugin';\nexport * from './AutocompletePropGetters';\nexport * from './AutocompleteRender';\nexport * from './AutocompleteRenderer';\nexport * from './AutocompleteSource';\nexport * from './AutocompleteState';\nexport * from './AutocompleteTranslations';\nexport * from './HighlightHitParams';", "export * from './createRef';\nexport * from './debounce';\nexport * from './decycle';\nexport * from './flatten';\nexport * from './generateAutocompleteId';\nexport * from './getAttributeValueByPath';\nexport * from './getItemsCount';\nexport * from './invariant';\nexport * from './isEqual';\nexport * from './MaybePromise';\nexport * from './noop';\nexport * from './safelyRunOnBrowser';\nexport * from './SearchResponse';\nexport * from './UserAgent';\nexport * from './userAgents';\nexport * from './version';\nexport * from './warn';\nexport * from './js';", "export function createClickedEvent(_ref) {\n var item = _ref.item,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}", "function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _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; }\nfunction _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; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}", "var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _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); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nfunction _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; }\nfunction _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; }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}", "export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}", "export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}", "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); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n insightsInitParams = _getOptions.insightsInitParams,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive,\n __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n if (insightsInitParams) {\n insightsClient('init', _objectSpread({\n partial: true\n }, insightsInitParams));\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n function setInsightsContext(userToken) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? {\n clickAnalytics: true\n } : {}), userToken ? {\n userToken: normalizeUserToken(userToken)\n } : {}),\n insights: insights\n }\n });\n }\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', function (userToken) {\n setInsightsContext(userToken);\n });\n insightsClient('getUserToken', null, function (_error, userToken) {\n setInsightsContext(userToken);\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event,\n source = _ref5.source;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n source = _ref6.source,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getAlgoliaSources() {\n var _context$algoliaInsig;\n var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 ? arguments[1] : undefined;\n return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : []));\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents,\n state = _ref8.state;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents,\n state = _ref9.state;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(userToken) {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}", "export * from './types';\nexport * from './createAlgoliaInsightsPlugin';", "function createInternalCancelablePromise(promise, initialState) {\n var state = initialState;\n return {\n then: function then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n },\n catch: function _catch(onrejected) {\n return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n },\n finally: function _finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n state.onCancelList = [];\n return onfinally();\n }, state, promise)), state);\n },\n cancel: function cancel() {\n state.isCanceled = true;\n var callbacks = state.onCancelList;\n state.onCancelList = [];\n callbacks.forEach(function (callback) {\n callback();\n });\n },\n isCanceled: function isCanceled() {\n return state.isCanceled === true;\n }\n };\n}\nexport function createCancelablePromise(executor) {\n return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n return executor(resolve, reject);\n }), {\n isCanceled: false,\n onCancelList: []\n });\n}\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n return onResult(arg);\n };\n}", "// Ensures multiple callers sync to the same promise.\nvar _hasWaitPromiseResolved = true;\nvar _waitPromise;\nexport function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n },\n wait: function wait(timeout) {\n // Reuse promise if already exists. Keeps multiple callers subscribed to the same promise.\n if (!_hasWaitPromiseResolved) {\n return _waitPromise;\n }\n\n // Creates a promise which either resolves after all pending requests complete\n // or the timeout is reached (if provided). Whichever comes first.\n _hasWaitPromiseResolved = false;\n _waitPromise = !timeout ? Promise.all(list) : Promise.race([Promise.all(list), new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n })]);\n return _waitPromise.then(function () {\n _hasWaitPromiseResolved = true;\n });\n }\n };\n}", "/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n var basePromiseId = -1;\n var latestResolvedId = -1;\n var latestResolvedValue = undefined;\n return function runConcurrentSafePromise(promise) {\n basePromiseId++;\n var currentPromiseId = basePromiseId;\n return Promise.resolve(promise).then(function (x) {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}", "/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n if (!itemCount) {\n return null;\n }\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n return numericIndex;\n}", "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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _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); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n var seenSourceIds = [];\n return Promise.resolve(getSources(params)).then(function (sources) {\n invariant(Array.isArray(sources), function () {\n return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n });\n return Promise.all(sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter(function (maybeSource) {\n return Boolean(maybeSource);\n }).map(function (source) {\n invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n seenSourceIds.push(source.sourceId);\n var defaultSource = {\n getItemInputValue: function getItemInputValue(_ref) {\n var state = _ref.state;\n return state.query;\n },\n getItemUrl: function getItemUrl() {\n return undefined;\n },\n onSelect: function onSelect(_ref2) {\n var setIsOpen = _ref2.setIsOpen;\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop\n };\n Object.keys(defaultSource).forEach(function (key) {\n defaultSource[key].__default = true;\n });\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n return Promise.resolve(normalizedSource);\n }));\n });\n}", "function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _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); }\nfunction _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; }\n/**\n * If a plugin is configured to await a submit event, this returns a promise\n * for either the max timeout value found or until it completes.\n * Otherwise, return undefined.\n */\nexport var getPluginSubmitPromise = function getPluginSubmitPromise(plugins, pendingRequests) {\n var waitUntilComplete = false;\n var timeouts = [];\n var _iterator = _createForOfIteratorHelper(plugins),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _plugin$__autocomplet, _plugin$__autocomplet2, _plugin$__autocomplet3;\n var plugin = _step.value;\n var value = (_plugin$__autocomplet = plugin.__autocomplete_pluginOptions) === null || _plugin$__autocomplet === void 0 ? void 0 : (_plugin$__autocomplet2 = (_plugin$__autocomplet3 = _plugin$__autocomplet).awaitSubmit) === null || _plugin$__autocomplet2 === void 0 ? void 0 : _plugin$__autocomplet2.call(_plugin$__autocomplet3);\n if (typeof value === 'number') {\n timeouts.push(value);\n } else if (value === true) {\n waitUntilComplete = true;\n break; // break loop as bool overrides num array below\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (waitUntilComplete) {\n return pendingRequests.wait();\n } else if (timeouts.length > 0) {\n return pendingRequests.wait(Math.max.apply(Math, timeouts));\n }\n return undefined;\n};", "// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n var accumulatedCollectionsCount = state.collections.map(function (collections) {\n return collections.items.length;\n }).reduce(function (acc, collectionsCount, index) {\n var previousValue = acc[index - 1] || 0;\n var nextValue = previousValue + collectionsCount;\n acc.push(nextValue);\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n return acc;\n }, 0);\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * \u2191\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n var state = _ref.state,\n collection = _ref.collection;\n var isOffsetFound = false;\n var counter = 0;\n var previousItemsOffset = 0;\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n if (!collection) {\n return null;\n }\n var item = collection.items[getRelativeActiveItemId({\n state: state,\n collection: collection\n })];\n var source = collection.source;\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: state\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: state\n });\n return {\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n source: source\n };\n}", "/**\n * Returns a full element id for an autocomplete element.\n *\n * @param autocompleteInstanceId The id of the autocomplete instance\n * @param elementId The specific element id\n * @param source The source of the element, when it needs to be scoped\n */\nexport function getAutocompleteElementId(autocompleteInstanceId, elementId, source) {\n return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\\s/g, '');\n}", "export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}", "var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}", "export function mapToAlgoliaResponse(rawResults) {\n return {\n results: rawResults,\n hits: rawResults.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: rawResults.map(function (result) {\n var _facetHits;\n return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted\n }\n }\n };\n });\n }).filter(Boolean)\n };\n}", "export function getNativeEvent(event) {\n return event.nativeEvent || event;\n}", "export * from './createCancelablePromise';\nexport * from './createCancelablePromiseList';\nexport * from './createConcurrentSafePromise';\nexport * from './getNextActiveItemId';\nexport * from './getNormalizedSources';\nexport * from './getPluginSubmitPromise';\nexport * from './getActiveItem';\nexport * from './getAutocompleteElementId';\nexport * from './isOrContainsNode';\nexport * from './isSamsung';\nexport * from './mapToAlgoliaResponse';\nexport * from './getNativeEvent';", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { createCancelablePromiseList } from './utils';\nexport function createStore(reducer, props, onStoreStateChange) {\n var state = props.initialState;\n return {\n getState: function getState() {\n return state;\n },\n dispatch: function dispatch(action, payload) {\n var prevState = _objectSpread({}, state);\n state = reducer(state, {\n type: action,\n props: props,\n payload: payload\n });\n onStoreStateChange({\n state: state,\n prevState: prevState\n });\n },\n pendingRequests: createCancelablePromiseList()\n };\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\n var setCollections = function setCollections(rawValue) {\n var baseItemId = 0;\n var value = rawValue.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items).map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n __autocomplete_id: baseItemId++\n });\n })\n });\n });\n store.dispatch('setCollections', value);\n };\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}", "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); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var plugins = props.plugins || [];\n return _objectSpread(_objectSpread({\n debug: false,\n openOnFocus: false,\n enterKeyHint: undefined,\n ignoreCompositionEvents: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: undefined,\n environment: environment,\n shouldPanelOpen: function shouldPanelOpen(_ref) {\n var state = _ref.state;\n return getItemsCount(state) > 0;\n },\n reshape: function reshape(_ref2) {\n var sources = _ref2.sources;\n return sources;\n }\n }, props), {}, {\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n plugins: plugins,\n // The following props need to be deeply defaulted.\n initialState: _objectSpread({\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {}\n }, props.initialState),\n onStateChange: function onStateChange(params) {\n var _props$onStateChange;\n (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n plugins.forEach(function (x) {\n var _x$onStateChange;\n return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n });\n },\n onSubmit: function onSubmit(params) {\n var _props$onSubmit;\n (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n plugins.forEach(function (x) {\n var _x$onSubmit;\n return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n });\n },\n onReset: function onReset(params) {\n var _props$onReset;\n (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n plugins.forEach(function (x) {\n var _x$onReset;\n return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n });\n },\n getSources: function getSources(params) {\n return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n return plugin.getSources;\n })), [props.getSources]).filter(Boolean).map(function (getSources) {\n return getNormalizedSources(getSources, params);\n })).then(function (nested) {\n return flatten(nested);\n }).then(function (sources) {\n return sources.map(function (source) {\n return _objectSpread(_objectSpread({}, source), {}, {\n onSelect: function onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onSelect;\n return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n });\n },\n onActive: function onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onActive;\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n });\n },\n onResolve: function onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onResolve;\n return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n });\n }\n });\n });\n });\n },\n navigator: _objectSpread({\n navigate: function navigate(_ref3) {\n var itemUrl = _ref3.itemUrl;\n environment.location.assign(itemUrl);\n },\n navigateNewTab: function navigateNewTab(_ref4) {\n var itemUrl = _ref4.itemUrl;\n var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n },\n navigateNewWindow: function navigateNewWindow(_ref5) {\n var itemUrl = _ref5.itemUrl;\n environment.open(itemUrl, '_blank', 'noopener');\n }\n }, props.navigator)\n });\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n var collections = _ref.collections,\n props = _ref.props,\n state = _ref.state;\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n getItems: function getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n }\n })));\n }, {});\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n if (isRequesterDescription(itemsOrDescription)) {\n var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n var _state$context$key;\n return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n })))) : {};\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n }) : query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\n })\n });\n }\n return {\n items: itemsOrDescription,\n sourceId: sourceId\n };\n}\nexport function resolve(items) {\n var packed = items.reduce(function (acc, current) {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n var searchClient = current.searchClient,\n execute = current.execute,\n requesterId = current.requesterId,\n requests = current.requests;\n var container = acc.find(function (item) {\n return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n });\n if (container) {\n var _container$items;\n (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n } else {\n var request = {\n execute: execute,\n requesterId: requesterId,\n items: requests,\n searchClient: searchClient\n };\n acc.push(request);\n }\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\n var _ref = maybeDescription,\n execute = _ref.execute,\n items = _ref.items,\n searchClient = _ref.searchClient;\n return execute({\n searchClient: searchClient,\n requests: items\n });\n });\n return Promise.all(values).then(function (responses) {\n return flatten(responses);\n });\n}\nexport function postResolve(responses, sources, store) {\n return sources.map(function (source) {\n var matches = responses.filter(function (response) {\n return response.sourceId === source.sourceId;\n });\n var results = matches.map(function (_ref2) {\n var items = _ref2.items;\n return items;\n });\n var transform = matches[0].transformResponse;\n var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n source.onResolve({\n source: source,\n results: results,\n items: items,\n state: store.getState()\n });\n invariant(Array.isArray(items), function () {\n 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\");\n });\n 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\"));\n return {\n source: source,\n items: items\n };\n });\n}", "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); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n var event = _ref.event,\n _ref$nextState = _ref.nextState,\n nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n props = _ref.props,\n query = _ref.query,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n var setCollections = setters.setCollections,\n setIsOpen = setters.setIsOpen,\n setQuery = setters.setQuery,\n setActiveItemId = setters.setActiveItemId,\n setStatus = setters.setStatus,\n setContext = setters.setContext;\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n var collections = store.getState().collections.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n items: []\n });\n });\n setStatus('idle');\n setCollections(collections);\n setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({\n state: store.getState()\n }));\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n return store.pendingRequests.add(_request);\n }\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters)).then(function (sources) {\n return Promise.all(sources.map(function (source) {\n return Promise.resolve(source.getItems(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters))).then(function (itemsOrDescription) {\n return preResolve(itemsOrDescription, source.sourceId, store.getState());\n });\n })).then(resolve).then(function (responses) {\n var __automaticInsights = responses.some(function (_ref2) {\n var items = _ref2.items;\n return isSearchResponseWithAutomaticInsightsFlag(items);\n });\n\n // No need to pollute the context if `__automaticInsights=false`\n if (__automaticInsights) {\n var _store$getState$conte;\n setContext({\n algoliaInsightsPlugin: _objectSpread(_objectSpread({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, {\n __automaticInsights: __automaticInsights\n })\n });\n }\n return postResolve(responses, sources, store);\n }).then(function (collections) {\n return reshape({\n collections: collections,\n props: props,\n state: store.getState()\n });\n });\n }))).then(function (collections) {\n var _nextState$isOpen2;\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n setCollections(collections);\n var isPanelOpen = props.shouldPanelOpen({\n state: store.getState()\n });\n setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }).finally(function () {\n setStatus('idle');\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n return store.pendingRequests.add(request);\n}\nfunction isSearchResponseWithAutomaticInsightsFlag(items) {\n return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights);\n}", "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); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nimport { onInput } from './onInput';\nimport { getPluginSubmitPromise, getActiveItem, getAutocompleteElementId } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var highlightedItem = getActiveItem(store.getState());\n var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, \"item-\".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Tab` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(store.pendingRequests.cancelAll); // Cancel the rest if timeout number is provided\n } else if (!props.debug) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}", "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); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"source\"],\n _excluded6 = [\"item\", \"source\"];\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getPluginSubmitPromise, getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref2) {\n var source = _ref2.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n var handleSubmit = function handleSubmit(event) {\n var _providedProps$inputE;\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n };\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n var waitForSubmit = getPluginSubmitPromise(props.plugins, store.pendingRequests);\n if (waitForSubmit !== undefined) {\n waitForSubmit.then(function () {\n return handleSubmit(event);\n });\n } else {\n handleSubmit(event);\n }\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref3 = providedProps || {},\n inputElement = _ref3.inputElement,\n _ref3$maxLength = _ref3.maxLength,\n maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');\n return _objectSpread({\n 'aria-autocomplete': 'both',\n '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,\n 'aria-controls': store.getState().isOpen ? store.getState().collections.filter(function (collection) {\n return collection.items.length > 0;\n }).map(function (_ref4) {\n var source = _ref4.source;\n return getAutocompleteElementId(props.id, 'list', source);\n }).join(' ') : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n value: store.getState().completion || store.getState().query,\n id: getAutocompleteElementId(props.id, 'input'),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n var value = event.currentTarget.value;\n if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) {\n setters.setQuery(value);\n return;\n }\n onInput(_objectSpread({\n event: event,\n props: props,\n query: value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onCompositionEnd: function onCompositionEnd(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n if (getNativeEvent(event).isComposing) {\n return;\n }\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getLabelProps = function getLabelProps(rest) {\n return _objectSpread({\n htmlFor: getAutocompleteElementId(props.id, 'input'),\n id: getAutocompleteElementId(props.id, 'label')\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref5 = providedProps || {},\n source = _ref5.source,\n rest = _objectWithoutProperties(_ref5, _excluded5);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n id: getAutocompleteElementId(props.id, 'list', source)\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n rest = _objectWithoutProperties(providedProps, _excluded6);\n return _objectSpread({\n id: getAutocompleteElementId(props.id, \"item-\".concat(item.__autocomplete_id), source),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n 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');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}", "import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n completion: null,\n query: ''\n });\n }\n case 'focus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId,\n isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n state: state\n })\n });\n }\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n checkOptions(options);\n var subscribers = [];\n var props = getDefaultProps(options, subscribers);\n var store = createStore(stateReducer, props, onStoreStateChange);\n var setters = getAutocompleteSetters({\n store: store\n });\n var propGetters = getPropGetters(_objectSpread({\n props: props,\n refresh: refresh,\n store: store,\n navigator: props.navigator\n }, setters));\n function onStoreStateChange(_ref) {\n var _state$context, _state$context$algoli;\n var prevState = _ref.prevState,\n state = _ref.state;\n props.onStateChange(_objectSpread({\n prevState: prevState,\n state: state,\n refresh: refresh,\n navigator: props.navigator\n }, setters));\n 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) {\n var plugin = createAlgoliaInsightsPlugin({\n __autocomplete_clickAnalytics: false\n });\n props.plugins.push(plugin);\n subscribePlugins([plugin]);\n }\n }\n function refresh() {\n return onInput(_objectSpread({\n event: new Event('input'),\n nextState: {\n isOpen: store.getState().isOpen\n },\n props: props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n function subscribePlugins(plugins) {\n plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n navigator: props.navigator,\n refresh: refresh,\n onSelect: function onSelect(fn) {\n subscribers.push({\n onSelect: fn\n });\n },\n onActive: function onActive(fn) {\n subscribers.push({\n onActive: fn\n });\n },\n onResolve: function onResolve(fn) {\n subscribers.push({\n onResolve: fn\n });\n }\n }));\n });\n }\n function isAlgoliaInsightsPluginEnabled() {\n return props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n });\n }\n if (props.insights && !isAlgoliaInsightsPluginEnabled()) {\n var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n subscribePlugins(props.plugins);\n injectMetadata({\n metadata: getMetadata({\n plugins: props.plugins,\n options: options\n }),\n environment: props.environment\n });\n return _objectSpread(_objectSpread({\n refresh: refresh,\n navigator: props.navigator\n }, propGetters), setters);\n}", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export {};", "export * from './AutocompleteApi';\nexport * from './AutocompleteCollection';\nexport * from './AutocompleteContext';\nexport * from './AutocompleteEnvironment';\nexport * from './AutocompleteOptions';\nexport * from './AutocompleteSource';\nexport * from './AutocompletePropGetters';\nexport * from './AutocompletePlugin';\nexport * from './AutocompleteReshape';\nexport * from './AutocompleteSetters';\nexport * from './AutocompleteState';", "export {};", "export {};", "export * from '@algolia/autocomplete-shared/dist/esm/core';\nexport * from './AutocompleteStore';\nexport * from './AutocompleteSubscribers';\nexport {};", "export * from './createAutocomplete';\nexport * from './getDefaultProps';\nexport * from './types';", "var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n", "export var ClearIcon = function ClearIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-ClearIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '18');\n element.setAttribute('height', '18');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.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 element.appendChild(path);\n return element;\n};", "import { invariant } from '@algolia/autocomplete-shared';\nexport function getHTMLElement(environment, value) {\n if (typeof value === 'string') {\n var element = environment.document.querySelector(value);\n invariant(element !== null, \"The element \".concat(JSON.stringify(value), \" is not in the document.\"));\n return element;\n }\n return value;\n}", "export function mergeClassNames() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n if (accValue !== currentValue) {\n acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n }\n });\n return acc;\n }, {});\n}", "function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nfunction _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); }\nvar isPlainObject = function isPlainObject(value) {\n return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';\n};\nexport function mergeDeep() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));\n } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n acc[key] = mergeDeep(accValue, currentValue);\n } else {\n acc[key] = currentValue;\n }\n });\n return acc;\n }, {});\n}", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _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; }\nfunction _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; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nexport function pickBy(obj, predicate) {\n return Object.entries(obj).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (predicate({\n key: key,\n value: value\n })) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value));\n }\n return acc;\n }, {});\n}", "/* eslint-disable */\n\n/**\n * Touch-specific event aliases\n *\n * See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin\n */\nvar TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];\n\n/*\n * Taken from Preact\n *\n * See https://github.com/preactjs/preact/blob/6ab49d9020740127577bf4af66bf63f4af7f9fee/src/diff/props.js#L58-L151\n */\n\nfunction setStyle(style, key, value) {\n if (value === null) {\n style[key] = '';\n } else if (typeof value !== 'number') {\n style[key] = value;\n } else {\n style[key] = value + 'px';\n }\n}\n\n/**\n * Proxy an event to hooked event handlers\n */\nfunction eventProxy(event) {\n this._listeners[event.type](event);\n}\n\n/**\n * Set a property value on a DOM node\n */\nexport function setProperty(dom, name, value) {\n var useCapture;\n var nameLower;\n var oldValue = dom[name];\n if (name === 'style') {\n if (typeof value == 'string') {\n dom.style = value;\n } else {\n if (value === null) {\n dom.style = '';\n } else {\n for (name in value) {\n if (!oldValue || value[name] !== oldValue[name]) {\n setStyle(dom.style, name, value[name]);\n }\n }\n }\n }\n }\n // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n else if (name[0] === 'o' && name[1] === 'n') {\n useCapture = name !== (name = name.replace(/Capture$/, ''));\n nameLower = name.toLowerCase();\n if (nameLower in dom || TOUCH_EVENTS_ALIASES.includes(nameLower)) name = nameLower;\n name = name.slice(2);\n if (!dom._listeners) dom._listeners = {};\n dom._listeners[name] = value;\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (name !== 'list' && name !== 'tagName' &&\n // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (value == null || value === false &&\n // ARIA-attributes have a different notion of boolean values.\n // The value `false` is different from the attribute not\n // existing on the DOM, so we can't remove it. For non-boolean\n // ARIA-attributes we could treat false as a removal, but the\n // amount of exceptions would cost us too many bytes. On top of\n // that other VDOM frameworks also always stringify `false`.\n !/^ar/.test(name)) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\nfunction getNormalizedName(name) {\n switch (name) {\n case 'onChange':\n return 'onInput';\n // see: https://github.com/preactjs/preact/issues/1978\n case 'onCompositionEnd':\n return 'oncompositionend';\n default:\n return name;\n }\n}\nexport function setProperties(dom, props) {\n for (var name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\nexport function setPropertiesWithoutEvents(dom, props) {\n for (var name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}", "export * from './getHTMLElement';\nexport * from './mergeClassNames';\nexport * from './mergeDeep';\nexport * from './pickBy';\nexport * from './setProperties';", "var _excluded = [\"children\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _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.\"); }\nfunction _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); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _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; }\nfunction _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; }\nfunction _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; }\nimport { setProperties } from './utils';\nexport function getCreateDomElement(environment) {\n return function createDomElement(tagName, _ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children,\n props = _objectWithoutProperties(_ref, _excluded);\n var element = environment.document.createElement(tagName);\n setProperties(element, props);\n element.append.apply(element, _toConsumableArray(children));\n return element;\n };\n}", "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); }\nvar _excluded = [\"autocompleteScopeApi\", \"environment\", \"classNames\", \"getInputProps\", \"getInputPropsCore\", \"isDetached\", \"state\"];\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nfunction _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; }\nfunction _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; }\nimport { getCreateDomElement } from '../getCreateDomElement';\nimport { setProperties } from '../utils';\nexport var Input = function Input(_ref) {\n var autocompleteScopeApi = _ref.autocompleteScopeApi,\n environment = _ref.environment,\n classNames = _ref.classNames,\n getInputProps = _ref.getInputProps,\n getInputPropsCore = _ref.getInputPropsCore,\n isDetached = _ref.isDetached,\n state = _ref.state,\n props = _objectWithoutProperties(_ref, _excluded);\n var createDomElement = getCreateDomElement(environment);\n var element = createDomElement('input', props);\n var inputProps = getInputProps(_objectSpread({\n state: state,\n props: getInputPropsCore({\n inputElement: element\n }),\n inputElement: element\n }, autocompleteScopeApi));\n setProperties(element, _objectSpread(_objectSpread({}, inputProps), {}, {\n onKeyDown: function onKeyDown(event) {\n // In detached mode we don't want to close the panel when hitting `Tab`.\n if (isDetached && event.key === 'Tab') {\n return;\n }\n inputProps.onKeyDown(event);\n }\n }));\n return element;\n};", "export var LoadingIcon = function LoadingIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-LoadingIcon');\n element.setAttribute('viewBox', '0 0 100 100');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.innerHTML = \"\\n \\n\";\n return element;\n};", "export var SearchIcon = function SearchIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-SubmitIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.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 element.appendChild(path);\n return element;\n};", "export * from './ClearIcon';\nexport * from './Input';\nexport * from './LoadingIcon';\nexport * from './SearchIcon';", "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); }\nfunction 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; }\nfunction _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; }\nfunction _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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _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); }\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport { setProperties } from './utils';\nexport function createAutocompleteDom(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n classNames = _ref.classNames,\n environment = _ref.environment,\n isDetached = _ref.isDetached,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,\n propGetters = _ref.propGetters,\n setIsModalOpen = _ref.setIsModalOpen,\n state = _ref.state,\n translations = _ref.translations;\n var createDomElement = getCreateDomElement(environment);\n var rootProps = propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi));\n var root = createDomElement('div', _objectSpread({\n class: classNames.root\n }, rootProps));\n var detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown: function onMouseDown(event) {\n event.stopPropagation();\n }\n });\n var detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown: function onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n }\n });\n var labelProps = propGetters.getLabelProps(_objectSpread({\n state: state,\n props: autocomplete.getLabelProps({})\n }, autocompleteScopeApi));\n var submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({\n environment: environment\n })]\n });\n // @MAJOR Remove the label wrapper for the submit button.\n // The submit button is sufficient for accessibility purposes, and\n // wrapping it with the label actually makes it less accessible (see CR-6077).\n var label = createDomElement('label', _objectSpread({\n class: classNames.label,\n children: [submitButton],\n ariaLabel: translations.submitButtonTitle\n }, labelProps));\n var clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({\n environment: environment\n })]\n });\n var loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({\n environment: environment\n })]\n });\n var input = Input({\n class: classNames.input,\n environment: environment,\n state: state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi: autocompleteScopeApi,\n isDetached: isDetached\n });\n var inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator]\n });\n var inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton]\n });\n var inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input]\n });\n var formProps = propGetters.getFormProps(_objectSpread({\n state: state,\n props: autocomplete.getFormProps({\n inputElement: input\n })\n }, autocompleteScopeApi));\n var form = createDomElement('form', _objectSpread({\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix]\n }, formProps));\n var panelProps = propGetters.getPanelProps(_objectSpread({\n state: state,\n props: autocomplete.getPanelProps({})\n }, autocompleteScopeApi));\n var panel = createDomElement('div', _objectSpread({\n class: classNames.panel\n }, panelProps));\n var detachedSearchButtonQuery = createDomElement('div', {\n class: classNames.detachedSearchButtonQuery,\n textContent: state.query\n });\n var detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n hidden: Boolean(state.query),\n textContent: placeholder\n });\n if (process.env.NODE_ENV === 'test') {\n setProperties(panel, {\n 'data-testid': 'panel'\n });\n }\n if (isDetached) {\n var detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n title: translations.detachedSearchButtonTitle,\n id: labelProps.id,\n onClick: function onClick() {\n setIsModalOpen(true);\n },\n children: [detachedSearchButtonIcon, detachedSearchButtonPlaceholder, detachedSearchButtonQuery]\n });\n var detachedCancelButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedCancelButton,\n textContent: translations.detachedCancelButtonText,\n // Prevent `onTouchStart` from closing the panel\n // since it should be initiated by `onClick` only\n onTouchStart: function onTouchStart(event) {\n event.stopPropagation();\n },\n onClick: function onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n }\n });\n var detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton]\n });\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n return {\n detachedContainer: detachedContainer,\n detachedOverlay: detachedOverlay,\n detachedSearchButtonQuery: detachedSearchButtonQuery,\n detachedSearchButtonPlaceholder: detachedSearchButtonPlaceholder,\n inputWrapper: inputWrapper,\n input: input,\n root: root,\n form: form,\n label: label,\n submitButton: submitButton,\n clearButton: clearButton,\n loadingIndicator: loadingIndicator,\n panel: panel\n };\n}", "export function createEffectWrapper() {\n var effects = [];\n var cleanups = [];\n function runEffect(fn) {\n effects.push(fn);\n var effectCleanup = fn();\n cleanups.push(effectCleanup);\n }\n return {\n runEffect: runEffect,\n cleanupEffects: function cleanupEffects() {\n var currentCleanups = cleanups;\n cleanups = [];\n currentCleanups.forEach(function (cleanup) {\n cleanup();\n });\n },\n runEffects: function runEffects() {\n var currentEffects = effects;\n effects = [];\n currentEffects.forEach(function (effect) {\n runEffect(effect);\n });\n }\n };\n}", "export function createReactiveWrapper() {\n var reactives = [];\n return {\n reactive: function reactive(value) {\n var current = value();\n var reactive = {\n _fn: value,\n _ref: {\n current: current\n },\n get value() {\n return this._ref.current;\n },\n set value(value) {\n this._ref.current = value;\n }\n };\n reactives.push(reactive);\n return reactive;\n },\n runReactives: function runReactives() {\n reactives.forEach(function (value) {\n value._ref.current = value._fn();\n });\n }\n };\n}", "/** Normal hydration that attaches to a DOM tree but does not diff it. */\nexport const MODE_HYDRATE = 1 << 5;\n/** Signifies this VNode suspended on the previous render */\nexport const MODE_SUSPENDED = 1 << 7;\n/** Indicates that this node needs to be inserted while patching children */\nexport const INSERT_VNODE = 1 << 2;\n/** Indicates a VNode has been matched with another VNode in the diff */\nexport const MATCHED = 1 << 1;\n\n/** Reset all mode flags */\nexport const RESET_MODE = ~(MODE_HYDRATE | MODE_SUSPENDED);\n\nexport const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nexport const XHTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nexport const MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n\nexport const NULL = null;\nexport const UNDEFINED = undefined;\nexport const EMPTY_OBJ = /** @type {any} */ ({});\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL =\n\t/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n", "import { EMPTY_ARR } from './constants';\n\nexport const isArray = Array.isArray;\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-expect-error We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {import('./index').ContainerNode} node The node to remove\n */\nexport function removeNode(node) {\n\tif (node && node.parentNode) node.parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n", "import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n", "import { slice } from './util';\nimport options from './options';\nimport { NULL, UNDEFINED } from './constants';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor for this\n * virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the\n * virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != NULL) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] == UNDEFINED) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, NULL);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\t/** @type {import('./internal').VNode} */\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: NULL,\n\t\t_parent: NULL,\n\t\t_depth: 0,\n\t\t_dom: NULL,\n\t\t_component: NULL,\n\t\tconstructor: UNDEFINED,\n\t\t_original: original == NULL ? ++vnodeId : original,\n\t\t_index: -1,\n\t\t_flags: 0\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == NULL && options.vnode != NULL) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: NULL };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != NULL && vnode.constructor == UNDEFINED;\n", "import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { MODE_HYDRATE, NULL } from './constants';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function BaseComponent(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nBaseComponent.prototype.setState = function (update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != NULL && this._nextState != this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == NULL) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nBaseComponent.prototype.forceUpdate = function (callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](https://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {ComponentChildren | void}\n */\nBaseComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == NULL) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._index + 1)\n\t\t\t: NULL;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != NULL && sibling._dom != NULL) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : NULL;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet oldVNode = component._vnode,\n\t\toldDom = oldVNode._dom,\n\t\tcommitQueue = [],\n\t\trefQueue = [];\n\n\tif (component._parentDom) {\n\t\tconst newVNode = assign({}, oldVNode);\n\t\tnewVNode._original = oldVNode._original + 1;\n\t\tif (options.vnode) options.vnode(newVNode);\n\n\t\tdiff(\n\t\t\tcomponent._parentDom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tcomponent._parentDom.namespaceURI,\n\t\t\toldVNode._flags & MODE_HYDRATE ? [oldDom] : NULL,\n\t\t\tcommitQueue,\n\t\t\toldDom == NULL ? getDomSibling(oldVNode) : oldDom,\n\t\t\t!!(oldVNode._flags & MODE_HYDRATE),\n\t\t\trefQueue\n\t\t);\n\n\t\tnewVNode._original = oldVNode._original;\n\t\tnewVNode._parent._children[newVNode._index] = newVNode;\n\t\tcommitRoot(commitQueue, newVNode, refQueue);\n\n\t\tif (newVNode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(newVNode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != NULL && vnode._component != NULL) {\n\t\tvnode._dom = vnode._component.base = NULL;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != NULL && child._dom != NULL) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce != options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/**\n * @param {import('./internal').Component} a\n * @param {import('./internal').Component} b\n */\nconst depthSort = (a, b) => a._vnode._depth - b._vnode._depth;\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c,\n\t\tl = 1;\n\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile (rerenderQueue.length) {\n\t\t// Keep the rerender queue sorted by (depth, insertion order). The queue\n\t\t// will initially be sorted on the first iteration only if it has more than 1 item.\n\t\t//\n\t\t// New items can be added to the queue e.g. when rerendering a provider, so we want to\n\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t// single pass\n\t\tif (rerenderQueue.length > l) {\n\t\t\trerenderQueue.sort(depthSort);\n\t\t}\n\n\t\tc = rerenderQueue.shift();\n\t\tl = rerenderQueue.length;\n\n\t\tif (c._dirty) {\n\t\t\trenderComponent(c);\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n", "import { IS_NON_DIMENSIONAL, NULL, SVG_NAMESPACE } from '../constants';\nimport options from '../options';\n\nfunction setStyle(style, key, value) {\n\tif (key[0] == '-') {\n\t\tstyle.setProperty(key, value == NULL ? '' : value);\n\t} else if (value == NULL) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\nconst CAPTURE_REGEX = /(PointerCapture)$|Capture$/i;\n\n// A logical clock to solve issues like https://github.com/preactjs/preact/issues/3927.\n// When the DOM performs an event it leaves micro-ticks in between bubbling up which means that\n// an event can trigger on a newly reated DOM-node while the event bubbles up.\n//\n// Originally inspired by Vue\n// (https://github.com/vuejs/core/blob/caeb8a68811a1b0f79/packages/runtime-dom/src/modules/events.ts#L90-L101),\n// but modified to use a logical clock instead of Date.now() in case event handlers get attached\n// and events get dispatched during the same millisecond.\n//\n// The clock is incremented after each new event dispatch. This allows 1 000 000 new events\n// per second for over 280 years before the value reaches Number.MAX_SAFE_INTEGER (2**53 - 1).\nlet eventClock = 0;\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {string} namespace Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, namespace) {\n\tlet useCapture;\n\n\to: if (name == 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] != oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] == 'o' && name[1] == 'n') {\n\t\tuseCapture = name != (name = name.replace(CAPTURE_REGEX, '$1'));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (\n\t\t\tname.toLowerCase() in dom ||\n\t\t\tname == 'onFocusOut' ||\n\t\t\tname == 'onFocusIn'\n\t\t)\n\t\t\tname = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tvalue._attached = eventClock;\n\t\t\t\tdom.addEventListener(\n\t\t\t\t\tname,\n\t\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\t\tuseCapture\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tvalue._attached = oldValue._attached;\n\t\t\t}\n\t\t} else {\n\t\t\tdom.removeEventListener(\n\t\t\t\tname,\n\t\t\t\tuseCapture ? eventProxyCapture : eventProxy,\n\t\t\t\tuseCapture\n\t\t\t);\n\t\t}\n\t} else {\n\t\tif (namespace == SVG_NAMESPACE) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname != 'width' &&\n\t\t\tname != 'height' &&\n\t\t\tname != 'href' &&\n\t\t\tname != 'list' &&\n\t\t\tname != 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname != 'tabIndex' &&\n\t\t\tname != 'download' &&\n\t\t\tname != 'rowSpan' &&\n\t\t\tname != 'colSpan' &&\n\t\t\tname != 'role' &&\n\t\t\tname != 'popover' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == NULL ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// aria- and data- attributes have no boolean representation.\n\t\t// A `false` value is different from the attribute not being\n\t\t// present, so we can't remove it. For non-boolean aria\n\t\t// attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost too many bytes. On top of\n\t\t// that other frameworks generally stringify `false`.\n\n\t\tif (typeof value == 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != NULL && (value !== false || name[4] == '-')) {\n\t\t\tdom.setAttribute(name, name == 'popover' && value == true ? '' : value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Create an event proxy function.\n * @param {boolean} useCapture Is the event handler for the capture phase.\n * @private\n */\nfunction createEventProxy(useCapture) {\n\t/**\n\t * Proxy an event to hooked event handlers\n\t * @param {import('../internal').PreactEvent} e The event object from the browser\n\t * @private\n\t */\n\treturn function (e) {\n\t\tif (this._listeners) {\n\t\t\tconst eventHandler = this._listeners[e.type + useCapture];\n\t\t\tif (e._dispatched == NULL) {\n\t\t\t\te._dispatched = eventClock++;\n\n\t\t\t\t// When `e._dispatched` is smaller than the time when the targeted event\n\t\t\t\t// handler was attached we know we have bubbled up to an element that was added\n\t\t\t\t// during patching the DOM.\n\t\t\t} else if (e._dispatched < eventHandler._attached) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn eventHandler(options.event ? options.event(e) : e);\n\t\t}\n\t};\n}\n\nconst eventProxy = createEventProxy(false);\nconst eventProxyCapture = createEventProxy(true);\n", "import { enqueueRender } from './component';\nimport { NULL } from './constants';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tfunction Context(props) {\n\t\tif (!this.getChildContext) {\n\t\t\t/** @type {Set | null} */\n\t\t\tlet subs = new Set();\n\t\t\tlet ctx = {};\n\t\t\tctx[Context._id] = this;\n\n\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\tthis.componentWillUnmount = () => {\n\t\t\t\tsubs = NULL;\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = function (_props) {\n\t\t\t\t// @ts-expect-error even\n\t\t\t\tif (this.props.value != _props.value) {\n\t\t\t\t\tsubs.forEach(c => {\n\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.sub = c => {\n\t\t\t\tsubs.add(c);\n\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\tif (subs) {\n\t\t\t\t\t\tsubs.delete(c);\n\t\t\t\t\t}\n\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t};\n\t\t\t};\n\t\t}\n\n\t\treturn props.children;\n\t}\n\n\tContext._id = '__cC' + i++;\n\tContext._defaultValue = defaultValue;\n\n\t/** @type {import('./internal').FunctionComponent} */\n\tContext.Consumer = (props, contextValue) => {\n\t\treturn props.children(contextValue);\n\t};\n\n\t// we could also get rid of _contextRef entirely\n\tContext.Provider =\n\t\tContext._contextRef =\n\t\tContext.Consumer.contextType =\n\t\t\tContext;\n\n\treturn Context;\n}\n", "import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport {\n\tEMPTY_OBJ,\n\tEMPTY_ARR,\n\tINSERT_VNODE,\n\tMATCHED,\n\tUNDEFINED,\n\tNULL\n} from '../constants';\nimport { isArray } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * Diff the children of a virtual node\n * @param {PreactElement} parentDom The DOM element whose children are being\n * diffed\n * @param {ComponentChildren[]} renderResult\n * @param {VNode} newParentVNode The new virtual node whose children should be\n * diff'ed against oldParentVNode\n * @param {VNode} oldParentVNode The old virtual node whose children should be\n * diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\tlet i,\n\t\t/** @type {VNode} */\n\t\toldVNode,\n\t\t/** @type {VNode} */\n\t\tchildVNode,\n\t\t/** @type {PreactElement} */\n\t\tnewDom,\n\t\t/** @type {PreactElement} */\n\t\tfirstChildDom;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\t/** @type {VNode[]} */\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet newChildrenLength = renderResult.length;\n\n\toldDom = constructNewChildrenArray(\n\t\tnewParentVNode,\n\t\trenderResult,\n\t\toldChildren,\n\t\toldDom,\n\t\tnewChildrenLength\n\t);\n\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\tchildVNode = newParentVNode._children[i];\n\t\tif (childVNode == NULL) continue;\n\n\t\t// At this point, constructNewChildrenArray has assigned _index to be the\n\t\t// matchingIndex for this VNode's oldVNode (or -1 if there is no oldVNode).\n\t\tif (childVNode._index == -1) {\n\t\t\toldVNode = EMPTY_OBJ;\n\t\t} else {\n\t\t\toldVNode = oldChildren[childVNode._index] || EMPTY_OBJ;\n\t\t}\n\n\t\t// Update childVNode._index to its final index\n\t\tchildVNode._index = i;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tlet result = diff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\n\t\t// Adjust DOM nodes\n\t\tnewDom = childVNode._dom;\n\t\tif (childVNode.ref && oldVNode.ref != childVNode.ref) {\n\t\t\tif (oldVNode.ref) {\n\t\t\t\tapplyRef(oldVNode.ref, NULL, childVNode);\n\t\t\t}\n\t\t\trefQueue.push(\n\t\t\t\tchildVNode.ref,\n\t\t\t\tchildVNode._component || newDom,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t}\n\n\t\tif (firstChildDom == NULL && newDom != NULL) {\n\t\t\tfirstChildDom = newDom;\n\t\t}\n\n\t\tif (\n\t\t\tchildVNode._flags & INSERT_VNODE ||\n\t\t\toldVNode._children === childVNode._children\n\t\t) {\n\t\t\toldDom = insert(childVNode, oldDom, parentDom);\n\t\t} else if (typeof childVNode.type == 'function' && result !== UNDEFINED) {\n\t\t\toldDom = result;\n\t\t} else if (newDom) {\n\t\t\toldDom = newDom.nextSibling;\n\t\t}\n\n\t\t// Unset diffing flags\n\t\tchildVNode._flags &= ~(INSERT_VNODE | MATCHED);\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} newParentVNode\n * @param {ComponentChildren[]} renderResult\n * @param {VNode[]} oldChildren\n */\nfunction constructNewChildrenArray(\n\tnewParentVNode,\n\trenderResult,\n\toldChildren,\n\toldDom,\n\tnewChildrenLength\n) {\n\t/** @type {number} */\n\tlet i;\n\t/** @type {VNode} */\n\tlet childVNode;\n\t/** @type {VNode} */\n\tlet oldVNode;\n\n\tlet oldChildrenLength = oldChildren.length,\n\t\tremainingOldChildren = oldChildrenLength;\n\n\tlet skew = 0;\n\n\tnewParentVNode._children = new Array(newChildrenLength);\n\tfor (i = 0; i < newChildrenLength; i++) {\n\t\t// @ts-expect-error We are reusing the childVNode variable to hold both the\n\t\t// pre and post normalized childVNode\n\t\tchildVNode = renderResult[i];\n\n\t\tif (\n\t\t\tchildVNode == NULL ||\n\t\t\ttypeof childVNode == 'boolean' ||\n\t\t\ttypeof childVNode == 'function'\n\t\t) {\n\t\t\tnewParentVNode._children[i] = NULL;\n\t\t\tcontinue;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint' ||\n\t\t\tchildVNode.constructor == String\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tNULL,\n\t\t\t\tchildVNode,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL\n\t\t\t);\n\t\t} else if (isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL\n\t\t\t);\n\t\t} else if (childVNode.constructor == UNDEFINED && childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : NULL,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\tconst skewedIndex = i + skew;\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Temporarily store the matchingIndex on the _index property so we can pull\n\t\t// out the oldVNode in diffChildren. We'll override this to the VNode's\n\t\t// final index after using this property to get the oldVNode\n\t\tconst matchingIndex = (childVNode._index = findMatchingIndex(\n\t\t\tchildVNode,\n\t\t\toldChildren,\n\t\t\tskewedIndex,\n\t\t\tremainingOldChildren\n\t\t));\n\n\t\toldVNode = NULL;\n\t\tif (matchingIndex != -1) {\n\t\t\toldVNode = oldChildren[matchingIndex];\n\t\t\tremainingOldChildren--;\n\t\t\tif (oldVNode) {\n\t\t\t\toldVNode._flags |= MATCHED;\n\t\t\t}\n\t\t}\n\n\t\t// Here, we define isMounting for the purposes of the skew diffing\n\t\t// algorithm. Nodes that are unsuspending are considered mounting and we detect\n\t\t// this by checking if oldVNode._original == null\n\t\tconst isMounting = oldVNode == NULL || oldVNode._original == NULL;\n\n\t\tif (isMounting) {\n\t\t\tif (matchingIndex == -1) {\n\t\t\t\t// When the array of children is growing we need to decrease the skew\n\t\t\t\t// as we are adding a new element to the array.\n\t\t\t\t// Example:\n\t\t\t\t// [1, 2, 3] --> [0, 1, 2, 3]\n\t\t\t\t// oldChildren newChildren\n\t\t\t\t//\n\t\t\t\t// The new element is at index 0, so our skew is 0,\n\t\t\t\t// we need to decrease the skew as we are adding a new element.\n\t\t\t\t// The decrease will cause us to compare the element at position 1\n\t\t\t\t// with value 1 with the element at position 0 with value 0.\n\t\t\t\t//\n\t\t\t\t// A linear concept is applied when the array is shrinking,\n\t\t\t\t// if the length is unchanged we can assume that no skew\n\t\t\t\t// changes are needed.\n\t\t\t\tif (newChildrenLength > oldChildrenLength) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else if (newChildrenLength < oldChildrenLength) {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we are mounting a DOM VNode, mark it for insertion\n\t\t\tif (typeof childVNode.type != 'function') {\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t} else if (matchingIndex != skewedIndex) {\n\t\t\t// When we move elements around i.e. [0, 1, 2] --> [1, 0, 2]\n\t\t\t// --> we diff 1, we find it at position 1 while our skewed index is 0 and our skew is 0\n\t\t\t// we set the skew to 1 as we found an offset.\n\t\t\t// --> we diff 0, we find it at position 0 while our skewed index is at 2 and our skew is 1\n\t\t\t// this makes us increase the skew again.\n\t\t\t// --> we diff 2, we find it at position 2 while our skewed index is at 4 and our skew is 2\n\t\t\t//\n\t\t\t// this becomes an optimization question where currently we see a 1 element offset as an insertion\n\t\t\t// or deletion i.e. we optimize for [0, 1, 2] --> [9, 0, 1, 2]\n\t\t\t// while a more than 1 offset we see as a swap.\n\t\t\t// We could probably build heuristics for having an optimized course of action here as well, but\n\t\t\t// might go at the cost of some bytes.\n\t\t\t//\n\t\t\t// If we wanted to optimize for i.e. only swaps we'd just do the last two code-branches and have\n\t\t\t// only the first item be a re-scouting and all the others fall in their skewed counter-part.\n\t\t\t// We could also further optimize for swaps\n\t\t\tif (matchingIndex == skewedIndex - 1) {\n\t\t\t\tskew--;\n\t\t\t} else if (matchingIndex == skewedIndex + 1) {\n\t\t\t\tskew++;\n\t\t\t} else {\n\t\t\t\tif (matchingIndex > skewedIndex) {\n\t\t\t\t\tskew--;\n\t\t\t\t} else {\n\t\t\t\t\tskew++;\n\t\t\t\t}\n\n\t\t\t\t// Move this VNode's DOM if the original index (matchingIndex) doesn't\n\t\t\t\t// match the new skew index (i + new skew)\n\t\t\t\t// In the former two branches we know that it matches after skewing\n\t\t\t\tchildVNode._flags |= INSERT_VNODE;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any. Loop forwards so that as we\n\t// unmount DOM from the beginning of the oldChildren, we can adjust oldDom to\n\t// point to the next child, which needs to be the first DOM node that won't be\n\t// unmounted.\n\tif (remainingOldChildren) {\n\t\tfor (i = 0; i < oldChildrenLength; i++) {\n\t\t\toldVNode = oldChildren[i];\n\t\t\tif (oldVNode != NULL && (oldVNode._flags & MATCHED) == 0) {\n\t\t\t\tif (oldVNode._dom == oldDom) {\n\t\t\t\t\toldDom = getDomSibling(oldVNode);\n\t\t\t\t}\n\n\t\t\t\tunmount(oldVNode, oldVNode);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * @param {VNode} parentVNode\n * @param {PreactElement} oldDom\n * @param {PreactElement} parentDom\n * @returns {PreactElement}\n */\nfunction insert(parentVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\n\tif (typeof parentVNode.type == 'function') {\n\t\tlet children = parentVNode._children;\n\t\tfor (let i = 0; children && i < children.length; i++) {\n\t\t\tif (children[i]) {\n\t\t\t\t// If we enter this code path on sCU bailout, where we copy\n\t\t\t\t// oldVNode._children to newVNode._children, we need to update the old\n\t\t\t\t// children's _parent pointer to point to the newVNode (parentVNode\n\t\t\t\t// here).\n\t\t\t\tchildren[i]._parent = parentVNode;\n\t\t\t\toldDom = insert(children[i], oldDom, parentDom);\n\t\t\t}\n\t\t}\n\n\t\treturn oldDom;\n\t} else if (parentVNode._dom != oldDom) {\n\t\tif (oldDom && parentVNode.type && !parentDom.contains(oldDom)) {\n\t\t\toldDom = getDomSibling(parentVNode);\n\t\t}\n\t\tparentDom.insertBefore(parentVNode._dom, oldDom || NULL);\n\t\toldDom = parentVNode._dom;\n\t}\n\n\tdo {\n\t\toldDom = oldDom && oldDom.nextSibling;\n\t} while (oldDom != NULL && oldDom.nodeType == 8);\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {ComponentChildren} children The unflattened children of a virtual\n * node\n * @returns {VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == NULL || typeof children == 'boolean') {\n\t} else if (isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\n/**\n * @param {VNode} childVNode\n * @param {VNode[]} oldChildren\n * @param {number} skewedIndex\n * @param {number} remainingOldChildren\n * @returns {number}\n */\nfunction findMatchingIndex(\n\tchildVNode,\n\toldChildren,\n\tskewedIndex,\n\tremainingOldChildren\n) {\n\tconst key = childVNode.key;\n\tconst type = childVNode.type;\n\tlet oldVNode = oldChildren[skewedIndex];\n\n\t// We only need to perform a search if there are more children\n\t// (remainingOldChildren) to search. However, if the oldVNode we just looked\n\t// at skewedIndex was not already used in this diff, then there must be at\n\t// least 1 other (so greater than 1) remainingOldChildren to attempt to match\n\t// against. So the following condition checks that ensuring\n\t// remainingOldChildren > 1 if the oldVNode is not already used/matched. Else\n\t// if the oldVNode was null or matched, then there could needs to be at least\n\t// 1 (aka `remainingOldChildren > 0`) children to find and compare against.\n\t//\n\t// If there is an unkeyed functional VNode, that isn't a built-in like our Fragment,\n\t// we should not search as we risk re-using state of an unrelated VNode. (reverted for now)\n\tlet shouldSearch =\n\t\t// (typeof type != 'function' || type === Fragment || key) &&\n\t\tremainingOldChildren >\n\t\t(oldVNode != NULL && (oldVNode._flags & MATCHED) == 0 ? 1 : 0);\n\n\tif (\n\t\t(oldVNode === NULL && childVNode.key == null) ||\n\t\t(oldVNode &&\n\t\t\tkey == oldVNode.key &&\n\t\t\ttype == oldVNode.type &&\n\t\t\t(oldVNode._flags & MATCHED) == 0)\n\t) {\n\t\treturn skewedIndex;\n\t} else if (shouldSearch) {\n\t\tlet x = skewedIndex - 1;\n\t\tlet y = skewedIndex + 1;\n\t\twhile (x >= 0 || y < oldChildren.length) {\n\t\t\tif (x >= 0) {\n\t\t\t\toldVNode = oldChildren[x];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) == 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype == oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn x;\n\t\t\t\t}\n\t\t\t\tx--;\n\t\t\t}\n\n\t\t\tif (y < oldChildren.length) {\n\t\t\t\toldVNode = oldChildren[y];\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\t(oldVNode._flags & MATCHED) == 0 &&\n\t\t\t\t\tkey == oldVNode.key &&\n\t\t\t\t\ttype == oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\treturn y;\n\t\t\t\t}\n\t\t\t\ty++;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn -1;\n}\n", "import {\n\tEMPTY_OBJ,\n\tMATH_NAMESPACE,\n\tMODE_HYDRATE,\n\tMODE_SUSPENDED,\n\tNULL,\n\tRESET_MODE,\n\tSVG_NAMESPACE,\n\tUNDEFINED,\n\tXHTML_NAMESPACE\n} from '../constants';\nimport { BaseComponent, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { setProperty } from './props';\nimport { assign, isArray, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * @typedef {import('../internal').ComponentChildren} ComponentChildren\n * @typedef {import('../internal').Component} Component\n * @typedef {import('../internal').PreactElement} PreactElement\n * @typedef {import('../internal').VNode} VNode\n */\n\n/**\n * @template {any} T\n * @typedef {import('../internal').Ref} Ref\n */\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {PreactElement} parentDom The parent of the DOM element\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by\n * getChildContext\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {PreactElement} oldDom The current attached DOM element any new dom\n * elements should be placed around. Likely `null` on first render (except when\n * hydrating). Can be a sibling DOM element when diffing Fragments that have\n * siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating,\n\trefQueue\n) {\n\t/** @type {any} */\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor != UNDEFINED) return NULL;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._flags & MODE_SUSPENDED) {\n\t\tisHydrating = !!(oldVNode._flags & MODE_HYDRATE);\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\touter: if (typeof newType == 'function') {\n\t\ttry {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\t\t\tconst isClassComponent =\n\t\t\t\t'prototype' in newType && newType.prototype.render;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif (isClassComponent) {\n\t\t\t\t\t// @ts-expect-error The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-expect-error Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new BaseComponent(\n\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (isClassComponent && c._nextState == NULL) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (isClassComponent && newType.getDerivedStateFromProps != NULL) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == NULL &&\n\t\t\t\t\tc.componentWillMount != NULL\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidMount != NULL) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tisClassComponent &&\n\t\t\t\t\tnewType.getDerivedStateFromProps == NULL &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != NULL\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != NULL &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original == oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original != oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.some(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != NULL) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (isClassComponent && c.componentDidUpdate != NULL) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\t\t\tc._force = false;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif (isClassComponent) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != NULL) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (isClassComponent && !isNew && c.getSnapshotBeforeUpdate != NULL) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != NULL && tmp.type === Fragment && tmp.key == NULL;\n\t\t\tlet renderResult = tmp;\n\n\t\t\tif (isTopLevelFragment) {\n\t\t\t\trenderResult = cloneNode(tmp.props.children);\n\t\t\t}\n\n\t\t\toldDom = diffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tisArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnamespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._flags &= RESET_MODE;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = NULL;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnewVNode._original = NULL;\n\t\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\t\tif (isHydrating || excessDomChildren != NULL) {\n\t\t\t\tif (e.then) {\n\t\t\t\t\tnewVNode._flags |= isHydrating\n\t\t\t\t\t\t? MODE_HYDRATE | MODE_SUSPENDED\n\t\t\t\t\t\t: MODE_SUSPENDED;\n\n\t\t\t\t\twhile (oldDom && oldDom.nodeType == 8 && oldDom.nextSibling) {\n\t\t\t\t\t\toldDom = oldDom.nextSibling;\n\t\t\t\t\t}\n\n\t\t\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = NULL;\n\t\t\t\t\tnewVNode._dom = oldDom;\n\t\t\t\t} else {\n\t\t\t\t\tfor (let i = excessDomChildren.length; i--; ) {\n\t\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t}\n\t\t\toptions._catchError(e, newVNode, oldVNode);\n\t\t}\n\t} else if (\n\t\texcessDomChildren == NULL &&\n\t\tnewVNode._original == oldVNode._original\n\t) {\n\t\tnewVNode._children = oldVNode._children;\n\t\tnewVNode._dom = oldVNode._dom;\n\t} else {\n\t\toldDom = newVNode._dom = diffElementNodes(\n\t\t\toldVNode._dom,\n\t\t\tnewVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tnamespace,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\tisHydrating,\n\t\t\trefQueue\n\t\t);\n\t}\n\n\tif ((tmp = options.diffed)) tmp(newVNode);\n\n\treturn newVNode._flags & MODE_SUSPENDED ? undefined : oldDom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {VNode} root\n */\nexport function commitRoot(commitQueue, root, refQueue) {\n\tfor (let i = 0; i < refQueue.length; i++) {\n\t\tapplyRef(refQueue[i], refQueue[++i], refQueue[++i]);\n\t}\n\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-expect-error Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-expect-error See above comment on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\nfunction cloneNode(node) {\n\tif (\n\t\ttypeof node != 'object' ||\n\t\tnode == NULL ||\n\t\t(node._depth && node._depth > 0)\n\t) {\n\t\treturn node;\n\t}\n\n\tif (isArray(node)) {\n\t\treturn node.map(cloneNode);\n\t}\n\n\treturn assign({}, node);\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {PreactElement} dom The DOM element representing the virtual nodes\n * being diffed\n * @param {VNode} newVNode The new virtual node\n * @param {VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {string} namespace Current namespace of the DOM node (HTML, SVG, or MathML)\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components which have callbacks\n * to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @param {any[]} refQueue an array of elements needed to invoke refs\n * @returns {PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tnamespace,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating,\n\trefQueue\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = /** @type {string} */ (newVNode.type);\n\t/** @type {any} */\n\tlet i;\n\t/** @type {{ __html?: string }} */\n\tlet newHtml;\n\t/** @type {{ __html?: string }} */\n\tlet oldHtml;\n\t/** @type {ComponentChildren} */\n\tlet newChildren;\n\tlet value;\n\tlet inputValue;\n\tlet checked;\n\n\t// Tracks entering and exiting namespaces when descending through the tree.\n\tif (nodeType == 'svg') namespace = SVG_NAMESPACE;\n\telse if (nodeType == 'math') namespace = MATH_NAMESPACE;\n\telse if (!namespace) namespace = XHTML_NAMESPACE;\n\n\tif (excessDomChildren != NULL) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tvalue = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tvalue &&\n\t\t\t\t'setAttribute' in value == !!nodeType &&\n\t\t\t\t(nodeType ? value.localName == nodeType : value.nodeType == 3)\n\t\t\t) {\n\t\t\t\tdom = value;\n\t\t\t\texcessDomChildren[i] = NULL;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == NULL) {\n\t\tif (nodeType == NULL) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = document.createElementNS(\n\t\t\tnamespace,\n\t\t\tnodeType,\n\t\t\tnewProps.is && newProps\n\t\t);\n\n\t\t// we are creating a new node, so we can assume this is a new subtree (in\n\t\t// case we are hydrating), this deopts the hydrate\n\t\tif (isHydrating) {\n\t\t\tif (options._hydrationMismatch)\n\t\t\t\toptions._hydrationMismatch(newVNode, excessDomChildren);\n\t\t\tisHydrating = false;\n\t\t}\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = NULL;\n\t}\n\n\tif (nodeType == NULL) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data != newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\t// If we are in a situation where we are not hydrating but are using\n\t\t// existing DOM (e.g. replaceNode) we should read the existing DOM\n\t\t// attributes to diff them\n\t\tif (!isHydrating && excessDomChildren != NULL) {\n\t\t\toldProps = {};\n\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\tvalue = dom.attributes[i];\n\t\t\t\toldProps[value.name] = value.value;\n\t\t\t}\n\t\t}\n\n\t\tfor (i in oldProps) {\n\t\t\tvalue = oldProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\toldHtml = value;\n\t\t\t} else if (!(i in newProps)) {\n\t\t\t\tif (\n\t\t\t\t\t(i == 'value' && 'defaultValue' in newProps) ||\n\t\t\t\t\t(i == 'checked' && 'defaultChecked' in newProps)\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tsetProperty(dom, i, NULL, value, namespace);\n\t\t\t}\n\t\t}\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tfor (i in newProps) {\n\t\t\tvalue = newProps[i];\n\t\t\tif (i == 'children') {\n\t\t\t\tnewChildren = value;\n\t\t\t} else if (i == 'dangerouslySetInnerHTML') {\n\t\t\t\tnewHtml = value;\n\t\t\t} else if (i == 'value') {\n\t\t\t\tinputValue = value;\n\t\t\t} else if (i == 'checked') {\n\t\t\t\tchecked = value;\n\t\t\t} else if (\n\t\t\t\t(!isHydrating || typeof value == 'function') &&\n\t\t\t\toldProps[i] !== value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, i, value, oldProps[i], namespace);\n\t\t\t}\n\t\t}\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\tif (\n\t\t\t\t!isHydrating &&\n\t\t\t\t(!oldHtml ||\n\t\t\t\t\t(newHtml.__html != oldHtml.__html && newHtml.__html != dom.innerHTML))\n\t\t\t) {\n\t\t\t\tdom.innerHTML = newHtml.__html;\n\t\t\t}\n\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tif (oldHtml) dom.innerHTML = '';\n\n\t\t\tdiffChildren(\n\t\t\t\t// @ts-expect-error\n\t\t\t\tnewVNode.type == 'template' ? dom.content : dom,\n\t\t\t\tisArray(newChildren) ? newChildren : [newChildren],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnodeType == 'foreignObject' ? XHTML_NAMESPACE : namespace,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating,\n\t\t\t\trefQueue\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != NULL) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tremoveNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// As above, don't diff props during hydration\n\t\tif (!isHydrating) {\n\t\t\ti = 'value';\n\t\t\tif (nodeType == 'progress' && inputValue == NULL) {\n\t\t\t\tdom.removeAttribute('value');\n\t\t\t} else if (\n\t\t\t\tinputValue != UNDEFINED &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(inputValue !== dom[i] ||\n\t\t\t\t\t(nodeType == 'progress' && !inputValue) ||\n\t\t\t\t\t// This is only for IE 11 to fix \")),t.showAllControl&&s.push(''));var l=t.srListLabelText,a=t.listClassName?\" \".concat(t.listClassName):\"\",c=l?' aria-label=\"'.concat(l,'\"'):\"\";s.push('\")),s.push('

').concat(g(t.srAssistiveText),\"

\")),s.push(\"
\"),this.element.insertAdjacentHTML(\"afterend\",s.join(\"\"))},t.prototype.destroy=function(){var t=this;this.label&&this.label[p]&&(this.label.setAttribute(\"for\",this.label[p]),delete this.label[p]),this.documentClickBound&&document.removeEventListener(\"click\",this.documentClick),this.autoGrow&&this.inputAutoWidth&&this.inputAutoWidth.destroy(),this.wrapper.parentNode.removeChild(this.wrapper),delete this.element[c],this.show(this.element),clearTimeout(this.filterTimer),clearTimeout(this.pollingTimer),clearTimeout(this.showAllPrepTimer),clearTimeout(this.announcementTimer),clearTimeout(this.componentBlurTimer),clearTimeout(this.clearAnnouncementTimer),clearTimeout(this.elementChangeEventTimer),[\"list\",\"input\",\"label\",\"element\",\"wrapper\",\"showAll\",\"deleteAll\",\"srAssistance\",\"srAnnouncements\"].forEach((function(e){return t[e]=null}))},t.prototype.init=function(t,e){this.selected=[],this.element=t,this.label=document.querySelector('[for=\"'+this.element.id+'\"]'),this.ids=new b(this.element.id,this.label?this.label.id:null,e.id),this.elementIsInput=\"INPUT\"===t.nodeName,this.options=new a(e),this.label&&!this.label.id&&(this.label.id=this.ids.LABEL),this.source=this.options.source,this.multiple=this.options.multiple,this.autoGrow=this.options.autoGrow,this.cssNameSpace=this.options.cssNameSpace,this.documentClick=this.handleComponentBlur.bind(this),this.setHtml(),this.list=document.getElementById(this.ids.LIST),this.input=document.getElementById(this.ids.INPUT),this.wrapper=document.getElementById(this.ids.WRAPPER),this.showAll=document.getElementById(this.ids.BUTTON),this.srAssistance=document.getElementById(this.ids.SR_ASSISTANCE),this.srAnnouncements=document.getElementById(this.ids.SR_ANNOUNCEMENTS),this.prepListSource();var i=[];this.options.showAllControl&&i.push(\"\".concat(this.cssNameSpace,\"__wrapper--show-all\")),this.autoGrow&&i.push(\"\".concat(this.cssNameSpace,\"__wrapper--autogrow\")),this.multiple&&i.push(\"\".concat(this.cssNameSpace,\"__wrapper--multiple\")),i.length&&l(this.wrapper,i.join(\" \")),this.hide(this.list),this.hide(this.element),this.setInputStartingStates(),this.bindEvents(),this.api=new m(this),this.triggerOptionCallback(\"onReady\",[this.wrapper])},t}(),k=P;function F(t,e){return t&&t[c]&&t[c].open?t[c]:new k(t,e).api}var D=F}(),s}()}));", "import { Controller } from \"@hotwired/stimulus\"\nimport AriaAutocomplete from \"../vendor/aria-autocomplete.min.js\"\n\nexport default class extends Controller {\n static targets = [ \"field\" ]\n\n // TODO: this only currently supports a simple use-case of selecting a font\n connect() {\n AriaAutocomplete(this.fieldTarget, {\n showAllControl: true,\n placeholder: this.fieldTarget.placeholder,\n onItemRender: (itemData) => {\n return `${itemData.label}`\n },\n onChange: (selectedItems) => {\n this.element.parentElement.querySelector(\"input\").style.fontFamily = selectedItems[0].value\n }\n })\n this.element.parentElement.querySelector(\"input\").style.fontFamily = this.fieldTarget.value\n\n /* Example of multiple selection: */\n\n // AriaAutocomplete(this.fieldTarget, {\n // multiple: true,\n // placeholder: this.fieldTarget.placeholder,\n // source: async (query, render, isFirstCall) => {\n // const toRender = [{label: \"Foo\", description: \"Wow\", value: \"bar\"}];\n // // build up your Array here, then render...\n // render(toRender);\n // },\n // onItemRender: (itemData) => {\n // return `${itemData.label} (${itemData.value})
${itemData.description}`;\n // }\n // })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"form\" ]\n\n connect() {\n this.submitOnChange()\n this.submitOnEvent()\n\n $(this.formTarget).on(\"ajax:success\", this.success.bind(this))\n $(this.formTarget).on(\"ajax:error\", this.error.bind(this))\n }\n\n submitForm(event) {\n if (this.formTarget.dataset.turbo === \"true\") {\n this.formTarget.requestSubmit(this.formTarget.querySelector(\"button[type='submit']\"))\n } else {\n $.rails.fire($(this.formTarget), \"submit\")\n }\n }\n\n // private\n\n submitOnChange() {\n [...this.formTarget.elements].forEach(element => {\n if (!element.dataset.ignore) {\n element.addEventListener(\"change\", this.submitForm.bind(this))\n }\n })\n }\n\n submitOnEvent() {\n document.body.addEventListener(\"sortable:didSort\",\n this.submitForm.bind(this))\n\n document.body.addEventListener(\"customFont:selected\",\n this.submitForm.bind(this))\n\n document.body.addEventListener(\"sl-change\",\n this.submitForm.bind(this))\n\n document.body.addEventListener(\"cme-blur\",\n this.submitForm.bind(this))\n }\n\n success(event, data, status, xhr) {\n this.submitOnChange()\n }\n\n error(event, xhr) {\n console.log(\"ERROR, status: \", xhr.status)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"textfield\"]\n\n connect() {\n if (!Browser.isIE()) {\n this.textfieldTarget.style.resize = \"none\"\n this.defaultRows = this.textfieldTarget.rows\n this.textChanged()\n } else {\n this.textfieldTarget.rows = 3\n }\n }\n\n textChanged() {\n if (!Browser.isIE()) {\n this.textfieldTarget.rows = this.defaultRows\n const rows = Math.ceil(this.textfieldTarget.scrollHeight / this.lineHeight)\n this.textfieldTarget.rows = Math.min(rows, this.maxRows)\n }\n }\n\n // private\n\n get lineHeight() {\n return 25\n }\n\n get maxRows() {\n return 6\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"search\", \"field1\", \"field2\" ]\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n this.source = new AlgoliaSource(libraries[0], this.data.get(\"index\")).source\n\n $(this.searchTarget).autocomplete({ autoselect: true }, [{\n source: this.source,\n displayKey: (obj) => { return obj.name },\n templates: { suggestion: this.suggestion },\n }]).on(\"autocomplete:selected\", this.selected.bind(this))\n }\n\n // private\n\n suggestion(hit) {\n return `

${hit.name}

`\n }\n\n selected(event, suggestion, dataset, context) {\n if (this.hasField1Target && this.field1 && suggestion[this.field1]) {\n this.field1Target.value = suggestion[this.field1]\n }\n\n if (this.hasField2Target && this.field2 && suggestion[this.field2]) {\n this.field2Target.value = suggestion[this.field2]\n }\n }\n\n get field1() {\n return this.data.get(\"field1\")\n }\n\n get field2() {\n return this.data.get(\"field2\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"availableCheckbox\"]\n\n clickedComingSoon(event) {\n event.preventDefault()\n this.availableCheckboxTarget.checked = true\n\n $(\"#coming-soon-promo\").modal()\n BeerMenus.Analytics.track(\"Viewed coming soon um modal\", {\n \"pro promo page\": \"Edit menu\",\n \"Pro promo feature\": \"Coming Soon\"\n })\n }\n\n clickedPrivate(event) {\n event.preventDefault()\n this.availableCheckboxTarget.checked = true\n\n $(\"#private-promo\").modal()\n BeerMenus.Analytics.track(\"Viewed private um modal\", {\n \"pro promo page\": \"Edit menu\",\n \"Pro promo feature\": \"Private\"\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n messageId: String,\n name: String,\n email: String,\n subject: String,\n text: String\n }\n\n open(event) {\n event.preventDefault()\n\n this.target.Beacon(\"open\")\n this.target.Beacon(\"navigate\", \"/ask\")\n }\n\n prefill(event) {\n event.preventDefault()\n\n this.target.Beacon(\"open\")\n this.target.Beacon(\"navigate\", \"/ask/message/\")\n this.target.Beacon(\"prefill\", {\n name: this.nameValue,\n email: this.emailValue,\n subject: this.subjectValue,\n text: this.textValue\n })\n }\n\n showMessage(event) {\n event.preventDefault()\n this.target.Beacon(\"show-message\", this.messageIdValue, { delay: 1, force: true })\n }\n\n // private\n\n get target() {\n return parent ? parent : window\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.state = \"closed\"\n\n document.addEventListener(\"tab:changed\", (event) => {\n this.tabChanged(event.detail)\n })\n }\n\n // private\n\n tabChanged(tab) {\n if (tab == this.productName.toLowerCase()) {\n this.searchTarget.nextSibling.focus()\n }\n }\n\n get limit() {\n return parseInt(this.data.get(\"limit\")) || 10\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n\n get productType() {\n return this.data.get(\"product-type\")\n }\n\n get productName() {\n return this.data.get(\"product-name\")\n }\n}\n", "import ProductAutocompleteController from \"./product-autocomplete-controller\"\n\nexport default class extends ProductAutocompleteController {\n static targets = [\"beerID\", \"beerName\", \"container\", \"description\", \"beerStyle\", \"beerAbv\",\n \"metaDataContainer\", \"descriptionContainer\", \"descriptionRevert\", \"styleRevert\", \"abvRevert\",\n \"modal\", \"search\", \"submit\", \"suggestions\", \"template\"]\n\n static values = {\n hasGlobalDescription: Boolean,\n styleId: Number,\n abv: Number,\n skipFocus: Boolean\n }\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n const filter = `product_type = ${this.productType}`\n this.algolia = new AlgoliaSource(libraries[0], \"Beer\", filter)\n this.showDescriptionRevertTarget = this.hasGlobalDescriptionValue != \"false\"\n this.connected()\n }\n\n populate(id, name, style_id, abv) {\n this.beerIDTarget.value = id\n this.search.val(name)\n\n this.descriptionTarget.value = \"\"\n this.fetchDescription(id, true)\n\n const data = {\n beer_style_id: style_id,\n abv: abv\n }\n this.setStyleAndAbv(data)\n\n if (this.validateSelection()) {\n this.containerTarget.focus()\n }\n }\n\n showNewBeerModal(event) {\n event && event.preventDefault()\n\n $.ajax({\n url: \"/beers/new.js\",\n context: this,\n data: {\n name: this.search.val(),\n product_type: this.productType,\n bar_id: this.barID,\n edit: this.edit,\n modal: true\n }\n })\n .fail((jqXHR, status, error) => console.error(error))\n }\n\n suggestionsModalClosed() {\n this.validateSelection()\n }\n\n revertDescription(event) {\n event.preventDefault()\n\n $.ajax({\n url: this.descriptionURL(this.beerIDTarget.value),\n data: {\n default: true\n },\n dataType: \"json\"\n }).done(data => {\n this.descriptionTarget.value = data.description || \"\"\n this.descriptionRevertTarget.classList.add(\"hidden\")\n this.triggerInputEvent()\n })\n }\n\n revertStyle(event) {\n event.preventDefault()\n this.beerStyleTarget.value = this.styleIdValue\n $(this.beerStyleTarget).trigger('change')\n this.styleRevertTarget.classList.add(\"hidden\")\n }\n\n revertAbv(event) {\n event.preventDefault()\n this.beerAbvTarget.value = this.abvValue\n this.abvRevertTarget.classList.add(\"hidden\")\n }\n\n get skipEmptySuggestionsModal() {\n return this.data.get(\"skip-empty-suggestions-modal\") == \"true\"\n }\n\n // private\n\n connected() {\n this.initializeSearch()\n\n this.search.focus(event => this.searchQuery = event.currentTarget.value)\n\n if (!this.skipFocusValue) {\n this.searchTarget.nextSibling.focus()\n }\n\n this.suggestions = []\n\n document.body.addEventListener(\"skip-empty-suggestions-modal-change\", (event) => {\n this.data.set(\"skip-empty-suggestions-modal\", event.detail)\n })\n\n this.addRevertListener(\"keyup\", this.descriptionTarget, this.descriptionRevertTarget, this.showDescriptionRevertTarget)\n this.addRevertListener(\"input\", this.beerAbvTarget, this.abvRevertTarget, true)\n\n $(this.beerStyleTarget).on('select2:select', (e) => {\n if (this.beerStyleTarget.value != this.styleIdValue) {\n this.styleRevertTarget.classList.remove(\"hidden\")\n }\n })\n\n this.firstNoResultsKeystroke = true\n\n super.connect()\n }\n\n addRevertListener(listener, target, revertTarget, showMethod) {\n target.addEventListener(listener, () => {\n if (showMethod) {\n revertTarget.classList.remove(\"hidden\")\n }\n })\n }\n\n initializeSearch() {\n this.search = $(this.searchTarget).autocomplete(this.options, this.dataset)\n\n this.search\n .on(\"autocomplete:selected autocomplete:autocompleted\", (event, data) => {\n this.state = data.cssClass == this.addNewBeerClass ? \"new\" : \"existing\"\n this.containerTarget.focus()\n\n if (data.objectID) {\n this.setHiddenField(data.objectID)\n this.fetchDescription(data.objectID)\n this.setStyleAndAbv(data)\n }\n })\n .on(\"autocomplete:updated\", event => {\n if (event.currentTarget.value != this.searchQuery) {\n this.clearJavaScriptMessages()\n }\n })\n .on(\"autocomplete:closed\", () => {\n // \"Delay\" so modal:willShow event fires after any other clicks.\n setTimeout(() => { this.state = \"closed\" }, 1)\n })\n }\n\n setHiddenField(id) {\n if (this.hasBeerIDTarget && this.state != \"new\") {\n this.beerIDTarget.value = id\n }\n }\n\n setStyleAndAbv(data) {\n if (this.hasBeerStyleTarget) {\n this.beerStyleTarget.value = data.beer_style_id\n // Trigger change event to update the select2 dropdown\n $(this.beerStyleTarget).trigger('change')\n this.styleIdValue = data.beer_style_id\n this.metaDataContainerTarget.classList.remove(\"hidden\")\n }\n if (this.hasBeerAbvTarget) {\n this.beerAbvTarget.value = data.abv\n this.abvValue = data.abv\n }\n }\n\n validateSelection() {\n if (this.search.val() && !this.beerIDTarget.value) {\n new Servings(this.productType, this.edit).showMissingBeerError()\n return false\n }\n return true\n }\n\n clearJavaScriptMessages() {\n new Servings(this.productType, this.edit).clearJavaScriptMessages()\n }\n\n clearAndHideDescription() {\n this.descriptionTarget.value = \"\"\n this.descriptionContainerTarget.classList.add(\"hidden\")\n }\n\n clearAndHideMetaData() {\n this.beerStyleTarget.value = \"\"\n this.styleIdValue = \"\"\n this.beerAbvTarget.value = \"\"\n this.abvValue = \"\"\n this.metaDataContainerTarget.classList.add(\"hidden\")\n }\n\n source(query, callback, isBeerIndex) {\n this.clearAndHideDescription()\n this.clearAndHideMetaData()\n\n this.algolia.source(query, (suggestions) => {\n suggestions = suggestions.slice(0, this.limit)\n this.suggestions = suggestions\n\n if (suggestions.length === 0 && this.firstNoResultsKeystroke) {\n BeerMenus.Analytics.track(\"Viewed add item to menu no results\", { \"item type\": `${this.productName}` })\n this.firstNoResultsKeystroke = false\n }\n\n suggestions.push({\n name: `${this.productName} not listed? Add it to the database`,\n cssClass: this.addNewBeerClass,\n query: query\n })\n return callback(suggestions)\n })\n }\n\n displayKey(obj) {\n return obj.cssClass == this.addNewBeerClass ? obj.query : obj.name\n }\n\n suggestion(hit) {\n return new BeerAutocompleteSuggestion(this.templateTarget).build(hit)\n }\n\n showSuggestionsModal() {\n const event = new CustomEvent(\"modal:willShow\", {\n bubbles: true,\n cancelable: true,\n })\n\n if (this.element.dispatchEvent(event)) {\n const beerSuggestionsController = this.application\n .getControllerForElementAndIdentifier(this.suggestionsTarget, \"beer-suggestions\")\n beerSuggestionsController.fetch(this.search.val(), this, this.productType)\n BeerMenus.Analytics.track(\"Viewed not in database modal\", { \"item type\": `${this.productName}` })\n }\n }\n\n tabChanged(tab) {\n if (tab == this.productName.toLowerCase()) {\n this.searchTarget.nextSibling.focus()\n }\n }\n\n fetchDescription(beerID, fullDescription = false) {\n this.submitTarget.disabled = true\n\n $.ajax({\n url: this.descriptionURL(beerID),\n data: {\n full: fullDescription\n },\n dataType: \"json\"\n }).done(data => {\n this.descriptionTarget.value = data.description || \"\"\n this.showDescriptionRevertTarget = data.default_exists\n this.descriptionRevertTarget.classList\n .toggle(\"hidden\", !(data.customized && this.showDescriptionRevertTarget))\n\n this.descriptionContainerTarget.classList.remove(\"hidden\")\n this.triggerInputEvent()\n }).always(() => this.submitTarget.disabled = false )\n }\n\n descriptionURL(beerID) {\n return `/places/${this.barID}/beer_descriptions/${beerID}`\n }\n\n triggerInputEvent() {\n if (this.showDescriptionRevertTarget && !Browser.isIE()) {\n const inputEvent = new Event(\"input\", { bubbles: true })\n this.descriptionTarget.dispatchEvent(inputEvent)\n }\n }\n\n get addNewBeerClass() {\n return \"x-add-new-beer\"\n }\n\n get dataset() {\n return {\n source: (query, callback) => { this.source(query, callback) },\n name: \"beers\",\n displayKey: this.displayKey.bind(this),\n templates: { suggestion: this.suggestion.bind(this) },\n }\n }\n\n set state(val) {\n if (val == \"closed\" && this._state) {\n if (this._state == \"new\") {\n this.beerIDTarget.value = null\n this.clearAndHideDescription()\n this.clearAndHideMetaData()\n this.showNewBeerModal()\n } else if (this._state != \"existing\") {\n this.beerIDTarget.value = null\n this.clearAndHideDescription()\n this.clearAndHideMetaData()\n\n if (this.search.val()) {\n const matchedSuggestion = this.matchedSuggestion\n if (matchedSuggestion) {\n this.search.val(matchedSuggestion.name)\n this.beerIDTarget.value = matchedSuggestion.objectID\n } else {\n this.showSuggestionsModal()\n }\n }\n }\n }\n this._state = val\n }\n\n get matchedSuggestion() {\n const query = this.search.val().toLowerCase()\n return this.suggestions.find(suggestion => {\n return suggestion.name.toLowerCase() === query\n })\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n\n get edit() {\n return this.data.get(\"edit\") === \"true\"\n }\n\n get options() {\n return {\n autoselect: true\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"description\" ]\n\n connect() {\n this.element.addEventListener(\"copy\", this.copy.bind(this))\n }\n\n copyDescription() {\n const text = this.descriptionTargets.map(el => el.textContent.trim()).join(\" \")\n this.copyTextToClipboard(text)\n this.copy()\n }\n\n // private\n\n copy(event) {\n BeerMenus.Analytics.track(\"Copied beer meta data on desktop\")\n\n const modal = $(\"#print-menu\")\n if (modal.length) {\n modal.modal()\n BeerMenus.Analytics.track(\"Viewed copied beer info print menu promo\")\n }\n }\n\n copyTextToClipboard(text) {\n const textarea = document.createElement(\"textarea\")\n textarea.value = text\n document.body.appendChild(textarea)\n textarea.select()\n document.execCommand(\"copy\")\n document.body.removeChild(textarea)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"suggestions\", \"template\", \"withSuggestions\", \"noSuggestions\"]\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n this.algolia = new AlgoliaSource(libraries[0], \"Beer\")\n }\n\n fetch(query, controller, productType) {\n this.beerAutocompleteController = controller\n this.reset()\n\n const searchQuery = {\n query: query,\n filters: `product_type = ${productType}`,\n hitsPerPage: this.limit\n }\n this.algolia.index.search(searchQuery).then(result => {\n if (result && result.hits && result.hits.length) {\n this.populateSuggestions(result.hits)\n $(this.element).modal()\n } else if (controller.skipEmptySuggestionsModal) {\n controller.showNewBeerModal()\n } else {\n this.noSuggestionsTargets.forEach(t => t.classList.remove(\"hidden\"))\n $(this.element).modal()\n }\n\n $(this.element).one(\"hidden.bs.modal\", this.modalHidden.bind(this))\n })\n }\n\n select(event) {\n event.preventDefault()\n\n const id = event.currentTarget.dataset[\"id\"]\n const name = event.currentTarget.dataset[\"name\"]\n this.beerAutocompleteController.populate(id, name)\n\n $(this.element).modal(\"hide\")\n }\n\n addNewBeer(event) {\n event.preventDefault()\n\n $(this.element).modal(\"hide\")\n this.beerAutocompleteController.showNewBeerModal()\n }\n\n // private\n\n suggestion(hit) {\n const suggestion = this.templateTarget.cloneNode(true)\n suggestion.classList.remove(\"hidden\")\n suggestion.classList.add(hit.cssClass)\n\n const anchor = suggestion.querySelector(\"[data-ref='anchor']\")\n anchor.dataset[\"id\"] = hit.objectID\n anchor.dataset[\"name\"] = hit.name\n anchor.dataset[\"action\"] = \"beer-suggestions#select\"\n\n suggestion.querySelector(\"[data-ref='name']\").textContent = hit.name\n\n const meta = new BeerMetadata(hit).toString()\n suggestion.querySelector(\"[data-ref='meta']\").textContent = meta\n\n return suggestion\n }\n\n reset() {\n this.suggestionsTarget.innerHTML = \"\"\n this.withSuggestionsTargets.forEach(t => t.classList.add(\"hidden\"))\n this.noSuggestionsTargets.forEach(t => t.classList.add(\"hidden\"))\n }\n\n populateSuggestions(hits) {\n hits.forEach(hit => {\n this.suggestionsTarget.appendChild(this.suggestion(hit))\n })\n this.withSuggestionsTargets.forEach(t => t.classList.remove(\"hidden\"))\n }\n\n modalHidden() {\n this.beerAutocompleteController.suggestionsModalClosed()\n }\n\n get limit() {\n return parseInt(this.data.get(\"limit\")) || 10\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n closeAndFocusServingForm(event) {\n event.preventDefault()\n $(this.element).modal(\"hide\")\n $(\".aa-input\").first().focus()\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"footer\", \"loadingOverlay\" ]\n\n async connect() {\n this.element.controller = this\n await import(\"../models/state-manager.js\")\n }\n\n disconnect() {\n clearTimeout(this.autosaveTimer)\n }\n\n get stateManager() {\n return this.element.querySelector(\"bmu-state-manager\")\n }\n\n get $modal() {\n return $(this.element.querySelector(\":scope > .modal\"))\n }\n\n set loading(isLoading) {\n this.loadingOverlayTarget.classList.toggle(\"is-shown\", isLoading)\n }\n\n set nonImageElementsHidden(isHidden) {\n const section = this.stateManager.querySelector(\".modal-body\")\n\n this.footerTarget.hidden = isHidden\n Array.from(section.children).forEach(el => {\n if (el.dataset.controller != \"image-editor\") el.hidden = isHidden\n })\n }\n\n async openModal(profileId, region, position = \"center\") {\n clearTimeout(this.autosaveTimer)\n\n const src = `${this.data.get(\"src\")}?region=${region}&position=${position}`\n\n const response = await fetch(src)\n const partial = await response.text()\n\n if (this.$modal.get(0) && this.$modal.get(0).style.display == \"block\") {\n this.$modal.removeClass(\"fade\")\n this.$modal.modal(\"hide\")\n this.element.innerHTML = partial\n this.$modal.removeClass(\"fade\") // remove it again with the new partial\n } else {\n this.element.innerHTML = partial\n }\n\n this.stateManager.stateData.profileId = profileId\n this.stateManager.stateData.region = region\n this.stateManager.stateData.position = position\n \n this.stateManager.stateData.minimalSaveOperation = true\n this.$modal.modal(\"show\")\n\n this.$modal.one(\"hidden.bs.modal\", this.hideCallback.bind(this))\n\n setTimeout(() => this.$modal.addClass(\"fade\"), 500)\n\n this.autosaveTimer = setInterval(() => {\n this.autosave()\n }, 2000)\n }\n\n handleStateChange() {\n // not currently used\n }\n\n get isEditingTab() {\n return this.stateManager.current == \"text\" || this.stateManager.current == \"edit_image\"\n }\n\n hideCallback() {\n (iframe => iframe.src = iframe.src)(document.querySelector(\"[data-tv-preview-target='preview']\"))\n }\n\n autosave() {\n if (this.stateManager.current == \"text\") {\n const newContent = this.element.querySelector(\"#tv_menu_block_content\").value\n if (newContent != this.stateManager.currentData.content) {\n this.element.querySelector(\"[data-form-submit]\").click()\n }\n this.stateManager.currentData.content = newContent\n }\n }\n\n startWithText() {\n this.stateManager.current = \"text\"\n this.stateManager.stateData.minimalSaveOperation = true\n }\n\n startWithImage() {\n this.element.querySelector(\"input[type='file']\").click()\n this.stateManager.stateData.minimalSaveOperation = false\n }\n\n saveUploadedImage() {\n this.element.querySelector(\"[data-image-submit]\").click()\n }\n\n saveForm(event) {\n event.preventDefault()\n const form = new FormData(event.target)\n\n form.append(\"profile_id\", this.stateManager.stateData.profileId)\n form.append(\"tv_menu_block[region]\", this.stateManager.stateData.region)\n form.append(\"tv_menu_block[position]\", this.stateManager.stateData.position)\n\n if (!this.stateManager.stateData.minimalSaveOperation) this.loading = true\n\n fetch(event.target.action, { method: event.target.method, body: form })\n .then(res => res.json())\n .then(json => {\n this.loading = false\n\n if (this.stateManager.stateData.minimalSaveOperation) {\n ;(iframe => iframe.src = iframe.src)(this.element.querySelector(\"iframe\"))\n\n if (!event.target.querySelector(\"[name='_method']\")) {\n this.element.querySelectorAll(\"form\").forEach(formEl => {\n const patchMethod = document.createElement(\"input\")\n patchMethod.type = \"hidden\"\n patchMethod.name = \"_method\"\n patchMethod.value = \"patch\"\n formEl.append(patchMethod)\n formEl.action = formEl.action + `/${json.id}`\n })\n this.stateManager.dataset.blockId = json.id\n }\n } else {\n this.openModal(this.stateManager.stateData.profileId, this.stateManager.stateData.region, this.stateManager.stateData.position)\n }\n })\n .catch(err => {\n console.error(err)\n this.loading = false\n })\n }\n\n async deleteBlock(id) {\n this.stateManager.stateData.minimalSaveOperation = false\n this.loading = true\n \n const baseUrl = this.stateManager.dataset.blocksUrl\n const url = `${baseUrl}/${id}`\n const authenticityToken = $(\"meta[name=csrf-token]\").prop(\"content\")\n const form = new FormData()\n form.append(\"authenticity_token\", authenticityToken)\n await fetch(url, { method: \"DELETE\", body: form })\n\n await this.openModal(this.stateManager.stateData.profileId, this.stateManager.stateData.region, this.stateManager.stateData.position)\n }\n\n async graphicToText(event) {\n await this.deleteBlock(this.stateManager.dataset.blockId)\n this.startWithText()\n }\n\n switchLeft(event) {\n event && event.preventDefault()\n this.openModal(this.stateManager.stateData.profileId, this.stateManager.stateData.region, \"left\")\n }\n\n switchCenter(event) {\n event && event.preventDefault()\n this.openModal(this.stateManager.stateData.profileId, this.stateManager.stateData.region, \"center\")\n }\n\n switchRight(event) {\n event && event.preventDefault()\n this.openModal(this.stateManager.stateData.profileId, this.stateManager.stateData.region, \"right\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"search\", \"breweryID\", \"error\", \"beerName\"]\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n const producer = `producer_type = ${this.producerType}`\n this.algolia = new AlgoliaSource(libraries[0], \"Brewery\", producer)\n this.connected()\n }\n\n populate(id, name) {\n this.breweryIDTarget.value = id\n this.search.val(name)\n }\n\n showNewBreweryModal(eventOrShowMessage) {\n var showMessage = false\n if (eventOrShowMessage == true) {\n showMessage = true\n } else if (eventOrShowMessage) {\n eventOrShowMessage.preventDefault()\n }\n\n window.BeerMenus.controllers.breweryAutocompleteController = this\n this.breweryIDTarget.value = null\n\n $(\"#new-beer\").modal(\"hide\")\n\n $.ajax(\"/breweries/new.js\", {\n data: {\n name: this.search.val(),\n producer_type: this.producerType,\n source: this.data.get(\"source\"),\n show_message: showMessage,\n },\n dataType: \"text\" // Don't evaluate response script, handle in showModal().\n }).done(this.showModal.bind(this))\n }\n\n // private\n\n connected() {\n this.suggestions = []\n this.search = $(this.searchTarget).autocomplete(this.options, this.dataset)\n .on(\"autocomplete:selected autocomplete:autocompleted\", this.selected.bind(this))\n .on(\"autocomplete:updated\", this.hideError.bind(this))\n .on(\"autocomplete:closed\", () => this.state = \"closed\")\n }\n\n selected(event, data) {\n if(data.cssClass == this.addNewBreweryClass) {\n this.state = \"new\"\n this.breweryIDTarget.value = null\n this.showNewBreweryModal()\n } else {\n this.state = \"existing\"\n this.breweryIDTarget.value = data.objectID\n\n // Check if short name is at the start of beer name and remove it if it is\n if (this.beerNameTarget.value.startsWith(data.short_name)) {\n this.beerNameTarget.value = this.beerNameTarget.value.replace(data.short_name, '').trim()\n }\n }\n }\n\n showModal(html) {\n BeerMenus.Modals.insert(html, \"#new-brewery\")\n BeerMenus.InputFocuser.focus(\"#new-brewery #brewery_name\")\n\n $(\"#new-brewery\").one(\"hidden.bs.modal\", () => {\n $(\"#new-beer\").modal()\n this.validateSelection()\n })\n }\n\n hideError() {\n if (this.hasErrorTarget) {\n this.errorTarget.classList.add(\"hidden\")\n }\n }\n\n validateSelection() {\n if (this.search.val() && !this.breweryIDTarget.value) {\n this.errorTarget.classList.remove(\"hidden\")\n }\n }\n\n source(query, callback) {\n this.algolia.source(query, (suggestions) => {\n this.suggestions = suggestions\n suggestions.push({\n name: `${this.producerName} not listed? Add it here`,\n cssClass: this.addNewBreweryClass,\n query: query\n })\n return callback(suggestions)\n })\n }\n\n displayKey(obj) {\n return obj.cssClass == this.addNewBreweryClass ? obj.query : obj.name\n }\n\n suggestion(hit) {\n return `

${hit.name}

`\n }\n\n get addNewBreweryClass() {\n return \"x-add-new-brewery\"\n }\n\n get options() {\n return {\n autoselect: true\n }\n }\n\n get dataset() {\n return {\n name: \"breweries\",\n source: this.source.bind(this),\n displayKey: this.displayKey.bind(this),\n templates: { suggestion: this.suggestion }\n }\n }\n\n get producerType() {\n return this.data.get(\"producer-type\")\n }\n\n get producerName() {\n return this.data.get(\"producer-name\")\n }\n\n set state(val) {\n if (val == \"closed\" && this._state != \"new\" && this._state != \"existing\") {\n if (this.search.val()) {\n const matchedSuggestion = this.matchedSuggestion\n if (matchedSuggestion) {\n this.search.val(matchedSuggestion.name)\n this.breweryIDTarget.value = matchedSuggestion.objectID\n } else {\n this.showNewBreweryModal(true)\n }\n }\n }\n this._state = val\n }\n\n get matchedSuggestion() {\n const query = this.search.val().toLowerCase()\n return this.suggestions.find(suggestion => {\n return suggestion.name.toLowerCase() === query\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"input\", \"result\", \"selection\"]\n\n async connect() {\n await this._importLibraries()\n\n let libraries = await AlgoliaSource.importLibraries()\n this.algolia = new AlgoliaSource(libraries[0], \"Brewery\", \"brewery\")\n this._initializeSelect2()\n this._selectBreweries()\n }\n\n async _importLibraries() {\n (await import(\"select2/dist/js/select2.full.js\")).default() // init the plugin\n }\n\n _initializeSelect2() {\n $(this.inputTarget).select2({\n ajax: {\n transport: this._transport.bind(this),\n data: this._data,\n processResults: this._processResults\n },\n escapeMarkup: this._escapeMarkup,\n minimumInputLength: 0,\n cache: false,\n templateResult: this._templateResult.bind(this),\n templateSelection: this._templateSelection.bind(this),\n multiple: true,\n language: this._language()\n })\n }\n\n _selectBreweries() {\n const input = $(this.inputTarget)\n\n if (this.data.get(\"breweries\")) {\n const breweries = JSON.parse(this.data.get(\"breweries\"))\n\n breweries.forEach(brewery => {\n const option = new Option(brewery.name, brewery.id, true, true)\n input.append(option).trigger(\"change\")\n })\n }\n\n input.trigger({type: \"select2:select\"})\n }\n\n _transport(params, success, failure) {\n let queryParams = params.data\n let query = queryParams.query\n delete queryParams.query\n this.algolia.index.search(query, queryParams).then(success, failure)\n }\n\n _data(params) {\n return {\n query: params.term,\n hitsPerPage: 10,\n page: (params.page || 1) - 1\n }\n }\n\n _processResults(data) {\n return {\n results: data.hits.map(hit => ({\n id: hit.objectID,\n text: hit.name\n })),\n pagination: {\n more: data.page + 1 < data.nbPages\n }\n }\n }\n\n _escapeMarkup(markup) {\n return markup\n }\n\n _templateResult(brewery) {\n const result = this.resultTarget.cloneNode(true)\n result.classList.remove(\"hidden\")\n result.querySelector(\".brewery-name\").textContent = brewery.text\n return result\n }\n\n _templateSelection(brewery) {\n const result = this.selectionTarget.cloneNode(true)\n result.classList.remove(\"hidden\")\n result.querySelector(\".brewery-name\").textContent = brewery.text\n return result\n }\n\n // https://github.com/select2/select2/blob/master/src/js/select2/i18n/en.js\n _language() {\n return {\n inputTooShort: function () {\n return \"Start typing brewery name...\";\n }\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"intersection\", \"container\", \"section\"]\n\n connect() {\n if (this.hasContainerTarget) {\n const observer = new IntersectionObserver(this.toggleBulkMove.bind(this))\n observer.observe(this.intersectionTarget)\n }\n }\n\n toggleBulkMove(entries) {\n const onScreen = entries[0].isIntersecting\n const scrolledPast = entries[0].boundingClientRect.y < 0\n const hide = !onScreen && !scrolledPast\n this.containerTarget.classList.toggle(\"hidden\", hide)\n }\n\n moveTo(event) {\n event.preventDefault()\n\n const servingIDs = this.servingIDs\n if (servingIDs.length) {\n const params = `ids[]=${servingIDs.join(\"&ids[]=\")}`\n $.ajax(`${event.currentTarget.href}?${params}`)\n .done(html => BeerMenus.Modals.insert(html))\n } else {\n alert(\"Oops, you didn't select anything.\")\n }\n }\n\n // private\n\n get servingIDs() {\n var servingIDs = []\n this.sectionTargets.forEach(section => {\n this.application\n .getControllerForElementAndIdentifier(section, \"select-all\")\n .checkboxTargets.forEach(checkbox => {\n if (checkbox.checked) {\n servingIDs.push(...checkbox.value.split(\",\"))\n }\n })\n })\n return servingIDs\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"input\", \"output\", \"views\", \"roi\" ]\n\n connect() {\n this.calculate()\n }\n\n calculate(event) {\n if (event && isNaN(parseInt(event.currentTarget.value))) {\n event.currentTarget.value = null\n return window.alert(\"Enter a number.\")\n }\n\n var output = this.conversion\n this.inputTargets.forEach(el => { output *= parseInt(el.value) })\n this.outputTarget.innerText = output.toFixed(2)\n\n this.viewsTargets.forEach((el, index) => {\n const views = parseInt(el.innerText)\n const roi = output * views\n this.roiTargets[index].innerText = `$${roi.toFixed(0)}`\n })\n }\n\n get conversion() {\n return parseFloat(this.data.get(\"conversion\"))\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this._insertCss()\n this._insertScript()\n }\n\n _insertCss() {\n const calendlyCss = document.getElementById(\"calendly-css\")\n if (calendlyCss) {\n } else {\n const tag = document.createElement(\"link\")\n tag.id = \"calendly-css\"\n tag.rel = \"stylesheet\"\n tag.media = \"screen\"\n tag.href = \"https://assets.calendly.com/assets/external/widget.css\"\n document.head.appendChild(tag)\n }\n }\n\n _insertScript() {\n const calendlyScript = document.getElementById(\"calendly-js\")\n if (calendlyScript) {\n } else {\n const script = document.createElement(\"script\")\n script.src = \"https://assets.calendly.com/assets/external/widget.js\"\n script.id = \"calendly-js\"\n document.head.appendChild(script)\n }\n }\n\n click() {\n BeerMenus.Analytics.track(\"Clicked Schedule Call\", {\n \"Platform\": this.data.get(\"platform\"),\n \"Logged In\": this.data.get(\"loggedIn\"),\n \"Schedule Call Campaign\": this.data.get(\"campaign\"),\n })\n\n Calendly.showPopupWidget(this.data.get(\"url\"))\n\n $(\"#next-button\").text(\"Continue\")\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n async connect() {\n await Promise.all([\n import(\"chartkick\"),\n import(\"chart.js\")\n ])\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"primaryDisplay\", \"secondaryDisplay\", \"primary\", \"secondary\"]\n\n connect() {\n this.checkboxChanged()\n }\n\n checkboxChanged() {\n const primaryCount = this.primaryTargets.filter(cb => cb.checked).length\n this.primaryDisplayTarget.textContent = primaryCount\n\n // Only update secondary if it exists\n if (this.hasSecondaryDisplayTarget) {\n const secondaryCount = this.secondaryTargets.filter(cb => cb.checked).length\n this.secondaryDisplayTarget.textContent = secondaryCount\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"checkbox\", \"form\"]\n\n change(event) {\n this.formTarget.submit()\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"source\", \"hidden\" ]\n\n toggle(event) {\n this.hiddenTargets.forEach(target => {\n if (target.classList.contains(\"hidden\")) {\n target.classList.remove(\"hidden\")\n } else {\n target.classList.add(\"hidden\")\n }\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n async connect() {\n await Accordion.import()\n this.initializeAccordion()\n }\n\n // private\n\n initializeAccordion() {\n $(this.element).accordion({\n active: this.activeChecklistIndex,\n heightStyle: \"content\",\n collapsible: true,\n icons: {\n header: \"pure-icon pure-icon-angle-down\",\n activeHeader: \"pure-icon pure-icon-angle-up\"\n },\n beforeActivate: this.beforeActivate.bind(this),\n })\n }\n\n beforeActivate(event, ui) {\n const expandedIdentifier = ui.newHeader.data(\"identifier\")\n if (expandedIdentifier) { // don't update if closing the only expanded\n $.ajax({\n url: `/places/${this.barID}/menu/preferences/active_checklist`,\n method: \"POST\",\n data: {\n identifier: expandedIdentifier,\n },\n })\n }\n }\n\n get activeChecklistIndex() {\n return parseInt(this.data.get(\"active-checklist-index\")) || 0\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"loading\", \"error\" ]\n\n connect() {\n this.fetchChecklists()\n }\n\n reload() {\n this.fetchChecklists()\n }\n\n // private\n\n fetchChecklists() {\n this.showError(false)\n\n $.ajax({\n url: `/places/${this.barID}/checklists/lists.js`,\n error: () => { this.showError(true) },\n })\n }\n\n showError(visible) {\n if (visible) {\n this.loadingTarget.classList.add(\"hidden\")\n this.errorTarget.classList.remove(\"hidden\")\n } else {\n this.loadingTarget.classList.remove(\"hidden\")\n this.errorTarget.classList.add(\"hidden\")\n }\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"trigger\", \"card\", \"show\" ]\n\n expand(event) {\n event.preventDefault()\n\n if (this.cardTargets.length > 0) {\n this.cardTargets.forEach(t => {\n t.classList.remove(\"hidden\")\n t.classList.remove(\"collapsed-cards\")\n })\n }\n\n if (this.showTargets.length > 0) {\n this.showTargets.forEach(t => t.classList.remove(\"hidden\"))\n }\n\n if (this.triggerTargets.length > 0) {\n this.triggerTargets.forEach(t => t.classList.toggle(\"hidden\"))\n }\n }\n\n collapse(event) {\n if (this.showTargets.length > 0) {\n this.showTargets.forEach(t => t.classList.add(\"hidden\"))\n }\n\n if (this.triggerTargets.length > 0) {\n this.triggerTargets.forEach(t => t.classList.toggle(\"hidden\"))\n }\n\n if (this.cardTargets.length > 0) {\n this.cardTargets.forEach(target => {\n if (target.querySelector('input[type=radio]:checked')) {\n target.classList.add(\"collapsed-cards\")\n } else {\n target.classList.add(\"hidden\")\n }\n })\n }\n\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"source\", \"successMessage\"]\n static values = { source: String }\n\n copy(event) {\n event.preventDefault()\n navigator.clipboard.writeText(this.sourceValue).then(() => {\n this.showSuccessMessage()\n })\n }\n\n copyValue(event) {\n event.preventDefault()\n navigator.clipboard.writeText(this.sourceTarget.value).then(() => {\n this.showSuccessMessage()\n })\n }\n\n copyText(event) {\n event.preventDefault()\n navigator.clipboard.writeText(this.sourceTarget.innerText).then(() => {\n this.showSuccessMessage()\n })\n }\n\n showSuccessMessage() {\n if (this.hasSuccessMessageTarget) {\n // Remove the 'fade-out' class if it exists to reset the animation\n this.successMessageTarget.classList.remove(\"fade-out\");\n\n // Force a reflow to reset the animation (by accessing offsetWidth)\n void this.successMessageTarget.offsetWidth;\n\n // Add the 'fade-out' class to start the animation again\n this.successMessageTarget.classList.remove(\"hidden\");\n this.successMessageTarget.classList.add(\"fade-out\");\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n // technique pulled from Stimulus Dialog\n close() {\n this.element.setAttribute(\"closing\", \"\")\n\n Promise.all(this.element.getAnimations().map((animation) => animation.finished)).then(() => {\n this.element.remove()\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"editor\", \"field\", \"defaultCSS\", \"alternateCSS\" ]\n\n async connect() {\n await import(\"../models/codemirror-editor.js\")\n\n this.editorTarget.addEventListener(\"cme-change\", (event) => {\n this.fieldTarget.value = event.detail\n })\n }\n\n reset(event) {\n event.preventDefault()\n this.editorTarget.value = this.defaultCSSTarget.innerText\n }\n\n resetAlternate(event) {\n event.preventDefault()\n this.editorTarget.value = this.alternateCSSTarget.innerText\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"collapsed\", \"expanded\", \"arrowToggle\" ]\n\n toggle(event) {\n event.preventDefault()\n this.collapsedTarget.classList.toggle(\"hidden\")\n this.expandedTarget.classList.toggle(\"hidden\")\n this.isExpanded = this.collapsedTarget.classList.contains(\"hidden\")\n this.setLocationHash(event.currentTarget.href)\n\n if (this.hasArrowToggleTarget) {\n this.arrowToggleTarget.classList.toggle(\"pure-icon-angle-down\")\n this.arrowToggleTarget.classList.toggle(\"pure-icon-angle-right\")\n }\n }\n\n expand(event) {\n event.preventDefault()\n this.collapsedTarget.classList.toggle(\"hidden\", true)\n this.expandedTarget.classList.toggle(\"hidden\", false)\n this.isExpanded = true\n this.setLocationHash(event.currentTarget.href)\n this.scrollToElement(this.expandedTarget)\n }\n\n setLocationHash(href) {\n if (href) {\n const [hash] = href.split(\"#\").slice(-1)\n if (hash != \"\") {\n window.location.hash = hash\n }\n }\n }\n\n scrollToElement(element) {\n $(\"html, body\").animate({ scrollTop: element.offsetTop - 16 }, \"slow\")\n }\n\n set isExpanded(expanded) {\n var data = {}\n data[this.data.get(\"key\")] = expanded\n\n $.ajax({\n url: `/places/${this.barID}/menu/preferences`,\n method: \"PATCH\",\n data: { expanded_collapsibles: data },\n })\n }\n\n get key() {\n return this.data.get(\"key\")\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"content\", \"arrow\" ]\n\n connect() {\n this.arrowTarget.addEventListener(\"click\", (e) => {\n e.preventDefault()\n this.toggleContent()\n })\n }\n\n // private\n\n toggleContent() {\n this.contentTarget.classList.toggle(\"closed\")\n this.arrowTarget.classList.toggle(\"rotate-90\")\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"selectedItems\", \"modal\", \"item\", \"itemName\" ]\n\n connect() {\n this.toggle()\n }\n\n showModal() {\n $(this.modalTarget).modal()\n }\n\n toggle() {\n const itemNames = this.itemNameTargets.map(target => target.innerText)\n const selectedItems = itemNames.filter((name, index) => {\n return this.itemTargets[index].checked\n })\n\n if (selectedItems.length == 0) {\n this.selectedItemsTarget.innerHTML = \"(nothing selected)\"\n } else {\n this.selectedItemsTarget.innerHTML = selectedItems.join(\"
\")\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"source\", \"receiver\" ]\n\n toggle(event) {\n if (this.receiverTargets.length > 0) {\n var sourceID = event.currentTarget.value\n\n this.receiverTargets.forEach(t => {\n if (sourceID == t.dataset.sourceid) {\n t.classList.remove(\"hidden\")\n t.disabled = false\n } else {\n t.classList.add(\"hidden\")\n t.disabled = true\n }\n })\n }\n\n }\n}\n", "import ProductAutocompleteController from \"./product-autocomplete-controller\"\n\nexport default class extends ProductAutocompleteController {\n static targets = [\"search\", \"beerID\", \"description\", \"price\", \"template\", \"submit\"]\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n const bar = `bar_id = ${this.barID}`\n const product = `product_type = ${this.productType}`\n this.algolia = new AlgoliaSource(libraries[0], \"Beer\", `${bar} AND ${product}`)\n this.connected()\n }\n\n // private\n\n connected() {\n this.initializeSearch()\n this.searchTarget.nextSibling.focus()\n\n super.connect()\n }\n\n initializeSearch() {\n this.search = $(this.searchTarget).autocomplete(this.options, this.dataset)\n\n this.search\n .on(\"autocomplete:selected autocomplete:autocompleted\", (event, data) => {\n this.state = \"existing\"\n this.setHiddenField(data.objectID)\n this.fetchDescription(data.objectID)\n this.priceTarget.focus()\n })\n .on(\"autocomplete:closed\", () => { this.state = \"closed\" })\n }\n\n setHiddenField(id) {\n if (this.hasBeerIDTarget && id) {\n this.beerIDTarget.value = id\n }\n }\n\n fetchDescription(id) {\n this.submitTarget.disabled = true\n\n $.ajax(`/places/${this.barID}/beer_descriptions/${id}`)\n .done((data) => { this.descriptionTarget.value = data })\n .always(() => this.submitTarget.disabled = false )\n }\n\n source(query, callback) {\n return this.algolia.source({ query: query, hitsPerPage: this.limit })\n }\n\n suggestion(hit) {\n return new BeerAutocompleteSuggestion(this.templateTarget).build(hit)\n }\n\n set state(val) {\n this._state = val\n }\n\n get dataset() {\n return {\n source: this.algolia.source.bind(this),\n name: \"beers\",\n displayKey: (suggestion) => { return suggestion.name },\n templates: { suggestion: this.suggestion.bind(this) },\n }\n }\n\n get options() {\n return {\n autoselect: true,\n cache: false\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"date\", \"time\" ]\n\n async connect() {\n let libraries = await Promise.all([\n import(\"jquery-ui/ui/widgets/datepicker\"),\n import(\"timepicker\")\n ])\n\n this.initializeDate()\n this.initializeTime()\n }\n\n // private\n\n initializeDate() {\n if (this.hasDateTarget) {\n let options = { dateFormat: \"yy-mm-dd\" }\n if (this.data.has(\"min-date\")) {\n options.minDate = this.data.get(\"min-date\")\n }\n $(this.dateTarget).datepicker(options)\n }\n }\n\n initializeTime() {\n if (this.hasTimeTarget) {\n $(this.timeTarget).timepicker({\n timeFormat: \"h:i A\",\n })\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n import(\"actioncable\").then(ActionCable => {\n window.App || (window.App = {})\n window.App.cable = ActionCable.default.createConsumer()\n\n window.App.cable.subscriptions.create(\"DigitalDisplayChannel\", {\n connected: function() {},\n disconnected: function() {},\n rejected: function() {},\n received: function(data) {\n window.tvMenuLoader && window.tvMenuLoader.clearScreens()\n }\n })\n })\n }\n}\n", "import AlgoliaAutocompleteController from './algolia-autocomplete-controller';\n\nexport default class extends AlgoliaAutocompleteController {\n static values = {\n ...super.constructor.values, // Inherit base values like indexName, placeholder, etc.\n indexName: { type: String, default: 'Beer' },\n productType: { type: String, default: 'beers' }, // e.g., \"beers\"\n turboFrameId: String // ID of the Turbo Frame to update on selection\n };\n\n connect() {\n super.connect();\n console.log('DS Beer Autocomplete connected', {\n element: this.element,\n productType: this.productTypeValue,\n hasContainer: !!this.containerTarget\n });\n }\n\n /**\n * Provides the sources configuration for beer autocomplete.\n */\n _getAutocompleteSources({ query, searchClient }) {\n if (!this.fullAlgoliaIndexName) {\n console.error(\"DS Beer Autocomplete: 'index-name' value is required.\");\n return [];\n }\n\n return [\n {\n sourceId: `${this.indexNameValue}_${this.productTypeValue || 'default'}`, // e.g., Beer_beers\n getItems: () => {\n const searchParams = this.hasSearchParametersValue ? { ...this.searchParametersValue } : { hitsPerPage: 5 };\n // If you have specific filters for beers, you can add them here or pass via searchParametersValue\n // For example: searchParams.filters = `product_type:${this.productTypeValue}`;\n\n return searchClient.search([\n {\n indexName: this.fullAlgoliaIndexName,\n query,\n params: searchParams,\n },\n ]).then(({ results }) => {\n return results[0]?.hits || [];\n }).catch(error => {\n console.error('Error fetching Beer Algolia results:', error);\n return [];\n });\n },\n templates: {\n item: ({ item, html }) => this._beerItemTemplate({ item, html }),\n noResults: ({ html }) => this._defaultNoResultsTemplate({ html }),\n },\n onSelect: (params) => this._onBeerSelect(params),\n },\n ];\n }\n\n /**\n * Custom item template for displaying beer suggestions using Preact's html tag.\n */\n _beerItemTemplate({ item, html }) { // Add html parameter\n const beerName = item.name || 'Unknown Beer';\n return html`\n
\n
\n
\n
${beerName}
\n
\n
\n
\n `;\n }\n\n _onBeerSelect({ item, setQuery, setIsOpen }) {\n console.log('_onBeerSelect called with item:', item);\n\n const frameId = this.turboFrameIdValue;\n const menuIndex = this.element.dataset.menuIndex || '0';\n const sectionIndex = this.element.dataset.sectionIndex || '0';\n const itemIndex = this.element.dataset.itemIndex || '0';\n const menuImportId = this.element.dataset.menuImportId;\n\n const itemId = item.id || item.objectID;\n\n console.log('Beer selected with ID:', itemId);\n console.log('Using frame ID:', frameId);\n console.log('Menu import ID:', menuImportId);\n\n const productType = this.hasProductTypeValue ? this.productTypeValue : 'beers';\n\n // Build the URL for the product selection\n const params = new URLSearchParams({\n menu_index: menuIndex,\n section_index: sectionIndex,\n item_index: itemIndex,\n turbo_frame_id: frameId\n });\n\n // Add menu_import_id if available - this is crucial\n if (menuImportId) {\n params.append('menu_import_id', menuImportId);\n }\n\n // Use the collection route for product match\n const url = `/admin/menu_imports/product_match/${productType}/${itemId}?${params.toString()}`;\n\n // Find the turbo frame element and set its src\n const frame = document.getElementById(frameId);\n if (frame) {\n frame.src = url;\n } else {\n console.error('Could not find Turbo Frame with ID:', frameId);\n }\n\n // Clear the search and close the panel\n if (setQuery) setQuery('');\n if (setIsOpen) setIsOpen(false);\n\n // Dispatch the select event for any other listeners\n this.dispatch(\"select\", {\n detail: {\n item,\n setQuery,\n setIsOpen,\n productType\n }\n });\n }\n\n /**\n * Builds the URL for the product selection endpoint.\n */\n _buildProductSelectionUrl(product, productType, menuIndex, sectionIndex, itemIndex) {\n const params = new URLSearchParams({\n menu_index: menuIndex,\n section_index: sectionIndex,\n item_index: itemIndex\n });\n\n return `/admin/menu_imports/product_match/${productType}/${product.id}?${params.toString()}`;\n }\n\n // Optional: Override _getAutocompleteOptions if beers need specific top-level settings\n // _getAutocompleteOptions() {\n // return {\n // ...super._getAutocompleteOptions(),\n // openOnFocus: true,\n // };\n // }\n}\n", "/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n", "/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n", "/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n", "/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n", "/**\n * Outlayer Item\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size'\n ],\n factory\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n require('ev-emitter'),\n require('get-size')\n );\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(\n window.EvEmitter,\n window.getSize\n );\n }\n\n}( window, function factory( EvEmitter, getSize ) {\n'use strict';\n\n// ----- helpers ----- //\n\nfunction isEmptyObj( obj ) {\n for ( var prop in obj ) {\n return false;\n }\n prop = null;\n return true;\n}\n\n// -------------------------- CSS3 support -------------------------- //\n\n\nvar docElemStyle = document.documentElement.style;\n\nvar transitionProperty = typeof docElemStyle.transition == 'string' ?\n 'transition' : 'WebkitTransition';\nvar transformProperty = typeof docElemStyle.transform == 'string' ?\n 'transform' : 'WebkitTransform';\n\nvar transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n}[ transitionProperty ];\n\n// cache all vendor properties that could have vendor prefix\nvar vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n};\n\n// -------------------------- Item -------------------------- //\n\nfunction Item( element, layout ) {\n if ( !element ) {\n return;\n }\n\n this.element = element;\n // parent layout class, i.e. Masonry, Isotope, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n}\n\n// inherit EvEmitter\nvar proto = Item.prototype = Object.create( EvEmitter.prototype );\nproto.constructor = Item;\n\nproto._create = function() {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n\n this.css({\n position: 'absolute'\n });\n};\n\n// trigger specified handler for event type\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * apply CSS styles to element\n * @param {Object} style\n */\nproto.css = function( style ) {\n var elemStyle = this.element.style;\n\n for ( var prop in style ) {\n // use vendor property if available\n var supportedProp = vendorProperties[ prop ] || prop;\n elemStyle[ supportedProp ] = style[ prop ];\n }\n};\n\n // measure position, and sets it\nproto.getPosition = function() {\n var style = getComputedStyle( this.element );\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[ isOriginLeft ? 'left' : 'right' ];\n var yValue = style[ isOriginTop ? 'top' : 'bottom' ];\n var x = parseFloat( xValue );\n var y = parseFloat( yValue );\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if ( xValue.indexOf('%') != -1 ) {\n x = ( x / 100 ) * layoutSize.width;\n }\n if ( yValue.indexOf('%') != -1 ) {\n y = ( y / 100 ) * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN( x ) ? 0 : x;\n y = isNaN( y ) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n\n this.position.x = x;\n this.position.y = y;\n};\n\n// set settled position, apply padding\nproto.layoutPosition = function() {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n\n var x = this.position.x + layoutSize[ xPadding ];\n // set in percentage or pixels\n style[ xProperty ] = this.getXValue( x );\n // reset other property\n style[ xResetProperty ] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n\n var y = this.position.y + layoutSize[ yPadding ];\n // set in percentage or pixels\n style[ yProperty ] = this.getYValue( y );\n // reset other property\n style[ yResetProperty ] = '';\n\n this.css( style );\n this.emitEvent( 'layout', [ this ] );\n};\n\nproto.getXValue = function( x ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ?\n ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';\n};\n\nproto.getYValue = function( y ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ?\n ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';\n};\n\nproto._transitionTo = function( x, y ) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition( x, y );\n\n // if did not move and not transitioning, just go to layout\n if ( didNotMove && !this.isTransitioning ) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate( transX, transY );\n\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n};\n\nproto.getTranslate = function( x, y ) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n};\n\n// non transition + transform support\nproto.goTo = function( x, y ) {\n this.setPosition( x, y );\n this.layoutPosition();\n};\n\nproto.moveTo = proto._transitionTo;\n\nproto.setPosition = function( x, y ) {\n this.position.x = parseFloat( x );\n this.position.y = parseFloat( y );\n};\n\n// ----- transition ----- //\n\n/**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n\n// non transition, just trigger callback\nproto._nonTransition = function( args ) {\n this.css( args.to );\n if ( args.isCleaning ) {\n this._removeStyles( args.to );\n }\n for ( var prop in args.onTransitionEnd ) {\n args.onTransitionEnd[ prop ].call( this );\n }\n};\n\n/**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\nproto.transition = function( args ) {\n // redirect to nonTransition if no transition duration\n if ( !parseFloat( this.layout.options.transitionDuration ) ) {\n this._nonTransition( args );\n return;\n }\n\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for ( var prop in args.onTransitionEnd ) {\n _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];\n }\n // keep track of properties that are transitioning\n for ( prop in args.to ) {\n _transition.ingProperties[ prop ] = true;\n // keep track of properties to clean up when transition is done\n if ( args.isCleaning ) {\n _transition.clean[ prop ] = true;\n }\n }\n\n // set from styles\n if ( args.from ) {\n this.css( args.from );\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition( args.to );\n // set styles that are transitioning\n this.css( args.to );\n\n this.isTransitioning = true;\n\n};\n\n// dash before all cap letters, including first for\n// WebkitTransform => -webkit-transform\nfunction toDashedAll( str ) {\n return str.replace( /([A-Z])/g, function( $1 ) {\n return '-' + $1.toLowerCase();\n });\n}\n\nvar transitionProps = 'opacity,' + toDashedAll( transformProperty );\n\nproto.enableTransition = function(/* style */) {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if ( this.isTransitioning ) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener( transitionEndEvent, this, false );\n};\n\n// ----- events ----- //\n\nproto.onwebkitTransitionEnd = function( event ) {\n this.ontransitionend( event );\n};\n\nproto.onotransitionend = function( event ) {\n this.ontransitionend( event );\n};\n\n// properties that I munge to make my life easier\nvar dashedVendorProperties = {\n '-webkit-transform': 'transform'\n};\n\nproto.ontransitionend = function( event ) {\n // disregard bubbled events from children\n if ( event.target !== this.element ) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[ propertyName ];\n // check if any properties are still transitioning\n if ( isEmptyObj( _transition.ingProperties ) ) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if ( propertyName in _transition.clean ) {\n // clean up style\n this.element.style[ event.propertyName ] = '';\n delete _transition.clean[ propertyName ];\n }\n // trigger onTransitionEnd callback\n if ( propertyName in _transition.onEnd ) {\n var onTransitionEnd = _transition.onEnd[ propertyName ];\n onTransitionEnd.call( this );\n delete _transition.onEnd[ propertyName ];\n }\n\n this.emitEvent( 'transitionEnd', [ this ] );\n};\n\nproto.disableTransition = function() {\n this.removeTransitionStyles();\n this.element.removeEventListener( transitionEndEvent, this, false );\n this.isTransitioning = false;\n};\n\n/**\n * removes style property from element\n * @param {Object} style\n**/\nproto._removeStyles = function( style ) {\n // clean up transition styles\n var cleanStyle = {};\n for ( var prop in style ) {\n cleanStyle[ prop ] = '';\n }\n this.css( cleanStyle );\n};\n\nvar cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n};\n\nproto.removeTransitionStyles = function() {\n // remove transition\n this.css( cleanTransitionStyle );\n};\n\n// ----- stagger ----- //\n\nproto.stagger = function( delay ) {\n delay = isNaN( delay ) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n};\n\n// ----- show/hide/remove ----- //\n\n// remove element from DOM\nproto.removeElem = function() {\n this.element.parentNode.removeChild( this.element );\n // remove display: none\n this.css({ display: '' });\n this.emitEvent( 'remove', [ this ] );\n};\n\nproto.remove = function() {\n // just remove element if no transition support or no transition\n if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once( 'transitionEnd', function() {\n this.removeElem();\n });\n this.hide();\n};\n\nproto.reveal = function() {\n delete this.isHidden;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;\n\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onRevealTransitionEnd = function() {\n // check if still visible\n // during transition, item may have been hidden\n if ( !this.isHidden ) {\n this.emitEvent('reveal');\n }\n};\n\n/**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\nproto.getHideRevealTransitionEndProperty = function( styleProperty ) {\n var optionStyle = this.layout.options[ styleProperty ];\n // use opacity\n if ( optionStyle.opacity ) {\n return 'opacity';\n }\n // get first property\n for ( var prop in optionStyle ) {\n return prop;\n }\n};\n\nproto.hide = function() {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;\n\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onHideTransitionEnd = function() {\n // check if still hidden\n // during transition, item may have been un-hidden\n if ( this.isHidden ) {\n this.css({ display: 'none' });\n this.emitEvent('hide');\n }\n};\n\nproto.destroy = function() {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n};\n\nreturn Item;\n\n}));\n", "/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n\n( function( window, factory ) {\n 'use strict';\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './item'\n ],\n function( EvEmitter, getSize, utils, Item ) {\n return factory( window, EvEmitter, getSize, utils, Item);\n }\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./item')\n );\n } else {\n // browser global\n window.Outlayer = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n window.Outlayer.Item\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize, utils, Item ) {\n'use strict';\n\n// ----- vars ----- //\n\nvar console = window.console;\nvar jQuery = window.jQuery;\nvar noop = function() {};\n\n// -------------------------- Outlayer -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Outlayer intances\nvar instances = {};\n\n\n/**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\nfunction Outlayer( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for ' + this.constructor.namespace +\n ': ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[ id ] = this; // associate via id\n\n // kick it off\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n if ( isInitLayout ) {\n this.layout();\n }\n}\n\n// settings are for internal use only\nOutlayer.namespace = 'outlayer';\nOutlayer.Item = Item;\n\n// default options\nOutlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n};\n\nvar proto = Outlayer.prototype;\n// inherit EvEmitter\nutils.extend( proto, EvEmitter.prototype );\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\n/**\n * get backwards compatible option value, check old name\n */\nproto._getOption = function( option ) {\n var oldOption = this.constructor.compatOptions[ option ];\n return oldOption && this.options[ oldOption ] !== undefined ?\n this.options[ oldOption ] : this.options[ option ];\n};\n\nOutlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n};\n\nproto._create = function() {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp( this.options.stamp );\n // set container style\n utils.extend( this.element.style, this.options.containerStyle );\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if ( canBindResize ) {\n this.bindResize();\n }\n};\n\n// goes through all children again and gets bricks in proper order\nproto.reloadItems = function() {\n // collection of item elements\n this.items = this._itemize( this.element.children );\n};\n\n\n/**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\nproto._itemize = function( elems ) {\n\n var itemElems = this._filterFindItemElements( elems );\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for ( var i=0; i < itemElems.length; i++ ) {\n var elem = itemElems[i];\n var item = new Item( elem, this );\n items.push( item );\n }\n\n return items;\n};\n\n/**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\nproto._filterFindItemElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.itemSelector );\n};\n\n/**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\nproto.getItemElements = function() {\n return this.items.map( function( item ) {\n return item.element;\n });\n};\n\n// ----- init & layout ----- //\n\n/**\n * lays out all items\n */\nproto.layout = function() {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ?\n layoutInstant : !this._isLayoutInited;\n this.layoutItems( this.items, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n};\n\n// _init is alias for layout\nproto._init = proto.layout;\n\n/**\n * logic before any new layout\n */\nproto._resetLayout = function() {\n this.getSize();\n};\n\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\nproto._getMeasurement = function( measurement, size ) {\n var option = this.options[ measurement ];\n var elem;\n if ( !option ) {\n // default to 0\n this[ measurement ] = 0;\n } else {\n // use option as an element\n if ( typeof option == 'string' ) {\n elem = this.element.querySelector( option );\n } else if ( option instanceof HTMLElement ) {\n elem = option;\n }\n // use size of element, if element\n this[ measurement ] = elem ? getSize( elem )[ size ] : option;\n }\n};\n\n/**\n * layout a collection of item elements\n * @api public\n */\nproto.layoutItems = function( items, isInstant ) {\n items = this._getItemsForLayout( items );\n\n this._layoutItems( items, isInstant );\n\n this._postLayout();\n};\n\n/**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\nproto._getItemsForLayout = function( items ) {\n return items.filter( function( item ) {\n return !item.isIgnored;\n });\n};\n\n/**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\nproto._layoutItems = function( items, isInstant ) {\n this._emitCompleteOnItems( 'layout', items );\n\n if ( !items || !items.length ) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n\n items.forEach( function( item ) {\n // get x/y object from method\n var position = this._getItemLayoutPosition( item );\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push( position );\n }, this );\n\n this._processLayoutQueue( queue );\n};\n\n/**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\nproto._getItemLayoutPosition = function( /* item */ ) {\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\nproto._processLayoutQueue = function( queue ) {\n this.updateStagger();\n queue.forEach( function( obj, i ) {\n this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );\n }, this );\n};\n\n// set stagger from option in milliseconds number\nproto.updateStagger = function() {\n var stagger = this.options.stagger;\n if ( stagger === null || stagger === undefined ) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds( stagger );\n return this.stagger;\n};\n\n/**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\nproto._positionItem = function( item, x, y, isInstant, i ) {\n if ( isInstant ) {\n // if not transition, just set CSS\n item.goTo( x, y );\n } else {\n item.stagger( i * this.stagger );\n item.moveTo( x, y );\n }\n};\n\n/**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\nproto._postLayout = function() {\n this.resizeContainer();\n};\n\nproto.resizeContainer = function() {\n var isResizingContainer = this._getOption('resizeContainer');\n if ( !isResizingContainer ) {\n return;\n }\n var size = this._getContainerSize();\n if ( size ) {\n this._setContainerMeasure( size.width, true );\n this._setContainerMeasure( size.height, false );\n }\n};\n\n/**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\nproto._getContainerSize = noop;\n\n/**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\nproto._setContainerMeasure = function( measure, isWidth ) {\n if ( measure === undefined ) {\n return;\n }\n\n var elemSize = this.size;\n // add padding and border width if border box\n if ( elemSize.isBorderBox ) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\n elemSize.paddingBottom + elemSize.paddingTop +\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max( measure, 0 );\n this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';\n};\n\n/**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\nproto._emitCompleteOnItems = function( eventName, items ) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent( eventName + 'Complete', null, [ items ] );\n }\n\n var count = items.length;\n if ( !items || !count ) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n function tick() {\n doneCount++;\n if ( doneCount == count ) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach( function( item ) {\n item.once( eventName, tick );\n });\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n // add original event to arguments\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery ) {\n // set this.$element\n this.$element = this.$element || jQuery( this.element );\n if ( event ) {\n // create jQuery event\n var $event = jQuery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n } else {\n // just trigger with type if no event available\n this.$element.trigger( type, args );\n }\n }\n};\n\n// -------------------------- ignore & stamps -------------------------- //\n\n\n/**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\nproto.ignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n item.isIgnored = true;\n }\n};\n\n/**\n * return item to layout collection\n * @param {Element} elem\n */\nproto.unignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n delete item.isIgnored;\n }\n};\n\n/**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\nproto.stamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ) {\n return;\n }\n\n this.stamps = this.stamps.concat( elems );\n // ignore\n elems.forEach( this.ignore, this );\n};\n\n/**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\nproto.unstamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ){\n return;\n }\n\n elems.forEach( function( elem ) {\n // filter out removed stamp elements\n utils.removeFrom( this.stamps, elem );\n this.unignore( elem );\n }, this );\n};\n\n/**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\nproto._find = function( elems ) {\n if ( !elems ) {\n return;\n }\n // if string, use argument as selector string\n if ( typeof elems == 'string' ) {\n elems = this.element.querySelectorAll( elems );\n }\n elems = utils.makeArray( elems );\n return elems;\n};\n\nproto._manageStamps = function() {\n if ( !this.stamps || !this.stamps.length ) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach( this._manageStamp, this );\n};\n\n// update boundingLeft / Top\nproto._getBoundingRect = function() {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),\n bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )\n };\n};\n\n/**\n * @param {Element} stamp\n**/\nproto._manageStamp = noop;\n\n/**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\nproto._getElementOffset = function( elem ) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize( elem );\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n};\n\n// -------------------------- resize -------------------------- //\n\n// enable event handlers for listeners\n// i.e. resize -> onresize\nproto.handleEvent = utils.handleEvent;\n\n/**\n * Bind layout to window resizing\n */\nproto.bindResize = function() {\n window.addEventListener( 'resize', this );\n this.isResizeBound = true;\n};\n\n/**\n * Unbind layout to window resizing\n */\nproto.unbindResize = function() {\n window.removeEventListener( 'resize', this );\n this.isResizeBound = false;\n};\n\nproto.onresize = function() {\n this.resize();\n};\n\nutils.debounceMethod( Outlayer, 'onresize', 100 );\n\nproto.resize = function() {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if ( !this.isResizeBound || !this.needsResizeLayout() ) {\n return;\n }\n\n this.layout();\n};\n\n/**\n * check if layout is needed post layout\n * @returns Boolean\n */\nproto.needsResizeLayout = function() {\n var size = getSize( this.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n};\n\n// -------------------------- methods -------------------------- //\n\n/**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n**/\nproto.addItems = function( elems ) {\n var items = this._itemize( elems );\n // add items to collection\n if ( items.length ) {\n this.items = this.items.concat( items );\n }\n return items;\n};\n\n/**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\nproto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems( items, true );\n this.reveal( items );\n};\n\n/**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\nproto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat( previousItems );\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems( items, true );\n this.reveal( items );\n // layout previous items\n this.layoutItems( previousItems );\n};\n\n/**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.reveal = function( items ) {\n this._emitCompleteOnItems( 'reveal', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.reveal();\n });\n};\n\n/**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.hide = function( items ) {\n this._emitCompleteOnItems( 'hide', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.hide();\n });\n};\n\n/**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.revealItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.reveal( items );\n};\n\n/**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.hideItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.hide( items );\n};\n\n/**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\nproto.getItem = function( elem ) {\n // loop through items to get the one that matches\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n if ( item.element == elem ) {\n // return item\n return item;\n }\n }\n};\n\n/**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\nproto.getItems = function( elems ) {\n elems = utils.makeArray( elems );\n var items = [];\n elems.forEach( function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n items.push( item );\n }\n }, this );\n\n return items;\n};\n\n/**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\nproto.remove = function( elems ) {\n var removeItems = this.getItems( elems );\n\n this._emitCompleteOnItems( 'remove', removeItems );\n\n // bail if no items to remove\n if ( !removeItems || !removeItems.length ) {\n return;\n }\n\n removeItems.forEach( function( item ) {\n item.remove();\n // remove item from collection\n utils.removeFrom( this.items, item );\n }, this );\n};\n\n// ----- destroy ----- //\n\n// remove and disable Outlayer instance\nproto.destroy = function() {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach( function( item ) {\n item.destroy();\n });\n\n this.unbindResize();\n\n var id = this.element.outlayerGUID;\n delete instances[ id ]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if ( jQuery ) {\n jQuery.removeData( this.element, this.constructor.namespace );\n }\n\n};\n\n// -------------------------- data -------------------------- //\n\n/**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\nOutlayer.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.outlayerGUID;\n return id && instances[ id ];\n};\n\n\n// -------------------------- create Outlayer class -------------------------- //\n\n/**\n * create a layout class\n * @param {String} namespace\n */\nOutlayer.create = function( namespace, options ) {\n // sub-class Outlayer\n var Layout = subclass( Outlayer );\n // apply new options and compatOptions\n Layout.defaults = utils.extend( {}, Outlayer.defaults );\n utils.extend( Layout.defaults, options );\n Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );\n\n Layout.namespace = namespace;\n\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass( Item );\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit( Layout, namespace );\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if ( jQuery && jQuery.bridget ) {\n jQuery.bridget( namespace, Layout );\n }\n\n return Layout;\n};\n\nfunction subclass( Parent ) {\n function SubClass() {\n Parent.apply( this, arguments );\n }\n\n SubClass.prototype = Object.create( Parent.prototype );\n SubClass.prototype.constructor = SubClass;\n\n return SubClass;\n}\n\n// ----- helpers ----- //\n\n// how many milliseconds are in each unit\nvar msUnits = {\n ms: 1,\n s: 1000\n};\n\n// munge time-like parameter into millisecond number\n// '0.4s' -> 40\nfunction getMilliseconds( time ) {\n if ( typeof time == 'number' ) {\n return time;\n }\n var matches = time.match( /(^\\d*\\.?\\d*)(\\w*)/ );\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if ( !num.length ) {\n return 0;\n }\n num = parseFloat( num );\n var mult = msUnits[ unit ] || 1;\n return num * mult;\n}\n\n// ----- fin ----- //\n\n// back in global\nOutlayer.Item = Item;\n\nreturn Outlayer;\n\n}));\n", "/*!\n * Masonry v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer'),\n require('get-size')\n );\n } else {\n // browser global\n window.Masonry = factory(\n window.Outlayer,\n window.getSize\n );\n }\n\n}( window, function factory( Outlayer, getSize ) {\n\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n\n var proto = Masonry.prototype;\n\n proto._resetLayout = function() {\n this.getSize();\n this._getMeasurement( 'columnWidth', 'outerWidth' );\n this._getMeasurement( 'gutter', 'outerWidth' );\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for ( var i=0; i < this.cols; i++ ) {\n this.colYs.push( 0 );\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function() {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if ( !this.columnWidth ) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[ mathMethod ]( cols );\n this.cols = Math.max( cols, 1 );\n };\n\n proto.getContainerWidth = function() {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize( container );\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function( item ) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );\n colSpan = Math.min( colSpan, this.cols );\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ?\n '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[ colPosMethod ]( colSpan, item );\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for ( var i = colPosition.col; i < setMax; i++ ) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function( colSpan ) {\n var colGroup = this._getTopColGroup( colSpan );\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply( Math, colGroup );\n\n return {\n col: colGroup.indexOf( minimumY ),\n y: minimumY,\n };\n };\n\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n proto._getTopColGroup = function( colSpan ) {\n if ( colSpan < 2 ) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for ( var i = 0; i < groupCount; i++ ) {\n colGroup[i] = this._getColGroupY( i, colSpan );\n }\n return colGroup;\n };\n\n proto._getColGroupY = function( col, colSpan ) {\n if ( colSpan < 2 ) {\n return this.colYs[ col ];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice( col, col + colSpan );\n // and get the max value of the array\n return Math.max.apply( Math, groupColYs );\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function( colSpan, item ) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n\n return {\n col: col,\n y: this._getColGroupY( col, colSpan ),\n };\n };\n\n proto._manageStamp = function( stamp ) {\n var stampSize = getSize( stamp );\n var offset = this._getElementOffset( stamp );\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor( firstX / this.columnWidth );\n firstCol = Math.max( 0, firstCol );\n var lastCol = Math.floor( lastX / this.columnWidth );\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min( this.cols - 1, lastCol );\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +\n stampSize.outerHeight;\n for ( var i = firstCol; i <= lastCol; i++ ) {\n this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );\n }\n };\n\n proto._getContainerSize = function() {\n this.maxY = Math.max.apply( Math, this.colYs );\n var size = {\n height: this.maxY\n };\n\n if ( this._getOption('fitWidth') ) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function() {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while ( --i ) {\n if ( this.colYs[i] !== 0 ) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function() {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n\n}));\n", "/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"theme\", \"color\", \"setting\", \"filterable\" ]\n\n async connect() {\n\n var Masonry = require('masonry-layout')\n var imagesLoaded = require('imagesloaded')\n\n self.msnry = new Masonry( '.grid', {\n itemSelector: '.grid-item',\n columnWidth: '.grid-sizer',\n percentPosition: true\n })\n\n $('.grid').imagesLoaded().progress( function() {\n self.msnry.layout()\n })\n }\n\n change(event) {\n var activeThemes = []\n var activeSettings = []\n var colorSetting = \"\"\n\n this.themeTargets.forEach((el, i) => {\n if (el.checked) { activeThemes.push(el.value) }\n })\n\n this.settingTargets.forEach((el, i) => {\n if (el.checked) { activeSettings.push(el.value) }\n })\n\n this.colorTargets.forEach((el, i) => {\n if (el.checked) { colorSetting = el.value }\n })\n\n this.filterableTargets.forEach((el, i) => {\n let filterValues = el.getAttribute(\"data-filter-values\")\n\n let activeTheme = activeThemes.length == 0 || activeThemes.some(r=> filterValues.includes(r))\n let activeSetting = activeSettings.length == 0 || activeSettings.some(r=> filterValues.includes(r))\n let activeColor = colorSetting == el.getAttribute(\"data-has-color\")\n\n if (activeTheme && activeSetting && activeColor) {\n el.classList.remove(\"hidden\")\n } else {\n el.classList.add(\"hidden\")\n }\n })\n self.msnry.layout()\n }\n\n layout(event) {\n self.msnry.layout()\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n async connect() {\n if (!window.Browser.isIE()) {\n (await import(\"select2/dist/js/select2.full.js\")).default() // init the plugin\n this.initializeSelect2()\n }\n }\n\n // private\n\n initializeSelect2() {\n $(this.element).select2({\n minimumResultsForSearch: Infinity,\n templateResult: (data, container) => {\n container.style.fontFamily = data.text\n return data.text\n },\n templateSelection: (state) => {\n return $(`${state.text}`)\n }\n }).on(\"select2:select\", () => {\n const event = new CustomEvent(\"customFont:selected\", { bubbles: true })\n this.element.dispatchEvent(event)\n }).on(\"select2:open\", () => {\n // We need this for when the user selects the same exact option\n setTimeout(() => {\n document.querySelector(\".select2-results__option[aria-selected=true]\").addEventListener(\"mouseup\", () => {\n const event = new CustomEvent(\"customFont:selected\", { bubbles: true })\n this.element.dispatchEvent(event)\n })\n })\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"name\", \"googlePlaceID\", \"website\", \"phoneNumber\", \"types\", \"template\", \"footer\" ]\n\n async initializedGoogleMaps(event) {\n if (event) {\n (await import(\"../vendor/autocomplete.jquery.js\")).default\n\n const emptyDiv = document.createElement(\"div\")\n this.placeService = new google.maps.places.PlacesService(emptyDiv)\n\n const sessionToken = new google.maps.places.AutocompleteSessionToken();\n this.autocompleteService = new google.maps.places.AutocompleteService()\n\n $(this.nameTarget).autocomplete({ autoselect: true }, {\n source: this.source.bind(this),\n displayKey: this.displayKey.bind(this),\n templates: {\n suggestion: this.suggestion.bind(this),\n footer: this.footer.bind(this),\n },\n })\n .on(\"autocomplete:selected autocomplete:autocompleted\",\n this.autocompleted.bind(this))\n .focus()\n }\n\n // ignore 'enter' key presses\n document.onkeypress = (e) => { return e.keyCode != 13 }\n }\n\n // private\n\n source(query, callback) {\n const options = {\n input: query,\n types: [\"establishment\"],\n sessionToken: this.sessionToken,\n }\n this.autocompleteService.getPlacePredictions(options, (predictions, status) => {\n callback(predictions)\n })\n }\n\n displayKey(hit) {\n return hit.structured_formatting.main_text\n }\n\n suggestion(hit) {\n const template = this.templateTarget.cloneNode(true)\n template.classList.remove(\"hidden\")\n\n const info = hit.structured_formatting\n template.querySelector(\"[data-ref='name']\").textContent = info.main_text\n template.querySelector(\"[data-ref='details']\").textContent = info.secondary_text\n\n return template\n }\n\n footer() {\n const footer = this.footerTarget.cloneNode(true)\n footer.classList.remove(\"hidden\")\n return footer\n }\n\n autocompleted(event, data) {\n const request = {\n placeId: data.place_id,\n fields: this.fields,\n sessionToken: this.sessionToken,\n }\n this.placeService.getDetails(request, (place, status) => {\n this.populateForm(place)\n this.resetSessionToken()\n })\n }\n\n populateForm(place) {\n this.googlePlaceIDTarget.value = place.place_id\n this.websiteTarget.value = place.website || \"\"\n this.phoneNumberTarget.value = place.international_phone_number || \"\"\n this.typesTarget.value = place.types || \"\"\n\n const addressService = new window.AddressService()\n addressService.populateFormFields(place, true)\n }\n\n resetSessionToken() {\n this._sessionToken = undefined\n }\n\n get sessionToken() {\n if (this._sessionToken === undefined) {\n this._sessionToken = new google.maps.places.AutocompleteSessionToken()\n }\n return this._sessionToken\n }\n\n get fields() {\n return [\n \"name\",\n \"place_id\",\n \"geometry\",\n \"address_components\",\n \"formatted_address\",\n \"type\",\n \"website\",\n \"international_phone_number\",\n ]\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"button\", \"menu\", \"links\"]\n\n connect() {\n this.buttonTarget.addEventListener(\"click\", (e) => {\n e.preventDefault()\n this.toggleMenu()\n })\n\n this.linksTarget.querySelectorAll(\"a\").forEach(link => {\n link.addEventListener(\"click\", this.toggleMenu.bind(this))\n })\n }\n\n // private\n\n toggleMenu() {\n this.buttonTarget.classList.toggle(\"lp-burger-open\")\n this.menuTarget.classList.toggle(\"lp-burger-open\")\n }\n}\n", "// https://css-tricks.com/styling-based-on-scroll-position/\nexport default class Debouncer {\n static debounce(fn) {\n let frame\n\n return (...params) => {\n if (frame) {\n cancelAnimationFrame(frame)\n }\n\n frame = requestAnimationFrame(() => {\n fn(...params)\n })\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\nimport Debouncer from \"../models/debouncer\"\n\nexport default class extends Controller {\n connect() {\n this.lastScrollTop = window.pageYOffset\n this.headerHeight = this.element.offsetHeight\n\n document.addEventListener(\"scroll\",\n Debouncer.debounce(this.hasScrolled.bind(this)),\n { passive: true }\n )\n }\n\n // private\n\n hasScrolled() {\n const scrollTop = window.pageYOffset\n\n if (Math.abs(this.lastScrollTop - scrollTop) > this.delta) {\n if (scrollTop > this.lastScrollTop && scrollTop > this.headerHeight) {\n this.element.classList.remove(\"nav-down\")\n this.element.classList.add(\"nav-up\")\n } else {\n if (scrollTop + window.innerHeight < document.documentElement.scrollHeight) {\n this.element.classList.remove(\"nav-up\")\n this.element.classList.add(\"nav-down\")\n }\n }\n\n this.lastScrollTop = scrollTop\n }\n }\n\n get delta() {\n return 5\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n if (process.env.JAVASCRIPT_ERROR_REPORTING == \"1\") {\n this.initializeHoneybadger()\n }\n }\n\n // private\n\n initializeHoneybadger() {\n import(\"honeybadger-js\").then(Honeybadger => {\n Honeybadger.default.configure({\n apiKey: process.env.HONEYBADGER_API_KEY,\n environment: process.env.NODE_ENV,\n revision: __COMMIT_HASH__\n })\n\n if (this.data.get(\"user-id\")) {\n Honeybadger.default.setContext({\n user_id: this.data.get(\"user-id\"),\n user_email: this.data.get(\"user-email\")\n })\n }\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n get modalController() {\n return this.element.closest(\"[data-controller='block-modal']\").controller\n }\n\n process() {\n this.modalController.loading = true\n\n const form = new FormData()\n form.append('authenticity_token', $(\"meta[name=csrf-token]\").prop(\"content\"))\n\n fetch(this.data.get(\"endpoint\"), { method: \"POST\", body: form })\n .then(res => res.json())\n .then(json => {\n this.modalController.loading = false\n\n ;(iframe => iframe.src = iframe.src)(this.element.closest(\"bmu-state-manager\").querySelector(\"iframe\"))\n ;(iframe => iframe.src = iframe.src)(document.querySelector(\"[data-tv-preview-target='preview']\"))\n })\n .catch(err => {\n this.modalController.loading = false\n console.error(err)\n })\n }\n}\n", "/**\n * Creates a `` tag with a blob based on incoming CSS code,\n * then injects into ``.\n * \n * @param {string} css\n */\nexport default function(css) {\n var blob = new Blob([css], {type: \"text/css\"})\n var link = document.createElement(\"link\")\n link.rel = \"stylesheet\"\n link.href = URL.createObjectURL(blob)\n document.head.appendChild(link)\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nimport loadStyles from \"../lib/load-styles.js\"\n\nexport default class extends Controller {\n static targets = [ \"editor\", \"activationButtons\", \"editingButtons\" ]\n\n async connect() {\n const pintura = await import(\"../vendor/pintura/pintura.js\")\n const pinturaStyles = (await import(\"../../styles/vendor/pintura.css.js\")).default\n loadStyles(pinturaStyles)\n\n this.pintura = pintura\n }\n\n get modalController() {\n return this.element.closest(\"[data-controller='block-modal']\").controller\n }\n\n activate(event) {\n this.modalController.nonImageElementsHidden = true\n this.editorTarget.classList.add(\"opened\")\n this.pintura.setPlugins(this.pintura.plugin_crop, this.pintura.plugin_finetune, this.pintura.plugin_filter)\n this.editor = this.pintura.appendEditor(this.editorTarget, {\n src: this.data.get(\"imageUrl\"),\n imageReader: this.pintura.createDefaultImageReader(),\n imageWriter: this.pintura.createDefaultImageWriter(),\n filterFunctions: {\n invert: this.pintura.filterInvert,\n ...this.pintura.plugin_filter_defaults.filterFunctions\n },\n filterOptions: [\n ['Default', [[undefined, (locale) => locale.labelDefault]]],\n ['Invert', [[\"invert\", \"Invert\"]]],\n [\n 'Classic',\n [\n ['chrome', (locale) => locale.filterLabelChrome],\n ['fade', (locale) => locale.filterLabelFade],\n ['cold', (locale) => locale.filterLabelCold],\n ['warm', (locale) => locale.filterLabelWarm],\n ['pastel', (locale) => locale.filterLabelPastel],\n ],\n ],\n [\n 'Monochrome',\n [\n ['monoDefault', (locale) => locale.filterLabelMonoDefault],\n ['monoNoir', (locale) => locale.filterLabelMonoNoir],\n ['monoStark', (locale) => locale.filterLabelMonoStark],\n ['monoWash', (locale) => locale.filterLabelMonoWash],\n ],\n ],\n [\n 'Sepia',\n [\n ['sepiaDefault', (locale) => locale.filterLabelSepiaDefault],\n ['sepiaRust', (locale) => locale.filterLabelSepiaRust],\n ['sepiaBlues', (locale) => locale.filterLabelSepiaBlues],\n ['sepiaColor', (locale) => locale.filterLabelSepiaColor],\n ],\n ],\n ],\n ...this.pintura.plugin_finetune_defaults,\n locale: {\n ...this.pintura.locale_en_gb,\n ...this.pintura.plugin_crop_locale_en_gb,\n ...this.pintura.plugin_finetune_locale_en_gb,\n ...this.pintura.plugin_filter_locale_en_gb,\n },\n\n enableButtonExport: false\n })\n\n this.activationButtonsTarget.style.display = \"none\"\n this.editingButtonsTarget.style.display = \"block\"\n }\n\n async finish() {\n this.modalController.loading = true\n\n const result = await this.editor.processImage()\n\n const form = new FormData()\n form.append('uploaded_image', result.dest);\n form.append('authenticity_token', $(\"meta[name=csrf-token]\").prop(\"content\"))\n\n fetch(this.data.get(\"endpoint\"), { method: \"PUT\", body: form })\n .then(res => res.json())\n .then(json => {\n this.modalController.loading = false\n\n ;(iframe => iframe.src = iframe.src)(this.element.closest(\"bmu-state-manager\").querySelector(\"iframe\"))\n ;(iframe => iframe.src = iframe.src)(document.querySelector(\"[data-tv-preview-target='preview']\"))\n })\n .catch(err => {\n this.modalController.loading = false\n console.error(err)\n })\n\n this.editorTarget.classList.remove(\"opened\")\n this.editor.destroy()\n\n this.modalController.nonImageElementsHidden = false\n this.activationButtonsTarget.style.display = \"block\"\n this.editingButtonsTarget.style.display = \"none\"\n }\n\n cancel(event) {\n event.preventDefault()\n\n this.editorTarget.classList.remove(\"opened\")\n this.editor.destroy()\n\n this.modalController.nonImageElementsHidden = false\n this.activationButtonsTarget.style.display = \"block\"\n this.editingButtonsTarget.style.display = \"none\"\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"form\", \"latitude\", \"longitude\", \"name\", \"input\" ]\n\n connect() {\n if (!document.getElementById(\"mapkit-script\")) {\n new Promise(resolve => {\n const element = document.createElement(\"script\")\n element.id = \"mapkit-script\"\n element.addEventListener(\"load\", resolve, { once : true })\n element.src = \"https://cdn.apple-mapkit.com/mk/5.0.x/mapkit.js\"\n document.head.appendChild(element)\n }).then(() => {\n mapkit.init({\n language: \"en\",\n authorizationCallback: this.authorizationCallback,\n })\n \n mapkit.addEventListener(\"error\", this.mapkitError.bind(this))\n\n this.initializeAutocomplete()\n })\n } else {\n this.initializeAutocomplete()\n }\n }\n\n reset() {\n this.latitudeTarget.value = \"\"\n this.longitudeTarget.value = \"\"\n this.nameTarget.value = \"\"\n }\n\n submit(event) {\n event.preventDefault()\n\n if (this.nameTarget.value || this.error) {\n $.rails.disableFormElement($(event.currentTarget))\n $.rails.fire($(this.formTarget), \"submit\")\n } else {\n $(this.inputTargets).autocomplete(\"open\")\n BeerMenus.Messages.setError(\"Whoops, please select a suggested location.\")\n }\n }\n\n // private\n\n async initializeAutocomplete() {\n (await import(\"../vendor/autocomplete.jquery.js\")).default // init the plugin\n\n $(this.inputTarget).autocomplete({ autoselect: true }, [{\n source: this.source.bind(this),\n templates: { suggestion: this.suggestion.bind(this) },\n displayKey: this.displayKey.bind(this),\n debounce: 200,\n }]).on(\"autocomplete:selected autocomplete:autocompleted\", (event, data) => {\n this.populateForm(data)\n }).on(\"autocomplete:opened\", () => {\n this.reset()\n })\n }\n\n authorizationCallback(done) {\n $.ajax({ url: \"/api/internal/tokens\",\n type: \"POST\",\n success: (response) => {\n done(response)\n },\n })\n }\n\n source(query, callback) {\n this.search.autocomplete(query, (error, data) => {\n if (error) {\n if (!this.error) {\n BeerMenus.Analytics.track(\"Over MapKit API Limit\")\n }\n this.error = error\n } else {\n const results = data.results.filter(result => {\n const lines = result.displayLines.join(\" \").toLowerCase()\n return !lines.includes(\"search nearby\")\n })\n callback(results)\n }\n })\n }\n\n suggestion(hit) {\n return `

${this.displayKey(hit)}

`\n }\n\n displayKey(obj) {\n return obj.displayLines.join(\", \")\n }\n\n populateForm(result) {\n this.latitudeTarget.value = result.coordinate.latitude\n this.longitudeTarget.value = result.coordinate.longitude\n this.nameTarget.value = result.displayLines.join(\", \")\n }\n\n mapkitError(event) {\n var message = null\n switch (event.status) {\n case \"Unauthorized\":\n message = \"MapKit JS unauthorized.\"\n break\n case \"Too Many Requests\":\n message = \"MapKit JS over daily request limit.\"\n break\n }\n\n if (message != null) {\n $.ajax({\n method: \"POST\",\n url: \"/api/internal/logs\",\n data: { message: `[MapKit] ${message}` },\n })\n }\n }\n\n get search() {\n if (this._search == undefined) {\n this._search = new mapkit.Search\n }\n return this._search\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"container\"]\n\n async connect() {\n\n var Masonry = require('masonry-layout')\n var imagesLoaded = require('imagesloaded')\n var container = this.containerTarget\n\n self.msnry = new Masonry(container, {\n itemSelector: '.grid-item',\n columnWidth: '.grid-sizer',\n percentPosition: true\n })\n\n $(container).imagesLoaded().progress( function() {\n self.msnry.layout()\n })\n\n }\n\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"loading\", \"content\", \"error\"]\n\n connect() {\n window.BeerMenus.controllers.menuController = this\n this.loadMenu()\n }\n\n refresh() {\n this.loadMenu()\n }\n\n // private\n\n loadMenu() {\n this.show(this.loadingTarget)\n\n $.ajax(`/places/${this.data.get(\"bar-id\")}/menu`)\n .done((html) => {\n this.show(this.contentTarget)\n this.contentTarget.innerHTML = html\n })\n .fail(() => this.show(this.errorTarget))\n }\n\n show(target) {\n [this.loadingTarget, this.contentTarget, this.errorTarget]\n .forEach((t) => t.classList.add(\"hidden\"))\n target.classList.remove(\"hidden\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"search\", \"beerTemplate\", \"servingTemplate\", \"modal\" ]\n\n connect() {\n if (this.searchTarget.getAttribute(\"aria-hidden\") == \"true\") { return }\n\n $(this.searchTarget).one(\"focus\",\n this.fetchServingsAndInitializeSearch.bind(this))\n }\n\n teardown() {\n this.search.autocomplete(\"destroy\")\n }\n\n showModal() {\n if (this.hasModalTarget) {\n $(this.modalTarget).modal()\n window.scrollTo(0, 0)\n $(this.searchTargets).focus()\n }\n }\n\n closeModal() {\n $(this.searchTargets).autocomplete(\"val\", \"\")\n\n if (this.hasModalTarget) {\n $(this.modalTarget).modal(\"hide\")\n }\n }\n\n // private\n\n fetchServingsAndInitializeSearch() {\n Promise.all([\n $.ajax(`/places/${this.barID}/menu/search.json?buy=${this.buyingEnabled}&edit=${this.isEdit}`),\n AlgoliaSource.importLibraries()\n ]).then(promises => {\n this.servings = promises[0]\n this.initializeAlgolia(promises[1][0])\n this.initializeSearch()\n $(this.searchTargets).focus()\n })\n }\n\n initializeAlgolia(algoliasearch) {\n const filters = Object.keys(this.servings)\n .map(id => `objectID:${id}`).join(\" OR \")\n this.baseSource = new AlgoliaSource(algoliasearch, \"Beer\", filters).source\n }\n\n initializeSearch() {\n this.search = $(this.searchTarget).autocomplete(this.options, this.dataset)\n .on(\"autocomplete:opened\", this.opened.bind(this))\n .on(\"autocomplete:selected autocomplete:autocompleted\", this.selected.bind(this))\n }\n\n opened(event) {\n if (!isNaN(this.scrollOffset)) {\n const offset = $(event.currentTarget).offset().top - this.scrollOffset\n $(\"html, body\").animate({ scrollTop: offset }, \"slow\")\n }\n }\n\n selected(event, suggestion) {\n this.closeModal()\n\n if (this.buyingEnabled) {\n $.ajax(this.buyPath(suggestion))\n } else if (this.isEdit) {\n Turbo.visit(this.editPath(suggestion), { frame: `serving_${suggestion.servings[0].id}` })\n } else {\n if (typeof(Turbolinks) == \"object\") {\n Turbolinks.visit(suggestion.path)\n } else {\n location.href = suggestion.path\n }\n }\n }\n\n source(query, callback) {\n this.baseSource(query, (suggestions) => {\n const servings = suggestions.map(suggestion => {\n const servings = this.servings[suggestion.objectID]\n suggestion.servings = servings\n return suggestion\n })\n return callback(servings)\n })\n }\n\n suggestion(hit) {\n const beerTemplate = this.beerTemplateTarget.cloneNode(true)\n beerTemplate.classList.remove(\"hidden\")\n beerTemplate.querySelector(\"[data-ref='name']\").textContent = hit.name\n\n const meta = new BeerMetadata(hit).toString()\n beerTemplate.querySelector(\"[data-ref='meta']\").textContent = meta\n\n hit.servings.forEach(serving => {\n const servingTemplate = this.servingTemplateTarget.cloneNode(true)\n servingTemplate.classList.remove(\"hidden\")\n servingTemplate.querySelector(\"[data-ref='availability']\").classList.add(serving.availability)\n servingTemplate.querySelector(\"[data-ref='details']\").textContent = serving.details\n beerTemplate.querySelector(\"[data-ref='servings']\").appendChild(servingTemplate)\n })\n\n const editButton = beerTemplate.querySelector(\"[data-ref='edit']\")\n if (editButton) {\n editButton.addEventListener(\"click\", (e) => e.preventDefault())\n }\n\n return beerTemplate\n }\n\n editPath(hit) {\n const servingID = hit.servings[0].id\n return `/servings/${servingID}/choose?bar_id=${this.barID}`\n }\n\n buyPath(hit) {\n const beerID = hit.objectID\n return `/places/${this.barID}/buy/?beer_id=${beerID}&cart_id=${this.cartID}&edit_order=${this.editOrder}`\n }\n\n get options() {\n return {\n autoselect: true,\n openOnFocus: true,\n clearOnSelected: true,\n debug: false,\n cssClasses: {\n prefix: \"menu-search\",\n cursor: \"cursor\",\n },\n }\n }\n\n get dataset() {\n return {\n source: this.source.bind(this),\n name: \"beers\",\n displayKey: (suggestion) => { return suggestion.name },\n templates: { suggestion: this.suggestion.bind(this) },\n }\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n\n get cartID() {\n return this.data.get(\"cart-id\")\n }\n\n get scrollOffset() {\n return parseInt(this.data.get(\"scroll-offset\"))\n }\n\n get buyingEnabled() {\n return this.data.get(\"buying-enabled\") == \"true\"\n }\n\n get editOrder() {\n return this.data.get(\"edit-order\") == \"true\"\n }\n\n get isEdit() {\n return this.data.get(\"is-edit\") == \"true\"\n }\n\n get editMenuVersion() {\n return this.data.get(\"edit-menu-version\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n showNewSectionModal(event) {\n event.preventDefault()\n\n $(\"#menu-sections\").modal(\"hide\")\n MenuSections.showNewSectionModal(this.data.get(\"product-type\"))\n }\n}\n", "import { Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"menuSection\", \"servingType\", \"error\"]\n\n sectionChanged(event) {\n let selectedOption = null\n if (event.currentTarget.selectedOptions) {\n selectedOption = event.currentTarget.selectedOptions[0]\n } else {\n // IE 11\n selectedOption = event.currentTarget.options[event.currentTarget.selectedIndex]\n }\n\n if (selectedOption.dataset[\"type\"] == \"create\") {\n this.showNewSectionModal()\n }\n\n this.clearError()\n }\n\n servingTypeChanged(event) {\n this.selectMenuSection(event.currentTarget.value)\n }\n\n newSection(event) {\n event.preventDefault()\n this.showNewSectionModal()\n }\n\n // private\n\n showNewSectionModal() {\n MenuSections.showNewSectionModal(this.data.get(\"product-type\"))\n\n document.querySelector(\"#new-menu-section button\")\n .addEventListener(\"click\", (e) => {\n this.selectMenuSection(this.servingTypeTarget.value)\n })\n }\n\n selectMenuSection(servingType) {\n if (this.globalMenuSectionSelected) {\n const servingTypeInt = parseInt(servingType)\n for (let [sectionID, servingTypes] of Object.entries(this.sectionIDs)) {\n if (servingTypes.includes(servingTypeInt)) {\n this.menuSectionTarget.value = sectionID\n }\n }\n }\n }\n\n clearError() {\n if (this.hasErrorTarget) {\n this.errorTarget.remove()\n }\n }\n\n get globalMenuSectionSelected() {\n const selectedMenuSectionID = parseInt(this.menuSectionTarget.value)\n return this.globalSectionIDs.includes(selectedMenuSectionID)\n }\n\n get sectionIDs() {\n if (this._sectionIDs === undefined) {\n this._sectionIDs = JSON.parse(this.data.get(\"section-ids\"))\n }\n return this._sectionIDs\n }\n\n get globalSectionIDs() {\n if (this._globalSectionIDs === undefined) {\n this._globalSectionIDs = JSON.parse(this.data.get(\"global-section-ids\"))\n }\n return this._globalSectionIDs\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport const MAX_MONTHLY_PRICE = 99\nexport const MAX_ANNUAL_PRICE = 599\nexport const MAX_ANNUAL_SAVINGS = 589\n\nexport default class extends Controller {\n static targets = [ \"option\", \"monthly\", \"annual\", \"plans\", \"names\",\n \"monthlyPrice\", \"annualPrice\", \"annualSavings\", \"modalPlanNames\",\n \"modalPrice\", \"modalSavings\", \"modalAllInclusivePrice\", \"mobile\",\n ]\n\n connect() {\n this.allInclusiveOption = this.optionTargets.shift()\n this.updateContent()\n }\n\n toggle(event) {\n $(event.target).closest(\".modular-checkbox\").toggleClass(\"checked\")\n\n if (event.target == this.allInclusiveOption && event.target.checked) {\n this.selectOnlyAllInclusive(false)\n } else if (event.target != this.monthlyTarget && event.target != this.annualTarget) {\n this.updateContent(event.target)\n }\n\n var atAnnualMaxPrice = this.annualPriceTarget.innerText == MAX_ANNUAL_PRICE\n if (event.target == this.annualTarget && atAnnualMaxPrice) {\n this.selectOnlyAllInclusive(!this.allInclusiveOption.checked)\n }\n }\n\n updateContent(checkbox) {\n var planNames = []\n var monthlyPlans = []\n var annualPlans = []\n var monthlyPrice = 0\n var annualPrice = 0\n var annualSavings = 0\n\n var selectedPlans = this.optionTargets.filter(checkbox => checkbox.checked)\n selectedPlans.forEach(plan => {\n planNames.push(plan.dataset.name)\n monthlyPlans.push(plan.dataset.monthly)\n annualPlans.push(plan.dataset.annual)\n monthlyPrice += parseFloat(plan.dataset.monthlyPrice)\n annualPrice += parseFloat(plan.dataset.annualPrice)\n annualSavings += parseFloat(plan.dataset.annualSavings)\n })\n\n if (checkbox != null && checkbox.checked && this.allInclusiveOption.checked) {\n this.allInclusiveOption.checked = false\n $(this.allInclusiveOption).closest(\".modular-checkbox\").removeClass(\"checked\")\n this.updateContent()\n } else if (this.shouldSelectAllInclusive(monthlyPrice, annualPrice)) {\n this.selectOnlyAllInclusive(true, planNames, monthlyPrice, annualPrice)\n } else {\n this.populateHtml(planNames, monthlyPlans, monthlyPrice, annualPlans, annualPrice, annualSavings)\n }\n }\n\n shouldSelectAllInclusive(monthlyPrice, annualPrice) {\n var shouldSelectMonthly = this.monthlyTarget.checked && monthlyPrice > MAX_MONTHLY_PRICE\n var shouldSelectAnnual = this.annualTarget.checked && annualPrice > MAX_ANNUAL_PRICE\n return shouldSelectMonthly || shouldSelectAnnual\n }\n\n selectOnlyAllInclusive(showModal, planNames, monthlyPrice, annualPrice) {\n this.optionTargets.forEach(checkbox => {\n checkbox.checked = false\n $(checkbox.closest(\".modular-checkbox\")).removeClass(\"checked\");\n })\n this.allInclusiveOption.checked = true\n $(this.allInclusiveOption).closest(\".modular-checkbox\").addClass(\"checked\")\n this.updateContent()\n\n if (showModal) {\n this.modalPlanNamesTarget.innerHTML = planNames.joinSentence(true)\n\n if (this.monthlyTarget.checked) {\n this.modalPriceTarget.innerHTML = `$${monthlyPrice}/month`\n this.modalSavingsTarget.innerHTML = `$${(monthlyPrice - MAX_MONTHLY_PRICE) * 12}/year`\n this.modalAllInclusivePriceTarget.innerHTML = `$${MAX_MONTHLY_PRICE}/month`\n } else {\n this.modalPriceTarget.innerHTML = `$${annualPrice}/year`\n this.modalSavingsTarget.innerHTML = `$${annualPrice - MAX_ANNUAL_PRICE}/year`\n this.modalAllInclusivePriceTarget.innerHTML = `$${MAX_ANNUAL_PRICE}/year`\n }\n\n $(\"#all-inclusive\").modal()\n if (this.mobile) {\n setTimeout(() => $(\"#payment-form\")[0].scrollIntoView(false), 1)\n }\n }\n }\n\n populateHtml(planNames, monthlyPlans, monthlyPrice, annualPlans, annualPrice, annualSavings) {\n this.plansTarget.innerHTML = \"Plan\"\n\n if (planNames.length == 0) {\n this.namesTarget.innerHTML = \"Choose tools\"\n } else {\n this.namesTarget.innerHTML = planNames.joinSentence(true)\n }\n\n this.monthlyTarget.value = monthlyPlans\n this.monthlyPriceTarget.innerHTML = Math.min(monthlyPrice, MAX_MONTHLY_PRICE)\n this.annualTarget.value = annualPlans\n\n if (annualPrice >= MAX_ANNUAL_PRICE) {\n this.annualPriceTarget.innerHTML = MAX_ANNUAL_PRICE\n this.annualSavingsTarget.innerHTML = MAX_ANNUAL_SAVINGS\n } else {\n this.annualPriceTarget.innerHTML = annualPrice\n this.annualSavingsTarget.innerHTML = annualSavings\n }\n }\n\n get mobile() {\n return this.hasMobileTarget\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"parent\"]\n\n async connect() {\n if (!window.Browser.isIE()) {\n (await import(\"select2/dist/js/select2.full.js\")).default() // init the plugin\n this.initializeSelect2()\n }\n }\n\n // private\n\n initializeSelect2() {\n const containerClass = this.data.get(\"container\")\n const dropdownClass = this.data.get(\"dropdown\")\n\n if (this.hasParentTarget) {\n $(this.element).select2({\n dropdownParent: $(this.parentTarget.dataset.parent),\n containerCssClass: containerClass,\n dropdownCssClass: dropdownClass\n })\n }\n else {\n $(this.element).select2({\n containerCssClass: containerClass,\n dropdownCssClass: dropdownClass\n })\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n initialize() {\n this.timeout = null\n this.url = this.data.get(\"url\")\n this.pickup = this.data.get(\"pickup\")\n }\n\n search(event) {\n clearTimeout(this.timeout)\n\n this.timeout = setTimeout(() => {\n $.ajax({\n url: this.url,\n data: {\n query: event.target.value,\n pickup: this.pickup,\n },\n dataType: \"script\",\n })\n }, 500)\n };\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n change(event) {\n var url = new URL(window.location)\n\n var pickupId = event.currentTarget.value\n if (pickupId === \"all\") {\n url.searchParams.delete(\"pickup\")\n } else {\n url.searchParams.set(\"pickup\", pickupId)\n }\n\n window.location = url\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"location\", \"name\", \"remove\", \"destroy\", \"add\" ]\n\n connect() {\n this.nameTargets.forEach((target, index) => {\n const hide = target.attributes[\"value\"] === undefined && index != 0\n this.locationTargets[index].classList.toggle(\"hidden\", hide)\n\n if (!hide && index === this.max - 1) {\n this.addTarget.classList.toggle(\"hidden\", true)\n }\n })\n\n this.removeTargets.forEach((target, index) => {\n const hide = index == 0 || target.dataset[\"neverShow\"] === \"true\"\n target.classList.toggle(\"hidden\", hide)\n })\n }\n\n add(event) {\n event.preventDefault()\n\n var showedALocation = false\n this.locationTargets.forEach((target, index) => {\n if (!showedALocation && target.classList.contains(\"hidden\")) {\n target.classList.toggle(\"hidden\", false)\n this.destroyTargets[index].value = \"0\"\n showedALocation = true\n\n if (index === this.locationTargets.length - 1) {\n event.currentTarget.classList.toggle(\"hidden\", true)\n }\n }\n })\n }\n\n remove(event) {\n event.preventDefault()\n\n const index = this.removeTargets.indexOf(event.currentTarget)\n this.locationTargets[index].classList.toggle(\"hidden\", true)\n this.destroyTargets[index].value = \"1\"\n\n this.addTarget.classList.toggle(\"hidden\", false)\n }\n\n get max() {\n return parseInt(this.data.get(\"max\"))\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n qualify(event) {\n this.updateLead(true)\n }\n\n disqualify(event) {\n this.updateLead(false)\n }\n\n // private\n\n updateLead(qualified) {\n $.ajax({\n type: \"PUT\",\n url: this.data.get(\"url\"),\n dataType: \"json\",\n data: {\n \"authenticity_token\": this.authenticityToken,\n \"place_lead[qualified]\": qualified,\n },\n success: (response) => {\n if (!response.success) {\n this.errorAlert()\n }\n },\n error: () => this.errorAlert()\n })\n }\n\n get authenticityToken() {\n return document.querySelector(\"meta[name='csrf-token']\").content\n }\n\n get errorAlert() {\n alert(\"Error saving. Please reload the page and try again.\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"retailerPrice\", \"buyerPrice\", \"validPrice\", \"invalidPrice\" ]\n\n connect() {\n this.calculateBuyerPrice()\n }\n\n calculateBuyerPrice() {\n if (this.retailerPrice == 0) {\n this.validPriceTarget.classList.add(\"hidden\")\n this.invalidPriceTarget.classList.remove(\"hidden\")\n } else {\n this.invalidPriceTarget.classList.add(\"hidden\")\n this.validPriceTarget.classList.remove(\"hidden\")\n\n this.buyerPriceTarget.textContent = `$${this.buyerPrice}`\n }\n }\n\n // private\n\n get retailerPrice() {\n return parseFloat(this.retailerPriceTarget.value) || 0\n }\n\n get buyerPrice() {\n return (this.retailerPrice + this.fee).toFixed(2)\n }\n\n get fee() {\n if (this.retailerPrice < 14) {\n return 0.5\n } else if (this.retailerPrice <= 25) {\n return 1\n } else {\n return this.retailerPrice * 0.05\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"iframe\" ]\n\n print() {\n this.iframeTarget.contentWindow.print()\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"header\", \"hero\", \"stickySlide\"]\n\n connect() {\n this.$window = $(window)\n\n this.startWatchingIntersection()\n\n if (window.innerWidth >= 812) {\n this.startWatchingScroll()\n this.fadeOutStickySlides()\n }\n }\n\n // private\n\n startWatchingIntersection() {\n const observer = new IntersectionObserver(this.toggleScrolledOnHeader.bind(this))\n observer.observe(this.heroTarget)\n }\n\n toggleScrolledOnHeader(entries) {\n if (entries[0].isIntersecting) {\n this.headerTarget.classList.remove(\"scrolled\")\n } else {\n this.headerTarget.classList.add(\"scrolled\")\n }\n }\n\n startWatchingScroll() {\n document.addEventListener(\"scroll\",\n Debouncer.debounce(this.fadeOutStickySlides.bind(this)),\n { passive: true }\n )\n }\n\n fadeOutStickySlides() {\n this.stickySlideTargets.forEach(target => {\n const position = $(target).offset().top - this.$window.scrollTop()\n\n if (position < this.windowHeight * this.startPosition) {\n target.style.opacity = position / (this.windowHeight * this.startPosition)\n } else {\n target.style.opacity = 1\n }\n })\n }\n\n get startPosition() {\n return 0.1\n }\n\n get windowHeight() {\n return this.$window.height()\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"form\", \"overlay\", \"groupByStyle\", \"sectionBreakOption\",\n \"beer_descriptionFont\", \"submit\", \"modal\", \"disablePdfReload\"]\n\n connect() {\n this.formTarget.dataset.remote = this.data.get(\"auto-save\") == \"true\"\n\n this.submitOnChange()\n this.submitOnEvent()\n\n $(this.formTarget).on(\"ajax:success\", this.success.bind(this))\n $(this.formTarget).on(\"ajax:error\", this.error.bind(this))\n }\n\n showStyleOptions() {\n this.groupByStyleTargets.forEach(t => t.classList.remove(\"hidden\"))\n }\n\n hideStyleOptions() {\n this.groupByStyleTargets.forEach(t => t.classList.add(\"hidden\"))\n }\n\n showSectionBreakOption() {\n this.sectionBreakOptionTarget.classList.remove(\"hidden\")\n }\n\n hideSectionBreakOption() {\n this.sectionBreakOptionTarget.classList.add(\"hidden\")\n }\n\n toggleBeerDescriptionFont(event) {\n const checked = event.currentTarget.checked\n this.beer_descriptionFontTarget.classList.toggle(\"hidden\", !checked)\n }\n\n toggleAutoSave(event) {\n this.data.set(\"auto-save\", !event.currentTarget.checked)\n this.formTarget.dataset.remote = !event.currentTarget.checked\n this.submitTarget.classList.toggle(\"hidden\", !event.currentTarget.checked)\n }\n\n submitForm(event) {\n if (this.data.get(\"auto-save\") == \"true\") {\n this.overlayTarget.classList.remove(\"hidden\")\n\n if (event.currentTarget.dataset.disablePdfReload == \"true\") {\n this.disablePdfReloadTarget.value = true\n $.rails.fire($(this.formTarget), \"submit\")\n this.disablePdfReloadTarget.value = false\n } else {\n window.BeerMenus.controllers.printPreviewController.showLoading()\n $.rails.fire($(this.formTarget), \"submit\")\n }\n }\n }\n\n // private\n\n submitOnChange() {\n [...this.formTarget.elements].forEach(element => {\n if (!element.dataset.ignore) {\n element.addEventListener(\"change\", this.submitForm.bind(this))\n }\n })\n }\n\n submitOnEvent() {\n document.body.addEventListener(\"sortable:didSort\",\n this.submitForm.bind(this))\n\n document.body.addEventListener(\"customFont:selected\",\n this.submitForm.bind(this))\n\n document.body.addEventListener(\"cme-blur\",\n this.submitForm.bind(this))\n }\n\n success(event, data, status, xhr) {\n this.overlayTarget.classList.add(\"hidden\")\n this.submitOnChange()\n }\n\n error(event, xhr) {\n window.BeerMenus.controllers.printPreviewController.showServerError()\n this.overlayTarget.classList.add(\"hidden\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"loading\", \"loadingText\", \"pdf\", \"error\"]\n\n connect() {\n this.pdfTarget.onload = this.validatePDF.bind(this)\n window.BeerMenus.controllers.printPreviewController = this\n }\n\n showLoading() {\n if (Browser.isIE()) {\n this.pdfTarget.src = \"about:blank\"\n } else {\n this.loadingTextTarget.innerText = \"Updating\"\n this.loadingTarget.classList.remove(\"hidden\")\n this.errorTarget.classList.add(\"hidden\")\n }\n }\n\n showValidationError(html) {\n this.errorTarget.innerHTML = html\n this.loadingTarget.classList.add(\"hidden\")\n this.errorTarget.classList.remove(\"hidden\")\n }\n\n showServerError() {\n $.ajax({ url: this.errorURL, success: this.populateErrorHTML.bind(this) })\n }\n\n // private\n\n validatePDF() {\n if (Browser.isIE()) {\n return\n } else if (this.isFirefox || this.isIpad || this.isPDFValid) {\n this.loadingTarget.classList.add(\"hidden\")\n this.errorTarget.classList.add(\"hidden\")\n } else if (this.errorPresent) {\n this.loadingTarget.classList.add(\"hidden\")\n this.errorTarget.classList.add(\"hidden\")\n this.bindReload()\n } else {\n this.showServerError()\n }\n }\n\n populateErrorHTML(html) {\n this.iframe.body.innerHTML = html\n this.loadingTarget.classList.add(\"hidden\")\n this.bindReload()\n this.bindHelp()\n }\n\n bindReload() {\n this.iframe.getElementById(\"reload-button\").addEventListener(\"click\", (event) => {\n event.preventDefault()\n this.loadingTarget.classList.remove(\"hidden\")\n this.pdfTarget.contentWindow.location.reload()\n })\n }\n\n bindHelp() {\n this.iframe.getElementById(\"help-link\").addEventListener(\"click\", (event) => {\n event.preventDefault()\n const target = parent ? parent : window\n target.Beacon(\"open\")\n target.Beacon(\"navigate\", \"/ask\")\n })\n }\n\n get isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n }\n\n get isIpad() {\n return this.data.get(\"is-ipad\") == \"true\"\n }\n\n get isPDFValid() {\n const embed = this.iframe.getElementsByTagName(\"embed\")[0]\n return embed && embed.getAttribute(\"type\") == \"application/pdf\"\n }\n\n get errorPresent() {\n return this.iframe.getElementById(\"pdf-error\") != null\n }\n\n get iframe() {\n return this.pdfTarget.contentDocument\n }\n\n get url() {\n return this.data.get(\"url\")\n }\n\n get errorURL() {\n return this.data.get(\"error-url\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"save\", \"error\"]\n\n enableForm() {\n this.saveTarget.classList.remove(\"hidden\")\n this.errorTarget.classList.add(\"hidden\")\n }\n\n disableForm() {\n this.errorTarget.classList.remove(\"hidden\")\n this.saveTarget.classList.add(\"hidden\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"dayvariables\", \"day\", \"nearvariables\", \"near\" ]\n\n propertyChanged(event) {\n if (event.currentTarget.value == \"days_since_last_update\") {\n this.dayvariablesTarget.classList.toggle(\"hidden\", false)\n } else if (event.currentTarget.value == \"near_city\") {\n this.nearvariablesTarget.classList.toggle(\"hidden\", false)\n } else {\n this.dayvariablesTarget.classList.toggle(\"hidden\", true)\n this.dayTargets.forEach(t => t.value = \"\")\n this.nearvariablesTarget.classList.toggle(\"hidden\", true)\n this.nearTargets.forEach(t => t.value = \"\")\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"select\", \"field\" ]\n\n connect() {\n this.showHideField()\n }\n\n change() {\n this.showHideField()\n }\n\n showHideField() {\n const hide = this.selectTarget.value == \"false\"\n this.fieldTarget.classList.toggle(\"hidden\", hide)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n // Only get involved if a file upload is present.\n $(this.element).bind(\"ajax:aborted:file\", () => {\n this.disableForm()\n this.manuallyPOST()\n\n // Tell jquery-ujs to not submit the form; we got this.\n return false\n })\n }\n\n // private\n\n disableForm() {\n // Wait for jquery-ujs to \"finish\" before disabling.\n setTimeout(() => {\n $.rails.disableFormElements($(this.element))\n }, 20)\n }\n\n // https://makandracards.com/makandra/39225-manually-uploading-files-via-ajax\n manuallyPOST() {\n $.ajax({\n url: `${this.element.action}.js`,\n type: \"POST\",\n data: new FormData(this.element),\n contentType: false,\n processData: false,\n complete: () => $.rails.enableFormElements($(this.element))\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.element.addEventListener(\"click\", () => window.scrollTo(0, 0))\n }\n}\n", "// Handles interaction between radio buttons and text inputs in segmented fields\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"radio\", \"textInput\"]\n\n connect() {\n // Initialize radio value if text input has a value\n if (this.hasTextInputTarget && this.textInputTarget.value) {\n this.syncRadioValue()\n }\n }\n\n focusInput() {\n if (this.hasTextInputTarget) {\n this.textInputTarget.focus()\n }\n }\n\n selectRadio() {\n if (this.hasRadioTarget) {\n this.radioTarget.checked = true\n this.syncRadioValue()\n }\n }\n\n // Called when text input changes\n handleTextInput() {\n if (this.hasRadioTarget) {\n this.radioTarget.checked = true\n this.syncRadioValue()\n }\n }\n\n // Sync radio value with text input value\n syncRadioValue() {\n if (this.hasRadioTarget && this.hasTextInputTarget) {\n this.radioTarget.value = this.textInputTarget.value\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"type\", \"event\", \"property\" ]\n\n async connect() {\n (await import(\"cocoon-js\")).default\n }\n\n toggle(event) {\n const index = this.typeTargets.indexOf(event.currentTarget)\n this.eventTargets[index].classList.toggle(\"hidden\")\n this.propertyTargets[index].classList.toggle(\"hidden\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"checkbox\"]\n\n connect() {\n window.BeerMenus.controllers.selectAllControllers =\n window.BeerMenus.controllers.selectAllControllers || []\n window.BeerMenus.controllers.selectAllControllers.push(this)\n }\n\n toggle(event) {\n const checked = event.currentTarget.checked\n this.checkboxTargets.forEach(cb => {\n cb.checked = checked\n cb.dispatchEvent(new Event('change', { bubbles: true }))\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"destroy\"]\n\n remove(event) {\n event.preventDefault()\n this.element.remove()\n }\n\n destroy(event) {\n event.preventDefault()\n\n this.element.classList.add(\"hidden\")\n this.destroyTarget.value = 1\n }\n}\n", "// app/javascript/controllers/serving_size_fields_controller.js\nimport { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"pintSelectContainer\", \"pintSelect\", \"pourSelectContainer\", \"pourSelect\", \"sizeTextContainer\", \"sizeText\" ]\n static values = { initialType: String }\n\n connect() {\n this.toggleFields(this.initialTypeValue || this.element.closest('form').querySelector('[data-action=\"change->serving-size-fields#servingTypeChanged\"]')?.value)\n }\n\n servingTypeChanged(event) {\n const selectedType = event.target.value\n this.toggleFields(selectedType)\n }\n\n unitChanged(event) {\n const unitId = event.target.value;\n let servingType = null; // Default to showing text field\n\n if (unitId === '5') {\n servingType = 'pint';\n } else if (unitId === '6') {\n servingType = 'pour';\n }\n\n this.toggleFields(servingType);\n }\n\n toggleFields(servingType) {\n const isPint = servingType === 'pint';\n const isPour = servingType === 'pour';\n const isText = !isPint && !isPour;\n\n this.pintSelectContainerTarget.classList.toggle('hidden', !isPint);\n this.pintSelectTarget.disabled = !isPint;\n\n this.pourSelectContainerTarget.classList.toggle('hidden', !isPour);\n this.pourSelectTarget.disabled = !isPour;\n\n this.sizeTextContainerTarget.classList.toggle('hidden', !isText);\n this.sizeTextTarget.disabled = !isText;\n\n // Clear values of disabled fields\n if (!isPint) this.pintSelectTarget.value = '';\n if (!isPour) this.pourSelectTarget.value = '';\n if (!isText) this.sizeTextTarget.value = '';\n\n // Set a default selection if enabling a select field and it was previously empty\n // This improves UX slightly by pre-selecting the first valid option\n if (isPint && !this.pintSelectTarget.value) {\n const firstOption = this.pintSelectTarget.querySelector('option:not([value=\"\"])');\n if (firstOption) this.pintSelectTarget.value = firstOption.value;\n }\n if (isPour && !this.pourSelectTarget.value) {\n const firstOption = this.pourSelectTarget.querySelector('option:not([value=\"\"])');\n if (firstOption) this.pourSelectTarget.value = firstOption.value;\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"servings\", \"serving\", \"type\", \"unit\", \"sell\"]\n\n add(event) {\n event.preventDefault()\n\n $.ajax(\"/servings/add_size\", { data: this.params })\n .done((html) => BeerMenus.DOM.insertHTML(html, this.servingsTarget))\n .fail((jqXHR, status, error) => console.error(error))\n }\n\n reset(event) {\n event.preventDefault()\n\n Servings.hideEditForm()\n Servings.scrollToTopOfForm()\n }\n\n // private\n\n get params() {\n const lastIndex = this.servingTargets.length - 1\n const index = parseInt(this.servingTargets[lastIndex].dataset[\"index\"])\n\n if (this.hasTypeTarget) {\n var serving_type_id = this.typeTargets[lastIndex].value\n var serving_unit_id = this.unitTargets[lastIndex].value\n } else {\n var serving_type_id = \"\"\n var serving_unit_id = \"\"\n }\n\n return {\n bar_id: this.barID,\n new_index: index + 1,\n serving_type_id: serving_type_id,\n serving_unit_id: serving_unit_id,\n product_type: this.productType,\n sell: this.sellTarget.checked\n }\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n\n get productType() {\n return this.data.get(\"product-type\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nclass FormDataEventPolyfill extends Event {\n constructor(formData) {\n super('formdata');\n this.formData = formData;\n }\n}\n\nclass WorkingFormDataPolyfill extends FormData {\n constructor(form=null) {\n if (form) {\n super(form)\n this.form = form\n form.dispatchEvent(new FormDataEventPolyfill(this))\n } else {\n super()\n }\n }\n\n append(name, value) {\n if (!this.form) {\n return super.append(name, value)\n }\n\n let input = this.form.elements[name]\n\n if (!input) {\n input = document.createElement('input');\n input.type = 'hidden';\n input.name = name;\n this.form.appendChild(input);\n }\n\n if (this.has(name)) {\n const entries = this.getAll(name);\n const index = entries.indexOf(input.value);\n\n if (index !== -1) {\n entries.splice(index, 1);\n }\n\n entries.push(value);\n this.set(name, entries);\n } else {\n super.append(name, value);\n }\n\n input.value = value;\n }\n}\n\nwindow.WorkingFormDataPolyfill = WorkingFormDataPolyfill\n\nexport default class extends Controller {\n async connect() {\n await import(\"../app/shoelace\")\n\n // TODO: once we're using Shoelace within the design system, we don't need this\n await import(\"@shoelace-style/shoelace/dist/themes/light.css\")\n\n await customElements.whenDefined(\"sl-color-picker\")\n\n this.element.querySelectorAll(\"sl-color-picker\").forEach((picker) => {\n picker.swatches = [\n \"#cd2020\",\n \"#fba820\",\n \"#f8e71c\",\n \"#7d5f4b\",\n \"#9CE2B6\",\n \"#f470fc\",\n \"#ae65ee\",\n \"#287DDB\",\n \"#50e3c2\",\n \"#DFEEFD\",\n \"#000000\",\n \"#444444\",\n \"#cdcdcd\",\n \"#ddd\",\n \"#fff\",\n ]\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"truncated\", \"full\", \"showMore\", \"showLess\" ]\n\n toggle(event) {\n event.preventDefault()\n\n if (this.hasTruncatedTarget) {\n this.truncatedTarget.classList.toggle(\"hidden\")\n }\n this.fullTarget.classList.toggle(\"hidden\")\n\n this.showMoreTarget.classList.toggle(\"hidden\")\n this.showLessTarget.classList.toggle(\"hidden\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"search\", \"beerID\", \"template\"]\n\n async connect() {\n let libraries = await AlgoliaSource.importLibraries()\n const filters = `product_type = 0 OR product_type = 1 OR product_type = 3`\n this.algolia = new AlgoliaSource(libraries[0], \"Beer\", filters)\n this.connected()\n }\n\n // private\n\n connected() {\n this.search = $(this.searchTarget).autocomplete(this.options, this.dataset)\n this.search\n .on(\"autocomplete:selected autocomplete:autocompleted\", (event, data) => {\n this.setHiddenField(data.objectID)\n })\n }\n\n setHiddenField(id) {\n this.beerIDTarget.value = id\n }\n\n source(query, callback) {\n this.algolia.source(query, (suggestions) => {\n return callback(suggestions)\n })\n }\n\n displayKey(obj) {\n return obj.cssClass == this.addNewBeerClass ? obj.query : obj.name\n }\n\n suggestion(hit) {\n return new BeerAutocompleteSuggestion(this.templateTarget).build(hit)\n }\n\n get dataset() {\n return {\n source: (query, callback) => { this.source(query, callback) },\n name: \"beers\",\n displayKey: (obj) => { return obj.name },\n templates: { suggestion: this.suggestion.bind(this) },\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"monthlyTerm\", \"monthlyPlan\", \"annualPlan\",\n \"plan\", \"tool\", \"paymentPlan\", \"effectiveMonthlyPrice\",\n \"monthlyPrice\", \"annualPrice\", \"annualSavings\",\n \"popularPlan\", \"potentialSavings\", \"realizedSavings\",\n \"mySubscription\", \"chooseTools\", \"button\", \"newSubscription\", \"switchToAnnual\",\n \"discountMessage\", \"discountDescription\", \"discountValue\", \"discountedTotal\", \"monthlyFullPrice\", \"annualFullPrice\",\n \"stripeCoupon\"\n ]\n\n connect() {\n this.setPlan()\n this.setPlanName()\n this.setPrices()\n }\n\n toggleTool(event) {\n this.setPlan()\n this.setPlanName()\n this.setPrices()\n }\n\n toggleTerm(event) {\n this.setPrices()\n this.setPlan()\n }\n\n // private\n\n setPrices() {\n const tools = this.enabledTools\n const pricing = this.pricing.find(p => p.tools == tools)\n\n if (pricing) {\n if (this.annual) {\n if (this.hasStripeCouponTarget) { this.discountMessageTargets.forEach(t => t.classList.remove(\"hidden\")) }\n var effectivePrice = pricing.annual_price_monthly\n var price = pricing.annual_price\n this.potentialSavingsTarget.classList.add(\"hidden\")\n this.realizedSavingsTarget.classList.remove(\"hidden\")\n if (this.hasCoupon) {\n this.stripeCouponTarget.value = this.data.get(\"coupon-annual\")\n this.discountDescriptionTargets.forEach(t => t.innerText = this.annualDiscountDescription)\n this.monthlyFullPriceTarget.classList.add(\"hidden\")\n this.annualFullPriceTarget.classList.remove(\"hidden\")\n this.discountValueTarget.innerText = pricing.annual_discount_value.toFixed(2)\n this.discountedTotalTarget.innerText = pricing.discounted_annual_price.toFixed(2)\n var price = pricing.discounted_annual_price.toFixed(2)\n }\n } else {\n var effectivePrice = pricing.price\n var price = pricing.price\n this.potentialSavingsTarget.classList.remove(\"hidden\")\n this.realizedSavingsTarget.classList.add(\"hidden\")\n if (this.hasCoupon) {\n if (pricing.discounted_monthly_price > 0) {\n this.stripeCouponTarget.value = this.data.get(\"coupon-monthly\")\n this.discountDescriptionTargets.forEach(t => t.innerText = this.monthlyDiscountDescription)\n this.monthlyFullPriceTarget.classList.remove(\"hidden\")\n this.annualFullPriceTarget.classList.add(\"hidden\")\n this.discountValueTarget.innerText = pricing.monthly_discount_value.toFixed(2)\n this.discountedTotalTarget.innerText = pricing.discounted_monthly_price.toFixed(2)\n var price = pricing.discounted_monthly_price.toFixed(2)\n } else {\n this.stripeCouponTarget.value = \"\"\n this.discountMessageTargets.forEach(t => t.classList.add(\"hidden\"))\n }\n }\n }\n\n this.effectiveMonthlyPriceTarget.innerText = effectivePrice\n\n if (this.hasNewSubscriptionTarget) {\n var buttonLabel = \"Subscribe and pay $\" + price\n this.buttonTarget.innerText = buttonLabel\n this.buttonTarget.dataset[\"disableWith\"] = buttonLabel\n this.buttonTarget.dataset[\"originalLabel\"] = buttonLabel\n } else if (this.hasSwitchToAnnualTarget) {\n if (this.annual) {\n var buttonLabel = \"Switch to annual billing\"\n } else {\n var buttonLabel = \"Update subscription\"\n }\n\n this.buttonTarget.innerText = buttonLabel\n this.buttonTarget.dataset[\"disableWith\"] = buttonLabel\n this.buttonTarget.dataset[\"originalLabel\"] = buttonLabel\n }\n\n this.monthlyPriceTargets.forEach(t => t.innerText = pricing.price)\n this.annualPriceTargets.forEach(t => t.innerText = pricing.annual_price)\n this.annualSavingsTargets.forEach(t => t.innerText = pricing.annual_savings)\n }\n }\n\n setPlanName() {\n this.paymentPlanTarget.innerText = this.planName\n }\n\n get planName() {\n return this.toolTargets.filter(t => t.checked).map(t => t.dataset[\"planName\"]).join(' + ')\n }\n\n setPlan() {\n this.planTarget.value = this.plan\n\n if (this.enabledTools == 0) {\n this.mySubscriptionTarget.classList.add(\"hidden\")\n this.chooseToolsTarget.classList.remove(\"hidden\")\n } else {\n this.mySubscriptionTarget.classList.remove(\"hidden\")\n this.chooseToolsTarget.classList.add(\"hidden\")\n }\n\n if (this.popularPlan) {\n this.popularPlanTarget.classList.remove(\"hidden\")\n } else {\n this.popularPlanTarget.classList.add(\"hidden\")\n }\n }\n\n get plan() {\n if (this.annual) {\n return this.annualPlan\n } else {\n return this.monthlyPlan\n }\n }\n\n get annualPlan() {\n const tools = this.toolTargets.filter(t => t.checked)\n switch(tools.length) {\n case 0:\n return null\n case 1:\n return tools[0].dataset[\"annualPlanId\"]\n default:\n return 63\n }\n }\n\n get monthlyPlan() {\n const tools = this.toolTargets.filter(t => t.checked)\n switch(tools.length) {\n case 0:\n return null\n case 1:\n return tools[0].dataset[\"monthlyPlanId\"]\n case 2:\n const tool1Plans = tools[0].dataset[\"monthly-2PlanIds\"].split(\" \")\n const tool2Plans = tools[1].dataset[\"monthly-2PlanIds\"].split(\" \")\n return tool1Plans.find(x => tool2Plans.includes(x))\n default:\n return 59\n }\n }\n\n get enabledTools() {\n return this.toolTargets.filter(t => t.checked).length\n }\n\n get monthly() {\n return this.monthlyTermTarget.checked\n }\n\n get annual() {\n return !this.monthly\n }\n\n get popularPlan() {\n const tvMenus = this.toolTargets.find(t => t.dataset[\"planSlug\"] == \"digital_beer_boards\")\n return this.enabledTools == 2 && !tvMenus.checked\n }\n\n get pricing() {\n return JSON.parse(this.data.get(\"pricing\"))\n }\n\n get hasCoupon() {\n return this.hasDiscountMessageTarget\n }\n\n get monthlyDiscountDescription() {\n return this.data.get(\"monthly-discount-description\")\n }\n\n get annualDiscountDescription() {\n return this.data.get(\"annual-discount-description\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n speed: { type: Number, default: 800 }\n }\n\n connect() {\n this.element.addEventListener(\"click\", (event) => {\n event.preventDefault()\n\n const anchor = event.currentTarget.href.split(\"#\").pop()\n const offset = parseInt(this.data.get(\"offset\")) || 0\n const target = document.getElementById(anchor)\n\n if (target) {\n this.smoothScroll(target, offset)\n }\n\n if (this.data.has(\"focus\")) {\n document.getElementById(this.data.get(\"focus\")).focus()\n }\n })\n }\n\n smoothScroll(target, offset) {\n const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset\n const startPosition = window.pageYOffset\n const distance = targetPosition - startPosition\n const duration = this.speedValue\n let start = null\n\n const animation = (currentTime) => {\n if (start === null) start = currentTime\n const timeElapsed = currentTime - start\n const progress = Math.min(timeElapsed / duration, 1)\n\n // Easing function - easeInOutQuad\n const easing = progress => {\n return progress < 0.5\n ? 2 * progress * progress\n : 1 - Math.pow(-2 * progress + 2, 2) / 2\n }\n\n window.scrollTo(0, startPosition + (distance * easing(progress)))\n\n if (progress < 1) {\n requestAnimationFrame(animation)\n }\n }\n\n requestAnimationFrame(animation)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n url: String,\n param: String,\n debug: Boolean,\n }\n\n connect() {\n this.element.addEventListener(\"sortablejs:save\", this.handleSave.bind(this))\n }\n\n handleSave({ detail: values }) {\n const body = { [this.paramValue]: values }\n\n if (this.debugValue) {\n console.log(\"Sending sort data:\", this.urlValue, body)\n }\n\n fetch(this.urlValue, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n// Deprecated, see sortablejs controller as part of new design system\nexport default class extends Controller {\n static targets = [\"container\", \"position\", \"itemNumber\", \"item\"]\n\n async connect() {\n const draggable = await import(\"@shopify/draggable/lib/draggable.bundle.legacy\")\n this.initializeDraggable(draggable.default)\n }\n\n savePositions(skipSave) {\n // \"Delay\" so Sortable can settle and remove the mirror.\n setTimeout(() => {\n this.itemTargets.forEach((_, index) => {\n if (index < this.positionTargets.length) {\n this.positionTargets[index].value = index + 1\n }\n\n if (index < this.itemNumberTargets.length) {\n this.itemNumberTargets[index].innerHTML = `${index + 1}.`\n }\n })\n\n this.dispatchCustomEvent()\n\n if (skipSave != true && this.data.get(\"skip-save\") != \"true\") {\n this.save()\n }\n })\n }\n\n // private\n\n initializeDraggable(draggable) {\n const sortable = new draggable.Sortable(this.containerTarget, {\n draggable: \"li:not([data-sortable-ignore])\",\n handle: this.data.has(\"no-handle\") ? null : \".sort-icon\",\n mirror: {\n appendTo: \"#sortable-mirror-wrapper\",\n constrainDimensions: true,\n xAxis: false\n }\n })\n\n sortable.on(\"drag:stop\", this.savePositions.bind(this))\n }\n\n dispatchCustomEvent() {\n const event = new CustomEvent(\"sortable:didSort\", { bubbles: true })\n this.element.dispatchEvent(event)\n }\n\n save() {\n const url = this.data.get(\"url\")\n if (url) {\n var data = {}\n data[this.data.get(\"data-key\")] = this.items\n\n $.ajax(url, { method: \"PUT\", data: data })\n .fail(() => alert(this.errorMessage))\n }\n }\n\n get items() {\n return this.itemTargets.map(item => {\n if (item.dataset.key) {\n return [item.dataset.key, item.dataset.value]\n } else {\n return item.dataset.value.split(\",\")\n }\n })\n }\n\n get placeholderClass() {\n return this.data.get(\"placeholder-class\") || \"\"\n }\n\n get errorMessage() {\n return this.data.get(\"error\") ||\n \"Something went wrong, please try again.\"\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"container\"]\n\n static values = {\n animationDuration: { type: Number, default: 200 }\n }\n\n async connect() {\n const Sortable = (await import(\"sortablejs\")).default\n Sortable.create(this.containerTarget, {\n handle: \"bmu-flex-list-item-handle\",\n filter: \".unsortable\",\n animation: this.animationDurationValue,\n onMove: (event) => {\n if (event.related.classList.contains(\"unsortable\")) return false\n },\n onUpdate: (event) => {\n this.element.dispatchEvent(new CustomEvent(\"sortablejs:save\", { detail: this.values, bubbles: true }))\n }\n })\n }\n\n get items() {\n return [...this.containerTarget.children].filter(item => item.dataset.key || item.dataset.value)\n }\n\n get values() {\n return this.items.map(item => {\n if (item.dataset.key) {\n return [item.dataset.key, item.dataset.value]\n } else {\n return item.dataset.value.split(\",\")\n }\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n if ((document.body.classList.contains(\"web\")) || (this.element.classList.contains(\"msticky\")) ) {\n $(this.element).stick_in_parent()\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"streamlineable\", \"collapsible\" ]\n\n connect() {\n window.BeerMenus.controllers.streamlinedMenuController = this\n\n this.windowHashChanged(window.location.hash)\n $(window).on(\"hashchange\", (event) => {\n this.windowHashChanged(window.location.hash)\n })\n }\n\n showCollapsibleMenu() {\n this.showStreamlineableElements()\n this.showCollapsibleElements()\n }\n\n showStreamlineableElements() {\n this.streamlineableTargets.forEach(el => {\n el.classList.toggle(\"hidden\", false)\n })\n }\n\n showCollapsibleElements() {\n this.collapsibleTargets.forEach(el => {\n el.classList.toggle(\"hidden\", false)\n })\n }\n\n windowHashChanged(hash) {\n this.performAction(hash.replace(\"#\", \"\"))\n }\n\n performAction(hash) {\n $(\".modal\").modal(\"hide\") // Close any open modal.\n BeerMenus.Checklists.closeDriver()\n\n switch (hash) {\n case \"new-serving\":\n this.removeHash()\n BeerMenus.Checklists.highlightServingForm()\n break\n case \"update-address\":\n this.removeHash()\n BeerMenus.Checklists.showAddressModal(this.barID)\n break\n case \"connect-facebook\":\n this.removeHash()\n BeerMenus.Checklists.showFacebookModal()\n break\n case \"connect-twitter\":\n this.removeHash()\n BeerMenus.Checklists.showTwitterModal()\n break\n case \"new-print-menu\":\n this.removeHash()\n BeerMenus.Checklists.showPrintMenuModal(this.barID)\n break\n case \"add_beers\":\n case \"beers_added\":\n case \"print_welcome\":\n case \"tv_hardware\":\n case \"tv_setup\":\n case \"tv_welcome\":\n case \"not_open\":\n this.removeHash()\n BeerMenus.Checklists.showUpdateMenuMessageModal(hash)\n break\n case \"welcome\":\n this.removeHash()\n BeerMenus.Checklists.spotlight(hash)\n break\n }\n }\n\n removeHash() {\n const state = window.location.pathname + window.location.search\n history.pushState(\"\", document.title, state)\n }\n\n get barID() {\n return this.data.get(\"bar-id\")\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this._insertMetaTag()\n this._insertScript()\n }\n\n _insertMetaTag() {\n let tag = document.querySelector(\"meta[name='stripe-key']\")\n if (!tag) {\n tag = document.createElement(\"meta\")\n tag.name = \"stripe-key\"\n document.head.appendChild(tag)\n }\n tag.content = this.data.get(\"key\")\n }\n\n _insertScript() {\n ScriptInserter.insert(\"stripe.js\", \"https://js.stripe.com/v3/\", () => {\n new StripeLoader().load()\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n $.ajax(this.data.get(\"path\"))\n .done(data => this.element.innerHTML = data)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"tab\", \"panel\"]\n static values = { smoothScrollerLink: String }\n\n connect() {\n this.setHashFromURLIfBlank()\n this.showTab()\n this.cancelModal = false\n\n $(window).on(\"hashchange\", (event) => {\n this.hash = window.location.hash.replace(\"#\", \"\")\n this.showTab()\n })\n\n document.body.addEventListener(\"modal:willShow\", (event) => {\n if (this.cancelModal) {\n event.preventDefault()\n this.cancelModal = false\n }\n })\n\n if (this.hasSmoothScrollerLinkValue) {\n this.observeSmoothScrollerLink()\n } else {\n return\n }\n\n }\n\n change(event) {\n event.preventDefault()\n\n this.cancelModal = true\n this.hash = event.currentTarget.dataset[\"hash\"]\n this.showTab()\n this.replaceHistoryState()\n this.updateSmoothScrollerFocus()\n\n const changedEvent = new CustomEvent(\"tab:changed\", {\n bubbles: true,\n detail: this.hash\n })\n this.element.dispatchEvent(changedEvent)\n }\n\n // private\n\n setHashFromURLIfBlank() {\n if (!this.hash && window.location.hash) {\n this.hash = window.location.hash.replace(\"#\", \"\")\n }\n }\n\n showTab() {\n this.tabTargets.forEach(tab => {\n const hash = tab.dataset[\"hash\"]\n tab.classList.toggle(\"pure-tabs-item-selected\", hash == this.hash)\n })\n\n this.panelTargets.forEach(panel => {\n const hash = panel.dataset[\"hash\"]\n panel.classList.toggle(\"hidden\", hash != this.hash)\n })\n\n this.showFirstPanelIfAllHidden()\n this.recalculateStickyHeaders()\n }\n\n showFirstPanelIfAllHidden() {\n const anyPanelVisible = this.panelTargets.some(panel => {\n return !panel.classList.contains(\"hidden\")\n })\n\n if (!anyPanelVisible) {\n this.hash = this.panelTarget.dataset[\"hash\"] // first tab\n this.showTab()\n }\n }\n\n recalculateStickyHeaders() {\n $(document.body).trigger(\"sticky_kit:recalc\")\n }\n\n replaceHistoryState() {\n window.history.replaceState(null, null, `#${this.hash}`)\n }\n\n updateSmoothScrollerFocus() {\n const activeTab = this.tabTargets.find(tab => tab.classList.contains(\"pure-tabs-item-selected\"))\n if (activeTab) {\n const focusId = activeTab.dataset[\"focus\"]\n if (!this.hasSmoothScrollerLinkValue) {\n return\n }\n const smoothScrollerLink = document.querySelector(this.smoothScrollerLinkValue)\n if (focusId && smoothScrollerLink) {\n smoothScrollerLink.setAttribute(\"data-smooth-scroller-focus\", focusId)\n } else {\n }\n }\n }\n\n observeSmoothScrollerLink() {\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeType == Node.ELEMENT_NODE && (node.id === this.smoothScrollerLinkValue.slice(1) || node.querySelector(this.smoothScrollerLinkValue))) {\n this.updateSmoothScrollerFocus()\n observer.disconnect()\n }\n })\n }\n })\n })\n\n observer.observe(document.querySelector(`div[data-observing=\"${this.smoothScrollerLinkValue}\"]`), { childList: true, subtree: true })\n }\n\n get hash() {\n return this.data.get(\"hash\")\n }\n\n set hash(hash) {\n this.data.set(\"hash\", hash)\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\n/**\n * This implementation was based on the W3C ARIA Guide:\n * https://www.w3.org/WAI/ARIA/apg/patterns/tabs/examples/tabs-automatic/\n */\nexport default class extends Controller {\n static targets = [ \"tab\", \"panel\" ]\n\n connect() {\n this.element.controller = this\n this.change({ currentTarget: this.tabTargets[0] }, false)\n }\n\n change(e, setFocus = true) {\n const tabToSelect = e.currentTarget\n\n // Set tab to selected and show the relevant panel\n tabToSelect.setAttribute(\"aria-selected\", \"true\")\n tabToSelect.removeAttribute(\"tabindex\")\n this.panelTargets.find((panel) => panel.getAttribute(\"aria-labelledby\") === tabToSelect.id).classList.remove(\"hidden\")\n\n // Deselect other tabs\n this.tabTargets.forEach(tab => {\n if (tab != e.currentTarget) {\n tab.setAttribute(\"aria-selected\", \"false\")\n tab.tabIndex = -1\n }\n })\n\n // Hide other panels\n this.panelTargets.forEach(panel => {\n if (panel.getAttribute(\"aria-labelledby\") !== tabToSelect.id) {\n panel.classList.add(\"hidden\")\n }\n })\n\n // Focus on the selected tab if necessary\n if (setFocus) {\n tabToSelect.focus()\n }\n }\n\n get currentTab() {\n return this.tabTargets.find(tab => tab.getAttribute(\"aria-selected\") === \"true\")\n }\n\n setSelectedTo(e) {\n let keyHandled = true\n if (e.key === \"ArrowLeft\") {\n this.setSelectedToPreviousTab()\n } else if (e.key === \"ArrowRight\") {\n this.setSelectedToNextTab()\n } else if (e.key === \"Home\") {\n this.change({ currentTarget: this.tabTargets[0] })\n } else if (e.key === \"End\") {\n this.change({ currentTarget: this.tabTargets[this.tabTargets.length - 1] })\n } else {\n keyHandled = false\n }\n\n if (!keyHandled) return\n\n e.stopPropagation()\n e.preventDefault()\n }\n\n setSelectedToPreviousTab() {\n let index = this.tabTargets.indexOf(this.currentTab)\n index--;\n\n if (index === -1) {\n index = this.tabTargets.length - 1\n }\n this.change({ currentTarget: this.tabTargets[index] })\n }\n\n setSelectedToNextTab() {\n let index = this.tabTargets.indexOf(this.currentTab)\n index++;\n\n if (index === this.tabTargets.length) {\n index = 0\n }\n this.change({ currentTarget: this.tabTargets[index] })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"wrapper\" ]\n\n stepValue = 0.05\n columnsSelector = \".columns\"\n lastItemSelector = \"li:last-of-type\"\n bodyVerticalClassName = \"vertical\"\n overflowWarningShown = false\n\n async connect() {\n this.minFontSize = this.data.has(\"minfontsize\") ? parseFloat(this.data.get(\"minfontsize\")) : 0.8\n this.maxFontSize = this.data.has(\"maxfontsize\") ? parseFloat(this.data.get(\"maxfontsize\")) : 2.0\n if (this.data.has(\"lastitem\")) this.lastItemSelector = this.data.get(\"lastitem\")\n\n this.determineCoordinates()\n\n this.resizeObserver = new ResizeObserver(this.fitContent.bind(this))\n this.resizeObserver.observe(this.element)\n\n // Ensure the content fit is attempted once webfonts have loaded, or\n // at least once 5 seconds have passed\n const fontsTimer = setTimeout(() => this.fitContent(), 5000)\n await document.fonts.ready\n clearTimeout(fontsTimer)\n this.fitContent()\n }\n\n disconnect() {\n this.resizeObserver.disconnect()\n }\n\n /**\n * Looks at the orientation of the \"screen\" (horizontal or vertical) and sets\n * up the coordinate property defaults\n */\n determineCoordinates() {\n const vertical = this.bodyVerticalClassName\n\n if (\n (document.body.classList.contains(vertical) && this.data.get(\"columns\") != \"1\") ||\n (!document.body.classList.contains(vertical) && this.data.get(\"columns\") == \"1\")\n ) {\n // The case where the screen is vertical and multi-column, or horizontal\n // with only one column\n this.coordinates = { pos: \"y\", size: \"height\" }\n } else {\n // The case where the screen is horiztonal and multi-column, or vertical\n // with only column\n this.coordinates = { pos: \"x\", size: \"width\" }\n\n // and in that latter case, the x coordinates are reversed\u2026aka x will be a\n // negative number for overflows instead of positive\n this.coordinates.invert = document.body.classList.contains(vertical)\n }\n }\n\n get normalOverflowing() {\n let lastItemPos = this.lastItem.getBoundingClientRect()\n let columnsRect = this.columns.getBoundingClientRect()\n\n if (this.coordinates.pos == \"y\") {\n // the last item will be positioned below the bottom edge of the\n // column if there's an overflow\n lastItemPos = lastItemPos[this.coordinates.pos] + lastItemPos[this.coordinates.size] - columnsRect[this.coordinates.pos]\n } else {\n // multicolumn: the last item will be offscreen if there's an overflow\n lastItemPos = lastItemPos[this.coordinates.pos]\n }\n\n return lastItemPos > columnsRect[this.coordinates.size]\n }\n\n get invertedOverflowing() {\n return this.lastItem.getBoundingClientRect()[this.coordinates.pos] <\n this.columns.getBoundingClientRect()[this.coordinates.pos]\n }\n\n get isOverflowing() {\n return (!this.coordinates.invert && this.normalOverflowing) ||\n (this.coordinates.invert && this.invertedOverflowing)\n }\n\n /**\n * Runs through an algorithm to start with a maximum font size like 1.7vw,\n * then decrement by 0.05 until all the items in the columns are visible,\n * or a minimum font size has been reached.\n */\n fitContent() {\n document.body.style.fontSize = `${this.maxFontSize}vw`\n let fontSize = this.maxFontSize\n\n this.columns = this.element.querySelector(this.columnsSelector)\n this.lastItem = this.element.querySelector(this.lastItemSelector)\n\n let complete = false\n while (!complete) {\n if (fontSize > this.minFontSize && this.isOverflowing) {\n fontSize = (fontSize - this.stepValue).toFixed(2)\n document.body.style.fontSize = `${fontSize}vw`\n } else if (fontSize <= this.minFontSize && this.isOverflowing) {\n this.overflowWarning = true\n complete = true\n } else {\n this.overflowWarning = false\n complete = true\n }\n }\n\n this.wrapperTarget.style.visibility = \"visible\"\n }\n\n set overflowWarning(shown) {\n if (document.body.dataset.previewing !== \"true\") return\n\n window.parent.document.querySelector(\"#overflow-warning\").hidden = !shown\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n click(event) {\n event.preventDefault()\n this.track().always(this.redirectTo(event.currentTarget.href))\n }\n\n // private\n\n track() {\n return $.ajax(\"/api/internal/redis\", {\n method: \"POST\",\n timeout: 5000,\n data: {\n key: this.data.get(\"key\"),\n id: this.data.get(\"id\"),\n },\n })\n }\n\n redirectTo(href) {\n window.location.href = href\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"extra\", \"editor\", \"fontsSelect\", \"fontSizesSelect\" ]\n\n async connect() {\n if (this.hasExtraTarget) {\n this.setupToolbar()\n }\n\n window.Trix = (await import(\"trix\")).default\n\n if (this.data.get(\"fonts\") && this.data.get(\"fonts\") != \"\") {\n this.fonts = JSON.parse(this.data.get(\"fonts\"))\n this.fonts.forEach(([fontId, fontName]) => {\n Trix.config.textAttributes[fontId] = {\n style: { fontFamily: fontName },\n parser: (element) => {\n return element.style.fontFamily.includes(fontName)\n },\n inheritable: true\n }\n })\n\n Trix.config.blockAttributes[\"align-left\"] = {\n tagName: \"text-align-left\",\n nestable: false,\n exclusive: true,\n }\n\n Trix.config.blockAttributes[\"align-center\"] = {\n tagName: \"text-align-center\",\n nestable: false,\n exclusive: true,\n }\n\n Trix.config.blockAttributes[\"align-right\"] = {\n tagName: \"text-align-right\",\n nestable: false,\n exclusive: true,\n }\n }\n\n if (this.data.get(\"fontSizes\") && this.data.get(\"fontSizes\") != \"\") {\n this.fontSizes = JSON.parse(this.data.get(\"fontSizes\"))\n this.fontSizes.forEach(([sizeId, sizeName]) => {\n Trix.config.textAttributes[sizeId] = {\n style: { fontSize: sizeName },\n parser: (element) => {\n return element.style.fontSize.includes(sizeName)\n },\n inheritable: true\n }\n })\n }\n\n if (this.hasEditorTarget) {\n const editor = this.editorTarget.content.cloneNode(true)\n this.element.append(editor)\n }\n }\n\n async setupToolbar() {\n (await import(\"select2/dist/js/select2.full.js\")).default() // init the plugin\n\n const extraTools = this.extraTarget.content.cloneNode(true)\n this.element.addEventListener(\"trix-initialize\", event => { \n event.target.toolbarElement.\n querySelector(\".trix-button-group--text-tools\").\n append(extraTools)\n\n $(this.fontSizesSelectTarget).select2({\n minimumResultsForSearch: Infinity,\n templateResult: (data, container) => {\n if (data.element) container.style.fontSize = data.element.dataset.size\n return data.text\n },\n }).on(\"select2:select\", () => {\n const event = new CustomEvent(\"customFontSize:selected\", { bubbles: true })\n this.fontSizesSelectTarget.dispatchEvent(event)\n }).on(\"select2:open\", () => {\n // We need this for when the user selects the same exact option\n setTimeout(() => {\n document.querySelector(\".select2-results__option[aria-selected=true]\").addEventListener(\"mouseup\", () => {\n const event = new CustomEvent(\"customFontSize:selected\", { bubbles: true })\n this.fontSizesSelectTarget.dispatchEvent(event)\n })\n })\n })\n })\n }\n\n changeFonts(event) {\n this.changeAttributes(event.target.value, this.fonts)\n }\n\n changeSizes(event) {\n this.changeAttributes(event.target.value, this.fontSizes)\n }\n\n sizesClick(event) {\n console.info(event)\n }\n\n changeAttributes(selection, options) {\n const element = this.element.querySelector(\"trix-editor\")\n const blankStart = element.editor.getDocument().toString() === \"\\n\"\n\n if (blankStart) element.editor.setSelectedRange([0, 0])\n\n options.forEach(([attrId, _attrName]) => {\n element.editor.deactivateAttribute(attrId)\n })\n\n if (!selection.startsWith(\"-\")) element.editor.activateAttribute(selection)\n if (blankStart) this.newSelection()\n }\n\n alignLeft() {\n const element = this.element.querySelector(\"trix-editor\")\n\n element.editor.deactivateAttribute(\"align-center\")\n element.editor.deactivateAttribute(\"align-right\")\n element.editor.activateAttribute(\"align-left\")\n }\n\n alignCenter() {\n const element = this.element.querySelector(\"trix-editor\")\n\n element.editor.deactivateAttribute(\"align-left\")\n element.editor.deactivateAttribute(\"align-right\")\n element.editor.activateAttribute(\"align-center\")\n }\n\n alignRight() {\n const element = this.element.querySelector(\"trix-editor\")\n\n element.editor.deactivateAttribute(\"align-left\")\n element.editor.deactivateAttribute(\"align-center\")\n element.editor.activateAttribute(\"align-right\")\n }\n\n newSelection(event) {\n const element = this.element.querySelector(\"trix-editor\")\n\n let fontFound = false\n let fontSizeFound = false\n let alignmentFound = false\n\n Object.keys(element.editor.composition.currentAttributes).forEach(key => {\n if (this.fontsSelectTarget.querySelector(`option[value=\"${key}\"]`)) {\n $(this.fontsSelectTarget).val(key).trigger(\"change\")\n fontFound = true\n } else if (this.fontSizesSelectTarget.querySelector(`option[value=\"${key}\"]`)) {\n $(this.fontSizesSelectTarget).val(key).trigger(\"change\")\n fontSizeFound = true\n }\n\n if (key.startsWith(\"align-\")) alignmentFound = true\n })\n\n if (!fontFound) $(this.fontsSelectTarget).val(\"-default-\").trigger(\"change\")\n if (!fontSizeFound) $(this.fontSizesSelectTarget).val(\"-default-\").trigger(\"change\")\n if (!alignmentFound) this.element.querySelector('[data-trix-attribute=\"align-left\"]').dataset.trixActive = true\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n siteKey: String,\n theme: String,\n size: String,\n appearance: String,\n action: String,\n buttonSelector: String,\n disableButton: Boolean\n }\n\n static targets = [\"tokenField\"]\n\n connect() {\n if (window.turnstile) {\n this.renderTurnstile()\n } else {\n if (!window.securityWidgetCallbacks) {\n window.securityWidgetCallbacks = []\n window.securityWidgetCb = () => {\n if (window.securityWidgetCallbacks && window.securityWidgetCallbacks.length > 0) {\n window.securityWidgetCallbacks.forEach(callback => callback())\n }\n }\n }\n window.securityWidgetCallbacks.push(() => this.renderTurnstile())\n }\n }\n\n renderTurnstile() {\n if (this.button && this.disableButtonValue) {\n this.button.disabled = true\n }\n\n const visibleClasses = ['visible']\n\n this.id = turnstile.render(`#${this.element.id}`, {\n sitekey: this.siteKeyValue,\n theme: this.themeValue,\n size: this.sizeValue,\n action: this.actionValue,\n appearance: this.appearanceValue,\n callback: (token) => {\n if (this.hasTokenFieldTarget) {\n this.tokenFieldTarget.value = token\n }\n if (this.button && this.disableButtonValue) {\n this.button.disabled = false\n }\n },\n \"before-interactive-callback\": () => this.element.classList.add(...visibleClasses)\n })\n }\n\n disconnect() {\n if (window.turnstile && this.id) {\n turnstile.remove(this.id)\n }\n\n if (window.securityWidgetCallbacks) {\n const callbackIndex = window.securityWidgetCallbacks.findIndex(\n callback => callback.toString().includes(this.element.id)\n )\n\n if (callbackIndex !== -1) {\n window.securityWidgetCallbacks.splice(callbackIndex, 1)\n }\n }\n }\n\n get form() {\n return this.element.closest(\"form\")\n }\n\n get button() {\n if (this.hasButtonSelectorValue) {\n return document.querySelector(this.buttonSelectorValue)\n }\n\n if (this.form) {\n return this.form.querySelector(\"input[type=submit], button[type=submit]\")\n }\n\n return null\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"url\", \"currentScreen\", \"previous\", \"next\", \"preview\" ]\n\n connect() {\n this.urls = this.urlTargets.map(el => el.innerText)\n\n var currentScreen = this.getCurrentScreen()\n this.previousTarget.setAttribute(\"href\", this.urls[currentScreen - 1])\n this.nextTarget.setAttribute(\"href\", this.urls[currentScreen + 1])\n\n this.updateDisabledState()\n }\n\n previous(event) {\n event.preventDefault()\n\n var url = event.target.getAttribute(\"href\")\n this.previewTarget.setAttribute(\"src\", url)\n\n var currentScreen = this.getCurrentScreen()\n this.setCurrentScreen(currentScreen - 1)\n\n this.previousTarget.setAttribute(\"href\", this.urls[currentScreen - 2])\n this.nextTarget.setAttribute(\"href\", this.urls[currentScreen])\n\n this.updateDisabledState()\n }\n\n next(event) {\n event.preventDefault()\n\n var url = event.target.getAttribute(\"href\")\n this.previewTarget.setAttribute(\"src\", url)\n\n var currentScreen = this.getCurrentScreen()\n this.setCurrentScreen(currentScreen + 1)\n\n this.previousTarget.setAttribute(\"href\", this.urls[currentScreen])\n this.nextTarget.setAttribute(\"href\", this.urls[currentScreen + 2])\n\n this.updateDisabledState()\n }\n\n updateDisabledState() {\n var currentScreen = this.getCurrentScreen()\n\n if (currentScreen <= 0) {\n this.previousTarget.classList.add(\"disabled\")\n } else {\n this.previousTarget.classList.remove(\"disabled\")\n }\n\n if (currentScreen >= this.urls.length - 1) {\n this.nextTarget.classList.add(\"disabled\")\n } else {\n this.nextTarget.classList.remove(\"disabled\")\n }\n }\n\n getCurrentScreen() {\n return parseInt(this.currentScreenTarget.innerText) - 1\n }\n\n setCurrentScreen(screen) {\n this.currentScreenTarget.innerText = screen + 1\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"confirmation\"]\n\n update(event) {\n this.confirmationTarget.classList.add(\"hidden\")\n const checked = event.currentTarget.checked\n\n $.ajax({\n url: `/users/${this.data.get(\"user-id\")}/preferences`,\n method: \"PATCH\",\n data: {\n preference: event.currentTarget.value,\n value: event.currentTarget.checked\n }\n }).done(() => {\n this.confirmationTarget.classList.remove(\"hidden\")\n\n const customEvent = new CustomEvent(\"skip-empty-suggestions-modal-change\", {\n bubbles: true,\n detail: checked,\n })\n document.body.dispatchEvent(customEvent)\n })\n }\n\n dismiss(event) {\n event.preventDefault()\n\n this.element.classList.add(\"hidden\")\n\n $.ajax({\n url: `/users/${this.data.get(\"user-id\")}/preferences`,\n method: \"PATCH\",\n data: {\n preference: this.data.get(\"preference\"),\n value: true\n }\n })\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"video\"]\n\n connect() {\n\n const src = $(this.videoTarget).attr(\"src\")\n const origin = this.data.get(\"origin\")\n\n $(this.element).on('show.bs.modal', (event) => {\n if (origin == null) {\n $(this.videoTarget).attr('src', `${src}?autoplay=1`);\n }\n else {\n $(this.videoTarget).attr('src', `${src}?autoplay=1&origin=${origin}`);\n }\n })\n\n $(this.element).on('hide.bs.modal', (event) => {\n $(this.videoTarget).attr('src', ' ');\n })\n\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.calculate()\n }\n\n calculate(){\n const vh = window.innerHeight * 0.01\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\nexport default class extends Controller {\n initialize() {\n this.intersectionObserver = new IntersectionObserver(entries => this.processIntersectionEntries(entries))\n }\n connect() {\n this.intersectionObserver.observe(this.element)\n }\n disconnect() {\n this.intersectionObserver.unobserve(this.element)\n }\n\n // Private\n processIntersectionEntries(entries) {\n entries.forEach(entry => {\n this.element.classList.toggle(this.data.get(\"class\"), entry.isIntersecting)\n })\n }\n}", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"hidden\"]\n\n toggle(event) {\n event.preventDefault();\n\n const anchor = this.data.get(\"id\")\n const offset = parseInt(this.data.get(\"offset\")) || 0\n\n if (this.hiddenTarget.classList.contains('hidden')){\n $(\"html, body\").animate({\n scrollTop: $(`#${anchor}`).offset().top - offset}, 300)\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"content\", \"hidden\", \"required\" ]\n\n toggle(event) {\n event.preventDefault()\n\n if (this.contentTargets.length > 0) {\n this.contentTargets.forEach(t => t.classList.toggle(\"hidden\"))\n }\n\n if (this.hiddenTargets.length > 0) {\n this.hiddenTargets.forEach(t => t.classList.toggle(\"hidden\"))\n }\n\n if (this.requiredTargets.length > 0) {\n this.requiredTargets.forEach(t => t.classList.toggle(\"required\"))\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"source\", \"hidden\" ]\n\n toggle(event) {\n if (this.sourceTarget.checked) {\n this.hiddenTarget.classList.remove(\"hidden\")\n } else {\n this.hiddenTarget.classList.add(\"hidden\")\n }\n }\n}\n", "import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n change(event) {\n const previewSize = event.target.value\n const menuPreview = this.locateMenuPreview()\n\n switch (previewSize) {\n case \"mobile\":\n menuPreview.style.width = \"var(--preview-mobile-width)\"\n menuPreview.style.height = \"var(--preview-mobile-height)\"\n break;\n case \"tablet\":\n menuPreview.style.width = \"var(--preview-tablet-width)\"\n menuPreview.style.height = \"var(--preview-tablet-height)\"\n break;\n case \"desktop\":\n menuPreview.style.width = \"var(--preview-desktop-width)\"\n menuPreview.style.height = \"var(--preview-desktop-height)\"\n }\n }\n\n locateMenuPreview() {\n return document.querySelector(\"beermenus-web\").closest(\".pm-menu-chrome\")\n }\n}\n", "\n import * as module0 from './controllers/accordion-controller.js';import * as module1 from './controllers/accordion2-controller.js';import * as module2 from './controllers/admin-beer-controller.js';import * as module3 from './controllers/admin-merge-controller.js';import * as module4 from './controllers/algolia-autocomplete-controller.js';import * as module5 from './controllers/aria-autocomplete-controller.js';import * as module6 from './controllers/auto-save-controller.js';import * as module7 from './controllers/auto-textfield-height-controller.js';import * as module8 from './controllers/autocomplete-controller.js';import * as module9 from './controllers/availability-promo-controller.js';import * as module10 from './controllers/beacon-controller.js';import * as module11 from './controllers/beer-autocomplete-controller.js';import * as module12 from './controllers/beer-info-controller.js';import * as module13 from './controllers/beer-suggestions-controller.js';import * as module14 from './controllers/beers-added-modal-controller.js';import * as module15 from './controllers/block-modal-controller.js';import * as module16 from './controllers/brewery-autocomplete-controller.js';import * as module17 from './controllers/brewery-multi-select-controller.js';import * as module18 from './controllers/bulk-move-controller.js';import * as module19 from './controllers/calculator-controller.js';import * as module20 from './controllers/calendly-controller.js';import * as module21 from './controllers/charts-controller.js';import * as module22 from './controllers/checkbox-counter-controller.js';import * as module23 from './controllers/checkbox-submit-controller.js';import * as module24 from './controllers/checkbox-toggle-controller.js';import * as module25 from './controllers/checklist-accordion-controller.js';import * as module26 from './controllers/checklists-controller.js';import * as module27 from './controllers/choose-saved-card-controller.js';import * as module28 from './controllers/clipboard_controller.js';import * as module29 from './controllers/closeable-controller.js';import * as module30 from './controllers/codemirror-controller.js';import * as module31 from './controllers/collapsible-controller.js';import * as module32 from './controllers/collapsible-simple-controller.js';import * as module33 from './controllers/condition-ids-controller.js';import * as module34 from './controllers/conditional-input-controller.js';import * as module35 from './controllers/custom-product-autocomplete-controller.js';import * as module36 from './controllers/date-input-controller.js';import * as module37 from './controllers/digital-display-controller.js';import * as module38 from './controllers/ds-beer-autocomplete-controller.js';import * as module39 from './controllers/filter-templates-controller.js';import * as module40 from './controllers/fonts-controller.js';import * as module41 from './controllers/google-autocomplete-controller.js';import * as module42 from './controllers/hamburger-menu-controller.js';import * as module43 from './controllers/hiding-header-controller.js';import * as module44 from './controllers/honeybadger-controller.js';import * as module45 from './controllers/image-background-remover-controller.js';import * as module46 from './controllers/image-editor-controller.js';import * as module47 from './controllers/location-autocomplete-controller.js';import * as module48 from './controllers/masonry-grid-controller.js';import * as module49 from './controllers/menu-controller.js';import * as module50 from './controllers/menu-search-controller.js';import * as module51 from './controllers/menu-section-controller.js';import * as module52 from './controllers/menu-sections-controller.js';import * as module53 from './controllers/modular-controller.js';import * as module54 from './controllers/multi-select-controller.js';import * as module55 from './controllers/order-search-controller.js';import * as module56 from './controllers/orders-controller.js';import * as module57 from './controllers/pickup-locations-controller.js';import * as module58 from './controllers/place-lead-controller.js';import * as module59 from './controllers/price-calculator-controller.js';import * as module60 from './controllers/print-iframe-controller.js';import * as module61 from './controllers/print-menu-landing-page-controller.js';import * as module62 from './controllers/print-menus-controller.js';import * as module63 from './controllers/print-preview-controller.js';import * as module64 from './controllers/product-autocomplete-controller.js';import * as module65 from './controllers/product-type-controller.js';import * as module66 from './controllers/property-segments-controller.js';import * as module67 from './controllers/purchase-limit-controller.js';import * as module68 from './controllers/region-preview-controller.js';import * as module69 from './controllers/remote-file-form-controller.js';import * as module70 from './controllers/scroll-to-top-controller.js';import * as module71 from './controllers/segmented_field_controller.js';import * as module72 from './controllers/segments-controller.js';import * as module73 from './controllers/select-all-controller.js';import * as module74 from './controllers/serving-controller.js';import * as module75 from './controllers/serving-size-fields-controller.js';import * as module76 from './controllers/servings-controller.js';import * as module77 from './controllers/shoelace-controller.js';import * as module78 from './controllers/show-more-controller.js';import * as module79 from './controllers/simple-beer-autocomplete-controller.js';import * as module80 from './controllers/simple-modular-controller.js';import * as module81 from './controllers/smooth-scroller-controller.js';import * as module82 from './controllers/sort-store-controller.js';import * as module83 from './controllers/sortable-controller.js';import * as module84 from './controllers/sortablejs-controller.js';import * as module85 from './controllers/sticky-controller.js';import * as module86 from './controllers/streamlined-menu-controller.js';import * as module87 from './controllers/stripe-controller.js';import * as module88 from './controllers/structured-data-controller.js';import * as module89 from './controllers/tabs-controller.js';import * as module90 from './controllers/tabs2-controller.js';import * as module91 from './controllers/textfit-controller.js';import * as module92 from './controllers/tracked-clicks-controller.js';import * as module93 from './controllers/trix-controller.js';import * as module94 from './controllers/turnstile_controller.js';import * as module95 from './controllers/tv-preview-controller.js';import * as module96 from './controllers/user-preferences-controller.js';import * as module97 from './controllers/video-modal-controller.js';import * as module98 from './controllers/viewport-calculate-controller.js';import * as module99 from './controllers/viewport-entrance-toggle-controller.js';import * as module100 from './controllers/visible-anchor-controller.js';import * as module101 from './controllers/visible-controller.js';import * as module102 from './controllers/visible-from-radio-controller.js';import * as module103 from './controllers/web-menu-preview-sizes-controller.js'\n const modules = {\"./controllers/accordion-controller.js\": module0,\"./controllers/accordion2-controller.js\": module1,\"./controllers/admin-beer-controller.js\": module2,\"./controllers/admin-merge-controller.js\": module3,\"./controllers/algolia-autocomplete-controller.js\": module4,\"./controllers/aria-autocomplete-controller.js\": module5,\"./controllers/auto-save-controller.js\": module6,\"./controllers/auto-textfield-height-controller.js\": module7,\"./controllers/autocomplete-controller.js\": module8,\"./controllers/availability-promo-controller.js\": module9,\"./controllers/beacon-controller.js\": module10,\"./controllers/beer-autocomplete-controller.js\": module11,\"./controllers/beer-info-controller.js\": module12,\"./controllers/beer-suggestions-controller.js\": module13,\"./controllers/beers-added-modal-controller.js\": module14,\"./controllers/block-modal-controller.js\": module15,\"./controllers/brewery-autocomplete-controller.js\": module16,\"./controllers/brewery-multi-select-controller.js\": module17,\"./controllers/bulk-move-controller.js\": module18,\"./controllers/calculator-controller.js\": module19,\"./controllers/calendly-controller.js\": module20,\"./controllers/charts-controller.js\": module21,\"./controllers/checkbox-counter-controller.js\": module22,\"./controllers/checkbox-submit-controller.js\": module23,\"./controllers/checkbox-toggle-controller.js\": module24,\"./controllers/checklist-accordion-controller.js\": module25,\"./controllers/checklists-controller.js\": module26,\"./controllers/choose-saved-card-controller.js\": module27,\"./controllers/clipboard_controller.js\": module28,\"./controllers/closeable-controller.js\": module29,\"./controllers/codemirror-controller.js\": module30,\"./controllers/collapsible-controller.js\": module31,\"./controllers/collapsible-simple-controller.js\": module32,\"./controllers/condition-ids-controller.js\": module33,\"./controllers/conditional-input-controller.js\": module34,\"./controllers/custom-product-autocomplete-controller.js\": module35,\"./controllers/date-input-controller.js\": module36,\"./controllers/digital-display-controller.js\": module37,\"./controllers/ds-beer-autocomplete-controller.js\": module38,\"./controllers/filter-templates-controller.js\": module39,\"./controllers/fonts-controller.js\": module40,\"./controllers/google-autocomplete-controller.js\": module41,\"./controllers/hamburger-menu-controller.js\": module42,\"./controllers/hiding-header-controller.js\": module43,\"./controllers/honeybadger-controller.js\": module44,\"./controllers/image-background-remover-controller.js\": module45,\"./controllers/image-editor-controller.js\": module46,\"./controllers/location-autocomplete-controller.js\": module47,\"./controllers/masonry-grid-controller.js\": module48,\"./controllers/menu-controller.js\": module49,\"./controllers/menu-search-controller.js\": module50,\"./controllers/menu-section-controller.js\": module51,\"./controllers/menu-sections-controller.js\": module52,\"./controllers/modular-controller.js\": module53,\"./controllers/multi-select-controller.js\": module54,\"./controllers/order-search-controller.js\": module55,\"./controllers/orders-controller.js\": module56,\"./controllers/pickup-locations-controller.js\": module57,\"./controllers/place-lead-controller.js\": module58,\"./controllers/price-calculator-controller.js\": module59,\"./controllers/print-iframe-controller.js\": module60,\"./controllers/print-menu-landing-page-controller.js\": module61,\"./controllers/print-menus-controller.js\": module62,\"./controllers/print-preview-controller.js\": module63,\"./controllers/product-autocomplete-controller.js\": module64,\"./controllers/product-type-controller.js\": module65,\"./controllers/property-segments-controller.js\": module66,\"./controllers/purchase-limit-controller.js\": module67,\"./controllers/region-preview-controller.js\": module68,\"./controllers/remote-file-form-controller.js\": module69,\"./controllers/scroll-to-top-controller.js\": module70,\"./controllers/segmented_field_controller.js\": module71,\"./controllers/segments-controller.js\": module72,\"./controllers/select-all-controller.js\": module73,\"./controllers/serving-controller.js\": module74,\"./controllers/serving-size-fields-controller.js\": module75,\"./controllers/servings-controller.js\": module76,\"./controllers/shoelace-controller.js\": module77,\"./controllers/show-more-controller.js\": module78,\"./controllers/simple-beer-autocomplete-controller.js\": module79,\"./controllers/simple-modular-controller.js\": module80,\"./controllers/smooth-scroller-controller.js\": module81,\"./controllers/sort-store-controller.js\": module82,\"./controllers/sortable-controller.js\": module83,\"./controllers/sortablejs-controller.js\": module84,\"./controllers/sticky-controller.js\": module85,\"./controllers/streamlined-menu-controller.js\": module86,\"./controllers/stripe-controller.js\": module87,\"./controllers/structured-data-controller.js\": module88,\"./controllers/tabs-controller.js\": module89,\"./controllers/tabs2-controller.js\": module90,\"./controllers/textfit-controller.js\": module91,\"./controllers/tracked-clicks-controller.js\": module92,\"./controllers/trix-controller.js\": module93,\"./controllers/turnstile_controller.js\": module94,\"./controllers/tv-preview-controller.js\": module95,\"./controllers/user-preferences-controller.js\": module96,\"./controllers/video-modal-controller.js\": module97,\"./controllers/viewport-calculate-controller.js\": module98,\"./controllers/viewport-entrance-toggle-controller.js\": module99,\"./controllers/visible-anchor-controller.js\": module100,\"./controllers/visible-controller.js\": module101,\"./controllers/visible-from-radio-controller.js\": module102,\"./controllers/web-menu-preview-sizes-controller.js\": module103,\n };\n export default modules;\n ", "import { Controller } from \"@hotwired/stimulus\";\nconst _Dialog = class _Dialog extends Controller {\n initialize() {\n this.forceClose = this.forceClose.bind(this);\n }\n connect() {\n this.openValue && this.open(), document.addEventListener(\"turbo:before-render\", this.forceClose);\n }\n disconnect() {\n document.removeEventListener(\"turbo:before-render\", this.forceClose);\n }\n open() {\n this.dialogTarget.showModal();\n }\n close() {\n this.dialogTarget.setAttribute(\"closing\", \"\"), Promise.all(this.dialogTarget.getAnimations().map((animation) => animation.finished)).then(() => {\n this.dialogTarget.removeAttribute(\"closing\"), this.dialogTarget.close();\n });\n }\n backdropClose(event) {\n event.target === this.dialogTarget && this.close();\n }\n forceClose() {\n this.dialogTarget.close();\n }\n};\n_Dialog.targets = [\"dialog\"], _Dialog.values = {\n open: {\n type: Boolean,\n default: !1\n }\n};\nlet Dialog = _Dialog;\nexport {\n Dialog as default\n};\n", "/*\n * stimulus-use 0.52.1\n */\nimport { Controller } from \"@hotwired/stimulus\";\n\nconst method = (controller, methodName) => {\n const method = controller[methodName];\n if (typeof method == \"function\") {\n return method;\n } else {\n return (...args) => {};\n }\n};\n\nconst composeEventName = (name, controller, eventPrefix) => {\n let composedName = name;\n if (eventPrefix === true) {\n composedName = `${controller.identifier}:${name}`;\n } else if (typeof eventPrefix === \"string\") {\n composedName = `${eventPrefix}:${name}`;\n }\n return composedName;\n};\n\nconst extendedEvent = (type, event, detail) => {\n const {bubbles: bubbles, cancelable: cancelable, composed: composed} = event || {\n bubbles: true,\n cancelable: true,\n composed: true\n };\n if (event) {\n Object.assign(detail, {\n originalEvent: event\n });\n }\n const customEvent = new CustomEvent(type, {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: detail\n });\n return customEvent;\n};\n\nfunction isElementInViewport(el) {\n const rect = el.getBoundingClientRect();\n const windowHeight = window.innerHeight || document.documentElement.clientHeight;\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const vertInView = rect.top <= windowHeight && rect.top + rect.height > 0;\n const horInView = rect.left <= windowWidth && rect.left + rect.width > 0;\n return vertInView && horInView;\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, ((_, char) => char.toUpperCase()));\n}\n\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */ function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nconst defaultOptions$8 = {\n debug: false,\n logger: console,\n dispatchEvent: true,\n eventPrefix: true\n};\n\nclass StimulusUse {\n constructor(controller, options = {}) {\n var _a, _b, _c;\n this.log = (functionName, args) => {\n if (!this.debug) return;\n this.logger.groupCollapsed(`%c${this.controller.identifier} %c#${functionName}`, \"color: #3B82F6\", \"color: unset\");\n this.logger.log(Object.assign({\n controllerId: this.controllerId\n }, args));\n this.logger.groupEnd();\n };\n this.warn = message => {\n this.logger.warn(`%c${this.controller.identifier} %c${message}`, \"color: #3B82F6; font-weight: bold\", \"color: unset\");\n };\n this.dispatch = (eventName, details = {}) => {\n if (this.dispatchEvent) {\n const {event: event} = details, eventDetails = __rest(details, [ \"event\" ]);\n const customEvent = this.extendedEvent(eventName, event || null, eventDetails);\n this.targetElement.dispatchEvent(customEvent);\n this.log(\"dispatchEvent\", Object.assign({\n eventName: customEvent.type\n }, eventDetails));\n }\n };\n this.call = (methodName, args = {}) => {\n const method = this.controller[methodName];\n if (typeof method == \"function\") {\n return method.call(this.controller, args);\n }\n };\n this.extendedEvent = (name, event, detail) => {\n const {bubbles: bubbles, cancelable: cancelable, composed: composed} = event || {\n bubbles: true,\n cancelable: true,\n composed: true\n };\n if (event) {\n Object.assign(detail, {\n originalEvent: event\n });\n }\n const customEvent = new CustomEvent(this.composeEventName(name), {\n bubbles: bubbles,\n cancelable: cancelable,\n composed: composed,\n detail: detail\n });\n return customEvent;\n };\n this.composeEventName = name => {\n let composedName = name;\n if (this.eventPrefix === true) {\n composedName = `${this.controller.identifier}:${name}`;\n } else if (typeof this.eventPrefix === \"string\") {\n composedName = `${this.eventPrefix}:${name}`;\n }\n return composedName;\n };\n this.debug = (_b = (_a = options === null || options === void 0 ? void 0 : options.debug) !== null && _a !== void 0 ? _a : controller.application.stimulusUseDebug) !== null && _b !== void 0 ? _b : defaultOptions$8.debug;\n this.logger = (_c = options === null || options === void 0 ? void 0 : options.logger) !== null && _c !== void 0 ? _c : defaultOptions$8.logger;\n this.controller = controller;\n this.controllerId = controller.element.id || controller.element.dataset.id;\n this.targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n const {dispatchEvent: dispatchEvent, eventPrefix: eventPrefix} = Object.assign({}, defaultOptions$8, options);\n Object.assign(this, {\n dispatchEvent: dispatchEvent,\n eventPrefix: eventPrefix\n });\n this.controllerInitialize = controller.initialize.bind(controller);\n this.controllerConnect = controller.connect.bind(controller);\n this.controllerDisconnect = controller.disconnect.bind(controller);\n }\n}\n\nconst defaultOptions$7 = {\n eventPrefix: true,\n bubbles: true,\n cancelable: true\n};\n\nclass UseDispatch extends StimulusUse {\n constructor(controller, options = {}) {\n var _a, _b, _c, _d;\n super(controller, options);\n this.dispatch = (eventName, detail = {}) => {\n const {controller: controller, targetElement: targetElement, eventPrefix: eventPrefix, bubbles: bubbles, cancelable: cancelable, log: log, warn: warn} = this;\n Object.assign(detail, {\n controller: controller\n });\n const eventNameWithPrefix = composeEventName(eventName, this.controller, eventPrefix);\n const event = new CustomEvent(eventNameWithPrefix, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n targetElement.dispatchEvent(event);\n warn(\"`useDispatch()` is deprecated. Please use the built-in `this.dispatch()` function from Stimulus. You can find more information on how to upgrade at: https://stimulus-use.github.io/stimulus-use/#/use-dispatch\");\n log(\"dispatch\", {\n eventName: eventNameWithPrefix,\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n return event;\n };\n this.targetElement = (_a = options.element) !== null && _a !== void 0 ? _a : controller.element;\n this.eventPrefix = (_b = options.eventPrefix) !== null && _b !== void 0 ? _b : defaultOptions$7.eventPrefix;\n this.bubbles = (_c = options.bubbles) !== null && _c !== void 0 ? _c : defaultOptions$7.bubbles;\n this.cancelable = (_d = options.cancelable) !== null && _d !== void 0 ? _d : defaultOptions$7.cancelable;\n this.enhanceController();\n }\n enhanceController() {\n Object.assign(this.controller, {\n dispatch: this.dispatch\n });\n }\n}\n\nconst useDispatch = (controller, options = {}) => new UseDispatch(controller, options);\n\nconst defaultOptions$6 = {\n overwriteDispatch: true\n};\n\nconst useApplication = (controller, options = {}) => {\n const {overwriteDispatch: overwriteDispatch} = Object.assign({}, defaultOptions$6, options);\n Object.defineProperty(controller, \"isPreview\", {\n get() {\n return document.documentElement.hasAttribute(\"data-turbolinks-preview\") || document.documentElement.hasAttribute(\"data-turbo-preview\");\n }\n });\n Object.defineProperty(controller, \"isConnected\", {\n get() {\n return !!Array.from(this.context.module.connectedContexts).find((c => c === this.context));\n }\n });\n Object.defineProperty(controller, \"csrfToken\", {\n get() {\n return this.metaValue(\"csrf-token\");\n }\n });\n if (overwriteDispatch) {\n useDispatch(controller, options);\n }\n Object.assign(controller, {\n metaValue(name) {\n const element = document.head.querySelector(`meta[name=\"${name}\"]`);\n return element && element.getAttribute(\"content\");\n }\n });\n};\n\nclass ApplicationController extends Controller {\n constructor(context) {\n super(context);\n this.isPreview = false;\n this.isConnected = false;\n this.csrfToken = \"\";\n useApplication(this, this.options);\n }\n}\n\nconst defaultOptions$5 = {\n events: [ \"click\", \"touchend\" ],\n onlyVisible: true,\n dispatchEvent: true,\n eventPrefix: true\n};\n\nconst useClickOutside = (composableController, options = {}) => {\n const controller = composableController;\n const {onlyVisible: onlyVisible, dispatchEvent: dispatchEvent, events: events, eventPrefix: eventPrefix} = Object.assign({}, defaultOptions$5, options);\n const onEvent = event => {\n const targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n if (targetElement.contains(event.target) || !isElementInViewport(targetElement) && onlyVisible) {\n return;\n }\n if (controller.clickOutside) {\n controller.clickOutside(event);\n }\n if (dispatchEvent) {\n const eventName = composeEventName(\"click:outside\", controller, eventPrefix);\n const clickOutsideEvent = extendedEvent(eventName, event, {\n controller: controller\n });\n targetElement.dispatchEvent(clickOutsideEvent);\n }\n };\n const observe = () => {\n events === null || events === void 0 ? void 0 : events.forEach((event => {\n window.addEventListener(event, onEvent, true);\n }));\n };\n const unobserve = () => {\n events === null || events === void 0 ? void 0 : events.forEach((event => {\n window.removeEventListener(event, onEvent, true);\n }));\n };\n const controllerDisconnect = controller.disconnect.bind(controller);\n Object.assign(controller, {\n disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass ClickOutsideComposableController extends Controller {}\n\nclass ClickOutsideController extends ClickOutsideComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useClickOutside(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nclass DebounceController extends Controller {}\n\nDebounceController.debounces = [];\n\nconst defaultWait$1 = 200;\n\nconst debounce = (fn, wait = defaultWait$1) => {\n let timeoutId = null;\n return function() {\n const args = Array.from(arguments);\n const context = this;\n const params = args.map((arg => arg.params));\n const callback = () => {\n args.forEach(((arg, index) => arg.params = params[index]));\n return fn.apply(context, args);\n };\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(callback, wait);\n };\n};\n\nconst useDebounce = (composableController, options) => {\n const controller = composableController;\n const constructor = controller.constructor;\n constructor.debounces.forEach((func => {\n if (typeof func === \"string\") {\n controller[func] = debounce(controller[func], options === null || options === void 0 ? void 0 : options.wait);\n }\n if (typeof func === \"object\") {\n const {name: name, wait: wait} = func;\n if (!name) return;\n controller[name] = debounce(controller[name], wait || (options === null || options === void 0 ? void 0 : options.wait));\n }\n }));\n};\n\nclass UseHover extends StimulusUse {\n constructor(controller, options = {}) {\n super(controller, options);\n this.observe = () => {\n this.targetElement.addEventListener(\"mouseenter\", this.onEnter);\n this.targetElement.addEventListener(\"mouseleave\", this.onLeave);\n };\n this.unobserve = () => {\n this.targetElement.removeEventListener(\"mouseenter\", this.onEnter);\n this.targetElement.removeEventListener(\"mouseleave\", this.onLeave);\n };\n this.onEnter = event => {\n this.call(\"mouseEnter\", event);\n this.log(\"mouseEnter\", {\n hover: true\n });\n this.dispatch(\"mouseEnter\", {\n hover: false\n });\n };\n this.onLeave = event => {\n this.call(\"mouseLeave\", event);\n this.log(\"mouseLeave\", {\n hover: false\n });\n this.dispatch(\"mouseLeave\", {\n hover: false\n });\n };\n this.controller = controller;\n this.enhanceController();\n this.observe();\n }\n enhanceController() {\n const controllerDisconnect = this.controller.disconnect.bind(this.controller);\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useHover = (composableController, options = {}) => {\n const controller = composableController;\n const observer = new UseHover(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nclass HoverComposableController extends Controller {}\n\nclass HoverController extends HoverComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useHover(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst defaultEvents = [ \"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\" ];\n\nconst oneMinute = 6e4;\n\nconst defaultOptions$4 = {\n ms: oneMinute,\n initialState: false,\n events: defaultEvents,\n dispatchEvent: true,\n eventPrefix: true\n};\n\nconst useIdle = (composableController, options = {}) => {\n const controller = composableController;\n const {ms: ms, initialState: initialState, events: events, dispatchEvent: dispatchEvent, eventPrefix: eventPrefix} = Object.assign({}, defaultOptions$4, options);\n let isIdle = initialState;\n let timeout = setTimeout((() => {\n isIdle = true;\n dispatchAway();\n }), ms);\n const dispatchAway = event => {\n const eventName = composeEventName(\"away\", controller, eventPrefix);\n controller.isIdle = true;\n method(controller, \"away\").call(controller, event);\n if (dispatchEvent) {\n const clickOutsideEvent = extendedEvent(eventName, event || null, {\n controller: controller\n });\n controller.element.dispatchEvent(clickOutsideEvent);\n }\n };\n const dispatchBack = event => {\n const eventName = composeEventName(\"back\", controller, eventPrefix);\n controller.isIdle = false;\n method(controller, \"back\").call(controller, event);\n if (dispatchEvent) {\n const clickOutsideEvent = extendedEvent(eventName, event || null, {\n controller: controller\n });\n controller.element.dispatchEvent(clickOutsideEvent);\n }\n };\n const onEvent = event => {\n if (isIdle) dispatchBack(event);\n isIdle = false;\n clearTimeout(timeout);\n timeout = setTimeout((() => {\n isIdle = true;\n dispatchAway(event);\n }), ms);\n };\n const onVisibility = event => {\n if (!document.hidden) onEvent(event);\n };\n if (isIdle) {\n dispatchAway();\n } else {\n dispatchBack();\n }\n const controllerDisconnect = controller.disconnect.bind(controller);\n const observe = () => {\n events.forEach((event => {\n window.addEventListener(event, onEvent);\n }));\n document.addEventListener(\"visibilitychange\", onVisibility);\n };\n const unobserve = () => {\n clearTimeout(timeout);\n events.forEach((event => {\n window.removeEventListener(event, onEvent);\n }));\n document.removeEventListener(\"visibilitychange\", onVisibility);\n };\n Object.assign(controller, {\n disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass IdleComposableController extends Controller {\n constructor() {\n super(...arguments);\n this.isIdle = false;\n }\n}\n\nclass IdleController extends IdleComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useIdle(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst defaultOptions$3 = {\n dispatchEvent: true,\n eventPrefix: true,\n visibleAttribute: \"isVisible\"\n};\n\nconst useIntersection = (composableController, options = {}) => {\n const controller = composableController;\n const {dispatchEvent: dispatchEvent, eventPrefix: eventPrefix, visibleAttribute: visibleAttribute} = Object.assign({}, defaultOptions$3, options);\n const targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n if (!controller.intersectionElements) controller.intersectionElements = [];\n controller.intersectionElements.push(targetElement);\n const callback = entries => {\n const [entry] = entries;\n if (entry.isIntersecting) {\n dispatchAppear(entry);\n } else if (targetElement.hasAttribute(visibleAttribute)) {\n dispatchDisappear(entry);\n }\n };\n const observer = new IntersectionObserver(callback, options);\n const dispatchAppear = entry => {\n targetElement.setAttribute(visibleAttribute, \"true\");\n method(controller, \"appear\").call(controller, entry, observer);\n if (dispatchEvent) {\n const eventName = composeEventName(\"appear\", controller, eventPrefix);\n const appearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry,\n observer: observer\n });\n targetElement.dispatchEvent(appearEvent);\n }\n };\n const dispatchDisappear = entry => {\n targetElement.removeAttribute(visibleAttribute);\n method(controller, \"disappear\").call(controller, entry, observer);\n if (dispatchEvent) {\n const eventName = composeEventName(\"disappear\", controller, eventPrefix);\n const disappearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry,\n observer: observer\n });\n targetElement.dispatchEvent(disappearEvent);\n }\n };\n const controllerDisconnect = controller.disconnect.bind(controller);\n const disconnect = () => {\n unobserve();\n controllerDisconnect();\n };\n const observe = () => {\n observer.observe(targetElement);\n };\n const unobserve = () => {\n observer.unobserve(targetElement);\n };\n const noneVisible = () => controller.intersectionElements.filter((element => element.hasAttribute(visibleAttribute))).length === 0;\n const oneVisible = () => controller.intersectionElements.filter((element => element.hasAttribute(visibleAttribute))).length === 1;\n const atLeastOneVisible = () => controller.intersectionElements.some((element => element.hasAttribute(visibleAttribute)));\n const allVisible = () => controller.intersectionElements.every((element => element.hasAttribute(visibleAttribute)));\n const isVisible = allVisible;\n Object.assign(controller, {\n isVisible: isVisible,\n noneVisible: noneVisible,\n oneVisible: oneVisible,\n atLeastOneVisible: atLeastOneVisible,\n allVisible: allVisible,\n disconnect: disconnect\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass IntersectionComposableController extends Controller {}\n\nclass IntersectionController extends IntersectionComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useIntersection(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst useLazyLoad = (controller, options) => {\n const callback = entries => {\n const [entry] = entries;\n if (entry.isIntersecting && !controller.isLoaded) {\n handleAppear();\n }\n };\n const handleAppear = entry => {\n const src = controller.data.get(\"src\");\n if (!src) return;\n const imageElement = controller.element;\n controller.isLoading = true;\n method(controller, \"loading\").call(controller, src);\n imageElement.onload = () => {\n handleLoaded(src);\n };\n imageElement.src = src;\n };\n const handleLoaded = src => {\n controller.isLoading = false;\n controller.isLoaded = true;\n method(controller, \"loaded\").call(controller, src);\n };\n const controllerDisconnect = controller.disconnect.bind(controller);\n const observer = new IntersectionObserver(callback, options);\n const observe = () => {\n observer.observe(controller.element);\n };\n const unobserve = () => {\n observer.unobserve(controller.element);\n };\n Object.assign(controller, {\n isVisible: false,\n disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass LazyLoadComposableController extends Controller {\n constructor() {\n super(...arguments);\n this.isLoading = false;\n this.isLoaded = false;\n }\n}\n\nclass LazyLoadController extends LazyLoadComposableController {\n constructor(context) {\n super(context);\n this.options = {\n rootMargin: \"10%\"\n };\n requestAnimationFrame((() => {\n const [observe, unobserve] = useLazyLoad(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst defaultOptions$2 = {\n mediaQueries: {},\n dispatchEvent: true,\n eventPrefix: true,\n debug: false\n};\n\nclass UseMatchMedia extends StimulusUse {\n constructor(controller, options = {}) {\n var _a, _b, _c, _d;\n super(controller, options);\n this.matches = [];\n this.callback = event => {\n const name = Object.keys(this.mediaQueries).find((name => this.mediaQueries[name] === event.media));\n if (!name) return;\n const {media: media, matches: matches} = event;\n this.changed({\n name: name,\n media: media,\n matches: matches,\n event: event\n });\n };\n this.changed = payload => {\n const {name: name} = payload;\n if (payload.event) {\n this.call(camelize(`${name}_changed`), payload);\n this.dispatch(`${name}:changed`, payload);\n this.log(`media query \"${name}\" changed`, payload);\n }\n if (payload.matches) {\n this.call(camelize(`is_${name}`), payload);\n this.dispatch(`is:${name}`, payload);\n } else {\n this.call(camelize(`not_${name}`), payload);\n this.dispatch(`not:${name}`, payload);\n }\n };\n this.observe = () => {\n Object.keys(this.mediaQueries).forEach((name => {\n const media = this.mediaQueries[name];\n const match = window.matchMedia(media);\n match.addListener(this.callback);\n this.matches.push(match);\n this.changed({\n name: name,\n media: media,\n matches: match.matches\n });\n }));\n };\n this.unobserve = () => {\n this.matches.forEach((match => match.removeListener(this.callback)));\n };\n this.controller = controller;\n this.mediaQueries = (_a = options.mediaQueries) !== null && _a !== void 0 ? _a : defaultOptions$2.mediaQueries;\n this.dispatchEvent = (_b = options.dispatchEvent) !== null && _b !== void 0 ? _b : defaultOptions$2.dispatchEvent;\n this.eventPrefix = (_c = options.eventPrefix) !== null && _c !== void 0 ? _c : defaultOptions$2.eventPrefix;\n this.debug = (_d = options.debug) !== null && _d !== void 0 ? _d : defaultOptions$2.debug;\n if (!window.matchMedia) {\n console.error(\"window.matchMedia() is not available\");\n return;\n }\n this.enhanceController();\n this.observe();\n }\n enhanceController() {\n const controllerDisconnect = this.controller.disconnect.bind(this.controller);\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useMatchMedia = (controller, options = {}) => {\n const observer = new UseMatchMedia(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nconst memoize = (controller, name, value) => {\n Object.defineProperty(controller, name, {\n value: value\n });\n return value;\n};\n\nconst useMemo = controller => {\n var _a;\n (_a = controller.constructor.memos) === null || _a === void 0 ? void 0 : _a.forEach((getter => {\n memoize(controller, getter, controller[getter]);\n }));\n};\n\nconst defineMetaGetter = (controller, metaName, suffix) => {\n const getterName = suffix ? `${camelize(metaName)}Meta` : camelize(metaName);\n Object.defineProperty(controller, getterName, {\n get() {\n return typeCast(metaValue(metaName));\n }\n });\n};\n\nfunction metaValue(name) {\n const element = document.head.querySelector(`meta[name=\"${name}\"]`);\n return element && element.getAttribute(\"content\");\n}\n\nfunction typeCast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\n\nconst useMeta = (controller, options = {\n suffix: true\n}) => {\n const metaNames = controller.constructor.metaNames;\n const suffix = options.suffix;\n metaNames === null || metaNames === void 0 ? void 0 : metaNames.forEach((metaName => {\n defineMetaGetter(controller, metaName, suffix);\n }));\n Object.defineProperty(controller, \"metas\", {\n get() {\n const result = {};\n metaNames === null || metaNames === void 0 ? void 0 : metaNames.forEach((metaName => {\n const value = typeCast(metaValue(metaName));\n if (value !== undefined && value !== null) {\n result[camelize(metaName)] = value;\n }\n }));\n return result;\n }\n });\n};\n\nclass UseMutation extends StimulusUse {\n constructor(controller, options = {}) {\n super(controller, options);\n this.observe = () => {\n try {\n this.observer.observe(this.targetElement, this.options);\n } catch (error) {\n this.controller.application.handleError(error, \"At a minimum, one of childList, attributes, and/or characterData must be true\", {});\n }\n };\n this.unobserve = () => {\n this.observer.disconnect();\n };\n this.mutation = entries => {\n this.call(\"mutate\", entries);\n this.log(\"mutate\", {\n entries: entries\n });\n this.dispatch(\"mutate\", {\n entries: entries\n });\n };\n this.targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n this.controller = controller;\n this.options = options;\n this.observer = new MutationObserver(this.mutation);\n this.enhanceController();\n this.observe();\n }\n enhanceController() {\n const controllerDisconnect = this.controller.disconnect.bind(this.controller);\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useMutation = (controller, options = {}) => {\n const observer = new UseMutation(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nclass MutationComposableController extends Controller {}\n\nclass MutationController extends MutationComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useMutation(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst defaultOptions$1 = {\n dispatchEvent: true,\n eventPrefix: true\n};\n\nconst useResize = (composableController, options = {}) => {\n const controller = composableController;\n const {dispatchEvent: dispatchEvent, eventPrefix: eventPrefix} = Object.assign({}, defaultOptions$1, options);\n const targetElement = (options === null || options === void 0 ? void 0 : options.element) || controller.element;\n const callback = entries => {\n const [entry] = entries;\n method(controller, \"resize\").call(controller, entry.contentRect);\n if (dispatchEvent) {\n const eventName = composeEventName(\"resize\", controller, eventPrefix);\n const appearEvent = extendedEvent(eventName, null, {\n controller: controller,\n entry: entry\n });\n targetElement.dispatchEvent(appearEvent);\n }\n };\n const controllerDisconnect = controller.disconnect.bind(controller);\n const observer = new ResizeObserver(callback);\n const observe = () => {\n observer.observe(targetElement);\n };\n const unobserve = () => {\n observer.unobserve(targetElement);\n };\n Object.assign(controller, {\n disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass ResizeComposableController extends Controller {}\n\nclass ResizeController extends ResizeComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useResize(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nclass UseTargetMutation extends StimulusUse {\n constructor(controller, options = {}) {\n super(controller, options);\n this.observe = () => {\n this.observer.observe(this.targetElement, {\n subtree: true,\n characterData: true,\n childList: true,\n attributes: true,\n attributeOldValue: true,\n attributeFilter: [ this.targetSelector, this.scopedTargetSelector ]\n });\n };\n this.unobserve = () => {\n this.observer.disconnect();\n };\n this.mutation = entries => {\n for (const mutation of entries) {\n switch (mutation.type) {\n case \"attributes\":\n let newValue = mutation.target.getAttribute(mutation.attributeName);\n let oldValue = mutation.oldValue;\n if (mutation.attributeName === this.targetSelector || mutation.attributeName === this.scopedTargetSelector) {\n let oldTargets = this.targetsUsedByThisController(oldValue);\n let newTargets = this.targetsUsedByThisController(newValue);\n let removedTargets = oldTargets.filter((target => !newTargets.includes(target)));\n let addedTargets = newTargets.filter((target => !oldTargets.includes(target)));\n removedTargets.forEach((target => this.targetRemoved(this.stripIdentifierPrefix(target), mutation.target, \"attributeChange\")));\n addedTargets.forEach((target => this.targetAdded(this.stripIdentifierPrefix(target), mutation.target, \"attributeChange\")));\n }\n break;\n\n case \"characterData\":\n let nodule = this.findTargetInAncestry(mutation.target);\n if (nodule == null) {\n return;\n } else {\n let supportedTargets = this.targetsUsedByThisControllerFromNode(nodule);\n supportedTargets.forEach((target => {\n this.targetChanged(this.stripIdentifierPrefix(target), nodule, \"domMutation\");\n }));\n }\n break;\n\n case \"childList\":\n let {addedNodes: addedNodes, removedNodes: removedNodes} = mutation;\n addedNodes.forEach((node => this.processNodeDOMMutation(node, this.targetAdded)));\n removedNodes.forEach((node => this.processNodeDOMMutation(node, this.targetRemoved)));\n break;\n }\n }\n };\n this.controller = controller;\n this.options = options;\n this.targetElement = controller.element;\n this.identifier = controller.scope.identifier;\n this.identifierPrefix = `${this.identifier}.`;\n this.targetSelector = controller.scope.schema.targetAttribute;\n this.scopedTargetSelector = `data-${this.identifier}-target`;\n this.targets = options.targets || controller.constructor.targets;\n this.prefixedTargets = this.targets.map((target => `${this.identifierPrefix}${target}`));\n this.observer = new MutationObserver(this.mutation);\n this.enhanceController();\n this.observe();\n }\n processNodeDOMMutation(node, initialChangeModeAssumption) {\n let nodule = node;\n let change = initialChangeModeAssumption;\n let supportedTargets = [];\n if (nodule.nodeName == \"#text\" || this.targetsUsedByThisControllerFromNode(nodule).length == 0) {\n change = this.targetChanged;\n nodule = this.findTargetInAncestry(node);\n } else {\n supportedTargets = this.targetsUsedByThisControllerFromNode(nodule);\n }\n if (nodule == null) {\n return;\n } else if (supportedTargets.length == 0) {\n supportedTargets = this.targetsUsedByThisControllerFromNode(nodule);\n }\n supportedTargets.forEach((target => {\n change.call(this, this.stripIdentifierPrefix(target), nodule, \"domMutation\");\n }));\n }\n findTargetInAncestry(node) {\n let nodule = node;\n let supportedTargets = [];\n if (nodule.nodeName != \"#text\") {\n supportedTargets = this.targetsUsedByThisControllerFromNode(nodule);\n }\n while (nodule.parentNode !== null && nodule.parentNode != this.targetElement && supportedTargets.length == 0) {\n nodule = nodule.parentNode;\n if (nodule.nodeName !== \"#text\") {\n let supportedTargets = this.targetsUsedByThisControllerFromNode(nodule);\n if (supportedTargets.length > 0) {\n return nodule;\n }\n }\n }\n if (nodule.nodeName == \"#text\") {\n return null;\n }\n if (nodule.parentNode == null) {\n return null;\n }\n if (nodule.parentNode == this.targetElement) {\n if (this.targetsUsedByThisControllerFromNode(nodule).length > 0) {\n return nodule;\n }\n return null;\n }\n return null;\n }\n targetAdded(name, node, trigger) {\n let targetCallback = `${name}TargetAdded`;\n this.controller[targetCallback] && method(this.controller, targetCallback).call(this.controller, node);\n this.log(\"targetAdded\", {\n target: name,\n node: node,\n trigger: trigger\n });\n }\n targetRemoved(name, node, trigger) {\n let targetCallback = `${name}TargetRemoved`;\n this.controller[targetCallback] && method(this.controller, targetCallback).call(this.controller, node);\n this.log(\"targetRemoved\", {\n target: name,\n node: node,\n trigger: trigger\n });\n }\n targetChanged(name, node, trigger) {\n let targetCallback = `${name}TargetChanged`;\n this.controller[targetCallback] && method(this.controller, targetCallback).call(this.controller, node);\n this.log(\"targetChanged\", {\n target: name,\n node: node,\n trigger: trigger\n });\n }\n targetsUsedByThisControllerFromNode(node) {\n if (node.nodeName == \"#text\" || node.nodeName == \"#comment\") {\n return [];\n }\n let nodeElement = node;\n return this.targetsUsedByThisController(nodeElement.getAttribute(this.scopedTargetSelector) || nodeElement.getAttribute(this.targetSelector));\n }\n targetsUsedByThisController(targetStr) {\n targetStr = targetStr || \"\";\n let targetsToCheck = this.stripIdentifierPrefix(targetStr).split(\" \");\n return this.targets.filter((n => targetsToCheck.indexOf(n) !== -1));\n }\n stripIdentifierPrefix(target) {\n return target.replace(new RegExp(this.identifierPrefix, \"g\"), \"\");\n }\n enhanceController() {\n const controllerDisconnect = this.controller.disconnect.bind(this.controller);\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useTargetMutation = (composableController, options = {}) => {\n const controller = composableController;\n const observer = new UseTargetMutation(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nclass TargetMutationComposableController extends Controller {}\n\nclass TargetMutationController extends TargetMutationComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useTargetMutation(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nclass ThrottleController extends Controller {}\n\nThrottleController.throttles = [];\n\nconst defaultWait = 200;\n\nfunction throttle(func, wait = defaultWait) {\n let inThrottle;\n return function() {\n const args = arguments;\n const context = this;\n if (!inThrottle) {\n inThrottle = true;\n func.apply(context, args);\n setTimeout((() => inThrottle = false), wait);\n }\n };\n}\n\nconst useThrottle = (composableController, options = {}) => {\n var _a;\n const controller = composableController;\n const constructor = controller.constructor;\n (_a = constructor.throttles) === null || _a === void 0 ? void 0 : _a.forEach((func => {\n if (typeof func === \"string\") {\n controller[func] = throttle(controller[func], options === null || options === void 0 ? void 0 : options.wait);\n }\n if (typeof func === \"object\") {\n const {name: name, wait: wait} = func;\n if (!name) return;\n controller[name] = throttle(controller[name], wait || (options === null || options === void 0 ? void 0 : options.wait));\n }\n }));\n};\n\nconst alpineNames = {\n enterFromClass: \"enter\",\n enterActiveClass: \"enterStart\",\n enterToClass: \"enterEnd\",\n leaveFromClass: \"leave\",\n leaveActiveClass: \"leaveStart\",\n leaveToClass: \"leaveEnd\"\n};\n\nconst defaultOptions = {\n transitioned: false,\n hiddenClass: \"hidden\",\n preserveOriginalClass: true,\n removeToClasses: true\n};\n\nconst useTransition = (composableController, options = {}) => {\n var _a, _b, _c;\n const controller = composableController;\n const targetName = controller.element.dataset.transitionTarget;\n let targetFromAttribute;\n if (targetName) {\n targetFromAttribute = controller[`${targetName}Target`];\n }\n const targetElement = (options === null || options === void 0 ? void 0 : options.element) || targetFromAttribute || controller.element;\n if (!(targetElement instanceof HTMLElement || targetElement instanceof SVGElement)) return;\n const dataset = targetElement.dataset;\n const leaveAfter = parseInt(dataset.leaveAfter || \"\") || options.leaveAfter || 0;\n const {transitioned: transitioned, hiddenClass: hiddenClass, preserveOriginalClass: preserveOriginalClass, removeToClasses: removeToClasses} = Object.assign({}, defaultOptions, options);\n const controllerEnter = (_a = controller.enter) === null || _a === void 0 ? void 0 : _a.bind(controller);\n const controllerLeave = (_b = controller.leave) === null || _b === void 0 ? void 0 : _b.bind(controller);\n const controllerToggleTransition = (_c = controller.toggleTransition) === null || _c === void 0 ? void 0 : _c.bind(controller);\n async function enter(event) {\n if (controller.transitioned) return;\n controller.transitioned = true;\n controllerEnter && controllerEnter(event);\n const enterFromClasses = getAttribute(\"enterFrom\", options, dataset);\n const enterActiveClasses = getAttribute(\"enterActive\", options, dataset);\n const enterToClasses = getAttribute(\"enterTo\", options, dataset);\n const leaveToClasses = getAttribute(\"leaveTo\", options, dataset);\n if (!!hiddenClass) {\n targetElement.classList.remove(hiddenClass);\n }\n if (!removeToClasses) {\n removeClasses(targetElement, leaveToClasses);\n }\n await transition(targetElement, enterFromClasses, enterActiveClasses, enterToClasses, hiddenClass, preserveOriginalClass, removeToClasses);\n if (leaveAfter > 0) {\n setTimeout((() => {\n leave(event);\n }), leaveAfter);\n }\n }\n async function leave(event) {\n if (!controller.transitioned) return;\n controller.transitioned = false;\n controllerLeave && controllerLeave(event);\n const leaveFromClasses = getAttribute(\"leaveFrom\", options, dataset);\n const leaveActiveClasses = getAttribute(\"leaveActive\", options, dataset);\n const leaveToClasses = getAttribute(\"leaveTo\", options, dataset);\n const enterToClasses = getAttribute(\"enterTo\", options, dataset);\n if (!removeToClasses) {\n removeClasses(targetElement, enterToClasses);\n }\n await transition(targetElement, leaveFromClasses, leaveActiveClasses, leaveToClasses, hiddenClass, preserveOriginalClass, removeToClasses);\n if (!!hiddenClass) {\n targetElement.classList.add(hiddenClass);\n }\n }\n function toggleTransition(event) {\n controllerToggleTransition && controllerToggleTransition(event);\n if (controller.transitioned) {\n leave();\n } else {\n enter();\n }\n }\n async function transition(element, initialClasses, activeClasses, endClasses, hiddenClass, preserveOriginalClass, removeEndClasses) {\n const stashedClasses = [];\n if (preserveOriginalClass) {\n initialClasses.forEach((cls => element.classList.contains(cls) && cls !== hiddenClass && stashedClasses.push(cls)));\n activeClasses.forEach((cls => element.classList.contains(cls) && cls !== hiddenClass && stashedClasses.push(cls)));\n endClasses.forEach((cls => element.classList.contains(cls) && cls !== hiddenClass && stashedClasses.push(cls)));\n }\n addClasses(element, initialClasses);\n removeClasses(element, stashedClasses);\n addClasses(element, activeClasses);\n await nextAnimationFrame();\n removeClasses(element, initialClasses);\n addClasses(element, endClasses);\n await afterTransition(element);\n removeClasses(element, activeClasses);\n if (removeEndClasses) {\n removeClasses(element, endClasses);\n }\n addClasses(element, stashedClasses);\n }\n function initialState() {\n controller.transitioned = transitioned;\n if (transitioned) {\n if (!!hiddenClass) {\n targetElement.classList.remove(hiddenClass);\n }\n enter();\n } else {\n if (!!hiddenClass) {\n targetElement.classList.add(hiddenClass);\n }\n leave();\n }\n }\n function addClasses(element, classes) {\n if (classes.length > 0) {\n element.classList.add(...classes);\n }\n }\n function removeClasses(element, classes) {\n if (classes.length > 0) {\n element.classList.remove(...classes);\n }\n }\n initialState();\n Object.assign(controller, {\n enter: enter,\n leave: leave,\n toggleTransition: toggleTransition\n });\n return [ enter, leave, toggleTransition ];\n};\n\nfunction getAttribute(name, options, dataset) {\n const datasetName = `transition${name[0].toUpperCase()}${name.substr(1)}`;\n const datasetAlpineName = alpineNames[name];\n const classes = options[name] || dataset[datasetName] || dataset[datasetAlpineName] || \" \";\n return isEmpty(classes) ? [] : classes.split(\" \");\n}\n\nasync function afterTransition(element) {\n return new Promise((resolve => {\n const duration = Number(getComputedStyle(element).transitionDuration.split(\",\")[0].replace(\"s\", \"\")) * 1e3;\n setTimeout((() => {\n resolve(duration);\n }), duration);\n }));\n}\n\nasync function nextAnimationFrame() {\n return new Promise((resolve => {\n requestAnimationFrame((() => {\n requestAnimationFrame(resolve);\n }));\n }));\n}\n\nfunction isEmpty(str) {\n return str.length === 0 || !str.trim();\n}\n\nclass TransitionComposableController extends Controller {\n constructor() {\n super(...arguments);\n this.transitioned = false;\n }\n}\n\nclass TransitionController extends TransitionComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n useTransition(this, this.options);\n }));\n }\n}\n\nclass UseVisibility extends StimulusUse {\n constructor(controller, options = {}) {\n super(controller, options);\n this.observe = () => {\n this.controller.isVisible = !document.hidden;\n document.addEventListener(\"visibilitychange\", this.handleVisibilityChange);\n this.handleVisibilityChange();\n };\n this.unobserve = () => {\n document.removeEventListener(\"visibilitychange\", this.handleVisibilityChange);\n };\n this.becomesInvisible = event => {\n this.controller.isVisible = false;\n this.call(\"invisible\", event);\n this.log(\"invisible\", {\n isVisible: false\n });\n this.dispatch(\"invisible\", {\n event: event,\n isVisible: false\n });\n };\n this.becomesVisible = event => {\n this.controller.isVisible = true;\n this.call(\"visible\", event);\n this.log(\"visible\", {\n isVisible: true\n });\n this.dispatch(\"visible\", {\n event: event,\n isVisible: true\n });\n };\n this.handleVisibilityChange = event => {\n if (document.hidden) {\n this.becomesInvisible(event);\n } else {\n this.becomesVisible(event);\n }\n };\n this.controller = controller;\n this.enhanceController();\n this.observe();\n }\n enhanceController() {\n const controllerDisconnect = this.controllerDisconnect;\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useVisibility = (composableController, options = {}) => {\n const controller = composableController;\n const observer = new UseVisibility(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nclass VisibilityComposableController extends Controller {\n constructor() {\n super(...arguments);\n this.isVisible = false;\n }\n}\n\nclass VisibilityController extends VisibilityComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useVisibility(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nclass UseWindowFocus extends StimulusUse {\n constructor(controller, options = {}) {\n super(controller, options);\n this.observe = () => {\n if (document.hasFocus()) {\n this.becomesFocused();\n } else {\n this.becomesUnfocused();\n }\n this.interval = setInterval((() => {\n this.handleWindowFocusChange();\n }), this.intervalDuration);\n };\n this.unobserve = () => {\n clearInterval(this.interval);\n };\n this.becomesUnfocused = event => {\n this.controller.hasFocus = false;\n this.call(\"unfocus\", event);\n this.log(\"unfocus\", {\n hasFocus: false\n });\n this.dispatch(\"unfocus\", {\n event: event,\n hasFocus: false\n });\n };\n this.becomesFocused = event => {\n this.controller.hasFocus = true;\n this.call(\"focus\", event);\n this.log(\"focus\", {\n hasFocus: true\n });\n this.dispatch(\"focus\", {\n event: event,\n hasFocus: true\n });\n };\n this.handleWindowFocusChange = event => {\n if (document.hasFocus() && !this.controller.hasFocus) {\n this.becomesFocused(event);\n } else if (!document.hasFocus() && this.controller.hasFocus) {\n this.becomesUnfocused(event);\n }\n };\n this.controller = controller;\n this.intervalDuration = options.interval || 200;\n this.enhanceController();\n this.observe();\n }\n enhanceController() {\n const controllerDisconnect = this.controllerDisconnect;\n const disconnect = () => {\n this.unobserve();\n controllerDisconnect();\n };\n Object.assign(this.controller, {\n disconnect: disconnect\n });\n }\n}\n\nconst useWindowFocus = (composableController, options = {}) => {\n const controller = composableController;\n const observer = new UseWindowFocus(controller, options);\n return [ observer.observe, observer.unobserve ];\n};\n\nclass WindowFocusComposableController extends Controller {\n constructor() {\n super(...arguments);\n this.hasFocus = false;\n }\n}\n\nclass WindowFocusController extends WindowFocusComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useWindowFocus(this, this.options);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nconst useWindowResize = composableController => {\n const controller = composableController;\n const callback = event => {\n const {innerWidth: innerWidth, innerHeight: innerHeight} = window;\n const payload = {\n height: innerHeight || Infinity,\n width: innerWidth || Infinity,\n event: event\n };\n method(controller, \"windowResize\").call(controller, payload);\n };\n const controllerDisconnect = controller.disconnect.bind(controller);\n const observe = () => {\n window.addEventListener(\"resize\", callback);\n callback();\n };\n const unobserve = () => {\n window.removeEventListener(\"resize\", callback);\n };\n Object.assign(controller, {\n disconnect() {\n unobserve();\n controllerDisconnect();\n }\n });\n observe();\n return [ observe, unobserve ];\n};\n\nclass WindowResizeComposableController extends Controller {}\n\nclass WindowResizeController extends WindowResizeComposableController {\n constructor(context) {\n super(context);\n requestAnimationFrame((() => {\n const [observe, unobserve] = useWindowResize(this);\n Object.assign(this, {\n observe: observe,\n unobserve: unobserve\n });\n }));\n }\n}\n\nfunction useHotkeys() {\n throw \"[stimulus-use] Notice: The import for `useHotkeys()` has been moved from `stimulus-use` to `stimulus-use/hotkeys`. \\nPlease change the import accordingly and add `hotkey-js` as a dependency to your project. \\n\\nFor more information see: https://stimulus-use.github.io/stimulus-use/#/use-hotkeys?id=importing-the-behavior\";\n}\n\nexport { ApplicationController, ClickOutsideController, HoverController, IdleController, IntersectionController, LazyLoadController, MutationController, ResizeController, TargetMutationController, TransitionController, UseHover, UseMutation, UseTargetMutation, UseVisibility, UseWindowFocus, VisibilityController, WindowFocusController, WindowResizeController, debounce, useApplication, useClickOutside, useDebounce, useDispatch, useHotkeys, useHover, useIdle, useIntersection, useLazyLoad, useMatchMedia, useMemo, useMeta, useMutation, useResize, useTargetMutation, useThrottle, useTransition, useVisibility, useWindowFocus, useWindowResize };\n", "import { Controller } from \"@hotwired/stimulus\";\nimport { useTransition } from \"stimulus-use\";\nconst _Dropdown = class _Dropdown extends Controller {\n connect() {\n useTransition(this, {\n element: this.menuTarget\n });\n }\n toggle() {\n this.toggleTransition();\n }\n hide(event) {\n !this.element.contains(event.target) && !this.menuTarget.classList.contains(\"hidden\") && this.leave();\n }\n};\n_Dropdown.targets = [\"menu\"];\nlet Dropdown = _Dropdown;\nexport {\n Dropdown as default\n};\n", "window.BeerMenus = window.BeerMenus || {};\nwindow.BeerMenus.controllers = window.BeerMenus.controllers || {};\n", "/**\n * @typedef { import(\"@amplitude/analytics-types\").BrowserClient } BrowserClient\n * @typedef { typeof import(\"@amplitude/analytics-browser\").Identify } Identify\n */\n\nBeerMenus.Analytics = class Analytics extends HTMLElement {\n /**\n * @type {BrowserClient}\n * @private\n */\n static _BrowserClient = null\n\n /**\n * @type {Identify}\n * @private\n */\n static _UserIdentify = null\n\n /**\n * @type {Array}\n * @private\n */\n static _loadPromises = []\n\n /**\n * Return a promise that will resolve when Amplitude is loaded\n * \n * @returns {Promise}\n */\n static get clientLoading() {\n if (this._BrowserClient) return Promise.resolve()\n\n return new Promise(resolve => this._loadPromises.push(resolve))\n }\n\n /**\n * Load in the Amplitude client\n * (requires `amplitude-key` meta tag to be added to ``)\n */\n static async importAmplitude() {\n if (this._BrowserClient || this._loadPromises.length > 0) return\n\n const { createInstance, Identify } = await import(\"@amplitude/analytics-browser\")\n\n const client = createInstance()\n const amplitudeKey = document.head.querySelector(\"meta[name='amplitude-key']\").content\n client.init(amplitudeKey)\n this._BrowserClient = client\n this._UserIdentify = Identify\n\n this._loadPromises.forEach(promise => promise())\n this._loadPromises = []\n }\n\n /**\n * Provides an instance of the Amplitude client, loading it if necessary\n * \n * @returns {BrowserClient}\n */\n static async client() {\n if (!this._BrowserClient) {\n this.importAmplitude()\n await this.clientLoading\n }\n\n return this._BrowserClient\n }\n\n /**\n * Send tracking information to Amplitude\n * \n * @param name {string}\n * @param options {Record}\n */\n static async track(name, options) {\n const client = await this.client()\n client.track(name, options)\n }\n\n /**\n * Identify the current user with properties\n * \n * @param options {Record} \n */\n static async identify(options) {\n const client = await this.client()\n client.setUserId(options.id)\n const identity = new this._UserIdentify()\n Object.entries(options).forEach(([key, value]) => {\n if (key != \"id\") {\n identity.set(key, value)\n }\n })\n client.identify(identity)\n }\n\n connectedCallback() {\n let options\n if (this.hasAttribute(\"options\")) options = JSON.parse(this.getAttribute(\"options\"))\n\n if (this.hasAttribute(\"track\")) {\n this.constructor.track(this.getAttribute(\"track\"), options)\n } else if (this.hasAttribute(\"identify\")) {\n this.constructor.identify(options)\n }\n }\n}\n\ncustomElements.define(\"bmu-analytics\", BeerMenus.Analytics)\n"], "mappings": "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", "names": ["accordion_controller_exports", "__export", "accordion_controller_default", "init_accordion_controller", "__esmMin", "init_stimulus", "Controller", "event", "index", "section", "active", "accordion", "el", "ui", "expandedIndex", "collapsedIndex", "header", "scrollTop", "offset", "__publicField", "accordion2_controller_exports", "__export", "accordion2_controller_default", "init_accordion2_controller", "__esmMin", "init_stimulus", "Controller", "event", "details", "admin_beer_controller_exports", "__export", "admin_beer_controller_default", "init_admin_beer_controller", "__esmMin", "init_stimulus", "Controller", "event", "type", "select", "disabled", "target", "producerIDInput", "data", "status", "xhr", "html", "duplicateIDsJSON", "id", "form", "inputs", "i", "__publicField", "admin_merge_controller_exports", "__export", "admin_merge_controller_default", "init_admin_merge_controller", "__esmMin", "init_stimulus", "Controller", "event", "keeper", "__publicField", "init_AlgoliaInsightsHit", "__esmMin", "init_AutocompleteInsightsApi", "__esmMin", "init_EventParams", "__esmMin", "init_InsightsClient", "__esmMin", "init_types", "__esmMin", "init_AlgoliaInsightsHit", "init_AutocompleteInsightsApi", "init_EventParams", "init_InsightsClient", "createRef", "initialValue", "init_createRef", "__esmMin", "debounce", "fn", "time", "timerId", "_len", "args", "_key", "init_debounce", "__esmMin", "_slicedToArray", "arr", "i", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_i", "_s", "_e", "_x", "_r", "_arr", "_n", "_d", "err", "decycle", "obj", "seen", "newSeen", "init_decycle", "__esmMin", "flatten", "values", "a", "b", "init_flatten", "__esmMin", "generateAutocompleteId", "autocompleteId", "init_generateAutocompleteId", "__esmMin", "getAttributeValueByPath", "record", "path", "current", "key", "init_getAttributeValueByPath", "__esmMin", "getItemsCount", "state", "sum", "collection", "init_getItemsCount", "__esmMin", "init_invariant", "__esmMin", "isPrimitive", "obj", "isEqual", "first", "second", "_i", "_Object$keys", "key", "init_isEqual", "__esmMin", "init_MaybePromise", "__esmMin", "noop", "init_noop", "__esmMin", "safelyRunOnBrowser", "callback", "init_safelyRunOnBrowser", "__esmMin", "init_SearchResponse", "__esmMin", "init_UserAgent", "__esmMin", "version", "init_version", "__esmMin", "userAgents", "init_userAgents", "__esmMin", "init_version", "version", "init_warn", "__esmMin", "init_AutocompleteClassNames", "__esmMin", "init_AutocompleteCollection", "__esmMin", "init_AutocompleteComponents", "__esmMin", "init_AutocompleteOptions", "__esmMin", "init_AutocompletePlugin", "__esmMin", "init_AutocompletePropGetters", "__esmMin", "init_AutocompleteRender", "__esmMin", "init_AutocompleteRenderer", "__esmMin", "init_AutocompleteSource", "__esmMin", "init_AutocompleteState", "__esmMin", "init_AutocompleteTranslations", "__esmMin", "init_HighlightHitParams", "__esmMin", "init_js", "__esmMin", "init_AutocompleteClassNames", "init_AutocompleteCollection", "init_AutocompleteComponents", "init_AutocompleteOptions", "init_AutocompletePlugin", "init_AutocompletePropGetters", "init_AutocompleteRender", "init_AutocompleteRenderer", "init_AutocompleteSource", "init_AutocompleteState", "init_AutocompleteTranslations", "init_HighlightHitParams", "init_esm", "__esmMin", "init_createRef", "init_debounce", "init_decycle", "init_flatten", "init_generateAutocompleteId", "init_getAttributeValueByPath", "init_getItemsCount", "init_invariant", "init_isEqual", "init_MaybePromise", "init_noop", "init_safelyRunOnBrowser", "init_SearchResponse", "init_UserAgent", "init_userAgents", "init_version", "init_warn", "init_js", "createClickedEvent", "_ref", "item", "_ref$items", "items", "x", "init_createClickedEvent", "__esmMin", "_slicedToArray", "arr", "i", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_i", "_s", "_e", "_x", "_r", "_arr", "_n", "_d", "err", "isModernInsightsClient", "client", "_split$map", "_split$map2", "major", "minor", "v3", "v2_4", "v1_10", "init_isModernInsightsClient", "__esmMin", "_typeof", "obj", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "_objectWithoutProperties", "source", "excluded", "target", "_objectWithoutPropertiesLoose", "key", "sourceSymbolKeys", "sourceKeys", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "chunk", "item", "chunkSize", "chunks", "mapToInsightsParamsApi", "params", "_ref", "items", "param", "_excluded", "_ref2", "objectID", "createSearchInsightsApi", "searchInsights", "canSendHeaders", "isModernInsightsClient", "sendToInsights", "method", "payloads", "_items$0$__autocomple", "appId", "apiKey", "headers", "authenticatedUserToken", "userToken", "_len", "_key", "_len2", "_key2", "_len3", "_key3", "_len4", "_key4", "_len5", "_key5", "_len6", "_key6", "_len7", "_key7", "acc", "_ref3", "_excluded2", "_ref4", "payload", "_ref5", "_len8", "_key8", "init_createSearchInsightsApi", "__esmMin", "init_isModernInsightsClient", "createViewedEvents", "_ref", "items", "itemsByIndexName", "acc", "current", "_acc$current$__autoco", "indexName", "init_createViewedEvents", "__esmMin", "isAlgoliaInsightsHit", "hit", "init_isAlgoliaInsightsHit", "__esmMin", "_typeof", "obj", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createAlgoliaInsightsPlugin", "options", "_getOptions", "getOptions", "providedInsightsClient", "insightsInitParams", "onItemsChange", "onSelectEvent", "onActiveEvent", "__autocomplete_clickAnalytics", "insightsClient", "safelyRunOnBrowser", "_ref2", "window", "pointer", "_len", "args", "_key", "ALGOLIA_INSIGHTS_VERSION", "loadInsights", "insights", "createSearchInsightsApi", "previousItems", "createRef", "debouncedOnStateChange", "debounce", "_ref3", "state", "items", "acc", "current", "isAlgoliaInsightsHit", "isEqual", "x", "sendViewedObjectIDs", "_ref4", "setContext", "onSelect", "onActive", "setInsightsContext", "userToken", "normalizeUserToken", "_error", "_ref5", "item", "event", "createClickedEvent", "_ref6", "_ref7", "getAlgoliaSources", "_context$algoliaInsig", "algoliaSourceBase", "context", "_ref8", "insightsEvents", "_ref9", "noop", "environment", "errorMessage", "script", "ALGOLIA_INSIGHTS_SRC", "cause", "VIEW_EVENT_DELAY", "init_createAlgoliaInsightsPlugin", "__esmMin", "init_esm", "init_createClickedEvent", "init_createSearchInsightsApi", "init_createViewedEvents", "init_isAlgoliaInsightsHit", "_ref", "createViewedEvents", "init_esm", "__esmMin", "init_types", "init_createAlgoliaInsightsPlugin", "createInternalCancelablePromise", "promise", "initialState", "state", "onfulfilled", "onrejected", "createCallback", "onfinally", "callbacks", "callback", "createCancelablePromise", "executor", "resolve", "reject", "cancelable", "onResult", "fallback", "arg", "init_createCancelablePromise", "__esmMin", "value", "reason", "createCancelablePromiseList", "list", "cancelablePromise", "item", "promise", "timeout", "_hasWaitPromiseResolved", "_waitPromise", "resolve", "init_createCancelablePromiseList", "__esmMin", "createConcurrentSafePromise", "basePromiseId", "latestResolvedId", "latestResolvedValue", "promise", "currentPromiseId", "x", "init_createConcurrentSafePromise", "__esmMin", "getNextActiveItemId", "moveAmount", "baseIndex", "itemCount", "defaultActiveItemId", "numericIndex", "init_getNextActiveItemId", "__esmMin", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "obj", "value", "_toPropertyKey", "arg", "_toPrimitive", "_typeof", "input", "hint", "prim", "res", "getNormalizedSources", "getSources", "params", "seenSourceIds", "sources", "maybeSource", "defaultSource", "_ref", "state", "_ref2", "setIsOpen", "noop", "normalizedSource", "init_getNormalizedSources", "__esmMin", "init_esm", "_createForOfIteratorHelper", "o", "allowArrayLike", "it", "_unsupportedIterableToArray", "i", "F", "_e", "normalCompletion", "didErr", "err", "step", "_e2", "minLen", "_arrayLikeToArray", "n", "arr", "len", "arr2", "getPluginSubmitPromise", "init_getPluginSubmitPromise", "__esmMin", "plugins", "pendingRequests", "waitUntilComplete", "timeouts", "_iterator", "_step", "_plugin$__autocomplet", "_plugin$__autocomplet2", "_plugin$__autocomplet3", "plugin", "value", "getCollectionFromActiveItemId", "state", "accumulatedCollectionsCount", "collections", "acc", "collectionsCount", "index", "previousValue", "nextValue", "collectionIndex", "current", "getRelativeActiveItemId", "_ref", "collection", "isOffsetFound", "counter", "previousItemsOffset", "currentCollection", "getActiveItem", "item", "source", "itemInputValue", "itemUrl", "init_getActiveItem", "__esmMin", "getAutocompleteElementId", "autocompleteInstanceId", "elementId", "source", "init_getAutocompleteElementId", "__esmMin", "isOrContainsNode", "parent", "child", "init_isOrContainsNode", "__esmMin", "isSamsung", "userAgent", "regex", "init_isSamsung", "__esmMin", "mapToAlgoliaResponse", "rawResults", "result", "_facetHits", "facetHit", "init_mapToAlgoliaResponse", "__esmMin", "getNativeEvent", "event", "init_getNativeEvent", "__esmMin", "init_utils", "__esmMin", "init_createCancelablePromise", "init_createCancelablePromiseList", "init_createConcurrentSafePromise", "init_getNextActiveItemId", "init_getNormalizedSources", "init_getPluginSubmitPromise", "init_getActiveItem", "init_getAutocompleteElementId", "init_isOrContainsNode", "init_isSamsung", "init_mapToAlgoliaResponse", "init_getNativeEvent", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createStore", "reducer", "props", "onStoreStateChange", "state", "action", "payload", "prevState", "createCancelablePromiseList", "init_createStore", "__esmMin", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "getAutocompleteSetters", "_ref", "store", "setActiveItemId", "setQuery", "setCollections", "rawValue", "baseItemId", "collection", "flatten", "item", "setIsOpen", "setStatus", "setContext", "init_getAutocompleteSetters", "__esmMin", "init_esm", "_typeof", "obj", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "getDefaultProps", "props", "pluginSubscribers", "_props$id", "environment", "plugins", "_ref", "state", "getItemsCount", "_ref2", "sources", "generateAutocompleteId", "params", "_props$onStateChange", "x", "_x$onStateChange", "_props$onSubmit", "_x$onSubmit", "_props$onReset", "_x$onReset", "plugin", "getSources", "getNormalizedSources", "nested", "flatten", "_x$onSelect", "_x$onActive", "_x$onResolve", "_ref3", "itemUrl", "_ref4", "windowReference", "_ref5", "init_getDefaultProps", "__esmMin", "init_esm", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "reshape", "_ref", "collections", "props", "state", "originalSourcesBySourceId", "acc", "collection", "flatten", "_props$plugins$reduce", "plugin", "sourcesBySourceId", "reshapeSources", "init_reshape", "__esmMin", "init_esm", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "arr2", "isDescription", "item", "isRequesterDescription", "description", "preResolve", "itemsOrDescription", "sourceId", "state", "contextParameters", "_state$context$key", "query", "resolve", "items", "packed", "acc", "current", "searchClient", "execute", "requesterId", "requests", "container", "_container$items", "request", "values", "maybeDescription", "_ref", "responses", "flatten", "postResolve", "sources", "store", "matches", "response", "results", "_ref2", "transform", "mapToAlgoliaResponse", "init_resolve", "__esmMin", "init_esm", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "onInput", "_ref", "event", "_ref$nextState", "nextState", "props", "query", "refresh", "store", "setters", "_excluded", "lastStalledId", "setCollections", "setIsOpen", "setQuery", "setActiveItemId", "setStatus", "setContext", "_nextState$isOpen", "collections", "collection", "_request", "cancelable", "runConcurrentSafePromise", "request", "sources", "itemsOrDescription", "preResolve", "resolve", "responses", "__automaticInsights", "_ref2", "items", "isSearchResponseWithAutomaticInsightsFlag", "_store$getState$conte", "postResolve", "reshape", "_nextState$isOpen2", "isPanelOpen", "highlightedItem", "getActiveItem", "item", "itemInputValue", "itemUrl", "init_onInput", "__esmMin", "init_reshape", "init_resolve", "init_utils", "createConcurrentSafePromise", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "onKeyDown", "_ref", "event", "props", "refresh", "store", "setters", "_excluded", "triggerScrollIntoView", "highlightedItem", "getActiveItem", "nodeItem", "getAutocompleteElementId", "triggerOnActive", "item", "itemInputValue", "itemUrl", "onInput", "collection", "waitForSubmit", "getPluginSubmitPromise", "_ref2", "init_onKeyDown", "__esmMin", "init_onInput", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "getPropGetters", "_ref", "props", "refresh", "store", "setters", "_excluded", "getEnvironmentProps", "providedProps", "inputElement", "formElement", "panelElement", "rest", "_excluded2", "onMouseDownOrTouchStart", "event", "isAutocompleteInteraction", "isTargetWithinAutocomplete", "contextNode", "isOrContainsNode", "getRootProps", "_ref2", "getAutocompleteElementId", "getFormProps", "_excluded3", "handleSubmit", "_providedProps$inputE", "waitForSubmit", "getPluginSubmitPromise", "_providedProps$inputE2", "getInputProps", "_props$environment$na", "onFocus", "onInput", "_ref3", "_ref3$maxLength", "maxLength", "_excluded4", "activeItem", "getActiveItem", "userAgent", "shouldFallbackKeyHint", "isSamsung", "enterKeyHint", "collection", "_ref4", "getNativeEvent", "onKeyDown", "noop", "getLabelProps", "getListProps", "_ref5", "_excluded5", "getPanelProps", "getItemProps", "item", "_excluded6", "_item", "itemInputValue", "itemUrl", "_source", "runPreCommand", "init_getPropGetters", "__esmMin", "init_esm", "init_onInput", "init_onKeyDown", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "getMetadata", "_ref", "_", "_options$__autocomple", "_options$__autocomple2", "_options$__autocomple3", "plugins", "options", "optionsKey", "extraOptions", "plugin", "userAgents", "injectMetadata", "_ref3", "_environment$navigato", "_environment$navigato2", "metadata", "environment", "isMetadataEnabled", "metadataContainer", "headRef", "init_metadata", "__esmMin", "init_esm", "getCompletion", "_ref", "_getActiveItem", "state", "getActiveItem", "init_getCompletion", "__esmMin", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "stateReducer", "init_stateReducer", "__esmMin", "init_esm", "init_getCompletion", "init_utils", "state", "action", "nextState", "getNextActiveItemId", "getItemsCount", "getCompletion", "_nextState", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createAutocomplete", "options", "subscribers", "props", "getDefaultProps", "store", "createStore", "stateReducer", "onStoreStateChange", "setters", "getAutocompleteSetters", "propGetters", "getPropGetters", "refresh", "_ref", "_state$context", "_state$context$algoli", "prevState", "state", "isAlgoliaInsightsPluginEnabled", "plugin", "createAlgoliaInsightsPlugin", "subscribePlugins", "onInput", "plugins", "_plugin$subscribe", "fn", "insightsParams", "injectMetadata", "getMetadata", "init_createAutocomplete", "__esmMin", "init_esm", "init_createStore", "init_getAutocompleteSetters", "init_getDefaultProps", "init_getPropGetters", "init_metadata", "init_onInput", "init_stateReducer", "init_AutocompleteApi", "__esmMin", "init_AutocompleteCollection", "__esmMin", "init_AutocompleteContext", "__esmMin", "init_AutocompleteEnvironment", "__esmMin", "init_AutocompleteOptions", "__esmMin", "init_AutocompleteSource", "__esmMin", "init_AutocompletePropGetters", "__esmMin", "init_AutocompletePlugin", "__esmMin", "init_AutocompleteReshape", "__esmMin", "init_AutocompleteSetters", "__esmMin", "init_AutocompleteState", "__esmMin", "init_core", "__esmMin", "init_AutocompleteApi", "init_AutocompleteCollection", "init_AutocompleteContext", "init_AutocompleteEnvironment", "init_AutocompleteOptions", "init_AutocompleteSource", "init_AutocompletePropGetters", "init_AutocompletePlugin", "init_AutocompleteReshape", "init_AutocompleteSetters", "init_AutocompleteState", "init_AutocompleteStore", "__esmMin", "init_AutocompleteSubscribers", "__esmMin", "init_types", "__esmMin", "init_core", "init_AutocompleteStore", "init_AutocompleteSubscribers", "init_esm", "__esmMin", "init_createAutocomplete", "init_getDefaultProps", "init_types", "htm_module_default", "s", "r", "t", "n", "e", "u", "h", "a", "l", "init_htm_module", "__esmMin", "p", "ClearIcon", "init_ClearIcon", "__esmMin", "_ref", "environment", "element", "path", "getHTMLElement", "environment", "value", "element", "init_getHTMLElement", "__esmMin", "mergeClassNames", "_len", "values", "_key", "acc", "current", "key", "accValue", "currentValue", "init_mergeClassNames", "__esmMin", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "_typeof", "obj", "mergeDeep", "_len", "values", "_key", "acc", "current", "key", "accValue", "currentValue", "isPlainObject", "init_mergeDeep", "__esmMin", "value", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_slicedToArray", "arr", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "o", "minLen", "_arrayLikeToArray", "n", "len", "arr2", "_i", "_s", "_e", "_x", "_r", "_arr", "_n", "_d", "err", "pickBy", "predicate", "acc", "_ref", "_ref2", "init_pickBy", "__esmMin", "setStyle", "style", "key", "value", "eventProxy", "event", "setProperty", "dom", "name", "useCapture", "nameLower", "oldValue", "TOUCH_EVENTS_ALIASES", "getNormalizedName", "setProperties", "props", "setPropertiesWithoutEvents", "init_setProperties", "__esmMin", "init_utils", "__esmMin", "init_getHTMLElement", "init_mergeClassNames", "init_mergeDeep", "init_pickBy", "init_setProperties", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "_objectWithoutProperties", "source", "excluded", "target", "_objectWithoutPropertiesLoose", "key", "sourceSymbolKeys", "sourceKeys", "getCreateDomElement", "environment", "tagName", "_ref", "_ref$children", "children", "props", "_excluded", "element", "setProperties", "init_getCreateDomElement", "__esmMin", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "_excluded", "Input", "init_Input", "__esmMin", "init_getCreateDomElement", "init_utils", "_ref", "autocompleteScopeApi", "environment", "classNames", "getInputProps", "getInputPropsCore", "isDetached", "state", "props", "createDomElement", "getCreateDomElement", "element", "inputProps", "setProperties", "event", "LoadingIcon", "init_LoadingIcon", "__esmMin", "_ref", "environment", "element", "SearchIcon", "init_SearchIcon", "__esmMin", "_ref", "environment", "element", "path", "init_elements", "__esmMin", "init_ClearIcon", "init_Input", "init_LoadingIcon", "init_SearchIcon", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createAutocompleteDom", "_ref", "autocomplete", "autocompleteScopeApi", "classNames", "environment", "isDetached", "_ref$placeholder", "placeholder", "propGetters", "setIsModalOpen", "state", "translations", "createDomElement", "getCreateDomElement", "rootProps", "root", "detachedContainer", "event", "detachedOverlay", "labelProps", "submitButton", "SearchIcon", "label", "clearButton", "ClearIcon", "loadingIndicator", "LoadingIcon", "Input", "inputWrapperPrefix", "inputWrapperSuffix", "inputWrapper", "formProps", "form", "panelProps", "panel", "detachedSearchButtonQuery", "detachedSearchButtonPlaceholder", "detachedSearchButtonIcon", "detachedSearchButton", "detachedCancelButton", "detachedFormContainer", "init_createAutocompleteDom", "__esmMin", "init_elements", "init_getCreateDomElement", "createEffectWrapper", "effects", "cleanups", "runEffect", "fn", "effectCleanup", "currentCleanups", "cleanup", "currentEffects", "effect", "init_createEffectWrapper", "__esmMin", "createReactiveWrapper", "reactives", "value", "current", "reactive", "init_createReactiveWrapper", "__esmMin", "assign", "obj", "props", "i", "removeNode", "node", "parentNode", "removeChild", "createElement", "type", "children", "key", "ref", "normalizedProps", "arguments", "length", "slice", "call", "defaultProps", "undefined", "createVNode", "original", "vnode", "__k", "__", "__b", "__e", "__c", "constructor", "__v", "vnodeId", "__i", "__u", "options", "Fragment", "BaseComponent", "context", "this", "getDomSibling", "childIndex", "sibling", "updateParentDomPointers", "child", "base", "enqueueRender", "c", "__d", "rerenderQueue", "push", "process", "__r", "prevDebounce", "debounceRendering", "defer", "component", "newVNode", "oldVNode", "oldDom", "commitQueue", "refQueue", "l", "sort", "depthSort", "shift", "__P", "diff", "__n", "namespaceURI", "commitRoot", "diffChildren", "parentDom", "renderResult", "newParentVNode", "oldParentVNode", "globalContext", "namespace", "excessDomChildren", "isHydrating", "childVNode", "newDom", "firstChildDom", "result", "oldChildren", "EMPTY_ARR", "newChildrenLength", "constructNewChildrenArray", "EMPTY_OBJ", "applyRef", "insert", "nextSibling", "skewedIndex", "matchingIndex", "oldChildrenLength", "remainingOldChildren", "skew", "Array", "String", "isArray", "findMatchingIndex", "unmount", "parentVNode", "contains", "insertBefore", "nodeType", "x", "y", "setStyle", "style", "value", "setProperty", "IS_NON_DIMENSIONAL", "test", "dom", "name", "oldValue", "useCapture", "o", "cssText", "replace", "CAPTURE_REGEX", "toLowerCase", "_attached", "eventClock", "addEventListener", "eventProxyCapture", "eventProxy", "removeEventListener", "e", "removeAttribute", "setAttribute", "createEventProxy", "eventHandler", "_dispatched", "event", "tmp", "isNew", "oldProps", "oldState", "snapshot", "clearProcessingException", "newProps", "isClassComponent", "provider", "componentContext", "renderHook", "count", "newType", "outer", "prototype", "render", "contextType", "__E", "doRender", "sub", "state", "__h", "_sb", "__s", "getDerivedStateFromProps", "componentWillMount", "componentDidMount", "componentWillReceiveProps", "shouldComponentUpdate", "some", "componentWillUpdate", "componentDidUpdate", "getChildContext", "getSnapshotBeforeUpdate", "cloneNode", "then", "MODE_HYDRATE", "indexOf", "diffElementNodes", "diffed", "root", "cb", "map", "newHtml", "oldHtml", "newChildren", "inputValue", "checked", "localName", "document", "createTextNode", "createElementNS", "is", "__m", "data", "childNodes", "attributes", "__html", "innerHTML", "content", "hasRefUnmount", "current", "skipRemove", "r", "componentWillUnmount", "replaceNode", "documentElement", "firstChild", "isValidElement", "init_preact_module", "__esmMin", "error", "errorInfo", "ctor", "handled", "getDerivedStateFromError", "setState", "componentDidCatch", "update", "callback", "s", "forceUpdate", "Promise", "bind", "resolve", "setTimeout", "a", "b", "init_HighlightedHit", "__esmMin", "HIGHLIGHT_PRE_TAG", "HIGHLIGHT_POST_TAG", "init_constants", "__esmMin", "createAttributeSet", "initialValue", "value", "part", "lastPart", "parseAttribute", "_ref", "highlightedValue", "preTagParts", "HIGHLIGHT_PRE_TAG", "firstValue", "parts", "postTagParts", "HIGHLIGHT_POST_TAG", "init_parseAttribute", "__esmMin", "init_constants", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "parseAlgoliaHitHighlight", "_ref", "hit", "attribute", "path", "highlightedValue", "getAttributeValueByPath", "parseAttribute", "init_parseAlgoliaHitHighlight", "__esmMin", "init_esm", "init_parseAttribute", "unescape", "value", "regexHasEscapedHtml", "regexEscapedHtml", "character", "htmlEscapes", "isPartHighlighted", "parts", "i", "_parts", "_parts2", "current", "isNextHighlighted", "isPreviousHighlighted", "hasAlphanumeric", "init_isPartHighlighted", "__esmMin", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "reverseHighlightedParts", "parts", "part", "isPartHighlighted", "init_reverseHighlightedParts", "__esmMin", "init_isPartHighlighted", "parseAlgoliaHitReverseHighlight", "props", "reverseHighlightedParts", "parseAlgoliaHitHighlight", "init_parseAlgoliaHitReverseHighlight", "__esmMin", "init_parseAlgoliaHitHighlight", "init_reverseHighlightedParts", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "i", "arr2", "parseAlgoliaHitSnippet", "_ref", "hit", "attribute", "path", "highlightedValue", "getAttributeValueByPath", "parseAttribute", "init_parseAlgoliaHitSnippet", "__esmMin", "init_esm", "init_parseAttribute", "parseAlgoliaHitReverseSnippet", "props", "reverseHighlightedParts", "parseAlgoliaHitSnippet", "init_parseAlgoliaHitReverseSnippet", "__esmMin", "init_parseAlgoliaHitSnippet", "init_reverseHighlightedParts", "init_SnippetedHit", "__esmMin", "init_highlight", "__esmMin", "init_HighlightedHit", "init_parseAlgoliaHitHighlight", "init_parseAlgoliaHitReverseHighlight", "init_parseAlgoliaHitReverseSnippet", "init_parseAlgoliaHitSnippet", "init_SnippetedHit", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createRequester", "fetcher", "requesterId", "execute", "fetcherParams", "x", "responses", "response", "index", "_fetcherParams$reques", "sourceId", "transformResponse", "requesterParams", "requestParams", "init_createRequester", "__esmMin", "getAppIdAndApiKey", "searchClient", "transporter", "headers", "queryParameters", "APP_ID", "API_KEY", "appId", "apiKey", "init_getAppIdAndApiKey", "__esmMin", "init_utils", "__esmMin", "init_getAppIdAndApiKey", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "_toConsumableArray", "arr", "_arrayWithoutHoles", "_iterableToArray", "_unsupportedIterableToArray", "_nonIterableSpread", "o", "minLen", "_arrayLikeToArray", "n", "iter", "len", "arr2", "fetchAlgoliaResults", "_ref", "searchClient", "queries", "_ref$userAgents", "userAgents", "algoliaAgents", "_ref2", "segment", "version", "_getAppIdAndApiKey", "getAppIdAndApiKey", "appId", "apiKey", "searchParameters", "params", "headers", "_excluded", "HIGHLIGHT_PRE_TAG", "HIGHLIGHT_POST_TAG", "response", "result", "resultIndex", "_result$hits", "hit", "init_fetchAlgoliaResults", "__esmMin", "init_esm", "init_constants", "init_utils", "init_search", "__esmMin", "init_fetchAlgoliaResults", "init_getAlgoliaFacets", "__esmMin", "init_getAlgoliaResults", "__esmMin", "init_requester", "__esmMin", "init_createRequester", "init_getAlgoliaFacets", "init_getAlgoliaResults", "init_algoliasearch", "__esmMin", "init_createRequester", "__esmMin", "init_types", "__esmMin", "init_algoliasearch", "init_createRequester", "init_esm", "__esmMin", "init_highlight", "init_requester", "init_search", "init_types", "createHighlightComponent", "_ref", "createElement", "Fragment", "Highlight", "_ref2", "hit", "attribute", "_ref2$tagName", "tagName", "parseAlgoliaHitHighlight", "x", "index", "init_Highlight", "__esmMin", "init_esm", "createReverseHighlightComponent", "_ref", "createElement", "Fragment", "ReverseHighlight", "_ref2", "hit", "attribute", "_ref2$tagName", "tagName", "parseAlgoliaHitReverseHighlight", "x", "index", "init_ReverseHighlight", "__esmMin", "init_esm", "createReverseSnippetComponent", "_ref", "createElement", "Fragment", "ReverseSnippet", "_ref2", "hit", "attribute", "_ref2$tagName", "tagName", "parseAlgoliaHitReverseSnippet", "x", "index", "init_ReverseSnippet", "__esmMin", "init_esm", "createSnippetComponent", "_ref", "createElement", "Fragment", "Snippet", "_ref2", "hit", "attribute", "_ref2$tagName", "tagName", "parseAlgoliaHitSnippet", "x", "index", "init_Snippet", "__esmMin", "init_esm", "init_components", "__esmMin", "init_Highlight", "init_ReverseHighlight", "init_ReverseSnippet", "init_Snippet", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "_objectWithoutProperties", "excluded", "_objectWithoutPropertiesLoose", "sourceSymbolKeys", "sourceKeys", "getDefaultOptions", "options", "_core$id", "classNames", "container", "getEnvironmentProps", "getFormProps", "getInputProps", "getItemProps", "getLabelProps", "getListProps", "getPanelProps", "getRootProps", "panelContainer", "panelPlacement", "render", "renderNoResults", "renderer", "detachedMediaQuery", "components", "translations", "core", "_excluded", "environment", "containerElement", "getHTMLElement", "defaultedRenderer", "defaultRenderer", "defaultComponents", "createHighlightComponent", "createReverseHighlightComponent", "createReverseSnippetComponent", "createSnippetComponent", "defaultTranslations", "mergeClassNames", "defaultClassNames", "_ref2", "props", "_ref3", "_ref4", "_ref5", "_ref6", "_ref7", "_ref8", "_ref9", "defaultRender", "generateAutocompleteId", "init_getDefaultOptions", "__esmMin", "init_esm", "init_preact_module", "init_components", "init_utils", "_ref", "root", "children", "_", "k", "E", "getPanelPlacementStyle", "_ref", "panelPlacement", "container", "form", "environment", "containerRect", "scrollTop", "top", "formRect", "init_getPanelPlacementStyle", "__esmMin", "_typeof", "obj", "_extends", "target", "i", "source", "key", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "renderSearchBox", "_ref", "autocomplete", "autocompleteScopeApi", "dom", "propGetters", "state", "setPropertiesWithoutEvents", "setProperties", "renderPanel", "render", "_ref2", "classNames", "html", "panelContainer", "components", "renderer", "sections", "_ref3", "items", "_ref4", "sourceIndex", "item", "itemProps", "children", "elements", "acc", "current", "init_render", "__esmMin", "init_utils", "userAgents", "init_userAgents", "__esmMin", "init_esm", "version", "_typeof", "obj", "_objectWithoutProperties", "source", "excluded", "target", "_objectWithoutPropertiesLoose", "key", "sourceSymbolKeys", "sourceKeys", "i", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "autocomplete", "options", "_createEffectWrapper", "createEffectWrapper", "runEffect", "cleanupEffects", "runEffects", "_createReactiveWrappe", "createReactiveWrapper", "reactive", "runReactives", "hasNoResultsSourceTemplateRef", "createRef", "optionsRef", "onStateChangeRef", "props", "getDefaultOptions", "isDetached", "createAutocomplete", "params", "_onStateChangeRef$cur", "_props$value$core$onS", "_props$value$core", "collection", "_ref", "state", "hasItems", "getItemsCount", "hasNoResultsTemplate", "userAgents", "lastStateRef", "propGetters", "autocompleteScopeApi", "html", "htm_module_default", "dom", "createAutocompleteDom", "setIsModalOpen", "setPanelPosition", "setProperties", "getPanelPlacementStyle", "scheduleRender", "renderProps", "render", "renderSearchBox", "renderPanel", "environmentProps", "acc", "panelContainerElement", "panelElement", "containerElement", "debouncedRender", "debounce", "_ref2", "_ref3", "prevState", "scrollablePanels", "scrollablePanel", "onResize", "previousIsDetached", "update", "toggleModalClassname", "isActive", "onChange", "event", "isModalDetachedMql", "hasModernEventListener", "destroy", "instancesCount", "updatedOptions", "_props$value$renderer", "components", "rendererProps", "_excluded", "mergeDeep", "pickBy", "_ref4", "prevValue", "init_autocomplete", "__esmMin", "init_esm", "init_htm_module", "init_createAutocompleteDom", "init_createEffectWrapper", "init_createReactiveWrapper", "init_getDefaultOptions", "init_getPanelPlacementStyle", "init_render", "init_userAgents", "init_utils", "_typeof", "obj", "ownKeys", "object", "enumerableOnly", "keys", "symbols", "sym", "_objectSpread", "target", "i", "source", "key", "_defineProperty", "value", "_toPropertyKey", "arg", "_toPrimitive", "input", "hint", "prim", "res", "createAlgoliaRequester", "init_createAlgoliaRequester", "__esmMin", "init_esm", "init_userAgents", "createRequester", "params", "fetchAlgoliaResults", "userAgents", "init_getAlgoliaFacets", "__esmMin", "getAlgoliaResults", "init_getAlgoliaResults", "__esmMin", "init_createAlgoliaRequester", "createAlgoliaRequester", "response", "init_requesters", "__esmMin", "init_getAlgoliaFacets", "init_getAlgoliaResults", "init_AutocompleteApi", "__esmMin", "init_AutocompleteDom", "__esmMin", "init_types", "__esmMin", "init_js", "init_AutocompleteApi", "init_AutocompleteDom", "init_esm", "__esmMin", "init_autocomplete", "init_requesters", "init_types", "require_algoliasearch_lite_umd", "__commonJSMin", "exports", "module", "e", "t", "r", "n", "o", "a", "u", "i", "s", "c", "l", "f", "h", "m", "d", "p", "v", "g", "y", "b", "O", "P", "q", "j", "A", "S", "x", "w", "T", "N", "C", "E", "J", "k", "F", "I", "R", "D", "W", "H", "Q", "L", "algolia_autocomplete_controller_exports", "__export", "algolia_autocomplete_controller_default", "import_lite", "init_algolia_autocomplete_controller", "__esmMin", "init_stimulus", "init_esm", "Controller", "appId", "apiKey", "algoliasearch", "sources", "autocompleteOptions", "__spreadProps", "__spreadValues", "query", "autocomplete", "options", "searchClient", "item", "components", "html", "primaryAttribute", "setQuery", "setIsOpen", "refresh", "__publicField", "require_aria_autocomplete_min", "__commonJSMin", "exports", "module", "t", "e", "i", "s", "n", "r", "o", "l", "a", "c", "h", "u", "F", "D", "p", "d", "f", "v", "b", "y", "g", "A", "S", "w", "E", "x", "T", "O", "C", "I", "_", "L", "N", "P", "m", "k", "aria_autocomplete_controller_exports", "__export", "aria_autocomplete_controller_default", "import_aria_autocomplete_min", "init_aria_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "AriaAutocomplete", "itemData", "selectedItems", "__publicField", "auto_save_controller_exports", "__export", "auto_save_controller_default", "init_auto_save_controller", "__esmMin", "init_stimulus", "Controller", "event", "element", "data", "status", "xhr", "__publicField", "auto_textfield_height_controller_exports", "__export", "auto_textfield_height_controller_default", "init_auto_textfield_height_controller", "__esmMin", "init_stimulus", "Controller", "rows", "__publicField", "autocomplete_controller_exports", "__export", "autocomplete_controller_default", "init_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "obj", "hit", "event", "suggestion", "dataset", "context", "__publicField", "availability_promo_controller_exports", "__export", "availability_promo_controller_default", "init_availability_promo_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "beacon_controller_exports", "__export", "beacon_controller_default", "init_beacon_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "product_autocomplete_controller_exports", "__export", "product_autocomplete_controller_default", "init_product_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "event", "tab", "beer_autocomplete_controller_exports", "__export", "beer_autocomplete_controller_default", "init_beer_autocomplete_controller", "__esmMin", "init_product_autocomplete_controller", "product_autocomplete_controller_default", "libraries", "filter", "id", "name", "style_id", "abv", "data", "event", "jqXHR", "status", "error", "listener", "target", "revertTarget", "showMethod", "query", "callback", "isBeerIndex", "suggestions", "obj", "hit", "tab", "beerID", "fullDescription", "inputEvent", "val", "matchedSuggestion", "suggestion", "__publicField", "beer_info_controller_exports", "__export", "beer_info_controller_default", "init_beer_info_controller", "__esmMin", "init_stimulus", "Controller", "text", "el", "event", "modal", "textarea", "__publicField", "beer_suggestions_controller_exports", "__export", "beer_suggestions_controller_default", "init_beer_suggestions_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "query", "controller", "productType", "searchQuery", "result", "t", "event", "id", "name", "hit", "suggestion", "anchor", "meta", "hits", "__publicField", "beers_added_modal_controller_exports", "__export", "beers_added_modal_controller_default", "init_beers_added_modal_controller", "__esmMin", "init_stimulus", "Controller", "event", "block_modal_controller_exports", "__export", "block_modal_controller_default", "init_block_modal_controller", "__esmMin", "init_stimulus", "Controller", "isLoading", "isHidden", "section", "el", "profileId", "region", "position", "src", "partial", "iframe", "newContent", "event", "form", "res", "json", "formEl", "patchMethod", "err", "id", "url", "authenticityToken", "__publicField", "brewery_autocomplete_controller_exports", "__export", "brewery_autocomplete_controller_default", "init_brewery_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "producer", "id", "name", "eventOrShowMessage", "showMessage", "event", "data", "html", "query", "callback", "suggestions", "obj", "hit", "val", "matchedSuggestion", "suggestion", "__publicField", "brewery_multi_select_controller_exports", "__export", "brewery_multi_select_controller_default", "init_brewery_multi_select_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "input", "brewery", "option", "params", "success", "failure", "queryParams", "query", "data", "hit", "markup", "result", "__publicField", "bulk_move_controller_exports", "__export", "bulk_move_controller_default", "init_bulk_move_controller", "__esmMin", "init_stimulus", "Controller", "entries", "onScreen", "scrolledPast", "hide", "event", "servingIDs", "params", "html", "section", "checkbox", "__publicField", "calculator_controller_exports", "__export", "calculator_controller_default", "init_calculator_controller", "__esmMin", "init_stimulus", "Controller", "event", "output", "el", "index", "views", "roi", "__publicField", "calendly_controller_exports", "__export", "calendly_controller_default", "init_calendly_controller", "__esmMin", "init_stimulus", "Controller", "tag", "script", "charts_controller_exports", "__export", "charts_controller_default", "init_charts_controller", "__esmMin", "init_stimulus", "Controller", "checkbox_counter_controller_exports", "__export", "checkbox_counter_controller_default", "init_checkbox_counter_controller", "__esmMin", "init_stimulus", "Controller", "primaryCount", "cb", "secondaryCount", "__publicField", "checkbox_submit_controller_exports", "__export", "checkbox_submit_controller_default", "init_checkbox_submit_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "checkbox_toggle_controller_exports", "__export", "checkbox_toggle_controller_default", "init_checkbox_toggle_controller", "__esmMin", "init_stimulus", "Controller", "event", "target", "__publicField", "checklist_accordion_controller_exports", "__export", "checklist_accordion_controller_default", "init_checklist_accordion_controller", "__esmMin", "init_stimulus", "Controller", "event", "ui", "expandedIdentifier", "checklists_controller_exports", "__export", "checklists_controller_default", "init_checklists_controller", "__esmMin", "init_stimulus", "Controller", "visible", "__publicField", "choose_saved_card_controller_exports", "__export", "choose_saved_card_controller_default", "init_choose_saved_card_controller", "__esmMin", "init_stimulus", "Controller", "event", "target", "__publicField", "clipboard_controller_exports", "__export", "clipboard_controller_default", "init_clipboard_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "closeable_controller_exports", "__export", "closeable_controller_default", "init_closeable_controller", "__esmMin", "init_stimulus", "Controller", "animation", "codemirror_controller_exports", "__export", "codemirror_controller_default", "init_codemirror_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "collapsible_controller_exports", "__export", "collapsible_controller_default", "init_collapsible_controller", "__esmMin", "init_stimulus", "Controller", "event", "href", "hash", "element", "expanded", "data", "__publicField", "collapsible_simple_controller_exports", "__export", "collapsible_simple_controller_default", "init_collapsible_simple_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "condition_ids_controller_exports", "__export", "condition_ids_controller_default", "init_condition_ids_controller", "__esmMin", "init_stimulus", "Controller", "selectedItems", "target", "name", "index", "__publicField", "conditional_input_controller_exports", "__export", "conditional_input_controller_default", "init_conditional_input_controller", "__esmMin", "init_stimulus", "Controller", "event", "sourceID", "t", "__publicField", "custom_product_autocomplete_controller_exports", "__export", "custom_product_autocomplete_controller_default", "init_custom_product_autocomplete_controller", "__esmMin", "init_product_autocomplete_controller", "product_autocomplete_controller_default", "libraries", "bar", "product", "event", "data", "id", "query", "callback", "hit", "val", "suggestion", "__publicField", "date_input_controller_exports", "__export", "date_input_controller_default", "init_date_input_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "options", "__publicField", "digital_display_controller_exports", "__export", "digital_display_controller_default", "init_digital_display_controller", "__esmMin", "init_stimulus", "Controller", "ActionCable", "data", "ds_beer_autocomplete_controller_exports", "__export", "ds_beer_autocomplete_controller_default", "_ds_beer_autocomplete_controller_default", "init_ds_beer_autocomplete_controller", "__esmMin", "init_algolia_autocomplete_controller", "algolia_autocomplete_controller_default", "query", "searchClient", "searchParams", "__spreadValues", "results", "_a", "error", "item", "html", "params", "beerName", "setQuery", "setIsOpen", "frameId", "menuIndex", "sectionIndex", "itemIndex", "menuImportId", "itemId", "productType", "url", "frame", "product", "__publicField", "__spreadProps", "__superGet", "require_ev_emitter", "__commonJSMin", "exports", "module", "global", "factory", "EvEmitter", "proto", "eventName", "listener", "events", "listeners", "onceEvents", "onceListeners", "index", "args", "i", "isOnce", "require_get_size", "__commonJSMin", "exports", "module", "window", "factory", "getStyleSize", "value", "num", "isValid", "noop", "logError", "message", "measurements", "measurementsLength", "getZeroSize", "size", "i", "measurement", "getStyle", "elem", "style", "isSetup", "isBoxSizeOuter", "setup", "div", "body", "getSize", "isBorderBox", "paddingWidth", "paddingHeight", "marginWidth", "marginHeight", "borderWidth", "borderHeight", "isBorderBoxSizeOuter", "styleWidth", "styleHeight", "require_matches_selector", "__commonJSMin", "exports", "module", "window", "factory", "matchesMethod", "ElemProto", "prefixes", "prefix", "method", "elem", "selector", "require_utils", "__commonJSMin", "exports", "module", "window", "factory", "matchesSelector", "utils", "a", "b", "prop", "num", "div", "arraySlice", "obj", "isArrayLike", "ary", "index", "elem", "selector", "event", "method", "elems", "ffElems", "childElems", "i", "_class", "methodName", "threshold", "timeoutName", "timeout", "args", "_this", "callback", "readyState", "str", "match", "$1", "$2", "console", "WidgetClass", "namespace", "dashedNamespace", "dataAttr", "dataAttrElems", "jsDashElems", "dataOptionsAttr", "jQuery", "attr", "options", "error", "instance", "require_item", "__commonJSMin", "exports", "module", "window", "factory", "EvEmitter", "getSize", "isEmptyObj", "obj", "prop", "docElemStyle", "transitionProperty", "transformProperty", "transitionEndEvent", "vendorProperties", "Item", "element", "layout", "proto", "event", "method", "style", "elemStyle", "supportedProp", "isOriginLeft", "isOriginTop", "xValue", "yValue", "x", "y", "layoutSize", "xPadding", "xProperty", "xResetProperty", "yPadding", "yProperty", "yResetProperty", "isHorizontal", "curX", "curY", "didNotMove", "transX", "transY", "transitionStyle", "args", "_transition", "h", "toDashedAll", "str", "$1", "transitionProps", "duration", "dashedVendorProperties", "propertyName", "onTransitionEnd", "cleanStyle", "cleanTransitionStyle", "delay", "options", "transitionEndProperty", "styleProperty", "optionStyle", "require_outlayer", "__commonJSMin", "exports", "module", "window", "factory", "EvEmitter", "getSize", "utils", "Item", "console", "jQuery", "noop", "GUID", "instances", "Outlayer", "element", "options", "queryElement", "id", "isInitLayout", "proto", "opts", "option", "oldOption", "canBindResize", "elems", "itemElems", "items", "i", "elem", "item", "layoutInstant", "isInstant", "measurement", "size", "queue", "position", "obj", "stagger", "getMilliseconds", "x", "y", "isResizingContainer", "measure", "isWidth", "elemSize", "eventName", "_this", "onComplete", "count", "doneCount", "tick", "type", "event", "args", "emitArgs", "$event", "boundingRect", "thisRect", "offset", "hasSizes", "previousItems", "removeItems", "style", "namespace", "Layout", "subclass", "Parent", "SubClass", "msUnits", "time", "matches", "num", "unit", "mult", "require_masonry", "__commonJSMin", "exports", "module", "window", "factory", "Outlayer", "getSize", "Masonry", "proto", "i", "firstItem", "firstItemElem", "columnWidth", "containerWidth", "cols", "excess", "mathMethod", "isFitWidth", "container", "size", "item", "remainder", "colSpan", "colPosMethod", "colPosition", "position", "setHeight", "setMax", "colGroup", "minimumY", "groupCount", "col", "groupColYs", "isOver", "hasSize", "stamp", "stampSize", "offset", "isOriginLeft", "firstX", "lastX", "firstCol", "lastCol", "isOriginTop", "stampMaxY", "unusedCols", "previousWidth", "require_imagesloaded", "__commonJSMin", "exports", "module", "window", "factory", "EvEmitter", "$", "console", "extend", "a", "b", "prop", "arraySlice", "makeArray", "obj", "isArrayLike", "ImagesLoaded", "elem", "options", "onAlways", "queryElem", "nodeType", "elementNodeTypes", "childImgs", "i", "img", "children", "child", "style", "reURL", "matches", "url", "loadingImage", "LoadingImage", "background", "Background", "_this", "onProgress", "image", "message", "eventName", "jqMethod", "isComplete", "isLoaded", "event", "method", "element", "jQuery", "callback", "instance", "filter_templates_controller_exports", "__export", "filter_templates_controller_default", "init_filter_templates_controller", "__esmMin", "init_stimulus", "Controller", "Masonry", "imagesLoaded", "event", "activeThemes", "activeSettings", "colorSetting", "el", "i", "filterValues", "activeTheme", "r", "activeSetting", "activeColor", "__publicField", "fonts_controller_exports", "__export", "fonts_controller_default", "init_fonts_controller", "__esmMin", "init_stimulus", "Controller", "data", "container", "state", "event", "google_autocomplete_controller_exports", "__export", "google_autocomplete_controller_default", "init_google_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "event", "emptyDiv", "sessionToken", "e", "query", "callback", "options", "predictions", "status", "hit", "template", "info", "footer", "data", "request", "place", "__publicField", "hamburger_menu_controller_exports", "__export", "hamburger_menu_controller_default", "init_hamburger_menu_controller", "__esmMin", "init_stimulus", "Controller", "link", "__publicField", "Debouncer", "init_debouncer", "__esmMin", "fn", "frame", "params", "hiding_header_controller_exports", "__export", "hiding_header_controller_default", "init_hiding_header_controller", "__esmMin", "init_stimulus", "init_debouncer", "Controller", "Debouncer", "scrollTop", "honeybadger_controller_exports", "__export", "honeybadger_controller_default", "init_honeybadger_controller", "__esmMin", "init_stimulus", "Controller", "Honeybadger", "image_background_remover_controller_exports", "__export", "image_background_remover_controller_default", "init_image_background_remover_controller", "__esmMin", "init_stimulus", "Controller", "form", "res", "json", "iframe", "err", "load_styles_default", "css", "blob", "link", "init_load_styles", "__esmMin", "image_editor_controller_exports", "__export", "image_editor_controller_default", "init_image_editor_controller", "__esmMin", "init_stimulus", "init_load_styles", "Controller", "pintura", "pinturaStyles", "load_styles_default", "event", "__spreadProps", "__spreadValues", "locale", "result", "form", "res", "json", "iframe", "err", "__publicField", "location_autocomplete_controller_exports", "__export", "location_autocomplete_controller_default", "init_location_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "resolve", "element", "event", "data", "done", "response", "query", "callback", "error", "results", "result", "hit", "obj", "message", "__publicField", "masonry_grid_controller_exports", "__export", "masonry_grid_controller_default", "init_masonry_grid_controller", "__esmMin", "init_stimulus", "Controller", "Masonry", "imagesLoaded", "container", "__publicField", "menu_controller_exports", "__export", "menu_controller_default", "init_menu_controller", "__esmMin", "init_stimulus", "Controller", "html", "target", "__publicField", "menu_search_controller_exports", "__export", "menu_search_controller_default", "init_menu_search_controller", "__esmMin", "init_stimulus", "Controller", "promises", "algoliasearch", "filters", "id", "event", "offset", "suggestion", "query", "callback", "suggestions", "servings", "hit", "beerTemplate", "meta", "serving", "servingTemplate", "editButton", "e", "beerID", "__publicField", "menu_section_controller_exports", "__export", "menu_section_controller_default", "init_menu_section_controller", "__esmMin", "init_stimulus", "Controller", "event", "menu_sections_controller_exports", "__export", "menu_sections_controller_default", "init_menu_sections_controller", "__esmMin", "init_stimulus", "Controller", "event", "selectedOption", "servingType", "servingTypeInt", "sectionID", "servingTypes", "selectedMenuSectionID", "__publicField", "modular_controller_exports", "__export", "MAX_ANNUAL_PRICE", "MAX_ANNUAL_SAVINGS", "MAX_MONTHLY_PRICE", "modular_controller_default", "init_modular_controller", "__esmMin", "init_stimulus", "Controller", "event", "atAnnualMaxPrice", "checkbox", "planNames", "monthlyPlans", "annualPlans", "monthlyPrice", "annualPrice", "annualSavings", "selectedPlans", "plan", "shouldSelectMonthly", "shouldSelectAnnual", "showModal", "__publicField", "multi_select_controller_exports", "__export", "multi_select_controller_default", "init_multi_select_controller", "__esmMin", "init_stimulus", "Controller", "containerClass", "dropdownClass", "__publicField", "order_search_controller_exports", "__export", "order_search_controller_default", "init_order_search_controller", "__esmMin", "init_stimulus", "Controller", "event", "orders_controller_exports", "__export", "orders_controller_default", "init_orders_controller", "__esmMin", "init_stimulus", "Controller", "event", "url", "pickupId", "pickup_locations_controller_exports", "__export", "pickup_locations_controller_default", "init_pickup_locations_controller", "__esmMin", "init_stimulus", "Controller", "target", "index", "hide", "event", "showedALocation", "__publicField", "place_lead_controller_exports", "__export", "place_lead_controller_default", "init_place_lead_controller", "__esmMin", "init_stimulus", "Controller", "event", "qualified", "response", "price_calculator_controller_exports", "__export", "price_calculator_controller_default", "init_price_calculator_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "print_iframe_controller_exports", "__export", "print_iframe_controller_default", "init_print_iframe_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "print_menu_landing_page_controller_exports", "__export", "print_menu_landing_page_controller_default", "init_print_menu_landing_page_controller", "__esmMin", "init_stimulus", "Controller", "entries", "target", "position", "__publicField", "print_menus_controller_exports", "__export", "print_menus_controller_default", "init_print_menus_controller", "__esmMin", "init_stimulus", "Controller", "t", "event", "checked", "element", "data", "status", "xhr", "__publicField", "print_preview_controller_exports", "__export", "print_preview_controller_default", "init_print_preview_controller", "__esmMin", "init_stimulus", "Controller", "html", "event", "target", "embed", "__publicField", "product_type_controller_exports", "__export", "product_type_controller_default", "init_product_type_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "property_segments_controller_exports", "__export", "property_segments_controller_default", "init_property_segments_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "purchase_limit_controller_exports", "__export", "purchase_limit_controller_default", "init_purchase_limit_controller", "__esmMin", "init_stimulus", "Controller", "hide", "__publicField", "remote_file_form_controller_exports", "__export", "remote_file_form_controller_default", "init_remote_file_form_controller", "__esmMin", "init_stimulus", "Controller", "scroll_to_top_controller_exports", "__export", "scroll_to_top_controller_default", "init_scroll_to_top_controller", "__esmMin", "init_stimulus", "Controller", "segmented_field_controller_exports", "__export", "segmented_field_controller_default", "init_segmented_field_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "segments_controller_exports", "__export", "segments_controller_default", "init_segments_controller", "__esmMin", "init_stimulus", "Controller", "event", "index", "__publicField", "select_all_controller_exports", "__export", "select_all_controller_default", "init_select_all_controller", "__esmMin", "init_stimulus", "Controller", "event", "checked", "cb", "__publicField", "serving_controller_exports", "__export", "serving_controller_default", "init_serving_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "serving_size_fields_controller_exports", "__export", "serving_size_fields_controller_default", "init_serving_size_fields_controller", "__esmMin", "init_stimulus", "Controller", "_a", "event", "selectedType", "unitId", "servingType", "isPint", "isPour", "isText", "firstOption", "__publicField", "servings_controller_exports", "__export", "servings_controller_default", "init_servings_controller", "__esmMin", "init_stimulus", "Controller", "event", "html", "jqXHR", "status", "error", "lastIndex", "index", "serving_type_id", "serving_unit_id", "__publicField", "shoelace_controller_exports", "__export", "shoelace_controller_default", "FormDataEventPolyfill", "WorkingFormDataPolyfill", "init_shoelace_controller", "__esmMin", "init_stimulus", "formData", "form", "name", "value", "input", "entries", "index", "Controller", "picker", "show_more_controller_exports", "__export", "show_more_controller_default", "init_show_more_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "simple_beer_autocomplete_controller_exports", "__export", "simple_beer_autocomplete_controller_default", "init_simple_beer_autocomplete_controller", "__esmMin", "init_stimulus", "Controller", "libraries", "filters", "event", "data", "id", "query", "callback", "suggestions", "obj", "hit", "__publicField", "simple_modular_controller_exports", "__export", "simple_modular_controller_default", "init_simple_modular_controller", "__esmMin", "init_stimulus", "Controller", "event", "tools", "pricing", "p", "t", "effectivePrice", "price", "buttonLabel", "tool1Plans", "tool2Plans", "x", "tvMenus", "__publicField", "smooth_scroller_controller_exports", "__export", "smooth_scroller_controller_default", "init_smooth_scroller_controller", "__esmMin", "init_stimulus", "Controller", "event", "anchor", "offset", "target", "targetPosition", "startPosition", "distance", "duration", "start", "animation", "currentTime", "timeElapsed", "progress", "easing", "__publicField", "sort_store_controller_exports", "__export", "sort_store_controller_default", "init_sort_store_controller", "__esmMin", "init_stimulus", "Controller", "values", "body", "__publicField", "sortable_controller_exports", "__export", "sortable_controller_default", "init_sortable_controller", "__esmMin", "init_stimulus", "Controller", "draggable", "skipSave", "_", "index", "event", "url", "data", "item", "__publicField", "sortablejs_controller_exports", "__export", "sortablejs_controller_default", "init_sortablejs_controller", "__esmMin", "init_stimulus", "Controller", "event", "item", "__publicField", "sticky_controller_exports", "__export", "sticky_controller_default", "init_sticky_controller", "__esmMin", "init_stimulus", "Controller", "streamlined_menu_controller_exports", "__export", "streamlined_menu_controller_default", "init_streamlined_menu_controller", "__esmMin", "init_stimulus", "Controller", "event", "el", "hash", "state", "__publicField", "stripe_controller_exports", "__export", "stripe_controller_default", "init_stripe_controller", "__esmMin", "init_stimulus", "Controller", "tag", "structured_data_controller_exports", "__export", "structured_data_controller_default", "init_structured_data_controller", "__esmMin", "init_stimulus", "Controller", "data", "tabs_controller_exports", "__export", "tabs_controller_default", "init_tabs_controller", "__esmMin", "init_stimulus", "Controller", "event", "changedEvent", "tab", "hash", "panel", "activeTab", "focusId", "smoothScrollerLink", "observer", "mutations", "mutation", "node", "__publicField", "tabs2_controller_exports", "__export", "tabs2_controller_default", "init_tabs2_controller", "__esmMin", "init_stimulus", "Controller", "setFocus", "tabToSelect", "panel", "tab", "keyHandled", "index", "__publicField", "textfit_controller_exports", "__export", "textfit_controller_default", "init_textfit_controller", "__esmMin", "init_stimulus", "Controller", "__publicField", "fontsTimer", "vertical", "lastItemPos", "columnsRect", "fontSize", "complete", "shown", "tracked_clicks_controller_exports", "__export", "tracked_clicks_controller_default", "init_tracked_clicks_controller", "__esmMin", "init_stimulus", "Controller", "event", "href", "trix_controller_exports", "__export", "trix_controller_default", "init_trix_controller", "__esmMin", "init_stimulus", "Controller", "fontId", "fontName", "element", "sizeId", "sizeName", "editor", "extraTools", "event", "data", "container", "selection", "options", "blankStart", "attrId", "_attrName", "fontFound", "fontSizeFound", "alignmentFound", "key", "__publicField", "turnstile_controller_exports", "__export", "turnstile_controller_default", "init_turnstile_controller", "__esmMin", "init_stimulus", "Controller", "callback", "visibleClasses", "token", "callbackIndex", "__publicField", "tv_preview_controller_exports", "__export", "tv_preview_controller_default", "init_tv_preview_controller", "__esmMin", "init_stimulus", "Controller", "el", "currentScreen", "event", "url", "screen", "__publicField", "user_preferences_controller_exports", "__export", "user_preferences_controller_default", "init_user_preferences_controller", "__esmMin", "init_stimulus", "Controller", "event", "checked", "customEvent", "__publicField", "video_modal_controller_exports", "__export", "video_modal_controller_default", "init_video_modal_controller", "__esmMin", "init_stimulus", "Controller", "src", "origin", "event", "__publicField", "viewport_calculate_controller_exports", "__export", "viewport_calculate_controller_default", "init_viewport_calculate_controller", "__esmMin", "init_stimulus", "Controller", "vh", "viewport_entrance_toggle_controller_exports", "__export", "viewport_entrance_toggle_controller_default", "init_viewport_entrance_toggle_controller", "__esmMin", "init_stimulus", "Controller", "entries", "entry", "visible_anchor_controller_exports", "__export", "visible_anchor_controller_default", "init_visible_anchor_controller", "__esmMin", "init_stimulus", "Controller", "event", "anchor", "offset", "__publicField", "visible_controller_exports", "__export", "visible_controller_default", "init_visible_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "visible_from_radio_controller_exports", "__export", "visible_from_radio_controller_default", "init_visible_from_radio_controller", "__esmMin", "init_stimulus", "Controller", "event", "__publicField", "web_menu_preview_sizes_controller_exports", "__export", "web_menu_preview_sizes_controller_default", "init_web_menu_preview_sizes_controller", "__esmMin", "init_stimulus", "Controller", "event", "previewSize", "menuPreview", "modules", "__default", "init__", "__esmMin", "init_accordion_controller", "init_accordion2_controller", "init_admin_beer_controller", "init_admin_merge_controller", "init_algolia_autocomplete_controller", "init_aria_autocomplete_controller", "init_auto_save_controller", "init_auto_textfield_height_controller", "init_autocomplete_controller", "init_availability_promo_controller", "init_beacon_controller", "init_beer_autocomplete_controller", "init_beer_info_controller", "init_beer_suggestions_controller", "init_beers_added_modal_controller", "init_block_modal_controller", "init_brewery_autocomplete_controller", "init_brewery_multi_select_controller", "init_bulk_move_controller", "init_calculator_controller", "init_calendly_controller", "init_charts_controller", "init_checkbox_counter_controller", "init_checkbox_submit_controller", "init_checkbox_toggle_controller", "init_checklist_accordion_controller", "init_checklists_controller", "init_choose_saved_card_controller", "init_clipboard_controller", "init_closeable_controller", "init_codemirror_controller", "init_collapsible_controller", "init_collapsible_simple_controller", "init_condition_ids_controller", "init_conditional_input_controller", "init_custom_product_autocomplete_controller", "init_date_input_controller", "init_digital_display_controller", "init_ds_beer_autocomplete_controller", "init_filter_templates_controller", "init_fonts_controller", "init_google_autocomplete_controller", "init_hamburger_menu_controller", "init_hiding_header_controller", "init_honeybadger_controller", "init_image_background_remover_controller", "init_image_editor_controller", "init_location_autocomplete_controller", "init_masonry_grid_controller", "init_menu_controller", "init_menu_search_controller", "init_menu_section_controller", "init_menu_sections_controller", "init_modular_controller", "init_multi_select_controller", "init_order_search_controller", "init_orders_controller", "init_pickup_locations_controller", "init_place_lead_controller", "init_price_calculator_controller", "init_print_iframe_controller", "init_print_menu_landing_page_controller", "init_print_menus_controller", "init_print_preview_controller", "init_product_autocomplete_controller", "init_product_type_controller", "init_property_segments_controller", "init_purchase_limit_controller", "init_region_preview_controller", "init_remote_file_form_controller", "init_scroll_to_top_controller", "init_segmented_field_controller", "init_segments_controller", "init_select_all_controller", "init_serving_controller", "init_serving_size_fields_controller", "init_servings_controller", "init_shoelace_controller", "init_show_more_controller", "init_simple_beer_autocomplete_controller", "init_simple_modular_controller", "init_smooth_scroller_controller", "init_sort_store_controller", "init_sortable_controller", "init_sortablejs_controller", "init_sticky_controller", "init_streamlined_menu_controller", "init_stripe_controller", "init_structured_data_controller", "init_tabs_controller", "init_tabs2_controller", "init_textfit_controller", "init_tracked_clicks_controller", "init_trix_controller", "init_turnstile_controller", "init_tv_preview_controller", "init_user_preferences_controller", "init_video_modal_controller", "init_viewport_calculate_controller", "init_viewport_entrance_toggle_controller", "init_visible_anchor_controller", "init_visible_controller", "init_visible_from_radio_controller", "init_web_menu_preview_sizes_controller", "accordion_controller_exports", "accordion2_controller_exports", "admin_beer_controller_exports", "admin_merge_controller_exports", "algolia_autocomplete_controller_exports", "aria_autocomplete_controller_exports", "auto_save_controller_exports", "auto_textfield_height_controller_exports", "autocomplete_controller_exports", "availability_promo_controller_exports", "beacon_controller_exports", "beer_autocomplete_controller_exports", "beer_info_controller_exports", "beer_suggestions_controller_exports", "beers_added_modal_controller_exports", "block_modal_controller_exports", "brewery_autocomplete_controller_exports", "brewery_multi_select_controller_exports", "bulk_move_controller_exports", "calculator_controller_exports", "calendly_controller_exports", "charts_controller_exports", "checkbox_counter_controller_exports", "checkbox_submit_controller_exports", "checkbox_toggle_controller_exports", "checklist_accordion_controller_exports", "checklists_controller_exports", "choose_saved_card_controller_exports", "clipboard_controller_exports", "closeable_controller_exports", "codemirror_controller_exports", "collapsible_controller_exports", "collapsible_simple_controller_exports", "condition_ids_controller_exports", "conditional_input_controller_exports", "custom_product_autocomplete_controller_exports", "date_input_controller_exports", "digital_display_controller_exports", "ds_beer_autocomplete_controller_exports", "filter_templates_controller_exports", "fonts_controller_exports", "google_autocomplete_controller_exports", "hamburger_menu_controller_exports", "hiding_header_controller_exports", "honeybadger_controller_exports", "image_background_remover_controller_exports", "image_editor_controller_exports", "location_autocomplete_controller_exports", "masonry_grid_controller_exports", "menu_controller_exports", "menu_search_controller_exports", "menu_section_controller_exports", "menu_sections_controller_exports", "modular_controller_exports", "multi_select_controller_exports", "order_search_controller_exports", "orders_controller_exports", "pickup_locations_controller_exports", "place_lead_controller_exports", "price_calculator_controller_exports", "print_iframe_controller_exports", "print_menu_landing_page_controller_exports", "print_menus_controller_exports", "print_preview_controller_exports", "product_autocomplete_controller_exports", "product_type_controller_exports", "property_segments_controller_exports", "purchase_limit_controller_exports", "region_preview_controller_exports", "remote_file_form_controller_exports", "scroll_to_top_controller_exports", "segmented_field_controller_exports", "segments_controller_exports", "select_all_controller_exports", "serving_controller_exports", "serving_size_fields_controller_exports", "servings_controller_exports", "shoelace_controller_exports", "show_more_controller_exports", "simple_beer_autocomplete_controller_exports", "simple_modular_controller_exports", "smooth_scroller_controller_exports", "sort_store_controller_exports", "sortable_controller_exports", "sortablejs_controller_exports", "sticky_controller_exports", "streamlined_menu_controller_exports", "stripe_controller_exports", "structured_data_controller_exports", "tabs_controller_exports", "tabs2_controller_exports", "textfit_controller_exports", "tracked_clicks_controller_exports", "trix_controller_exports", "turnstile_controller_exports", "tv_preview_controller_exports", "user_preferences_controller_exports", "video_modal_controller_exports", "viewport_calculate_controller_exports", "viewport_entrance_toggle_controller_exports", "visible_anchor_controller_exports", "visible_controller_exports", "visible_from_radio_controller_exports", "web_menu_preview_sizes_controller_exports", "_Dialog", "Dialog", "init_stimulus_dialog", "__esmMin", "init_stimulus", "Controller", "animation", "event", "getAttribute", "name", "options", "dataset", "datasetName", "datasetAlpineName", "alpineNames", "classes", "isEmpty", "afterTransition", "element", "resolve", "duration", "nextAnimationFrame", "str", "DebounceController", "ThrottleController", "defaultOptions", "useTransition", "init_dist", "__esmMin", "init_stimulus", "Controller", "composableController", "_a", "_b", "_c", "controller", "targetName", "targetFromAttribute", "targetElement", "leaveAfter", "transitioned", "hiddenClass", "preserveOriginalClass", "removeToClasses", "controllerEnter", "controllerLeave", "controllerToggleTransition", "enter", "event", "enterFromClasses", "enterActiveClasses", "enterToClasses", "leaveToClasses", "removeClasses", "transition", "leave", "leaveFromClasses", "leaveActiveClasses", "toggleTransition", "initialClasses", "activeClasses", "endClasses", "removeEndClasses", "stashedClasses", "cls", "addClasses", "initialState", "_Dropdown", "Dropdown", "init_stimulus_dropdown", "__esmMin", "init_stimulus", "init_dist", "Controller", "useTransition", "event", "require_beermenus", "__commonJSMin", "require_analytics", "__commonJSMin", "_a", "resolve", "createInstance", "Identify", "client", "amplitudeKey", "promise", "name", "options", "identity", "key", "value", "__publicField"] }