@bridgeline-digital/hawksearch-handlebars-ui 5.0.0-beta.1 → 5.0.0-beta.3

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 (86) hide show
  1. package/changelog.md +95 -91
  2. package/dist/components/base.component.d.ts +139 -139
  3. package/dist/components/content/content-types/base-content.component.d.ts +9 -9
  4. package/dist/components/content/content-types/custom-content/custom-content.component.d.ts +21 -21
  5. package/dist/components/content/content-types/featured-items-content/featured-items-content.component.d.ts +22 -22
  6. package/dist/components/content/content-types/featured-items-content-item/featured-items-content-item.component.d.ts +39 -38
  7. package/dist/components/content/content-types/image-content/image-content.component.d.ts +22 -22
  8. package/dist/components/content/content-types/index.d.ts +6 -6
  9. package/dist/components/content/content-types/popular-queries-content/popular-queries-content.component.d.ts +22 -22
  10. package/dist/components/content/content-zone/content-zone.component.d.ts +44 -44
  11. package/dist/components/content/index.d.ts +2 -2
  12. package/dist/components/general/date-picker/date-picker.component.d.ts +117 -117
  13. package/dist/components/general/icon/icon.component.d.ts +38 -38
  14. package/dist/components/general/index.d.ts +5 -5
  15. package/dist/components/general/range-slider/range-slider.component.d.ts +54 -54
  16. package/dist/components/general/rating/rating.component.d.ts +39 -39
  17. package/dist/components/general/tooltip/tooltip.component.d.ts +32 -32
  18. package/dist/components/index.d.ts +229 -229
  19. package/dist/components/landing-pages/index.d.ts +1 -1
  20. package/dist/components/landing-pages/landing-page/landing-page.component.d.ts +32 -32
  21. package/dist/components/recommendations/index.d.ts +2 -2
  22. package/dist/components/recommendations/recommendations/recommendations.component.d.ts +87 -87
  23. package/dist/components/recommendations/recommendations-item/recommendations-item.component.d.ts +40 -40
  24. package/dist/components/search/autocomplete/autocomplete.component.d.ts +59 -59
  25. package/dist/components/search/facet-types/base-facet.component.d.ts +44 -44
  26. package/dist/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.d.ts +36 -36
  27. package/dist/components/search/facet-types/color-facet/color-facet.component.d.ts +24 -24
  28. package/dist/components/search/facet-types/date-range-facet/date-range-facet.component.d.ts +33 -33
  29. package/dist/components/search/facet-types/index.d.ts +11 -11
  30. package/dist/components/search/facet-types/linked-list-facet/link-list-facet.component.d.ts +24 -24
  31. package/dist/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.d.ts +32 -32
  32. package/dist/components/search/facet-types/range-slider-facet/range-slider-facet.component.d.ts +34 -34
  33. package/dist/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.d.ts +29 -29
  34. package/dist/components/search/facet-types/related-searches-facet/related-searches-facet.component.d.ts +29 -29
  35. package/dist/components/search/facet-types/search-within-facet/search-within-facet.component.d.ts +29 -29
  36. package/dist/components/search/facet-types/size-facet/size-facet.component.d.ts +24 -24
  37. package/dist/components/search/facet-wrapper/facet-wrapper.component.d.ts +47 -47
  38. package/dist/components/search/facets-list/facets-list.component.d.ts +32 -32
  39. package/dist/components/search/index.d.ts +15 -15
  40. package/dist/components/search/modified-query/modified-query.component.d.ts +32 -32
  41. package/dist/components/search/page-size/page-size.component.d.ts +32 -32
  42. package/dist/components/search/pagination/pagination.component.d.ts +43 -43
  43. package/dist/components/search/query-suggestions/query-suggestions.component.d.ts +38 -38
  44. package/dist/components/search/search-field/search-field.component.d.ts +38 -38
  45. package/dist/components/search/search-results/search-results.component.d.ts +34 -34
  46. package/dist/components/search/search-results-item/search-results-item.component.d.ts +38 -38
  47. package/dist/components/search/search-results-list/search-results-list.component.d.ts +23 -23
  48. package/dist/components/search/selected-facets/selected-facets.component.d.ts +31 -31
  49. package/dist/components/search/sorting/sorting.component.d.ts +30 -30
  50. package/dist/components/search/tabs/tabs.component.d.ts +30 -30
  51. package/dist/components/variants/index.d.ts +1 -1
  52. package/dist/components/variants/variant-selector/variant-selector.component.d.ts +23 -23
  53. package/dist/configuration/configuration.models.d.ts +574 -558
  54. package/dist/configuration/index.d.ts +4 -4
  55. package/dist/helpers/helpers.d.ts +200 -200
  56. package/dist/helpers/index.d.ts +4 -4
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.js +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/models/autocomplete.models.d.ts +85 -85
  61. package/dist/models/base.models.d.ts +50 -49
  62. package/dist/models/component.models.d.ts +453 -451
  63. package/dist/models/content.models.d.ts +94 -93
  64. package/dist/models/index.d.ts +11 -11
  65. package/dist/models/raw/index.d.ts +4 -4
  66. package/dist/models/raw/raw-autocomplete.models.d.ts +51 -51
  67. package/dist/models/raw/raw-base.models.d.ts +8 -8
  68. package/dist/models/raw/raw-recommendation.models.d.ts +39 -39
  69. package/dist/models/raw/raw-search.models.d.ts +191 -184
  70. package/dist/models/recommendation.models.d.ts +31 -31
  71. package/dist/models/search.models.d.ts +237 -237
  72. package/dist/models/tracking.models.d.ts +42 -42
  73. package/dist/services/autocomplete.service.d.ts +10 -10
  74. package/dist/services/base.service.d.ts +62 -62
  75. package/dist/services/index.d.ts +8 -8
  76. package/dist/services/recommendations.service.d.ts +10 -10
  77. package/dist/services/search.service.d.ts +50 -50
  78. package/dist/services/tracking.service.d.ts +29 -29
  79. package/dist/styles.36d6e6ed0aa89cd5e523177c64306e2d.css +1 -0
  80. package/dist/utilities/colors.d.ts +1 -1
  81. package/dist/utilities/dates.d.ts +4 -4
  82. package/dist/utilities/formatters.d.ts +4 -4
  83. package/dist/utilities/index.d.ts +6 -6
  84. package/package.json +3 -3
  85. package/readme.md +1 -1
  86. package/dist/styles.69909e432fb2cc23cf6e035925be065f.css +0 -1
package/changelog.md CHANGED
@@ -1,91 +1,95 @@
1
- # 5.0.0
2
-
3
- ## New Features
4
-
5
- 1. Added VariantSelectorComponent
6
- 2. Implemented VariantSelectorComponent in default templates for search results, featured items, recommendations, and autocomplete
7
-
8
- ## Bug Fixes
9
-
10
- 1. Updated the `attributes` collection on recommendation items to split single string values by `|^|` into string arrays
11
- 2. Added logic to catch HTTP errors in service layer
12
-
13
- ## Breaking Changes
14
-
15
- 1. Modified JSON structure for field mapping configuration
16
- 2. The `attributes` collection on recommendation items now consists of the data in `customDict` from the API response rather than preserving `customDict` as a nested property
17
-
18
- # 4.0.2
19
-
20
- 1. Updated `number` and `currency` Handlebars helpers to handle string values from API and made decimals parameter optional
21
-
22
- # 4.0.1
23
-
24
- 1. Modified SearchService so that `hawksearch:after-search-completed` event fires before SEO elements are set
25
-
26
- # 4.0.0
27
-
28
- ## New Features
29
-
30
- 1. Added `HawkSearch.config.autocomplete.recommendationsEnabled` property with a default value of `false` to toggle autocomplete recommendations (instant engage)
31
- 2. Added new RatingComponent to be displayed on SearchResultsItemComponent, RecommendationsItemComponent, and FeaturedItemsContentItemComponent.
32
- 3. Added product ratings and prices to autocomplete
33
- 4. Added suggested queries (did you mean?) to autocomplete
34
-
35
- ## Bug Fixes
36
-
37
- 1. Converting `price` and `salePrice` values of 0 to `undefined`
38
- 2. Fixed price rendering logic in default templates of SearchResultsItemComponent, RecommendationsItemComponent, and FeaturedItemsContentItemComponent
39
-
40
- ## Breaking Changes
41
-
42
- 1. Refactored HawkSearchConfig structure to group properties by search, autocomplete, and recommendations. Some property names have changed slightly.
43
- 2. Modified endpoints configuration to expect only domain rather than full API URL
44
-
45
- # 3.0.0
46
-
47
- ## New Features
48
-
49
- 1. Added support for A/B testing in Recommendations component
50
- 2. Added support for default autocomplete without entering a query
51
- 3. Modified autocomplete to display when refocusing on search field
52
- 4. Added optional `item-id` attribute to Recommendations component
53
- 5. Added instance-level configuration overrides through `config` attribute or `configOverride` property
54
-
55
- ## Bug Fixes
56
-
57
- 1. Fixed script file name and configuration link in documentation
58
- 2. Fixed bug requiring double-click to expand facet that is collapsed by default
59
-
60
- ## Breaking Changes
61
-
62
- 1. Removed unused option to define custom component template as child content of tag to provide future possibility of using slots or declarative Shadow DOM
63
-
64
- # 2.0.0
65
-
66
- ## New Features
67
-
68
- 1. Added Landing Pages components
69
- 2. Added Recommendations components
70
- 3. Added component-level configuration to support functionality toggles and easy string replacements
71
- 4. Added `hawksearch:before-${componentName}-rendered` event hooks to support passing custom data to Handlebars templates
72
- 5. Added configuration setting to toggle facet exclude value functionality. This is now disabled by default.
73
- 6. Added ability to load CSS styles without requiring an external stylesheet
74
- 7. Added customizable index to search results, autocomplete, and recommendations requests
75
- 8. Added ability to set product as default search results item type
76
- 9. Added alternate `[[value]]` syntax to work the same as the default Handlerbars `{{value}}` syntax to avoid conflicts when customizing templates within BigCommerce
77
- 10. Added support for nested object properties in field mappings
78
- 11. Added rendering of canonical URL including search refinements
79
- 12. Added configurable facet exclusion prefix
80
- 13. Implemented TypeDoc code-generated documentation to ensure it remains up-to-date and available for each version
81
-
82
- ## Bug Fixes
83
-
84
- 1. Fixed Autocomplete template name
85
- 2. Added logic to handle scrolling facets by setting a max-height in default template
86
-
87
- ## Breaking Changes
88
-
89
- 1. Changed entry file from `hawksearch-handlebars-ui.js` to `index.js`
90
- 2. Renamed `Hawksearch` global object to `HawkSearch`
91
- 3. Changes to `HawkSearch.config` model to support new features
1
+ # 5.0.0
2
+
3
+ ## New Features
4
+
5
+ 1. Added VariantSelectorComponent
6
+ 2. Implemented VariantSelectorComponent in default templates for search results, featured items, recommendations, and autocomplete
7
+
8
+ ## Bug Fixes
9
+
10
+ 1. Updated the `attributes` collection on recommendation items to split single string values by `|^|` into string arrays
11
+ 2. Added logic to catch HTTP errors in service layer
12
+
13
+ ## Breaking Changes
14
+
15
+ 1. Modified JSON structure for field mapping configuration
16
+ 2. The `attributes` collection on recommendation items now consists of the data in `customDict` from the API response rather than preserving `customDict` as a nested property
17
+
18
+ # 4.0.3
19
+
20
+ 1. Fixed URL parsing logic to avoid prepending domain when API returns a value starting with `//`
21
+
22
+ # 4.0.2
23
+
24
+ 1. Updated `number` and `currency` Handlebars helpers to handle string values from API and made decimals parameter optional
25
+
26
+ # 4.0.1
27
+
28
+ 1. Modified SearchService so that `hawksearch:after-search-completed` event fires before SEO elements are set
29
+
30
+ # 4.0.0
31
+
32
+ ## New Features
33
+
34
+ 1. Added `HawkSearch.config.autocomplete.recommendationsEnabled` property with a default value of `false` to toggle autocomplete recommendations (instant engage)
35
+ 2. Added new RatingComponent to be displayed on SearchResultsItemComponent, RecommendationsItemComponent, and FeaturedItemsContentItemComponent.
36
+ 3. Added product ratings and prices to autocomplete
37
+ 4. Added suggested queries (did you mean?) to autocomplete
38
+
39
+ ## Bug Fixes
40
+
41
+ 1. Converting `price` and `salePrice` values of 0 to `undefined`
42
+ 2. Fixed price rendering logic in default templates of SearchResultsItemComponent, RecommendationsItemComponent, and FeaturedItemsContentItemComponent
43
+
44
+ ## Breaking Changes
45
+
46
+ 1. Refactored HawkSearchConfig structure to group properties by search, autocomplete, and recommendations. Some property names have changed slightly.
47
+ 2. Modified endpoints configuration to expect only domain rather than full API URL
48
+
49
+ # 3.0.0
50
+
51
+ ## New Features
52
+
53
+ 1. Added support for A/B testing in Recommendations component
54
+ 2. Added support for default autocomplete without entering a query
55
+ 3. Modified autocomplete to display when refocusing on search field
56
+ 4. Added optional `item-id` attribute to Recommendations component
57
+ 5. Added instance-level configuration overrides through `config` attribute or `configOverride` property
58
+
59
+ ## Bug Fixes
60
+
61
+ 1. Fixed script file name and configuration link in documentation
62
+ 2. Fixed bug requiring double-click to expand facet that is collapsed by default
63
+
64
+ ## Breaking Changes
65
+
66
+ 1. Removed unused option to define custom component template as child content of tag to provide future possibility of using slots or declarative Shadow DOM
67
+
68
+ # 2.0.0
69
+
70
+ ## New Features
71
+
72
+ 1. Added Landing Pages components
73
+ 2. Added Recommendations components
74
+ 3. Added component-level configuration to support functionality toggles and easy string replacements
75
+ 4. Added `hawksearch:before-${componentName}-rendered` event hooks to support passing custom data to Handlebars templates
76
+ 5. Added configuration setting to toggle facet exclude value functionality. This is now disabled by default.
77
+ 6. Added ability to load CSS styles without requiring an external stylesheet
78
+ 7. Added customizable index to search results, autocomplete, and recommendations requests
79
+ 8. Added ability to set product as default search results item type
80
+ 9. Added alternate `[[value]]` syntax to work the same as the default Handlerbars `{{value}}` syntax to avoid conflicts when customizing templates within BigCommerce
81
+ 10. Added support for nested object properties in field mappings
82
+ 11. Added rendering of canonical URL including search refinements
83
+ 12. Added configurable facet exclusion prefix
84
+ 13. Implemented TypeDoc code-generated documentation to ensure it remains up-to-date and available for each version
85
+
86
+ ## Bug Fixes
87
+
88
+ 1. Fixed Autocomplete template name
89
+ 2. Added logic to handle scrolling facets by setting a max-height in default template
90
+
91
+ ## Breaking Changes
92
+
93
+ 1. Changed entry file from `hawksearch-handlebars-ui.js` to `index.js`
94
+ 2. Renamed `Hawksearch` global object to `HawkSearch`
95
+ 3. Changes to `HawkSearch.config` model to support new features
@@ -1,139 +1,139 @@
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
- */
11
- export declare abstract class BaseComponent<TConfig extends BaseComponentConfig, TData, TModel extends BaseComponentModel> extends HTMLElement {
12
- /**
13
- * Optional instance-level configuration to override the global configuration
14
- */
15
- configOverride?: TConfig;
16
- /**
17
- * The data bound to the component.
18
- */
19
- data?: TData;
20
- /**
21
- * The Handlebars reference shared by all HawkSearch components.
22
- */
23
- protected handlebars: typeof Handlebars;
24
- /**
25
- * For components that may have multiple instances with different data sources, this property is used to identify the subset of data used for binding.
26
- *
27
- * @internal
28
- */
29
- protected eventFilter?: string;
30
- /**
31
- * The data bound to the Handlebars template.
32
- */
33
- protected contentModel?: TModel;
34
- /**
35
- * The name of the component. This value is appended to `hawksearch-` to determine the tag name. For example, a value of `search-results` would be rendered by `<hawksearch-search-results>`.
36
- *
37
- * @internal
38
- */
39
- protected abstract componentName: keyof HawkSearchComponents;
40
- /**
41
- * The default Handlebars template.
42
- *
43
- * @internal
44
- */
45
- protected abstract defaultHtml: string;
46
- /**
47
- * Determines whether the component is bound by an event. If `false`, binding is performed by the parent component.
48
- *
49
- * @internal
50
- */
51
- protected abstract bindFromEvent: boolean;
52
- /**
53
- * The optional configuration object for this component.
54
- */
55
- protected get configuration(): TConfig | undefined;
56
- /**
57
- * 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}.
58
- *
59
- * @internal
60
- * @defaultValue `true`
61
- */
62
- protected get shadowDom(): boolean;
63
- /**
64
- * 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`.
65
- */
66
- get rootElement(): ParentNode;
67
- /**
68
- * 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.
69
- *
70
- * @internal
71
- */
72
- private get eventName();
73
- /**
74
- * @internal
75
- */
76
- private bindEventHandler?;
77
- /**
78
- * @internal
79
- */
80
- private template;
81
- /**
82
- * @ignore
83
- */
84
- connectedCallback(): void;
85
- /**
86
- * @ignore
87
- */
88
- disconnectedCallback(): void;
89
- /**
90
- * 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).
91
- *
92
- * @virtual
93
- */
94
- protected registerHelpers(): void;
95
- /**
96
- * Binds {@link contentModel} to the Handlebars template and renders the resulting HTML content.
97
- */
98
- render(): void;
99
- /**
100
- * Determines whether the {@link data} meets the necessary conditions to perform data binding and render content.
101
- *
102
- * @virtual
103
- * @returns Whether the component should be rendered. If `false`, the component will have empty contents and be set to `display: none;`.
104
- */
105
- protected renderContent(): boolean;
106
- /**
107
- * Gets the data to be bound to the Handlebars template.
108
- *
109
- * @internal
110
- * @returns The data bound to the Handlebars template.
111
- */
112
- protected abstract getContentModel(): TModel;
113
- /**
114
- * After the component is rendered, this method is called to bind any child components.
115
- *
116
- * @virtual
117
- */
118
- protected bindChildElements(): void;
119
- /**
120
- * After the component is rendered, this method is called for any additional processing (such as attaching event listeners) which needs to occur.
121
- *
122
- * @virtual
123
- */
124
- protected onRender(): void;
125
- /**
126
- * @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.
127
- *
128
- * @internal
129
- */
130
- private getCustomTemplateHtml;
131
- /**
132
- * Replaces placeholders in a given string with values from a data object.
133
- *
134
- * @param template The template string.
135
- * @param values The object containing properties which will be bound to `template`.
136
- * @returns The `template` string with all placeholders replaced by the values specified in `values`.
137
- */
138
- protected interpolate(template: string, values: Record<string, string>): string;
139
- }
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
+ */
11
+ export declare abstract class BaseComponent<TConfig extends BaseComponentConfig, TData, TModel extends BaseComponentModel> extends HTMLElement {
12
+ /**
13
+ * Optional instance-level configuration to override the global configuration
14
+ */
15
+ configOverride?: TConfig;
16
+ /**
17
+ * The data bound to the component.
18
+ */
19
+ data?: TData;
20
+ /**
21
+ * The Handlebars reference shared by all HawkSearch components.
22
+ */
23
+ protected handlebars: typeof Handlebars;
24
+ /**
25
+ * For components that may have multiple instances with different data sources, this property is used to identify the subset of data used for binding.
26
+ *
27
+ * @internal
28
+ */
29
+ protected eventFilter?: string;
30
+ /**
31
+ * The data bound to the Handlebars template.
32
+ */
33
+ protected contentModel?: TModel;
34
+ /**
35
+ * The name of the component. This value is appended to `hawksearch-` to determine the tag name. For example, a value of `search-results` would be rendered by `<hawksearch-search-results>`.
36
+ *
37
+ * @internal
38
+ */
39
+ protected abstract componentName: keyof HawkSearchComponents;
40
+ /**
41
+ * The default Handlebars template.
42
+ *
43
+ * @internal
44
+ */
45
+ protected abstract defaultHtml: string;
46
+ /**
47
+ * Determines whether the component is bound by an event. If `false`, binding is performed by the parent component.
48
+ *
49
+ * @internal
50
+ */
51
+ protected abstract bindFromEvent: boolean;
52
+ /**
53
+ * The optional configuration object for this component.
54
+ */
55
+ protected get configuration(): TConfig | undefined;
56
+ /**
57
+ * 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}.
58
+ *
59
+ * @internal
60
+ * @defaultValue `true`
61
+ */
62
+ protected get shadowDom(): boolean;
63
+ /**
64
+ * 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`.
65
+ */
66
+ get rootElement(): ParentNode;
67
+ /**
68
+ * 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.
69
+ *
70
+ * @internal
71
+ */
72
+ private get eventName();
73
+ /**
74
+ * @internal
75
+ */
76
+ private bindEventHandler?;
77
+ /**
78
+ * @internal
79
+ */
80
+ private template;
81
+ /**
82
+ * @ignore
83
+ */
84
+ connectedCallback(): void;
85
+ /**
86
+ * @ignore
87
+ */
88
+ disconnectedCallback(): void;
89
+ /**
90
+ * 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).
91
+ *
92
+ * @virtual
93
+ */
94
+ protected registerHelpers(): void;
95
+ /**
96
+ * Binds {@link contentModel} to the Handlebars template and renders the resulting HTML content.
97
+ */
98
+ render(): void;
99
+ /**
100
+ * Determines whether the {@link data} meets the necessary conditions to perform data binding and render content.
101
+ *
102
+ * @virtual
103
+ * @returns Whether the component should be rendered. If `false`, the component will have empty contents and be set to `display: none;`.
104
+ */
105
+ protected renderContent(): boolean;
106
+ /**
107
+ * Gets the data to be bound to the Handlebars template.
108
+ *
109
+ * @internal
110
+ * @returns The data bound to the Handlebars template.
111
+ */
112
+ protected abstract getContentModel(): TModel;
113
+ /**
114
+ * After the component is rendered, this method is called to bind any child components.
115
+ *
116
+ * @virtual
117
+ */
118
+ protected bindChildElements(): void;
119
+ /**
120
+ * After the component is rendered, this method is called for any additional processing (such as attaching event listeners) which needs to occur.
121
+ *
122
+ * @virtual
123
+ */
124
+ protected onRender(): void;
125
+ /**
126
+ * @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.
127
+ *
128
+ * @internal
129
+ */
130
+ private getCustomTemplateHtml;
131
+ /**
132
+ * Replaces placeholders in a given string with values from a data object.
133
+ *
134
+ * @param template The template string.
135
+ * @param values The object containing properties which will be bound to `template`.
136
+ * @returns The `template` string with all placeholders replaced by the values specified in `values`.
137
+ */
138
+ protected interpolate(template: string, values: Record<string, string>): string;
139
+ }
@@ -1,9 +1,9 @@
1
- import { BaseComponent } from '@components';
2
- import { BaseComponentConfig } from '@configuration';
3
- import { BaseComponentModel, ContentType } from '@models';
4
- /**
5
- * @category Content
6
- */
7
- export declare abstract class BaseContentComponent<TConfig extends BaseComponentConfig, TData extends ContentType, TModel extends BaseComponentModel> extends BaseComponent<TConfig, TData, TModel> {
8
- protected bindFromEvent: boolean;
9
- }
1
+ import { BaseComponent } from '@components';
2
+ import { BaseComponentConfig } from '@configuration';
3
+ import { BaseComponentModel, ContentType } from '@models';
4
+ /**
5
+ * @category Content
6
+ */
7
+ export declare abstract class BaseContentComponent<TConfig extends BaseComponentConfig, TData extends ContentType, TModel extends BaseComponentModel> extends BaseComponent<TConfig, TData, TModel> {
8
+ protected bindFromEvent: boolean;
9
+ }
@@ -1,21 +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
- }
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
+ }
@@ -1,22 +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
- }
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
+ }