@sonic-equipment/ui 219.0.0 → 221.0.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/dist/algolia/algolia-search-provider.js +7 -5
- package/dist/algolia/algolia-sonic-searchclient.js +2 -2
- package/dist/algolia/use-algolia-insights.d.ts +7 -0
- package/dist/algolia/use-algolia-insights.js +45 -7
- package/dist/algolia/use-algolia-search.d.ts +2 -1
- package/dist/buttons/favorite/connected-favorite-button.d.ts +1 -1
- package/dist/buttons/favorite/connected-favorite-button.js +0 -2
- package/dist/cards/product-card/product-card.js +5 -2
- package/dist/exports.d.ts +1 -0
- package/dist/global-search/plugins/categories-plugin.d.ts +1 -1
- package/dist/global-search/plugins/categories-plugin.js +1 -1
- package/dist/global-search/plugins/popular-categories-plugin.d.ts +1 -1
- package/dist/global-search/plugins/popular-categories-plugin.js +1 -1
- package/dist/global-search/plugins/popular-searches-plugin.d.ts +1 -1
- package/dist/global-search/plugins/popular-searches-plugin.js +1 -1
- package/dist/global-search/plugins/query-suggestions-plugin.d.ts +1 -1
- package/dist/global-search/plugins/query-suggestions-plugin.js +1 -1
- package/dist/global-search/plugins/quick-access-plugin.d.ts +1 -1
- package/dist/global-search/plugins/quick-access-plugin.js +1 -1
- package/dist/global-search/plugins/recent-searches-plugin.d.ts +1 -1
- package/dist/global-search/plugins/recent-searches-plugin.js +2 -1
- package/dist/global-search/search-highlight/highlight.d.ts +1 -1
- package/dist/global-search/search-highlight/highlight.js +1 -1
- package/dist/global-search/types.d.ts +3 -1
- package/dist/header/buttons/account/connected-account-button.js +1 -1
- package/dist/index.js +2 -1
- package/dist/intl/translation-id.d.ts +1 -1
- package/dist/navigation/quick-access-menu/quick-access-menu.d.ts +2 -1
- package/dist/navigation/quick-access-menu/quick-access-menu.js +2 -2
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/checkOptions.js +7 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js +109 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/createStore.js +31 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js +51 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js +12 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js +135 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js +355 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/metadata.js +44 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/onInput.js +148 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js +202 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/reshape.js +48 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/resolve.js +119 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js +149 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js +50 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js +42 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js +38 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js +79 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getAutocompleteElementId.js +12 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getNativeEvent.js +5 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js +31 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js +53 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/getPluginSubmitPromise.js +39 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js +5 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js +6 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-core@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js +25 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-js@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js +16 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-js@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js +12 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-js@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0_search-insights@2.17.3/node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js +8 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js +252 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js +16 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js +209 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js +18 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js +5 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-algolia-insights@1.19.2_@algolia_client-search@4.24.0_algoliasea_57b3nqmtgbeobm4sw3iw2qdpxy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js +25 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-query-suggestions@1.19.2_@algolia_client-search@4.24.0_algoliase_q33j3oaxy2utuyscyksb32r6mu/node_modules/@algolia/autocomplete-plugin-query-suggestions/dist/esm/constants.js +7 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-query-suggestions@1.19.2_@algolia_client-search@4.24.0_algoliase_q33j3oaxy2utuyscyksb32r6mu/node_modules/@algolia/autocomplete-plugin-query-suggestions/dist/esm/createQuerySuggestionsPlugin.js +118 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-query-suggestions@1.19.2_@algolia_client-search@4.24.0_algoliase_q33j3oaxy2utuyscyksb32r6mu/node_modules/@algolia/autocomplete-plugin-query-suggestions/dist/esm/getTemplates.js +64 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/addHighlightedAttribute.js +21 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/constants.js +10 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/createLocalStorage.js +36 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/createLocalStorageRecentSearchesPlugin.js +49 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/createRecentSearchesPlugin.js +137 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/createStorageApi.js +16 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/getLocalStorage.js +33 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/getTemplates.js +72 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-plugin-recent-searches@1.19.2_@algolia_client-search@4.24.0_algoliasear_fyqsds3bt3rvcvjy7dxjzgxvaa/node_modules/@algolia/autocomplete-plugin-recent-searches/dist/esm/search.js +25 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js +4 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js +25 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js +51 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createAlgoliaRequester.js +6 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createRequester.js +37 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/getAlgoliaResults.js +19 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js +69 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-preset-algolia@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js +16 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js +7 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js +16 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/decycle.js +34 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js +7 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js +6 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js +7 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js +10 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/invariant.js +15 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js +26 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/noop.js +3 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js +13 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js +8 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/version.js +3 -0
- package/dist/node_modules/.pnpm/@algolia_autocomplete-shared@1.19.2_@algolia_client-search@4.24.0_algoliasearch@4.24.0/node_modules/@algolia/autocomplete-shared/dist/esm/warn.js +26 -0
- package/dist/pages/account/sign-in-page/sign-in-page.js +1 -1
- package/dist/pages/my-sonic/layouts/my-sonic-layout/my-sonic-layout-page.d.ts +1 -1
- package/dist/pages/my-sonic/layouts/my-sonic-layout/my-sonic-layout-page.js +1 -1
- package/dist/pages/my-sonic/pages/favorites/favorites-page.js +26 -1
- package/dist/shared/api/bff/hooks/use-fetch-favorites.d.ts +2 -0
- package/dist/shared/api/bff/hooks/use-fetch-favorites.js +29 -0
- package/dist/shared/api/storefront/hooks/wishlist/use-add-wishlist-item-to-current-wishlist.js +5 -12
- package/dist/shared/api/storefront/hooks/wishlist/use-add-wishlist-item-to-wishlist.js +6 -9
- package/dist/shared/api/storefront/hooks/wishlist/use-delete-wishlist-item-from-wishlist.js +4 -7
- package/dist/shared/api/storefront/hooks/wishlist/use-fetch-all-wishlists-items.js +10 -20
- package/dist/shared/api/storefront/services/wishlist-service.d.ts +4 -1
- package/dist/shared/api/storefront/services/wishlist-service.js +16 -1
- package/dist/shared/utils/uuid.js +1 -1
- package/dist/styles.css +6 -6
- package/package.json +1 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throws an error if the condition is not met in development mode.
|
|
3
|
+
* This is used to make development a better experience to provide guidance as
|
|
4
|
+
* to where the error comes from.
|
|
5
|
+
*/
|
|
6
|
+
function invariant(condition, message) {
|
|
7
|
+
if (!(process.env.NODE_ENV !== 'production')) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (!condition) {
|
|
11
|
+
throw new Error("[Autocomplete] ".concat(typeof message === 'function' ? message() : message));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { invariant };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function isPrimitive(obj) {
|
|
2
|
+
return obj !== Object(obj);
|
|
3
|
+
}
|
|
4
|
+
function isEqual(first, second) {
|
|
5
|
+
if (first === second) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {
|
|
9
|
+
return first === second;
|
|
10
|
+
}
|
|
11
|
+
if (Object.keys(first).length !== Object.keys(second).length) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {
|
|
15
|
+
var key = _Object$keys[_i];
|
|
16
|
+
if (!(key in second)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
if (!isEqual(first[key], second[key])) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { isEqual };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safely runs code meant for browser environments only.
|
|
3
|
+
*/
|
|
4
|
+
function safelyRunOnBrowser(callback) {
|
|
5
|
+
if (typeof window !== 'undefined') {
|
|
6
|
+
return callback({
|
|
7
|
+
window: window
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { safelyRunOnBrowser };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var warnCache = {
|
|
2
|
+
current: {}
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Logs a warning if the condition is not met.
|
|
7
|
+
* This is used to log issues in development environment only.
|
|
8
|
+
*/
|
|
9
|
+
function warn(condition, message) {
|
|
10
|
+
if (!(process.env.NODE_ENV !== 'production')) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (condition) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
var sanitizedMessage = message.trim();
|
|
17
|
+
var hasAlreadyPrinted = warnCache.current[sanitizedMessage];
|
|
18
|
+
if (!hasAlreadyPrinted) {
|
|
19
|
+
warnCache.current[sanitizedMessage] = true;
|
|
20
|
+
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
console.warn("[Autocomplete] ".concat(sanitizedMessage));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { warn, warnCache };
|
|
@@ -36,7 +36,7 @@ function SignInPage({ returnUrl } = {}) {
|
|
|
36
36
|
setIsSuccess(true);
|
|
37
37
|
navigate(returnUrl || paths.HOME, { reload: true });
|
|
38
38
|
};
|
|
39
|
-
const allowGuestSignIn = returnUrl === paths.CHECKOUT_SHIPPING;
|
|
39
|
+
const allowGuestSignIn = returnUrl?.toLowerCase() === paths.CHECKOUT_SHIPPING.toLowerCase();
|
|
40
40
|
const createAccountPath = `${paths.ACCOUNT_CREATE}${returnUrl ? `?returnUrl=${encodeURIComponent(returnUrl)}` : ''}`;
|
|
41
41
|
const onSubmit = ({ data }) => {
|
|
42
42
|
resetSignIn();
|
|
@@ -4,7 +4,7 @@ import { MySonicLayoutMain } from './my-sonic-layout-main.js';
|
|
|
4
4
|
import { MySonicLayoutTitle } from './my-sonic-layout-title.js';
|
|
5
5
|
|
|
6
6
|
function MySonicLayoutPage({ children, title, }) {
|
|
7
|
-
return (jsxs(Fragment, { children: [jsx(MySonicLayoutTitle, { children: title }), jsx(MySonicLayoutMain, { children: children })] }));
|
|
7
|
+
return (jsxs(Fragment, { children: [title && jsx(MySonicLayoutTitle, { children: title }), jsx(MySonicLayoutMain, { children: children })] }));
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export { MySonicLayoutPage };
|
|
@@ -1,14 +1,39 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useAlgoliaInsights } from '../../../../algolia/use-algolia-insights.js';
|
|
3
4
|
import { Breadcrumb } from '../../../../breadcrumbs/breadcrumb.js';
|
|
5
|
+
import { ConnectedProductCard } from '../../../../cards/product-card/connected-product-card.js';
|
|
4
6
|
import { useFormattedMessage } from '../../../../intl/use-formatted-message.js';
|
|
7
|
+
import { ProductOverviewGrid } from '../../../../lists/product-overview-grid/product-overview-grid.js';
|
|
8
|
+
import { useFetchFavorites } from '../../../../shared/api/bff/hooks/use-fetch-favorites.js';
|
|
5
9
|
import { usePaths } from '../../../../shared/routing/use-paths.js';
|
|
10
|
+
import { ErrorPage } from '../../../error-page/error-page.js';
|
|
6
11
|
import { MySonicLayoutBreadcrumb } from '../../layouts/my-sonic-layout/my-sonic-layout-breadcrumb.js';
|
|
7
12
|
import { MySonicLayoutPage } from '../../layouts/my-sonic-layout/my-sonic-layout-page.js';
|
|
8
13
|
|
|
9
14
|
function FavoritesPage() {
|
|
10
15
|
const t = useFormattedMessage();
|
|
11
|
-
|
|
16
|
+
const { data: favorites, error, isFetching, isLoading } = useFetchFavorites();
|
|
17
|
+
const { sendAddToCartFromFavoritesPageEvent, sendProductClickFromFavoritesPageEvent, } = useAlgoliaInsights();
|
|
18
|
+
if (error)
|
|
19
|
+
return (jsx(MySonicLayoutPage, { children: jsx(ErrorPage, { error: error }) }));
|
|
20
|
+
return (jsx(MySonicLayoutPage, { title: t('Favorites'), children: (favorites && favorites.length > 0) || isFetching ? (jsx(ProductOverviewGrid, { isLoading: isLoading, children: favorites?.map(favorite => (jsx(ConnectedProductCard, { href: favorite.storefrontSlug, id: favorite.storefrontId, image: {
|
|
21
|
+
fit: 'contain',
|
|
22
|
+
image: favorite.image,
|
|
23
|
+
title: favorite.name,
|
|
24
|
+
}, onAddToCart: ({ cartLine }) => sendAddToCartFromFavoritesPageEvent({
|
|
25
|
+
cartLine,
|
|
26
|
+
}), onClick: () => {
|
|
27
|
+
sendProductClickFromFavoritesPageEvent({
|
|
28
|
+
objectId: favorite.objectId,
|
|
29
|
+
position: favorite.position,
|
|
30
|
+
});
|
|
31
|
+
}, price: {
|
|
32
|
+
currencyCode: favorite.currencyCode,
|
|
33
|
+
isVatIncluded: favorite.isVatIncluded,
|
|
34
|
+
originalPrice: favorite.originalPrice,
|
|
35
|
+
price: favorite.price,
|
|
36
|
+
}, sku: favorite.id, tags: favorite.labels, title: favorite.name }, favorite.storefrontId))) })) : (jsx("p", { children: t('You have no favorite products yet.') })) }));
|
|
12
37
|
}
|
|
13
38
|
function FavoritesPageBreadcrumb() {
|
|
14
39
|
const t = useFormattedMessage();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { useAlgoliaSearch } from '../../../../algolia/use-algolia-search.js';
|
|
3
|
+
import { transformAlgoliaProductHitToProductHit } from '../../../model/hit.js';
|
|
4
|
+
import { fetchAllWishListsItems } from '../../storefront/services/wishlist-service.js';
|
|
5
|
+
|
|
6
|
+
function useFetchFavorites() {
|
|
7
|
+
const { indexes, searchClient } = useAlgoliaSearch();
|
|
8
|
+
return useQuery({
|
|
9
|
+
placeholderData: prev => prev,
|
|
10
|
+
queryFn: async () => {
|
|
11
|
+
const wishListLines = await fetchAllWishListsItems();
|
|
12
|
+
const filters = wishListLines
|
|
13
|
+
.map(({ wishListItem }) => wishListItem.erpNumber)
|
|
14
|
+
.map(objectID => `objectID:${objectID}`)
|
|
15
|
+
.join(' OR ');
|
|
16
|
+
if (!filters)
|
|
17
|
+
return [];
|
|
18
|
+
const searchIndex = searchClient.initIndex(indexes.default);
|
|
19
|
+
const { hits } = await searchIndex.search('', {
|
|
20
|
+
filters,
|
|
21
|
+
hitsPerPage: 999,
|
|
22
|
+
});
|
|
23
|
+
return hits.map(transformAlgoliaProductHitToProductHit);
|
|
24
|
+
},
|
|
25
|
+
queryKey: ['wishlists', 'wishlistlines', 'favorites'],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { useFetchFavorites };
|
package/dist/shared/api/storefront/hooks/wishlist/use-add-wishlist-item-to-current-wishlist.js
CHANGED
|
@@ -12,22 +12,15 @@ function useAddWishListItemToCurrentWishList() {
|
|
|
12
12
|
wishList = await createWishList();
|
|
13
13
|
queryClient.setQueryData(['wishlists'], [...wishLists, wishList]);
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
await addWishListItemToWishList({
|
|
16
16
|
productId,
|
|
17
17
|
wishListId: wishList.id,
|
|
18
18
|
});
|
|
19
|
-
const wishListLines = queryClient.getQueryData(['wishlistlines']) || [];
|
|
20
|
-
queryClient.setQueryData(['wishlistlines'], [
|
|
21
|
-
...wishListLines,
|
|
22
|
-
{
|
|
23
|
-
wishList,
|
|
24
|
-
wishListItem,
|
|
25
|
-
},
|
|
26
|
-
]);
|
|
27
19
|
},
|
|
28
|
-
|
|
29
|
-
queryClient.invalidateQueries({
|
|
30
|
-
|
|
20
|
+
onSettled() {
|
|
21
|
+
queryClient.invalidateQueries({
|
|
22
|
+
queryKey: ['wishlists', 'wishlistlines'],
|
|
23
|
+
});
|
|
31
24
|
},
|
|
32
25
|
});
|
|
33
26
|
}
|
|
@@ -14,18 +14,15 @@ function useAddWishListItemToWishList() {
|
|
|
14
14
|
const wishList = wishLists.find(wishList => wishList.id === wishListId);
|
|
15
15
|
if (!wishList)
|
|
16
16
|
throw new Error(`Wish list with id ${wishListId} not found`);
|
|
17
|
-
|
|
17
|
+
await addWishListItemToWishList({
|
|
18
18
|
productId,
|
|
19
19
|
wishListId,
|
|
20
20
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
wishListItem,
|
|
27
|
-
},
|
|
28
|
-
]);
|
|
21
|
+
},
|
|
22
|
+
onSettled() {
|
|
23
|
+
queryClient.invalidateQueries({
|
|
24
|
+
queryKey: ['wishlists', 'wishlistlines'],
|
|
25
|
+
});
|
|
29
26
|
},
|
|
30
27
|
});
|
|
31
28
|
}
|
|
@@ -7,14 +7,11 @@ function useDeleteWishListItemFromWishList() {
|
|
|
7
7
|
return useMutation({
|
|
8
8
|
mutationFn: async ({ wishListId, wishListItemId }) => {
|
|
9
9
|
await deleteWishListItemFromWishList({ wishListId, wishListItemId });
|
|
10
|
-
const wishListLines = queryClient.getQueryData(['wishlistlines']) || [];
|
|
11
|
-
if (wishListLines.some(item => item.wishListItem.id === wishListItemId)) {
|
|
12
|
-
queryClient.setQueryData(['wishlistlines'], wishListLines.filter(line => line.wishListItem.id !== wishListItemId));
|
|
13
|
-
}
|
|
14
10
|
},
|
|
15
|
-
|
|
16
|
-
queryClient.invalidateQueries({
|
|
17
|
-
|
|
11
|
+
onSettled() {
|
|
12
|
+
queryClient.invalidateQueries({
|
|
13
|
+
queryKey: ['wishlists', 'wishlistlines'],
|
|
14
|
+
});
|
|
18
15
|
},
|
|
19
16
|
});
|
|
20
17
|
}
|
|
@@ -1,34 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQueryClient, useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { TIME } from '../../../../utils/time.js';
|
|
4
|
-
import {
|
|
4
|
+
import { fetchAllWishListsItems } from '../../services/wishlist-service.js';
|
|
5
5
|
|
|
6
6
|
function useFetchAllWishListsItems({ enabled = true } = { enabled: true }) {
|
|
7
7
|
const queryClient = useQueryClient();
|
|
8
8
|
return useQuery({
|
|
9
9
|
enabled,
|
|
10
10
|
gcTime: 15 * TIME.MINUTE,
|
|
11
|
+
placeholderData: prev => prev,
|
|
11
12
|
queryFn: async () => {
|
|
12
|
-
let wishLists =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
if (wishLists.length === 0)
|
|
21
|
-
return [];
|
|
22
|
-
const wishListLines = await Promise.all(wishLists.map(async (wishList) => {
|
|
23
|
-
return ((await getWishListItemsByWishListId({ wishListId: wishList.id }))
|
|
24
|
-
.wishListLines || []).map(wishListItem => ({
|
|
25
|
-
wishList,
|
|
26
|
-
wishListItem,
|
|
27
|
-
}));
|
|
28
|
-
}));
|
|
29
|
-
return wishListLines.flat();
|
|
13
|
+
let wishLists = queryClient.getQueryData(['wishlists']);
|
|
14
|
+
const results = await fetchAllWishListsItems(wishLists && { wishListCollection: wishLists });
|
|
15
|
+
if (wishLists && wishLists.length > 0)
|
|
16
|
+
return results;
|
|
17
|
+
wishLists = Object.values(results.reduce((map, { wishList }) => ({ ...map, [wishList.id]: wishList }), {}));
|
|
18
|
+
queryClient.setQueryData(['wishlists'], wishLists);
|
|
19
|
+
return results;
|
|
30
20
|
},
|
|
31
|
-
queryKey: ['wishlistlines'],
|
|
21
|
+
queryKey: ['wishlists', 'wishlistlines'],
|
|
32
22
|
staleTime: 15 * TIME.MINUTE,
|
|
33
23
|
});
|
|
34
24
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WishListCollectionModel, WishListLineCollectionModel, WishListLineModel, WishListModel } from '../model/storefront.model';
|
|
1
|
+
import { WishListCollectionModel, WishListLineCollectionModel, WishListLineModel, WishListLines, WishListModel } from '../model/storefront.model';
|
|
2
2
|
export declare function getWishList({ wishListId, }: {
|
|
3
3
|
wishListId: string;
|
|
4
4
|
}): Promise<WishListModel>;
|
|
@@ -23,3 +23,6 @@ export declare function deleteWishListItemFromWishList({ wishListId, wishListIte
|
|
|
23
23
|
export declare function getWishListItemsByWishListId({ wishListId, }: {
|
|
24
24
|
wishListId: string;
|
|
25
25
|
}): Promise<WishListLineCollectionModel>;
|
|
26
|
+
export declare function fetchAllWishListsItems(currentWishLists?: {
|
|
27
|
+
wishListCollection?: WishListModel[];
|
|
28
|
+
}): Promise<WishListLines>;
|
|
@@ -68,5 +68,20 @@ async function getWishListItemsByWishListId({ wishListId, }) {
|
|
|
68
68
|
});
|
|
69
69
|
return body;
|
|
70
70
|
}
|
|
71
|
+
async function fetchAllWishListsItems(currentWishLists) {
|
|
72
|
+
const { wishListCollection: wishLists } = currentWishLists || (await getWishLists());
|
|
73
|
+
if (!wishLists || wishLists.length === 0)
|
|
74
|
+
return [];
|
|
75
|
+
const wishListLines = await Promise.all(wishLists.map(async (wishList) => {
|
|
76
|
+
const { wishListLines } = await getWishListItemsByWishListId({
|
|
77
|
+
wishListId: wishList.id,
|
|
78
|
+
});
|
|
79
|
+
return (wishListLines?.map((wishListItem) => ({
|
|
80
|
+
wishList,
|
|
81
|
+
wishListItem,
|
|
82
|
+
})) || []);
|
|
83
|
+
}));
|
|
84
|
+
return wishListLines.flat();
|
|
85
|
+
}
|
|
71
86
|
|
|
72
|
-
export { WishListNameAlreadyExistsError, addWishListItemToWishList, createWishList, deleteWishList, deleteWishListItemFromWishList, getWishList, getWishListItemsByWishListId, getWishLists };
|
|
87
|
+
export { WishListNameAlreadyExistsError, addWishListItemToWishList, createWishList, deleteWishList, deleteWishListItemFromWishList, fetchAllWishListsItems, getWishList, getWishListItemsByWishListId, getWishLists };
|
|
@@ -12,7 +12,7 @@ function createUUID() {
|
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
14
|
function isUUID(value) {
|
|
15
|
-
return /^[\da-f]{8}
|
|
15
|
+
return /^[\da-f]{8}(?:-[\da-f]{4}){2}-[89ab][\da-f]{3}-[\da-f]{12}$/.test(value);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export { createUUID, isUUID };
|
package/dist/styles.css
CHANGED
|
@@ -1105,11 +1105,11 @@ html {
|
|
|
1105
1105
|
outline-offset: var(--focus-outline-offset);
|
|
1106
1106
|
}
|
|
1107
1107
|
|
|
1108
|
-
.button-module-V4meK .button-module-XaNWz {
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1108
|
+
.button-module-V4meK .button-module-XaNWz svg {
|
|
1109
|
+
display: block;
|
|
1110
|
+
width: 24px;
|
|
1111
|
+
height: 24px;
|
|
1112
|
+
}
|
|
1113
1113
|
|
|
1114
1114
|
.button-module-V4meK .button-module-ydQAo {
|
|
1115
1115
|
block-size: 0.7em;
|
|
@@ -7696,7 +7696,7 @@ button.swiper-pagination-bullet {
|
|
|
7696
7696
|
left: 0;
|
|
7697
7697
|
width: 100%;
|
|
7698
7698
|
box-sizing: border-box;
|
|
7699
|
-
padding: 16px var(--padding-inline);
|
|
7699
|
+
padding: 16px calc(2 * var(--padding-inline));
|
|
7700
7700
|
margin: auto;
|
|
7701
7701
|
background-color: var(--color-white);
|
|
7702
7702
|
}
|