@searchcraft/javascript-sdk 0.10.6 → 0.10.7
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/index.d.ts +11 -4
- package/dist/components/index.js +4 -4
- package/dist/components/{p-b54873ff.js → p-062d6b80.js} +122 -110
- package/dist/components/p-062d6b80.js.map +1 -0
- package/dist/components/{p-f2976b33.js → p-274c5cc8.js} +2 -2
- package/dist/components/{p-f2976b33.js.map → p-274c5cc8.js.map} +1 -1
- package/dist/components/{p-2735dceb.js → p-320e3895.js} +2 -2
- package/dist/components/{p-2735dceb.js.map → p-320e3895.js.map} +1 -1
- package/dist/components/{p-a7d611cd.js → p-acab4d41.js} +2 -2
- package/dist/components/{p-a7d611cd.js.map → p-acab4d41.js.map} +1 -1
- package/dist/components/{p-6e5ed641.js → p-adc6236e.js} +80 -35
- package/dist/components/p-adc6236e.js.map +1 -0
- package/dist/components/{p-aba24c85.js → p-b01f8216.js} +11 -11
- package/dist/components/p-b01f8216.js.map +1 -0
- package/dist/components/{p-9f4c50ed.js → p-b4cac872.js} +2 -2
- package/dist/components/{p-9f4c50ed.js.map → p-b4cac872.js.map} +1 -1
- package/dist/components/{p-b194d081.js → p-e99cd628.js} +2 -2
- package/dist/components/{p-b194d081.js.map → p-e99cd628.js.map} +1 -1
- package/dist/components/{p-75134ca7.js → p-ea48ccae.js} +2 -2
- package/dist/components/{p-75134ca7.js.map → p-ea48ccae.js.map} +1 -1
- package/dist/components/searchcraft-ad.js +1 -1
- package/dist/components/searchcraft-facet-list.js +1 -1
- package/dist/components/searchcraft-filter-panel.js +3 -3
- package/dist/components/searchcraft-input-form.js +1 -1
- package/dist/components/searchcraft-pagination.js +1 -1
- package/dist/components/searchcraft-popover-button.js +1 -1
- package/dist/components/searchcraft-popover-footer.js +1 -1
- package/dist/components/searchcraft-popover-form.js +6 -6
- package/dist/components/searchcraft-popover-list-item.js +1 -1
- package/dist/components/searchcraft-popover-list-view.js +1 -1
- package/dist/components/searchcraft-results-info.js +1 -1
- package/dist/components/searchcraft-search-result.js +1 -1
- package/dist/components/searchcraft-search-results-per-page.js +1 -1
- package/dist/components/searchcraft-search-results.js +10 -10
- package/dist/components/searchcraft-search-results.js.map +1 -1
- package/dist/components/searchcraft-toggle-button.js +1 -1
- package/dist/hydrate/index.js +144 -99
- package/dist/hydrate/index.mjs +144 -99
- package/dist/types/components/searchcraft-ad/searchcraft-ad.d.ts +22 -2
- package/dist/types/components.d.ts +8 -2
- package/package.json +3 -3
- package/dist/components/p-6e5ed641.js.map +0 -1
- package/dist/components/p-aba24c85.js.map +0 -1
- package/dist/components/p-b54873ff.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
|
-
import { s as searchcraftStore } from './p-
|
|
2
|
+
import { s as searchcraftStore } from './p-062d6b80.js';
|
|
3
3
|
import { h as html } from './p-810a7850.js';
|
|
4
4
|
|
|
5
5
|
const SearchcraftPopoverButton$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverButton extends H {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as SearchcraftPopoverFooter$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { S as SearchcraftPopoverFooter$1, d as defineCustomElement$1 } from './p-b4cac872.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftPopoverFooter = SearchcraftPopoverFooter$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
2
|
import { c as classNames } from './p-5cdc6210.js';
|
|
3
|
-
import { s as searchcraftStore } from './p-
|
|
4
|
-
import { d as defineCustomElement$9 } from './p-
|
|
3
|
+
import { s as searchcraftStore } from './p-062d6b80.js';
|
|
4
|
+
import { d as defineCustomElement$9 } from './p-adc6236e.js';
|
|
5
5
|
import { d as defineCustomElement$8 } from './p-acf23bab.js';
|
|
6
6
|
import { d as defineCustomElement$7 } from './p-f2585cdf.js';
|
|
7
|
-
import { d as defineCustomElement$6 } from './p-
|
|
7
|
+
import { d as defineCustomElement$6 } from './p-acab4d41.js';
|
|
8
8
|
import { d as defineCustomElement$5 } from './p-1adf78b9.js';
|
|
9
|
-
import { d as defineCustomElement$4 } from './p-
|
|
10
|
-
import { d as defineCustomElement$3 } from './p-
|
|
11
|
-
import { d as defineCustomElement$2 } from './p-
|
|
9
|
+
import { d as defineCustomElement$4 } from './p-b4cac872.js';
|
|
10
|
+
import { d as defineCustomElement$3 } from './p-320e3895.js';
|
|
11
|
+
import { d as defineCustomElement$2 } from './p-b01f8216.js';
|
|
12
12
|
|
|
13
13
|
const SearchcraftPopoverForm$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverForm extends H {
|
|
14
14
|
constructor() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './p-320e3895.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftPopoverListItem = SearchcraftPopoverListItem$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './p-b01f8216.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftPopoverListView = SearchcraftPopoverListView$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
|
-
import { s as searchcraftStore } from './p-
|
|
2
|
+
import { s as searchcraftStore } from './p-062d6b80.js';
|
|
3
3
|
import { f as formatNumberWithCommas } from './p-d54771ef.js';
|
|
4
4
|
import { h as html } from './p-810a7850.js';
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './p-274c5cc8.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftSearchResult = SearchcraftSearchResult$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
|
-
import { s as searchcraftStore } from './p-
|
|
2
|
+
import { s as searchcraftStore } from './p-062d6b80.js';
|
|
3
3
|
import { d as defineCustomElement$2 } from './p-73db9122.js';
|
|
4
4
|
|
|
5
5
|
const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-5365011f.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { s as searchcraftStore } from './p-062d6b80.js';
|
|
3
|
+
import { d as defineCustomElement$4 } from './p-adc6236e.js';
|
|
4
4
|
import { d as defineCustomElement$3 } from './p-f2585cdf.js';
|
|
5
|
-
import { d as defineCustomElement$2 } from './p-
|
|
5
|
+
import { d as defineCustomElement$2 } from './p-274c5cc8.js';
|
|
6
6
|
|
|
7
7
|
const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {
|
|
8
8
|
constructor() {
|
|
@@ -66,7 +66,7 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
66
66
|
: this.initialSearchClientResponseItems?.length
|
|
67
67
|
? this.initialSearchClientResponseItems
|
|
68
68
|
: [];
|
|
69
|
-
return (h("div", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (h("searchcraft-ad", { adSource: 'adMarketplace', adClientResponseItem: item,
|
|
69
|
+
return (h("div", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (h("searchcraft-ad", { adSource: 'adMarketplace', adClientResponseItem: item, key: item.id, renderPosition: 'top' }))), items.map((item, index) => (h("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));
|
|
70
70
|
}
|
|
71
71
|
renderWithCustomAds() {
|
|
72
72
|
const itemsToRender = [];
|
|
@@ -81,7 +81,7 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
81
81
|
: [];
|
|
82
82
|
// Renders ads at beginning
|
|
83
83
|
for (let n = 0; n < adStartQuantity; n++) {
|
|
84
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom',
|
|
84
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom', key: `${n}-ad`, renderPosition: 'top' }));
|
|
85
85
|
}
|
|
86
86
|
// Renders search results + interstitial ads
|
|
87
87
|
items.forEach((item, index) => {
|
|
@@ -90,14 +90,14 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
90
90
|
index + interstitialInterval < items.length &&
|
|
91
91
|
index >= interstitialInterval) {
|
|
92
92
|
for (let n = 0; n < interstitialQuantity; n++) {
|
|
93
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom',
|
|
93
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
itemsToRender.push(h("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));
|
|
97
97
|
});
|
|
98
98
|
// Renders ads at end
|
|
99
99
|
for (let n = 0; n < adEndQuantity; n++) {
|
|
100
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom',
|
|
100
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Custom', key: `${n}-ad`, renderPosition: 'bottom' }));
|
|
101
101
|
}
|
|
102
102
|
return h("div", { class: 'searchcraft-search-results' }, itemsToRender);
|
|
103
103
|
}
|
|
@@ -115,7 +115,7 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
115
115
|
: [];
|
|
116
116
|
// Renders ads at beginning
|
|
117
117
|
for (let n = 0; n < adStartQuantity; n++) {
|
|
118
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo',
|
|
118
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'top' }));
|
|
119
119
|
}
|
|
120
120
|
// Renders search results + interstitial ads
|
|
121
121
|
items.forEach((item, index) => {
|
|
@@ -124,14 +124,14 @@ const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class Search
|
|
|
124
124
|
index + interstitialInterval < items.length &&
|
|
125
125
|
index >= interstitialInterval) {
|
|
126
126
|
for (let n = 0; n < interstitialQuantity; n++) {
|
|
127
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo',
|
|
127
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
itemsToRender.push(h("searchcraft-search-result", { key: item.id, "document-position": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));
|
|
131
131
|
});
|
|
132
132
|
// Renders ads at end
|
|
133
133
|
for (let n = 0; n < adEndQuantity; n++) {
|
|
134
|
-
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo',
|
|
134
|
+
itemsToRender.push(h("searchcraft-ad", { adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'bottom' }));
|
|
135
135
|
}
|
|
136
136
|
return h("div", { class: 'searchcraft-search-results' }, itemsToRender);
|
|
137
137
|
}
|
|
@@ -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';\nimport { nanoid } from 'nanoid';\n\nimport type {\n AdClientResponseItem,\n SearchClientResponseItem,\n SearchcraftConfig,\n SearchResultTemplate,\n SearchResultTemplateData,\n} from '@searchcraft/core';\n\nimport { type SearchcraftState, searchcraftStore } 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 * 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() initialSearchClientResponseItems?: SearchClientResponseItem[];\n @State() isSearchInProgress = true;\n @State() searchClientResponseItems?: SearchClientResponseItem[];\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchTerm = '';\n\n private unsubscribe: () => void = () => {};\n\n componentDidLoad() {\n const state = searchcraftStore.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n\n state.afterInit = (state) => {\n if (this.initialQuery) {\n state.setInitialQuery(this.initialQuery);\n }\n };\n\n this.unsubscribe = searchcraftStore.subscribe((state) =>\n this.handleStateChange(state),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleStateChange(state: SearchcraftState) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.initialSearchClientResponseItems = [\n ...state.initialSearchClientResponseItems,\n ];\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?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n return (\n <div class='searchcraft-search-results'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\n adSource='adMarketplace'\n adClientResponseItem={item}\n adContainerId={nanoid()}\n key={item.id}\n />\n ))}\n {items.map((item, index) => (\n <searchcraft-search-result\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 = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const items = this.searchClientResponseItems?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n adSource='Custom'\n adContainerId={nanoid()}\n key={`${n}-ad`}\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 adSource='Custom'\n adContainerId={nanoid()}\n key={`${item.id}-ad-${n}`}\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\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 adSource='Custom'\n adContainerId={nanoid()}\n key={`${n}-ad`}\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?.nativoAdInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoAdStartQuantity || 0;\n const adEndQuantity = this.config?.nativoAdEndQuantity || 0;\n const items = this.searchClientResponseItems?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\n adSource='Nativo'\n adContainerId={nanoid()}\n key={`${n}-ad`}\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 adSource='Nativo'\n adContainerId={nanoid()}\n key={`${item.id}-ad-${n}`}\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\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 adSource='Nativo'\n adContainerId={nanoid()}\n key={`${n}-ad`}\n />,\n );\n }\n\n return <div class='searchcraft-search-results'>{itemsToRender}</div>;\n }\n\n renderWithNoAds() {\n const items = this.searchClientResponseItems?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n return (\n <div class='searchcraft-search-results'>\n {items.map((item, index) => (\n <searchcraft-search-result\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 const initialSearchClientResponseItems =\n this.initialSearchClientResponseItems || [];\n\n if (\n this.searchTerm === '' &&\n initialSearchClientResponseItems.length === 0 &&\n !this.isSearchInProgress\n ) {\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 switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n case 'Nativo':\n return this.renderWithNativoAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}\n"],"version":3}
|
|
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 '@searchcraft/core';\n\nimport { type SearchcraftState, searchcraftStore } 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 * 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() initialSearchClientResponseItems?: SearchClientResponseItem[];\n @State() isSearchInProgress = true;\n @State() searchClientResponseItems?: SearchClientResponseItem[];\n @State() searchResultsPage;\n @State() searchResultsPerPage;\n @State() searchTerm = '';\n\n private unsubscribe: () => void = () => {};\n\n componentDidLoad() {\n const state = searchcraftStore.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n\n state.afterInit = (state) => {\n if (this.initialQuery) {\n state.setInitialQuery(this.initialQuery);\n }\n };\n\n this.unsubscribe = searchcraftStore.subscribe((state) =>\n this.handleStateChange(state),\n );\n }\n\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n\n handleStateChange(state: SearchcraftState) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.initialSearchClientResponseItems = [\n ...state.initialSearchClientResponseItems,\n ];\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?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n return (\n <div class='searchcraft-search-results'>\n {this.adClientResponseItems?.map((item) => (\n <searchcraft-ad\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 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 = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const items = this.searchClientResponseItems?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\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 adSource='Custom'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\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 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?.nativoAdInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoAdStartQuantity || 0;\n const adEndQuantity = this.config?.nativoAdEndQuantity || 0;\n const items = this.searchClientResponseItems?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(\n <searchcraft-ad\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 adSource='Nativo'\n key={`${item.id}-ad-${n}`}\n renderPosition='interstitial'\n />,\n );\n }\n }\n itemsToRender.push(\n <searchcraft-search-result\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 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?.length\n ? this.searchClientResponseItems\n : this.initialSearchClientResponseItems?.length\n ? this.initialSearchClientResponseItems\n : [];\n\n return (\n <div class='searchcraft-search-results'>\n {items.map((item, index) => (\n <searchcraft-search-result\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 const initialSearchClientResponseItems =\n this.initialSearchClientResponseItems || [];\n\n if (\n this.searchTerm === '' &&\n initialSearchClientResponseItems.length === 0 &&\n !this.isSearchInProgress\n ) {\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 switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n case 'Nativo':\n return this.renderWithNativoAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './p-
|
|
1
|
+
import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './p-ea48ccae.js';
|
|
2
2
|
|
|
3
3
|
const SearchcraftToggleButton = SearchcraftToggleButton$1;
|
|
4
4
|
const defineCustomElement = defineCustomElement$1;
|