@searchcraft/javascript-sdk 0.6.0 → 0.7.0

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 (186) hide show
  1. package/README.md +53 -55
  2. package/dist/cjs/{index-b3b77ea2.js → index-d4b4a45e.js} +233 -130
  3. package/dist/cjs/index-d4b4a45e.js.map +1 -0
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js +14 -18
  7. package/dist/cjs/searchcraft-base-search-result.cjs.entry.js.map +1 -1
  8. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js +20 -7
  9. package/dist/cjs/searchcraft-base-search-results.cjs.entry.js.map +1 -1
  10. package/dist/cjs/searchcraft-button_3.cjs.entry.js +16 -7
  11. package/dist/cjs/searchcraft-button_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js +26 -24
  13. package/dist/cjs/searchcraft-facet-list_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js +6 -5
  15. package/dist/cjs/searchcraft-filter-panel.cjs.entry.js.map +1 -1
  16. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js +28 -17
  17. package/dist/cjs/searchcraft-input-form_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
  19. package/dist/cjs/searchcraft-javascript-sdk.cjs.js.map +1 -1
  20. package/dist/cjs/searchcraft-popover-button.cjs.entry.js +2 -2
  21. package/dist/cjs/searchcraft-popover-form.cjs.entry.js +23 -16
  22. package/dist/cjs/searchcraft-popover-form.cjs.entry.js.map +1 -1
  23. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js +1 -7
  24. package/dist/cjs/searchcraft-popover-list-item.cjs.entry.js.map +1 -1
  25. package/dist/cjs/searchcraft-results-info.cjs.entry.js +2 -2
  26. package/dist/cjs/searchcraft-results-info.cjs.entry.js.map +1 -1
  27. package/dist/cjs/{store-d7ebcf7a.js → store-abe47006.js} +608 -98
  28. package/dist/cjs/store-abe47006.js.map +1 -0
  29. package/dist/collection/collection-manifest.json +1 -1
  30. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +44 -16
  31. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  32. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +41 -6
  33. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  34. package/dist/collection/components/searchcraft-button/searchcraft-button.js +21 -5
  35. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
  36. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +2 -3
  37. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +1 -1
  38. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js +4 -10
  39. package/dist/collection/components/searchcraft-facet-list/searchcraft-facet-list.js.map +1 -1
  40. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js +6 -3
  41. package/dist/collection/components/searchcraft-filter-panel/searchcraft-filter-panel.js.map +1 -1
  42. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js +40 -12
  43. package/dist/collection/components/searchcraft-input-form/searchcraft-input-form.js.map +1 -1
  44. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +7 -1
  45. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +1 -1
  46. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js +33 -16
  47. package/dist/collection/components/searchcraft-popover-form/searchcraft-popover-form.js.map +1 -1
  48. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js +12 -8
  49. package/dist/collection/components/searchcraft-popover-list-item/searchcraft-popover-list-item.js.map +1 -1
  50. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js +6 -6
  51. package/dist/collection/components/searchcraft-popover-list-view/searchcraft-popover-list-view.js.map +1 -1
  52. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
  53. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +25 -7
  54. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -1
  55. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +9 -5
  56. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
  57. package/dist/components/index.js +2 -2
  58. package/dist/components/{p-d6a88eed.js → p-01dc5b3b.js} +608 -98
  59. package/dist/components/p-01dc5b3b.js.map +1 -0
  60. package/dist/components/{p-cf4ced92.js → p-1ae87308.js} +2 -8
  61. package/dist/components/p-1ae87308.js.map +1 -0
  62. package/dist/components/{p-a248ad69.js → p-649654b5.js} +5 -13
  63. package/dist/components/p-649654b5.js.map +1 -0
  64. package/dist/components/{p-4c45ef80.js → p-662cb490.js} +8 -8
  65. package/dist/components/p-662cb490.js.map +1 -0
  66. package/dist/components/{p-e4846fa2.js → p-6cafd48d.js} +189 -112
  67. package/dist/components/p-6cafd48d.js.map +1 -0
  68. package/dist/components/{p-04c46179.js → p-87d1611b.js} +15 -19
  69. package/dist/components/p-87d1611b.js.map +1 -0
  70. package/dist/components/{p-a9bd1872.js → p-c273e43d.js} +5 -3
  71. package/dist/components/p-c273e43d.js.map +1 -0
  72. package/dist/components/{p-0e38a723.js → p-cc9f8c61.js} +19 -9
  73. package/dist/components/p-cc9f8c61.js.map +1 -0
  74. package/dist/components/{p-f9d778b3.js → p-cf096782.js} +14 -6
  75. package/dist/components/p-cf096782.js.map +1 -0
  76. package/dist/components/{p-02a16e53.js → p-da5b92ef.js} +32 -19
  77. package/dist/components/p-da5b92ef.js.map +1 -0
  78. package/dist/components/{p-85765b81.js → p-e1cf5f9d.js} +3 -5
  79. package/dist/components/p-e1cf5f9d.js.map +1 -0
  80. package/dist/components/{p-953f4238.js → p-f5a06210.js} +2 -3
  81. package/dist/components/p-f5a06210.js.map +1 -0
  82. package/dist/components/searchcraft-base-search-result.js +1 -1
  83. package/dist/components/searchcraft-base-search-results.js +22 -9
  84. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  85. package/dist/components/searchcraft-button.js +1 -1
  86. package/dist/components/searchcraft-error-message.js +1 -1
  87. package/dist/components/searchcraft-facet-list.js +1 -1
  88. package/dist/components/searchcraft-filter-panel.js +9 -8
  89. package/dist/components/searchcraft-filter-panel.js.map +1 -1
  90. package/dist/components/searchcraft-input-form.js +1 -1
  91. package/dist/components/searchcraft-input-label.js +1 -1
  92. package/dist/components/searchcraft-popover-button.js +2 -2
  93. package/dist/components/searchcraft-popover-form.js +29 -22
  94. package/dist/components/searchcraft-popover-form.js.map +1 -1
  95. package/dist/components/searchcraft-popover-list-item.js +1 -1
  96. package/dist/components/searchcraft-popover-list-view.js +1 -1
  97. package/dist/components/searchcraft-results-info.js +2 -2
  98. package/dist/components/searchcraft-results-info.js.map +1 -1
  99. package/dist/components/searchcraft-slider.js +1 -1
  100. package/dist/components/searchcraft-toggle-button.js +1 -1
  101. package/dist/esm/{index-11551663.js → index-56b713de.js} +233 -130
  102. package/dist/esm/index-56b713de.js.map +1 -0
  103. package/dist/esm/index.js +1 -1
  104. package/dist/esm/loader.js +2 -2
  105. package/dist/esm/searchcraft-base-search-result.entry.js +14 -18
  106. package/dist/esm/searchcraft-base-search-result.entry.js.map +1 -1
  107. package/dist/esm/searchcraft-base-search-results.entry.js +20 -7
  108. package/dist/esm/searchcraft-base-search-results.entry.js.map +1 -1
  109. package/dist/esm/searchcraft-button_3.entry.js +16 -7
  110. package/dist/esm/searchcraft-button_3.entry.js.map +1 -1
  111. package/dist/esm/searchcraft-facet-list_3.entry.js +26 -24
  112. package/dist/esm/searchcraft-facet-list_3.entry.js.map +1 -1
  113. package/dist/esm/searchcraft-filter-panel.entry.js +6 -5
  114. package/dist/esm/searchcraft-filter-panel.entry.js.map +1 -1
  115. package/dist/esm/searchcraft-input-form_2.entry.js +28 -17
  116. package/dist/esm/searchcraft-input-form_2.entry.js.map +1 -1
  117. package/dist/esm/searchcraft-javascript-sdk.js +3 -3
  118. package/dist/esm/searchcraft-javascript-sdk.js.map +1 -1
  119. package/dist/esm/searchcraft-popover-button.entry.js +2 -2
  120. package/dist/esm/searchcraft-popover-form.entry.js +23 -16
  121. package/dist/esm/searchcraft-popover-form.entry.js.map +1 -1
  122. package/dist/esm/searchcraft-popover-list-item.entry.js +1 -7
  123. package/dist/esm/searchcraft-popover-list-item.entry.js.map +1 -1
  124. package/dist/esm/searchcraft-results-info.entry.js +2 -2
  125. package/dist/esm/searchcraft-results-info.entry.js.map +1 -1
  126. package/dist/esm/{store-1058f7b0.js → store-712f0586.js} +608 -98
  127. package/dist/esm/store-712f0586.js.map +1 -0
  128. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  129. package/dist/searchcraft-javascript-sdk/p-01dc5b3b.js +11 -0
  130. package/dist/searchcraft-javascript-sdk/p-01dc5b3b.js.map +1 -0
  131. package/dist/searchcraft-javascript-sdk/p-117fcdd3.entry.js +2 -0
  132. package/dist/searchcraft-javascript-sdk/p-117fcdd3.entry.js.map +1 -0
  133. package/dist/searchcraft-javascript-sdk/p-129e6f2c.js +3 -0
  134. package/dist/searchcraft-javascript-sdk/p-129e6f2c.js.map +1 -0
  135. package/dist/searchcraft-javascript-sdk/{p-8e539d62.entry.js → p-27cb401c.entry.js} +2 -2
  136. package/dist/searchcraft-javascript-sdk/p-27cb401c.entry.js.map +1 -0
  137. package/dist/searchcraft-javascript-sdk/p-4df4a29e.entry.js +2 -0
  138. package/dist/searchcraft-javascript-sdk/p-4df4a29e.entry.js.map +1 -0
  139. package/dist/searchcraft-javascript-sdk/{p-98640a6a.entry.js → p-54248dd8.entry.js} +2 -2
  140. package/dist/searchcraft-javascript-sdk/{p-98640a6a.entry.js.map → p-54248dd8.entry.js.map} +1 -1
  141. package/dist/searchcraft-javascript-sdk/{p-cd852b84.entry.js → p-69430dbf.entry.js} +2 -2
  142. package/dist/searchcraft-javascript-sdk/p-69430dbf.entry.js.map +1 -0
  143. package/dist/searchcraft-javascript-sdk/{p-e042deb9.entry.js → p-a460755d.entry.js} +2 -2
  144. package/dist/searchcraft-javascript-sdk/p-a460755d.entry.js.map +1 -0
  145. package/dist/searchcraft-javascript-sdk/{p-7049b93d.entry.js → p-bc2c4259.entry.js} +2 -2
  146. package/dist/searchcraft-javascript-sdk/p-bc2c4259.entry.js.map +1 -0
  147. package/dist/searchcraft-javascript-sdk/p-caecdcda.entry.js +2 -0
  148. package/dist/searchcraft-javascript-sdk/p-caecdcda.entry.js.map +1 -0
  149. package/dist/searchcraft-javascript-sdk/{p-c27a3673.entry.js → p-f8129731.entry.js} +2 -2
  150. package/dist/searchcraft-javascript-sdk/p-f8129731.entry.js.map +1 -0
  151. package/dist/searchcraft-javascript-sdk/{p-b8bd53ce.entry.js → p-f839b682.entry.js} +2 -2
  152. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  153. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  154. package/package.json +4 -3
  155. package/dist/cjs/index-b3b77ea2.js.map +0 -1
  156. package/dist/cjs/store-d7ebcf7a.js.map +0 -1
  157. package/dist/components/p-02a16e53.js.map +0 -1
  158. package/dist/components/p-04c46179.js.map +0 -1
  159. package/dist/components/p-0e38a723.js.map +0 -1
  160. package/dist/components/p-4c45ef80.js.map +0 -1
  161. package/dist/components/p-85765b81.js.map +0 -1
  162. package/dist/components/p-953f4238.js.map +0 -1
  163. package/dist/components/p-a248ad69.js.map +0 -1
  164. package/dist/components/p-a9bd1872.js.map +0 -1
  165. package/dist/components/p-cf4ced92.js.map +0 -1
  166. package/dist/components/p-d6a88eed.js.map +0 -1
  167. package/dist/components/p-e4846fa2.js.map +0 -1
  168. package/dist/components/p-f9d778b3.js.map +0 -1
  169. package/dist/esm/index-11551663.js.map +0 -1
  170. package/dist/esm/store-1058f7b0.js.map +0 -1
  171. package/dist/searchcraft-javascript-sdk/p-4580e8a4.entry.js +0 -2
  172. package/dist/searchcraft-javascript-sdk/p-4580e8a4.entry.js.map +0 -1
  173. package/dist/searchcraft-javascript-sdk/p-7049b93d.entry.js.map +0 -1
  174. package/dist/searchcraft-javascript-sdk/p-8e539d62.entry.js.map +0 -1
  175. package/dist/searchcraft-javascript-sdk/p-9d0f5c89.entry.js +0 -2
  176. package/dist/searchcraft-javascript-sdk/p-9d0f5c89.entry.js.map +0 -1
  177. package/dist/searchcraft-javascript-sdk/p-c27a3673.entry.js.map +0 -1
  178. package/dist/searchcraft-javascript-sdk/p-cd852b84.entry.js.map +0 -1
  179. package/dist/searchcraft-javascript-sdk/p-d6a88eed.js +0 -11
  180. package/dist/searchcraft-javascript-sdk/p-d6a88eed.js.map +0 -1
  181. package/dist/searchcraft-javascript-sdk/p-e042deb9.entry.js.map +0 -1
  182. package/dist/searchcraft-javascript-sdk/p-e0be53df.js +0 -3
  183. package/dist/searchcraft-javascript-sdk/p-e0be53df.js.map +0 -1
  184. package/dist/searchcraft-javascript-sdk/p-efab9f3c.entry.js +0 -2
  185. package/dist/searchcraft-javascript-sdk/p-efab9f3c.entry.js.map +0 -1
  186. /package/dist/searchcraft-javascript-sdk/{p-b8bd53ce.entry.js.map → p-f839b682.entry.js.map} +0 -0
package/README.md CHANGED
@@ -18,63 +18,66 @@ $ npm install @searchcraft/javascript-sdk
18
18
  ```
19
19
  ## Initialization and Basic Usage
20
20
 
21
- Import and Initialize the SDK
21
+ ### HTML
22
+ Add the web components to your html. They should be placed with the rest of your page content where you'd like them to render in the layout. These are the web components available to use:
23
+ ```html
24
+ <searchcraft-input-form />
25
+ ..
26
+ <searchcraft-popover-form />
27
+ ...
28
+ <searchcraft-filter-panel />
29
+ ...
30
+ <searchcraft-results-info />
31
+ ...
32
+ <searchcraft-base-search-results />
22
33
 
23
- Create an instance of SearchcraftCore with your configuration values (available via the Searchcraft Customer Portal - Vektron):
34
+ ```
35
+ To see more about the specific attributes required for each component, refer to their individual documentation pages.
24
36
 
25
- ```jsx
26
37
 
27
- // main.js
38
+ ### Javascript
39
+ Before anything else, the web components must be initialized. Import and Initialize the SDK and call `defineCustomElements()` to set up the web components.
28
40
 
29
- import { SearchcraftCore } from '@searchcraft/javascript-sdk';
41
+ ```js
30
42
 
31
43
  import { defineCustomElements } from '@searchcraft/javascript-sdk/components';
32
- import { filterPanelItems, searchResultsMappings } from './configs';
33
-
34
44
  defineCustomElements();
35
45
 
46
+ ```
47
+
48
+ Create a configuration object that your web components can use.
49
+ ```jsx
36
50
  const config = {
37
- index: ['your_index'],
38
- apiKey: 'your_api_key',
39
- endpointURL: 'https://api.searchcraft.io',
51
+ index: ['your_index_from_vektron'],
52
+ readKey: 'your_read_key_from_vektron',
53
+ endpointURL: 'your_searchcraft_endpoint_url',
54
+ searchDebounceDelay: 50, // The amount of debounce, in millis, to add to search requests (optional)
40
55
  };
56
+ ```
57
+ When the DOM content is loaded:
58
+ - Provide the input form (or popover form) with your `config` object.
59
+ - If you are using a filter panel, provide the filter panel with the filter panel item configuration.
60
+ - Provide the search results with the search result mapping configuration.
61
+
62
+ ```js
41
63
 
42
64
  document.addEventListener('DOMContentLoaded', () => {
43
- const searchForm = document.querySelector('searchcraft-auto-search-form');
65
+ const inputForm = document.querySelector('searchcraft-input-form');
66
+ const filterPanel = document.querySelector('searchcraft-input-form');
44
67
  const searchResults = document.querySelector(
45
68
  'searchcraft-base-search-results',
46
69
  );
47
70
 
48
- searchForm.config = config;
71
+ inputForm.config = config;
49
72
  filterPanel.items = filterPanelItems;
50
73
  searchResults.searchResultMappings = searchResultsMappings;
51
- searchResults.setAttribute(
52
- 'search-result-mappings',
53
- JSON.stringify(searchResultsMappings),
54
- );
55
74
  });
56
75
 
57
- // index.html
58
- <div>
59
- <searchcraft-auto-search-form
60
- input-icon-height="27"
61
- input-icon-width="27"
62
- placeholder-value="Search"
63
- />
64
- <searchcraft-filter-panel />
65
- <searchcraft-results-info />
66
- <searchcraft-base-search-results
67
- ad-interval="3"
68
- place-ad-at-start="false"
69
- result-image-placement="right"
70
- container-target="_blank"
71
- />
72
- </div>
73
76
 
74
77
  ```
75
78
 
76
- ### Filter Configuration
77
- Update filterPanelItems in configs.js to add or modify filters.
79
+ ### Example Filter Configuration
80
+ This is an example of a filter panel configuration object. This configuration describes what filters are rendered in your filter panel, and what index fields the filter controls correspond with.
78
81
 
79
82
  ```jsx
80
83
 
@@ -115,7 +118,7 @@ export const filterPanelItems = [
115
118
  ];
116
119
  ```
117
120
 
118
- ### Result Mappings
121
+ ### Example Result Mappings
119
122
  Modify searchResultsMappings in configs.js to customize the appearance and behavior of search results. The `fieldNames` from your index can be mapped to the content of the results using this config.
120
123
 
121
124
  ```jsx
@@ -162,36 +165,31 @@ export const searchResultsMappings = {
162
165
  ```
163
166
 
164
167
  ### Event Handling
165
- Add or update event listeners in Main.js to handle additional interactions. The purpose of these events is to allow for updating your consuming applications layout based on events coming from Searchcraft.
168
+ Optionally, if you need to perform other actions, such as modifying page layout, when various searchcraft events are emitted, you can add the following listeners:
166
169
 
167
170
  ```jsx
168
- const searchContent = document.querySelector('#search-content');
169
- function setSearchContentVisibility(isVisible) {
170
- if (searchContent) {
171
- searchContent.style.display = isVisible ? 'flex' : 'none';
172
- }
173
- if (pageContentPlaceholder) {
174
- pageContentPlaceholder.style.display = isVisible ? 'none' : 'block';
175
- }
176
- }
177
171
 
178
- setSearchContentVisibility(false);
172
+ inputForm.addEventListener('querySubmit', (event) => {
173
+ // Perform an action
174
+ });
179
175
 
180
- searchForm.addEventListener('querySubmit', (event) => {
181
- console.log('Query submitted:', event.detail);
176
+ inputForm.addEventListener('inputCleared', () => {
177
+ // Perform an action
178
+ });
182
179
 
183
- setSearchContentVisibility(true);
180
+ inputForm.addEventListener('inputFocus', () => {
181
+ // Perform an action
184
182
  });
185
183
 
186
- searchForm.addEventListener('inputClearedOrNoResults', () => {
187
- console.log('Input cleared or no search results found.');
184
+ inputForm.addEventListener('inputBlur', () => {
185
+ // Perform an action
186
+ });
188
187
 
189
- setSearchContentVisibility(false);
188
+ inputForm.addEventListener('inputInit', () => {
189
+ // Perform an action
190
190
  });
191
191
 
192
192
  searchResults.addEventListener('noResults', () => {
193
- console.log('no search results found.');
194
-
195
- setSearchContentVisibility(true);
193
+ // Perform an action
196
194
  });
197
195
  ```