@bridgeline-digital/hawksearch-handlebars-ui 2.0.0-beta.3 → 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 (447) hide show
  1. package/dist/{types/components → components}/base.component.d.ts +2 -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 +2 -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/{types/components → components}/content/content-types/custom-content/custom-content.component.d.ts +2 -1
  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/{types/components → components}/content/content-types/featured-items-content/featured-items-content.component.d.ts +2 -1
  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/{types/components → components}/content/content-types/featured-items-content-item/featured-items-content-item.component.d.ts +2 -1
  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/{types/components → components}/content/content-types/image-content/image-content.component.d.ts +2 -1
  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 +0 -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/{types/components → components}/content/content-types/popular-queries-content/popular-queries-content.component.d.ts +2 -1
  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/{types/components → components}/content/content-zone/content-zone.component.d.ts +2 -1
  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/{types/components → components}/general/date-picker/date-picker.component.d.ts +2 -1
  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/{types/components → components}/general/icon/icon.component.d.ts +2 -1
  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/{types/components → components}/general/range-slider/range-slider.component.d.ts +2 -1
  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/{types/components → components}/general/tooltip/tooltip.component.d.ts +2 -1
  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/{types/components → components}/landing-pages/landing-page/landing-page.component.d.ts +2 -1
  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/{types/components → components}/recommendations/recommendations/recommendations.component.d.ts +2 -1
  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/{types/components → components}/recommendations/recommendations-item/recommendations-item.component.d.ts +2 -1
  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 +2 -1
  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/{types/components → components}/search/facet-types/base-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/color-facet/color-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/date-range-facet/date-range-facet.component.d.ts +2 -1
  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 +0 -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/{types/components → components}/search/facet-types/linked-list-facet/link-list-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/numeric-range-facet/numeric-range-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/range-slider-facet/range-slider-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/recent-searches-facet/recent-searches-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/related-searches-facet/related-searches-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/search-within-facet/search-within-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-types/size-facet/size-facet.component.d.ts +2 -1
  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/{types/components → components}/search/facet-wrapper/facet-wrapper.component.d.ts +2 -1
  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/{types/components → components}/search/facets-list/facets-list.component.d.ts +2 -1
  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/{types/components → components}/search/modified-query/modified-query.component.d.ts +2 -1
  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/{types/components → components}/search/page-size/page-size.component.d.ts +2 -1
  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/{types/components → components}/search/pagination/pagination.component.d.ts +2 -1
  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/{types/components → components}/search/query-suggestions/query-suggestions.component.d.ts +2 -1
  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/{types/components → components}/search/search-field/search-field.component.d.ts +2 -1
  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 +2 -1
  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/{types/components → components}/search/search-results-item/search-results-item.component.d.ts +2 -1
  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/{types/components → components}/search/search-results-list/search-results-list.component.d.ts +2 -1
  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/{types/components → components}/search/selected-facets/selected-facets.component.d.ts +2 -1
  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/{types/components → components}/search/sorting/sorting.component.d.ts +2 -1
  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/{types/components → components}/search/tabs/tabs.component.d.ts +2 -1
  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 +6 -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/index.d.ts +0 -9
@@ -1,4 +1,5 @@
1
- import { BaseComponentConfig, BaseComponentModel, HawkSearchComponents } from '@models';
1
+ import { BaseComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { BaseComponentModel } from '@models';
2
3
  /**
3
4
  * @typeParam TConfig Component configuration
4
5
  * @typeParam TData Component data
@@ -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
+ '{{>': '{{>'
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,4 +1,5 @@
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';
3
4
  /**
4
5
  * @category Content
@@ -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"}
@@ -1,4 +1,5 @@
1
- import { CustomContent, CustomContentComponentConfig, CustomContentComponentModel, HawkSearchComponents } from '@models';
1
+ import { CustomContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { CustomContent, CustomContentComponentModel } from '@models';
2
3
  import { BaseContentComponent } from '../base-content.component';
3
4
  /**
4
5
  * The Custom Content component renders HTML defined in Hawksearch.
@@ -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"}
@@ -1,4 +1,5 @@
1
- import { FeaturedItemsContent, FeaturedItemsContentComponentConfig, FeaturedItemsContentComponentModel, HawkSearchComponents } from '@models';
1
+ import { FeaturedItemsContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { FeaturedItemsContent, FeaturedItemsContentComponentModel } from '@models';
2
3
  import { BaseContentComponent } from '../base-content.component';
3
4
  /**
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.
@@ -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"}
@@ -1,4 +1,5 @@
1
- import { FeaturedItemsContentItemComponentConfig, FeaturedItemsContentItemComponentModel, HawkSearchComponents, SearchResultsItem } from '@models';
1
+ import { FeaturedItemsContentItemComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { FeaturedItemsContentItemComponentModel, SearchResultsItem } from '@models';
2
3
  import { BaseComponent } from '../../../base.component';
3
4
  /**
4
5
  * The Featured Items Content Item component displays information for an individual product or page.
@@ -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"}
@@ -1,4 +1,5 @@
1
- import { HawkSearchComponents, ImageContent, ImageContentComponentConfig, ImageContentComponentModel } from '@models';
1
+ import { HawkSearchComponents, ImageContentComponentConfig } from '@configuration';
2
+ import { ImageContent, ImageContentComponentModel } from '@models';
2
3
  import { BaseContentComponent } from '../base-content.component';
3
4
  /**
4
5
  * The Image Content component displays an image defined in Hawksearch.
@@ -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"}
@@ -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"}
@@ -1,4 +1,5 @@
1
- import { HawkSearchComponents, PopularQueriesContent, PopularQueriesContentComponentConfig, PopularQueriesContentComponentModel } from '@models';
1
+ import { HawkSearchComponents, PopularQueriesContentComponentConfig } from '@configuration';
2
+ import { PopularQueriesContent, PopularQueriesContentComponentModel } from '@models';
2
3
  import { BaseContentComponent } from '../base-content.component';
3
4
  /**
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.
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popular-queries-content.component.js","sourceRoot":"","sources":["../../../../../src/components/content/content-types/popular-queries-content/popular-queries-content.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,8BAA+B,SAAQ,oBAInD;IAJD;;QAKuB,kBAAa,GAA+B,yBAAyB,CAAC;QACtE,gBAAW,GAAG,WAAW,CAAC;IA0BjD,CAAC;IAxBsB,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,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACzC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAEvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAA4B,CAAC;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBAEvD,IAAI,KAAK,EAAE;oBACP,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
- import { ContentZoneComponentConfig, ContentZoneComponentModel, HawkSearchComponents, SearchResponse } from '@models';
1
+ import { ContentZoneComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { ContentZoneComponentModel, SearchResponse } from '@models';
2
3
  import { BaseComponent } from '../../base.component';
3
4
  /**
4
5
  * The Content Zone component renders a list of content items or Spotlight products as defined in the Merchandising section of Hawksearch.