@searchcraft/javascript-sdk 0.13.0 → 0.13.2
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/components/{p-e30203b1.js → CoreInstanceRegistry.js} +2 -1
- package/dist/components/CoreInstanceRegistry.js.map +1 -0
- package/dist/components/defineCustomElements.js +23 -23
- package/dist/components/{p-b4b67072.js → html.js} +4 -3
- package/dist/components/html.js.map +1 -0
- package/dist/components/index.d.ts +73 -1
- package/dist/components/index.js +82 -658
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-5365011f.js → index2.js} +867 -186
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +95 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/purify.es.js +1379 -0
- package/dist/components/purify.es.js.map +1 -0
- package/dist/components/searchcraft-ad.js +2 -1
- package/dist/components/{p-87435aac.js → searchcraft-ad2.js} +14 -10
- package/dist/components/searchcraft-ad2.js.map +1 -0
- package/dist/components/searchcraft-button.js +2 -1
- package/dist/components/{p-acf23bab.js → searchcraft-button2.js} +12 -9
- package/dist/components/searchcraft-button2.js.map +1 -0
- package/dist/components/searchcraft-error-message.js +2 -1
- package/dist/components/{p-f2585cdf.js → searchcraft-error-message2.js} +10 -7
- package/dist/components/searchcraft-error-message2.js.map +1 -0
- package/dist/components/searchcraft-facet-list.js +2 -1
- package/dist/components/{p-e8d97093.js → searchcraft-facet-list2.js} +17 -12
- package/dist/components/searchcraft-facet-list2.js.map +1 -0
- package/dist/components/searchcraft-filter-panel.js +16 -13
- package/dist/components/searchcraft-filter-panel.js.map +1 -1
- package/dist/components/searchcraft-input-form.js +2 -1
- package/dist/components/{p-76d95772.js → searchcraft-input-form2.js} +21 -18
- package/dist/components/searchcraft-input-form2.js.map +1 -0
- package/dist/components/searchcraft-input-label.js +2 -1
- package/dist/components/{p-fa799946.js → searchcraft-input-label2.js} +11 -8
- package/dist/components/searchcraft-input-label2.js.map +1 -0
- package/dist/components/searchcraft-loading.js +2 -1
- package/dist/components/{p-46ddde99.js → searchcraft-loading2.js} +10 -7
- package/dist/components/searchcraft-loading2.js.map +1 -0
- package/dist/components/searchcraft-pagination.js +15 -11
- package/dist/components/searchcraft-pagination.js.map +1 -1
- package/dist/components/searchcraft-popover-button.js +11 -8
- package/dist/components/searchcraft-popover-button.js.map +1 -1
- package/dist/components/searchcraft-popover-footer.js +2 -1
- package/dist/components/{p-3d2107af.js → searchcraft-popover-footer2.js} +13 -10
- package/dist/components/searchcraft-popover-footer2.js.map +1 -0
- package/dist/components/searchcraft-popover-form.js +28 -25
- package/dist/components/searchcraft-popover-form.js.map +1 -1
- package/dist/components/searchcraft-popover-list-item.js +2 -1
- package/dist/components/{p-38b2dad0.js → searchcraft-popover-list-item2.js} +13 -10
- package/dist/components/searchcraft-popover-list-item2.js.map +1 -0
- package/dist/components/searchcraft-popover-list-view.js +2 -1
- package/dist/components/{p-90bc1590.js → searchcraft-popover-list-view2.js} +15 -12
- package/dist/components/searchcraft-popover-list-view2.js.map +1 -0
- package/dist/components/searchcraft-results-info.js +12 -9
- package/dist/components/searchcraft-results-info.js.map +1 -1
- package/dist/components/searchcraft-search-result.js +2 -1
- package/dist/components/{p-3286bbb3.js → searchcraft-search-result2.js} +12 -9
- package/dist/components/searchcraft-search-result2.js.map +1 -0
- package/dist/components/searchcraft-search-results-per-page.js +14 -10
- package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
- package/dist/components/searchcraft-search-results.js +16 -13
- package/dist/components/searchcraft-search-results.js.map +1 -1
- package/dist/components/searchcraft-select.js +2 -1
- package/dist/components/{p-73db9122.js → searchcraft-select2.js} +11 -8
- package/dist/components/searchcraft-select2.js.map +1 -0
- package/dist/components/searchcraft-slider.js +2 -1
- package/dist/components/{p-afe7ce60.js → searchcraft-slider2.js} +14 -11
- package/dist/components/searchcraft-slider2.js.map +1 -0
- package/dist/components/searchcraft-summary-box.js +15 -70
- package/dist/components/searchcraft-summary-box.js.map +1 -1
- package/dist/components/searchcraft-theme.js +10 -7
- package/dist/components/searchcraft-theme.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +2 -1
- package/dist/components/{p-16181756.js → searchcraft-toggle-button2.js} +13 -10
- package/dist/components/searchcraft-toggle-button2.js.map +1 -0
- package/dist/components/{p-d54771ef.js → units.js} +2 -1
- package/dist/components/units.js.map +1 -0
- package/dist/hydrate/index.d.ts +52 -7
- package/dist/hydrate/index.js +3374 -2599
- package/dist/hydrate/index.mjs +3374 -2601
- package/dist/types/classes/SearchcraftCore.d.ts +1 -0
- package/dist/types/clients/MeasureClient.d.ts +2 -1
- package/dist/types/clients/SearchClient.d.ts +1 -1
- package/dist/types/clients/ad-clients/AdClient.d.ts +1 -1
- package/dist/types/clients/ad-clients/NativoClient.d.ts +1 -1
- package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +1 -1
- package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +1 -1
- package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +1 -1
- package/dist/types/components/searchcraft-search-results/searchcraft-search-results.d.ts +2 -2
- package/dist/types/components.d.ts +70 -0
- package/dist/types/stencil-public-runtime.d.ts +127 -8
- package/package.json +3 -3
- package/dist/components/p-16181756.js.map +0 -1
- package/dist/components/p-3286bbb3.js.map +0 -1
- package/dist/components/p-38b2dad0.js.map +0 -1
- package/dist/components/p-3d2107af.js.map +0 -1
- package/dist/components/p-46ddde99.js.map +0 -1
- package/dist/components/p-5365011f.js.map +0 -1
- package/dist/components/p-5cdc6210.js +0 -82
- package/dist/components/p-5cdc6210.js.map +0 -1
- package/dist/components/p-73db9122.js.map +0 -1
- package/dist/components/p-76d95772.js.map +0 -1
- package/dist/components/p-87435aac.js.map +0 -1
- package/dist/components/p-90bc1590.js.map +0 -1
- package/dist/components/p-acf23bab.js.map +0 -1
- package/dist/components/p-afe7ce60.js.map +0 -1
- package/dist/components/p-b4b67072.js.map +0 -1
- package/dist/components/p-d54771ef.js.map +0 -1
- package/dist/components/p-e2a10337.js +0 -1355
- package/dist/components/p-e2a10337.js.map +0 -1
- package/dist/components/p-e30203b1.js.map +0 -1
- package/dist/components/p-e8d97093.js.map +0 -1
- package/dist/components/p-f2585cdf.js.map +0 -1
- package/dist/components/p-fa799946.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"searchcraft-popover-list-item2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-popover-list-item/searchcraft-popover-list-item.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Prop, State, h } from '@stencil/core';\nimport type {\n PopoverResultMappings,\n SearchClientResponseItem,\n SearchDocument,\n} from '@types';\nimport { getDocumentValueFromSearchResultMapping } from '@utils';\n\n/**\n * A single list item rendered in a searchcraft-popover-list-view.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-popover-list-item',\n shadow: false,\n})\nexport class SearchcraftPopoverListItem {\n @Prop() item: SearchClientResponseItem | undefined;\n @Prop() popoverResultMappings: PopoverResultMappings | undefined;\n /** The document position relative to the search results (For Measure) */\n @Prop() documentPosition = 0;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n @State() title?: string;\n @State() subtitle?: string;\n @State() href?: string;\n @State() imageSource?: string;\n @State() imageAlt?: string;\n core?: SearchcraftCore;\n private cleanupCore?: () => void;\n\n mapValuesFromDocument(document: SearchDocument) {\n this.title = getDocumentValueFromSearchResultMapping(\n document,\n this.popoverResultMappings?.title,\n );\n this.subtitle = getDocumentValueFromSearchResultMapping(\n document,\n this.popoverResultMappings?.subtitle,\n );\n this.href = getDocumentValueFromSearchResultMapping(\n document,\n this.popoverResultMappings?.href,\n );\n this.imageSource = getDocumentValueFromSearchResultMapping(\n document,\n this.popoverResultMappings?.imageSource,\n );\n this.imageAlt = getDocumentValueFromSearchResultMapping(\n document,\n this.popoverResultMappings?.imageAlt,\n );\n }\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n }\n\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n\n handleLinkClick = () => {\n if (this.core) {\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents =\n this.core.store.getState().searchClientResponseItems.length || 0;\n\n this.core.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n\n render() {\n return (\n <div class='searchcraft-popover-list-item'>\n <a\n class='searchcraft-popover-list-item-link'\n href={this.href}\n onClick={this.handleLinkClick.bind(this)}\n >\n {this.imageSource && (\n <div class='searchcraft-popover-list-item-image-wrapper'>\n <img\n alt={this.imageAlt}\n src={this.imageSource}\n class='searchcraft-popover-list-item-image'\n />\n </div>\n )}\n <div class='searchcraft-popover-list-item-content'>\n {this.title && (\n <p class='searchcraft-popover-list-item-content-title'>\n {this.title}\n </p>\n )}\n {this.subtitle && (\n <p class='searchcraft-popover-list-item-content-subtitle'>\n {this.subtitle}\n </p>\n )}\n </div>\n </a>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './
|
|
1
|
+
import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './searchcraft-popover-list-view2.js?v=0.13.2';
|
|
2
2
|
|
|
3
3
|
const SearchcraftPopoverListView = SearchcraftPopoverListView$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
5
5
|
|
|
6
6
|
export { SearchcraftPopoverListView, defineCustomElement };
|
|
7
|
+
//# sourceMappingURL=searchcraft-popover-list-view.js.map
|
|
7
8
|
|
|
8
9
|
//# sourceMappingURL=searchcraft-popover-list-view.js.map
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
2
|
-
import { r as registry } from './
|
|
3
|
-
import { d as defineCustomElement$2 } from './
|
|
4
|
-
import { d as defineCustomElement$1 } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
|
+
import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
|
|
3
|
+
import { d as defineCustomElement$2 } from './searchcraft-ad2.js?v=0.13.2';
|
|
4
|
+
import { d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.2';
|
|
5
5
|
|
|
6
6
|
const SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {
|
|
7
|
-
constructor() {
|
|
7
|
+
constructor(registerHost) {
|
|
8
8
|
super();
|
|
9
|
-
|
|
9
|
+
if (registerHost !== false) {
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
}
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* The id of the Searchcraft instance that this component should use.
|
|
@@ -112,7 +114,7 @@ const SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
112
114
|
}
|
|
113
115
|
return this.renderWithNoAds();
|
|
114
116
|
}
|
|
115
|
-
}, [
|
|
117
|
+
}, [768, "searchcraft-popover-list-view", {
|
|
116
118
|
"searchcraftId": [1, "searchcraft-id"],
|
|
117
119
|
"popoverResultMappings": [16],
|
|
118
120
|
"searchClientResponseItems": [16],
|
|
@@ -127,17 +129,17 @@ function defineCustomElement() {
|
|
|
127
129
|
const components = ["searchcraft-popover-list-view", "searchcraft-ad", "searchcraft-popover-list-item"];
|
|
128
130
|
components.forEach(tagName => { switch (tagName) {
|
|
129
131
|
case "searchcraft-popover-list-view":
|
|
130
|
-
if (!customElements.get(tagName)) {
|
|
131
|
-
customElements.define(tagName, SearchcraftPopoverListView);
|
|
132
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
133
|
+
customElements.define(transformTag(tagName), SearchcraftPopoverListView);
|
|
132
134
|
}
|
|
133
135
|
break;
|
|
134
136
|
case "searchcraft-ad":
|
|
135
|
-
if (!customElements.get(tagName)) {
|
|
137
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
136
138
|
defineCustomElement$2();
|
|
137
139
|
}
|
|
138
140
|
break;
|
|
139
141
|
case "searchcraft-popover-list-item":
|
|
140
|
-
if (!customElements.get(tagName)) {
|
|
142
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
141
143
|
defineCustomElement$1();
|
|
142
144
|
}
|
|
143
145
|
break;
|
|
@@ -145,5 +147,6 @@ function defineCustomElement() {
|
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
export { SearchcraftPopoverListView as S, defineCustomElement as d };
|
|
150
|
+
//# sourceMappingURL=searchcraft-popover-list-view2.js.map
|
|
148
151
|
|
|
149
|
-
//# sourceMappingURL=
|
|
152
|
+
//# sourceMappingURL=searchcraft-popover-list-view2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"searchcraft-popover-list-view2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-popover-list-view/searchcraft-popover-list-view.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, type JSX, Prop, h } from '@stencil/core';\nimport type {\n AdClientResponseItem,\n PopoverResultMappings,\n SearchClientResponseItem,\n SearchcraftConfig,\n} from '@types';\n\n/**\n * This web component is designed to display a list of results within a popover interface.\n * It is consumed within the `searchcraft-popover-form` component.\n *\n * @js-example\n * ```html\n * <searchcraft-popover-list-view />\n * ```\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-popover-list-view',\n shadow: false,\n})\nexport class SearchcraftPopoverListView {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n @Prop() popoverResultMappings: PopoverResultMappings | undefined;\n /**\n * The items to render in the list view.\n */\n @Prop() searchClientResponseItems: SearchClientResponseItem[] | undefined;\n @Prop() adClientResponseItems: AdClientResponseItem[] | undefined;\n @Prop() searchResultsPage!: number;\n @Prop() searchResultsPerPage!: number;\n\n private config?: SearchcraftConfig;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.config = core.config;\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n\n renderWithADMAds() {\n return (\n <div class='searchcraft-popover-list-view'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adClientResponseItem={item}\n adSource='adMarketplace'\n key={item.id}\n renderPosition='top'\n />\n ))}\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />\n ))}\n </div>\n );\n }\n\n renderWithCustomAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialInterval =\n this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (\n interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n\n itemsToRender.push(\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-popover-list-view'>{itemsToRender}</div>;\n }\n\n renderWithNativoAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialStartIndex =\n this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval =\n this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (\n interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n\n itemsToRender.push(\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-popover-list-view'>{itemsToRender}</div>;\n }\n\n renderWithNoAds() {\n return (\n <div class='searchcraft-popover-list-view'>\n {this.searchClientResponseItems?.map((item, index) => (\n <searchcraft-popover-list-item\n searchcraft-id={this.searchcraftId}\n item={item}\n key={item.id}\n popoverResultMappings={this.popoverResultMappings}\n documentPosition={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n />\n ))}\n </div>\n );\n }\n\n render() {\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithADMAds();\n }\n return this.renderWithNoAds();\n }\n}\n"],"version":3}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
2
|
-
import { r as registry } from './
|
|
3
|
-
import { f as formatNumberWithCommas } from './
|
|
4
|
-
import { h as html } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
|
+
import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
|
|
3
|
+
import { f as formatNumberWithCommas } from './units.js?v=0.13.2';
|
|
4
|
+
import { h as html } from './html.js?v=0.13.2';
|
|
5
5
|
|
|
6
6
|
const SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {
|
|
7
|
-
constructor() {
|
|
7
|
+
constructor(registerHost) {
|
|
8
8
|
super();
|
|
9
|
-
|
|
9
|
+
if (registerHost !== false) {
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
}
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* A callback function responsible for rendering the results info.
|
|
@@ -74,7 +76,7 @@ const SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class Searchcr
|
|
|
74
76
|
}, { html })
|
|
75
77
|
: `${formatNumberWithCommas(this.count)} results found in ${this.responseTime}ms`));
|
|
76
78
|
}
|
|
77
|
-
}, [
|
|
79
|
+
}, [768, "searchcraft-results-info", {
|
|
78
80
|
"template": [16],
|
|
79
81
|
"searchcraftId": [1, "searchcraft-id"],
|
|
80
82
|
"searchTerm": [32],
|
|
@@ -93,8 +95,8 @@ function defineCustomElement$1() {
|
|
|
93
95
|
const components = ["searchcraft-results-info"];
|
|
94
96
|
components.forEach(tagName => { switch (tagName) {
|
|
95
97
|
case "searchcraft-results-info":
|
|
96
|
-
if (!customElements.get(tagName)) {
|
|
97
|
-
customElements.define(tagName, SearchcraftResultsInfo$1);
|
|
98
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
99
|
+
customElements.define(transformTag(tagName), SearchcraftResultsInfo$1);
|
|
98
100
|
}
|
|
99
101
|
break;
|
|
100
102
|
} });
|
|
@@ -104,5 +106,6 @@ const SearchcraftResultsInfo = SearchcraftResultsInfo$1;
|
|
|
104
106
|
const defineCustomElement = defineCustomElement$1;
|
|
105
107
|
|
|
106
108
|
export { SearchcraftResultsInfo, defineCustomElement };
|
|
109
|
+
//# sourceMappingURL=searchcraft-results-info.js.map
|
|
107
110
|
|
|
108
111
|
//# sourceMappingURL=searchcraft-results-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"searchcraft-results-info.js","mappings":";;;;;MA0DaA,wBAAsB
|
|
1
|
+
{"file":"searchcraft-results-info.js","mappings":"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","names":["SearchcraftResultsInfo","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-results-info/searchcraft-results-info.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Prop, State, h } from '@stencil/core';\n\nimport type { ResultsInfoTemplate } from '@types';\n\nimport { formatNumberWithCommas, html } from '@utils';\n\n/**\n * This web component is designed to display the number of results returned from a search query.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftResultsInfo } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftResultsInfo } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * <!-- index.html -->\n * <searchcraft-results-info />\n * ```\n *\n * ```js\n * // index.js\n * const resultsInfo = document.querySelector('searchcraft-results-info');\n *\n * resultsInfo.template = (info, { html }) => html`\n * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms\n * `;\n * ```\n *\n * @react-example\n * ```jsx\n * <SearchcraftResultsInfo\n * template={(info, { html }) => html`\n * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms\n * `}\n * />\n * ```\n *\n * @vue-example\n * ```jsx\n * <SearchcraftResultsInfo\n * :template={(info, { html }) => html`\n * ${info.range[0]}-${info.range[1]} of ${info.count} results in ${info.responseTime}ms\n * `}\n * />\n * ```\n */\n@Component({\n tag: 'searchcraft-results-info',\n shadow: false,\n})\nexport class SearchcraftResultsInfo {\n /**\n * A callback function responsible for rendering the results info.\n */\n @Prop() template?: ResultsInfoTemplate;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n // store vars\n @State() searchTerm;\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchResultsCount;\n @State() searchClientRequestProperties;\n\n // local vars\n @State() count = 0;\n @State() range: number[] = [0, 0];\n @State() responseTime = '0';\n\n unsubscribe: () => void = () => {};\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n\n // local vars\n this.count = this.searchResultsCount;\n this.range[0] =\n this.searchResultsPage <= 1\n ? 1\n : this.searchResultsPerPage * (this.searchResultsPage - 1);\n this.range[1] = this.searchResultsPerPage * this.searchResultsPage;\n this.range[1] =\n this.range[1] > this.searchResultsCount\n ? this.searchResultsCount\n : this.range[1];\n this.responseTime = ((state.searchResponseTimeTaken || 0) * 1000).toFixed(\n 2,\n );\n });\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n\n // Only hide if there's no search term AND no initialQuery AND no results\n if (\n (!this.searchTerm && !isInitialQuery) ||\n this.searchResultsCount === 0\n ) {\n return null;\n }\n\n return (\n <p class='searchcraft-results-info'>\n {typeof this.template !== 'undefined'\n ? this.template(\n {\n range: [Number(this.range[0]), Number(this.range[1])],\n count: this.count,\n responseTime: this.responseTime,\n },\n { html },\n )\n : `${formatNumberWithCommas(this.count)} results found in ${this.responseTime}ms`}\n </p>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './
|
|
1
|
+
import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './searchcraft-search-result2.js?v=0.13.2';
|
|
2
2
|
|
|
3
3
|
const SearchcraftSearchResult = SearchcraftSearchResult$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
5
5
|
|
|
6
6
|
export { SearchcraftSearchResult, defineCustomElement };
|
|
7
|
+
//# sourceMappingURL=searchcraft-search-result.js.map
|
|
7
8
|
|
|
8
9
|
//# sourceMappingURL=searchcraft-search-result.js.map
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
|
+
import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
|
|
3
|
+
import { h as html } from './html.js?v=0.13.2';
|
|
4
4
|
|
|
5
5
|
const SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResult extends H {
|
|
6
|
-
constructor() {
|
|
6
|
+
constructor(registerHost) {
|
|
7
7
|
super();
|
|
8
|
-
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
9
11
|
}
|
|
10
12
|
item;
|
|
11
13
|
/**
|
|
@@ -79,7 +81,7 @@ const SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class Searchcra
|
|
|
79
81
|
}
|
|
80
82
|
return (h("div", { class: 'searchcraft-search-result', innerHTML: this.templateHtml, onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }));
|
|
81
83
|
}
|
|
82
|
-
}, [
|
|
84
|
+
}, [768, "searchcraft-search-result", {
|
|
83
85
|
"item": [16],
|
|
84
86
|
"index": [2],
|
|
85
87
|
"documentPosition": [2, "document-position"],
|
|
@@ -94,13 +96,14 @@ function defineCustomElement() {
|
|
|
94
96
|
const components = ["searchcraft-search-result"];
|
|
95
97
|
components.forEach(tagName => { switch (tagName) {
|
|
96
98
|
case "searchcraft-search-result":
|
|
97
|
-
if (!customElements.get(tagName)) {
|
|
98
|
-
customElements.define(tagName, SearchcraftSearchResult);
|
|
99
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
100
|
+
customElements.define(transformTag(tagName), SearchcraftSearchResult);
|
|
99
101
|
}
|
|
100
102
|
break;
|
|
101
103
|
} });
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
export { SearchcraftSearchResult as S, defineCustomElement as d };
|
|
107
|
+
//# sourceMappingURL=searchcraft-search-result2.js.map
|
|
105
108
|
|
|
106
|
-
//# sourceMappingURL=
|
|
109
|
+
//# sourceMappingURL=searchcraft-search-result2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"searchcraft-search-result2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-search-result/searchcraft-search-result.tsx"],"sourcesContent":["import { Component, Element, Prop, State, h } from '@stencil/core';\nimport type {\n SearchClientResponseItem,\n SearchResultTemplate,\n SearchResultTemplateData,\n} from '@types';\n\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { html } from '@utils';\n\n/**\n * This web component is designed to display detailed information for a single search result. Once a query is submitted, the component formats and presents the result.\n *\n * @internal\n */\n@Component({\n tag: 'searchcraft-search-result',\n shadow: false,\n})\nexport class SearchcraftSearchResult {\n @Prop() item?: SearchClientResponseItem;\n /**\n * The index.\n */\n @Prop() index!: number;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n @Prop() documentPosition = 0;\n /**\n * A callback function responsible for rendering a result.\n */\n @Prop() template?: SearchResultTemplate<SearchResultTemplateData>;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n @State() templateHtml: string | undefined;\n @Element() hostElement?: HTMLElement;\n core?: SearchcraftCore;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.core = core;\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n\n if (this.item) {\n try {\n this.templateHtml = this.template?.(this.item.document, this.index, {\n html,\n source_index: this.item.source_index,\n });\n } catch (error) {\n console.error('Invalid search result template:', error);\n }\n }\n }\n\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n\n handleResultContainerClick = (event: MouseEvent) => {\n if (!event.target) {\n return;\n }\n\n const target = event.target as HTMLElement;\n const link = target.closest('a');\n\n if (\n !link ||\n !this.hostElement?.contains(link) ||\n !this.core ||\n !this.core.measureClient\n ) {\n return;\n }\n\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents =\n this.core.store.getState().searchClientResponseItems.length || 0;\n\n this.core.measureClient.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n };\n\n handleKeyDown = () => {};\n\n render() {\n if (!this.item) {\n return;\n }\n\n if (typeof this.template === 'undefined') {\n return (\n <div\n class='searchcraft-search-result searchcraft-search-result-no-template'\n onClick={this.handleResultContainerClick}\n onKeyDown={this.handleKeyDown}\n >\n {Object.entries(this.item.document).map(([key, value]) => (\n <p key={key}>\n <strong>{key}</strong>: {value}\n </p>\n ))}\n </div>\n );\n }\n\n return (\n <div\n class='searchcraft-search-result'\n innerHTML={this.templateHtml}\n onClick={this.handleResultContainerClick}\n onKeyDown={this.handleKeyDown}\n />\n );\n }\n}\n"],"version":3}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
2
|
-
import { r as registry } from './
|
|
3
|
-
import { d as defineCustomElement$2 } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
|
+
import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
|
|
3
|
+
import { d as defineCustomElement$2 } from './searchcraft-select2.js?v=0.13.2';
|
|
4
4
|
|
|
5
5
|
const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {
|
|
6
|
-
constructor() {
|
|
6
|
+
constructor(registerHost) {
|
|
7
7
|
super();
|
|
8
|
-
|
|
8
|
+
if (registerHost !== false) {
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
}
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).
|
|
@@ -59,7 +61,8 @@ const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class
|
|
|
59
61
|
const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&
|
|
60
62
|
this.searchTerm.trim() === '';
|
|
61
63
|
// early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results
|
|
62
|
-
if ((!this.searchTerm && !isInitialQuery) ||
|
|
64
|
+
if ((!this.searchTerm && !isInitialQuery) ||
|
|
65
|
+
this.searchResultsPagesCount <= 1) {
|
|
63
66
|
return;
|
|
64
67
|
}
|
|
65
68
|
return (h("div", { class: 'searchcraft-search-results-per-page' }, h("div", { class: 'searchcraft-search-results-per-page-select' }, h("label", { class: 'searchcraft-search-results-per-page-select-label', htmlFor: 'searchcraft-search-results-per-page-select-input' }, "Results Per Page"), h("div", { class: 'searchcraft-search-results-per-page-select-input' }, h("searchcraft-select", { inputId: 'searchcraft-search-results-per-page-select-input', name: 'results-per-page', options: [...Array(5)].map((_, index) => {
|
|
@@ -74,7 +77,7 @@ const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class
|
|
|
74
77
|
this.setSearchResultsPage(1);
|
|
75
78
|
} })))));
|
|
76
79
|
}
|
|
77
|
-
}, [
|
|
80
|
+
}, [768, "searchcraft-search-results-per-page", {
|
|
78
81
|
"increment": [8],
|
|
79
82
|
"searchcraftId": [1, "searchcraft-id"],
|
|
80
83
|
"searchTerm": [32],
|
|
@@ -94,12 +97,12 @@ function defineCustomElement$1() {
|
|
|
94
97
|
const components = ["searchcraft-search-results-per-page", "searchcraft-select"];
|
|
95
98
|
components.forEach(tagName => { switch (tagName) {
|
|
96
99
|
case "searchcraft-search-results-per-page":
|
|
97
|
-
if (!customElements.get(tagName)) {
|
|
98
|
-
customElements.define(tagName, SearchcraftSearchResultsPerPage$1);
|
|
100
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
101
|
+
customElements.define(transformTag(tagName), SearchcraftSearchResultsPerPage$1);
|
|
99
102
|
}
|
|
100
103
|
break;
|
|
101
104
|
case "searchcraft-select":
|
|
102
|
-
if (!customElements.get(tagName)) {
|
|
105
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
103
106
|
defineCustomElement$2();
|
|
104
107
|
}
|
|
105
108
|
break;
|
|
@@ -110,5 +113,6 @@ const SearchcraftSearchResultsPerPage = SearchcraftSearchResultsPerPage$1;
|
|
|
110
113
|
const defineCustomElement = defineCustomElement$1;
|
|
111
114
|
|
|
112
115
|
export { SearchcraftSearchResultsPerPage, defineCustomElement };
|
|
116
|
+
//# sourceMappingURL=searchcraft-search-results-per-page.js.map
|
|
113
117
|
|
|
114
118
|
//# sourceMappingURL=searchcraft-search-results-per-page.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"searchcraft-search-results-per-page.js","mappings":";;;;MAqCaA,iCAA+B
|
|
1
|
+
{"file":"searchcraft-search-results-per-page.js","mappings":"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","names":["SearchcraftSearchResultsPerPage","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-search-results-per-page/searchcraft-search-results-per-page.tsx"],"sourcesContent":["import type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport { Component, Prop, State, h } from '@stencil/core';\n\n/**\n * This web component is designed to choose the number of search results displayed.\n *\n * @react-import\n * ```jsx\n * import { SearchcraftSearchResultsPerPage } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftSearchResultsPerPage } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * <!-- index.html -->\n * <searchcraft-search-results-per-page increment=\"20\" />\n * ```\n *\n * @react-example\n * ```jsx\n * <SearchcraftSearchResultsPerPage increment={20} />\n * ```\n *\n * @vue-example\n * ```jsx\n * <SearchcraftSearchResultsPerPage increment=\"20\" />\n * ```\n */\n@Component({\n tag: 'searchcraft-search-results-per-page',\n shadow: false,\n})\nexport class SearchcraftSearchResultsPerPage {\n /**\n * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).\n * The base value is defined by the `searchResultsPerPage` option in the configuration.\n */\n @Prop() increment: string | number = 20;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n\n // store vars\n @State() searchTerm;\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchResultsCount;\n @State() searchResultsPagesCount;\n @State() searchClientRequestProperties;\n\n // local vars\n @State() initialSearchResultsPerPage;\n\n // store functions\n @State() setSearchResultsPerPage: (perPage: number) => void = () => {};\n @State() setSearchResultsPage: (page: number) => void = () => {};\n\n private unsubscribe: () => void = () => {};\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n\n // local vars\n this.searchResultsPagesCount = Math.ceil(\n this.searchResultsCount / this.searchResultsPerPage,\n );\n\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n this.setSearchResultsPerPage = state.setSearchResultsPerPage;\n });\n\n this.initialSearchResultsPerPage =\n core.store.getState().searchResultsPerPage;\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery =\n typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n\n // early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results\n if (\n (!this.searchTerm && !isInitialQuery) ||\n this.searchResultsPagesCount <= 1\n ) {\n return;\n }\n\n return (\n <div class='searchcraft-search-results-per-page'>\n <div class='searchcraft-search-results-per-page-select'>\n <label\n class='searchcraft-search-results-per-page-select-label'\n htmlFor='searchcraft-search-results-per-page-select-input'\n >\n Results Per Page\n </label>\n <div class='searchcraft-search-results-per-page-select-input'>\n <searchcraft-select\n inputId='searchcraft-search-results-per-page-select-input'\n name='results-per-page'\n options={[...Array(5)].map((_, index) => {\n const value =\n this.initialSearchResultsPerPage +\n Number(this.increment) * index;\n return {\n label: `${value}`,\n value,\n };\n })}\n onSelectChange={(event) => {\n this.setSearchResultsPerPage(Number(event.detail));\n this.setSearchResultsPage(1);\n }}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, h } from './
|
|
2
|
-
import { r as registry } from './
|
|
3
|
-
import { d as defineCustomElement$4 } from './
|
|
4
|
-
import { d as defineCustomElement$3 } from './
|
|
5
|
-
import { d as defineCustomElement$2 } from './
|
|
1
|
+
import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
|
+
import { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';
|
|
3
|
+
import { d as defineCustomElement$4 } from './searchcraft-ad2.js?v=0.13.2';
|
|
4
|
+
import { d as defineCustomElement$3 } from './searchcraft-error-message2.js?v=0.13.2';
|
|
5
|
+
import { d as defineCustomElement$2 } from './searchcraft-search-result2.js?v=0.13.2';
|
|
6
6
|
|
|
7
7
|
const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {
|
|
8
|
-
constructor() {
|
|
8
|
+
constructor(registerHost) {
|
|
9
9
|
super();
|
|
10
|
-
|
|
10
|
+
if (registerHost !== false) {
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
}
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* The id of the Searchcraft instance that this component should use.
|
|
@@ -148,7 +150,7 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
148
150
|
}
|
|
149
151
|
return this.renderWithNoAds();
|
|
150
152
|
}
|
|
151
|
-
}, [
|
|
153
|
+
}, [772, "searchcraft-search-results", {
|
|
152
154
|
"searchcraftId": [1, "searchcraft-id"],
|
|
153
155
|
"initialQuery": [1, "initial-query"],
|
|
154
156
|
"template": [16],
|
|
@@ -167,22 +169,22 @@ function defineCustomElement$1() {
|
|
|
167
169
|
const components = ["searchcraft-search-results", "searchcraft-ad", "searchcraft-error-message", "searchcraft-search-result"];
|
|
168
170
|
components.forEach(tagName => { switch (tagName) {
|
|
169
171
|
case "searchcraft-search-results":
|
|
170
|
-
if (!customElements.get(tagName)) {
|
|
171
|
-
customElements.define(tagName, SearchcraftSearchResults$1);
|
|
172
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
173
|
+
customElements.define(transformTag(tagName), SearchcraftSearchResults$1);
|
|
172
174
|
}
|
|
173
175
|
break;
|
|
174
176
|
case "searchcraft-ad":
|
|
175
|
-
if (!customElements.get(tagName)) {
|
|
177
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
176
178
|
defineCustomElement$4();
|
|
177
179
|
}
|
|
178
180
|
break;
|
|
179
181
|
case "searchcraft-error-message":
|
|
180
|
-
if (!customElements.get(tagName)) {
|
|
182
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
181
183
|
defineCustomElement$3();
|
|
182
184
|
}
|
|
183
185
|
break;
|
|
184
186
|
case "searchcraft-search-result":
|
|
185
|
-
if (!customElements.get(tagName)) {
|
|
187
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
186
188
|
defineCustomElement$2();
|
|
187
189
|
}
|
|
188
190
|
break;
|
|
@@ -193,5 +195,6 @@ const SearchcraftSearchResults = SearchcraftSearchResults$1;
|
|
|
193
195
|
const defineCustomElement = defineCustomElement$1;
|
|
194
196
|
|
|
195
197
|
export { SearchcraftSearchResults, defineCustomElement };
|
|
198
|
+
//# sourceMappingURL=searchcraft-search-results.js.map
|
|
196
199
|
|
|
197
200
|
//# sourceMappingURL=searchcraft-search-results.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"searchcraft-search-results.js","mappings":"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","names":["SearchcraftSearchResults"],"sources":["src/components/searchcraft-search-results/searchcraft-search-results.tsx"],"sourcesContent":["import { Component, h, Prop, State, type JSX } from '@stencil/core';\n\nimport type {\n AdClientResponseItem,\n SearchClientResponseItem,\n SearchcraftConfig,\n SearchResultTemplate,\n SearchResultTemplateData,\n} from '@types';\n\nimport type { SearchcraftState } from '@store';\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\n\n/**\n * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.\n *\n *\n * @react-import\n * ```jsx\n * import { SearchcraftSearchResults } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftSearchResults } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * <!-- index.html -->\n * <searchcraft-search-results\n * ad-interval=\"4\"\n * place-ad-at-start=\"true\"\n * />\n * ```\n *\n * ```js\n * // index.js\n * const searchResults = document.querySelector('searchcraft-search-results');\n *\n * searchResults.template = (item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `;\n * ```\n *\n * @react-example\n * ```jsx\n * <SearchcraftSearchResults\n * adInterval={4}\n * placeAdAtState={true}\n * template={(item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `}\n * />\n * ```\n *\n * @vue-example\n * ```jsx\n * <SearchcraftSearchResults\n * adInterval={4}\n * placeAdAtState={true}\n * :template={(item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `}\n * />\n * ```\n */\n@Component({\n tag: 'searchcraft-search-results',\n})\nexport class SearchcraftSearchResults {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * A query that will appears when the component initializes or the search term is ''..\n */\n @Prop() initialQuery?: string;\n\n /**\n * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.\n */\n @Prop() template?: SearchResultTemplate<SearchResultTemplateData>;\n\n @State() adClientResponseItems: AdClientResponseItem[] = [];\n @State() config?: SearchcraftConfig;\n @State() isSearchInProgress = true;\n @State() searchClientResponseItems?: SearchClientResponseItem[];\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchTerm = '';\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n const state = core.store.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n\n this.unsubscribe = core.store.subscribe((state) =>\n this.handleStateChange(state),\n );\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n handleStateChange(state: SearchcraftState) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchTerm = state.searchTerm;\n }\n\n renderEmptyState() {\n return (\n <div class='searchcraft-search-results-empty-state'>\n <slot name='empty-search' />\n </div>\n );\n }\n\n renderNoResultsFoundState() {\n return (\n <div class='searchcraft-search-results'>\n <div class='searchcraft-search-results-error-message'>\n <searchcraft-error-message>\n No search results found for \"{this.searchTerm}\" query.\n </searchcraft-error-message>\n </div>\n </div>\n );\n }\n\n renderWithADMAds() {\n const items = this.searchClientResponseItems || [];\n\n return (\n <div class='searchcraft-search-results'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='adMarketplace'\n adClientResponseItem={item}\n key={item.id}\n renderPosition='top'\n />\n ))}\n {items.map((item, index) => (\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />\n ))}\n </div>\n );\n }\n\n renderWithCustomAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialInterval =\n this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (\n interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-search-results'>{itemsToRender}</div>;\n }\n\n renderWithNativoAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialStartIndex =\n this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval =\n this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (\n interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-search-results'>{itemsToRender}</div>;\n }\n\n renderWithNoAds() {\n const items = this.searchClientResponseItems || [];\n\n return (\n <div class='searchcraft-search-results'>\n {items.map((item, index) => (\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />\n ))}\n </div>\n );\n }\n\n render() {\n const searchClientResponseItems = this.searchClientResponseItems || [];\n\n if (searchClientResponseItems.length === 0 && !this.isSearchInProgress) {\n return this.renderEmptyState();\n }\n\n if (\n this.searchTerm.length > 0 &&\n searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress\n ) {\n return this.renderNoResultsFoundState();\n }\n\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n return this.renderWithNoAds();\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"searchcraft-search-results.js","mappings":"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","names":["SearchcraftSearchResults","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/searchcraft-search-results/searchcraft-search-results.tsx"],"sourcesContent":["import { Component, type JSX, Prop, State, h } from '@stencil/core';\n\nimport type {\n AdClientResponseItem,\n SearchClientResponseItem,\n SearchResultTemplate,\n SearchResultTemplateData,\n SearchcraftConfig,\n} from '@types';\n\nimport type { SearchcraftCore } from '@classes';\nimport { registry } from '@classes/CoreInstanceRegistry';\nimport type { SearchcraftState } from '@store';\n\n/**\n * This web component is responsible for displaying the results of a search query. Once a query is submitted, the component formats and presents an ordered list of the results.\n *\n *\n * @react-import\n * ```jsx\n * import { SearchcraftSearchResults } from \"@searchcraft/react-sdk\";\n * ```\n *\n * @vue-import\n * ```jsx\n * import { SearchcraftSearchResults } from \"@searchcraft/vue-sdk\";\n * ```\n *\n * @js-example\n * ```html\n * <!-- index.html -->\n * <searchcraft-search-results\n * ad-interval=\"4\"\n * place-ad-at-start=\"true\"\n * />\n * ```\n *\n * ```js\n * // index.js\n * const searchResults = document.querySelector('searchcraft-search-results');\n *\n * searchResults.template = (item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `;\n * ```\n *\n * @react-example\n * ```jsx\n * <SearchcraftSearchResults\n * adInterval={4}\n * placeAdAtState={true}\n * template={(item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `}\n * />\n * ```\n *\n * @vue-example\n * ```jsx\n * <SearchcraftSearchResults\n * adInterval={4}\n * placeAdAtState={true}\n * :template={(item, index, { html }) => html`\n * <h2>${item.title}</h2>\n * `}\n * />\n * ```\n */\n@Component({\n tag: 'searchcraft-search-results',\n})\nexport class SearchcraftSearchResults {\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n @Prop() searchcraftId?: string;\n /**\n * A query that will appears when the component initializes or the search term is ''..\n */\n @Prop() initialQuery?: string;\n\n /**\n * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.\n */\n @Prop() template?: SearchResultTemplate<SearchResultTemplateData>;\n\n @State() adClientResponseItems: AdClientResponseItem[] = [];\n @State() config?: SearchcraftConfig;\n @State() isSearchInProgress = true;\n @State() searchClientResponseItems?: SearchClientResponseItem[];\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchTerm = '';\n\n private unsubscribe?: () => void;\n private cleanupCore?: () => void;\n\n onCoreAvailable(core: SearchcraftCore) {\n const state = core.store.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n\n this.unsubscribe = core.store.subscribe((state) =>\n this.handleStateChange(state),\n );\n }\n\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(\n this.searchcraftId,\n this.onCoreAvailable.bind(this),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n\n handleStateChange(state: SearchcraftState) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchTerm = state.searchTerm;\n }\n\n renderEmptyState() {\n return (\n <div class='searchcraft-search-results-empty-state'>\n <slot name='empty-search' />\n </div>\n );\n }\n\n renderNoResultsFoundState() {\n return (\n <div class='searchcraft-search-results'>\n <div class='searchcraft-search-results-error-message'>\n <searchcraft-error-message>\n No search results found for \"{this.searchTerm}\" query.\n </searchcraft-error-message>\n </div>\n </div>\n );\n }\n\n renderWithADMAds() {\n const items = this.searchClientResponseItems || [];\n\n return (\n <div class='searchcraft-search-results'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='adMarketplace'\n adClientResponseItem={item}\n key={item.id}\n renderPosition='top'\n />\n ))}\n {items.map((item, index) => (\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />\n ))}\n </div>\n );\n }\n\n renderWithCustomAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialInterval =\n this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (\n interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Custom'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-search-results'>{itemsToRender}</div>;\n }\n\n renderWithNativoAds() {\n const itemsToRender: JSX.Element[] = [];\n const interstitialStartIndex =\n this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval =\n this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity =\n this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='top'\n />,\n );\n }\n\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (\n interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval\n ) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />,\n );\n });\n\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n searchcraft-id={this.searchcraftId}\n adSource='Nativo'\n key={`${n}-ad`}\n renderPosition='bottom'\n />,\n );\n }\n\n return <div class='searchcraft-search-results'>{itemsToRender}</div>;\n }\n\n renderWithNoAds() {\n const items = this.searchClientResponseItems || [];\n\n return (\n <div class='searchcraft-search-results'>\n {items.map((item, index) => (\n <searchcraft-search-result\n searchcraft-id={this.searchcraftId}\n key={item.id}\n document-position={\n this.searchResultsPerPage * (this.searchResultsPage - 1) + index\n }\n index={index}\n item={item}\n template={this.template}\n />\n ))}\n </div>\n );\n }\n\n render() {\n const searchClientResponseItems = this.searchClientResponseItems || [];\n\n if (searchClientResponseItems.length === 0 && !this.isSearchInProgress) {\n return this.renderEmptyState();\n }\n\n if (\n this.searchTerm.length > 0 &&\n searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress\n ) {\n return this.renderNoResultsFoundState();\n }\n\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n return this.renderWithNoAds();\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './
|
|
1
|
+
import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './searchcraft-select2.js?v=0.13.2';
|
|
2
2
|
|
|
3
3
|
const SearchcraftSelect = SearchcraftSelect$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
5
5
|
|
|
6
6
|
export { SearchcraftSelect, defineCustomElement };
|
|
7
|
+
//# sourceMappingURL=searchcraft-select.js.map
|
|
7
8
|
|
|
8
9
|
//# sourceMappingURL=searchcraft-select.js.map
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { p as proxyCustomElement, H, c as createEvent, h } from './
|
|
1
|
+
import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';
|
|
2
2
|
|
|
3
3
|
const SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {
|
|
4
|
-
constructor() {
|
|
4
|
+
constructor(registerHost) {
|
|
5
5
|
super();
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if (registerHost !== false) {
|
|
7
|
+
this.__registerHost();
|
|
8
|
+
}
|
|
9
|
+
this.selectChange = createEvent(this, "selectChange");
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* The caption displayed below the select input.
|
|
@@ -54,7 +56,7 @@ const SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSele
|
|
|
54
56
|
return (h("option", { key: value, value: value, selected: selected }, label));
|
|
55
57
|
})), h("svg", { key: '0ec6892b529f2e70027aadea47208582a65a97b7', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h("title", { key: 'bced6b62378491d1d1c629b602d7d033d912c761' }, "Select dropdown icon"), h("path", { key: '659f8ebf9129e2e7941da949d29688c41c1472bb', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', "stroke-width": '1.5', "stroke-linecap": 'round', "stroke-linejoin": 'round' }))), this.caption && (h("p", { key: '51217d926f68f79b6c3514f5fd769b56549fdce9', class: 'searchcraft-select-caption' }, this.caption))));
|
|
56
58
|
}
|
|
57
|
-
}, [
|
|
59
|
+
}, [768, "searchcraft-select", {
|
|
58
60
|
"caption": [1],
|
|
59
61
|
"disabled": [4],
|
|
60
62
|
"inputId": [1, "input-id"],
|
|
@@ -73,13 +75,14 @@ function defineCustomElement() {
|
|
|
73
75
|
const components = ["searchcraft-select"];
|
|
74
76
|
components.forEach(tagName => { switch (tagName) {
|
|
75
77
|
case "searchcraft-select":
|
|
76
|
-
if (!customElements.get(tagName)) {
|
|
77
|
-
customElements.define(tagName, SearchcraftSelect);
|
|
78
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
79
|
+
customElements.define(transformTag(tagName), SearchcraftSelect);
|
|
78
80
|
}
|
|
79
81
|
break;
|
|
80
82
|
} });
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export { SearchcraftSelect as S, defineCustomElement as d };
|
|
86
|
+
//# sourceMappingURL=searchcraft-select2.js.map
|
|
84
87
|
|
|
85
|
-
//# sourceMappingURL=
|
|
88
|
+
//# sourceMappingURL=searchcraft-select2.js.map
|