@coveo/atomic 3.33.8-pre.f26e1593fa → 3.33.8-pre.f62f2d7753
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.
- package/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/atomic.esm.js.map +1 -1
- package/dist/atomic/components/_index.d.ts +2 -2
- package/dist/atomic/components/_index.js +1 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-insight-history-toggle.js +2 -2
- package/dist/atomic/components/atomic-insight-history-toggle.js.map +1 -1
- package/dist/atomic/components/atomic-insight-search-box.js +29 -2
- package/dist/atomic/components/atomic-insight-search-box.js.map +1 -1
- package/dist/atomic/components/atomic-insight-user-actions-toggle.js +2 -2
- package/dist/atomic/components/atomic-insight-user-actions-toggle.js.map +1 -1
- package/dist/atomic/components/atomic-search-box-recent-queries.d.ts +11 -0
- package/dist/atomic/components/atomic-search-box-recent-queries.js +8 -0
- package/dist/atomic/components/atomic-search-box-recent-queries.js.map +1 -0
- package/dist/atomic/components/atomic-search-box-recent-queries2.js +183 -0
- package/dist/atomic/components/atomic-search-box-recent-queries2.js.map +1 -0
- package/dist/atomic/components/atomic-search-box.js +3 -3
- package/dist/atomic/components/clock.js +2 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.js +11 -18
- package/dist/atomic/components/components/commerce/atomic-commerce-interface/atomic-commerce-interface.js +7 -2
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +10 -19
- package/dist/atomic/components/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js +111 -0
- package/dist/atomic/components/components/search/index.js +1 -1
- package/dist/atomic/components/components/search/lazy-index.js +1 -1
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/{p-ba4bf29f.entry.js → p-6329ff94.entry.js} +2 -2
- package/dist/atomic/{p-7383fd32.entry.js → p-6e6d686e.entry.js} +2 -2
- package/dist/atomic/p-7a06a356.entry.js +2 -0
- package/dist/atomic/p-7a06a356.entry.js.map +1 -0
- package/dist/atomic/{p-02a26509.entry.js → p-9d6b988d.entry.js} +2 -2
- package/dist/atomic/{p-8c5cd9e9.entry.js → p-b24d432b.entry.js} +2 -2
- package/dist/atomic/{p-d6faddc7.js → p-b87dbae7.js} +2 -2
- package/dist/atomic/{p-e1cc5150.js → p-c280cd05.js} +1 -1
- package/dist/atomic/p-d2b14ff1.entry.js +2 -0
- package/dist/atomic/p-d2b14ff1.entry.js.map +1 -0
- package/dist/atomic/{p-49438035.entry.js → p-e5352270.entry.js} +2 -2
- package/dist/cjs/_loader.cjs.js +1 -1
- package/dist/cjs/{analytics-config-8de7a0b5.js → analytics-config-de93a689.js} +2 -2
- package/dist/cjs/{analytics-config-8de7a0b5.js.map → analytics-config-de93a689.js.map} +1 -1
- package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-history-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js +30 -4
- package/dist/cjs/atomic-insight-search-box.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js +2 -2
- package/dist/cjs/atomic-insight-user-actions-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js +171 -0
- package/dist/cjs/atomic-search-box-recent-queries.cjs.entry.js.map +1 -0
- package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic.cjs.js +1 -1
- package/dist/cjs/clock-f03ff827.js +7 -0
- package/dist/cjs/clock-f03ff827.js.map +1 -0
- package/dist/cjs/index-757bc886.js +2 -2
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/_loader.js +1 -1
- package/dist/esm/{analytics-config-1973be4e.js → analytics-config-018337bf.js} +2 -2
- package/dist/esm/{analytics-config-1973be4e.js.map → analytics-config-018337bf.js.map} +1 -1
- package/dist/esm/atomic-insight-history-toggle.entry.js +2 -2
- package/dist/esm/atomic-insight-history-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-insight-search-box.entry.js +29 -3
- package/dist/esm/atomic-insight-search-box.entry.js.map +1 -1
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js +2 -2
- package/dist/esm/atomic-insight-user-actions-toggle.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-search-box-recent-queries.entry.js +167 -0
- package/dist/esm/atomic-search-box-recent-queries.entry.js.map +1 -0
- package/dist/esm/atomic-search-interface.entry.js +1 -1
- package/dist/esm/atomic.js +1 -1
- package/dist/esm/clock-add3e9a5.js +5 -0
- package/dist/esm/clock-add3e9a5.js.map +1 -0
- package/dist/esm/index-3f35faca.js +2 -2
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.d.ts +1 -2
- package/dist/types/components/commerce/atomic-commerce-interface/atomic-commerce-interface.d.ts +1 -0
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +3 -3
- package/dist/types/components/search/{atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts → atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts} +7 -14
- package/dist/types/components/search/index.d.ts +1 -1
- package/dist/types/components/search/search-box-suggestions/{atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.d.ts → atomic-search-box-recent-queries/atomic-search-box-recent-queries.d.ts} +11 -3
- package/dist/types/components.d.ts +14 -14
- package/docs/atomic-docs.json +11 -13
- package/package.json +3 -3
- package/dist/atomic/components/atomic-search-box-query-suggestions.d.ts +0 -11
- package/dist/atomic/components/atomic-search-box-query-suggestions.js +0 -8
- package/dist/atomic/components/atomic-search-box-query-suggestions.js.map +0 -1
- package/dist/atomic/components/atomic-search-box-query-suggestions2.js +0 -89
- package/dist/atomic/components/atomic-search-box-query-suggestions2.js.map +0 -1
- package/dist/atomic/components/components/common/layout/layout-styles-controller.js +0 -40
- package/dist/atomic/components/components/common/layout/mobile-breakpoint-controller.js +0 -26
- package/dist/atomic/components/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.js +0 -137
- package/dist/atomic/components/stencil-query-suggestions.js +0 -33
- package/dist/atomic/components/stencil-query-suggestions.js.map +0 -1
- package/dist/atomic/p-26a51a77.entry.js +0 -2
- package/dist/atomic/p-26a51a77.entry.js.map +0 -1
- package/dist/atomic/p-2e9db4ca.entry.js +0 -2
- package/dist/atomic/p-2e9db4ca.entry.js.map +0 -1
- package/dist/atomic/p-af93b44c.js +0 -2
- package/dist/atomic/p-af93b44c.js.map +0 -1
- package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js +0 -76
- package/dist/cjs/atomic-search-box-query-suggestions.cjs.entry.js.map +0 -1
- package/dist/cjs/clock-7aeb19d0.js +0 -7
- package/dist/cjs/clock-7aeb19d0.js.map +0 -1
- package/dist/cjs/stencil-query-suggestions-03268ecc.js +0 -38
- package/dist/cjs/stencil-query-suggestions-03268ecc.js.map +0 -1
- package/dist/esm/atomic-search-box-query-suggestions.entry.js +0 -72
- package/dist/esm/atomic-search-box-query-suggestions.entry.js.map +0 -1
- package/dist/esm/clock-b1f5d7f7.js +0 -5
- package/dist/esm/clock-b1f5d7f7.js.map +0 -1
- package/dist/esm/stencil-query-suggestions-5d6a46d7.js +0 -33
- package/dist/esm/stencil-query-suggestions-5d6a46d7.js.map +0 -1
- package/dist/types/components/common/layout/layout-styles-controller.d.ts +0 -22
- package/dist/types/components/common/layout/mobile-breakpoint-controller.d.ts +0 -18
- /package/dist/atomic/{p-ba4bf29f.entry.js.map → p-6329ff94.entry.js.map} +0 -0
- /package/dist/atomic/{p-7383fd32.entry.js.map → p-6e6d686e.entry.js.map} +0 -0
- /package/dist/atomic/{p-02a26509.entry.js.map → p-9d6b988d.entry.js.map} +0 -0
- /package/dist/atomic/{p-8c5cd9e9.entry.js.map → p-b24d432b.entry.js.map} +0 -0
- /package/dist/atomic/{p-d6faddc7.js.map → p-b87dbae7.js.map} +0 -0
- /package/dist/atomic/{p-e1cc5150.js.map → p-c280cd05.js.map} +0 -0
- /package/dist/atomic/{p-49438035.entry.js.map → p-e5352270.entry.js.map} +0 -0
@@ -9,7 +9,7 @@ import { A as AriaLiveRegion } from './stencil-accessibility-utils.js';
|
|
9
9
|
import { o as once, r as randomID, a as spreadProperties, i as isFocusingOut } from './utils.js';
|
10
10
|
import { b as SearchSlimIcon, d as SearchTextArea, S as SuggestionManager, a as elementHasQuery, c as SearchBoxWrapper } from './stencil-suggestion-manager.js';
|
11
11
|
import { B as Button } from './stencil-button.js';
|
12
|
-
import { d as defineCustomElement$3 } from './atomic-search-box-
|
12
|
+
import { d as defineCustomElement$3 } from './atomic-search-box-recent-queries2.js';
|
13
13
|
|
14
14
|
const SubmitButton = ({ bindings, disabled, onClick, }) => (h("div", { part: "submit-button-wrapper", class: "mr-2 flex items-center justify-center py-2" },
|
15
15
|
h(Button, { style: "text-primary", class: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full", part: "submit-button", ariaLabel: bindings.i18n.t('search'), onClick: () => {
|
@@ -474,14 +474,14 @@ function defineCustomElement$1() {
|
|
474
474
|
if (typeof customElements === "undefined") {
|
475
475
|
return;
|
476
476
|
}
|
477
|
-
const components = ["atomic-search-box", "atomic-search-box-
|
477
|
+
const components = ["atomic-search-box", "atomic-search-box-recent-queries", "atomic-suggestion-renderer"];
|
478
478
|
components.forEach(tagName => { switch (tagName) {
|
479
479
|
case "atomic-search-box":
|
480
480
|
if (!customElements.get(tagName)) {
|
481
481
|
customElements.define(tagName, AtomicSearchBox$1);
|
482
482
|
}
|
483
483
|
break;
|
484
|
-
case "atomic-search-box-
|
484
|
+
case "atomic-search-box-recent-queries":
|
485
485
|
if (!customElements.get(tagName)) {
|
486
486
|
defineCustomElement$3();
|
487
487
|
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
const
|
1
|
+
const Clock = `<svg fill="none" stroke="currentColor" stroke-linejoin="round" stroke-linecap="round" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="7.5"/><path d="m8.5 4.5v4"/><path d="m10.3066 10.1387-1.80932-1.5768"/></svg>`;
|
2
2
|
|
3
|
-
export {
|
3
|
+
export { Clock as C };
|
4
4
|
|
5
5
|
//# sourceMappingURL=clock.js.map
|
@@ -115,30 +115,23 @@ let AtomicCommerceBreadbox = class AtomicCommerceBreadbox extends LitElement {
|
|
115
115
|
this.breadcrumbShowMoreFocus = new FocusTargetController(this, this.bindings);
|
116
116
|
this.breadcrumbShowLessFocus = new FocusTargetController(this, this.bindings);
|
117
117
|
}
|
118
|
-
|
118
|
+
updated(changedProperties) {
|
119
|
+
super.updated(changedProperties);
|
119
120
|
if (changedProperties.has('pathLimit')) {
|
120
121
|
this.validateProps();
|
121
122
|
}
|
122
|
-
}
|
123
|
-
updated() {
|
124
123
|
this.adaptBreadcrumbs();
|
125
124
|
}
|
126
125
|
validateProps() {
|
127
|
-
|
128
|
-
new
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
});
|
137
|
-
}
|
138
|
-
catch (error) {
|
139
|
-
this.error = error;
|
140
|
-
return;
|
141
|
-
}
|
126
|
+
new Schema({
|
127
|
+
pathLimit: new NumberValue({
|
128
|
+
default: 3,
|
129
|
+
min: 1,
|
130
|
+
required: false,
|
131
|
+
}),
|
132
|
+
}).validate({
|
133
|
+
pathLimit: this.pathLimit,
|
134
|
+
});
|
142
135
|
}
|
143
136
|
disconnectedCallback() {
|
144
137
|
this.resizeObserver?.disconnect();
|
@@ -9,7 +9,6 @@ import { provide } from '@lit/context';
|
|
9
9
|
import i18next from 'i18next';
|
10
10
|
import { css, html, LitElement } from 'lit';
|
11
11
|
import { customElement, property, state } from 'lit/decorators.js';
|
12
|
-
import { MobileBreakpointController } from "../../common/layout/mobile-breakpoint-controller";
|
13
12
|
import { booleanConverter } from "../../../converters/boolean-converter";
|
14
13
|
import { errorGuard } from "../../../decorators/error-guard";
|
15
14
|
import { watch } from "../../../decorators/watch";
|
@@ -86,7 +85,6 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
|
|
86
85
|
this.urlManager.synchronize(this.fragment);
|
87
86
|
};
|
88
87
|
this.store = createCommerceStore(this.type);
|
89
|
-
new MobileBreakpointController(this, this.store);
|
90
88
|
const { promise, resolve } = Promise.withResolvers();
|
91
89
|
this.i18Initialized = promise;
|
92
90
|
this.i18n = i18next.createInstance(undefined, resolve);
|
@@ -94,6 +92,7 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
|
|
94
92
|
connectedCallback() {
|
95
93
|
super.connectedCallback();
|
96
94
|
this.store.setLoadingFlag(FirstRequestExecutedFlag);
|
95
|
+
this.updateMobileBreakpoint();
|
97
96
|
this.addEventListener('atomic/initializeComponent', this.handleInitialization);
|
98
97
|
this.addEventListener('atomic/scrollToTop', this.scrollToTop);
|
99
98
|
}
|
@@ -286,6 +285,12 @@ let AtomicCommerceInterface = class AtomicCommerceInterface extends ChildrenUpda
|
|
286
285
|
history.pushState(null, document.title, `#${newFragment}`);
|
287
286
|
this.bindings.engine.logger.info(`History pushState #${newFragment}`);
|
288
287
|
}
|
288
|
+
updateMobileBreakpoint() {
|
289
|
+
const breakpoint = this.querySelector('atomic-commerce-layout')?.mobileBreakpoint;
|
290
|
+
if (breakpoint) {
|
291
|
+
this.store.state.mobileBreakpoint = breakpoint;
|
292
|
+
}
|
293
|
+
}
|
289
294
|
};
|
290
295
|
AtomicCommerceInterface.styles = [
|
291
296
|
css`:host{display:block;height:inherit;width:inherit;&>slot{height:inherit}}`,
|
package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js
CHANGED
@@ -4,12 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
6
|
};
|
7
|
-
import { LitElement } from 'lit';
|
7
|
+
import { LitElement, unsafeCSS } from 'lit';
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
9
|
-
import { LayoutStylesController } from "../../common/layout/layout-styles-controller";
|
10
|
-
import { watch } from "../../../decorators/watch";
|
11
9
|
import { ChildrenUpdateCompleteMixin } from "../../../mixins/children-update-complete-mixin";
|
12
10
|
import { LightDomMixin } from "../../../mixins/light-dom";
|
11
|
+
import { randomID } from "../../../utils/utils";
|
13
12
|
import { DEFAULT_MOBILE_BREAKPOINT } from '../../../utils/replace-breakpoint-utils';
|
14
13
|
import styles from './atomic-commerce-layout.tw.css';
|
15
14
|
import { buildCommerceLayout } from './commerce-layout';
|
@@ -19,6 +18,8 @@ import { buildCommerceLayout } from './commerce-layout';
|
|
19
18
|
* @cssprop --atomic-layout-max-search-box-input-width: The maximum width that the search box input will take.
|
20
19
|
* @cssprop --atomic-layout-max-search-box-double-suggestions-width: The maximum width that the search box suggestions will take when displaying a double list.
|
21
20
|
* @cssprop --atomic-layout-search-box-left-suggestions-width: The width of the left list when displaying a double list.
|
21
|
+
*
|
22
|
+
* @slot default - The default slot for the layout content.
|
22
23
|
*/
|
23
24
|
let AtomicCommerceLayout = class AtomicCommerceLayout extends LightDomMixin(ChildrenUpdateCompleteMixin(LitElement)) {
|
24
25
|
constructor() {
|
@@ -28,22 +29,15 @@ let AtomicCommerceLayout = class AtomicCommerceLayout extends LightDomMixin(Chil
|
|
28
29
|
* E.g., 800px, 65rem.
|
29
30
|
*/
|
30
31
|
this.mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;
|
31
|
-
|
32
|
+
}
|
33
|
+
async addStyles() {
|
34
|
+
await this.getUpdateComplete();
|
35
|
+
this.injectStyles(unsafeCSS(buildCommerceLayout(this, this.mobileBreakpoint)));
|
32
36
|
}
|
33
37
|
connectedCallback() {
|
34
38
|
super.connectedCallback();
|
35
|
-
this.
|
36
|
-
|
37
|
-
emitBreakpointChangeEvent() {
|
38
|
-
this.dispatchEvent(new CustomEvent('atomic-layout-breakpoint-change', {
|
39
|
-
detail: { breakpoint: this.mobileBreakpoint },
|
40
|
-
bubbles: true,
|
41
|
-
composed: true,
|
42
|
-
}));
|
43
|
-
}
|
44
|
-
onMobileBreakpointChange() {
|
45
|
-
this.layoutStylesController.updateStyles();
|
46
|
-
this.emitBreakpointChangeEvent();
|
39
|
+
this.id = randomID('atomic-commerce-layout-');
|
40
|
+
this.addStyles();
|
47
41
|
}
|
48
42
|
};
|
49
43
|
AtomicCommerceLayout.styles = [styles];
|
@@ -53,9 +47,6 @@ __decorate([
|
|
53
47
|
__decorate([
|
54
48
|
property({ type: String, reflect: true, attribute: 'mobile-breakpoint' })
|
55
49
|
], AtomicCommerceLayout.prototype, "mobileBreakpoint", void 0);
|
56
|
-
__decorate([
|
57
|
-
watch('mobileBreakpoint')
|
58
|
-
], AtomicCommerceLayout.prototype, "onMobileBreakpointChange", null);
|
59
50
|
AtomicCommerceLayout = __decorate([
|
60
51
|
customElement('atomic-commerce-layout')
|
61
52
|
], AtomicCommerceLayout);
|
@@ -0,0 +1,111 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { loadQuerySuggestActions, } from '@coveo/headless';
|
8
|
+
import { html, LitElement, nothing } from 'lit';
|
9
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
10
|
+
import { getPartialSearchBoxSuggestionElement, renderQuerySuggestion, } from "../../common/suggestions/query-suggestions.js";
|
11
|
+
import { dispatchSearchBoxSuggestionsEvent } from "../../common/suggestions/suggestions-events.js";
|
12
|
+
import { errorGuard } from "../../../decorators/error-guard.js";
|
13
|
+
const SearchIcon = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m6.4 0c3.5 0 6.4 2.9 6.4 6.4 0 1.4-.4 2.7-1.2 3.7l4 4c.4.4.4 1 .1 1.5l-.1.1c-.2.2-.5.3-.8.3s-.6-.1-.8-.3l-4-4c-1 .7-2.3 1.2-3.7 1.2-3.4-.1-6.3-3-6.3-6.5s2.9-6.4 6.4-6.4zm0 2.1c-2.3 0-4.3 1.9-4.3 4.3s1.9 4.3 4.3 4.3 4.3-1.9 4.3-4.3-1.9-4.3-4.3-4.3z\"/></svg>";
|
14
|
+
/**
|
15
|
+
* The `atomic-search-box-query-suggestions` component can be added as a child of an `atomic-search-box` component, allowing for the configuration of query suggestion behavior.
|
16
|
+
*/
|
17
|
+
let AtomicSearchBoxQuerySuggestions = class AtomicSearchBoxQuerySuggestions extends LitElement {
|
18
|
+
constructor() {
|
19
|
+
super(...arguments);
|
20
|
+
/**
|
21
|
+
* The maximum number of suggestions that will be displayed if the user has typed something into the input field.
|
22
|
+
*/
|
23
|
+
this.maxWithQuery = 3;
|
24
|
+
/**
|
25
|
+
* The maximum number of suggestions that will be displayed initially when the input field is empty.
|
26
|
+
*/
|
27
|
+
this.maxWithoutQuery = 0;
|
28
|
+
}
|
29
|
+
connectedCallback() {
|
30
|
+
super.connectedCallback();
|
31
|
+
try {
|
32
|
+
dispatchSearchBoxSuggestionsEvent((bindings) => {
|
33
|
+
this.bindings = bindings;
|
34
|
+
return this.initialize();
|
35
|
+
}, this, ['atomic-search-box']);
|
36
|
+
}
|
37
|
+
catch (error) {
|
38
|
+
this.error = error;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
initialize() {
|
42
|
+
const engine = this.bindings.engine;
|
43
|
+
const { registerQuerySuggest, fetchQuerySuggestions } = loadQuerySuggestActions(engine);
|
44
|
+
const numberOfQueries = this.bindings.numberOfQueries;
|
45
|
+
const maxWithQuery = this.maxWithQuery;
|
46
|
+
if (numberOfQueries < maxWithQuery) {
|
47
|
+
const logger = this.bindings.engine.logger;
|
48
|
+
logger.warn(`Query suggestions configuration mismatch: atomic-search-box has number-of-queries="${numberOfQueries}" but atomic-search-box-query-suggestions has max-with-query="${maxWithQuery}". ` +
|
49
|
+
`This may cause inconsistent behavior where the search box requests ${numberOfQueries} suggestions but the component tries to display up to ${maxWithQuery}. ` +
|
50
|
+
`Consider updating max-with-query to ${numberOfQueries} or increasing number-of-queries to ${maxWithQuery}.`);
|
51
|
+
}
|
52
|
+
engine.dispatch(registerQuerySuggest({
|
53
|
+
id: this.bindings.id,
|
54
|
+
count: this.bindings.numberOfQueries,
|
55
|
+
}));
|
56
|
+
return {
|
57
|
+
position: Array.from(this.parentNode.children).indexOf(this),
|
58
|
+
onInput: () => engine.dispatch(fetchQuerySuggestions({
|
59
|
+
id: this.bindings.id,
|
60
|
+
})),
|
61
|
+
renderItems: () => this.renderItems(),
|
62
|
+
};
|
63
|
+
}
|
64
|
+
renderItems() {
|
65
|
+
const hasQuery = this.bindings.searchBoxController.state.value !== '';
|
66
|
+
const max = hasQuery ? this.maxWithQuery : this.maxWithoutQuery;
|
67
|
+
return this.bindings.searchBoxController.state.suggestions
|
68
|
+
.slice(0, max)
|
69
|
+
.map((suggestion) => this.renderItem(suggestion));
|
70
|
+
}
|
71
|
+
renderItem(suggestion) {
|
72
|
+
const partialItem = getPartialSearchBoxSuggestionElement(suggestion, this.bindings.i18n);
|
73
|
+
const icon = this.icon || SearchIcon;
|
74
|
+
const hasQuery = this.bindings.searchBoxController.state.value !== '';
|
75
|
+
const hasMultipleKindOfSuggestions = this.bindings.getSuggestions().length > 1;
|
76
|
+
return {
|
77
|
+
...partialItem,
|
78
|
+
content: renderQuerySuggestion({
|
79
|
+
icon,
|
80
|
+
hasQuery,
|
81
|
+
suggestion,
|
82
|
+
hasMultipleKindOfSuggestions,
|
83
|
+
}),
|
84
|
+
onSelect: () => {
|
85
|
+
this.bindings.searchBoxController.selectSuggestion(suggestion.rawValue);
|
86
|
+
},
|
87
|
+
};
|
88
|
+
}
|
89
|
+
render() {
|
90
|
+
return html `${nothing}`;
|
91
|
+
}
|
92
|
+
};
|
93
|
+
__decorate([
|
94
|
+
state()
|
95
|
+
], AtomicSearchBoxQuerySuggestions.prototype, "error", void 0);
|
96
|
+
__decorate([
|
97
|
+
property()
|
98
|
+
], AtomicSearchBoxQuerySuggestions.prototype, "icon", void 0);
|
99
|
+
__decorate([
|
100
|
+
property({ type: Number, attribute: 'max-with-query', reflect: true })
|
101
|
+
], AtomicSearchBoxQuerySuggestions.prototype, "maxWithQuery", void 0);
|
102
|
+
__decorate([
|
103
|
+
property({ type: Number, attribute: 'max-without-query', reflect: true })
|
104
|
+
], AtomicSearchBoxQuerySuggestions.prototype, "maxWithoutQuery", void 0);
|
105
|
+
__decorate([
|
106
|
+
errorGuard()
|
107
|
+
], AtomicSearchBoxQuerySuggestions.prototype, "render", null);
|
108
|
+
AtomicSearchBoxQuerySuggestions = __decorate([
|
109
|
+
customElement('atomic-search-box-query-suggestions')
|
110
|
+
], AtomicSearchBoxQuerySuggestions);
|
111
|
+
export { AtomicSearchBoxQuerySuggestions };
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Auto-generated file
|
2
2
|
export { AtomicQuerySummary } from './atomic-query-summary/atomic-query-summary.js';
|
3
3
|
export { AtomicResultsPerPage } from './atomic-results-per-page/atomic-results-per-page.js';
|
4
|
-
export {
|
4
|
+
export { AtomicSearchBoxQuerySuggestions } from './atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js';
|
5
5
|
export { AtomicSearchLayout } from './atomic-search-layout/atomic-search-layout.js';
|
@@ -2,6 +2,6 @@
|
|
2
2
|
export default {
|
3
3
|
'atomic-query-summary': async () => await import('./atomic-query-summary/atomic-query-summary.js'),
|
4
4
|
'atomic-results-per-page': async () => await import('./atomic-results-per-page/atomic-results-per-page.js'),
|
5
|
-
'atomic-search-box-
|
5
|
+
'atomic-search-box-query-suggestions': async () => await import('./atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.js'),
|
6
6
|
'atomic-search-layout': async () => await import('./atomic-search-layout/atomic-search-layout.js'),
|
7
7
|
};
|