@searchcraft/javascript-sdk 0.12.2 → 0.13.1

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.
Files changed (117) hide show
  1. package/dist/components/index.d.ts +91 -1
  2. package/dist/components/index.js +62 -634
  3. package/dist/components/index.js.map +1 -1
  4. package/dist/components/{p-e8d97093.js → p-BV4HUriZ.js} +15 -10
  5. package/dist/components/p-BV4HUriZ.js.map +1 -0
  6. package/dist/components/p-B_415D4A.js +34 -0
  7. package/dist/components/p-B_415D4A.js.map +1 -0
  8. package/dist/components/{p-c9b65e8f.js → p-BbSxfaD7.js} +14 -11
  9. package/dist/components/p-BbSxfaD7.js.map +1 -0
  10. package/dist/components/p-BfTCfPZ1.js +95 -0
  11. package/dist/components/p-BfTCfPZ1.js.map +1 -0
  12. package/dist/components/p-BlYgaV0q.js +1373 -0
  13. package/dist/components/p-BlYgaV0q.js.map +1 -0
  14. package/dist/components/{p-870f81fd.js → p-C-wcIch1.js} +18 -15
  15. package/dist/components/p-C-wcIch1.js.map +1 -0
  16. package/dist/components/{p-87435aac.js → p-C1S92_N8.js} +12 -8
  17. package/dist/components/p-C1S92_N8.js.map +1 -0
  18. package/dist/components/{p-acf23bab.js → p-C681KruS.js} +10 -7
  19. package/dist/components/p-C681KruS.js.map +1 -0
  20. package/dist/components/{p-1d5c5536.js → p-C7ZK8CYu.js} +13 -10
  21. package/dist/components/p-C7ZK8CYu.js.map +1 -0
  22. package/dist/components/{p-fc8ccffa.js → p-Cju73I1E.js} +12 -9
  23. package/dist/components/p-Cju73I1E.js.map +1 -0
  24. package/dist/components/{p-e30203b1.js → p-D0j0UFpV.js} +2 -1
  25. package/dist/components/p-D0j0UFpV.js.map +1 -0
  26. package/dist/components/{p-02ad136b.js → p-D5p2scT9.js} +13 -10
  27. package/dist/components/p-D5p2scT9.js.map +1 -0
  28. package/dist/components/{p-5365011f.js → p-DO5g2x-l.js} +861 -186
  29. package/dist/components/p-DO5g2x-l.js.map +1 -0
  30. package/dist/components/{p-73db9122.js → p-Dc7S4y3b.js} +9 -6
  31. package/dist/components/p-Dc7S4y3b.js.map +1 -0
  32. package/dist/components/{p-f2585cdf.js → p-DjPZkCLP.js} +8 -5
  33. package/dist/components/p-DjPZkCLP.js.map +1 -0
  34. package/dist/components/{p-3286bbb3.js → p-DotXR-Gz.js} +10 -7
  35. package/dist/components/p-DotXR-Gz.js.map +1 -0
  36. package/dist/components/{p-b13c7fbb.js → p-Dr9rPC9v.js} +11 -8
  37. package/dist/components/p-Dr9rPC9v.js.map +1 -0
  38. package/dist/components/{p-1adf78b9.js → p-L4PwHqQC.js} +10 -7
  39. package/dist/components/p-L4PwHqQC.js.map +1 -0
  40. package/dist/components/{p-b4b67072.js → p-_aHgRsRD.js} +4 -3
  41. package/dist/components/p-_aHgRsRD.js.map +1 -0
  42. package/dist/components/{p-d54771ef.js → p-i8oXh7db.js} +2 -1
  43. package/dist/components/p-i8oXh7db.js.map +1 -0
  44. package/dist/components/searchcraft-ad.js +2 -1
  45. package/dist/components/searchcraft-button.js +2 -1
  46. package/dist/components/searchcraft-error-message.js +2 -1
  47. package/dist/components/searchcraft-facet-list.js +2 -1
  48. package/dist/components/searchcraft-filter-panel.js +169 -11
  49. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  50. package/dist/components/searchcraft-input-form.js +2 -1
  51. package/dist/components/searchcraft-input-label.js +2 -1
  52. package/dist/components/searchcraft-loading.js +2 -1
  53. package/dist/components/searchcraft-pagination.js +12 -8
  54. package/dist/components/searchcraft-pagination.js.map +1 -1
  55. package/dist/components/searchcraft-popover-button.js +10 -7
  56. package/dist/components/searchcraft-popover-button.js.map +1 -1
  57. package/dist/components/searchcraft-popover-footer.js +2 -1
  58. package/dist/components/searchcraft-popover-form.js +17 -14
  59. package/dist/components/searchcraft-popover-form.js.map +1 -1
  60. package/dist/components/searchcraft-popover-list-item.js +2 -1
  61. package/dist/components/searchcraft-popover-list-view.js +2 -1
  62. package/dist/components/searchcraft-results-info.js +10 -7
  63. package/dist/components/searchcraft-results-info.js.map +1 -1
  64. package/dist/components/searchcraft-search-result.js +2 -1
  65. package/dist/components/searchcraft-search-results-per-page.js +11 -7
  66. package/dist/components/searchcraft-search-results-per-page.js.map +1 -1
  67. package/dist/components/searchcraft-search-results.js +11 -8
  68. package/dist/components/searchcraft-search-results.js.map +1 -1
  69. package/dist/components/searchcraft-select.js +2 -1
  70. package/dist/components/searchcraft-slider.js +2 -1
  71. package/dist/components/searchcraft-summary-box.js +13 -68
  72. package/dist/components/searchcraft-summary-box.js.map +1 -1
  73. package/dist/components/searchcraft-theme.js +9 -6
  74. package/dist/components/searchcraft-theme.js.map +1 -1
  75. package/dist/components/searchcraft-toggle-button.js +2 -1
  76. package/dist/hydrate/index.d.ts +40 -7
  77. package/dist/hydrate/index.js +3285 -2405
  78. package/dist/hydrate/index.mjs +3284 -2404
  79. package/dist/themes/hologram.css +1 -1
  80. package/dist/themes/hologram.css.map +1 -1
  81. package/dist/types/classes/SearchcraftCore.d.ts +1 -0
  82. package/dist/types/clients/MeasureClient.d.ts +2 -1
  83. package/dist/types/clients/SearchClient.d.ts +1 -1
  84. package/dist/types/clients/ad-clients/AdClient.d.ts +1 -1
  85. package/dist/types/clients/ad-clients/NativoClient.d.ts +1 -1
  86. package/dist/types/components/searchcraft-filter-panel/searchcraft-filter-panel.d.ts +40 -0
  87. package/dist/types/components/searchcraft-popover-form/searchcraft-popover-form.d.ts +1 -1
  88. package/dist/types/components/searchcraft-popover-list-item/searchcraft-popover-list-item.d.ts +1 -1
  89. package/dist/types/components/searchcraft-popover-list-view/searchcraft-popover-list-view.d.ts +1 -1
  90. package/dist/types/components/searchcraft-search-results/searchcraft-search-results.d.ts +2 -2
  91. package/dist/types/components.d.ts +86 -0
  92. package/dist/types/stencil-public-runtime.d.ts +84 -8
  93. package/dist/types/store/SearchcraftStore.types.d.ts +2 -0
  94. package/package.json +2 -2
  95. package/dist/components/p-02ad136b.js.map +0 -1
  96. package/dist/components/p-1adf78b9.js.map +0 -1
  97. package/dist/components/p-1d5c5536.js.map +0 -1
  98. package/dist/components/p-3286bbb3.js.map +0 -1
  99. package/dist/components/p-5365011f.js.map +0 -1
  100. package/dist/components/p-5cdc6210.js +0 -82
  101. package/dist/components/p-5cdc6210.js.map +0 -1
  102. package/dist/components/p-73db9122.js.map +0 -1
  103. package/dist/components/p-870f81fd.js.map +0 -1
  104. package/dist/components/p-87435aac.js.map +0 -1
  105. package/dist/components/p-919734fe.js +0 -31
  106. package/dist/components/p-919734fe.js.map +0 -1
  107. package/dist/components/p-acf23bab.js.map +0 -1
  108. package/dist/components/p-b13c7fbb.js.map +0 -1
  109. package/dist/components/p-b4b67072.js.map +0 -1
  110. package/dist/components/p-c9b65e8f.js.map +0 -1
  111. package/dist/components/p-d54771ef.js.map +0 -1
  112. package/dist/components/p-e2a10337.js +0 -1355
  113. package/dist/components/p-e2a10337.js.map +0 -1
  114. package/dist/components/p-e30203b1.js.map +0 -1
  115. package/dist/components/p-e8d97093.js.map +0 -1
  116. package/dist/components/p-f2585cdf.js.map +0 -1
  117. package/dist/components/p-fc8ccffa.js.map +0 -1
@@ -1,12 +1,14 @@
1
- import { p as proxyCustomElement, H, h } from './p-5365011f.js';
2
- import { r as registry } from './p-e30203b1.js';
3
- import { f as formatNumberWithCommas } from './p-d54771ef.js';
4
- import { h as html } from './p-b4b67072.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
+ import { r as registry } from './p-D0j0UFpV.js';
3
+ import { f as formatNumberWithCommas } from './p-i8oXh7db.js';
4
+ import { h as html } from './p-_aHgRsRD.js';
5
5
 
6
6
  const SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {
7
- constructor() {
7
+ constructor(registerHost) {
8
8
  super();
9
- this.__registerHost();
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
- }, [0, "searchcraft-results-info", {
79
+ }, [768, "searchcraft-results-info", {
78
80
  "template": [16],
79
81
  "searchcraftId": [1, "searchcraft-id"],
80
82
  "searchTerm": [32],
@@ -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":"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","names":["SearchcraftResultsInfo"],"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
+ {"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 './p-3286bbb3.js';
1
+ import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './p-DotXR-Gz.js';
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 './p-5365011f.js';
2
- import { r as registry } from './p-e30203b1.js';
3
- import { d as defineCustomElement$2 } from './p-73db9122.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
+ import { r as registry } from './p-D0j0UFpV.js';
3
+ import { d as defineCustomElement$2 } from './p-Dc7S4y3b.js';
4
4
 
5
5
  const SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {
6
- constructor() {
6
+ constructor(registerHost) {
7
7
  super();
8
- this.__registerHost();
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) || this.searchResultsPagesCount <= 1) {
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
- }, [0, "searchcraft-search-results-per-page", {
80
+ }, [768, "searchcraft-search-results-per-page", {
78
81
  "increment": [8],
79
82
  "searchcraftId": [1, "searchcraft-id"],
80
83
  "searchTerm": [32],
@@ -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":"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","names":["SearchcraftSearchResultsPerPage"],"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 ((!this.searchTerm && !isInitialQuery) || this.searchResultsPagesCount <= 1) {\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
+ {"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 './p-5365011f.js';
2
- import { r as registry } from './p-e30203b1.js';
3
- import { d as defineCustomElement$4 } from './p-87435aac.js';
4
- import { d as defineCustomElement$3 } from './p-f2585cdf.js';
5
- import { d as defineCustomElement$2 } from './p-3286bbb3.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
+ import { r as registry } from './p-D0j0UFpV.js';
3
+ import { d as defineCustomElement$4 } from './p-C1S92_N8.js';
4
+ import { d as defineCustomElement$3 } from './p-DjPZkCLP.js';
5
+ import { d as defineCustomElement$2 } from './p-DotXR-Gz.js';
6
6
 
7
7
  const SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {
8
- constructor() {
8
+ constructor(registerHost) {
9
9
  super();
10
- this.__registerHost();
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
- }, [4, "searchcraft-search-results", {
153
+ }, [772, "searchcraft-search-results", {
152
154
  "searchcraftId": [1, "searchcraft-id"],
153
155
  "initialQuery": [1, "initial-query"],
154
156
  "template": [16],
@@ -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 './p-73db9122.js';
1
+ import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './p-Dc7S4y3b.js';
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,8 +1,9 @@
1
- import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './p-c9b65e8f.js';
1
+ import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './p-BbSxfaD7.js';
2
2
 
3
3
  const SearchcraftSlider = SearchcraftSlider$1;
4
4
  const defineCustomElement = defineCustomElement$1;
5
5
 
6
6
  export { SearchcraftSlider, defineCustomElement };
7
+ //# sourceMappingURL=searchcraft-slider.js.map
7
8
 
8
9
  //# sourceMappingURL=searchcraft-slider.js.map
@@ -1,9 +1,7 @@
1
- import { p as proxyCustomElement, H, h } from './p-5365011f.js';
2
- import { r as registry } from './p-e30203b1.js';
3
- import { c as commonjsGlobal, D as DOMPurify } from './p-e2a10337.js';
4
- import { d as defineCustomElement$2 } from './p-919734fe.js';
5
-
6
- var marked_umd = {exports: {}};
1
+ import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';
2
+ import { r as registry } from './p-D0j0UFpV.js';
3
+ import { p as purify } from './p-BlYgaV0q.js';
4
+ import { d as defineCustomElement$2 } from './p-B_415D4A.js';
7
5
 
8
6
  /**
9
7
  * marked v15.0.12 - a markdown parser
@@ -11,53 +9,11 @@ var marked_umd = {exports: {}};
11
9
  * https://github.com/markedjs/marked
12
10
  */
13
11
 
14
- (function (module, exports) {
15
12
  /**
16
13
  * DO NOT EDIT THIS FILE
17
14
  * The code in this file is generated from files in ./src/
18
15
  */
19
- (function(g,f){{module.exports=f();}}(typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : commonjsGlobal,function(){var exports={};var __exports=exports;var module={exports};
20
- var __defProp = Object.defineProperty;
21
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
22
- var __getOwnPropNames = Object.getOwnPropertyNames;
23
- var __hasOwnProp = Object.prototype.hasOwnProperty;
24
- var __export = (target, all) => {
25
- for (var name in all)
26
- __defProp(target, name, { get: all[name], enumerable: true });
27
- };
28
- var __copyProps = (to, from, except, desc) => {
29
- if (from && typeof from === "object" || typeof from === "function") {
30
- for (let key of __getOwnPropNames(from))
31
- if (!__hasOwnProp.call(to, key) && key !== except)
32
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
- }
34
- return to;
35
- };
36
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
16
 
38
- // src/marked.ts
39
- var marked_exports = {};
40
- __export(marked_exports, {
41
- Hooks: () => _Hooks,
42
- Lexer: () => _Lexer,
43
- Marked: () => Marked,
44
- Parser: () => _Parser,
45
- Renderer: () => _Renderer,
46
- TextRenderer: () => _TextRenderer,
47
- Tokenizer: () => _Tokenizer,
48
- defaults: () => _defaults,
49
- getDefaults: () => _getDefaults,
50
- lexer: () => lexer,
51
- marked: () => marked,
52
- options: () => options,
53
- parse: () => parse,
54
- parseInline: () => parseInline,
55
- parser: () => parser,
56
- setOptions: () => setOptions,
57
- use: () => use,
58
- walkTokens: () => walkTokens
59
- });
60
- module.exports = __toCommonJS(marked_exports);
61
17
 
62
18
  // src/defaults.ts
63
19
  function _getDefaults() {
@@ -365,9 +321,7 @@ function rtrim(str, c, invert) {
365
321
  let suffLen = 0;
366
322
  while (suffLen < l) {
367
323
  const currChar = str.charAt(l - suffLen - 1);
368
- if (currChar === c && !invert) {
369
- suffLen++;
370
- } else if (currChar !== c && invert) {
324
+ if (currChar === c && true) {
371
325
  suffLen++;
372
326
  } else {
373
327
  break;
@@ -2207,23 +2161,13 @@ marked.lexer = _Lexer.lex;
2207
2161
  marked.Tokenizer = _Tokenizer;
2208
2162
  marked.Hooks = _Hooks;
2209
2163
  marked.parse = marked;
2210
- var options = marked.options;
2211
- var setOptions = marked.setOptions;
2212
- var use = marked.use;
2213
- var walkTokens = marked.walkTokens;
2214
- var parseInline = marked.parseInline;
2215
- var parse = marked;
2216
- var parser = _Parser.parse;
2217
- var lexer = _Lexer.lex;
2218
-
2219
- if(__exports != exports)module.exports = exports;return module.exports}));
2220
-
2221
- }(marked_umd));
2222
2164
 
2223
2165
  const SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSummaryBox extends H {
2224
- constructor() {
2166
+ constructor(registerHost) {
2225
2167
  super();
2226
- this.__registerHost();
2168
+ if (registerHost !== false) {
2169
+ this.__registerHost();
2170
+ }
2227
2171
  }
2228
2172
  /**
2229
2173
  * The id of the Searchcraft instance that this component should use.
@@ -2260,7 +2204,7 @@ const SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class Searchcra
2260
2204
  * Sanitizes and converts markdown to HTML.
2261
2205
  */
2262
2206
  sanitizeMarkdown(markdown) {
2263
- return DOMPurify.sanitize(marked_umd.exports.marked.parse(markdown));
2207
+ return purify.sanitize(marked.parse(markdown));
2264
2208
  }
2265
2209
  /**
2266
2210
  * Updates the content element directly without triggering a re-render.
@@ -2284,9 +2228,9 @@ const SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class Searchcra
2284
2228
  return h("div", { class: 'searchcraft-summary-box-content' }, this.summary);
2285
2229
  }
2286
2230
  render() {
2287
- return h("div", { key: 'c88d0bf7e12ad0fa0c019d207854a6e92babc683', class: 'searchcraft-summary-box' }, this.renderContent());
2231
+ return h("div", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent());
2288
2232
  }
2289
- }, [0, "searchcraft-summary-box", {
2233
+ }, [768, "searchcraft-summary-box", {
2290
2234
  "searchcraftId": [1, "searchcraft-id"],
2291
2235
  "summary": [32],
2292
2236
  "isLoading": [32],
@@ -2315,5 +2259,6 @@ const SearchcraftSummaryBox = SearchcraftSummaryBox$1;
2315
2259
  const defineCustomElement = defineCustomElement$1;
2316
2260
 
2317
2261
  export { SearchcraftSummaryBox, defineCustomElement };
2262
+ //# sourceMappingURL=searchcraft-summary-box.js.map
2318
2263
 
2319
2264
  //# sourceMappingURL=searchcraft-summary-box.js.map