diff --git a/package-lock.json b/package-lock.json index b7d5628a93..f05bf985f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25748,17 +25748,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/core-js": { - "version": "3.37.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", - "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-compat": { "version": "3.37.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", @@ -53545,7 +53534,6 @@ "@popperjs/core": "^2.11.6", "@salesforce-ux/design-system": "^2.16.1", "@stencil/store": "2.0.16", - "core-js": "3.37.1", "dayjs": "1.11.12", "dompurify": "3.1.6", "escape-html": "1.0.3", diff --git a/packages/atomic/package.json b/packages/atomic/package.json index 6627093b5d..c461f41e24 100644 --- a/packages/atomic/package.json +++ b/packages/atomic/package.json @@ -71,7 +71,6 @@ "@popperjs/core": "^2.11.6", "@salesforce-ux/design-system": "^2.16.1", "@stencil/store": "2.0.16", - "core-js": "3.37.1", "dayjs": "1.11.12", "dompurify": "3.1.6", "escape-html": "1.0.3", diff --git a/packages/atomic/src/components/commerce/product-template/product-template-common.tsx b/packages/atomic/src/components/commerce/product-template/product-template-common.tsx index 35441c4870..880f7c12af 100644 --- a/packages/atomic/src/components/commerce/product-template/product-template-common.tsx +++ b/packages/atomic/src/components/commerce/product-template/product-template-common.tsx @@ -4,7 +4,7 @@ import { ProductTemplatesHelpers, } from '@coveo/headless/commerce'; import {h} from '@stencil/core'; -import 'core-js/actual/set'; +import {intersection} from '../../../utils/set'; import {aggregate, isElementNode, isVisualNode} from '../../../utils/utils'; import {ItemTarget} from '../../common/layout/display-options'; import {isResultSectionNode} from '../../common/layout/sections'; @@ -179,7 +179,7 @@ export function makeMatchConditions( if (mustNotMatch[field]) { const mustNotMatchValues = new Set(mustNotMatch[field]); const mustMatchValues = new Set(mustMatch[field]); - const commonValues = mustMatchValues.intersection(mustNotMatchValues); + const commonValues = intersection(mustNotMatchValues, mustMatchValues); if (commonValues.size > 0) { console.error( `Conflicting match conditions for field ${field}, the template will be ignored.`, diff --git a/packages/atomic/src/utils/set.ts b/packages/atomic/src/utils/set.ts new file mode 100644 index 0000000000..fb6e1d1cd1 --- /dev/null +++ b/packages/atomic/src/utils/set.ts @@ -0,0 +1,10 @@ +// TODO: Replace by Set.prototype.intersection in July 2025 +export function intersection(setA: Set, setB: Set): Set { + const result = new Set(); + for (const elem of setA) { + if (setB.has(elem)) { + result.add(elem); + } + } + return result; +} diff --git a/packages/atomic/tsconfig.stencil.json b/packages/atomic/tsconfig.stencil.json index a0896969c2..939589d9d3 100644 --- a/packages/atomic/tsconfig.stencil.json +++ b/packages/atomic/tsconfig.stencil.json @@ -4,7 +4,7 @@ "allowSyntheticDefaultImports": true, "declaration": false, "experimentalDecorators": true, - "lib": ["dom", "ES2023", "ESNext.Collection"], + "lib": ["dom", "ES2023"], "moduleResolution": "Bundler", "module": "ES2022", "target": "ES2021",