@bridgeline-digital/hawksearch-handlebars-ui 5.2.6 → 5.2.8

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 (96) hide show
  1. package/changelog.md +12 -0
  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 -1438
  59. package/dist/index.html +102 -0
  60. package/dist/index.js +20108 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/landing-page-custom.html +45 -0
  63. package/dist/landing-page-products.html +45 -0
  64. package/dist/models/autocomplete.models.d.ts +85 -0
  65. package/dist/models/base.models.d.ts +50 -0
  66. package/dist/models/component.models.d.ts +453 -0
  67. package/dist/models/content.models.d.ts +94 -0
  68. package/dist/models/index.d.ts +11 -0
  69. package/dist/models/raw/index.d.ts +4 -0
  70. package/dist/models/raw/raw-autocomplete.models.d.ts +51 -0
  71. package/dist/models/raw/raw-base.models.d.ts +8 -0
  72. package/dist/models/raw/raw-recommendation.models.d.ts +39 -0
  73. package/dist/models/raw/raw-search.models.d.ts +191 -0
  74. package/dist/models/recommendation.models.d.ts +31 -0
  75. package/dist/models/search.models.d.ts +237 -0
  76. package/dist/models/tracking.models.d.ts +42 -0
  77. package/dist/placeholder.c99b7374b9bf579d0fd0.png +0 -0
  78. package/dist/recommendations.html +45 -0
  79. package/dist/services/autocomplete.service.d.ts +11 -0
  80. package/dist/services/base.service.d.ts +63 -0
  81. package/dist/services/index.d.ts +8 -0
  82. package/dist/services/recommendations.service.d.ts +10 -0
  83. package/dist/services/search.service.d.ts +53 -0
  84. package/dist/services/tracking.service.d.ts +29 -0
  85. package/dist/styles.328cd3af2ed43ff243ce7ffede0f447c.css +1896 -0
  86. package/dist/utilities/colors.d.ts +1 -0
  87. package/dist/utilities/dates.d.ts +4 -0
  88. package/dist/utilities/decodes.d.ts +1 -0
  89. package/dist/utilities/formatters.d.ts +4 -0
  90. package/dist/utilities/index.d.ts +7 -0
  91. package/dist/variants.html +63 -0
  92. package/package.json +1 -1
  93. package/dist/hawksearch-handlebars-ui.cjs +0 -10
  94. package/dist/hawksearch-handlebars-ui.js +0 -11623
  95. package/dist/hawksearch-handlebars-ui.min.js +0 -975
  96. package/dist/hawksearch-handlebars-ui.umd.cjs +0 -10
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>HawkSearch Demo (recommendations)</title>
6
+ <meta name="description" content="This is a demo of the HawkSearch Handlebars UI" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
8
+ <style type="text/css">
9
+ body {
10
+ font-family: Arial, Helvetica, sans-serif;
11
+ font-size: 16px;
12
+ }
13
+
14
+ .layout-container {
15
+ margin: 0 auto;
16
+ min-width: 340px;
17
+ max-width: 1280px;
18
+ }
19
+ </style>
20
+ <script type="text/javascript">
21
+ var HawkSearch = HawkSearch || {};
22
+
23
+ HawkSearch.config = {
24
+ clientId: 'f51060e1c38446f0bacdf283390c37e8',
25
+ search: {
26
+ url: ''
27
+ },
28
+ urlPrefixes: {
29
+ assets: '//dev.hawksearch.net',
30
+ content: '//preview-dev.hawksearch.net/elasticdemo'
31
+ }
32
+ };
33
+ </script>
34
+ <script defer src="index.js"></script></head>
35
+
36
+ <body>
37
+ <div class="layout-container">
38
+ <h1>HawkSearch Demo (recommendations)</h1>
39
+ <div style="margin: 0 0 30px 0">
40
+ <hawksearch-search-field></hawksearch-search-field>
41
+ </div>
42
+ <hawksearch-recommendations widget-id="ac843f01-3391-41ee-9db2-36929a021622"></hawksearch-recommendations>
43
+ </div>
44
+ </body>
45
+ </html>
@@ -0,0 +1,11 @@
1
+ import { AutocompleteResponse } from '@models';
2
+ import { BaseService } from '@services';
3
+ export declare class AutocompleteService extends BaseService {
4
+ protected baseUrl: string;
5
+ private decodeQuery;
6
+ query(query?: string): Promise<AutocompleteResponse>;
7
+ private executeAutocomplete;
8
+ private convertResponse;
9
+ bindComponent(autocompleteResponse: AutocompleteResponse): void;
10
+ }
11
+ export declare const autocompleteService: AutocompleteService;
@@ -0,0 +1,63 @@
1
+ import { HawkSearchComponents } from '@configuration';
2
+ import { ItemVariant, RawVariantDocument } from '@models';
3
+ export interface FieldMappings {
4
+ description: Array<string>;
5
+ imageUrl: Array<string>;
6
+ price: Array<string>;
7
+ rating: Array<string>;
8
+ salePrice: Array<string>;
9
+ sku: Array<string>;
10
+ title: Array<string>;
11
+ type: Array<string>;
12
+ url: Array<string>;
13
+ }
14
+ export interface VariantFieldMappings {
15
+ color: {
16
+ name: Array<string>;
17
+ hex: Array<string>;
18
+ imageUrl: Array<string>;
19
+ };
20
+ description: Array<string>;
21
+ id: Array<string>;
22
+ imageUrl: Array<string>;
23
+ price: Array<string>;
24
+ rating: Array<string>;
25
+ salePrice: Array<string>;
26
+ sku: Array<string>;
27
+ title: Array<string>;
28
+ url: Array<string>;
29
+ }
30
+ export declare abstract class BaseService {
31
+ protected abstract baseUrl: string;
32
+ protected fieldMappings: FieldMappings;
33
+ protected variantFieldMappings: VariantFieldMappings;
34
+ queryStringParams: {
35
+ disableSpellcheck: string;
36
+ page: string;
37
+ pageSize: string;
38
+ query: string;
39
+ searchWithin: string;
40
+ sort: string;
41
+ };
42
+ searchUrl: string;
43
+ protected get onSearchPage(): boolean;
44
+ constructor();
45
+ protected httpPost<T>(relativeUrl: string, body?: any): Promise<T>;
46
+ private getHeaders;
47
+ private getFieldMappings;
48
+ protected getVisitorId(): string;
49
+ protected getVisitId(): string;
50
+ protected generateGuid(): string;
51
+ protected stripHtml(input: string): string;
52
+ protected getValue(data: object, fieldMappings: Array<string>): Array<string> | undefined;
53
+ protected getString(data: object, fieldMappings: Array<string>, defaultValue?: string): string | undefined;
54
+ protected getNumber(data: object, fieldMappings: Array<string>, defaultValue?: number): number | undefined;
55
+ protected getUrl(data: object, fieldMappings: Array<string>, prefix?: string | undefined): string | undefined;
56
+ protected getFullUrl(url: string | undefined, prefix: string | undefined): string | undefined;
57
+ protected getVariants(document: RawVariantDocument): {
58
+ items: Array<ItemVariant> | undefined;
59
+ selectedItem?: ItemVariant;
60
+ };
61
+ protected triggerBindEvent<T>(component: keyof HawkSearchComponents, data: T, filter?: string): void;
62
+ protected triggerEvent<T>(name: string, data: T): void;
63
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module Services
3
+ */
4
+ export * from './base.service';
5
+ export * from './autocomplete.service';
6
+ export * from './recommendations.service';
7
+ export * from './search.service';
8
+ export * from './tracking.service';
@@ -0,0 +1,10 @@
1
+ import { RecommendationsRequest, RecommendationsResponse } from '@models';
2
+ import { BaseService } from '@services';
3
+ export declare class RecommendationsService extends BaseService {
4
+ protected baseUrl: string;
5
+ getItems(recommendationsRequest: RecommendationsRequest): Promise<RecommendationsResponse>;
6
+ private executeRecommendations;
7
+ private convertResponse;
8
+ bindComponents(recommendationsResponse: RecommendationsResponse): void;
9
+ }
10
+ export declare const recommendationsService: RecommendationsService;
@@ -0,0 +1,53 @@
1
+ import { SearchRequest, SearchResponse, SelectedFacets } from '@models';
2
+ import { BaseService } from '@services';
3
+ export declare class SearchService extends BaseService {
4
+ protected baseUrl: string;
5
+ private facetExclusionPrefix;
6
+ private decodeQuery;
7
+ private decodeFacetValues;
8
+ private shouldRenderUI;
9
+ search(searchRequest: SearchRequest): Promise<SearchResponse>;
10
+ query(query?: string, selectedFacets?: SelectedFacets | undefined, disableSpellcheck?: boolean): Promise<SearchResponse | void>;
11
+ addFacetValue(field: string, value: string): Promise<SearchResponse>;
12
+ removeFacetValue(field: string, value: string): Promise<SearchResponse>;
13
+ includeFacetValue(field: string, value: string): Promise<SearchResponse>;
14
+ excludeFacetValue(field: string, value: string): Promise<SearchResponse>;
15
+ private clearExistingFacetValue;
16
+ setFacetValue(field: string, value: string): Promise<SearchResponse>;
17
+ searchWithin(value: string): Promise<SearchResponse>;
18
+ selectTab(value?: string): Promise<SearchResponse>;
19
+ paginate(page: number): Promise<SearchResponse>;
20
+ setPageSize(pageSize: number): Promise<SearchResponse>;
21
+ sort(value?: string): Promise<SearchResponse>;
22
+ private executeSearch;
23
+ private ensureSearchRequest;
24
+ private convertResponse;
25
+ bindComponents(searchResponse: SearchResponse): void;
26
+ bindFacetsListComponent(searchResponse: SearchResponse | undefined): void;
27
+ bindLandingPageComponent(searchResponse: SearchResponse | undefined): void;
28
+ bindModifiedQueryComponent(searchResponse: SearchResponse | undefined): void;
29
+ bindPageSizeComponent(searchResponse: SearchResponse | undefined): void;
30
+ bindPaginationComponent(searchResponse: SearchResponse | undefined): void;
31
+ bindSearchFieldComponent(searchResponse: SearchResponse | undefined): void;
32
+ bindSearchResultsComponent(searchResponse: SearchResponse | undefined): void;
33
+ bindSearchResultsListComponent(searchResponse: SearchResponse | undefined): void;
34
+ bindQuerySuggestionsComponent(searchResponse: SearchResponse | undefined): void;
35
+ bindSortingComponent(searchResponse: SearchResponse | undefined): void;
36
+ bindSelectedFacetsComponent(searchResponse: SearchResponse | undefined): void;
37
+ bindTabsComponent(searchResponse: SearchResponse | undefined): void;
38
+ bindZoneComponent(searchResponse: SearchResponse | undefined): void;
39
+ getRequestFromUrl(): SearchRequest;
40
+ private setQueryString;
41
+ private getSearchUrl;
42
+ private getBooleanParameter;
43
+ private getPositiveIntegerParameter;
44
+ private getStringParameter;
45
+ private getRecentQueries;
46
+ private saveRecentQueries;
47
+ protected setSeoElements(searchResponse: SearchResponse): void;
48
+ private removeElement;
49
+ private setLinkTag;
50
+ private setMetaTag;
51
+ private setTitle;
52
+ }
53
+ export declare const searchService: SearchService;
@@ -0,0 +1,29 @@
1
+ import { AutocompleteItemType, EventType, PageType } from '@models';
2
+ import { BaseService } from '@services';
3
+ export declare class TrackingService extends BaseService {
4
+ protected baseUrl: string;
5
+ trackAddToCart(productId: string, quantity: number, price: number, currencyIsoCode: string): Promise<void>;
6
+ trackAddToCartMultiple(items: Array<{
7
+ productId: string;
8
+ quantity: number;
9
+ price: number;
10
+ currencyIsoCode: string;
11
+ }>): Promise<void>;
12
+ trackAutocompleteClick(query: string | undefined, itemType: AutocompleteItemType, title: string, url: string): Promise<void>;
13
+ trackBannerClick(bannerId: number, campaignId: number): Promise<void>;
14
+ trackBannerImpression(bannerId: number, campaignId: number): Promise<void>;
15
+ trackOrder(orderId: string, items: Array<{
16
+ productId: string;
17
+ quantity: number;
18
+ price: number;
19
+ }>, subTotal: number, tax: number, total: number, currencyIsoCode: string): Promise<void>;
20
+ trackPageLoad(pageType: PageType, productId?: string): Promise<void>;
21
+ trackRating(productId: string, rating: number): Promise<void>;
22
+ trackRecommendationClick(widgetId: string, requestId: string, productId: string): Promise<void>;
23
+ trackSearchResultClick(id: string, url: string, event?: PointerEvent): Promise<void>;
24
+ trackSearch(query: string | undefined, newSearch: boolean): Promise<void>;
25
+ trackEvent(type: EventType, data: any): Promise<void>;
26
+ private getQueryId;
27
+ private setNewQueryId;
28
+ }
29
+ export declare const trackingService: TrackingService;