@coveo/atomic 3.52.1 → 3.53.0
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/README.md +0 -26
- package/custom-elements.json +25 -1
- package/dist/atomic/atomic.esm.js +0 -1
- package/dist/atomic/autoloader/index.cjs.js +2 -2
- package/dist/atomic/autoloader/index.esm.js +2 -2
- package/dist/atomic/components/components/commerce/product-template-component-utils/context/fetch-product-context.js +14 -0
- package/dist/atomic/components/components/common/generated-answer/atomic-answer-content/atomic-answer-content.js +14 -2
- package/dist/atomic/components/components/common/generated-answer/feedback-button.js +2 -1
- package/dist/atomic/components/components/common/generated-answer/render-disclaimer.js +6 -7
- package/dist/atomic/components/components/common/item-list/fetch-item-context.js +15 -0
- package/dist/atomic/components/components/insight/atomic-insight-generated-answer/atomic-insight-generated-answer.js +0 -1
- package/dist/atomic/components/components/search/atomic-generated-answer/atomic-generated-answer.js +3 -4
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/index.d.ts +2 -3
- package/dist/atomic/components/index.js +8 -2
- package/dist/atomic/lang/cs.json +1 -1
- package/dist/atomic/lang/da.json +1 -1
- package/dist/atomic/lang/de.json +1 -1
- package/dist/atomic/lang/dev.json +1 -1
- package/dist/atomic/lang/el.json +1 -1
- package/dist/atomic/lang/en.json +1 -1
- package/dist/atomic/lang/es.json +1 -1
- package/dist/atomic/lang/fi.json +1 -1
- package/dist/atomic/lang/fr.json +1 -1
- package/dist/atomic/lang/hu.json +1 -1
- package/dist/atomic/lang/id.json +1 -1
- package/dist/atomic/lang/it.json +1 -1
- package/dist/atomic/lang/ja.json +1 -1
- package/dist/atomic/lang/ko.json +1 -1
- package/dist/atomic/lang/nl.json +1 -1
- package/dist/atomic/lang/no.json +1 -1
- package/dist/atomic/lang/pl.json +1 -1
- package/dist/atomic/lang/pt-BR.json +1 -1
- package/dist/atomic/lang/pt.json +1 -1
- package/dist/atomic/lang/ru.json +1 -1
- package/dist/atomic/lang/sv.json +1 -1
- package/dist/atomic/lang/th.json +1 -1
- package/dist/atomic/lang/tr.json +1 -1
- package/dist/atomic/lang/zh-CN.json +1 -1
- package/dist/atomic/lang/zh-TW.json +1 -1
- package/dist/atomic/lang/zh.json +1 -1
- package/dist/atomic/loader/index.d.ts +4 -15
- package/dist/atomic/loader/index.js +0 -1
- package/dist/cjs/index.cjs.js +5 -2
- package/dist/cjs/loader.cjs.js +7 -4
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/index.js +0 -1
- package/dist/esm/loader.js +9 -5
- package/dist/esm/version.js +2 -2
- package/dist/types/components/common/generated-answer/atomic-answer-content/atomic-answer-content.d.ts +2 -1
- package/dist/types/components/common/generated-answer/atomic-generated-answers-thread/atomic-generated-answers-thread.d.ts +1 -1
- package/dist/types/components/common/generated-answer/render-disclaimer.d.ts +0 -1
- package/dist/types/index.d.ts +2 -1
- package/package.json +17 -31
- package/dist/atomic/_atomic.esm.js +0 -2
- package/dist/atomic/atomic.esm.js.map +0 -1
- package/dist/atomic/components/_index.d.ts +0 -36
- package/dist/atomic/components/_index.js +0 -219
- package/dist/atomic/components/index.js.map +0 -1
- package/dist/atomic/index.esm.js +0 -2
- package/dist/atomic/index.esm.js.map +0 -1
- package/dist/atomic/loader/cdn.js +0 -1
- package/dist/atomic/loader/index.cjs.js +0 -1
- package/dist/atomic/loader/index.es2017.js +0 -1
- package/dist/atomic/p-998f7983.js +0 -3
- package/dist/atomic/p-998f7983.js.map +0 -1
- package/dist/cjs/_index.cjs.js +0 -236
- package/dist/cjs/_loader.cjs.js +0 -16
- package/dist/cjs/app-globals-18f43c37.js +0 -506
- package/dist/cjs/app-globals-18f43c37.js.map +0 -1
- package/dist/cjs/atomic.cjs.js +0 -26
- package/dist/cjs/atomic.cjs.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/esm/_index.js +0 -218
- package/dist/esm/_loader.js +0 -12
- package/dist/esm/app-globals-c5b073da.js +0 -481
- package/dist/esm/app-globals-c5b073da.js.map +0 -1
- package/dist/esm/atomic.js +0 -21
- package/dist/esm/atomic.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/types/autoloader/index.d.ts +0 -1
- package/dist/types/components/common/layout/display-options.d.ts +0 -40
- package/dist/types/components/search/atomic-smart-snippet-feedback-modal/atomic-smart-snippet-feedback-modal.tw.css.d.ts +0 -2
- package/dist/types/components/search/result-template-component-utils/context/fetch-result-context.d.ts +0 -8
- package/dist/types/components.d.ts +0 -24
- package/dist/types/icons.d.ts +0 -4
- package/dist/types/lit-components.d.ts +0 -10
- package/dist/types/stencil-public-runtime.d.ts +0 -1674
- package/dist/types/types/custom-env.d.ts +0 -7
- package/dist/types/types/dayjs/locale.d.ts +0 -4
- package/dist/types/types/open-api.d.ts +0 -3
- package/dist/types/types/storybook.d.ts +0 -7
- package/docs/atomic-docs.d.ts +0 -435
- package/docs/atomic-docs.json +0 -10
package/dist/esm/_index.js
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
export * from '@coveo/atomic-legacy/item-decorators';
|
|
2
|
-
import { buildInteractiveResult } from '@coveo/headless';
|
|
3
|
-
|
|
4
|
-
function closest(element, selector) {
|
|
5
|
-
if (!element) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
if (element.matches(selector)) {
|
|
9
|
-
return element;
|
|
10
|
-
}
|
|
11
|
-
if (element.parentNode instanceof ShadowRoot) {
|
|
12
|
-
return closest(element.parentNode.host, selector);
|
|
13
|
-
}
|
|
14
|
-
return closest(element.parentElement, selector);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function buildCustomEvent(name, detail) {
|
|
18
|
-
return new CustomEvent(name, {
|
|
19
|
-
detail,
|
|
20
|
-
// Event will bubble up the DOM until it is caught
|
|
21
|
-
bubbles: true,
|
|
22
|
-
// Allows to verify if event is caught (cancelled). If it's not caught, it won't be initialized.
|
|
23
|
-
cancelable: true,
|
|
24
|
-
// Allows to compose Atomic components inside one another, event will go across DOM/Shadow DOM
|
|
25
|
-
composed: true,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
class MissingParentError extends Error {
|
|
30
|
-
constructor(elementName, parentName) {
|
|
31
|
-
super(`The "${elementName}" element must be the child of an "${parentName}" element.`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const itemContextEventName = 'atomic/resolveResult';
|
|
36
|
-
function fetchItemContext(element, parentName) {
|
|
37
|
-
return new Promise((resolve, reject) => {
|
|
38
|
-
const event = buildCustomEvent(itemContextEventName, (item) => {
|
|
39
|
-
return resolve(item);
|
|
40
|
-
});
|
|
41
|
-
element.dispatchEvent(event);
|
|
42
|
-
if (!closest(element, parentName)) {
|
|
43
|
-
reject(new MissingParentError(element.nodeName.toLowerCase(), parentName));
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Retrieves `Product` on a rendered `atomic-product`.
|
|
50
|
-
*
|
|
51
|
-
* This utility function is useful for building custom product template elements, see [Create a Product List](https://docs.coveo.com/en/atomic/latest/cc-search/create-custom-components/native-components/#custom-product-template-component-example) for more information.
|
|
52
|
-
*
|
|
53
|
-
* You should use the utility function in the [`connectedCallback` lifecycle method](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements#using_the_lifecycle_callbacks).
|
|
54
|
-
*
|
|
55
|
-
* @param element - The element that the event is dispatched to, which must be the child of a rendered `atomic-product`.
|
|
56
|
-
* @returns A promise that resolves on initialization of the parent `atomic-product` element, or rejects when there is no parent `atomic-product` element.
|
|
57
|
-
*/
|
|
58
|
-
function fetchProductContext(element) {
|
|
59
|
-
return fetchItemContext(element, 'atomic-product');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Dispatches an event which retrieves the `SearchBoxSuggestionsBindings` on a configured parent search box.
|
|
64
|
-
*
|
|
65
|
-
* @param event Event sent from the registered query suggestions to the parent search box
|
|
66
|
-
* @param element Element on which to dispatch the event, which must be the child of a configured search box
|
|
67
|
-
* @param allowedSearchBoxElements Optional array of allowed search box element selectors
|
|
68
|
-
*
|
|
69
|
-
* @throws Error if the element is not a child of an allowed search box element
|
|
70
|
-
*/
|
|
71
|
-
const dispatchSearchBoxSuggestionsEvent = (event, element, allowedSearchBoxElements = searchBoxElements) => {
|
|
72
|
-
const interfaceElement = closest(element, searchBoxElements.join(', '));
|
|
73
|
-
if (!interfaceElement) {
|
|
74
|
-
throw new Error(`The "${element.nodeName.toLowerCase()}" component was not handled, as it is not a child of the following elements: ${allowedSearchBoxElements.join(', ')}`);
|
|
75
|
-
}
|
|
76
|
-
void dispatchSearchBoxSuggestionsEventEventually(interfaceElement, element, event);
|
|
77
|
-
};
|
|
78
|
-
const searchBoxElements = [
|
|
79
|
-
'atomic-search-box',
|
|
80
|
-
'atomic-insight-search-box',
|
|
81
|
-
'atomic-commerce-search-box',
|
|
82
|
-
];
|
|
83
|
-
const isLitElementLoosely = (candidate) => 'updateComplete' in candidate &&
|
|
84
|
-
candidate.updateComplete instanceof Promise;
|
|
85
|
-
const dispatchSearchBoxSuggestionsEventEventually = async (interfaceElement, element, event) => {
|
|
86
|
-
await customElements.whenDefined(interfaceElement.nodeName.toLowerCase());
|
|
87
|
-
if (isLitElementLoosely(interfaceElement)) {
|
|
88
|
-
await interfaceElement.updateComplete;
|
|
89
|
-
}
|
|
90
|
-
else if ('componentOnReady' in interfaceElement) {
|
|
91
|
-
await interfaceElement.componentOnReady();
|
|
92
|
-
}
|
|
93
|
-
element.dispatchEvent(buildCustomEvent('atomic/searchBoxSuggestion/register', event));
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Checks if a search box suggestion element has no query.
|
|
98
|
-
*
|
|
99
|
-
* @param el - The search box suggestion element to check
|
|
100
|
-
* @returns True if the element has no query or the query is whitespace-only
|
|
101
|
-
*/
|
|
102
|
-
function elementHasNoQuery(el) {
|
|
103
|
-
return !el.query || el.query.trim() === '';
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Checks if a search box suggestion element has a query.
|
|
107
|
-
*
|
|
108
|
-
* @param el - The search box suggestion element to check
|
|
109
|
-
* @returns True if the element has a non-empty, non-whitespace query
|
|
110
|
-
*/
|
|
111
|
-
function elementHasQuery(el) {
|
|
112
|
-
return !!el.query && el.query.trim() !== '';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function getWindow() {
|
|
116
|
-
return window;
|
|
117
|
-
}
|
|
118
|
-
function getInitQueueNamespace() {
|
|
119
|
-
if (!getWindow().initQueueNamespace) {
|
|
120
|
-
getWindow().initQueueNamespace = {
|
|
121
|
-
eventQueueMap: new Map(),
|
|
122
|
-
parentReadyMap: new Map(),
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
return getWindow().initQueueNamespace;
|
|
126
|
-
}
|
|
127
|
-
function getEventQueueMap() {
|
|
128
|
-
return getInitQueueNamespace().eventQueueMap;
|
|
129
|
-
}
|
|
130
|
-
function getParentReadyMap() {
|
|
131
|
-
return getInitQueueNamespace().parentReadyMap;
|
|
132
|
-
}
|
|
133
|
-
function isParentReady(parent) {
|
|
134
|
-
const parentReadyMap = getParentReadyMap();
|
|
135
|
-
return parentReadyMap.get(parent) || false;
|
|
136
|
-
}
|
|
137
|
-
function queueEventForParent(parent, event, element) {
|
|
138
|
-
const eventQueueMap = getEventQueueMap();
|
|
139
|
-
if (!eventQueueMap.has(parent)) {
|
|
140
|
-
eventQueueMap.set(parent, []);
|
|
141
|
-
}
|
|
142
|
-
eventQueueMap.get(parent).push({ event, element });
|
|
143
|
-
}
|
|
144
|
-
function enqueueOrDispatchInitializationEvent(parent, event, element) {
|
|
145
|
-
if (isParentReady(parent)) {
|
|
146
|
-
element.dispatchEvent(event);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
queueEventForParent(parent, event, element);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Retrieves `Bindings` or `CommerceBindings` on a configured parent interface.
|
|
155
|
-
* @param event - The element on which to dispatch the event, which must be the child of a configured Atomic container element.
|
|
156
|
-
* @returns A promise that resolves upon initialization of the parent container element, and rejects otherwise.
|
|
157
|
-
*/
|
|
158
|
-
function fetchBindings(element) {
|
|
159
|
-
return new Promise((resolve, reject) => {
|
|
160
|
-
const event = buildCustomEvent(initializeEventName, (bindings) => resolve(bindings));
|
|
161
|
-
const parent = closest(element, initializableElements.join(', '));
|
|
162
|
-
if (!parent) {
|
|
163
|
-
reject(new MissingInterfaceParentError(element.nodeName.toLowerCase()));
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
enqueueOrDispatchInitializationEvent(parent, event, element);
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
class MissingInterfaceParentError extends Error {
|
|
170
|
-
constructor(elementName) {
|
|
171
|
-
super(`The "${elementName}" element must be the child of the following elements: ${initializableElements.join(', ')}`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
const initializableElements = [
|
|
175
|
-
'atomic-recs-interface',
|
|
176
|
-
'atomic-search-interface',
|
|
177
|
-
'atomic-commerce-interface',
|
|
178
|
-
'atomic-commerce-recommendation-interface',
|
|
179
|
-
'atomic-relevance-inspector',
|
|
180
|
-
'atomic-insight-interface',
|
|
181
|
-
'atomic-external',
|
|
182
|
-
];
|
|
183
|
-
const initializeEventName = 'atomic/initializeComponent';
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Binds the logging of document
|
|
187
|
-
* @returns An unbind function for the events
|
|
188
|
-
* @param engine A headless search engine instance.
|
|
189
|
-
* @param result The result object
|
|
190
|
-
* @param resultElement Parent result element
|
|
191
|
-
* @param selector Optional. Css selector that selects all links to the document. Default: "a" tags with the clickUri as "href" parameter.
|
|
192
|
-
*/
|
|
193
|
-
function bindLogDocumentOpenOnResult(engine, result, resultElement, selector) {
|
|
194
|
-
const interactiveResult = buildInteractiveResult(engine, {
|
|
195
|
-
options: { result },
|
|
196
|
-
});
|
|
197
|
-
const eventsMap = {
|
|
198
|
-
contextmenu: () => interactiveResult.select(),
|
|
199
|
-
click: () => interactiveResult.select(),
|
|
200
|
-
mouseup: () => interactiveResult.select(),
|
|
201
|
-
mousedown: () => interactiveResult.select(),
|
|
202
|
-
touchstart: () => interactiveResult.beginDelayedSelect(),
|
|
203
|
-
touchend: () => interactiveResult.cancelPendingSelect(),
|
|
204
|
-
};
|
|
205
|
-
const elements = resultElement.querySelectorAll(selector || 'a');
|
|
206
|
-
elements.forEach((element) => {
|
|
207
|
-
Object.keys(eventsMap).forEach((key) => element.addEventListener(key, eventsMap[key]));
|
|
208
|
-
});
|
|
209
|
-
return () => {
|
|
210
|
-
elements.forEach((element) => {
|
|
211
|
-
Object.keys(eventsMap).forEach((key) => element.removeEventListener(key, eventsMap[key]));
|
|
212
|
-
});
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export { MissingInterfaceParentError, bindLogDocumentOpenOnResult, dispatchSearchBoxSuggestionsEvent, elementHasNoQuery, elementHasQuery, fetchProductContext, fetchBindings as initializeBindings };
|
|
217
|
-
|
|
218
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/_loader.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { g as globalScripts, b as bootstrapLazy } from './app-globals-c5b073da.js';
|
|
2
|
-
export { s as setNonce } from './app-globals-c5b073da.js';
|
|
3
|
-
|
|
4
|
-
const defineCustomElements = async (win, options) => {
|
|
5
|
-
if (typeof window === 'undefined') return undefined;
|
|
6
|
-
await globalScripts();
|
|
7
|
-
return bootstrapLazy([], options);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export { defineCustomElements };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=loader.js.map
|