@bridgeline-digital/hawksearch-handlebars-ui 2.0.0-beta.2 → 2.0.0-beta.5

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 (483) hide show
  1. package/dist/{types/components → components}/base.component.d.ts +10 -1
  2. package/dist/components/base.component.js +216 -0
  3. package/dist/components/base.component.js.map +1 -0
  4. package/dist/{types/components → components}/content/content-types/base-content.component.d.ts +5 -1
  5. package/dist/components/content/content-types/base-content.component.js +11 -0
  6. package/dist/components/content/content-types/base-content.component.js.map +1 -0
  7. package/dist/components/content/content-types/custom-content/custom-content.component.d.ts +21 -0
  8. package/dist/components/content/content-types/custom-content/custom-content.component.js +28 -0
  9. package/dist/components/content/content-types/custom-content/custom-content.component.js.map +1 -0
  10. package/dist/components/content/content-types/featured-items-content/featured-items-content.component.d.ts +22 -0
  11. package/dist/components/content/content-types/featured-items-content/featured-items-content.component.js +35 -0
  12. package/dist/components/content/content-types/featured-items-content/featured-items-content.component.js.map +1 -0
  13. package/dist/components/content/content-types/featured-items-content-item/featured-items-content-item.component.d.ts +38 -0
  14. package/dist/components/content/content-types/featured-items-content-item/featured-items-content-item.component.js +65 -0
  15. package/dist/components/content/content-types/featured-items-content-item/featured-items-content-item.component.js.map +1 -0
  16. package/dist/components/content/content-types/image-content/image-content.component.d.ts +23 -0
  17. package/dist/components/content/content-types/image-content/image-content.component.js +40 -0
  18. package/dist/components/content/content-types/image-content/image-content.component.js.map +1 -0
  19. package/dist/{types/components → components}/content/content-types/index.d.ts +1 -0
  20. package/dist/components/content/content-types/index.js +7 -0
  21. package/dist/components/content/content-types/index.js.map +1 -0
  22. package/dist/components/content/content-types/popular-queries-content/popular-queries-content.component.d.ts +22 -0
  23. package/dist/components/content/content-types/popular-queries-content/popular-queries-content.component.js +42 -0
  24. package/dist/components/content/content-types/popular-queries-content/popular-queries-content.component.js.map +1 -0
  25. package/dist/components/content/content-zone/content-zone.component.d.ts +44 -0
  26. package/dist/components/content/content-zone/content-zone.component.js +92 -0
  27. package/dist/components/content/content-zone/content-zone.component.js.map +1 -0
  28. package/dist/{types/components → components}/content/index.d.ts +0 -0
  29. package/dist/components/content/index.js +3 -0
  30. package/dist/components/content/index.js.map +1 -0
  31. package/dist/components/general/date-picker/date-picker.component.d.ts +117 -0
  32. package/dist/components/general/date-picker/date-picker.component.js +306 -0
  33. package/dist/components/general/date-picker/date-picker.component.js.map +1 -0
  34. package/dist/components/general/icon/icon.component.d.ts +38 -0
  35. package/dist/components/general/icon/icon.component.js +64 -0
  36. package/dist/components/general/icon/icon.component.js.map +1 -0
  37. package/dist/{types/components → components}/general/index.d.ts +0 -0
  38. package/dist/components/general/index.js +5 -0
  39. package/dist/components/general/index.js.map +1 -0
  40. package/dist/components/general/range-slider/range-slider.component.d.ts +54 -0
  41. package/dist/components/general/range-slider/range-slider.component.js +186 -0
  42. package/dist/components/general/range-slider/range-slider.component.js.map +1 -0
  43. package/dist/components/general/tooltip/tooltip.component.d.ts +32 -0
  44. package/dist/components/general/tooltip/tooltip.component.js +64 -0
  45. package/dist/components/general/tooltip/tooltip.component.js.map +1 -0
  46. package/dist/components/index.d.ts +247 -0
  47. package/dist/components/index.js +248 -0
  48. package/dist/components/index.js.map +1 -0
  49. package/dist/{types/components → components}/landing-pages/index.d.ts +0 -0
  50. package/dist/components/landing-pages/index.js +2 -0
  51. package/dist/components/landing-pages/index.js.map +1 -0
  52. package/dist/components/landing-pages/landing-page/landing-page.component.d.ts +32 -0
  53. package/dist/components/landing-pages/landing-page/landing-page.component.js +60 -0
  54. package/dist/components/landing-pages/landing-page/landing-page.component.js.map +1 -0
  55. package/dist/{types/components → components}/recommendations/index.d.ts +0 -0
  56. package/dist/components/recommendations/index.js +3 -0
  57. package/dist/components/recommendations/index.js.map +1 -0
  58. package/dist/components/recommendations/recommendations/recommendations.component.d.ts +84 -0
  59. package/dist/components/recommendations/recommendations/recommendations.component.js +256 -0
  60. package/dist/components/recommendations/recommendations/recommendations.component.js.map +1 -0
  61. package/dist/components/recommendations/recommendations-item/recommendations-item.component.d.ts +40 -0
  62. package/dist/components/recommendations/recommendations-item/recommendations-item.component.js +71 -0
  63. package/dist/components/recommendations/recommendations-item/recommendations-item.component.js.map +1 -0
  64. package/dist/{types/components → components}/search/autocomplete/autocomplete.component.d.ts +3 -2
  65. package/dist/components/search/autocomplete/autocomplete.component.js +145 -0
  66. package/dist/components/search/autocomplete/autocomplete.component.js.map +1 -0
  67. package/dist/components/search/facet-types/base-facet.component.d.ts +44 -0
  68. package/dist/components/search/facet-types/base-facet.component.js +128 -0
  69. package/dist/components/search/facet-types/base-facet.component.js.map +1 -0
  70. package/dist/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.d.ts +36 -0
  71. package/dist/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.js +88 -0
  72. package/dist/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.js.map +1 -0
  73. package/dist/components/search/facet-types/color-facet/color-facet.component.d.ts +24 -0
  74. package/dist/components/search/facet-types/color-facet/color-facet.component.js +46 -0
  75. package/dist/components/search/facet-types/color-facet/color-facet.component.js.map +1 -0
  76. package/dist/components/search/facet-types/date-range-facet/date-range-facet.component.d.ts +33 -0
  77. package/dist/components/search/facet-types/date-range-facet/date-range-facet.component.js +106 -0
  78. package/dist/components/search/facet-types/date-range-facet/date-range-facet.component.js.map +1 -0
  79. package/dist/{types/components → components}/search/facet-types/index.d.ts +1 -0
  80. package/dist/components/search/facet-types/index.js +12 -0
  81. package/dist/components/search/facet-types/index.js.map +1 -0
  82. package/dist/components/search/facet-types/linked-list-facet/link-list-facet.component.d.ts +24 -0
  83. package/dist/components/search/facet-types/linked-list-facet/link-list-facet.component.js +50 -0
  84. package/dist/components/search/facet-types/linked-list-facet/link-list-facet.component.js.map +1 -0
  85. package/dist/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.d.ts +32 -0
  86. package/dist/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.js +91 -0
  87. package/dist/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.js.map +1 -0
  88. package/dist/components/search/facet-types/range-slider-facet/range-slider-facet.component.d.ts +34 -0
  89. package/dist/components/search/facet-types/range-slider-facet/range-slider-facet.component.js +117 -0
  90. package/dist/components/search/facet-types/range-slider-facet/range-slider-facet.component.js.map +1 -0
  91. package/dist/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.d.ts +29 -0
  92. package/dist/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.js +53 -0
  93. package/dist/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.js.map +1 -0
  94. package/dist/components/search/facet-types/related-searches-facet/related-searches-facet.component.d.ts +29 -0
  95. package/dist/components/search/facet-types/related-searches-facet/related-searches-facet.component.js +53 -0
  96. package/dist/components/search/facet-types/related-searches-facet/related-searches-facet.component.js.map +1 -0
  97. package/dist/components/search/facet-types/search-within-facet/search-within-facet.component.d.ts +29 -0
  98. package/dist/components/search/facet-types/search-within-facet/search-within-facet.component.js +52 -0
  99. package/dist/components/search/facet-types/search-within-facet/search-within-facet.component.js.map +1 -0
  100. package/dist/components/search/facet-types/size-facet/size-facet.component.d.ts +24 -0
  101. package/dist/components/search/facet-types/size-facet/size-facet.component.js +46 -0
  102. package/dist/components/search/facet-types/size-facet/size-facet.component.js.map +1 -0
  103. package/dist/components/search/facet-wrapper/facet-wrapper.component.d.ts +46 -0
  104. package/dist/components/search/facet-wrapper/facet-wrapper.component.js +82 -0
  105. package/dist/components/search/facet-wrapper/facet-wrapper.component.js.map +1 -0
  106. package/dist/components/search/facets-list/facets-list.component.d.ts +31 -0
  107. package/dist/components/search/facets-list/facets-list.component.js +104 -0
  108. package/dist/components/search/facets-list/facets-list.component.js.map +1 -0
  109. package/dist/{types/components → components}/search/index.d.ts +0 -0
  110. package/dist/components/search/index.js +16 -0
  111. package/dist/components/search/index.js.map +1 -0
  112. package/dist/components/search/modified-query/modified-query.component.d.ts +32 -0
  113. package/dist/components/search/modified-query/modified-query.component.js +60 -0
  114. package/dist/components/search/modified-query/modified-query.component.js.map +1 -0
  115. package/dist/components/search/page-size/page-size.component.d.ts +32 -0
  116. package/dist/components/search/page-size/page-size.component.js +52 -0
  117. package/dist/components/search/page-size/page-size.component.js.map +1 -0
  118. package/dist/components/search/pagination/pagination.component.d.ts +43 -0
  119. package/dist/components/search/pagination/pagination.component.js +138 -0
  120. package/dist/components/search/pagination/pagination.component.js.map +1 -0
  121. package/dist/components/search/query-suggestions/query-suggestions.component.d.ts +38 -0
  122. package/dist/components/search/query-suggestions/query-suggestions.component.js +88 -0
  123. package/dist/components/search/query-suggestions/query-suggestions.component.js.map +1 -0
  124. package/dist/components/search/search-field/search-field.component.d.ts +33 -0
  125. package/dist/components/search/search-field/search-field.component.js +93 -0
  126. package/dist/components/search/search-field/search-field.component.js.map +1 -0
  127. package/dist/{types/components → components}/search/search-results/search-results.component.d.ts +5 -2
  128. package/dist/components/search/search-results/search-results.component.js +55 -0
  129. package/dist/components/search/search-results/search-results.component.js.map +1 -0
  130. package/dist/components/search/search-results-item/search-results-item.component.d.ts +38 -0
  131. package/dist/components/search/search-results-item/search-results-item.component.js +65 -0
  132. package/dist/components/search/search-results-item/search-results-item.component.js.map +1 -0
  133. package/dist/components/search/search-results-list/search-results-list.component.d.ts +23 -0
  134. package/dist/components/search/search-results-list/search-results-list.component.js +38 -0
  135. package/dist/components/search/search-results-list/search-results-list.component.js.map +1 -0
  136. package/dist/components/search/selected-facets/selected-facets.component.d.ts +31 -0
  137. package/dist/components/search/selected-facets/selected-facets.component.js +117 -0
  138. package/dist/components/search/selected-facets/selected-facets.component.js.map +1 -0
  139. package/dist/components/search/sorting/sorting.component.d.ts +30 -0
  140. package/dist/components/search/sorting/sorting.component.js +50 -0
  141. package/dist/components/search/sorting/sorting.component.js.map +1 -0
  142. package/dist/components/search/tabs/tabs.component.d.ts +30 -0
  143. package/dist/components/search/tabs/tabs.component.js +52 -0
  144. package/dist/components/search/tabs/tabs.component.js.map +1 -0
  145. package/dist/{types/models/global.models.d.ts → configuration/configuration.models.d.ts} +174 -1
  146. package/dist/configuration/configuration.models.js +2 -0
  147. package/dist/configuration/configuration.models.js.map +1 -0
  148. package/dist/configuration/index.d.ts +4 -0
  149. package/dist/configuration/index.js +5 -0
  150. package/dist/configuration/index.js.map +1 -0
  151. package/dist/helpers/helpers.d.ts +182 -0
  152. package/dist/helpers/helpers.js +244 -0
  153. package/dist/helpers/helpers.js.map +1 -0
  154. package/dist/helpers/index.d.ts +4 -0
  155. package/dist/helpers/index.js +5 -0
  156. package/dist/helpers/index.js.map +1 -0
  157. package/dist/{types/index.d.ts → index.d.ts} +0 -0
  158. package/dist/index.js +83 -0
  159. package/dist/{hawksearch-handlebars-ui.js.LICENSE.txt → index.js.LICENSE.txt} +9 -0
  160. package/dist/index.js.map +1 -0
  161. package/dist/{types/models → models}/autocomplete.models.d.ts +30 -0
  162. package/dist/models/autocomplete.models.js +2 -0
  163. package/dist/models/autocomplete.models.js.map +1 -0
  164. package/dist/{types/models → models}/component.models.d.ts +144 -0
  165. package/dist/models/component.models.js +2 -0
  166. package/dist/models/component.models.js.map +1 -0
  167. package/dist/{types/models → models}/content.models.d.ts +30 -0
  168. package/dist/models/content.models.js +2 -0
  169. package/dist/models/content.models.js.map +1 -0
  170. package/dist/{types/models → models}/index.d.ts +0 -1
  171. package/dist/models/index.js +11 -0
  172. package/dist/models/index.js.map +1 -0
  173. package/dist/{types/models → models}/raw/index.d.ts +0 -0
  174. package/dist/models/raw/index.js +4 -0
  175. package/dist/models/raw/index.js.map +1 -0
  176. package/dist/{types/models → models}/raw/raw-autocomplete.models.d.ts +0 -0
  177. package/dist/models/raw/raw-autocomplete.models.js +2 -0
  178. package/dist/models/raw/raw-autocomplete.models.js.map +1 -0
  179. package/dist/{types/models → models}/raw/raw-recommendation.models.d.ts +0 -0
  180. package/dist/models/raw/raw-recommendation.models.js +2 -0
  181. package/dist/models/raw/raw-recommendation.models.js.map +1 -0
  182. package/dist/{types/models → models}/raw/raw-search.models.d.ts +0 -0
  183. package/dist/models/raw/raw-search.models.js +2 -0
  184. package/dist/models/raw/raw-search.models.js.map +1 -0
  185. package/dist/{types/models → models}/recommendation.models.d.ts +12 -0
  186. package/dist/models/recommendation.models.js +2 -0
  187. package/dist/models/recommendation.models.js.map +1 -0
  188. package/dist/{types/models → models}/search.models.d.ts +78 -0
  189. package/dist/models/search.models.js +2 -0
  190. package/dist/models/search.models.js.map +1 -0
  191. package/dist/{types/models → models}/tracking.models.d.ts +12 -0
  192. package/dist/models/tracking.models.js +47 -0
  193. package/dist/models/tracking.models.js.map +1 -0
  194. package/dist/{types/services → services}/autocomplete.service.d.ts +0 -0
  195. package/dist/services/autocomplete.service.js +102 -0
  196. package/dist/services/autocomplete.service.js.map +1 -0
  197. package/dist/{types/services → services}/base.service.d.ts +1 -1
  198. package/dist/services/base.service.js +98 -0
  199. package/dist/services/base.service.js.map +1 -0
  200. package/dist/{types/services → services}/index.d.ts +0 -0
  201. package/dist/services/index.js +8 -0
  202. package/dist/services/index.js.map +1 -0
  203. package/dist/{types/services → services}/recommendations.service.d.ts +0 -0
  204. package/dist/services/recommendations.service.js +81 -0
  205. package/dist/services/recommendations.service.js.map +1 -0
  206. package/dist/{types/services → services}/search.service.d.ts +0 -0
  207. package/dist/services/search.service.js +948 -0
  208. package/dist/services/search.service.js.map +1 -0
  209. package/dist/{types/services → services}/tracking.service.d.ts +0 -0
  210. package/dist/services/tracking.service.js +169 -0
  211. package/dist/services/tracking.service.js.map +1 -0
  212. package/dist/{hawksearch-handlebars-ui.aa9202d77d6b6a9dfb89f5bfe5873220.css → styles.aa9202d77d6b6a9dfb89f5bfe5873220.css} +0 -0
  213. package/dist/{types/helpers → utilities}/dates.d.ts +0 -0
  214. package/dist/utilities/dates.js +29 -0
  215. package/dist/utilities/dates.js.map +1 -0
  216. package/dist/{types/helpers → utilities}/formatters.d.ts +0 -0
  217. package/dist/utilities/formatters.js +33 -0
  218. package/dist/utilities/formatters.js.map +1 -0
  219. package/dist/{types/helpers → utilities}/index.d.ts +0 -0
  220. package/dist/utilities/index.js +6 -0
  221. package/dist/utilities/index.js.map +1 -0
  222. package/docs/assets/highlight.css +127 -0
  223. package/docs/assets/main.js +58 -0
  224. package/docs/assets/search.js +1 -0
  225. package/docs/assets/style.css +1280 -0
  226. package/docs/classes/Components.AutocompleteComponent.html +334 -0
  227. package/docs/classes/Components.BaseComponent.html +231 -0
  228. package/docs/classes/Components.BaseContentComponent.html +221 -0
  229. package/docs/classes/Components.BaseFacetComponent.html +292 -0
  230. package/docs/classes/Components.CheckboxListFacetComponent.html +272 -0
  231. package/docs/classes/Components.ColorFacetComponent.html +253 -0
  232. package/docs/classes/Components.ContentZoneComponent.html +296 -0
  233. package/docs/classes/Components.CustomContentComponent.html +242 -0
  234. package/docs/classes/Components.DatePickerComponent.html +468 -0
  235. package/docs/classes/Components.DateRangeFacetComponent.html +269 -0
  236. package/docs/classes/Components.FacetWrapperComponent.html +291 -0
  237. package/docs/classes/Components.FacetsListComponent.html +259 -0
  238. package/docs/classes/Components.FeaturedItemsContentComponent.html +242 -0
  239. package/docs/classes/Components.FeaturedItemsContentItemComponent.html +280 -0
  240. package/docs/classes/Components.IconComponent.html +289 -0
  241. package/docs/classes/Components.ImageContentComponent.html +242 -0
  242. package/docs/classes/Components.LandingPageComponent.html +283 -0
  243. package/docs/classes/Components.LinkListFacetComponent.html +253 -0
  244. package/docs/classes/Components.ModifiedQueryComponent.html +260 -0
  245. package/docs/classes/Components.NumericRangeFacetComponent.html +269 -0
  246. package/docs/classes/Components.PageSizeComponent.html +260 -0
  247. package/docs/classes/Components.PaginationComponent.html +290 -0
  248. package/docs/classes/Components.PopularQueriesContentComponent.html +242 -0
  249. package/docs/classes/Components.QuerySuggestionsComponent.html +276 -0
  250. package/docs/classes/Components.RangeSliderComponent.html +320 -0
  251. package/docs/classes/Components.RangeSliderFacetComponent.html +269 -0
  252. package/docs/classes/Components.RecentSearchesFacetComponent.html +265 -0
  253. package/docs/classes/Components.RecommendationsComponent.html +355 -0
  254. package/docs/classes/Components.RecommendationsItemComponent.html +273 -0
  255. package/docs/classes/Components.RelatedSearchesFacetComponent.html +265 -0
  256. package/docs/classes/Components.SearchFieldComponent.html +277 -0
  257. package/docs/classes/Components.SearchResultsComponent.html +280 -0
  258. package/docs/classes/Components.SearchResultsItemComponent.html +273 -0
  259. package/docs/classes/Components.SearchResultsListComponent.html +242 -0
  260. package/docs/classes/Components.SearchWithinFacetComponent.html +265 -0
  261. package/docs/classes/Components.SelectedFacetsComponent.html +263 -0
  262. package/docs/classes/Components.SizeFacetComponent.html +253 -0
  263. package/docs/classes/Components.SortingComponent.html +259 -0
  264. package/docs/classes/Components.TabsComponent.html +259 -0
  265. package/docs/classes/Components.TooltipComponent.html +263 -0
  266. package/docs/classes/Services.AutocompleteService.html +273 -0
  267. package/docs/classes/Services.RecommendationsService.html +273 -0
  268. package/docs/classes/Services.SearchService.html +620 -0
  269. package/docs/classes/Services.TrackingService.html +445 -0
  270. package/docs/enums/Models.AutocompleteItemType.html +78 -0
  271. package/docs/enums/Models.EventType.html +113 -0
  272. package/docs/enums/Models.PageType.html +83 -0
  273. package/docs/enums/Models.SearchType.html +68 -0
  274. package/docs/functions/Helpers.add.html +89 -0
  275. package/docs/functions/Helpers.and.html +85 -0
  276. package/docs/functions/Helpers.attribute.html +89 -0
  277. package/docs/functions/Helpers.concat.html +85 -0
  278. package/docs/functions/Helpers.currency.html +87 -0
  279. package/docs/functions/Helpers.eq.html +83 -0
  280. package/docs/functions/Helpers.exclude.html +85 -0
  281. package/docs/functions/Helpers.gt.html +83 -0
  282. package/docs/functions/Helpers.gte.html +83 -0
  283. package/docs/functions/Helpers.html.html +79 -0
  284. package/docs/functions/Helpers.ifElse.html +93 -0
  285. package/docs/functions/Helpers.lt.html +83 -0
  286. package/docs/functions/Helpers.lte.html +83 -0
  287. package/docs/functions/Helpers.number.html +87 -0
  288. package/docs/functions/Helpers.or.html +79 -0
  289. package/docs/functions/Helpers.string.html +83 -0
  290. package/docs/functions/Helpers.subtract.html +83 -0
  291. package/docs/index.html +142 -0
  292. package/docs/interfaces/Configuration.AutocompleteComponentConfig.html +86 -0
  293. package/docs/interfaces/Configuration.BaseComponentConfig.html +120 -0
  294. package/docs/interfaces/Configuration.Breakpoints.html +87 -0
  295. package/docs/interfaces/Configuration.CheckboxListFacetComponentConfig.html +106 -0
  296. package/docs/interfaces/Configuration.ColorFacetComponentConfig.html +102 -0
  297. package/docs/interfaces/Configuration.ContentZoneComponentConfig.html +86 -0
  298. package/docs/interfaces/Configuration.CustomContentComponentConfig.html +86 -0
  299. package/docs/interfaces/Configuration.DatePickerComponentConfig.html +104 -0
  300. package/docs/interfaces/Configuration.DateRangeFacetComponentConfig.html +98 -0
  301. package/docs/interfaces/Configuration.FacetWrapperComponentConfig.html +86 -0
  302. package/docs/interfaces/Configuration.FacetsListComponentConfig.html +96 -0
  303. package/docs/interfaces/Configuration.FeaturedItemsContentComponentConfig.html +86 -0
  304. package/docs/interfaces/Configuration.FeaturedItemsContentItemComponentConfig.html +96 -0
  305. package/docs/interfaces/Configuration.HawkSearchComponents.html +247 -0
  306. package/docs/interfaces/Configuration.HawkSearchConfig.html +388 -0
  307. package/docs/interfaces/Configuration.HawkSearchGlobal.html +98 -0
  308. package/docs/interfaces/Configuration.HawkSearchState.html +72 -0
  309. package/docs/interfaces/Configuration.IconComponentConfig.html +86 -0
  310. package/docs/interfaces/Configuration.ImageContentComponentConfig.html +86 -0
  311. package/docs/interfaces/Configuration.LandingPageComponentConfig.html +86 -0
  312. package/docs/interfaces/Configuration.LinkListFacetComponentConfig.html +98 -0
  313. package/docs/interfaces/Configuration.ModifiedQueryComponentConfig.html +98 -0
  314. package/docs/interfaces/Configuration.NumericRangeFacetComponentConfig.html +98 -0
  315. package/docs/interfaces/Configuration.PageSizeComponentConfig.html +86 -0
  316. package/docs/interfaces/Configuration.PaginationComponentConfig.html +104 -0
  317. package/docs/interfaces/Configuration.PopularQueriesContentComponentConfig.html +86 -0
  318. package/docs/interfaces/Configuration.QuerySuggestionsComponentConfig.html +98 -0
  319. package/docs/interfaces/Configuration.RangeSliderComponentConfig.html +98 -0
  320. package/docs/interfaces/Configuration.RangeSliderFacetComponentConfig.html +98 -0
  321. package/docs/interfaces/Configuration.RecentSearchesFacetComponentConfig.html +86 -0
  322. package/docs/interfaces/Configuration.RecommendationsComponentConfig.html +131 -0
  323. package/docs/interfaces/Configuration.RecommendationsItemComponentConfig.html +96 -0
  324. package/docs/interfaces/Configuration.RelatedSearchesFacetComponentConfig.html +86 -0
  325. package/docs/interfaces/Configuration.SearchFieldComponentConfig.html +96 -0
  326. package/docs/interfaces/Configuration.SearchResultsComponentConfig.html +86 -0
  327. package/docs/interfaces/Configuration.SearchResultsItemComponentConfig.html +96 -0
  328. package/docs/interfaces/Configuration.SearchResultsListComponentConfig.html +86 -0
  329. package/docs/interfaces/Configuration.SearchWithinFacetComponentConfig.html +96 -0
  330. package/docs/interfaces/Configuration.SelectedFacetsComponentConfig.html +96 -0
  331. package/docs/interfaces/Configuration.SizeFacetComponentConfig.html +102 -0
  332. package/docs/interfaces/Configuration.SortingComponentConfig.html +86 -0
  333. package/docs/interfaces/Configuration.TabsComponentConfig.html +86 -0
  334. package/docs/interfaces/Configuration.TooltipComponentConfig.html +86 -0
  335. package/docs/interfaces/Models.AutocompleteCategories.html +72 -0
  336. package/docs/interfaces/Models.AutocompleteCategory.html +82 -0
  337. package/docs/interfaces/Models.AutocompleteComponentModel.html +112 -0
  338. package/docs/interfaces/Models.AutocompleteContent.html +77 -0
  339. package/docs/interfaces/Models.AutocompleteContentResult.html +92 -0
  340. package/docs/interfaces/Models.AutocompleteProductResult.html +102 -0
  341. package/docs/interfaces/Models.AutocompleteProducts.html +77 -0
  342. package/docs/interfaces/Models.AutocompleteQueries.html +72 -0
  343. package/docs/interfaces/Models.AutocompleteQuery.html +72 -0
  344. package/docs/interfaces/Models.AutocompleteRequest.html +67 -0
  345. package/docs/interfaces/Models.AutocompleteResponse.html +99 -0
  346. package/docs/interfaces/Models.BaseComponentModel.html +188 -0
  347. package/docs/interfaces/Models.CalendarDay.html +87 -0
  348. package/docs/interfaces/Models.CheckboxListFacetComponentModel.html +107 -0
  349. package/docs/interfaces/Models.CheckboxListFacetValue.html +133 -0
  350. package/docs/interfaces/Models.ColorFacetComponentModel.html +93 -0
  351. package/docs/interfaces/Models.ColorFacetValue.html +123 -0
  352. package/docs/interfaces/Models.ContentConfiguration.html +77 -0
  353. package/docs/interfaces/Models.ContentType.html +93 -0
  354. package/docs/interfaces/Models.ContentZone.html +72 -0
  355. package/docs/interfaces/Models.ContentZoneComponentModel.html +76 -0
  356. package/docs/interfaces/Models.ContentZoneItem.html +77 -0
  357. package/docs/interfaces/Models.ContentZones.html +154 -0
  358. package/docs/interfaces/Models.CustomContent.html +101 -0
  359. package/docs/interfaces/Models.CustomContentComponentModel.html +101 -0
  360. package/docs/interfaces/Models.CustomWidgetContent.html +99 -0
  361. package/docs/interfaces/Models.DateFacetRange.html +94 -0
  362. package/docs/interfaces/Models.DatePickerComponentModel.html +124 -0
  363. package/docs/interfaces/Models.DateRangeFacetComponentModel.html +96 -0
  364. package/docs/interfaces/Models.Facet.html +139 -0
  365. package/docs/interfaces/Models.FacetScrolling.html +72 -0
  366. package/docs/interfaces/Models.FacetSearch.html +67 -0
  367. package/docs/interfaces/Models.FacetTruncation.html +67 -0
  368. package/docs/interfaces/Models.FacetValue.html +112 -0
  369. package/docs/interfaces/Models.FacetValueColor.html +77 -0
  370. package/docs/interfaces/Models.FacetWrapperComponentModel.html +165 -0
  371. package/docs/interfaces/Models.FacetsListComponentModel.html +84 -0
  372. package/docs/interfaces/Models.FeaturedItemsContent.html +101 -0
  373. package/docs/interfaces/Models.FeaturedItemsContentComponentModel.html +101 -0
  374. package/docs/interfaces/Models.FeaturedItemsContentItemComponentModel.html +147 -0
  375. package/docs/interfaces/Models.IconComponentModel.html +84 -0
  376. package/docs/interfaces/Models.ImageContent.html +126 -0
  377. package/docs/interfaces/Models.ImageContentComponentModel.html +127 -0
  378. package/docs/interfaces/Models.LandingPageComponentModel.html +160 -0
  379. package/docs/interfaces/Models.LinkListFacetComponentModel.html +99 -0
  380. package/docs/interfaces/Models.LinkListFacetValue.html +123 -0
  381. package/docs/interfaces/Models.ModifiedQueryComponentModel.html +86 -0
  382. package/docs/interfaces/Models.ModifiedQueryData.html +77 -0
  383. package/docs/interfaces/Models.NumericFacetRange.html +94 -0
  384. package/docs/interfaces/Models.NumericRangeFacetComponentModel.html +96 -0
  385. package/docs/interfaces/Models.PageSizeComponentModel.html +69 -0
  386. package/docs/interfaces/Models.Pagination.html +102 -0
  387. package/docs/interfaces/Models.PaginationComponentModel.html +147 -0
  388. package/docs/interfaces/Models.PaginationOption.html +82 -0
  389. package/docs/interfaces/Models.PopularQueriesContent.html +101 -0
  390. package/docs/interfaces/Models.PopularQueriesContentComponentModel.html +101 -0
  391. package/docs/interfaces/Models.PopularQueriesContentItem.html +77 -0
  392. package/docs/interfaces/Models.QuerySuggestionsComponentModel.html +69 -0
  393. package/docs/interfaces/Models.QuerySuggestionsData.html +72 -0
  394. package/docs/interfaces/Models.RangeSliderComponentModel.html +86 -0
  395. package/docs/interfaces/Models.RangeSliderEventData.html +72 -0
  396. package/docs/interfaces/Models.RangeSliderFacetComponentModel.html +106 -0
  397. package/docs/interfaces/Models.RecentSearchesFacetComponentModel.html +69 -0
  398. package/docs/interfaces/Models.RecommendationsComponentModel.html +137 -0
  399. package/docs/interfaces/Models.RecommendationsItem.html +124 -0
  400. package/docs/interfaces/Models.RecommendationsItemComponentModel.html +147 -0
  401. package/docs/interfaces/Models.RecommendationsRequest.html +77 -0
  402. package/docs/interfaces/Models.RecommendationsResponse.html +72 -0
  403. package/docs/interfaces/Models.RecommendationsWidget.html +89 -0
  404. package/docs/interfaces/Models.Redirect.html +72 -0
  405. package/docs/interfaces/Models.RelatedSearchesFacetComponentModel.html +69 -0
  406. package/docs/interfaces/Models.SearchFieldComponentModel.html +79 -0
  407. package/docs/interfaces/Models.SearchRequest.html +107 -0
  408. package/docs/interfaces/Models.SearchResponse.html +140 -0
  409. package/docs/interfaces/Models.SearchResultsComponentModel.html +155 -0
  410. package/docs/interfaces/Models.SearchResultsItem.html +124 -0
  411. package/docs/interfaces/Models.SearchResultsItemComponentModel.html +149 -0
  412. package/docs/interfaces/Models.SearchResultsListComponentModel.html +69 -0
  413. package/docs/interfaces/Models.SearchWithinFacetComponentModel.html +79 -0
  414. package/docs/interfaces/Models.SelectedFacet.html +82 -0
  415. package/docs/interfaces/Models.SelectedFacetValue.html +77 -0
  416. package/docs/interfaces/Models.SelectedFacetsComponentModel.html +79 -0
  417. package/docs/interfaces/Models.SeoConfiguration.html +87 -0
  418. package/docs/interfaces/Models.SizeFacetComponentModel.html +93 -0
  419. package/docs/interfaces/Models.SizeFacetValue.html +123 -0
  420. package/docs/interfaces/Models.Sorting.html +72 -0
  421. package/docs/interfaces/Models.SortingComponentModel.html +69 -0
  422. package/docs/interfaces/Models.SortingOption.html +82 -0
  423. package/docs/interfaces/Models.TabsComponentModel.html +74 -0
  424. package/docs/interfaces/Models.TooltipComponentModel.html +69 -0
  425. package/docs/modules/Components.html +521 -0
  426. package/docs/modules/Configuration.html +144 -0
  427. package/docs/modules/Helpers.html +87 -0
  428. package/docs/modules/Models.html +270 -0
  429. package/docs/modules/Services.html +72 -0
  430. package/docs/modules.html +51 -0
  431. package/docs/types/Configuration.DisplayType.html +91 -0
  432. package/docs/types/Models.FacetState.html +161 -0
  433. package/docs/types/Models.FacetType.html +148 -0
  434. package/docs/types/Models.FacetValueState.html +153 -0
  435. package/docs/types/Models.IconName.html +148 -0
  436. package/docs/types/Models.SearchResultsItemType.html +148 -0
  437. package/docs/types/Models.SearchResultsMode.html +148 -0
  438. package/docs/types/Models.SelectedFacets.html +148 -0
  439. package/docs/variables/Services.autocompleteService-1.html +55 -0
  440. package/docs/variables/Services.recommendationsService-1.html +55 -0
  441. package/docs/variables/Services.searchService-1.html +55 -0
  442. package/docs/variables/Services.trackingService-1.html +55 -0
  443. package/package.json +7 -3
  444. package/readme.md +2 -2
  445. package/dist/hawksearch-handlebars-ui.js +0 -3
  446. package/dist/hawksearch-handlebars-ui.js.map +0 -1
  447. package/dist/types/components/content/content-types/custom-content/custom-content.component.d.ts +0 -8
  448. package/dist/types/components/content/content-types/featured-items-content/featured-items-content.component.d.ts +0 -9
  449. package/dist/types/components/content/content-types/featured-items-content-item/featured-items-content-item.component.d.ts +0 -10
  450. package/dist/types/components/content/content-types/image-content/image-content.component.d.ts +0 -10
  451. package/dist/types/components/content/content-types/popular-queries-content/popular-queries-content.component.d.ts +0 -9
  452. package/dist/types/components/content/content-zone/content-zone.component.d.ts +0 -17
  453. package/dist/types/components/general/date-picker/date-picker.component.d.ts +0 -27
  454. package/dist/types/components/general/icon/icon.component.d.ts +0 -11
  455. package/dist/types/components/general/range-slider/range-slider.component.d.ts +0 -25
  456. package/dist/types/components/general/tooltip/tooltip.component.d.ts +0 -11
  457. package/dist/types/components/index.d.ts +0 -9
  458. package/dist/types/components/landing-pages/landing-page/landing-page.component.d.ts +0 -12
  459. package/dist/types/components/recommendations/recommendations/recommendations.component.d.ts +0 -38
  460. package/dist/types/components/recommendations/recommendations-item/recommendations-item.component.d.ts +0 -12
  461. package/dist/types/components/search/facet-types/base-facet.component.d.ts +0 -7
  462. package/dist/types/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.d.ts +0 -9
  463. package/dist/types/components/search/facet-types/color-facet/color-facet.component.d.ts +0 -8
  464. package/dist/types/components/search/facet-types/date-range-facet/date-range-facet.component.d.ts +0 -12
  465. package/dist/types/components/search/facet-types/linked-list-facet/link-list-facet.component.d.ts +0 -8
  466. package/dist/types/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.d.ts +0 -11
  467. package/dist/types/components/search/facet-types/range-slider-facet/range-slider-facet.component.d.ts +0 -13
  468. package/dist/types/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.d.ts +0 -9
  469. package/dist/types/components/search/facet-types/related-searches-facet/related-searches-facet.component.d.ts +0 -9
  470. package/dist/types/components/search/facet-types/search-within-facet/search-within-facet.component.d.ts +0 -9
  471. package/dist/types/components/search/facet-types/size-facet/size-facet.component.d.ts +0 -8
  472. package/dist/types/components/search/facet-wrapper/facet-wrapper.component.d.ts +0 -12
  473. package/dist/types/components/search/facets-list/facets-list.component.d.ts +0 -11
  474. package/dist/types/components/search/modified-query/modified-query.component.d.ts +0 -10
  475. package/dist/types/components/search/page-size/page-size.component.d.ts +0 -10
  476. package/dist/types/components/search/pagination/pagination.component.d.ts +0 -14
  477. package/dist/types/components/search/query-suggestions/query-suggestions.component.d.ts +0 -11
  478. package/dist/types/components/search/search-field/search-field.component.d.ts +0 -13
  479. package/dist/types/components/search/search-results-item/search-results-item.component.d.ts +0 -10
  480. package/dist/types/components/search/search-results-list/search-results-list.component.d.ts +0 -10
  481. package/dist/types/components/search/selected-facets/selected-facets.component.d.ts +0 -10
  482. package/dist/types/components/search/sorting/sorting.component.d.ts +0 -10
  483. package/dist/types/components/search/tabs/tabs.component.d.ts +0 -10
@@ -1,4 +1,13 @@
1
- import { BaseComponentConfig, BaseComponentModel, HawkSearchComponents } from '@models';
1
+ import { BaseComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { BaseComponentModel } from '@models';
3
+ /**
4
+ * @typeParam TConfig Component configuration
5
+ * @typeParam TData Component data
6
+ * @typeParam TModel Data bound to Handlebars template
7
+ *
8
+ * @noInheritDoc
9
+ * @category Base
10
+ */
2
11
  export declare abstract class BaseComponent<TConfig extends BaseComponentConfig, TData, TModel extends BaseComponentModel> extends HTMLElement {
3
12
  /**
4
13
  * The data bound to the component.
@@ -0,0 +1,216 @@
1
+ import defaultStylesheet from '../scss/styles.scss';
2
+ /**
3
+ * @typeParam TConfig Component configuration
4
+ * @typeParam TData Component data
5
+ * @typeParam TModel Data bound to Handlebars template
6
+ *
7
+ * @noInheritDoc
8
+ * @category Base
9
+ */
10
+ export class BaseComponent extends HTMLElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * The Handlebars reference shared by all HawkSearch components.
15
+ */
16
+ this.handlebars = HawkSearch.handlebars;
17
+ }
18
+ /**
19
+ * The optional configuration object for this component.
20
+ */
21
+ get configuration() {
22
+ var _a;
23
+ return (_a = HawkSearch.config.components) === null || _a === void 0 ? void 0 : _a[this.componentName];
24
+ }
25
+ /**
26
+ * Whether or not the component is rendered within the Shadow DOM. In order of preference, this is specified by {@link configuration} or {@link Models.HawkSearchConfig.shadowDom}.
27
+ *
28
+ * @internal
29
+ * @defaultValue `true`
30
+ */
31
+ get shadowDom() {
32
+ var _a, _b;
33
+ return ((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.shadowDom) !== undefined ? this.configuration.shadowDom : (_b = HawkSearch.config.shadowDom) !== null && _b !== void 0 ? _b : true;
34
+ }
35
+ /**
36
+ * The root element which should be used for querying any child elements. This resolves to `this.shadowRoot` if the Shadow DOM is enabled, otherwise `this`.
37
+ */
38
+ get rootElement() {
39
+ var _a;
40
+ return (_a = this.shadowRoot) !== null && _a !== void 0 ? _a : this;
41
+ }
42
+ /**
43
+ * @internal
44
+ *
45
+ * @returns Whether the element has a custom template specified through child content.
46
+ */
47
+ get hasContentTemplateOverride() {
48
+ return !!this.innerHTML.trim().length;
49
+ }
50
+ /**
51
+ * The name of the event that this component listens to for data binding. if {@link bindFromEvent} is `true`, this prepends `hawksearch:bind-` to {@link componentName} and appends :{@link eventFilter}, if specified.
52
+ *
53
+ * @internal
54
+ */
55
+ get eventName() {
56
+ if (!this.bindFromEvent) {
57
+ return undefined;
58
+ }
59
+ let eventName = `hawksearch:bind-${this.componentName}`;
60
+ if (this.eventFilter) {
61
+ eventName = `${eventName}:${this.eventFilter}`;
62
+ }
63
+ return eventName;
64
+ }
65
+ /**
66
+ * @ignore
67
+ */
68
+ connectedCallback() {
69
+ if (this.shadowDom) {
70
+ this.attachShadow({
71
+ mode: 'open'
72
+ });
73
+ }
74
+ this.registerHelpers();
75
+ const customTemplateHtml = this.getCustomTemplateHtml();
76
+ const templateHtml = customTemplateHtml !== null && customTemplateHtml !== void 0 ? customTemplateHtml : this.defaultHtml;
77
+ this.template = this.handlebars.compile(templateHtml);
78
+ setTimeout(() => {
79
+ this.render();
80
+ });
81
+ if (this.eventName) {
82
+ this.bindEventHandler = ((event) => {
83
+ this.data = event.detail;
84
+ this.render();
85
+ });
86
+ window.addEventListener(this.eventName, this.bindEventHandler);
87
+ }
88
+ }
89
+ /**
90
+ * @ignore
91
+ */
92
+ disconnectedCallback() {
93
+ if (this.eventName && this.bindEventHandler) {
94
+ window.removeEventListener(this.eventName, this.bindEventHandler);
95
+ }
96
+ }
97
+ /**
98
+ * Optional method that can be overwritten to register Handlebars helper functions which can be accessed from the template. For more information, see [Custom Helpers](https://handlebarsjs.com/guide/#custom-helpers).
99
+ *
100
+ * @virtual
101
+ */
102
+ registerHelpers() { }
103
+ /**
104
+ * Binds {@link contentModel} to the Handlebars template and renders the resulting HTML content.
105
+ */
106
+ render() {
107
+ var _a, _b;
108
+ if (!this.template || !this.renderContent()) {
109
+ this.rootElement.replaceChildren();
110
+ this.style.display = 'none';
111
+ return;
112
+ }
113
+ const contentModel = this.getContentModel();
114
+ const event = new CustomEvent(`hawksearch:before-${this.componentName}-rendered`, { detail: contentModel });
115
+ window.dispatchEvent(event);
116
+ const elements = [];
117
+ let stylesheets = [];
118
+ if (((_a = HawkSearch.config.css) === null || _a === void 0 ? void 0 : _a.defaultStyles) !== false) {
119
+ stylesheets.push(defaultStylesheet);
120
+ }
121
+ if ((_b = HawkSearch.config.css) === null || _b === void 0 ? void 0 : _b.customStyles) {
122
+ const customStylesheets = typeof HawkSearch.config.css.customStyles === 'string' ? [HawkSearch.config.css.customStyles] : HawkSearch.config.css.customStyles;
123
+ stylesheets = stylesheets.concat(customStylesheets);
124
+ }
125
+ stylesheets.forEach((url) => {
126
+ if (!this.shadowDom && document.head.querySelector(`link[href="${url}"]`)) {
127
+ return;
128
+ }
129
+ const link = document.createElement('link');
130
+ link.type = 'text/css';
131
+ link.rel = 'stylesheet';
132
+ link.href = url;
133
+ if (this.shadowDom) {
134
+ elements.push(link);
135
+ }
136
+ else {
137
+ document.head.append(link);
138
+ }
139
+ });
140
+ const templateElement = document.createElement('template');
141
+ const html = this.template(contentModel);
142
+ templateElement.innerHTML = html;
143
+ const content = templateElement.content.cloneNode(true);
144
+ elements.push(content);
145
+ this.rootElement.replaceChildren(...elements);
146
+ this.style.display = !templateElement.innerHTML ? 'none' : '';
147
+ this.contentModel = contentModel;
148
+ this.bindChildElements();
149
+ this.onRender();
150
+ }
151
+ /**
152
+ * Determines whether the {@link data} meets the necessary conditions to perform data binding and render content.
153
+ *
154
+ * @virtual
155
+ * @returns Whether the component should be rendered. If `false`, the component will have empty contents and be set to `display: none;`.
156
+ */
157
+ renderContent() {
158
+ return true;
159
+ }
160
+ /**
161
+ * After the component is rendered, this method is called to bind any child components.
162
+ *
163
+ * @virtual
164
+ */
165
+ bindChildElements() { }
166
+ /**
167
+ * After the component is rendered, this method is called for any additional processing (such as attaching event listeners) which needs to occur.
168
+ *
169
+ * @virtual
170
+ */
171
+ onRender() { }
172
+ /**
173
+ * @returns The Handlebars template HTML. In order of preference, this is specified by the child contents of the HTML element, the template specified by {@link configuration}, or the default template for the component.
174
+ *
175
+ * @internal
176
+ */
177
+ getCustomTemplateHtml() {
178
+ var _a;
179
+ let customTemplate;
180
+ if (this.hasContentTemplateOverride) {
181
+ customTemplate = this.innerHTML;
182
+ }
183
+ else {
184
+ customTemplate = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.template;
185
+ if (customTemplate) {
186
+ const customTemplateElement = document.getElementById(customTemplate);
187
+ if (customTemplateElement instanceof HTMLTemplateElement) {
188
+ customTemplate = customTemplateElement.innerHTML;
189
+ }
190
+ const replacements = {
191
+ '{{&gt;': '{{>'
192
+ };
193
+ Object.entries(replacements).forEach(([input, output]) => {
194
+ const regex = new RegExp(input, 'g');
195
+ customTemplate = customTemplate.replace(regex, output);
196
+ });
197
+ }
198
+ }
199
+ return customTemplate;
200
+ }
201
+ /**
202
+ * Replaces placeholders in a given string with values from a data object.
203
+ *
204
+ * @param template The template string.
205
+ * @param values The object containing properties which will be bound to `template`.
206
+ * @returns The `template` string with all placeholders replaced by the values specified in `values`.
207
+ */
208
+ interpolate(template, values) {
209
+ let output = template;
210
+ Object.entries(values).forEach(([key, value]) => {
211
+ output = output.replace('${' + key + '}', value);
212
+ });
213
+ return output;
214
+ }
215
+ }
216
+ //# sourceMappingURL=base.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.component.js","sourceRoot":"","sources":["../../src/components/base.component.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- import { BaseComponentConfig, BaseComponentModel, ContentType } from '@models';
1
+ import { BaseComponentConfig } from '@configuration';
2
+ import { BaseComponentModel, ContentType } from '@models';
2
3
  import { BaseComponent } from '../../base.component';
4
+ /**
5
+ * @category Content
6
+ */
3
7
  export declare abstract class BaseContentComponent<TConfig extends BaseComponentConfig, TData extends ContentType, TModel extends BaseComponentModel> extends BaseComponent<TConfig, TData, TModel> {
4
8
  protected bindFromEvent: boolean;
5
9
  }
@@ -0,0 +1,11 @@
1
+ import { BaseComponent } from '../../base.component';
2
+ /**
3
+ * @category Content
4
+ */
5
+ export class BaseContentComponent extends BaseComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.bindFromEvent = false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=base-content.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-content.component.js","sourceRoot":"","sources":["../../../../src/components/content/content-types/base-content.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,OAAgB,oBAIpB,SAAQ,aAAqC;IAJ/C;;QAKuB,kBAAa,GAAG,KAAK,CAAC;IAC7C,CAAC;CAAA"}
@@ -0,0 +1,21 @@
1
+ import { CustomContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { CustomContent, CustomContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Custom Content component renders HTML defined in Hawksearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-custom-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./custom-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class CustomContentComponent extends BaseContentComponent<CustomContentComponentConfig, CustomContent, CustomContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): CustomContentComponentModel;
21
+ }
@@ -0,0 +1,28 @@
1
+ import { BaseContentComponent } from '../base-content.component';
2
+ import defaultHtml from './custom-content.component.hbs';
3
+ /**
4
+ * The Custom Content component renders HTML defined in Hawksearch.
5
+ *
6
+ * ## Tag
7
+ * The tag for this component is `<hawksearch-custom-content>`.
8
+ *
9
+ * ## Default Template
10
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
11
+ * {@embed ./custom-content.component.hbs}
12
+ *
13
+ * @category Content
14
+ */
15
+ export class CustomContentComponent extends BaseContentComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.componentName = 'custom-content';
19
+ this.defaultHtml = defaultHtml;
20
+ }
21
+ renderContent() {
22
+ return !!this.data;
23
+ }
24
+ getContentModel() {
25
+ return Object.assign({}, this.data);
26
+ }
27
+ }
28
+ //# sourceMappingURL=custom-content.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-content.component.js","sourceRoot":"","sources":["../../../../../src/components/content/content-types/custom-content/custom-content.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAuB,SAAQ,oBAA8F;IAA1I;;QACuB,kBAAa,GAA+B,gBAAgB,CAAC;QAC7D,gBAAW,GAAG,WAAW,CAAC;IAWjD,CAAC;IATsB,aAAa;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IAEkB,eAAe;QAC9B,yBACO,IAAI,CAAC,IAAK,EACf;IACN,CAAC;CACJ"}
@@ -0,0 +1,22 @@
1
+ import { FeaturedItemsContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { FeaturedItemsContent, FeaturedItemsContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Featured Items Content component renders a custom list of search results (typically products) defined as Spotlights in Hawksearch. This is commonly used to display a default set of products when a query returns no results.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-featured-items-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./featured-items-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class FeaturedItemsContentComponent extends BaseContentComponent<FeaturedItemsContentComponentConfig, FeaturedItemsContent, FeaturedItemsContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): FeaturedItemsContentComponentModel;
21
+ protected bindChildElements(): void;
22
+ }
@@ -0,0 +1,35 @@
1
+ import { BaseContentComponent } from '../base-content.component';
2
+ import defaultHtml from './featured-items-content.component.hbs';
3
+ /**
4
+ * The Featured Items Content component renders a custom list of search results (typically products) defined as Spotlights in Hawksearch. This is commonly used to display a default set of products when a query returns no results.
5
+ *
6
+ * ## Tag
7
+ * The tag for this component is `<hawksearch-featured-items-content>`.
8
+ *
9
+ * ## Default Template
10
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
11
+ * {@embed ./featured-items-content.component.hbs}
12
+ *
13
+ * @category Content
14
+ */
15
+ export class FeaturedItemsContentComponent extends BaseContentComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.componentName = 'featured-items-content';
19
+ this.defaultHtml = defaultHtml;
20
+ }
21
+ renderContent() {
22
+ var _a, _b;
23
+ return !!((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length);
24
+ }
25
+ getContentModel() {
26
+ return Object.assign({}, this.data);
27
+ }
28
+ bindChildElements() {
29
+ this.rootElement.querySelectorAll('hawksearch-featured-items-content-item').forEach((component, index) => {
30
+ var _a, _b;
31
+ component.data = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b[index];
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=featured-items-content.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featured-items-content.component.js","sourceRoot":"","sources":["../../../../../src/components/content/content-types/featured-items-content/featured-items-content.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,WAAW,MAAM,wCAAwC,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,6BAA8B,SAAQ,oBAIlD;IAJD;;QAKuB,kBAAa,GAA+B,wBAAwB,CAAC;QACrE,gBAAW,GAAG,WAAW,CAAC;IAiBjD,CAAC;IAfsB,aAAa;;QAC5B,OAAO,CAAC,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,0CAAE,MAAM,CAAA,CAAC;IACtC,CAAC;IAEkB,eAAe;QAC9B,yBACO,IAAI,CAAC,IAAK,EACf;IACN,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAoC,wCAAwC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;;YACxI,SAAS,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,0CAAG,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,38 @@
1
+ import { FeaturedItemsContentItemComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { FeaturedItemsContentItemComponentModel, SearchResultsItem } from '@models';
3
+ import { BaseComponent } from '../../../base.component';
4
+ /**
5
+ * The Featured Items Content Item component displays information for an individual product or page.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-featured-items-content>`.
9
+ *
10
+ * ## Event-Binding Attributes
11
+ * ### Images
12
+ * | Name | Value |
13
+ * | :- | :- |
14
+ * | hawksearch-image | |
15
+ *
16
+ * Image elements with this attribute will have their src value replaced with a placeholder image URL if the image fails to load.
17
+ *
18
+ * ### Links
19
+ * | Name | Value |
20
+ * | :- | :- |
21
+ * | hawksearch-link | |
22
+ *
23
+ * Anchor elements with this attribute will be tracked when clicked.
24
+ *
25
+ * ## Default Template
26
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
27
+ * {@embed ./featured-items-content-item.component.hbs}
28
+ *
29
+ * @category Content
30
+ */
31
+ export declare class FeaturedItemsContentItemComponent extends BaseComponent<FeaturedItemsContentItemComponentConfig, SearchResultsItem, FeaturedItemsContentItemComponentModel> {
32
+ protected componentName: keyof HawkSearchComponents;
33
+ protected defaultHtml: any;
34
+ protected bindFromEvent: boolean;
35
+ protected renderContent(): boolean;
36
+ protected getContentModel(): FeaturedItemsContentItemComponentModel;
37
+ protected bindChildElements(): void;
38
+ }
@@ -0,0 +1,65 @@
1
+ import placeholderUrl from '@assets/images/placeholder.png';
2
+ import { trackingService } from '@services';
3
+ import { BaseComponent } from '../../../base.component';
4
+ import defaultHtml from './featured-items-content-item.component.hbs';
5
+ /**
6
+ * The Featured Items Content Item component displays information for an individual product or page.
7
+ *
8
+ * ## Tag
9
+ * The tag for this component is `<hawksearch-featured-items-content>`.
10
+ *
11
+ * ## Event-Binding Attributes
12
+ * ### Images
13
+ * | Name | Value |
14
+ * | :- | :- |
15
+ * | hawksearch-image | |
16
+ *
17
+ * Image elements with this attribute will have their src value replaced with a placeholder image URL if the image fails to load.
18
+ *
19
+ * ### Links
20
+ * | Name | Value |
21
+ * | :- | :- |
22
+ * | hawksearch-link | |
23
+ *
24
+ * Anchor elements with this attribute will be tracked when clicked.
25
+ *
26
+ * ## Default Template
27
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
28
+ * {@embed ./featured-items-content-item.component.hbs}
29
+ *
30
+ * @category Content
31
+ */
32
+ export class FeaturedItemsContentItemComponent extends BaseComponent {
33
+ constructor() {
34
+ super(...arguments);
35
+ this.componentName = 'featured-items-content-item';
36
+ this.defaultHtml = defaultHtml;
37
+ this.bindFromEvent = false;
38
+ }
39
+ renderContent() {
40
+ return !!this.data;
41
+ }
42
+ getContentModel() {
43
+ var _a, _b, _c;
44
+ return Object.assign(Object.assign({}, this.data), { strings: {
45
+ sale: (_c = (_b = (_a = this.configuration) === null || _a === void 0 ? void 0 : _a.strings) === null || _b === void 0 ? void 0 : _b.sale) !== null && _c !== void 0 ? _c : 'Sale'
46
+ } });
47
+ }
48
+ bindChildElements() {
49
+ this.rootElement.querySelectorAll('[hawksearch-image]').forEach((e) => {
50
+ e.addEventListener('error', (event) => {
51
+ const element = event.currentTarget;
52
+ element.src = HawkSearch.config.placeholderImageUrl || placeholderUrl;
53
+ });
54
+ });
55
+ this.rootElement.querySelectorAll('[hawksearch-link]').forEach((e) => {
56
+ e.addEventListener('click', ((event) => {
57
+ if (!this.data) {
58
+ return;
59
+ }
60
+ trackingService.trackSearchResultClick(this.data.id, this.data.url, event);
61
+ }));
62
+ });
63
+ }
64
+ }
65
+ //# sourceMappingURL=featured-items-content-item.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featured-items-content-item.component.js","sourceRoot":"","sources":["../../../../../src/components/content/content-types/featured-items-content-item/featured-items-content-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,WAAW,MAAM,6CAA6C,CAAC;AAItE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,iCAAkC,SAAQ,aAItD;IAJD;;QAKuB,kBAAa,GAA+B,6BAA6B,CAAC;QAC1E,gBAAW,GAAG,WAAW,CAAC;QAC1B,kBAAa,GAAG,KAAK,CAAC;IAkC7C,CAAC;IAhCsB,aAAa;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IAEkB,eAAe;;QAC9B,uCACO,IAAI,CAAC,IAAK,KACb,OAAO,EAAE;gBACL,IAAI,EAAE,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,0CAAE,IAAI,mCAAI,MAAM;aACpD,IACH;IACN,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAY,EAAQ,EAAE;gBAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,aAAiC,CAAC;gBAExD,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,mBAAmB,IAAI,cAAc,CAAC;YAC1E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAmB,EAAQ,EAAE;gBACvD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACZ,OAAO;iBACV;gBAED,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC,CAAkB,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,23 @@
1
+ import { HawkSearchComponents, ImageContentComponentConfig } from '@configuration';
2
+ import { ImageContent, ImageContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Image Content component displays an image defined in Hawksearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-image-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./image-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class ImageContentComponent extends BaseContentComponent<ImageContentComponentConfig, ImageContent, ImageContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): ImageContentComponentModel;
21
+ protected onRender(): void;
22
+ protected bindChildElements(): void;
23
+ }
@@ -0,0 +1,40 @@
1
+ import { trackingService } from '@services';
2
+ import { BaseContentComponent } from '../base-content.component';
3
+ import defaultHtml from './image-content.component.hbs';
4
+ /**
5
+ * The Image Content component displays an image defined in Hawksearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-image-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./image-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export class ImageContentComponent extends BaseContentComponent {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.componentName = 'image-content';
20
+ this.defaultHtml = defaultHtml;
21
+ }
22
+ renderContent() {
23
+ return !!this.data;
24
+ }
25
+ getContentModel() {
26
+ return Object.assign({}, this.data);
27
+ }
28
+ onRender() {
29
+ super.onRender();
30
+ trackingService.trackBannerImpression(this.data.id, this.data.campaignId);
31
+ }
32
+ bindChildElements() {
33
+ this.rootElement.querySelectorAll('[hawksearch-link]').forEach((e) => {
34
+ e.addEventListener('click', (event) => {
35
+ trackingService.trackBannerClick(this.data.id, this.data.campaignId);
36
+ });
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=image-content.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-content.component.js","sourceRoot":"","sources":["../../../../../src/components/content/content-types/image-content/image-content.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,WAAW,MAAM,+BAA+B,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAA2F;IAAtI;;QACuB,kBAAa,GAA+B,eAAe,CAAC;QAC5D,gBAAW,GAAG,WAAW,CAAC;IAyBjD,CAAC;IAvBsB,aAAa;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IAEkB,eAAe;QAC9B,yBACO,IAAI,CAAC,IAAK,EACf;IACN,CAAC;IAEkB,QAAQ;QACvB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE,EAAE,IAAI,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACzC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE,EAAE,IAAI,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,3 +1,4 @@
1
+ export * from './base-content.component';
1
2
  export * from './custom-content/custom-content.component';
2
3
  export * from './featured-items-content/featured-items-content.component';
3
4
  export * from './featured-items-content-item/featured-items-content-item.component';
@@ -0,0 +1,7 @@
1
+ export * from './base-content.component';
2
+ export * from './custom-content/custom-content.component';
3
+ export * from './featured-items-content/featured-items-content.component';
4
+ export * from './featured-items-content-item/featured-items-content-item.component';
5
+ export * from './image-content/image-content.component';
6
+ export * from './popular-queries-content/popular-queries-content.component';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/content/content-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qEAAqE,CAAC;AACpF,cAAc,yCAAyC,CAAC;AACxD,cAAc,6DAA6D,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { HawkSearchComponents, PopularQueriesContentComponentConfig } from '@configuration';
2
+ import { PopularQueriesContent, PopularQueriesContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Popular Queries Content component renders a tag cloud of popular queries relating to the current query. Each link is weighted according to its search frequency, with the most popular queries displayed in the largest font size.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-popular-queries-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./popular-queries-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class PopularQueriesContentComponent extends BaseContentComponent<PopularQueriesContentComponentConfig, PopularQueriesContent, PopularQueriesContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): PopularQueriesContentComponentModel;
21
+ protected bindChildElements(): void;
22
+ }
@@ -0,0 +1,42 @@
1
+ import { searchService } from '@services';
2
+ import { BaseContentComponent } from '../base-content.component';
3
+ import defaultHtml from './popular-queries-content.component.hbs';
4
+ /**
5
+ * The Popular Queries Content component renders a tag cloud of popular queries relating to the current query. Each link is weighted according to its search frequency, with the most popular queries displayed in the largest font size.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-popular-queries-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./popular-queries-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export class PopularQueriesContentComponent extends BaseContentComponent {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.componentName = 'popular-queries-content';
20
+ this.defaultHtml = defaultHtml;
21
+ }
22
+ renderContent() {
23
+ var _a, _b;
24
+ return !!((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length);
25
+ }
26
+ getContentModel() {
27
+ return Object.assign({}, this.data);
28
+ }
29
+ bindChildElements() {
30
+ this.rootElement.querySelectorAll('[hawksearch-query]').forEach((e) => {
31
+ e.addEventListener('click', (event) => {
32
+ event.preventDefault();
33
+ const element = event.currentTarget;
34
+ const query = element.getAttribute('hawksearch-query');
35
+ if (query) {
36
+ searchService.query(query);
37
+ }
38
+ });
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=popular-queries-content.component.js.map