@bridgeline-digital/hawksearch-handlebars-ui 5.2.0 → 5.2.2

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 (88) hide show
  1. package/changelog.md +7 -1
  2. package/dist/components/base.component.d.ts +139 -0
  3. package/dist/components/content/content-types/base-content.component.d.ts +9 -0
  4. package/dist/components/content/content-types/custom-content/custom-content.component.d.ts +21 -0
  5. package/dist/components/content/content-types/featured-items-content/featured-items-content.component.d.ts +22 -0
  6. package/dist/components/content/content-types/featured-items-content-item/featured-items-content-item.component.d.ts +39 -0
  7. package/dist/components/content/content-types/image-content/image-content.component.d.ts +22 -0
  8. package/dist/components/content/content-types/index.d.ts +6 -0
  9. package/dist/components/content/content-types/popular-queries-content/popular-queries-content.component.d.ts +22 -0
  10. package/dist/components/content/content-zone/content-zone.component.d.ts +44 -0
  11. package/dist/components/content/index.d.ts +2 -0
  12. package/dist/components/general/date-picker/date-picker.component.d.ts +117 -0
  13. package/dist/components/general/icon/icon.component.d.ts +38 -0
  14. package/dist/components/general/index.d.ts +5 -0
  15. package/dist/components/general/range-slider/range-slider.component.d.ts +54 -0
  16. package/dist/components/general/rating/rating.component.d.ts +39 -0
  17. package/dist/components/general/tooltip/tooltip.component.d.ts +32 -0
  18. package/dist/components/index.d.ts +231 -0
  19. package/dist/components/landing-pages/index.d.ts +1 -0
  20. package/dist/components/landing-pages/landing-page/landing-page.component.d.ts +32 -0
  21. package/dist/components/recommendations/index.d.ts +2 -0
  22. package/dist/components/recommendations/recommendations/recommendations.component.d.ts +87 -0
  23. package/dist/components/recommendations/recommendations-item/recommendations-item.component.d.ts +40 -0
  24. package/dist/components/search/autocomplete/autocomplete.component.d.ts +59 -0
  25. package/dist/components/search/facet-types/base-facet.component.d.ts +44 -0
  26. package/dist/components/search/facet-types/checkbox-list-facet/checkbox-list-facet.component.d.ts +36 -0
  27. package/dist/components/search/facet-types/color-facet/color-facet.component.d.ts +24 -0
  28. package/dist/components/search/facet-types/date-range-facet/date-range-facet.component.d.ts +33 -0
  29. package/dist/components/search/facet-types/index.d.ts +11 -0
  30. package/dist/components/search/facet-types/linked-list-facet/link-list-facet.component.d.ts +24 -0
  31. package/dist/components/search/facet-types/numeric-range-facet/numeric-range-facet.component.d.ts +32 -0
  32. package/dist/components/search/facet-types/range-slider-facet/range-slider-facet.component.d.ts +34 -0
  33. package/dist/components/search/facet-types/recent-searches-facet/recent-searches-facet.component.d.ts +29 -0
  34. package/dist/components/search/facet-types/related-searches-facet/related-searches-facet.component.d.ts +29 -0
  35. package/dist/components/search/facet-types/search-within-facet/search-within-facet.component.d.ts +29 -0
  36. package/dist/components/search/facet-types/size-facet/size-facet.component.d.ts +24 -0
  37. package/dist/components/search/facet-wrapper/facet-wrapper.component.d.ts +47 -0
  38. package/dist/components/search/facets-list/facets-list.component.d.ts +32 -0
  39. package/dist/components/search/index.d.ts +15 -0
  40. package/dist/components/search/modified-query/modified-query.component.d.ts +32 -0
  41. package/dist/components/search/page-size/page-size.component.d.ts +32 -0
  42. package/dist/components/search/pagination/pagination.component.d.ts +43 -0
  43. package/dist/components/search/query-suggestions/query-suggestions.component.d.ts +38 -0
  44. package/dist/components/search/search-field/search-field.component.d.ts +40 -0
  45. package/dist/components/search/search-results/search-results.component.d.ts +34 -0
  46. package/dist/components/search/search-results-item/search-results-item.component.d.ts +38 -0
  47. package/dist/components/search/search-results-list/search-results-list.component.d.ts +23 -0
  48. package/dist/components/search/selected-facets/selected-facets.component.d.ts +31 -0
  49. package/dist/components/search/sorting/sorting.component.d.ts +30 -0
  50. package/dist/components/search/tabs/dist/tabs.component.spec.d.ts +1 -0
  51. package/dist/components/search/tabs/tabs.component.d.ts +30 -0
  52. package/dist/components/variants/index.d.ts +1 -0
  53. package/dist/components/variants/variant-selector/variant-selector.component.d.ts +23 -0
  54. package/dist/configuration/configuration.models.d.ts +609 -0
  55. package/dist/configuration/index.d.ts +4 -0
  56. package/dist/helpers/helpers.d.ts +221 -0
  57. package/dist/helpers/index.d.ts +4 -0
  58. package/dist/index.d.ts +1 -0
  59. package/dist/index.js +3 -0
  60. package/dist/index.js.LICENSE.txt +26 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/models/autocomplete.models.d.ts +85 -0
  63. package/dist/models/base.models.d.ts +50 -0
  64. package/dist/models/component.models.d.ts +453 -0
  65. package/dist/models/content.models.d.ts +94 -0
  66. package/dist/models/index.d.ts +11 -0
  67. package/dist/models/raw/index.d.ts +4 -0
  68. package/dist/models/raw/raw-autocomplete.models.d.ts +51 -0
  69. package/dist/models/raw/raw-base.models.d.ts +8 -0
  70. package/dist/models/raw/raw-recommendation.models.d.ts +39 -0
  71. package/dist/models/raw/raw-search.models.d.ts +191 -0
  72. package/dist/models/recommendation.models.d.ts +31 -0
  73. package/dist/models/search.models.d.ts +237 -0
  74. package/dist/models/tracking.models.d.ts +42 -0
  75. package/dist/placeholder.c99b7374b9bf579d0fd0.png +0 -0
  76. package/dist/services/autocomplete.service.d.ts +11 -0
  77. package/dist/services/base.service.d.ts +63 -0
  78. package/dist/services/index.d.ts +8 -0
  79. package/dist/services/recommendations.service.d.ts +10 -0
  80. package/dist/services/search.service.d.ts +53 -0
  81. package/dist/services/tracking.service.d.ts +29 -0
  82. package/dist/styles.65c0ab8e75ac4bcab10e99f66a160664.css +1 -0
  83. package/dist/utilities/colors.d.ts +1 -0
  84. package/dist/utilities/dates.d.ts +4 -0
  85. package/dist/utilities/decodes.d.ts +1 -0
  86. package/dist/utilities/formatters.d.ts +4 -0
  87. package/dist/utilities/index.d.ts +7 -0
  88. package/package.json +1 -1
package/changelog.md CHANGED
@@ -1,4 +1,10 @@
1
- # 5.2.0
1
+ # 5.2.2
2
+
3
+ ## New Features
4
+
5
+ 1. Added `HawkSearch.config.components.['search-field'].disableAutofill` property with a default value of `false` to Specify whether the input element should be pre-populared if "query" parameter exists on the URL.
6
+
7
+ # 5.2.1
2
8
 
3
9
  ## Bug Fixes
4
10
 
@@ -0,0 +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
+ }
@@ -0,0 +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
+ }
@@ -0,0 +1,21 @@
1
+ import { CustomContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { CustomContent, CustomContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Custom Content component renders HTML defined in HawkSearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-custom-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./custom-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class CustomContentComponent extends BaseContentComponent<CustomContentComponentConfig, CustomContent, CustomContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): CustomContentComponentModel;
21
+ }
@@ -0,0 +1,22 @@
1
+ import { FeaturedItemsContentComponentConfig, HawkSearchComponents } from '@configuration';
2
+ import { FeaturedItemsContent, FeaturedItemsContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Featured Items Content component renders a custom list of search results (typically products) defined as Spotlights in HawkSearch. This is commonly used to display a default set of products when a query returns no results.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-featured-items-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./featured-items-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class FeaturedItemsContentComponent extends BaseContentComponent<FeaturedItemsContentComponentConfig, FeaturedItemsContent, FeaturedItemsContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): FeaturedItemsContentComponentModel;
21
+ protected bindChildElements(): void;
22
+ }
@@ -0,0 +1,39 @@
1
+ import { BaseComponent } from '@components';
2
+ import { FeaturedItemsContentItemComponentConfig, HawkSearchComponents } from '@configuration';
3
+ import { FeaturedItemsContentItem, FeaturedItemsContentItemComponentModel } from '@models';
4
+ /**
5
+ * The Featured Items Content Item component displays information for an individual product or page.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-featured-items-content>`.
9
+ *
10
+ * ## Event-Binding Attributes
11
+ * ### Images
12
+ * | Name | Value |
13
+ * | :- | :- |
14
+ * | hawksearch-image | |
15
+ *
16
+ * Image elements with this attribute will have their src value replaced with a placeholder image URL if the image fails to load.
17
+ *
18
+ * ### Links
19
+ * | Name | Value |
20
+ * | :- | :- |
21
+ * | hawksearch-link | |
22
+ *
23
+ * Anchor elements with this attribute will be tracked when clicked.
24
+ *
25
+ * ## Default Template
26
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
27
+ * {@embed ./featured-items-content-item.component.hbs}
28
+ *
29
+ * @category Content
30
+ */
31
+ export declare class FeaturedItemsContentItemComponent extends BaseComponent<FeaturedItemsContentItemComponentConfig, FeaturedItemsContentItem, FeaturedItemsContentItemComponentModel> {
32
+ trackingEnabled: boolean;
33
+ protected componentName: keyof HawkSearchComponents;
34
+ protected defaultHtml: any;
35
+ protected bindFromEvent: boolean;
36
+ protected renderContent(): boolean;
37
+ protected getContentModel(): FeaturedItemsContentItemComponentModel;
38
+ protected onRender(): void;
39
+ }
@@ -0,0 +1,22 @@
1
+ import { HawkSearchComponents, ImageContentComponentConfig } from '@configuration';
2
+ import { ImageContent, ImageContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Image Content component displays an image defined in HawkSearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-image-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./image-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class ImageContentComponent extends BaseContentComponent<ImageContentComponentConfig, ImageContent, ImageContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): ImageContentComponentModel;
21
+ protected onRender(): void;
22
+ }
@@ -0,0 +1,6 @@
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';
@@ -0,0 +1,22 @@
1
+ import { HawkSearchComponents, PopularQueriesContentComponentConfig } from '@configuration';
2
+ import { PopularQueriesContent, PopularQueriesContentComponentModel } from '@models';
3
+ import { BaseContentComponent } from '../base-content.component';
4
+ /**
5
+ * The Popular Queries Content component renders a tag cloud of popular queries relating to the current query. Each link is weighted according to its search frequency, with the most popular queries displayed in the largest font size.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-popular-queries-content>`.
9
+ *
10
+ * ## Default Template
11
+ * The following is the default Handlebars template for this component. To create a custom template, it is recommended to use this as a starting point.
12
+ * {@embed ./popular-queries-content.component.hbs}
13
+ *
14
+ * @category Content
15
+ */
16
+ export declare class PopularQueriesContentComponent extends BaseContentComponent<PopularQueriesContentComponentConfig, PopularQueriesContent, PopularQueriesContentComponentModel> {
17
+ protected componentName: keyof HawkSearchComponents;
18
+ protected defaultHtml: any;
19
+ protected renderContent(): boolean;
20
+ protected getContentModel(): PopularQueriesContentComponentModel;
21
+ protected onRender(): void;
22
+ }
@@ -0,0 +1,44 @@
1
+ import { BaseComponent } from '@components';
2
+ import { ContentZoneComponentConfig, HawkSearchComponents } from '@configuration';
3
+ import { ContentZoneComponentModel, SearchResponse } from '@models';
4
+ /**
5
+ * The Content Zone component renders a list of content items or Spotlight products as defined in the Merchandising section of HawkSearch.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-content-zone>`.
9
+ *
10
+ * ## Attributes
11
+ * | Name | Value | Required |
12
+ * | :- | :- | :- |
13
+ * | name | `string` | Yes |
14
+ *
15
+ * The `name` attribute corresponds to the `Zone` property defined in HawkSearch. This is used to differentiate different content areas, allowing you to place content items exactly where you want within your search results page.
16
+ *
17
+ * ## Event-Binding Attributes
18
+ * | Name | Value |
19
+ * | :- | :- |
20
+ * | index | `number` |
21
+ *
22
+ * To render a content item, the `index` attribute must be present with a value corresponding to the item’s index in the {@link Models.ContentZoneComponentModel.items} array.
23
+ *
24
+ * ## Default Template
25
+ * 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.
26
+ * {@embed ./content-zone.component.hbs}
27
+ *
28
+ * @category Content
29
+ */
30
+ export declare class ContentZoneComponent extends BaseComponent<ContentZoneComponentConfig, SearchResponse, ContentZoneComponentModel> {
31
+ protected componentName: keyof HawkSearchComponents;
32
+ protected defaultHtml: any;
33
+ protected bindFromEvent: boolean;
34
+ private get name();
35
+ private get zone();
36
+ private get displayType();
37
+ private previousDisplayType?;
38
+ private windowResizeEventHandler;
39
+ connectedCallback(): void;
40
+ disconnectedCallback(): void;
41
+ protected renderContent(): boolean;
42
+ protected getContentModel(): ContentZoneComponentModel;
43
+ protected bindChildElements(): void;
44
+ }
@@ -0,0 +1,2 @@
1
+ export * from './content-types';
2
+ export * from './content-zone/content-zone.component';
@@ -0,0 +1,117 @@
1
+ import { BaseComponent } from '@components';
2
+ import { DatePickerComponentConfig, HawkSearchComponents } from '@configuration';
3
+ import { DatePickerComponentModel } from '@models';
4
+ /**
5
+ * The Date Picker component provides an intuitive interface that allows the user to select a range in ISO format. This component is currently only used within the {@link Components.DateRangeFacetComponent | Date Range Facet Component}.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-date-picker>`.
9
+ *
10
+ * ## Attributes
11
+ * | Name | Value |
12
+ * | :- | :- |
13
+ * | label | `string` |
14
+ * | min | `Date` |
15
+ * | max | `Date` |
16
+ * | value | `Date` |
17
+ *
18
+ * ## Event-Binding Attributes
19
+ * | Name | Value |
20
+ * | :- | :- |
21
+ * | hawksearch-input | |
22
+ *
23
+ * The input element must have this attribute. When this element is clicked, the date picker modal will be displayed.
24
+ *
25
+ * | Name | Value |
26
+ * | :- | :- |
27
+ * | hawksearch-modal | |
28
+ *
29
+ * This root element of the date picker modal must have this attribute to calculate modal positioning.
30
+ *
31
+ * | Name | Value |
32
+ * | :- | :- |
33
+ * | hawksearch-month | |
34
+ *
35
+ * This attribute is used to identify the form element used to select a specific month.
36
+ *
37
+ * | Name | Value |
38
+ * | :- | :- |
39
+ * | hawksearch-year | |
40
+ *
41
+ * This attribute is used to identify the form element used to select a specific year.
42
+ *
43
+ * | Name | Value |
44
+ * | :- | :- |
45
+ * | hawksearch-select-month | |
46
+ *
47
+ * When an element with this attribute is clicked, the month specified by `hawksearch-month` and `hawksearch-year` to be displayed in the date picker modal.
48
+ *
49
+ * | Name | Value |
50
+ * | :- | :- |
51
+ * | hawksearch-previous | |
52
+ *
53
+ * When an element with this attribute is clicked, the previous month will be displayed in the date picker modal.
54
+ *
55
+ * | Name | Value |
56
+ * | :- | :- |
57
+ * | hawksearch-next | |
58
+ *
59
+ * When an element with this attribute is clicked, the next month will be displayed in the date picker modal.
60
+ *
61
+ * | Name | Value |
62
+ * | :- | :- |
63
+ * | hawksearch-month-selector | |
64
+ *
65
+ * When an element with this attribute is clicked, the month selector will be displayed in the date picker modal to quickly jump to a particular month rather than using pagination.
66
+ *
67
+ * | Name | Value |
68
+ * | :- | :- |
69
+ * | hawksearch-date | `string` (ISO date format) |
70
+ *
71
+ * When an element with this attribute is clicked, the specified date will be selected and displayed in the input element.
72
+ *
73
+ * ## Events
74
+ * | Name | Data Type |
75
+ * | :- | :- |
76
+ * | hawksearch:date-picker-changed | `Date` |
77
+ *
78
+ * This event fires whenever the user selects a date.
79
+ *
80
+ * ## Handlebars Helpers
81
+ * | Name | Parameter |
82
+ * | :- | :- |
83
+ * | dayOfMonth | `Date` |
84
+ *
85
+ * This helper function returns the zero-padded day of the month from a provided date object.
86
+ *
87
+ * ## Default Template
88
+ * 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.
89
+ * {@embed ./date-picker.component.hbs}
90
+ *
91
+ * @category General
92
+ */
93
+ export declare class DatePickerComponent extends BaseComponent<DatePickerComponentConfig, never, DatePickerComponentModel> {
94
+ static get observedAttributes(): Array<string>;
95
+ protected componentName: keyof HawkSearchComponents;
96
+ protected defaultHtml: any;
97
+ protected bindFromEvent: boolean;
98
+ private label?;
99
+ private minDate?;
100
+ private maxDate?;
101
+ private selectedDate?;
102
+ private modalVisible;
103
+ private modalDate;
104
+ private monthSelectorVisible;
105
+ private documentClickEventHandler;
106
+ private windowResizeEventHandler;
107
+ connectedCallback(): void;
108
+ disconnectedCallback(): void;
109
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
110
+ protected registerHelpers(): void;
111
+ protected getContentModel(): DatePickerComponentModel;
112
+ protected onRender(): void;
113
+ private positionModal;
114
+ private getYears;
115
+ private getWeeks;
116
+ private getWeek;
117
+ }
@@ -0,0 +1,38 @@
1
+ import { BaseComponent } from '@components';
2
+ import { HawkSearchComponents, IconComponentConfig } from '@configuration';
3
+ import { IconComponentModel } from '@models';
4
+ /**
5
+ * The Icon component renders an SVG image inline with text content.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-icon>`.
9
+ *
10
+ * ## Attributes
11
+ * | Name | Type | Default Value | Required |
12
+ * | :- | :- | :- | :- |
13
+ * | name | {@link Models.IconName} | | Yes
14
+ * | size | `string` | `number` | `1em` | No
15
+ *
16
+ * ## CSS Variables
17
+ * The following CSS classes are available that allow you to bypass the [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM) and customize the appearance of this component without overriding the Handlebars template:
18
+ *
19
+ * | Name | Default Value |
20
+ * | :- | :- |
21
+ * | --icon-color | `currentColor` |
22
+ * | --icon-font-size | `1em` |
23
+ *
24
+ * ## Default Template
25
+ * 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.
26
+ * {@embed ./icon.component.hbs}
27
+ *
28
+ * @category General
29
+ */
30
+ export declare class IconComponent extends BaseComponent<IconComponentConfig, never, IconComponentModel> {
31
+ protected componentName: keyof HawkSearchComponents;
32
+ protected defaultHtml: any;
33
+ protected bindFromEvent: boolean;
34
+ private get name();
35
+ private get size();
36
+ protected renderContent(): boolean;
37
+ protected getContentModel(): IconComponentModel;
38
+ }
@@ -0,0 +1,5 @@
1
+ export * from './date-picker/date-picker.component';
2
+ export * from './icon/icon.component';
3
+ export * from './range-slider/range-slider.component';
4
+ export * from './rating/rating.component';
5
+ export * from './tooltip/tooltip.component';
@@ -0,0 +1,54 @@
1
+ import { BaseComponent } from '@components';
2
+ import { HawkSearchComponents, RangeSliderComponentConfig } from '@configuration';
3
+ import { RangeSliderComponentModel } from '@models';
4
+ /**
5
+ * The Range Slider component provides a draggable interface that allows the user to select a range between 0-100. This component is currently only used within the {@link Components.RangeSliderFacetComponent | Range Slider Facet Component}.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-range-slider>`.
9
+ *
10
+ * ## Event-Binding Attributes
11
+ * | Name | Value |
12
+ * | :- | :- |
13
+ * | hawksearch-handle | `'start'` or `'end'` |
14
+ *
15
+ * This component should always have exactly two elements with the `hawksearch-handle` attribute: one with a value of `'start'`, and one with a value of `'end'`. This are the elements that the user will drag to adjust the selected range.
16
+ *
17
+ * ## Events
18
+ * | Name | Data Type |
19
+ * | :- | :- |
20
+ * | hawksearch:range-slider-changed | {@link Models.RangeSliderEventData} |
21
+ *
22
+ * This event fires repeatedly while the user is dragging the handles; it does not wait until the user deselects a handle.
23
+ *
24
+ * *Note: The `min` and `max` values will always be between `0` and `100` inclusive.*
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 ./range-slider.component.hbs}
29
+ *
30
+ * @category General
31
+ */
32
+ export declare class RangeSliderComponent extends BaseComponent<RangeSliderComponentConfig, never, RangeSliderComponentModel> {
33
+ static get observedAttributes(): Array<string>;
34
+ protected componentName: keyof HawkSearchComponents;
35
+ protected defaultHtml: any;
36
+ protected bindFromEvent: boolean;
37
+ private dragging;
38
+ private activeHandle?;
39
+ private startX?;
40
+ private startOffsetPercentage?;
41
+ private mouseUpEventHandler;
42
+ private mouseMoveEventHandler;
43
+ private start;
44
+ private end;
45
+ connectedCallback(): void;
46
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
47
+ disconnectedCallback(): void;
48
+ private setStart;
49
+ private setEnd;
50
+ protected getContentModel(): RangeSliderComponentModel;
51
+ protected onRender(): void;
52
+ private onMouseUp;
53
+ private onMouseMove;
54
+ }
@@ -0,0 +1,39 @@
1
+ import { BaseComponent } from '@components';
2
+ import { HawkSearchComponents, RatingComponentConfig } from '@configuration';
3
+ import { RatingComponentModel } from '@models';
4
+ /**
5
+ * The Rating component is used to display a visual representation of ratings for a particular product.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-rating>`.
9
+ *
10
+ * ## Attributes
11
+ * | Name | Type | Default Value | Required |
12
+ * | :- | :- | :- | :- |
13
+ * | rating | `number` | | Yes
14
+ *
15
+ * These attributes are used to position the tooltip based on the size and scroll position of the active window. The `hawksearch-tooltip` attribute should be present on an element containing both the element the tooltip is attached to (to display on hover) and the element containing the tooltip content, which should have a `hawksearch-tooltip-content` attribute.
16
+ *
17
+ * ## Handlebars Helpers
18
+ * | Name | Rating | Star Number
19
+ * | :- | :- | :- |
20
+ * | ratingIcon | `number` | `number` |
21
+ *
22
+ * This helper function returns the icon name to display for a given rating and star number (1-5)
23
+ *
24
+ * ## Default Template
25
+ * 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.
26
+ * {@embed ./rating.component.hbs}
27
+ *
28
+ * @category General
29
+ */
30
+ export declare class RatingComponent extends BaseComponent<RatingComponentConfig, number, RatingComponentModel> {
31
+ protected componentName: keyof HawkSearchComponents;
32
+ protected defaultHtml: any;
33
+ protected bindFromEvent: boolean;
34
+ protected registerHelpers(): void;
35
+ private get rating();
36
+ protected renderContent(): boolean;
37
+ protected getContentModel(): RatingComponentModel;
38
+ protected onRender(): void;
39
+ }
@@ -0,0 +1,32 @@
1
+ import { BaseComponent } from '@components';
2
+ import { HawkSearchComponents, TooltipComponentConfig } from '@configuration';
3
+ import { TooltipComponentModel } from '@models';
4
+ /**
5
+ * The Tooltip component is used to display a brief explanation or contextual information when the user hovers over an element.
6
+ *
7
+ * ## Tag
8
+ * The tag for this component is `<hawksearch-tooltip>`.
9
+ *
10
+ * ## Event-Binding Attributes
11
+ * | Name | Value |
12
+ * | :- | :- |
13
+ * | hawksearch-tooltip | |
14
+ * | hawksearch-tooltip-content | |
15
+ *
16
+ * These attributes are used to position the tooltip based on the size and scroll position of the active window. The `hawksearch-tooltip` attribute should be present on an element containing both the element the tooltip is attached to (to display on hover) and the element containing the tooltip content, which should have a `hawksearch-tooltip-content` attribute.
17
+ *
18
+ * ## Default Template
19
+ * 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.
20
+ * {@embed ./tooltip.component.hbs}
21
+ *
22
+ * @category General
23
+ */
24
+ export declare class TooltipComponent extends BaseComponent<TooltipComponentConfig, string, TooltipComponentModel> {
25
+ protected componentName: keyof HawkSearchComponents;
26
+ protected defaultHtml: any;
27
+ protected bindFromEvent: boolean;
28
+ private get text();
29
+ protected renderContent(): boolean;
30
+ protected getContentModel(): TooltipComponentModel;
31
+ protected onRender(): void;
32
+ }