@searchcraft/javascript-sdk 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{index-e7e9ab69.js → index-e7bd239c.js} +3 -4
- package/dist/cjs/index-e7bd239c.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/searchcraft-auto-search-form_13.cjs.entry.js +25 -27
- package/dist/cjs/searchcraft-auto-search-form_13.cjs.entry.js.map +1 -1
- package/dist/cjs/searchcraft-base-search-form.cjs.entry.js +1 -1
- package/dist/cjs/searchcraft-button-icon.cjs.entry.js +1 -1
- package/dist/cjs/searchcraft-button.cjs.entry.js +2 -2
- package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
- package/dist/cjs/{utils-57b6c18f.js → utils-39791159.js} +11 -6
- package/dist/cjs/utils-39791159.js.map +1 -0
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +21 -14
- package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +9 -21
- package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
- package/dist/collection/components/searchcraft-button/searchcraft-button.js +1 -1
- package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +1 -1
- package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js +1 -1
- package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/utils.js +9 -5
- package/dist/collection/utils/utils.js.map +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/{p-d0edf961.js → p-04e7305e.js} +2 -2
- package/dist/components/{p-d0edf961.js.map → p-04e7305e.js.map} +1 -1
- package/dist/components/{p-6f2a72d3.js → p-0c25e95d.js} +3 -3
- package/dist/components/{p-6f2a72d3.js.map → p-0c25e95d.js.map} +1 -1
- package/dist/components/{p-d446eda4.js → p-155f7a59.js} +2 -2
- package/dist/components/{p-d446eda4.js.map → p-155f7a59.js.map} +1 -1
- package/dist/components/{p-d6616aa5.js → p-16a533e3.js} +3 -3
- package/dist/components/{p-d6616aa5.js.map → p-16a533e3.js.map} +1 -1
- package/dist/components/{p-5e3152c4.js → p-17c94ac1.js} +11 -7
- package/dist/components/p-17c94ac1.js.map +1 -0
- package/dist/components/{p-cb75ba7a.js → p-199065b5.js} +2 -2
- package/dist/components/{p-cb75ba7a.js.map → p-199065b5.js.map} +1 -1
- package/dist/components/{p-b1ff2296.js → p-2cc8c074.js} +5 -5
- package/dist/components/{p-b1ff2296.js.map → p-2cc8c074.js.map} +1 -1
- package/dist/components/{p-1bd04bac.js → p-4244171c.js} +10 -10
- package/dist/components/{p-1bd04bac.js.map → p-4244171c.js.map} +1 -1
- package/dist/components/{p-1912bbbd.js → p-4f201f41.js} +18 -14
- package/dist/components/p-4f201f41.js.map +1 -0
- package/dist/components/{p-d54bca75.js → p-9283a3c2.js} +2 -2
- package/dist/components/{p-d54bca75.js.map → p-9283a3c2.js.map} +1 -1
- package/dist/components/{p-63035c6a.js → p-a7ab9d65.js} +3 -3
- package/dist/components/{p-63035c6a.js.map → p-a7ab9d65.js.map} +1 -1
- package/dist/components/{p-066c8210.js → p-c69651f6.js} +3 -3
- package/dist/components/p-c69651f6.js.map +1 -0
- package/dist/components/{p-8d9551ce.js → p-e8e40447.js} +3 -3
- package/dist/components/{p-8d9551ce.js.map → p-e8e40447.js.map} +1 -1
- package/dist/components/{p-c3838435.js → p-f83f2b59.js} +4 -4
- package/dist/components/{p-c3838435.js.map → p-f83f2b59.js.map} +1 -1
- package/dist/components/searchcraft-auto-search-form.js +12 -12
- package/dist/components/searchcraft-base-search-form.js +12 -12
- package/dist/components/searchcraft-base-search-result.js +1 -1
- package/dist/components/searchcraft-base-search-results.js +11 -29
- package/dist/components/searchcraft-base-search-results.js.map +1 -1
- package/dist/components/searchcraft-button-icon.js +1 -1
- package/dist/components/searchcraft-button.js +1 -1
- package/dist/components/searchcraft-clear-icon-set.js +1 -1
- package/dist/components/searchcraft-clear-input-button.js +1 -1
- package/dist/components/searchcraft-error-message.js +1 -1
- package/dist/components/searchcraft-input-caption.js +1 -1
- package/dist/components/searchcraft-input-icon.js +1 -1
- package/dist/components/searchcraft-input-label.js +1 -1
- package/dist/components/searchcraft-input.js +1 -1
- package/dist/components/searchcraft-search-icon-set.js +1 -1
- package/dist/components/searchcraft-spinner-dark.js +1 -1
- package/dist/components/searchcraft-spinner-light.js +1 -1
- package/dist/esm/{index-eace3343.js → index-0d9f850d.js} +4 -4
- package/dist/esm/index-0d9f850d.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/searchcraft-auto-search-form_13.entry.js +25 -27
- package/dist/esm/searchcraft-auto-search-form_13.entry.js.map +1 -1
- package/dist/esm/searchcraft-base-search-form.entry.js +1 -1
- package/dist/esm/searchcraft-button-icon.entry.js +1 -1
- package/dist/esm/searchcraft-button.entry.js +2 -2
- package/dist/esm/searchcraft-javascript-sdk.js +3 -3
- package/dist/esm/{utils-02b18bb5.js → utils-7bff0c78.js} +11 -7
- package/dist/esm/utils-7bff0c78.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/p-04e2f067.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/{p-562e923d.entry.js.map → p-04e2f067.entry.js.map} +1 -1
- package/dist/searchcraft-javascript-sdk/p-09af71e8.entry.js +2 -0
- package/dist/searchcraft-javascript-sdk/{p-437c6ef9.entry.js.map → p-09af71e8.entry.js.map} +1 -1
- package/dist/searchcraft-javascript-sdk/{p-5e3152c4.js → p-17c94ac1.js} +2 -2
- package/dist/searchcraft-javascript-sdk/p-17c94ac1.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/{p-0ba9029b.js → p-329c3f66.js} +3 -3
- package/dist/searchcraft-javascript-sdk/p-329c3f66.js.map +1 -0
- package/dist/searchcraft-javascript-sdk/{p-5959cd6a.entry.js → p-40791ead.entry.js} +2 -2
- package/dist/searchcraft-javascript-sdk/{p-eb632a89.entry.js → p-4d18a44a.entry.js} +2 -2
- package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
- package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
- package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +2 -1
- package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +1 -2
- package/dist/types/components.d.ts +6 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/utils.d.ts +1 -5
- package/package.json +1 -1
- package/dist/cjs/index-e7e9ab69.js.map +0 -1
- package/dist/cjs/utils-57b6c18f.js.map +0 -1
- package/dist/components/p-066c8210.js.map +0 -1
- package/dist/components/p-1912bbbd.js.map +0 -1
- package/dist/components/p-5e3152c4.js.map +0 -1
- package/dist/esm/index-eace3343.js.map +0 -1
- package/dist/esm/utils-02b18bb5.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-0ba9029b.js.map +0 -1
- package/dist/searchcraft-javascript-sdk/p-437c6ef9.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-562e923d.entry.js +0 -2
- package/dist/searchcraft-javascript-sdk/p-5e3152c4.js.map +0 -1
- /package/dist/searchcraft-javascript-sdk/{p-5959cd6a.entry.js.map → p-40791ead.entry.js.map} +0 -0
- /package/dist/searchcraft-javascript-sdk/{p-eb632a89.entry.js.map → p-4d18a44a.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["searchcraftAutoSearchFormModuleCss","SearchcraftAutoSearchFormStyle0","SearchcraftAutoSearchForm","this","debounceTimeout","debounceDelay","searchStore","useSearchcraftStore","getState","handleInputChange","event","query","detail","querySubmit","emit","clearTimeout","setTimeout","console","log","runSearch","handleClearInput","clearInput","error","searchResults","async","trim","setQuery","search","JSON","stringify","handleFormSubmit","preventDefault","apiKey","endpointURL","index","componentDidLoad","searchcraft","SearchcraftCore","config","initialize","render","formClass","rightToLeftOrientation","parsedCustomStyles","parseCustomStyles","customStylesForInput","h","key","class","onSubmit","label","labelForInput","customStyles","inputCaptionValue","onClearInput","onSearchInputChange","placeholderValue","errorMessage","searchcraftBaseSearchResultModuleCss","SearchcraftBaseSearchResultStyle0","SearchcraftBaseSearchResult","buttonCallback","keyDownCallback","resultCallback","handleButtonClick","handleContainerClick","isInteractive","isLightTheme","themeMode","containerStyle","Object","assign","id","onClick","onKeyDown","style","tabindex","type","alt","imageDescription","src","imageSource","headingText","subheadingText","primaryContent","secondaryContent","tertiaryContent","buttonText","searchcraftBaseSearchResultsModuleCss","SearchcraftBaseSearchResultsStyle0","SearchcraftBaseSearchResults","searchKeys","length","warn","unsubscribe","subscribe","state","disconnectedCallback","_a","data","parsedSearchKeys","parseSearchKeys","customStylesForResults","_d","_c","_b","hits","map","document","doc","result","dynamicProperties","extractDynamicProperties","customElement","hostElement","querySelector","customElementClone","cloneNode","removeAttribute","setAttribute","outerHTML","_g","_f","_e","name","SearchcraftClearIconSet","width","height","viewBox","fill","xmlns","d","stroke","searchcraftClearInputButtonModuleCss","SearchcraftClearInputButtonStyle0","SearchcraftClearInputButton","handleClearClick","theme","classNames","isRequesting","searchcraftErrorMessageModuleCss","SearchcraftErrorMessageStyle0","SearchcraftErrorMessage","errorMessageStyle","searchcraftInputModuleCss","SearchcraftInputStyle0","SearchcraftInput","input","target","searchInputChange","value","containerClassName","inputClassName","validatedCustomStyles","placeholderStyle","fontSize","placeholderFontSize","formClassName","Fragment","onChange","bind","placeholder","inputCaptionClassName","searchcraftInputCaptionModuleCss","SearchcraftInputCaptionStyle0","SearchcraftInputCaption","searchcraftInputIconModuleCss","SearchcraftInputIconStyle0","SearchcraftInputIcon","searchcraftInputLabelModuleCss","SearchcraftInputLabelStyle0","SearchcraftInputLabel","labelStyle","inputLabelClassName","htmlFor","SearchcraftSearchIconSet","searchcraftSpinnerDarkModuleCss","SearchcraftSpinnerDarkStyle0","SearchcraftSpinnerDark","searchcraftSpinnerLightModuleCss","SearchcraftSpinnerLightStyle0","SearchcraftSpinnerLight"],"sources":["src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.module.scss?tag=searchcraft-auto-search-form&encapsulation=shadow","src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.tsx","src/components/searchcraft-base-search-result/searchcraft-base-search-result.module.scss?tag=searchcraft-base-search-result&encapsulation=shadow","src/components/searchcraft-base-search-result/searchcraft-base-search-result.tsx","src/components/searchcraft-base-search-results/searchcraft-base-search-results.module.scss?tag=searchcraft-base-search-results&encapsulation=shadow","src/components/searchcraft-base-search-results/searchcraft-base-search-results.tsx","src/assets/searchcraft-clear-icon-set.tsx","src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.scss?tag=searchcraft-clear-input-button&encapsulation=shadow","src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.tsx","src/components/searchcraft-error-message/searchcraft-error-message.module.scss?tag=searchcraft-error-message&encapsulation=shadow","src/components/searchcraft-error-message/searchcraft-error-message.tsx","src/components/searchcraft-input/searchcraft-input.module.scss?tag=searchcraft-input&encapsulation=shadow","src/components/searchcraft-input/searchcraft-input.tsx","src/components/searchcraft-input-caption/searchcraft-input-caption.module.scss?tag=searchcraft-input-caption&encapsulation=shadow","src/components/searchcraft-input-caption/searchcraft-input-caption.tsx","src/components/searchcraft-input-icon/searchcraft-input-icon.module.scss?tag=searchcraft-input-icon&encapsulation=shadow","src/components/searchcraft-input-icon/searchcraft-input-icon.tsx","src/components/searchcraft-input-label/searchcraft-input-label.module.scss?tag=searchcraft-input-label&encapsulation=shadow","src/components/searchcraft-input-label/searchcraft-input-label.tsx","src/assets/searchcraft-search-icon-set.tsx","src/components/searchcraft-spinner-dark/searchcraft-spinner-dark.module.scss?tag=searchcraft-spinner-dark&encapsulation=shadow","src/components/searchcraft-spinner-dark/searchcraft-spinner-dark.tsx","src/components/searchcraft-spinner-light/searchcraft-spinner-light.module.scss?tag=searchcraft-spinner-light&encapsulation=shadow","src/components/searchcraft-spinner-light/searchcraft-spinner-light.tsx"],"sourcesContent":[":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.formLTR {\n text-align: left;\n width: 100%;\n}\n\n.formRTL {\n text-align: right;\n width: 100%;\n}\n\n.searchContainer {\n align-items: center;\n display: flex;\n width: 100%;\n}","import {\n Component,\n Prop,\n State,\n Event,\n type EventEmitter,\n h,\n} from '@stencil/core';\nimport {\n type CoreConfigSDK,\n CoreSDK as SearchcraftCore,\n} from '@searchcraft/core';\n\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\nimport { parseCustomStyles } from '@utils/utils';\nimport { useSearchcraftStore } from '@provider/store';\n\n@Component({\n tag: 'searchcraft-auto-search-form',\n styleUrl: 'searchcraft-auto-search-form.module.scss',\n shadow: true,\n})\nexport class SearchcraftAutoSearchForm {\n @Prop() autoSearchFormClass = '';\n @Prop() clearInput: () => void = () => {};\n @Prop() config: CoreConfigSDK = {\n apiKey: '',\n endpointURL: '',\n index: [],\n };\n @Prop() customStylesForInput: string | Record<string, string> = {};\n @Prop() inputCaptionValue = '';\n @Prop() labelForInput = '';\n @Prop() placeholderValue = 'Search here';\n @Prop() rightToLeftOrientation = false;\n @Prop() searchContainerClass = '';\n\n @Event() querySubmit: EventEmitter<string>;\n\n @State() error = false;\n @State() query = '';\n @State() searchResults = '';\n\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n private debounceDelay = 300; // 300ms debounce delay\n private searchStore = useSearchcraftStore.getState();\n\n componentDidLoad() {\n const searchcraft = new SearchcraftCore(this.config);\n this.searchStore.initialize(searchcraft, true);\n console.log('Component initialized');\n }\n\n handleInputChange = (event: ScInputCustomEvent<string>) => {\n this.query = event.detail;\n this.querySubmit.emit(this.query);\n\n // Clear the previous debounce timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n // Set a new debounce timeout\n this.debounceTimeout = setTimeout(() => {\n console.log('Debounced search triggered');\n this.runSearch();\n }, this.debounceDelay);\n };\n\n handleClearInput = () => {\n this.query = '';\n console.log('Input cleared');\n\n if (typeof this.clearInput === 'function') {\n this.clearInput();\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.error = false;\n this.searchResults = '';\n };\n\n private runSearch = async () => {\n if (this.query.trim() === '') {\n this.error = true;\n this.searchResults = '';\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n\n try {\n await this.searchStore.search();\n this.searchResults = JSON.stringify(this.searchStore.searchResults);\n } catch (error) {\n this.error = true;\n }\n }\n };\n\n handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n await this.runSearch();\n };\n\n render() {\n const formClass = this.rightToLeftOrientation ? 'formRTL' : 'formLTR';\n const parsedCustomStyles = parseCustomStyles(this.customStylesForInput);\n return (\n <form class={`${formClass}`} onSubmit={this.handleFormSubmit}>\n <searchcraft-input-label label={this.labelForInput} />\n <div class='searchContainer'>\n <searchcraft-input\n customStyles={parsedCustomStyles}\n input-caption-value={this.inputCaptionValue}\n onClearInput={this.handleClearInput}\n onSearchInputChange={this.handleInputChange}\n placeholder-value={this.placeholderValue}\n query={this.query}\n right-to-left-orientation={this.rightToLeftOrientation}\n />\n </div>\n {this.error && (\n <searchcraft-error-message errorMessage='Please enter a search query.' />\n )}\n </form>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin interactive-result-container-base {\n align-items: flex-start;\n border-radius: 16px;\n display: flex;\n position: relative;\n flex-direction: column;\n gap: 16px;\n padding: 8px;\n\n @media (min-width: 600px) {\n flex-direction: row;\n }\n}\n\n.interactiveResultContainerLight {\n background-color: $light-search-result-container-background;\n @include interactive-result-container-base;\n}\n\n.interactiveResultContainerDark {\n background-color: $dark-search-result-container-background;\n @include interactive-result-container-base;\n}\n\n.resultContainer {\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: 600px) {\n flex-direction: row;\n }\n}\n\n.interactiveIconLarge {\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 8px;\n\n\n @media (max-width: 600px) {\n display: none;\n }\n}\n\n.interactiveIconSmall {\n position: absolute;\n right: 5px;\n top: -2px;\n display: inline-block;\n\n\n @media (min-width: 600px) {\n display: none;\n }\n}\n\n.imageContainer {\n max-height: 540px;\n max-width: 100%;\n\n @media (min-width: 600px) {\n max-height: 100%;\n max-width: 50%;\n }\n}\n\n.contentContainer {\n max-height: 100%;\n max-width: 100%;\n\n @media (min-width: 600px) {\n max-width: 50%;\n }\n}\n\n@mixin image-base {\n aspect-ratio: 2 / 1;\n border-radius: 8px;\n max-height: 100%;\n max-width: 100%;\n}\n\n.imageLight {\n @include image-base;\n border: 1px solid $light-search-result-image-border;\n}\n\n.imageDark {\n @include image-base;\n border: 1px solid $dark-search-result-image-border;\n}\n\n@mixin heading-base {\n font-family: var(--font-stack);\n font-size: 16px;\n font-weight: 700;\n line-height: 20px;\n margin-bottom: 4px;\n margin-top: 0px;\n position: relative;\n}\n\n.headingLight {\n @include heading-base;\n color: $light-search-result-heading-color;\n}\n\n.headingDark {\n @include heading-base;\n color: $dark-search-result-heading-color;\n}\n\n@mixin subheading-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-bottom: 4px;\n margin-top: 0px;\n}\n\n.subheadingLight {\n @include subheading-base;\n color: $light-search-result-subheading-color;\n}\n\n.subheadingDark {\n @include subheading-base;\n color: $dark-search-result-subheading-color\n}\n\n@mixin body-content-base {\n font-family: var(--font-stack);\n font-size: 16px;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 4px;\n margin-top: 0px;\n}\n\n.primaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.primaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}\n\n.secondaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.secondaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}\n\n.tertiaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.tertiaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}","import { Component, Event, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-base-search-result',\n styleUrl: 'searchcraft-base-search-result.module.scss',\n shadow: true,\n})\nexport class SearchcraftBaseSearchResult {\n @Prop() buttonText = ''; // Label for the button\n @Prop() imageDescription = ''; // Alternative text for the image\n @Prop() imageSource = ''; // Source URL for the image\n @Prop() isInteractive = false; // Determines if the result is interactive\n @Prop() primaryContent = ''; // Primary body content\n @Prop() secondaryContent = ''; // Secondary body content\n @Prop() tertiaryContent = ''; // Tertiary body content\n @Prop() headingText = ''; // Text for the heading\n @Prop() subheadingText = ''; // Text for the subheading\n @Prop() themeMode: 'light' | 'dark' = 'light'; // Light or dark theme context\n @Prop() customStyles: Record<string, string> = {}; // Custom styles passed from parent\n\n @Event() buttonCallback: () => void = () => {}; // Callback for button click\n @Event() keyDownCallback: () => void = () => {}; // Callback for key down event\n @Event() resultCallback: () => void = () => {}; // Callback for result container click\n\n private handleButtonClick = () => {\n this.buttonCallback();\n };\n\n private handleContainerClick = () => {\n if (this.isInteractive) {\n this.resultCallback();\n }\n };\n\n render() {\n const isLightTheme = this.themeMode === 'light';\n const containerStyle = { ...this.customStyles };\n return (\n <div\n class={\n this.isInteractive\n ? isLightTheme\n ? 'interactiveResultContainerLight'\n : 'interactiveResultContainerDark'\n : 'resultContainer'\n }\n id='searchcraft-item'\n onClick={this.handleContainerClick}\n onKeyDown={this.keyDownCallback}\n style={containerStyle}\n tabindex='0'\n >\n {this.isInteractive && (\n <div class='interactiveIconLarge'>\n {isLightTheme ? (\n <searchcraft-clear-icon-set type='arrow-light' />\n ) : (\n <searchcraft-clear-icon-set type='arrow-dark' />\n )}\n </div>\n )}\n <div class='imageContainer'>\n <img\n alt={this.imageDescription}\n class={isLightTheme ? 'imageLight' : 'imageDark'}\n src={this.imageSource}\n />\n </div>\n <div class='contentContainer'>\n <h2 class={isLightTheme ? 'headingLight' : 'headingDark'}>\n {this.headingText}\n {this.isInteractive && (\n <div class='interactiveIconSmall'>\n {isLightTheme ? (\n <searchcraft-clear-icon-set type='arrow-light' />\n ) : (\n <searchcraft-clear-icon-set type='arrow-dark' />\n )}\n </div>\n )}\n </h2>\n <h3 class={isLightTheme ? 'subheadingLight' : 'subheadingDark'}>\n {this.subheadingText}\n </h3>\n <p\n class={isLightTheme ? 'primaryContentLight' : 'primaryContentDark'}\n >\n {this.primaryContent}\n </p>\n <p\n class={\n isLightTheme ? 'secondaryContentLight' : 'secondaryContentDark'\n }\n >\n {this.secondaryContent}\n </p>\n <p\n class={\n isLightTheme ? 'tertiaryContentLight' : 'tertiaryContentDark'\n }\n >\n {this.tertiaryContent}\n </p>\n {this.buttonText && (\n <button onClick={this.handleButtonClick} type='button'>\n {this.buttonText}\n </button>\n )}\n </div>\n </div>\n );\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.resultsContainer {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 100px 20px;\n\n & > p {\n align-self: center;\n }\n\n & > div {\n margin-bottom: 20px;\n img {\n height: 300px;\n width: 200px;\n }\n }\n}\n","import { Component, h, Prop, State, Element } from '@stencil/core';\nimport type { SearchcraftResponse } from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\nimport {\n extractDynamicProperties,\n parseCustomStyles,\n parseSearchKeys,\n} from '@utils/utils';\n\n@Component({\n tag: 'searchcraft-base-search-results',\n styleUrl: 'searchcraft-base-search-results.module.scss',\n shadow: true,\n})\nexport class SearchcraftBaseSearchResults {\n @State() query = '';\n @State() searchResults: SearchcraftResponse | null = null;\n\n /**\n * Array of keys to dynamically extract properties from each document.\n * Must be explicitly set by the parent component.\n */\n @Prop() searchKeys = '';\n\n /**\n * Custom styles to apply to search results.\n * Expected format: JSON string, e.g., '{\"borderRadius\": \"10px\", \"padding\": \"16px\"}'\n */\n @Prop() customStylesForResults: string | Record<string, string> = {};\n\n @Element() hostElement: HTMLElement; // Reference to the host element\n\n private unsubscribe: () => void;\n\n componentDidLoad() {\n // Initialize searchKeys if not provided\n if (!this.searchKeys || this.searchKeys.length === 0) {\n console.warn('No searchKeys provided; using empty keys array.');\n this.searchKeys = ''; // Ensure it's explicitly set as an empty array\n }\n\n // Subscribe to state changes\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.searchResults = { ...state.searchResults };\n this.query = state.query;\n });\n\n // Fetch initial state\n const { searchResults, query } = useSearchcraftStore.getState();\n this.searchResults = searchResults;\n this.query = query;\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n render() {\n if (!this.searchResults?.data) {\n console.warn('No search results data available');\n return <div>No results to display.</div>;\n }\n\n const parsedSearchKeys = parseSearchKeys(this.searchKeys);\n const parsedCustomStyles = parseCustomStyles(this.customStylesForResults);\n return (\n <div class='resultsContainer'>\n {this.searchResults?.data?.hits?.map((document, index) => {\n const { doc: result } = document;\n const dynamicProperties = extractDynamicProperties(\n result,\n parsedSearchKeys,\n );\n\n // Render the custom element if present, otherwise fallback to default\n const customElement = this.hostElement.querySelector(\n '[slot=\"result-template\"]',\n );\n if (customElement) {\n // Clone the custom element and pass data to it\n const customElementClone = customElement.cloneNode(\n true,\n ) as HTMLElement;\n customElementClone.removeAttribute('slot'); // Remove the slot attribute\n customElementClone.setAttribute(\n 'data-result',\n JSON.stringify(result),\n );\n return (\n <div key={`${dynamicProperties.id}-${index}`}>\n {customElementClone.outerHTML}\n </div>\n );\n }\n // Fallback to the default element\n return (\n <searchcraft-base-search-result\n key={`${dynamicProperties.id}-${index}`}\n button-callback={() => console.log('button callback')}\n result-callback={() => console.log('interactive element')}\n keydown-callback={() => console.log('keydown')}\n is-interactive={true}\n heading-text={dynamicProperties[parsedSearchKeys[0]]}\n subheading-text={dynamicProperties[parsedSearchKeys[1]]}\n primary-content={dynamicProperties[parsedSearchKeys[2]]}\n secondary-content={dynamicProperties[parsedSearchKeys[3]]}\n tertiary-content={dynamicProperties[parsedSearchKeys[4]]}\n image-source={\n dynamicProperties[parsedSearchKeys[parsedSearchKeys.length - 1]]\n }\n customStyles={parsedCustomStyles}\n />\n );\n })}\n\n {this.query.length > 0 &&\n this.searchResults?.data?.hits?.length === 0 && (\n <searchcraft-error-message\n error-message={`No search results found for \"${this.query}\" query`}\n />\n )}\n\n {/* Slot for custom element */}\n <slot name='result-template' />\n </div>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-clear-icon-set',\n shadow: true,\n})\nexport class SearchcraftClearIconSet {\n /**\n * Type of the icon to display.\n * Options: 'clear-light', 'clear-dark', 'arrow-light', 'arrow-dark'\n */\n @Prop() type: 'clear-light' | 'clear-dark' | 'arrow-light' | 'arrow-dark' =\n 'clear-light';\n\n render() {\n switch (this.type) {\n case 'clear-light':\n return (\n <svg\n width='22'\n height='22'\n viewBox='0 0 22 22'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Clear Input Icon Light</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'clear-dark':\n return (\n <svg\n width='22'\n height='22'\n viewBox='0 0 22 22'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Clear Input Icon Dark</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='white'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'arrow-light':\n return (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Arrow Right Icon Light</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'arrow-dark':\n return (\n <svg\n width='8'\n height='12'\n viewBox='0 0 8 12'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Arrow Right Icon Dark</title>\n <path\n d='M1.5 11L6.5 6L1.5 1'\n stroke='#BFBFBF'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n\n default:\n return null;\n }\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.inputClearButtonLTR {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n padding: 0;\n position: absolute;\n right: 25px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}\n\n.inputClearButtonRTL {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n left: 25px;\n padding: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n State,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-clear-input-button',\n styleUrl: 'searchcraft-clear-input-button.module.scss',\n shadow: true,\n})\nexport class SearchcraftClearInputButton {\n @Prop() isRequesting? = false;\n @Prop() rightToLeftOrientation = false;\n\n // Updated `clearInput` to an EventEmitter\n @Event() clearInput: EventEmitter<void>;\n\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n // Added a click handler to emit the event\n private handleClearClick = (event: MouseEvent) => {\n event.preventDefault(); // Prevent default if necessary\n this.clearInput.emit(); // Emit the event\n };\n\n render() {\n return this.rightToLeftOrientation ? (\n <button\n class={classNames('inputClearButtonRTL', '.sc-clear-input-button-rtl')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n ) : (\n <button\n class={classNames('inputClearButtonLTR', '.sc-clear-input-button-ltr')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin error-message-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n.errorMessageLight {\n @include error-message-base;\n color: $light-input-caption-color-error;\n}\n\n.errorMessageDark {\n @include error-message-base;\n color: $dark-input-caption-color-error;\n}","import { Component, Prop, h } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-error-message',\n styleUrl: 'searchcraft-error-message.module.scss',\n shadow: true,\n})\nexport class SearchcraftErrorMessage {\n /**\n * The error message to display. Defaults to a standard message if not provided.\n */\n @Prop() errorMessage?: string;\n\n /**\n * The theme, which determines the style (light or dark).\n */\n @Prop() theme: 'light' | 'dark' = 'light';\n\n render() {\n const errorMessageStyle =\n this.theme === 'light' ? 'errorMessageLight' : 'errorMessageDark';\n\n return (\n <p class={classNames(errorMessageStyle)}>\n {this.errorMessage || 'Search term is required.'}\n </p>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-container-base {\n position: relative;\n width: 100%;\n}\n\n@mixin input-base {\n border: none;\n border-radius: 8px;\n font-family: var(--font-stack);\n outline: none;\n padding-bottom: 15px;\n padding-top: 15px;\n width: 100%;\n\n &::placeholder {\n font-family: var(--font-stack);\n font-size: 16px;\n }\n}\n\n@mixin input-base-light {\n @include input-base;\n background-color: $light-input-background-color;\n color: $light-input-label-color;\n\n &::placeholder {\n color: $light-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $light-input-outline-focus;\n }\n}\n\n@mixin input-base-dark {\n @include input-base;\n background-color: $dark-input-background-color;\n color: $dark-input-label-color;\n\n &::placeholder {\n color: $dark-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $dark-input-outline-focus;\n }\n}\n\n@mixin input-error-base-light {\n @include input-base-light;\n outline: 2px solid $light-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $light-input-error-outline,\n }\n}\n\n@mixin input-error-base-dark {\n @include input-base-dark;\n outline: 2px solid $dark-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $dark-input-error-outline;\n }\n}\n\n.inputContainerLTR {\n @include input-container-base;\n}\n\n.inputContainerRTL {\n @include input-container-base;\n margin-left: 8px;\n}\n\n@mixin align-LTR {\n margin-right: 8px;\n padding-left: 36px;\n padding-right: 16px;\n}\n\n.inputLightLTR {\n @include input-base-light;\n @include align-LTR;\n}\n\n.inputDarkLTR {\n @include input-base-dark;\n @include align-LTR;\n}\n\n.inputErrorLightLTR {\n @include input-error-base-light;\n @include align-LTR;\n}\n\n.inputErrorDarkLTR {\n @include input-error-base-dark;\n @include align-LTR;\n}\n\n@mixin align-RTL {\n margin-left: 8px;\n padding-left: 16px;\n padding-right: 36px;\n text-align: right;\n}\n\n.inputLightRTL {\n @include input-base-light;\n @include align-RTL;\n}\n\n.inputDarkRTL {\n @include input-base-dark;\n @include align-RTL;\n}\n\n.inputErrorLightRTL {\n @include input-error-base-light;\n @include align-RTL;\n}\n\n.inputErrorDarkRTL {\n @include input-error-base-dark;\n @include align-RTL;\n}\n\n.inputWrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Event,\n Fragment,\n type EventEmitter,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport { parseCustomStyles } from '@utils/utils';\n\nexport interface ScInputCustomEvent<T> extends CustomEvent<T> {\n detail: T;\n target: HTMLSearchcraftInputElement;\n}\n\n@Component({\n tag: 'searchcraft-input',\n styleUrl: 'searchcraft-input.module.scss',\n shadow: true,\n})\nexport class SearchcraftInput {\n @Prop() customStyles: string | Record<string, string> = {};\n @Prop() error = false;\n @Prop() formClassName = '';\n @Prop() inputCaptionClassName = '';\n @Prop() inputCaptionValue = '';\n @Prop() inputClassName = '';\n @Prop() placeholderValue = 'Enter Search';\n @Prop() rightToLeftOrientation = false;\n @Prop() query = '';\n\n @Event() clearInput: EventEmitter<void>;\n @Event() searchInputChange: EventEmitter<string>;\n\n @State() theme = 'light';\n\n private get isLightTheme() {\n return this.theme === 'light';\n }\n\n handleInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.searchInputChange.emit(input.value);\n }\n\n handleClearInput() {\n if (this.clearInput) {\n this.clearInput.emit();\n }\n }\n\n render() {\n const containerClassName = this.rightToLeftOrientation\n ? 'inputContainerRTL'\n : 'inputContainerLTR';\n\n const inputClassName = classNames(\n this.error\n ? this.isLightTheme\n ? 'inputErrorLightRTL'\n : 'inputErrorDarkRTL'\n : this.isLightTheme\n ? 'inputLightLTR'\n : 'inputDarkLTR',\n 'searchcraft-input',\n );\n\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n\n const placeholderStyle = {\n fontSize: validatedCustomStyles.placeholderFontSize || '16px',\n };\n return (\n <div\n class={classNames(\n containerClassName,\n this.formClassName,\n 'searchcraft-input-form',\n )}\n >\n {this.rightToLeftOrientation ? (\n <Fragment>\n <input\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n <searchcraft-input-icon\n error={this.error}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n </Fragment>\n ) : (\n <div class='inputWrapper'>\n <searchcraft-input-icon\n error={this.error}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n <input\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-caption-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n@mixin input-caption-base-light {\n @include input-caption-base;\n color: $light-input-caption-color;\n}\n\n@mixin input-caption-base-dark {\n @include input-caption-base;\n color: $dark-input-caption-color;\n}\n\n.inputCaptionLightLTR {\n @include input-caption-base-light;\n}\n\n.inputCaptionDarkLTR {\n @include input-caption-base-dark;\n}\n\n.inputCaptionErrorLightLTR {\n @include input-caption-base;\n color: $light-input-caption-color-error;\n}\n\n.inputCaptionErrorDarkLTR {\n @include input-caption-base;\n color: $dark-input-caption-color-error;\n}\n\n.inputCaptionLightRTL {\n @include input-caption-base-light;\n text-align: right;\n}\n\n.inputCaptionDarkRTL {\n @include input-caption-base-dark;\n text-align: right;\n}\n\n.inputCaptionErrorLightRTL {\n @include input-caption-base;\n color: $light-input-caption-color-error;\n text-align: right;\n}\n\n.inputCaptionErrorDarkRTL {\n @include input-caption-base;\n color: $dark-input-caption-color-error;\n text-align: right;\n}","import { Component, Prop, h, State } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-input-caption',\n styleUrl: 'searchcraft-input-caption.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputCaption {\n @Prop() error?: boolean;\n @Prop() inputCaptionClassName? = '';\n @Prop() inputCaptionValue = 'Enter Search';\n @Prop() rightToLeftOrientation = false;\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n return this.rightToLeftOrientation ? (\n <p\n class={classNames(\n this.error\n ? this.isLightTheme\n ? 'inputCaptionErrorLightRTL'\n : 'inputCaptionErrorDarkRTL'\n : this.isLightTheme\n ? 'inputCaptionLightRTL'\n : 'inputCaptionDarkRTL',\n this.inputCaptionClassName,\n '.searchcraft-input-caption',\n )}\n >\n {this.inputCaptionValue}\n </p>\n ) : (\n <p\n class={classNames(\n this.error\n ? this.isLightTheme\n ? 'inputCaptionErrorLightLTR'\n : 'inputCaptionErrorDarkLTR'\n : this.isLightTheme\n ? 'inputCaptionLightLTR'\n : 'inputCaptionDarkLTR',\n this.inputCaptionClassName,\n '.searchcraft-input-caption',\n )}\n >\n {this.inputCaptionValue}\n </p>\n );\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.inputIconLTR {\n height: 20px;\n left: 15px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}\n\n.inputIconRTL {\n height: 20px;\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}","import { Component, Prop, h, State } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-input-icon',\n styleUrl: 'searchcraft-input-icon.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputIcon {\n @Prop() error?: boolean;\n @Prop() rightToLeftOrientation = false;\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n return this.error ? (\n <div\n class={this.rightToLeftOrientation ? 'inputIconRTL' : 'inputIconLTR'}\n >\n {this.isLightTheme ? (\n <searchcraft-search-icon-set type='error-light' />\n ) : (\n <searchcraft-search-icon-set type='error-dark' />\n )}\n </div>\n ) : (\n <div\n class={this.rightToLeftOrientation ? 'inputIconRTL' : 'inputIconLTR'}\n >\n {this.isLightTheme ? (\n <searchcraft-search-icon-set type='search-light' />\n ) : (\n <searchcraft-search-icon-set type='search-dark' />\n )}\n </div>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-label-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n.labelLight {\n @include input-label-base;\n color: $light-input-label-color;\n}\n\n.labelDark {\n @include input-label-base;\n color: $dark-input-label-color;\n}","import { Component, Prop, h, State } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-input-label',\n styleUrl: 'searchcraft-input-label.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputLabel {\n @Prop() inputLabelClassName? = '';\n @Prop() label?: string; // Make label optional\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n // Render nothing if no label prop is provided\n if (!this.label) {\n return null;\n }\n\n const labelStyle = this.isLightTheme() ? 'labelLight' : 'labelDark';\n\n return (\n <label\n class={classNames(labelStyle, this.inputLabelClassName)}\n htmlFor='searchcraft-input-id'\n >\n {this.label}\n </label>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-search-icon-set',\n shadow: true,\n})\nexport class SearchcraftSearchIconSet {\n /**\n * Type of the icon to display.\n * Options: ''search-light', search-dark', 'error-light', 'error-dark'\n */\n @Prop() type: 'search-light' | 'search-dark' | 'error-light' | 'error-dark' =\n 'search-dark';\n\n render() {\n switch (this.type) {\n case 'search-light':\n return (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>Searchcraft Search Icon Light</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'search-dark':\n return (\n <svg\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>Searchcraft Search Icon Dark</title>\n <path\n d='M16.5 16.5L12.875 12.875M14.8333 8.16667C14.8333 11.8486 11.8486 14.8333 8.16667 14.8333C4.48477 14.8333 1.5 11.8486 1.5 8.16667C1.5 4.48477 4.48477 1.5 8.16667 1.5C11.8486 1.5 14.8333 4.48477 14.8333 8.16667Z'\n stroke='#E6E6E6'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'error-light':\n return (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>\n Searchcraft Error Search Icon Light\n </title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'error-dark':\n return (\n <svg\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>\n Searchcraft Error Search Icon Dark\n </title>\n <path\n d='M16.5 16.5L12.875 12.875M14.8333 8.16667C14.8333 11.8486 11.8486 14.8333 8.16667 14.8333C4.48477 14.8333 1.5 11.8486 1.5 8.16667C1.5 4.48477 4.48477 1.5 8.16667 1.5C11.8486 1.5 14.8333 4.48477 14.8333 8.16667Z'\n stroke='#BFBFBF'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n default:\n return null;\n }\n }\n}\n","$spinner-size: 20px;\n\n.spinnerContainer {\n background-color: transparent;\n height: $spinner-size;\n width: $spinner-size;\n}\n\n.spinnerDark {\n height: 100%;\n width: 100%;\n background: conic-gradient(#000 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n.spinnerLight {\n height: 100%;\n width: 100%;\n background: conic-gradient(#737373 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n@keyframes spinning {\n 0% { transform: rotate(0deg); }\n 50% {transform: rotate(180deg);}\n 100% { transform: rotate(360deg); }\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-spinner-dark',\n styleUrl: 'searchcraft-spinner-dark.module.scss',\n shadow: true,\n})\nexport class SearchcraftSpinnerDark {\n render() {\n return (\n <div class='spinnerContainer'>\n <div class='spinnerDark' />\n </div>\n );\n }\n}\n","$spinner-size: 20px;\n\n.spinnerContainer {\n background-color: transparent;\n height: $spinner-size;\n width: $spinner-size;\n}\n\n.spinnerLight {\n height: 100%;\n width: 100%;\n background: conic-gradient(#737373 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n@keyframes spinning {\n 0% { transform: rotate(0deg); }\n 50% {transform: rotate(180deg);}\n 100% { transform: rotate(360deg); }\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-spinner-light',\n styleUrl: 'searchcraft-spinner-light.module.scss',\n shadow: true,\n})\nexport class SearchcraftSpinnerLight {\n render() {\n return (\n <div class='spinnerContainer'>\n <div class='spinnerLight' />\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["searchcraftAutoSearchFormModuleCss","SearchcraftAutoSearchFormStyle0","SearchcraftAutoSearchForm","this","debounceTimeout","debounceDelay","searchStore","useSearchcraftStore","getState","handleInputChange","event","query","detail","querySubmit","emit","clearTimeout","setTimeout","console","log","runSearch","handleClearInput","clearInput","error","searchResults","async","trim","setQuery","search","JSON","stringify","handleFormSubmit","preventDefault","apiKey","endpointURL","index","componentDidLoad","searchcraft","SearchcraftCore","config","initialize","render","formClass","rightToLeftOrientation","parsedCustomStyles","parseCustomStyles","customStylesForInput","h","key","class","onSubmit","label","labelForInput","customStyles","inputCaptionValue","onClearInput","onSearchInputChange","placeholderValue","errorMessage","searchcraftBaseSearchResultModuleCss","SearchcraftBaseSearchResultStyle0","SearchcraftBaseSearchResult","buttonCallback","keyDownCallback","resultCallback","handleButtonClick","handleContainerClick","isInteractive","parseStyles","parse","isLightTheme","themeMode","styles","style","container","tabindex","onClick","onKeyDown","alt","imageDescription","src","imageSource","image","heading","headingText","subheading","subheadingText","primaryContent","secondaryContent","tertiaryContent","buttonText","button","type","searchcraftBaseSearchResultsModuleCss","SearchcraftBaseSearchResultsStyle0","SearchcraftBaseSearchResults","searchKeys","length","warn","unsubscribe","subscribe","state","Object","assign","disconnectedCallback","_a","data","parsedSearchKeys","parseSearchKeys","serializedStyles","customStylesForResults","serializeStyles","_d","_c","_b","hits","map","document","doc","result","dynamicProperties","extractDynamicProperties","id","_g","_f","_e","SearchcraftClearIconSet","width","height","viewBox","fill","xmlns","d","stroke","searchcraftClearInputButtonModuleCss","SearchcraftClearInputButtonStyle0","SearchcraftClearInputButton","handleClearClick","theme","classNames","isRequesting","searchcraftErrorMessageModuleCss","SearchcraftErrorMessageStyle0","SearchcraftErrorMessage","errorMessageStyle","searchcraftInputModuleCss","SearchcraftInputStyle0","SearchcraftInput","input","target","searchInputChange","value","containerClassName","inputClassName","validatedCustomStyles","placeholderStyle","fontSize","placeholderFontSize","formClassName","Fragment","onChange","bind","placeholder","inputCaptionClassName","searchcraftInputCaptionModuleCss","SearchcraftInputCaptionStyle0","SearchcraftInputCaption","searchcraftInputIconModuleCss","SearchcraftInputIconStyle0","SearchcraftInputIcon","searchcraftInputLabelModuleCss","SearchcraftInputLabelStyle0","SearchcraftInputLabel","labelStyle","inputLabelClassName","htmlFor","SearchcraftSearchIconSet","searchcraftSpinnerDarkModuleCss","SearchcraftSpinnerDarkStyle0","SearchcraftSpinnerDark","searchcraftSpinnerLightModuleCss","SearchcraftSpinnerLightStyle0","SearchcraftSpinnerLight"],"sources":["src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.module.scss?tag=searchcraft-auto-search-form&encapsulation=shadow","src/components/searchcraft-auto-search-form/searchcraft-auto-search-form.tsx","src/components/searchcraft-base-search-result/searchcraft-base-search-result.module.scss?tag=searchcraft-base-search-result&encapsulation=shadow","src/components/searchcraft-base-search-result/searchcraft-base-search-result.tsx","src/components/searchcraft-base-search-results/searchcraft-base-search-results.module.scss?tag=searchcraft-base-search-results&encapsulation=shadow","src/components/searchcraft-base-search-results/searchcraft-base-search-results.tsx","src/assets/searchcraft-clear-icon-set.tsx","src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.scss?tag=searchcraft-clear-input-button&encapsulation=shadow","src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.tsx","src/components/searchcraft-error-message/searchcraft-error-message.module.scss?tag=searchcraft-error-message&encapsulation=shadow","src/components/searchcraft-error-message/searchcraft-error-message.tsx","src/components/searchcraft-input/searchcraft-input.module.scss?tag=searchcraft-input&encapsulation=shadow","src/components/searchcraft-input/searchcraft-input.tsx","src/components/searchcraft-input-caption/searchcraft-input-caption.module.scss?tag=searchcraft-input-caption&encapsulation=shadow","src/components/searchcraft-input-caption/searchcraft-input-caption.tsx","src/components/searchcraft-input-icon/searchcraft-input-icon.module.scss?tag=searchcraft-input-icon&encapsulation=shadow","src/components/searchcraft-input-icon/searchcraft-input-icon.tsx","src/components/searchcraft-input-label/searchcraft-input-label.module.scss?tag=searchcraft-input-label&encapsulation=shadow","src/components/searchcraft-input-label/searchcraft-input-label.tsx","src/assets/searchcraft-search-icon-set.tsx","src/components/searchcraft-spinner-dark/searchcraft-spinner-dark.module.scss?tag=searchcraft-spinner-dark&encapsulation=shadow","src/components/searchcraft-spinner-dark/searchcraft-spinner-dark.tsx","src/components/searchcraft-spinner-light/searchcraft-spinner-light.module.scss?tag=searchcraft-spinner-light&encapsulation=shadow","src/components/searchcraft-spinner-light/searchcraft-spinner-light.tsx"],"sourcesContent":[":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.formLTR {\n text-align: left;\n width: 100%;\n}\n\n.formRTL {\n text-align: right;\n width: 100%;\n}\n\n.searchContainer {\n align-items: center;\n display: flex;\n width: 100%;\n}","import {\n Component,\n Prop,\n State,\n Event,\n type EventEmitter,\n h,\n} from '@stencil/core';\nimport {\n type CoreConfigSDK,\n CoreSDK as SearchcraftCore,\n} from '@searchcraft/core';\n\nimport type { ScInputCustomEvent } from '@components/searchcraft-input/searchcraft-input';\nimport { parseCustomStyles } from '@utils/utils';\nimport { useSearchcraftStore } from '@provider/store';\n\n@Component({\n tag: 'searchcraft-auto-search-form',\n styleUrl: 'searchcraft-auto-search-form.module.scss',\n shadow: true,\n})\nexport class SearchcraftAutoSearchForm {\n @Prop() autoSearchFormClass = '';\n @Prop() clearInput: () => void = () => {};\n @Prop() config: CoreConfigSDK = {\n apiKey: '',\n endpointURL: '',\n index: [],\n };\n @Prop() customStylesForInput: string | Record<string, string> = {};\n @Prop() inputCaptionValue = '';\n @Prop() labelForInput = '';\n @Prop() placeholderValue = 'Search here';\n @Prop() rightToLeftOrientation = false;\n @Prop() searchContainerClass = '';\n\n @Event() querySubmit: EventEmitter<string>;\n\n @State() error = false;\n @State() query = '';\n @State() searchResults = '';\n\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n private debounceDelay = 300; // 300ms debounce delay\n private searchStore = useSearchcraftStore.getState();\n\n componentDidLoad() {\n const searchcraft = new SearchcraftCore(this.config);\n this.searchStore.initialize(searchcraft, true);\n console.log('Component initialized');\n }\n\n handleInputChange = (event: ScInputCustomEvent<string>) => {\n this.query = event.detail;\n this.querySubmit.emit(this.query);\n\n // Clear the previous debounce timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n // Set a new debounce timeout\n this.debounceTimeout = setTimeout(() => {\n console.log('Debounced search triggered');\n this.runSearch();\n }, this.debounceDelay);\n };\n\n handleClearInput = () => {\n this.query = '';\n console.log('Input cleared');\n\n if (typeof this.clearInput === 'function') {\n this.clearInput();\n }\n\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n this.error = false;\n this.searchResults = '';\n };\n\n private runSearch = async () => {\n if (this.query.trim() === '') {\n this.error = true;\n this.searchResults = '';\n } else {\n this.error = false;\n this.searchStore.setQuery(this.query);\n\n try {\n await this.searchStore.search();\n this.searchResults = JSON.stringify(this.searchStore.searchResults);\n } catch (error) {\n this.error = true;\n }\n }\n };\n\n handleFormSubmit = async (event: Event) => {\n event.preventDefault();\n await this.runSearch();\n };\n\n render() {\n const formClass = this.rightToLeftOrientation ? 'formRTL' : 'formLTR';\n const parsedCustomStyles = parseCustomStyles(this.customStylesForInput);\n return (\n <form class={`${formClass}`} onSubmit={this.handleFormSubmit}>\n <searchcraft-input-label label={this.labelForInput} />\n <div class='searchContainer'>\n <searchcraft-input\n customStyles={parsedCustomStyles}\n input-caption-value={this.inputCaptionValue}\n onClearInput={this.handleClearInput}\n onSearchInputChange={this.handleInputChange}\n placeholder-value={this.placeholderValue}\n query={this.query}\n right-to-left-orientation={this.rightToLeftOrientation}\n />\n </div>\n {this.error && (\n <searchcraft-error-message errorMessage='Please enter a search query.' />\n )}\n </form>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin interactive-result-container-base {\n align-items: flex-start;\n border-radius: 16px;\n display: flex;\n position: relative;\n flex-direction: column;\n gap: 16px;\n padding: 8px;\n\n @media (min-width: 600px) {\n flex-direction: row;\n }\n}\n\n.interactiveResultContainerLight {\n background-color: $light-search-result-container-background;\n @include interactive-result-container-base;\n}\n\n.interactiveResultContainerDark {\n background-color: $dark-search-result-container-background;\n @include interactive-result-container-base;\n}\n\n.resultContainer {\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: 600px) {\n flex-direction: row;\n }\n}\n\n.interactiveIconLarge {\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 8px;\n\n\n @media (max-width: 600px) {\n display: none;\n }\n}\n\n.interactiveIconSmall {\n position: absolute;\n right: 5px;\n top: -2px;\n display: inline-block;\n\n\n @media (min-width: 600px) {\n display: none;\n }\n}\n\n.imageContainer {\n max-height: 540px;\n max-width: 100%;\n\n @media (min-width: 600px) {\n max-height: 100%;\n max-width: 50%;\n }\n}\n\n.contentContainer {\n max-height: 100%;\n max-width: 100%;\n\n @media (min-width: 600px) {\n max-width: 50%;\n }\n}\n\n@mixin image-base {\n aspect-ratio: 2 / 1;\n border-radius: 8px;\n max-height: 100%;\n max-width: 100%;\n}\n\n.imageLight {\n @include image-base;\n border: 1px solid $light-search-result-image-border;\n}\n\n.imageDark {\n @include image-base;\n border: 1px solid $dark-search-result-image-border;\n}\n\n@mixin heading-base {\n font-family: var(--font-stack);\n font-size: 16px;\n font-weight: 700;\n line-height: 20px;\n margin-bottom: 4px;\n margin-top: 0px;\n position: relative;\n}\n\n.headingLight {\n @include heading-base;\n color: $light-search-result-heading-color;\n}\n\n.headingDark {\n @include heading-base;\n color: $dark-search-result-heading-color;\n}\n\n@mixin subheading-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-bottom: 4px;\n margin-top: 0px;\n}\n\n.subheadingLight {\n @include subheading-base;\n color: $light-search-result-subheading-color;\n}\n\n.subheadingDark {\n @include subheading-base;\n color: $dark-search-result-subheading-color\n}\n\n@mixin body-content-base {\n font-family: var(--font-stack);\n font-size: 16px;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 4px;\n margin-top: 0px;\n}\n\n.primaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.primaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}\n\n.secondaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.secondaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}\n\n.tertiaryContentLight {\n @include body-content-base;\n color: $light-search-result-body-content-color;\n}\n\n.tertiaryContentDark {\n @include body-content-base;\n color: $dark-search-result-body-content-color;\n}","import { Component, Event, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-base-search-result',\n styleUrl: 'searchcraft-base-search-result.module.scss',\n shadow: true,\n})\nexport class SearchcraftBaseSearchResult {\n @Prop() buttonText = ''; // Label for the button\n @Prop() imageDescription = ''; // Alternative text for the image\n @Prop() imageSource = ''; // Source URL for the image\n @Prop() isInteractive = false; // Determines if the result is interactive\n @Prop() primaryContent = ''; // Primary body content\n @Prop() secondaryContent = ''; // Secondary body content\n @Prop() tertiaryContent = ''; // Tertiary body content\n @Prop() headingText = ''; // Text for the heading\n @Prop() subheadingText = ''; // Text for the subheading\n @Prop() themeMode: 'light' | 'dark' = 'light'; // Light or dark theme context\n @Prop() customStyles = '{}'; // New string prop for serialized styles.\n\n @Event() buttonCallback: () => void = () => {}; // Callback for button click\n @Event() keyDownCallback: () => void = () => {}; // Callback for key down event\n @Event() resultCallback: () => void = () => {}; // Callback for result container click\n\n private handleButtonClick = () => {\n this.buttonCallback();\n };\n\n private handleContainerClick = () => {\n if (this.isInteractive) {\n this.resultCallback();\n }\n };\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n private parseStyles(): Record<string, any> {\n try {\n return JSON.parse(this.customStyles);\n } catch (error) {\n console.error('Error parsing custom styles:', error);\n return {};\n }\n }\n\n render() {\n const isLightTheme = this.themeMode === 'light';\n const styles = this.parseStyles();\n\n return (\n <div\n class={\n this.isInteractive\n ? isLightTheme\n ? 'interactiveResultContainerLight'\n : 'interactiveResultContainerDark'\n : 'resultContainer'\n }\n style={styles.container || {}}\n tabindex='0'\n onClick={this.handleContainerClick}\n onKeyDown={this.keyDownCallback}\n >\n <div class='imageContainer'>\n <img\n alt={this.imageDescription}\n src={this.imageSource}\n style={styles.image || {}}\n class={isLightTheme ? 'imageLight' : 'imageDark'}\n />\n </div>\n <div class='contentContainer'>\n <h2\n style={styles.heading || {}}\n class={isLightTheme ? 'headingLight' : 'headingDark'}\n >\n {this.headingText}\n </h2>\n <h3\n style={styles.subheading || {}}\n class={isLightTheme ? 'subheadingLight' : 'subheadingDark'}\n >\n {this.subheadingText}\n </h3>\n <p\n style={styles.primaryContent || {}}\n class={isLightTheme ? 'primaryContentLight' : 'primaryContentDark'}\n >\n {this.primaryContent}\n </p>\n <p\n style={styles.secondaryContent || {}}\n class={\n isLightTheme ? 'secondaryContentLight' : 'secondaryContentDark'\n }\n >\n {this.secondaryContent}\n </p>\n <p\n style={styles.tertiaryContent || {}}\n class={\n isLightTheme ? 'tertiaryContentLight' : 'tertiaryContentDark'\n }\n >\n {this.tertiaryContent}\n </p>\n {this.buttonText && (\n <button\n onClick={this.handleButtonClick}\n style={styles.button || {}}\n type='button'\n >\n {this.buttonText}\n </button>\n )}\n </div>\n </div>\n );\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.resultsContainer {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 100px 20px;\n\n & > p {\n align-self: center;\n }\n\n & > div {\n margin-bottom: 20px;\n img {\n height: 300px;\n width: 200px;\n }\n }\n}\n","import { Component, h, Prop, State } from '@stencil/core';\nimport type { SearchcraftResponse } from '@searchcraft/core';\n\nimport { useSearchcraftStore } from '@provider/store';\nimport {\n extractDynamicProperties,\n parseSearchKeys,\n serializeStyles,\n} from '@utils/utils';\n\n@Component({\n tag: 'searchcraft-base-search-results',\n styleUrl: 'searchcraft-base-search-results.module.scss',\n shadow: true,\n})\nexport class SearchcraftBaseSearchResults {\n @State() query = '';\n @State() searchResults: SearchcraftResponse | null = null;\n\n /**\n * Array of keys to dynamically extract properties from each document.\n * Must be explicitly set by the parent component.\n */\n @Prop() searchKeys = '';\n /**\n * Custom styles to apply to search results.\n * Expected format: JSON string, e.g., '{\"borderRadius\": \"10px\", \"padding\": \"16px\"}'\n */\n @Prop() customStylesForResults:\n | string\n | Record<string, Record<string, string>> = {};\n\n private unsubscribe: () => void;\n\n componentDidLoad() {\n if (!this.searchKeys || this.searchKeys.length === 0) {\n console.warn('No searchKeys provided; using empty keys array.');\n this.searchKeys = '';\n }\n\n this.unsubscribe = useSearchcraftStore.subscribe((state) => {\n this.searchResults = { ...state.searchResults };\n this.query = state.query;\n });\n\n const { searchResults, query } = useSearchcraftStore.getState();\n this.searchResults = searchResults;\n this.query = query;\n }\n\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n render() {\n if (!this.searchResults?.data) {\n console.warn('No search results data available');\n return <div>No results to display.</div>;\n }\n\n const parsedSearchKeys = parseSearchKeys(this.searchKeys);\n const serializedStyles =\n typeof this.customStylesForResults === 'string'\n ? this.customStylesForResults\n : serializeStyles(this.customStylesForResults);\n\n return (\n <div class='resultsContainer'>\n {this.searchResults?.data?.hits?.map((document, index) => {\n const { doc: result } = document;\n const dynamicProperties = extractDynamicProperties(\n result,\n parsedSearchKeys,\n );\n\n return (\n <searchcraft-base-search-result\n key={`${dynamicProperties.id}-${index}`}\n button-callback={() => console.log('button callback')}\n result-callback={() => console.log('interactive element')}\n keydown-callback={() => console.log('keydown')}\n is-interactive={true}\n heading-text={dynamicProperties[parsedSearchKeys[0]]}\n subheading-text={dynamicProperties[parsedSearchKeys[1]]}\n primary-content={dynamicProperties[parsedSearchKeys[2]]}\n secondary-content={dynamicProperties[parsedSearchKeys[3]]}\n tertiary-content={dynamicProperties[parsedSearchKeys[4]]}\n image-source={\n dynamicProperties[parsedSearchKeys[parsedSearchKeys.length - 1]]\n }\n custom-styles={serializedStyles}\n />\n );\n })}\n {this.query.length > 0 &&\n this.searchResults?.data?.hits?.length === 0 && (\n <searchcraft-error-message\n error-message={`No search results found for \"${this.query}\" query`}\n />\n )}\n </div>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-clear-icon-set',\n shadow: true,\n})\nexport class SearchcraftClearIconSet {\n /**\n * Type of the icon to display.\n * Options: 'clear-light', 'clear-dark', 'arrow-light', 'arrow-dark'\n */\n @Prop() type: 'clear-light' | 'clear-dark' | 'arrow-light' | 'arrow-dark' =\n 'clear-light';\n\n render() {\n switch (this.type) {\n case 'clear-light':\n return (\n <svg\n width='22'\n height='22'\n viewBox='0 0 22 22'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Clear Input Icon Light</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='black'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'clear-dark':\n return (\n <svg\n width='22'\n height='22'\n viewBox='0 0 22 22'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Clear Input Icon Dark</title>\n <path\n d='M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z'\n stroke='white'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'arrow-light':\n return (\n <svg\n width='20'\n height='21'\n viewBox='0 0 20 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Arrow Right Icon Light</title>\n <path\n d='M7.5 15.0444L12.5 10.0444L7.5 5.04443'\n stroke='#737373'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'arrow-dark':\n return (\n <svg\n width='8'\n height='12'\n viewBox='0 0 8 12'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='icon-title'\n >\n <title id='icon-title'>Searchcraft Arrow Right Icon Dark</title>\n <path\n d='M1.5 11L6.5 6L1.5 1'\n stroke='#BFBFBF'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n\n default:\n return null;\n }\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.inputClearButtonLTR {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n padding: 0;\n position: absolute;\n right: 25px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}\n\n.inputClearButtonRTL {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n left: 25px;\n padding: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n State,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-clear-input-button',\n styleUrl: 'searchcraft-clear-input-button.module.scss',\n shadow: true,\n})\nexport class SearchcraftClearInputButton {\n @Prop() isRequesting? = false;\n @Prop() rightToLeftOrientation = false;\n\n // Updated `clearInput` to an EventEmitter\n @Event() clearInput: EventEmitter<void>;\n\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n // Added a click handler to emit the event\n private handleClearClick = (event: MouseEvent) => {\n event.preventDefault(); // Prevent default if necessary\n this.clearInput.emit(); // Emit the event\n };\n\n render() {\n return this.rightToLeftOrientation ? (\n <button\n class={classNames('inputClearButtonRTL', '.sc-clear-input-button-rtl')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n ) : (\n <button\n class={classNames('inputClearButtonLTR', '.sc-clear-input-button-ltr')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin error-message-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n.errorMessageLight {\n @include error-message-base;\n color: $light-input-caption-color-error;\n}\n\n.errorMessageDark {\n @include error-message-base;\n color: $dark-input-caption-color-error;\n}","import { Component, Prop, h } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-error-message',\n styleUrl: 'searchcraft-error-message.module.scss',\n shadow: true,\n})\nexport class SearchcraftErrorMessage {\n /**\n * The error message to display. Defaults to a standard message if not provided.\n */\n @Prop() errorMessage?: string;\n\n /**\n * The theme, which determines the style (light or dark).\n */\n @Prop() theme: 'light' | 'dark' = 'light';\n\n render() {\n const errorMessageStyle =\n this.theme === 'light' ? 'errorMessageLight' : 'errorMessageDark';\n\n return (\n <p class={classNames(errorMessageStyle)}>\n {this.errorMessage || 'Search term is required.'}\n </p>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-container-base {\n position: relative;\n width: 100%;\n}\n\n@mixin input-base {\n border: none;\n border-radius: 8px;\n font-family: var(--font-stack);\n outline: none;\n padding-bottom: 15px;\n padding-top: 15px;\n width: 100%;\n\n &::placeholder {\n font-family: var(--font-stack);\n font-size: 16px;\n }\n}\n\n@mixin input-base-light {\n @include input-base;\n background-color: $light-input-background-color;\n color: $light-input-label-color;\n\n &::placeholder {\n color: $light-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $light-input-outline-focus;\n }\n}\n\n@mixin input-base-dark {\n @include input-base;\n background-color: $dark-input-background-color;\n color: $dark-input-label-color;\n\n &::placeholder {\n color: $dark-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $dark-input-outline-focus;\n }\n}\n\n@mixin input-error-base-light {\n @include input-base-light;\n outline: 2px solid $light-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $light-input-error-outline,\n }\n}\n\n@mixin input-error-base-dark {\n @include input-base-dark;\n outline: 2px solid $dark-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $dark-input-error-outline;\n }\n}\n\n.inputContainerLTR {\n @include input-container-base;\n}\n\n.inputContainerRTL {\n @include input-container-base;\n margin-left: 8px;\n}\n\n@mixin align-LTR {\n margin-right: 8px;\n padding-left: 36px;\n padding-right: 16px;\n}\n\n.inputLightLTR {\n @include input-base-light;\n @include align-LTR;\n}\n\n.inputDarkLTR {\n @include input-base-dark;\n @include align-LTR;\n}\n\n.inputErrorLightLTR {\n @include input-error-base-light;\n @include align-LTR;\n}\n\n.inputErrorDarkLTR {\n @include input-error-base-dark;\n @include align-LTR;\n}\n\n@mixin align-RTL {\n margin-left: 8px;\n padding-left: 16px;\n padding-right: 36px;\n text-align: right;\n}\n\n.inputLightRTL {\n @include input-base-light;\n @include align-RTL;\n}\n\n.inputDarkRTL {\n @include input-base-dark;\n @include align-RTL;\n}\n\n.inputErrorLightRTL {\n @include input-error-base-light;\n @include align-RTL;\n}\n\n.inputErrorDarkRTL {\n @include input-error-base-dark;\n @include align-RTL;\n}\n\n.inputWrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Event,\n Fragment,\n type EventEmitter,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport { parseCustomStyles } from '@utils/utils';\n\nexport interface ScInputCustomEvent<T> extends CustomEvent<T> {\n detail: T;\n target: HTMLSearchcraftInputElement;\n}\n\n@Component({\n tag: 'searchcraft-input',\n styleUrl: 'searchcraft-input.module.scss',\n shadow: true,\n})\nexport class SearchcraftInput {\n @Prop() customStyles: string | Record<string, string> = {};\n @Prop() error = false;\n @Prop() formClassName = '';\n @Prop() inputCaptionClassName = '';\n @Prop() inputCaptionValue = '';\n @Prop() inputClassName = '';\n @Prop() placeholderValue = 'Enter Search';\n @Prop() rightToLeftOrientation = false;\n @Prop() query = '';\n\n @Event() clearInput: EventEmitter<void>;\n @Event() searchInputChange: EventEmitter<string>;\n\n @State() theme = 'light';\n\n private get isLightTheme() {\n return this.theme === 'light';\n }\n\n handleInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.searchInputChange.emit(input.value);\n }\n\n handleClearInput() {\n if (this.clearInput) {\n this.clearInput.emit();\n }\n }\n\n render() {\n const containerClassName = this.rightToLeftOrientation\n ? 'inputContainerRTL'\n : 'inputContainerLTR';\n\n const inputClassName = classNames(\n this.error\n ? this.isLightTheme\n ? 'inputErrorLightRTL'\n : 'inputErrorDarkRTL'\n : this.isLightTheme\n ? 'inputLightLTR'\n : 'inputDarkLTR',\n 'searchcraft-input',\n );\n\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n\n const placeholderStyle = {\n fontSize: validatedCustomStyles.placeholderFontSize || '16px',\n };\n return (\n <div\n class={classNames(\n containerClassName,\n this.formClassName,\n 'searchcraft-input-form',\n )}\n >\n {this.rightToLeftOrientation ? (\n <Fragment>\n <input\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n <searchcraft-input-icon\n error={this.error}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n </Fragment>\n ) : (\n <div class='inputWrapper'>\n <searchcraft-input-icon\n error={this.error}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n <input\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-caption-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n@mixin input-caption-base-light {\n @include input-caption-base;\n color: $light-input-caption-color;\n}\n\n@mixin input-caption-base-dark {\n @include input-caption-base;\n color: $dark-input-caption-color;\n}\n\n.inputCaptionLightLTR {\n @include input-caption-base-light;\n}\n\n.inputCaptionDarkLTR {\n @include input-caption-base-dark;\n}\n\n.inputCaptionErrorLightLTR {\n @include input-caption-base;\n color: $light-input-caption-color-error;\n}\n\n.inputCaptionErrorDarkLTR {\n @include input-caption-base;\n color: $dark-input-caption-color-error;\n}\n\n.inputCaptionLightRTL {\n @include input-caption-base-light;\n text-align: right;\n}\n\n.inputCaptionDarkRTL {\n @include input-caption-base-dark;\n text-align: right;\n}\n\n.inputCaptionErrorLightRTL {\n @include input-caption-base;\n color: $light-input-caption-color-error;\n text-align: right;\n}\n\n.inputCaptionErrorDarkRTL {\n @include input-caption-base;\n color: $dark-input-caption-color-error;\n text-align: right;\n}","import { Component, Prop, h, State } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-input-caption',\n styleUrl: 'searchcraft-input-caption.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputCaption {\n @Prop() error?: boolean;\n @Prop() inputCaptionClassName? = '';\n @Prop() inputCaptionValue = 'Enter Search';\n @Prop() rightToLeftOrientation = false;\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n return this.rightToLeftOrientation ? (\n <p\n class={classNames(\n this.error\n ? this.isLightTheme\n ? 'inputCaptionErrorLightRTL'\n : 'inputCaptionErrorDarkRTL'\n : this.isLightTheme\n ? 'inputCaptionLightRTL'\n : 'inputCaptionDarkRTL',\n this.inputCaptionClassName,\n '.searchcraft-input-caption',\n )}\n >\n {this.inputCaptionValue}\n </p>\n ) : (\n <p\n class={classNames(\n this.error\n ? this.isLightTheme\n ? 'inputCaptionErrorLightLTR'\n : 'inputCaptionErrorDarkLTR'\n : this.isLightTheme\n ? 'inputCaptionLightLTR'\n : 'inputCaptionDarkLTR',\n this.inputCaptionClassName,\n '.searchcraft-input-caption',\n )}\n >\n {this.inputCaptionValue}\n </p>\n );\n }\n}\n",":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.inputIconLTR {\n height: 20px;\n left: 15px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}\n\n.inputIconRTL {\n height: 20px;\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}","import { Component, Prop, h, State } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-input-icon',\n styleUrl: 'searchcraft-input-icon.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputIcon {\n @Prop() error?: boolean;\n @Prop() rightToLeftOrientation = false;\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n return this.error ? (\n <div\n class={this.rightToLeftOrientation ? 'inputIconRTL' : 'inputIconLTR'}\n >\n {this.isLightTheme ? (\n <searchcraft-search-icon-set type='error-light' />\n ) : (\n <searchcraft-search-icon-set type='error-dark' />\n )}\n </div>\n ) : (\n <div\n class={this.rightToLeftOrientation ? 'inputIconRTL' : 'inputIconLTR'}\n >\n {this.isLightTheme ? (\n <searchcraft-search-icon-set type='search-light' />\n ) : (\n <searchcraft-search-icon-set type='search-dark' />\n )}\n </div>\n );\n }\n}\n","@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-label-base {\n font-family: var(--font-stack);\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 4px;\n}\n\n.labelLight {\n @include input-label-base;\n color: $light-input-label-color;\n}\n\n.labelDark {\n @include input-label-base;\n color: $dark-input-label-color;\n}","import { Component, Prop, h, State } from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-input-label',\n styleUrl: 'searchcraft-input-label.module.scss',\n shadow: true,\n})\nexport class SearchcraftInputLabel {\n @Prop() inputLabelClassName? = '';\n @Prop() label?: string; // Make label optional\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n render() {\n // Render nothing if no label prop is provided\n if (!this.label) {\n return null;\n }\n\n const labelStyle = this.isLightTheme() ? 'labelLight' : 'labelDark';\n\n return (\n <label\n class={classNames(labelStyle, this.inputLabelClassName)}\n htmlFor='searchcraft-input-id'\n >\n {this.label}\n </label>\n );\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-search-icon-set',\n shadow: true,\n})\nexport class SearchcraftSearchIconSet {\n /**\n * Type of the icon to display.\n * Options: ''search-light', search-dark', 'error-light', 'error-dark'\n */\n @Prop() type: 'search-light' | 'search-dark' | 'error-light' | 'error-dark' =\n 'search-dark';\n\n render() {\n switch (this.type) {\n case 'search-light':\n return (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>Searchcraft Search Icon Light</title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#404040'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'search-dark':\n return (\n <svg\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>Searchcraft Search Icon Dark</title>\n <path\n d='M16.5 16.5L12.875 12.875M14.8333 8.16667C14.8333 11.8486 11.8486 14.8333 8.16667 14.8333C4.48477 14.8333 1.5 11.8486 1.5 8.16667C1.5 4.48477 4.48477 1.5 8.16667 1.5C11.8486 1.5 14.8333 4.48477 14.8333 8.16667Z'\n stroke='#E6E6E6'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'error-light':\n return (\n <svg\n width='20'\n height='20'\n viewBox='0 0 20 20'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>\n Searchcraft Error Search Icon Light\n </title>\n <path\n d='M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z'\n stroke='#737373'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n case 'error-dark':\n return (\n <svg\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n aria-labelledby='searchcraft-title'\n >\n <title id='searchcraft-title'>\n Searchcraft Error Search Icon Dark\n </title>\n <path\n d='M16.5 16.5L12.875 12.875M14.8333 8.16667C14.8333 11.8486 11.8486 14.8333 8.16667 14.8333C4.48477 14.8333 1.5 11.8486 1.5 8.16667C1.5 4.48477 4.48477 1.5 8.16667 1.5C11.8486 1.5 14.8333 4.48477 14.8333 8.16667Z'\n stroke='#BFBFBF'\n stroke-width='1.5'\n stroke-linecap='round'\n stroke-linejoin='round'\n />\n </svg>\n );\n default:\n return null;\n }\n }\n}\n","$spinner-size: 20px;\n\n.spinnerContainer {\n background-color: transparent;\n height: $spinner-size;\n width: $spinner-size;\n}\n\n.spinnerDark {\n height: 100%;\n width: 100%;\n background: conic-gradient(#000 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n.spinnerLight {\n height: 100%;\n width: 100%;\n background: conic-gradient(#737373 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n@keyframes spinning {\n 0% { transform: rotate(0deg); }\n 50% {transform: rotate(180deg);}\n 100% { transform: rotate(360deg); }\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-spinner-dark',\n styleUrl: 'searchcraft-spinner-dark.module.scss',\n shadow: true,\n})\nexport class SearchcraftSpinnerDark {\n render() {\n return (\n <div class='spinnerContainer'>\n <div class='spinnerDark' />\n </div>\n );\n }\n}\n","$spinner-size: 20px;\n\n.spinnerContainer {\n background-color: transparent;\n height: $spinner-size;\n width: $spinner-size;\n}\n\n.spinnerLight {\n height: 100%;\n width: 100%;\n background: conic-gradient(#737373 50%, #FFFFFF);\n clip-path: circle(50%);\n mask-image: radial-gradient(circle at center, rgba(0,0,0,0) calc($spinner-size/3), rgba(0,0,0,1) calc($spinner-size/3));\n animation: spinning 1s linear infinite;\n}\n\n@keyframes spinning {\n 0% { transform: rotate(0deg); }\n 50% {transform: rotate(180deg);}\n 100% { transform: rotate(360deg); }\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'searchcraft-spinner-light',\n styleUrl: 'searchcraft-spinner-light.module.scss',\n shadow: true,\n})\nexport class SearchcraftSpinnerLight {\n render() {\n return (\n <div class='spinnerContainer'>\n <div class='spinnerLight' />\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function r(r){if(typeof r==="string"){try{return JSON.parse(r)}catch(t){console.error("Invalid customStyles format:",r);return{}}}return r||{}}function t(r){try{const t=JSON.parse(r);if(Array.isArray(t)&&t.every((r=>typeof r==="string"))){return t}console.warn("searchKeys must be a JSON array of strings. Defaulting to an empty array.");return[]}catch(r){console.error("Failed to parse searchKeys:",r);return[]}}function
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
function r(r){if(typeof r==="string"){try{return JSON.parse(r)}catch(t){console.error("Invalid customStyles format:",r);return{}}}return r||{}}function t(r){try{const t=JSON.parse(r);if(Array.isArray(t)&&t.every((r=>typeof r==="string"))){return t}console.warn("searchKeys must be a JSON array of strings. Defaulting to an empty array.");return[]}catch(r){console.error("Failed to parse searchKeys:",r);return[]}}function n(r,t){const n={};t.forEach((t=>{n[t]=r[t]||""}));return n}function e(r){try{return JSON.stringify(r)}catch(r){console.error("Error serializing styles:",r);return"{}"}}export{t as a,n as e,r as p,e as s};
|
|
2
|
+
//# sourceMappingURL=p-17c94ac1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseCustomStyles","styles","JSON","parse","error","console","parseSearchKeys","searchKeys","parsedKeys","Array","isArray","every","key","warn","extractDynamicProperties","document","keys","extractedProperties","forEach","serializeStyles","stringify"],"sources":["src/utils/utils.ts"],"sourcesContent":["export function parseCustomStyles(\n styles: string | Record<string, string>,\n): Record<string, string> {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n } catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\n\nexport function parseSearchKeys(searchKeys: string): string[] {\n try {\n // Attempt to parse the string as JSON\n const parsedKeys = JSON.parse(searchKeys);\n if (\n Array.isArray(parsedKeys) &&\n parsedKeys.every((key) => typeof key === 'string')\n ) {\n return parsedKeys; // Return the array if it's valid\n }\n console.warn(\n 'searchKeys must be a JSON array of strings. Defaulting to an empty array.',\n );\n return [];\n } catch (error) {\n console.error('Failed to parse searchKeys:', error);\n return []; // Return an empty array in case of a parsing error\n }\n}\n\nexport function extractDynamicProperties(\n document: Record<string, string | number>,\n keys: string[],\n) {\n const extractedProperties: Record<string, string | number> = {};\n keys.forEach((key) => {\n extractedProperties[key] = document[key] || '';\n });\n return extractedProperties;\n}\n\nexport function serializeStyles(\n styles: Record<string, Record<string, string>>,\n): string {\n try {\n return JSON.stringify(styles);\n } catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\n}\n"],"mappings":"SAAgBA,EACdC,GAEA,UAAWA,IAAW,SAAU,CAC9B,IACE,OAAOC,KAAKC,MAAMF,E,CAClB,MAAOG,GACPC,QAAQD,MAAM,+BAAgCH,GAC9C,MAAO,E,EAGX,OAAOA,GAAU,EACnB,C,SAEgBK,EAAgBC,GAC9B,IAEE,MAAMC,EAAaN,KAAKC,MAAMI,GAC9B,GACEE,MAAMC,QAAQF,IACdA,EAAWG,OAAOC,UAAeA,IAAQ,WACzC,CACA,OAAOJ,C,CAETH,QAAQQ,KACN,6EAEF,MAAO,E,CACP,MAAOT,GACPC,QAAQD,MAAM,8BAA+BA,GAC7C,MAAO,E,CAEX,C,SAEgBU,EACdC,EACAC,GAEA,MAAMC,EAAuD,GAC7DD,EAAKE,SAASN,IACZK,EAAoBL,GAAOG,EAASH,IAAQ,EAAE,IAEhD,OAAOK,CACT,C,SAEgBE,EACdlB,GAEA,IACE,OAAOC,KAAKkB,UAAUnB,E,CACtB,MAAOG,GACPC,QAAQD,MAAM,4BAA6BA,GAC3C,MAAO,I,CAEX,Q","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const e="searchcraft-javascript-sdk";const t={allRenderFn:true,appendChildSlotFix:false,asyncLoading:true,asyncQueue:false,attachStyles:true,cloneNodeFix:false,cmpDidLoad:true,cmpDidRender:false,cmpDidUnload:false,cmpDidUpdate:false,cmpShouldUpdate:false,cmpWillLoad:false,cmpWillRender:false,cmpWillUpdate:false,connectedCallback:false,constructableCSS:true,cssAnnotations:true,devTools:false,disconnectedCallback:true,element:false,event:true,experimentalScopedSlotChanges:false,experimentalSlotFixes:false,formAssociated:false,hasRenderFn:true,hostListener:false,hostListenerTarget:false,hostListenerTargetBody:false,hostListenerTargetDocument:false,hostListenerTargetParent:false,hostListenerTargetWindow:false,hotModuleReplacement:false,hydrateClientSide:false,hydrateServerSide:false,hydratedAttribute:false,hydratedClass:true,hydratedSelectorName:"hydrated",initializeNextTick:false,invisiblePrehydration:true,isDebug:false,isDev:false,isTesting:false,lazyLoad:true,lifecycle:true,lifecycleDOMEvents:false,member:true,method:false,mode:false,observeAttribute:true,profile:false,prop:true,propBoolean:true,propMutable:false,propNumber:false,propString:true,reflect:false,scoped:false,scopedSlotTextContentFix:false,scriptDataOpts:false,shadowDelegatesFocus:false,shadowDom:true,slot:
|
|
2
|
-
/*!__STENCIL_STATIC_IMPORT_SWITCH__*/return import(`./${r}.entry.js${""}`).then((e=>{{c.set(r,e)}return e[s]}),f)};var v=new Map;var d="{visibility:hidden}.hydrated{visibility:inherit}";var p="slot-fb{display:contents}slot-fb[hidden]{display:none}";var h=typeof window!=="undefined"?window:{};var m=h.document||{head:{}};var y={l:0,m:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,s)=>e.addEventListener(t,n,s),rel:(e,t,n,s)=>e.removeEventListener(t,n,s),ce:(e,t)=>new CustomEvent(e,t)};var b=e=>Promise.resolve(e);var w=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replaceSync==="function"}catch(e){}return false})();var g=false;var S=[];var $=[];var k=(e,t)=>n=>{e.push(n);if(!g){g=true;if(t&&y.l&4){x(j)}else{y.raf(j)}}};var C=e=>{for(let t=0;t<e.length;t++){try{e[t](performance.now())}catch(e){f(e)}}e.length=0};var j=()=>{C(S);{C($);if(g=S.length>0){y.raf(j)}}};var x=e=>b().then(e);var O=k($,true);var E={};var D="http://www.w3.org/2000/svg";var T="http://www.w3.org/1999/xhtml";var L=e=>e!=null;var M=e=>{e=typeof e;return e==="object"||e==="function"};function F(e){var t,n,s;return(s=(n=(t=e.head)==null?void 0:t.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?s:void 0}var R={};s(R,{err:()=>P,map:()=>N,ok:()=>A,unwrap:()=>U,unwrapErr:()=>W});var A=e=>({isOk:true,isErr:false,value:e});var P=e=>({isOk:false,isErr:true,value:e});function N(e,t){if(e.isOk){const n=t(e.value);if(n instanceof Promise){return n.then((e=>A(e)))}else{return A(n)}}if(e.isErr){const t=e.value;return P(t)}throw"should never get here"}var U=e=>{if(e.isOk){return e.value}else{throw e.value}};var W=e=>{if(e.isErr){return e.value}else{throw e.value}};var H=(e,t="")=>{{return()=>{}}};var z=(e,t)=>{{return()=>{}}};var B=(e,t,...n)=>{let s=null;let r=null;let l=false;let o=false;const i=[];const a=t=>{for(let n=0;n<t.length;n++){s=t[n];if(Array.isArray(s)){a(s)}else if(s!=null&&typeof s!=="boolean"){if(l=typeof e!=="function"&&!M(s)){s=String(s)}if(l&&o){i[i.length-1].S+=s}else{i.push(l?Q(null,s):s)}o=l}}};a(n);if(t){if(t.key){r=t.key}{const e=t.className||t.class;if(e){t.class=typeof e!=="object"?e:Object.keys(e).filter((t=>e[t])).join(" ")}}}if(typeof e==="function"){return e(t===null?{}:t,i,I)}const f=Q(e,null);f.$=t;if(i.length>0){f.k=i}{f.C=r}return f};var Q=(e,t)=>{const n={l:0,j:e,S:t,O:null,k:null};{n.$=null}{n.C=null}return n};var q={};var G=e=>e&&e.j===q;var I={forEach:(e,t)=>e.map(K).forEach(t),map:(e,t)=>e.map(K).map(t).map(V)};var K=e=>({vattrs:e.$,vchildren:e.k,vkey:e.C,vname:e.D,vtag:e.j,vtext:e.S});var V=e=>{if(typeof e.vtag==="function"){const t={...e.vattrs};if(e.vkey){t.key=e.vkey}if(e.vname){t.name=e.vname}return B(e.vtag,t,...e.vchildren||[])}const t=Q(e.vtag,e.vtext);t.$=e.vattrs;t.k=e.vchildren;t.C=e.vkey;t.D=e.vname;return t};var X=(e,t)=>{if(e!=null&&!M(e)){if(t&4){return e==="false"?false:e===""||!!e}if(t&1){return String(e)}return e}return e};var _=e=>l(e).$hostElement$;var J=(e,t,n)=>{const s=_(e);return{emit:e=>Y(s,t,{bubbles:!!(n&4),composed:!!(n&2),cancelable:!!(n&1),detail:e})}};var Y=(e,t,n)=>{const s=y.ce(t,n);e.dispatchEvent(s);return s};var Z=new WeakMap;var ee=(e,t,n)=>{let s=v.get(e);if(w&&n){s=s||new CSSStyleSheet;if(typeof s==="string"){s=t}else{s.replaceSync(t)}}else{s=t}v.set(e,s)};var te=(e,t,n)=>{var s;const r=se(t);const l=v.get(r);e=e.nodeType===11?e:m;if(l){if(typeof l==="string"){e=e.head||e;let n=Z.get(e);let o;if(!n){Z.set(e,n=new Set)}if(!n.has(r)){{o=m.createElement("style");o.innerHTML=l;const n=(s=y.T)!=null?s:F(m);if(n!=null){o.setAttribute("nonce",n)}if(!(t.l&1)){if(e.nodeName==="HEAD"){const t=e.querySelectorAll("link[rel=preconnect]");const n=t.length>0?t[t.length-1].nextSibling:e.querySelector("style");e.insertBefore(o,n)}else if("host"in e){if(w){const t=new CSSStyleSheet;t.replaceSync(l);e.adoptedStyleSheets=[t,...e.adoptedStyleSheets]}else{const t=e.querySelector("style");if(t){t.innerHTML=l+t.innerHTML}else{e.prepend(o)}}}else{e.append(o)}}if(t.l&1&&e.nodeName!=="HEAD"){e.insertBefore(o,null)}}if(t.l&4){o.innerHTML+=p}if(n){n.add(r)}}}else if(!e.adoptedStyleSheets.includes(l)){e.adoptedStyleSheets=[...e.adoptedStyleSheets,l]}}return r};var ne=e=>{const t=e.o;const n=e.$hostElement$;const s=t.l;const r=H("attachStyles",t.p);const l=te(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);if(s&10&&s&2){n["s-sc"]=l;n.classList.add(l+"-h")}r()};var se=(e,t)=>"sc-"+e.p;var re=(e,t,n,s,r,l)=>{if(n!==s){let o=a(e,t);let i=t.toLowerCase();if(t==="class"){const t=e.classList;const r=oe(n);const l=oe(s);t.remove(...r.filter((e=>e&&!l.includes(e))));t.add(...l.filter((e=>e&&!r.includes(e))))}else if(t==="style"){{for(const t in n){if(!s||s[t]==null){if(t.includes("-")){e.style.removeProperty(t)}else{e.style[t]=""}}}}for(const t in s){if(!n||s[t]!==n[t]){if(t.includes("-")){e.style.setProperty(t,s[t])}else{e.style[t]=s[t]}}}}else if(t==="key");else if(!o&&t[0]==="o"&&t[1]==="n"){if(t[2]==="-"){t=t.slice(3)}else if(a(h,i)){t=i.slice(2)}else{t=i[2]+t.slice(3)}if(n||s){const r=t.endsWith(ie);t=t.replace(ae,"");if(n){y.rel(e,t,n,r)}if(s){y.ael(e,t,s,r)}}}else{const i=M(s);if((o||i&&s!==null)&&!r){try{if(!e.tagName.includes("-")){const r=s==null?"":s;if(t==="list"){o=false}else if(n==null||e[t]!=r){if(typeof e.__lookupSetter__(t)==="function"){e[t]=r}else{e.setAttribute(t,r)}}}else{e[t]=s}}catch(e){}}if(s==null||s===false){if(s!==false||e.getAttribute(t)===""){{e.removeAttribute(t)}}}else if((!o||l&4||r)&&!i){s=s===true?"":s;{e.setAttribute(t,s)}}}}};var le=/\s/;var oe=e=>!e?[]:e.split(le);var ie="Capture";var ae=new RegExp(ie+"$");var fe=(e,t,n)=>{const s=t.O.nodeType===11&&t.O.host?t.O.host:t.O;const r=e&&e.$||E;const l=t.$||E;{for(const e of ce(Object.keys(r))){if(!(e in l)){re(s,e,r[e],void 0,n,t.l)}}}for(const e of ce(Object.keys(l))){re(s,e,r[e],l[e],n,t.l)}};function ce(e){return e.includes("ref")?[...e.filter((e=>e!=="ref")),"ref"]:e}var ue;var ve;var de=false;var pe=false;var he=(e,n,s,r)=>{const l=n.k[s];let o=0;let i;let a;if(l.S!==null){i=l.O=m.createTextNode(l.S)}else{if(!pe){pe=l.j==="svg"}i=l.O=m.createElementNS(pe?D:T,!de&&t.slotRelocation&&l.l&2?"slot-fb":l.j);if(pe&&l.j==="foreignObject"){pe=false}{fe(null,l,pe)}const n=i.getRootNode();const s=!n.querySelector("body");if(!s&&t.scoped&&L(ue)&&i["s-si"]!==ue){i.classList.add(i["s-si"]=ue)}if(l.k){for(o=0;o<l.k.length;++o){a=he(e,l,o);if(a){i.appendChild(a)}}}{if(l.j==="svg"){pe=false}else if(i.tagName==="foreignObject"){pe=true}}}i["s-hn"]=ve;return i};var me=(e,t,n,s,r,l)=>{let o=e;let i;if(o.shadowRoot&&o.tagName===ve){o=o.shadowRoot}for(;r<=l;++r){if(s[r]){i=he(null,n,r);if(i){s[r].O=i;Se(o,i,t)}}}};var ye=(e,t,n)=>{for(let s=t;s<=n;++s){const t=e[s];if(t){const e=t.O;if(e){e.remove()}}}};var be=(e,t,n,s,r=false)=>{let l=0;let o=0;let i=0;let a=0;let f=t.length-1;let c=t[0];let u=t[f];let v=s.length-1;let d=s[0];let p=s[v];let h;let m;while(l<=f&&o<=v){if(c==null){c=t[++l]}else if(u==null){u=t[--f]}else if(d==null){d=s[++o]}else if(p==null){p=s[--v]}else if(we(c,d,r)){ge(c,d,r);c=t[++l];d=s[++o]}else if(we(u,p,r)){ge(u,p,r);u=t[--f];p=s[--v]}else if(we(c,p,r)){ge(c,p,r);Se(e,c.O,u.O.nextSibling);c=t[++l];p=s[--v]}else if(we(u,d,r)){ge(u,d,r);Se(e,u.O,c.O);u=t[--f];d=s[++o]}else{i=-1;{for(a=l;a<=f;++a){if(t[a]&&t[a].C!==null&&t[a].C===d.C){i=a;break}}}if(i>=0){m=t[i];if(m.j!==d.j){h=he(t&&t[o],n,i)}else{ge(m,d,r);t[i]=void 0;h=m.O}d=s[++o]}else{h=he(t&&t[o],n,o);d=s[++o]}if(h){{Se(c.O.parentNode,h,c.O)}}}}if(l>f){me(e,s[v+1]==null?null:s[v+1].O,n,s,o,v)}else if(o>v){ye(t,l,f)}};var we=(e,t,n=false)=>{if(e.j===t.j){if(!n){return e.C===t.C}return true}return false};var ge=(e,n,s=false)=>{const r=n.O=e.O;const l=e.k;const o=n.k;const i=n.j;const a=n.S;if(a===null){{pe=i==="svg"?true:i==="foreignObject"?false:pe}{if(i==="slot"&&!de);else{fe(e,n,pe)}}if(l!==null&&o!==null){be(r,l,n,o,s)}else if(o!==null){if(e.S!==null){r.textContent=""}me(r,null,n,o,0,o.length-1)}else if(!s&&t.updatable&&l!==null){ye(l,0,l.length-1)}if(pe&&i==="svg"){pe=false}}else if(e.S!==a){r.data=a}};var Se=(e,t,n)=>{const s=e==null?void 0:e.insertBefore(t,n);return s};var $e=(e,t,n=false)=>{const s=e.$hostElement$;const r=e.o;const l=e.L||Q(null,null);const o=G(t)?t:B(null,null,t);ve=s.tagName;if(n&&o.$){for(const e of Object.keys(o.$)){if(s.hasAttribute(e)&&!["key","ref","style","class"].includes(e)){o.$[e]=s[e]}}}o.j=null;o.l|=4;e.L=o;o.O=l.O=s.shadowRoot||s;{ue=s["s-sc"]}de=(r.l&1)!==0;ge(l,o,n)};var ke=(e,t)=>{if(t&&!e.M&&t["s-p"]){t["s-p"].push(new Promise((t=>e.M=t)))}};var Ce=(e,t)=>{{e.l|=16}if(e.l&4){e.l|=512;return}ke(e,e.F);const n=()=>je(e,t);return O(n)};var je=(e,t)=>{const n=e.$hostElement$;const s=H("scheduleUpdate",e.o.p);const r=e.t;if(!r){throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`)}let l;s();return xe(l,(()=>Ee(e,r,t)))};var xe=(e,t)=>Oe(e)?e.then(t).catch((e=>{console.error(e);t()})):t();var Oe=e=>e instanceof Promise||e&&e.then&&typeof e.then==="function";var Ee=async(e,t,n)=>{var s;const r=e.$hostElement$;const l=H("update",e.o.p);const o=r["s-rc"];if(n){ne(e)}const i=H("render",e.o.p);{De(e,t,r,n)}if(o){o.map((e=>e()));r["s-rc"]=void 0}i();l();{const t=(s=r["s-p"])!=null?s:[];const n=()=>Te(e);if(t.length===0){n()}else{Promise.all(t).then(n);e.l|=4;t.length=0}}};var De=(e,t,n,s)=>{try{t=t.render();{e.l&=~16}{e.l|=2}{{{$e(e,t,s)}}}}catch(t){f(t,e.$hostElement$)}return null};var Te=e=>{const t=e.o.p;const n=e.$hostElement$;const s=H("postUpdate",t);const r=e.t;const l=e.F;if(!(e.l&64)){e.l|=64;{Fe(n)}{Me(r,"componentDidLoad")}s();{e.v(n);if(!l){Le()}}}else{s()}{if(e.M){e.M();e.M=void 0}if(e.l&512){x((()=>Ce(e,false)))}e.l&=~(4|512)}};var Le=t=>{{Fe(m.documentElement)}x((()=>Y(h,"appload",{detail:{namespace:e}})))};var Me=(e,t,n)=>{if(e&&e[t]){try{return e[t](n)}catch(e){f(e)}}return void 0};var Fe=e=>{var n;return e.classList.add((n=t.hydratedSelectorName)!=null?n:"hydrated")};var Re=(e,t)=>l(e).i.get(t);var Ae=(e,t,n,s)=>{const r=l(e);if(!r){throw new Error(`Couldn't find host element for "${s.p}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`)}const o=r.i.get(t);const i=r.l;const a=r.t;n=X(n,s.R[t][0]);const f=Number.isNaN(o)&&Number.isNaN(n);const c=n!==o&&!f;if((!(i&8)||o===void 0)&&c){r.i.set(t,n);if(a){if((i&(2|16))===2){Ce(r,false)}}}};var Pe=(e,n,s)=>{var r,o;const i=e.prototype;if(n.R||t.watchCallback){const t=Object.entries((r=n.R)!=null?r:{});t.map((([e,[t]])=>{if(t&31||s&2&&t&32){Object.defineProperty(i,e,{get(){return Re(this,e)},set(t){Ae(this,e,t,n)},configurable:true,enumerable:true})}}));if(s&1){const s=new Map;i.attributeChangedCallback=function(e,t,r){y.jmp((()=>{var o;const a=s.get(e);if(this.hasOwnProperty(a)){r=this[a];delete this[a]}else if(i.hasOwnProperty(a)&&typeof this[a]==="number"&&this[a]==r){return}else if(a==null){const s=l(this);const i=s==null?void 0:s.l;if(i&&!(i&8)&&i&128&&r!==t){const l=s.t;const i=(o=n.A)==null?void 0:o[e];i==null?void 0:i.forEach((n=>{if(l[n]!=null){l[n].call(l,r,t,e)}}))}return}this[a]=r===null&&typeof this[a]==="boolean"?false:r}))};e.observedAttributes=Array.from(new Set([...Object.keys((o=n.A)!=null?o:{}),...t.filter((([e,t])=>t[0]&15)).map((([e,t])=>{const n=t[1]||e;s.set(n,e);return n}))]))}}return e};var Ne=async(e,t,n,s)=>{let r;if((t.l&32)===0){t.l|=32;const s=n.h;if(s){const e=u(n);if(e&&"then"in e){const t=z();r=await e;t()}else{r=e}if(!r){throw new Error(`Constructor for "${n.p}#${t.P}" was not found`)}if(!r.isProxied){Pe(r,n,2);r.isProxied=true}const s=H("createInstance",n.p);{t.l|=8}try{new r(t)}catch(e){f(e)}{t.l&=~8}s()}else{r=e.constructor;const n=e.localName;customElements.whenDefined(n).then((()=>t.l|=128))}if(r&&r.style){let e;if(typeof r.style==="string"){e=r.style}const t=se(n);if(!v.has(t)){const s=H("registerStyles",n.p);ee(t,e,!!(n.l&1));s()}}}const l=t.F;const o=()=>Ce(t,true);if(l&&l["s-rc"]){l["s-rc"].push(o)}else{o()}};var Ue=e=>{};var We=e=>{if((y.l&1)===0){const t=l(e);const n=t.o;const s=H("connectedCallback",n.p);if(!(t.l&1)){t.l|=1;{let n=e;while(n=n.parentNode||n.host){if(n["s-p"]){ke(t,t.F=n);break}}}if(n.R){Object.entries(n.R).map((([t,[n]])=>{if(n&31&&e.hasOwnProperty(t)){const n=e[t];delete e[t];e[t]=n}}))}{Ne(e,t,n)}}else{if(t==null?void 0:t.t);else if(t==null?void 0:t.u){t.u.then((()=>Ue()))}}s()}};var He=e=>{{Me(e,"disconnectedCallback")}};var ze=async e=>{if((y.l&1)===0){const t=l(e);if(t==null?void 0:t.t){He(t.t)}else if(t==null?void 0:t.u){t.u.then((()=>He(t.t)))}}};var Be=(e,t={})=>{var n;const s=H();const r=[];const o=t.exclude||[];const a=h.customElements;const f=m.head;const c=f.querySelector("meta[charset]");const u=m.createElement("style");const v=[];let b;let w=true;Object.assign(y,t);y.m=new URL(t.resourcesUrl||"./",m.baseURI).href;let g=false;e.map((e=>{e[1].map((t=>{const n={l:t[0],p:t[1],R:t[2],N:t[3]};if(n.l&4){g=true}{n.R=t[2]}const s=n.p;const f=class extends HTMLElement{constructor(e){super(e);this.hasRegisteredEventListeners=false;e=this;i(e,n);if(n.l&1){{if(!e.shadowRoot){{e.attachShadow({mode:"open"})}}else{if(e.shadowRoot.mode!=="open"){throw new Error(`Unable to re-use existing shadow root for ${n.p}! Mode is set to ${e.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}}}}connectedCallback(){l(this);if(!this.hasRegisteredEventListeners){this.hasRegisteredEventListeners=true}if(b){clearTimeout(b);b=null}if(w){v.push(this)}else{y.jmp((()=>We(this)))}}disconnectedCallback(){y.jmp((()=>ze(this)))}componentOnReady(){return l(this).u}};n.h=e[0];if(!o.includes(s)&&!a.get(s)){r.push(s);a.define(s,Pe(f,n,1))}}))}));if(r.length>0){if(g){u.textContent+=p}{u.textContent+=r.sort()+d}if(u.innerHTML.length){u.setAttribute("data-styles","");const e=(n=y.T)!=null?n:F(m);if(e!=null){u.setAttribute("nonce",e)}f.insertBefore(u,c?c.nextSibling:f.firstChild)}}w=false;if(v.length){v.map((e=>e.connectedCallback()))}else{{y.jmp((()=>b=setTimeout(Le,30)))}}s()};var Qe=(e,t)=>t;var qe=e=>y.T=e;export{Qe as F,Be as b,J as c,_ as g,B as h,b as p,o as r,qe as s};
|
|
3
|
-
//# sourceMappingURL=p-
|
|
1
|
+
const e="searchcraft-javascript-sdk";const t={allRenderFn:true,appendChildSlotFix:false,asyncLoading:true,asyncQueue:false,attachStyles:true,cloneNodeFix:false,cmpDidLoad:true,cmpDidRender:false,cmpDidUnload:false,cmpDidUpdate:false,cmpShouldUpdate:false,cmpWillLoad:false,cmpWillRender:false,cmpWillUpdate:false,connectedCallback:false,constructableCSS:true,cssAnnotations:true,devTools:false,disconnectedCallback:true,element:false,event:true,experimentalScopedSlotChanges:false,experimentalSlotFixes:false,formAssociated:false,hasRenderFn:true,hostListener:false,hostListenerTarget:false,hostListenerTargetBody:false,hostListenerTargetDocument:false,hostListenerTargetParent:false,hostListenerTargetWindow:false,hotModuleReplacement:false,hydrateClientSide:false,hydrateServerSide:false,hydratedAttribute:false,hydratedClass:true,hydratedSelectorName:"hydrated",initializeNextTick:false,invisiblePrehydration:true,isDebug:false,isDev:false,isTesting:false,lazyLoad:true,lifecycle:true,lifecycleDOMEvents:false,member:true,method:false,mode:false,observeAttribute:true,profile:false,prop:true,propBoolean:true,propMutable:false,propNumber:false,propString:true,reflect:false,scoped:false,scopedSlotTextContentFix:false,scriptDataOpts:false,shadowDelegatesFocus:false,shadowDom:true,slot:false,slotChildNodesFix:false,slotRelocation:false,state:true,style:true,svg:true,taskQueue:true,transformTagName:false,updatable:true,vdomAttribute:true,vdomClass:true,vdomFunctional:true,vdomKey:true,vdomListener:true,vdomPropOrAttr:true,vdomRef:false,vdomRender:true,vdomStyle:true,vdomText:true,vdomXlink:false,watchCallback:false};var n=Object.defineProperty;var s=(e,t)=>{for(var s in t)n(e,s,{get:t[s],enumerable:true})};var r=new WeakMap;var l=e=>r.get(e);var o=(e,t)=>r.set(t.t=e,t);var i=(e,t)=>{const n={l:0,$hostElement$:e,o:t,i:new Map};{n.u=new Promise((e=>n.v=e));e["s-p"]=[];e["s-rc"]=[]}return r.set(e,n)};var a=(e,t)=>t in e;var f=(e,t)=>(0,console.error)(e,t);var c=new Map;var u=(e,t,n)=>{const s=e.p.replace(/-/g,"_");const r=e.h;if(!r){return void 0}const l=c.get(r);if(l){return l[s]}
|
|
2
|
+
/*!__STENCIL_STATIC_IMPORT_SWITCH__*/return import(`./${r}.entry.js${""}`).then((e=>{{c.set(r,e)}return e[s]}),f)};var v=new Map;var d="{visibility:hidden}.hydrated{visibility:inherit}";var p="slot-fb{display:contents}slot-fb[hidden]{display:none}";var h=typeof window!=="undefined"?window:{};var m=h.document||{head:{}};var y={l:0,m:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,s)=>e.addEventListener(t,n,s),rel:(e,t,n,s)=>e.removeEventListener(t,n,s),ce:(e,t)=>new CustomEvent(e,t)};var b=e=>Promise.resolve(e);var w=(()=>{try{new CSSStyleSheet;return typeof(new CSSStyleSheet).replaceSync==="function"}catch(e){}return false})();var g=false;var S=[];var $=[];var k=(e,t)=>n=>{e.push(n);if(!g){g=true;if(t&&y.l&4){x(j)}else{y.raf(j)}}};var C=e=>{for(let t=0;t<e.length;t++){try{e[t](performance.now())}catch(e){f(e)}}e.length=0};var j=()=>{C(S);{C($);if(g=S.length>0){y.raf(j)}}};var x=e=>b().then(e);var O=k($,true);var E={};var D="http://www.w3.org/2000/svg";var T="http://www.w3.org/1999/xhtml";var L=e=>e!=null;var M=e=>{e=typeof e;return e==="object"||e==="function"};function F(e){var t,n,s;return(s=(n=(t=e.head)==null?void 0:t.querySelector('meta[name="csp-nonce"]'))==null?void 0:n.getAttribute("content"))!=null?s:void 0}var R={};s(R,{err:()=>P,map:()=>N,ok:()=>A,unwrap:()=>U,unwrapErr:()=>W});var A=e=>({isOk:true,isErr:false,value:e});var P=e=>({isOk:false,isErr:true,value:e});function N(e,t){if(e.isOk){const n=t(e.value);if(n instanceof Promise){return n.then((e=>A(e)))}else{return A(n)}}if(e.isErr){const t=e.value;return P(t)}throw"should never get here"}var U=e=>{if(e.isOk){return e.value}else{throw e.value}};var W=e=>{if(e.isErr){return e.value}else{throw e.value}};var H=(e,t="")=>{{return()=>{}}};var z=(e,t)=>{{return()=>{}}};var B=(e,t,...n)=>{let s=null;let r=null;let l=false;let o=false;const i=[];const a=t=>{for(let n=0;n<t.length;n++){s=t[n];if(Array.isArray(s)){a(s)}else if(s!=null&&typeof s!=="boolean"){if(l=typeof e!=="function"&&!M(s)){s=String(s)}if(l&&o){i[i.length-1].S+=s}else{i.push(l?Q(null,s):s)}o=l}}};a(n);if(t){if(t.key){r=t.key}{const e=t.className||t.class;if(e){t.class=typeof e!=="object"?e:Object.keys(e).filter((t=>e[t])).join(" ")}}}if(typeof e==="function"){return e(t===null?{}:t,i,I)}const f=Q(e,null);f.$=t;if(i.length>0){f.k=i}{f.C=r}return f};var Q=(e,t)=>{const n={l:0,j:e,S:t,O:null,k:null};{n.$=null}{n.C=null}return n};var q={};var G=e=>e&&e.j===q;var I={forEach:(e,t)=>e.map(K).forEach(t),map:(e,t)=>e.map(K).map(t).map(V)};var K=e=>({vattrs:e.$,vchildren:e.k,vkey:e.C,vname:e.D,vtag:e.j,vtext:e.S});var V=e=>{if(typeof e.vtag==="function"){const t={...e.vattrs};if(e.vkey){t.key=e.vkey}if(e.vname){t.name=e.vname}return B(e.vtag,t,...e.vchildren||[])}const t=Q(e.vtag,e.vtext);t.$=e.vattrs;t.k=e.vchildren;t.C=e.vkey;t.D=e.vname;return t};var X=(e,t)=>{if(e!=null&&!M(e)){if(t&4){return e==="false"?false:e===""||!!e}if(t&1){return String(e)}return e}return e};var _=e=>l(e).$hostElement$;var J=(e,t,n)=>{const s=_(e);return{emit:e=>Y(s,t,{bubbles:!!(n&4),composed:!!(n&2),cancelable:!!(n&1),detail:e})}};var Y=(e,t,n)=>{const s=y.ce(t,n);e.dispatchEvent(s);return s};var Z=new WeakMap;var ee=(e,t,n)=>{let s=v.get(e);if(w&&n){s=s||new CSSStyleSheet;if(typeof s==="string"){s=t}else{s.replaceSync(t)}}else{s=t}v.set(e,s)};var te=(e,t,n)=>{var s;const r=se(t);const l=v.get(r);e=e.nodeType===11?e:m;if(l){if(typeof l==="string"){e=e.head||e;let n=Z.get(e);let o;if(!n){Z.set(e,n=new Set)}if(!n.has(r)){{o=m.createElement("style");o.innerHTML=l;const n=(s=y.T)!=null?s:F(m);if(n!=null){o.setAttribute("nonce",n)}if(!(t.l&1)){if(e.nodeName==="HEAD"){const t=e.querySelectorAll("link[rel=preconnect]");const n=t.length>0?t[t.length-1].nextSibling:e.querySelector("style");e.insertBefore(o,n)}else if("host"in e){if(w){const t=new CSSStyleSheet;t.replaceSync(l);e.adoptedStyleSheets=[t,...e.adoptedStyleSheets]}else{const t=e.querySelector("style");if(t){t.innerHTML=l+t.innerHTML}else{e.prepend(o)}}}else{e.append(o)}}if(t.l&1&&e.nodeName!=="HEAD"){e.insertBefore(o,null)}}if(t.l&4){o.innerHTML+=p}if(n){n.add(r)}}}else if(!e.adoptedStyleSheets.includes(l)){e.adoptedStyleSheets=[...e.adoptedStyleSheets,l]}}return r};var ne=e=>{const t=e.o;const n=e.$hostElement$;const s=t.l;const r=H("attachStyles",t.p);const l=te(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);if(s&10&&s&2){n["s-sc"]=l;n.classList.add(l+"-h")}r()};var se=(e,t)=>"sc-"+e.p;var re=(e,t,n,s,r,l)=>{if(n!==s){let o=a(e,t);let i=t.toLowerCase();if(t==="class"){const t=e.classList;const r=oe(n);const l=oe(s);t.remove(...r.filter((e=>e&&!l.includes(e))));t.add(...l.filter((e=>e&&!r.includes(e))))}else if(t==="style"){{for(const t in n){if(!s||s[t]==null){if(t.includes("-")){e.style.removeProperty(t)}else{e.style[t]=""}}}}for(const t in s){if(!n||s[t]!==n[t]){if(t.includes("-")){e.style.setProperty(t,s[t])}else{e.style[t]=s[t]}}}}else if(t==="key");else if(!o&&t[0]==="o"&&t[1]==="n"){if(t[2]==="-"){t=t.slice(3)}else if(a(h,i)){t=i.slice(2)}else{t=i[2]+t.slice(3)}if(n||s){const r=t.endsWith(ie);t=t.replace(ae,"");if(n){y.rel(e,t,n,r)}if(s){y.ael(e,t,s,r)}}}else{const i=M(s);if((o||i&&s!==null)&&!r){try{if(!e.tagName.includes("-")){const r=s==null?"":s;if(t==="list"){o=false}else if(n==null||e[t]!=r){if(typeof e.__lookupSetter__(t)==="function"){e[t]=r}else{e.setAttribute(t,r)}}}else{e[t]=s}}catch(e){}}if(s==null||s===false){if(s!==false||e.getAttribute(t)===""){{e.removeAttribute(t)}}}else if((!o||l&4||r)&&!i){s=s===true?"":s;{e.setAttribute(t,s)}}}}};var le=/\s/;var oe=e=>!e?[]:e.split(le);var ie="Capture";var ae=new RegExp(ie+"$");var fe=(e,t,n)=>{const s=t.O.nodeType===11&&t.O.host?t.O.host:t.O;const r=e&&e.$||E;const l=t.$||E;{for(const e of ce(Object.keys(r))){if(!(e in l)){re(s,e,r[e],void 0,n,t.l)}}}for(const e of ce(Object.keys(l))){re(s,e,r[e],l[e],n,t.l)}};function ce(e){return e.includes("ref")?[...e.filter((e=>e!=="ref")),"ref"]:e}var ue;var ve;var de=false;var pe=false;var he=(e,n,s,r)=>{const l=n.k[s];let o=0;let i;let a;if(l.S!==null){i=l.O=m.createTextNode(l.S)}else{if(!pe){pe=l.j==="svg"}i=l.O=m.createElementNS(pe?D:T,!de&&t.slotRelocation&&l.l&2?"slot-fb":l.j);if(pe&&l.j==="foreignObject"){pe=false}{fe(null,l,pe)}const n=i.getRootNode();const s=!n.querySelector("body");if(!s&&t.scoped&&L(ue)&&i["s-si"]!==ue){i.classList.add(i["s-si"]=ue)}if(l.k){for(o=0;o<l.k.length;++o){a=he(e,l,o);if(a){i.appendChild(a)}}}{if(l.j==="svg"){pe=false}else if(i.tagName==="foreignObject"){pe=true}}}i["s-hn"]=ve;return i};var me=(e,t,n,s,r,l)=>{let o=e;let i;if(o.shadowRoot&&o.tagName===ve){o=o.shadowRoot}for(;r<=l;++r){if(s[r]){i=he(null,n,r);if(i){s[r].O=i;Se(o,i,t)}}}};var ye=(e,t,n)=>{for(let s=t;s<=n;++s){const t=e[s];if(t){const e=t.O;if(e){e.remove()}}}};var be=(e,t,n,s,r=false)=>{let l=0;let o=0;let i=0;let a=0;let f=t.length-1;let c=t[0];let u=t[f];let v=s.length-1;let d=s[0];let p=s[v];let h;let m;while(l<=f&&o<=v){if(c==null){c=t[++l]}else if(u==null){u=t[--f]}else if(d==null){d=s[++o]}else if(p==null){p=s[--v]}else if(we(c,d,r)){ge(c,d,r);c=t[++l];d=s[++o]}else if(we(u,p,r)){ge(u,p,r);u=t[--f];p=s[--v]}else if(we(c,p,r)){ge(c,p,r);Se(e,c.O,u.O.nextSibling);c=t[++l];p=s[--v]}else if(we(u,d,r)){ge(u,d,r);Se(e,u.O,c.O);u=t[--f];d=s[++o]}else{i=-1;{for(a=l;a<=f;++a){if(t[a]&&t[a].C!==null&&t[a].C===d.C){i=a;break}}}if(i>=0){m=t[i];if(m.j!==d.j){h=he(t&&t[o],n,i)}else{ge(m,d,r);t[i]=void 0;h=m.O}d=s[++o]}else{h=he(t&&t[o],n,o);d=s[++o]}if(h){{Se(c.O.parentNode,h,c.O)}}}}if(l>f){me(e,s[v+1]==null?null:s[v+1].O,n,s,o,v)}else if(o>v){ye(t,l,f)}};var we=(e,t,n=false)=>{if(e.j===t.j){if(!n){return e.C===t.C}return true}return false};var ge=(e,n,s=false)=>{const r=n.O=e.O;const l=e.k;const o=n.k;const i=n.j;const a=n.S;if(a===null){{pe=i==="svg"?true:i==="foreignObject"?false:pe}{{fe(e,n,pe)}}if(l!==null&&o!==null){be(r,l,n,o,s)}else if(o!==null){if(e.S!==null){r.textContent=""}me(r,null,n,o,0,o.length-1)}else if(!s&&t.updatable&&l!==null){ye(l,0,l.length-1)}if(pe&&i==="svg"){pe=false}}else if(e.S!==a){r.data=a}};var Se=(e,t,n)=>{const s=e==null?void 0:e.insertBefore(t,n);return s};var $e=(e,t,n=false)=>{const s=e.$hostElement$;const r=e.o;const l=e.L||Q(null,null);const o=G(t)?t:B(null,null,t);ve=s.tagName;if(n&&o.$){for(const e of Object.keys(o.$)){if(s.hasAttribute(e)&&!["key","ref","style","class"].includes(e)){o.$[e]=s[e]}}}o.j=null;o.l|=4;e.L=o;o.O=l.O=s.shadowRoot||s;{ue=s["s-sc"]}de=(r.l&1)!==0;ge(l,o,n)};var ke=(e,t)=>{if(t&&!e.M&&t["s-p"]){t["s-p"].push(new Promise((t=>e.M=t)))}};var Ce=(e,t)=>{{e.l|=16}if(e.l&4){e.l|=512;return}ke(e,e.F);const n=()=>je(e,t);return O(n)};var je=(e,t)=>{const n=e.$hostElement$;const s=H("scheduleUpdate",e.o.p);const r=e.t;if(!r){throw new Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`)}let l;s();return xe(l,(()=>Ee(e,r,t)))};var xe=(e,t)=>Oe(e)?e.then(t).catch((e=>{console.error(e);t()})):t();var Oe=e=>e instanceof Promise||e&&e.then&&typeof e.then==="function";var Ee=async(e,t,n)=>{var s;const r=e.$hostElement$;const l=H("update",e.o.p);const o=r["s-rc"];if(n){ne(e)}const i=H("render",e.o.p);{De(e,t,r,n)}if(o){o.map((e=>e()));r["s-rc"]=void 0}i();l();{const t=(s=r["s-p"])!=null?s:[];const n=()=>Te(e);if(t.length===0){n()}else{Promise.all(t).then(n);e.l|=4;t.length=0}}};var De=(e,t,n,s)=>{try{t=t.render();{e.l&=~16}{e.l|=2}{{{$e(e,t,s)}}}}catch(t){f(t,e.$hostElement$)}return null};var Te=e=>{const t=e.o.p;const n=e.$hostElement$;const s=H("postUpdate",t);const r=e.t;const l=e.F;if(!(e.l&64)){e.l|=64;{Fe(n)}{Me(r,"componentDidLoad")}s();{e.v(n);if(!l){Le()}}}else{s()}{if(e.M){e.M();e.M=void 0}if(e.l&512){x((()=>Ce(e,false)))}e.l&=~(4|512)}};var Le=t=>{{Fe(m.documentElement)}x((()=>Y(h,"appload",{detail:{namespace:e}})))};var Me=(e,t,n)=>{if(e&&e[t]){try{return e[t](n)}catch(e){f(e)}}return void 0};var Fe=e=>{var n;return e.classList.add((n=t.hydratedSelectorName)!=null?n:"hydrated")};var Re=(e,t)=>l(e).i.get(t);var Ae=(e,t,n,s)=>{const r=l(e);if(!r){throw new Error(`Couldn't find host element for "${s.p}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`)}const o=r.i.get(t);const i=r.l;const a=r.t;n=X(n,s.R[t][0]);const f=Number.isNaN(o)&&Number.isNaN(n);const c=n!==o&&!f;if((!(i&8)||o===void 0)&&c){r.i.set(t,n);if(a){if((i&(2|16))===2){Ce(r,false)}}}};var Pe=(e,n,s)=>{var r,o;const i=e.prototype;if(n.R||t.watchCallback){const t=Object.entries((r=n.R)!=null?r:{});t.map((([e,[t]])=>{if(t&31||s&2&&t&32){Object.defineProperty(i,e,{get(){return Re(this,e)},set(t){Ae(this,e,t,n)},configurable:true,enumerable:true})}}));if(s&1){const s=new Map;i.attributeChangedCallback=function(e,t,r){y.jmp((()=>{var o;const a=s.get(e);if(this.hasOwnProperty(a)){r=this[a];delete this[a]}else if(i.hasOwnProperty(a)&&typeof this[a]==="number"&&this[a]==r){return}else if(a==null){const s=l(this);const i=s==null?void 0:s.l;if(i&&!(i&8)&&i&128&&r!==t){const l=s.t;const i=(o=n.A)==null?void 0:o[e];i==null?void 0:i.forEach((n=>{if(l[n]!=null){l[n].call(l,r,t,e)}}))}return}this[a]=r===null&&typeof this[a]==="boolean"?false:r}))};e.observedAttributes=Array.from(new Set([...Object.keys((o=n.A)!=null?o:{}),...t.filter((([e,t])=>t[0]&15)).map((([e,t])=>{const n=t[1]||e;s.set(n,e);return n}))]))}}return e};var Ne=async(e,t,n,s)=>{let r;if((t.l&32)===0){t.l|=32;const s=n.h;if(s){const e=u(n);if(e&&"then"in e){const t=z();r=await e;t()}else{r=e}if(!r){throw new Error(`Constructor for "${n.p}#${t.P}" was not found`)}if(!r.isProxied){Pe(r,n,2);r.isProxied=true}const s=H("createInstance",n.p);{t.l|=8}try{new r(t)}catch(e){f(e)}{t.l&=~8}s()}else{r=e.constructor;const n=e.localName;customElements.whenDefined(n).then((()=>t.l|=128))}if(r&&r.style){let e;if(typeof r.style==="string"){e=r.style}const t=se(n);if(!v.has(t)){const s=H("registerStyles",n.p);ee(t,e,!!(n.l&1));s()}}}const l=t.F;const o=()=>Ce(t,true);if(l&&l["s-rc"]){l["s-rc"].push(o)}else{o()}};var Ue=e=>{};var We=e=>{if((y.l&1)===0){const t=l(e);const n=t.o;const s=H("connectedCallback",n.p);if(!(t.l&1)){t.l|=1;{let n=e;while(n=n.parentNode||n.host){if(n["s-p"]){ke(t,t.F=n);break}}}if(n.R){Object.entries(n.R).map((([t,[n]])=>{if(n&31&&e.hasOwnProperty(t)){const n=e[t];delete e[t];e[t]=n}}))}{Ne(e,t,n)}}else{if(t==null?void 0:t.t);else if(t==null?void 0:t.u){t.u.then((()=>Ue()))}}s()}};var He=e=>{{Me(e,"disconnectedCallback")}};var ze=async e=>{if((y.l&1)===0){const t=l(e);if(t==null?void 0:t.t){He(t.t)}else if(t==null?void 0:t.u){t.u.then((()=>He(t.t)))}}};var Be=(e,t={})=>{var n;const s=H();const r=[];const o=t.exclude||[];const a=h.customElements;const f=m.head;const c=f.querySelector("meta[charset]");const u=m.createElement("style");const v=[];let b;let w=true;Object.assign(y,t);y.m=new URL(t.resourcesUrl||"./",m.baseURI).href;let g=false;e.map((e=>{e[1].map((t=>{const n={l:t[0],p:t[1],R:t[2],N:t[3]};if(n.l&4){g=true}{n.R=t[2]}const s=n.p;const f=class extends HTMLElement{constructor(e){super(e);this.hasRegisteredEventListeners=false;e=this;i(e,n);if(n.l&1){{if(!e.shadowRoot){{e.attachShadow({mode:"open"})}}else{if(e.shadowRoot.mode!=="open"){throw new Error(`Unable to re-use existing shadow root for ${n.p}! Mode is set to ${e.shadowRoot.mode} but Stencil only supports open shadow roots.`)}}}}}connectedCallback(){l(this);if(!this.hasRegisteredEventListeners){this.hasRegisteredEventListeners=true}if(b){clearTimeout(b);b=null}if(w){v.push(this)}else{y.jmp((()=>We(this)))}}disconnectedCallback(){y.jmp((()=>ze(this)))}componentOnReady(){return l(this).u}};n.h=e[0];if(!o.includes(s)&&!a.get(s)){r.push(s);a.define(s,Pe(f,n,1))}}))}));if(r.length>0){if(g){u.textContent+=p}{u.textContent+=r.sort()+d}if(u.innerHTML.length){u.setAttribute("data-styles","");const e=(n=y.T)!=null?n:F(m);if(e!=null){u.setAttribute("nonce",e)}f.insertBefore(u,c?c.nextSibling:f.firstChild)}}w=false;if(v.length){v.map((e=>e.connectedCallback()))}else{{y.jmp((()=>b=setTimeout(Le,30)))}}s()};var Qe=(e,t)=>t;var qe=e=>y.T=e;export{Qe as F,Be as b,J as c,B as h,b as p,o as r,qe as s};
|
|
3
|
+
//# sourceMappingURL=p-329c3f66.js.map
|