@coveo/atomic 3.28.0-pre.d7a2bdbfed → 3.28.0-pre.df6c8a3eb3

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 (71) hide show
  1. package/dist/atomic/_atomic.esm.js +1 -1
  2. package/dist/atomic/components/atomic-product-description.js +1 -1
  3. package/dist/atomic/components/atomic-product-description.js.map +1 -1
  4. package/dist/atomic/components/atomic-product-excerpt.js +1 -1
  5. package/dist/atomic/components/atomic-product-excerpt.js.map +1 -1
  6. package/dist/atomic/components/global/environment.js +1 -1
  7. package/dist/atomic/components/interface-common-stencil.js +1 -1
  8. package/dist/atomic/components/{expandable-text.js → stencil-expandable-text.js} +1 -1
  9. package/dist/atomic/components/stencil-expandable-text.js.map +1 -0
  10. package/dist/atomic/{p-de00bdd6.js → p-1d02a670.js} +1 -1
  11. package/dist/atomic/p-1d02a670.js.map +1 -0
  12. package/dist/atomic/{p-be05ddd0.entry.js → p-3cc601ad.entry.js} +2 -2
  13. package/dist/atomic/p-5e73a3e8.js +2 -0
  14. package/dist/atomic/{p-7cb3144b.js → p-7ed31f46.js} +2 -2
  15. package/dist/atomic/{p-1cb6a01c.entry.js → p-ba6a30a7.entry.js} +2 -2
  16. package/dist/atomic/p-ba6a30a7.entry.js.map +1 -0
  17. package/dist/atomic/{p-b3604b54.entry.js → p-bd32ca3c.entry.js} +2 -2
  18. package/dist/atomic/p-bd32ca3c.entry.js.map +1 -0
  19. package/dist/atomic/{p-e80d722f.entry.js → p-c0b3720d.entry.js} +2 -2
  20. package/dist/atomic/{p-9e4b1ecb.entry.js → p-e46517e9.entry.js} +2 -2
  21. package/dist/atomic/{p-6fa077f7.entry.js → p-f68cee5d.entry.js} +2 -2
  22. package/dist/cjs/{analytics-config-d9450484.js → analytics-config-f82932e2.js} +2 -2
  23. package/dist/cjs/{analytics-config-d9450484.js.map → analytics-config-f82932e2.js.map} +1 -1
  24. package/dist/cjs/atomic-commerce-recommendation-interface.cjs.entry.js +1 -1
  25. package/dist/cjs/atomic-insight-interface.cjs.entry.js +2 -2
  26. package/dist/cjs/atomic-product-description.cjs.entry.js +2 -2
  27. package/dist/cjs/atomic-product-description.cjs.entry.js.map +1 -1
  28. package/dist/cjs/atomic-product-excerpt.cjs.entry.js +2 -2
  29. package/dist/cjs/atomic-product-excerpt.cjs.entry.js.map +1 -1
  30. package/dist/cjs/atomic-recs-interface.cjs.entry.js +2 -2
  31. package/dist/cjs/atomic-search-interface.cjs.entry.js +2 -2
  32. package/dist/cjs/{interface-common-stencil-12a85cad.js → interface-common-stencil-98f073f6.js} +2 -2
  33. package/dist/cjs/{interface-common-stencil-12a85cad.js.map → interface-common-stencil-98f073f6.js.map} +1 -1
  34. package/dist/cjs/{expandable-text-36fe9f8d.js → stencil-expandable-text-80915f74.js} +1 -1
  35. package/dist/cjs/stencil-expandable-text-80915f74.js.map +1 -0
  36. package/dist/cjs/version.cjs.js +1 -1
  37. package/dist/esm/{analytics-config-40a361c2.js → analytics-config-253004a0.js} +2 -2
  38. package/dist/esm/{analytics-config-40a361c2.js.map → analytics-config-253004a0.js.map} +1 -1
  39. package/dist/esm/atomic-commerce-recommendation-interface.entry.js +1 -1
  40. package/dist/esm/atomic-insight-interface.entry.js +2 -2
  41. package/dist/esm/atomic-product-description.entry.js +1 -1
  42. package/dist/esm/atomic-product-description.entry.js.map +1 -1
  43. package/dist/esm/atomic-product-excerpt.entry.js +1 -1
  44. package/dist/esm/atomic-product-excerpt.entry.js.map +1 -1
  45. package/dist/esm/atomic-recs-interface.entry.js +2 -2
  46. package/dist/esm/atomic-search-interface.entry.js +2 -2
  47. package/dist/esm/{interface-common-stencil-0c6e5ba8.js → interface-common-stencil-4bb4d80c.js} +2 -2
  48. package/dist/esm/{interface-common-stencil-0c6e5ba8.js.map → interface-common-stencil-4bb4d80c.js.map} +1 -1
  49. package/dist/esm/{expandable-text-4eebe177.js → stencil-expandable-text-957d599c.js} +1 -1
  50. package/dist/esm/stencil-expandable-text-957d599c.js.map +1 -0
  51. package/dist/esm/version.js +1 -1
  52. package/dist/types/components/commerce/atomic-product-description/atomic-product-description.d.ts +1 -1
  53. package/dist/types/components/commerce/atomic-product-excerpt/atomic-product-excerpt.d.ts +1 -1
  54. package/dist/types/components/common/expandable-text/expandable-text.d.ts +4 -4
  55. package/dist/types/components/common/expandable-text/stencil-expandable-text.d.ts +13 -0
  56. package/dist/types/components.d.ts +2 -2
  57. package/docs/atomic-docs.json +7 -7
  58. package/package.json +1 -1
  59. package/dist/atomic/components/expandable-text.js.map +0 -1
  60. package/dist/atomic/p-1cb6a01c.entry.js.map +0 -1
  61. package/dist/atomic/p-b3604b54.entry.js.map +0 -1
  62. package/dist/atomic/p-de00bdd6.js.map +0 -1
  63. package/dist/atomic/p-fccb1769.js +0 -2
  64. package/dist/cjs/expandable-text-36fe9f8d.js.map +0 -1
  65. package/dist/esm/expandable-text-4eebe177.js.map +0 -1
  66. /package/dist/atomic/{p-be05ddd0.entry.js.map → p-3cc601ad.entry.js.map} +0 -0
  67. /package/dist/atomic/{p-fccb1769.js.map → p-5e73a3e8.js.map} +0 -0
  68. /package/dist/atomic/{p-7cb3144b.js.map → p-7ed31f46.js.map} +0 -0
  69. /package/dist/atomic/{p-e80d722f.entry.js.map → p-c0b3720d.entry.js.map} +0 -0
  70. /package/dist/atomic/{p-9e4b1ecb.entry.js.map → p-e46517e9.entry.js.map} +0 -0
  71. /package/dist/atomic/{p-6fa077f7.entry.js.map → p-f68cee5d.entry.js.map} +0 -0
@@ -35,4 +35,4 @@ const ExpandableText = ({ isExpanded, isTruncated, truncateAfter, onToggleExpand
35
35
 
36
36
  exports.ExpandableText = ExpandableText;
37
37
 
38
- //# sourceMappingURL=expandable-text-36fe9f8d.js.map
38
+ //# sourceMappingURL=stencil-expandable-text-80915f74.js.map
@@ -0,0 +1 @@
1
+ {"file":"stencil-expandable-text-80915f74.js","mappings":";;;;;;AAiBA,MAAM,iBAAiB,GAAG,CAAC,aAA4B;IACrD,MAAM,YAAY,GAAkC;QAClD,IAAI,EAAE,iBAAiB;QACvB,CAAC,EAAE,cAAc;QACjB,CAAC,EAAE,cAAc;QACjB,CAAC,EAAE,cAAc;QACjB,CAAC,EAAE,cAAc;KAClB,CAAC;IACF,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,UAAmB,EACnB,WAAoB,EACpB,aAAsB,EACtB,cAAwC,EACxC,aAAqB,EACrB,aAAqB;IAErB,IAAI,WAAW,GAAG,0DAA0D,CAAC;IAC7E,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE;QAC/B,WAAW,IAAI,YAAY,CAAC;KAC7B;SAAM,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;QACvD,WAAW,IAAI,SAAS,CAAC;KAC1B;IAED,MAAM,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;IAEzD,QACEA,QAACC,oBAAM,IACL,KAAK,EAAC,cAAc,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,cAAc;QAEvBD,yBACE,IAAI,EAAE,UAAU,GAAGE,cAAS,GAAGC,aAAQ,EACvC,KAAK,EAAC,yBAAyB,GAClB;QACd,KAAK,CACC,EACT;AACJ,CAAC,CAAC;MAEW,cAAc,GAA6C,CACtE,EACE,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,GAAG,KAAK,GACtB,EACD,QAAQ;IAER,QACEH,iBAAK,KAAK,EAAC,2BAA2B;QACpCA,iBACE,IAAI,EAAC,iBAAiB,EACtB,KAAK,EAAE,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,aAAa,EAAE,IAEzG,QAAQ,CACL;QACL,oBAAoB,CACnB,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,CACd,CACG,EACN;AACJ;;;;","names":["h","Button","MinusIcon","PlusIcon"],"sources":["src/components/common/expandable-text/stencil-expandable-text.tsx"],"sourcesContent":["import {FunctionalComponent, h} from '@stencil/core';\nimport MinusIcon from '../../../images/minus.svg';\nimport PlusIcon from '../../../images/plus.svg';\nimport {Button} from '../stencil-button';\n\nexport type TruncateAfter = 'none' | '1' | '2' | '3' | '4';\n\ninterface ExpandableTextProps {\n isExpanded: boolean;\n isTruncated: boolean;\n isCollapsible?: boolean;\n truncateAfter: TruncateAfter;\n onToggleExpand: (e: MouseEvent | undefined) => void;\n showMoreLabel: string;\n showLessLabel: string;\n}\n\nconst getLineClampClass = (truncateAfter: TruncateAfter) => {\n const lineClampMap: Record<TruncateAfter, string> = {\n none: 'line-clamp-none',\n 1: 'line-clamp-1',\n 2: 'line-clamp-2',\n 3: 'line-clamp-3',\n 4: 'line-clamp-4',\n };\n return lineClampMap[truncateAfter] || 'line-clamp-2';\n};\n\nconst renderShowHideButton = (\n isExpanded: boolean,\n isTruncated: boolean,\n isCollapsible: boolean,\n onToggleExpand: (e?: MouseEvent) => void,\n showMoreLabel: string,\n showLessLabel: string\n) => {\n let buttonClass = 'expandable-text-button p-1 text-xs leading-[calc(1/.75)]';\n if (!isTruncated && !isExpanded) {\n buttonClass += ' invisible';\n } else if (!isCollapsible && !isTruncated && isExpanded) {\n buttonClass += ' hidden';\n }\n\n const label = isExpanded ? showLessLabel : showMoreLabel;\n\n return (\n <Button\n style=\"text-primary\"\n class={buttonClass}\n title={label}\n onClick={onToggleExpand}\n >\n <atomic-icon\n icon={isExpanded ? MinusIcon : PlusIcon}\n class=\"mx-1 w-2 align-baseline\"\n ></atomic-icon>\n {label}\n </Button>\n );\n};\n\nexport const ExpandableText: FunctionalComponent<ExpandableTextProps> = (\n {\n isExpanded,\n isTruncated,\n truncateAfter,\n onToggleExpand,\n showMoreLabel,\n showLessLabel,\n isCollapsible = false,\n },\n children\n) => {\n return (\n <div class=\"flex flex-col items-start\">\n <div\n part=\"expandable-text\"\n class={`expandable-text ${!isExpanded ? getLineClampClass(truncateAfter) : ''} min-lines-${truncateAfter}`}\n >\n {children}\n </div>\n {renderShowHideButton(\n isExpanded,\n isTruncated,\n isCollapsible,\n onToggleExpand,\n showMoreLabel,\n showLessLabel\n )}\n </div>\n );\n};\n"],"version":3}
@@ -1,2 +1,2 @@
1
1
  module.exports.headlessVersion = '3.27.1';
2
- module.exports.atomicVersion = '3.28.0-pre.d7a2bdbfed';
2
+ module.exports.atomicVersion = '3.28.0-pre.df6c8a3eb3';
@@ -1,4 +1,4 @@
1
- import { g as getAtomicEnvironment } from './interface-common-stencil-0c6e5ba8.js';
1
+ import { g as getAtomicEnvironment } from './interface-common-stencil-4bb4d80c.js';
2
2
 
3
3
  function augmentWithExternalMiddleware(event, payload, config) {
4
4
  if (config.analytics?.analyticsClientMiddleware) {
@@ -40,4 +40,4 @@ function getNextAnalyticsConfig(searchEngineConfig, enabled) {
40
40
 
41
41
  export { augmentWithExternalMiddleware as a, augmentAnalyticsWithAtomicVersion as b, augmentAnalyticsConfigWithDocument as c, augmentAnalyticsConfigWithAtomicVersion as d, getNextAnalyticsConfig as g };
42
42
 
43
- //# sourceMappingURL=analytics-config-40a361c2.js.map
43
+ //# sourceMappingURL=analytics-config-253004a0.js.map
@@ -1 +1 @@
1
- {"file":"analytics-config-40a361c2.js","mappings":";;SAYgB,6BAA6B,CAC3C,KAAa,EACb,OAAyB,EACzB,MAGqC;IAErC,IAAI,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE;QAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACnE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;SAEe,iCAAiC,CAAC,OAAyB;IACzE,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,oBAAoB,EAAE,CAAC,OAAO,CAAC;KACxE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;SAEe,kCAAkC;IAChD,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QACxC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAC,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,kBAAkB,CAAC;SAE1B,uCAAuC;IAGrD,OAAO;QACL,MAAM,EAAE;YACN,eAAe,EACb,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO;SACtE;KACF,CAAC;AACJ,CAAC;SAEe,sBAAsB,CACpC,kBAAuC,EACvC,OAAgB;IAEhB,MAAM,aAAa,GAA2B;QAC5C,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QACxC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAC,CAAC;KAC5D,CAAC;IAEF,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,IAAI,EAAE,CAAC;IAClE,MAAM,CAAC,MAAM,CACX,sBAAsB,EACtB,uCAAuC,EAAE,CAC1C,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAErD,OAAO,aAAa,CAAC;AACvB;;;;","names":[],"sources":["src/components/common/interface/analytics-config.ts"],"sourcesContent":["import {\n SearchEngineConfiguration,\n AnalyticsConfiguration,\n EngineConfiguration,\n} from '@coveo/headless';\nimport {AnalyticsClientSendEventHook} from '@coveo/headless';\nimport {InsightEngineConfiguration} from '@coveo/headless/insight';\nimport {RecommendationEngineConfiguration} from '@coveo/headless/recommendation';\nimport {getAtomicEnvironment} from '../../../global/environment';\n\nexport type AnalyticsPayload = Parameters<AnalyticsClientSendEventHook>[1];\n\nexport function augmentWithExternalMiddleware(\n event: string,\n payload: AnalyticsPayload,\n config:\n | InsightEngineConfiguration\n | SearchEngineConfiguration\n | RecommendationEngineConfiguration\n) {\n if (config.analytics?.analyticsClientMiddleware) {\n return config.analytics.analyticsClientMiddleware(event, payload);\n }\n return payload;\n}\n\nexport function augmentAnalyticsWithAtomicVersion(payload: AnalyticsPayload) {\n if (payload.customData) {\n payload.customData.coveoAtomicVersion = getAtomicEnvironment().version;\n }\n return payload;\n}\n\nexport function augmentAnalyticsConfigWithDocument(): AnalyticsConfiguration {\n return {\n documentLocation: document.location.href,\n ...(document.referrer && {originLevel3: document.referrer}),\n };\n}\n\nconst versionMatcher = /^(\\d+\\.\\d+\\.\\d+)/;\n\nexport function augmentAnalyticsConfigWithAtomicVersion(): Required<\n Pick<AnalyticsConfiguration, 'source'>\n> {\n return {\n source: {\n '@coveo/atomic':\n versionMatcher.exec(getAtomicEnvironment().version)?.[0] || '0.0.0',\n },\n };\n}\n\nexport function getNextAnalyticsConfig(\n searchEngineConfig: EngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n const configuration: AnalyticsConfiguration = {\n enabled,\n documentLocation: document.location.href,\n ...(document.referrer && {originLevel3: document.referrer}),\n };\n\n const analyticsConfiguration = searchEngineConfig.analytics ?? {};\n Object.assign(\n analyticsConfiguration,\n augmentAnalyticsConfigWithAtomicVersion()\n );\n Object.assign(configuration, analyticsConfiguration);\n\n return configuration;\n}\n"],"version":3}
1
+ {"file":"analytics-config-253004a0.js","mappings":";;SAYgB,6BAA6B,CAC3C,KAAa,EACb,OAAyB,EACzB,MAGqC;IAErC,IAAI,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE;QAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACnE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;SAEe,iCAAiC,CAAC,OAAyB;IACzE,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,oBAAoB,EAAE,CAAC,OAAO,CAAC;KACxE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;SAEe,kCAAkC;IAChD,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QACxC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAC,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,kBAAkB,CAAC;SAE1B,uCAAuC;IAGrD,OAAO;QACL,MAAM,EAAE;YACN,eAAe,EACb,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO;SACtE;KACF,CAAC;AACJ,CAAC;SAEe,sBAAsB,CACpC,kBAAuC,EACvC,OAAgB;IAEhB,MAAM,aAAa,GAA2B;QAC5C,OAAO;QACP,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;QACxC,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAC,CAAC;KAC5D,CAAC;IAEF,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,SAAS,IAAI,EAAE,CAAC;IAClE,MAAM,CAAC,MAAM,CACX,sBAAsB,EACtB,uCAAuC,EAAE,CAC1C,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAErD,OAAO,aAAa,CAAC;AACvB;;;;","names":[],"sources":["src/components/common/interface/analytics-config.ts"],"sourcesContent":["import {\n SearchEngineConfiguration,\n AnalyticsConfiguration,\n EngineConfiguration,\n} from '@coveo/headless';\nimport {AnalyticsClientSendEventHook} from '@coveo/headless';\nimport {InsightEngineConfiguration} from '@coveo/headless/insight';\nimport {RecommendationEngineConfiguration} from '@coveo/headless/recommendation';\nimport {getAtomicEnvironment} from '../../../global/environment';\n\nexport type AnalyticsPayload = Parameters<AnalyticsClientSendEventHook>[1];\n\nexport function augmentWithExternalMiddleware(\n event: string,\n payload: AnalyticsPayload,\n config:\n | InsightEngineConfiguration\n | SearchEngineConfiguration\n | RecommendationEngineConfiguration\n) {\n if (config.analytics?.analyticsClientMiddleware) {\n return config.analytics.analyticsClientMiddleware(event, payload);\n }\n return payload;\n}\n\nexport function augmentAnalyticsWithAtomicVersion(payload: AnalyticsPayload) {\n if (payload.customData) {\n payload.customData.coveoAtomicVersion = getAtomicEnvironment().version;\n }\n return payload;\n}\n\nexport function augmentAnalyticsConfigWithDocument(): AnalyticsConfiguration {\n return {\n documentLocation: document.location.href,\n ...(document.referrer && {originLevel3: document.referrer}),\n };\n}\n\nconst versionMatcher = /^(\\d+\\.\\d+\\.\\d+)/;\n\nexport function augmentAnalyticsConfigWithAtomicVersion(): Required<\n Pick<AnalyticsConfiguration, 'source'>\n> {\n return {\n source: {\n '@coveo/atomic':\n versionMatcher.exec(getAtomicEnvironment().version)?.[0] || '0.0.0',\n },\n };\n}\n\nexport function getNextAnalyticsConfig(\n searchEngineConfig: EngineConfiguration,\n enabled: boolean\n): AnalyticsConfiguration {\n const configuration: AnalyticsConfiguration = {\n enabled,\n documentLocation: document.location.href,\n ...(document.referrer && {originLevel3: document.referrer}),\n };\n\n const analyticsConfiguration = searchEngineConfig.analytics ?? {};\n Object.assign(\n analyticsConfiguration,\n augmentAnalyticsConfigWithAtomicVersion()\n );\n Object.assign(configuration, analyticsConfiguration);\n\n return configuration;\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { buildContext } from '@coveo/headless/commerce';
4
- import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-0c6e5ba8.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-4bb4d80c.js';
5
5
  import { u as unsetLoadingFlag, s as setLoadingFlag, a as createBaseStore } from './store-9da184ac.js';
6
6
  import '@coveo/headless';
7
7
  import './dayjs.min-d04628c6.js';
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, s as setNonce, h, H as Host, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { buildResultsPerPage, loadFieldActions, buildInsightEngine } from '@coveo/headless/insight';
4
- import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-0c6e5ba8.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance } from './interface-common-stencil-4bb4d80c.js';
5
5
  import { A as ArrayProp } from './props-utils-187abfd2.js';
6
- import { g as getNextAnalyticsConfig, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-40a361c2.js';
6
+ import { g as getNextAnalyticsConfig, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-253004a0.js';
7
7
  import { D as DEFAULT_MOBILE_BREAKPOINT } from './replace-breakpoint-213367f8.js';
8
8
  import { u as unsetLoadingFlag, s as setLoadingFlag, r as registerFacet, g as getFacetElements, w as waitUntilAppLoaded, a as createBaseStore } from './store-9da184ac.js';
9
9
  import { m as makeDesktopQuery } from './insight-layout-776b87f2.js';
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-3f35faca.js';
2
2
  import { Schema, StringValue } from '@coveo/bueno';
3
3
  import { I as InitializeBindings, H as Hidden } from './initialization-utils-ff3edf9a.js';
4
- import { E as ExpandableText } from './expandable-text-4eebe177.js';
4
+ import { E as ExpandableText } from './stencil-expandable-text-957d599c.js';
5
5
  import { P as ProductContext } from './stencil-product-template-decorators-0321cc1d.js';
6
6
  import './dom-utils-f6086cd3.js';
7
7
  import './event-utils-8de63ec3.js';
@@ -1 +1 @@
1
- {"file":"atomic-product-description.entry.js","mappings":";;;;;;;;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,wUAAwU,CAAC;AAC7W,uCAAe,2BAA2B;;;;;;;;;;;;MCuB7B,wBAAwB;IA+BnC;;QArBiB,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,KAAK,CAAC;;;;QAQtB,kBAAa,GAAkB,GAAG,CAAC;;;;QAKnC,UAAK,GAAsC,cAAc,CAAC;;;;QAK1D,kBAAa,GAAG,IAAI,CAAC;0BAnBN,KAAK;2BACJ,KAAK;6BAQU,GAAG;qBAKS,cAAc;6BAKzC,IAAI;QAGjC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,IACE,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EACrE;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,aAAa;QACnB,IAAI,MAAM,CAAC;YACT,aAAa,EAAE,IAAI,WAAW,CAAC;gBAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC1C,CAAC;YACF,KAAK,EAAE,IAAI,WAAW,CAAC;gBACrB,WAAW,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;aAChD,CAAC;SACH,CAAC,CAAC,QAAQ,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;KACJ;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CACnD,kBAAkB,CACD,CAAC;QACpB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACnD;KACF;IAEO,cAAc,CAAC,CAAc;QACnC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;IAEM,MAAM;QACX,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAE5D,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO,EAAC,MAAM,OAAG,CAAC;SACnB;QAED,QACE,EAAC,cAAc,IACb,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAC7C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,aAAa,IAEjC,2BAAqB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAwB,CAC/C,EACjB;KACH;;;AAjG4B;IAA5B,kBAAkB,EAAE;0DAAoC;AAC/B;IAAzB,cAAc,EAAE;yDAA2B;;;;;","names":[],"sources":["src/components/commerce/atomic-product-description/atomic-product-description.pcss?tag=atomic-product-description","src/components/commerce/atomic-product-description/atomic-product-description.tsx"],"sourcesContent":["@import '../../common/expandable-text/expandable-text.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {Product} from '@coveo/headless/commerce';\nimport {Component, State, h, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {\n ExpandableText,\n TruncateAfter,\n} from '../../common/expandable-text/expandable-text';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {ProductContext} from '../product-template-component-utils/stencil-product-template-decorators';\n\n/**\n * @alpha\n * The `atomic-product-description` component renders the description of a product.\n */\n@Component({\n tag: 'atomic-product-description',\n styleUrl: 'atomic-product-description.pcss',\n shadow: false,\n})\nexport class AtomicProductDescription\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n @ProductContext() private product!: Product;\n\n @Element() hostElement!: HTMLElement;\n\n public error!: Error;\n\n @State() private isExpanded = false;\n @State() private isTruncated = false;\n\n private descriptionText!: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n /**\n * The number of lines after which the product description should be truncated. A value of \"none\" will disable truncation.\n */\n @Prop() public truncateAfter: TruncateAfter = '2';\n\n /**\n * The name of the description field to use.\n */\n @Prop() public field: 'ec_description' | 'ec_shortdesc' = 'ec_shortdesc';\n\n /**\n * Whether the description should be collapsible after being expanded.\n */\n @Prop() public isCollapsible = true;\n\n constructor() {\n this.resizeObserver = new ResizeObserver(() => {\n if (\n this.descriptionText &&\n this.descriptionText.scrollHeight > this.descriptionText.clientHeight\n ) {\n this.isTruncated = true;\n } else {\n this.isTruncated = false;\n }\n });\n this.validateProps();\n }\n\n private validateProps() {\n new Schema({\n truncateAfter: new StringValue({\n constrainTo: ['none', '1', '2', '3', '4'],\n }),\n field: new StringValue({\n constrainTo: ['ec_shortdesc', 'ec_description'],\n }),\n }).validate({\n truncateAfter: this.truncateAfter,\n field: this.field,\n });\n }\n\n componentDidLoad() {\n this.descriptionText = this.hostElement.querySelector(\n '.expandable-text'\n ) as HTMLDivElement;\n if (this.descriptionText) {\n this.resizeObserver.observe(this.descriptionText);\n }\n }\n\n private onToggleExpand(e?: MouseEvent) {\n if (e) {\n e.stopPropagation();\n }\n\n this.isExpanded = !this.isExpanded;\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n public render() {\n const productDescription = this.product[this.field] ?? null;\n\n if (!productDescription) {\n return <Hidden />;\n }\n\n return (\n <ExpandableText\n isExpanded={this.isExpanded}\n isTruncated={this.isTruncated}\n truncateAfter={this.truncateAfter}\n onToggleExpand={(e) => this.onToggleExpand(e)}\n showMoreLabel={this.bindings.i18n.t('show-more')}\n showLessLabel={this.bindings.i18n.t('show-less')}\n isCollapsible={this.isCollapsible}\n >\n <atomic-product-text field={this.field}></atomic-product-text>\n </ExpandableText>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-product-description.entry.js","mappings":";;;;;;;;;;;;;;;AAAA,MAAM,2BAA2B,GAAG,wUAAwU,CAAC;AAC7W,uCAAe,2BAA2B;;;;;;;;;;;;MCuB7B,wBAAwB;IA+BnC;;QArBiB,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,KAAK,CAAC;;;;QAQtB,kBAAa,GAAkB,GAAG,CAAC;;;;QAKnC,UAAK,GAAsC,cAAc,CAAC;;;;QAK1D,kBAAa,GAAG,IAAI,CAAC;0BAnBN,KAAK;2BACJ,KAAK;6BAQU,GAAG;qBAKS,cAAc;6BAKzC,IAAI;QAGjC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,IACE,IAAI,CAAC,eAAe;gBACpB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EACrE;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,aAAa;QACnB,IAAI,MAAM,CAAC;YACT,aAAa,EAAE,IAAI,WAAW,CAAC;gBAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC1C,CAAC;YACF,KAAK,EAAE,IAAI,WAAW,CAAC;gBACrB,WAAW,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;aAChD,CAAC;SACH,CAAC,CAAC,QAAQ,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;KACJ;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CACnD,kBAAkB,CACD,CAAC;QACpB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACnD;KACF;IAEO,cAAc,CAAC,CAAc;QACnC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;IAEM,MAAM;QACX,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QAE5D,IAAI,CAAC,kBAAkB,EAAE;YACvB,OAAO,EAAC,MAAM,OAAG,CAAC;SACnB;QAED,QACE,EAAC,cAAc,IACb,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAC7C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,aAAa,IAEjC,2BAAqB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAwB,CAC/C,EACjB;KACH;;;AAjG4B;IAA5B,kBAAkB,EAAE;0DAAoC;AAC/B;IAAzB,cAAc,EAAE;yDAA2B;;;;;","names":[],"sources":["src/components/commerce/atomic-product-description/atomic-product-description.pcss?tag=atomic-product-description","src/components/commerce/atomic-product-description/atomic-product-description.tsx"],"sourcesContent":["@import '../../common/expandable-text/expandable-text.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {Product} from '@coveo/headless/commerce';\nimport {Component, State, h, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {\n ExpandableText,\n TruncateAfter,\n} from '../../common/expandable-text/stencil-expandable-text';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {ProductContext} from '../product-template-component-utils/stencil-product-template-decorators';\n\n/**\n * @alpha\n * The `atomic-product-description` component renders the description of a product.\n */\n@Component({\n tag: 'atomic-product-description',\n styleUrl: 'atomic-product-description.pcss',\n shadow: false,\n})\nexport class AtomicProductDescription\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n @ProductContext() private product!: Product;\n\n @Element() hostElement!: HTMLElement;\n\n public error!: Error;\n\n @State() private isExpanded = false;\n @State() private isTruncated = false;\n\n private descriptionText!: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n /**\n * The number of lines after which the product description should be truncated. A value of \"none\" will disable truncation.\n */\n @Prop() public truncateAfter: TruncateAfter = '2';\n\n /**\n * The name of the description field to use.\n */\n @Prop() public field: 'ec_description' | 'ec_shortdesc' = 'ec_shortdesc';\n\n /**\n * Whether the description should be collapsible after being expanded.\n */\n @Prop() public isCollapsible = true;\n\n constructor() {\n this.resizeObserver = new ResizeObserver(() => {\n if (\n this.descriptionText &&\n this.descriptionText.scrollHeight > this.descriptionText.clientHeight\n ) {\n this.isTruncated = true;\n } else {\n this.isTruncated = false;\n }\n });\n this.validateProps();\n }\n\n private validateProps() {\n new Schema({\n truncateAfter: new StringValue({\n constrainTo: ['none', '1', '2', '3', '4'],\n }),\n field: new StringValue({\n constrainTo: ['ec_shortdesc', 'ec_description'],\n }),\n }).validate({\n truncateAfter: this.truncateAfter,\n field: this.field,\n });\n }\n\n componentDidLoad() {\n this.descriptionText = this.hostElement.querySelector(\n '.expandable-text'\n ) as HTMLDivElement;\n if (this.descriptionText) {\n this.resizeObserver.observe(this.descriptionText);\n }\n }\n\n private onToggleExpand(e?: MouseEvent) {\n if (e) {\n e.stopPropagation();\n }\n\n this.isExpanded = !this.isExpanded;\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n public render() {\n const productDescription = this.product[this.field] ?? null;\n\n if (!productDescription) {\n return <Hidden />;\n }\n\n return (\n <ExpandableText\n isExpanded={this.isExpanded}\n isTruncated={this.isTruncated}\n truncateAfter={this.truncateAfter}\n onToggleExpand={(e) => this.onToggleExpand(e)}\n showMoreLabel={this.bindings.i18n.t('show-more')}\n showLessLabel={this.bindings.i18n.t('show-less')}\n isCollapsible={this.isCollapsible}\n >\n <atomic-product-text field={this.field}></atomic-product-text>\n </ExpandableText>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, h, g as getElement } from './index-3f35faca.js';
2
2
  import { Schema, StringValue } from '@coveo/bueno';
3
3
  import { I as InitializeBindings, H as Hidden } from './initialization-utils-ff3edf9a.js';
4
- import { E as ExpandableText } from './expandable-text-4eebe177.js';
4
+ import { E as ExpandableText } from './stencil-expandable-text-957d599c.js';
5
5
  import { P as ProductContext } from './stencil-product-template-decorators-0321cc1d.js';
6
6
  import './dom-utils-f6086cd3.js';
7
7
  import './event-utils-8de63ec3.js';
@@ -1 +1 @@
1
- {"file":"atomic-product-excerpt.entry.js","mappings":";;;;;;;;;;;;;;;AAAA,MAAM,uBAAuB,GAAG,wUAAwU,CAAC;AACzW,mCAAe,uBAAuB;;;;;;;;;;;;MCuBzB,oBAAoB;IA0B/B;;QAhBiB,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,KAAK,CAAC;;;;QAQtB,kBAAa,GAAkB,GAAG,CAAC;;;;QAKnC,kBAAa,GAAG,KAAK,CAAC;0BAdP,KAAK;2BACJ,KAAK;6BAQU,GAAG;6BAKlB,KAAK;QAGlC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,IACE,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7D;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,aAAa;QACnB,IAAI,MAAM,CAAC;YACT,aAAa,EAAE,IAAI,WAAW,CAAC;gBAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC1C,CAAC;SACH,CAAC,CAAC,QAAQ,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;KACJ;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/C,kBAAkB,CACD,CAAC;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C;KACF;IAEO,cAAc,CAAC,CAAc;QACnC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;IAEM,MAAM;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAEvD,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,EAAC,MAAM,OAAG,CAAC;SACnB;QAED,QACE,EAAC,cAAc,IACb,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAC7C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,aAAa,IAEjC,2BAAqB,KAAK,EAAC,SAAS,GAAuB,CAC5C,EACjB;KACH;;;AAxF4B;IAA5B,kBAAkB,EAAE;sDAAoC;AAC/B;IAAzB,cAAc,EAAE;qDAA2B;;;;;","names":[],"sources":["src/components/commerce/atomic-product-excerpt/atomic-product-excerpt.pcss?tag=atomic-product-excerpt","src/components/commerce/atomic-product-excerpt/atomic-product-excerpt.tsx"],"sourcesContent":["@import '../../common/expandable-text/expandable-text.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {Product} from '@coveo/headless/commerce';\nimport {Component, State, h, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {\n ExpandableText,\n TruncateAfter,\n} from '../../common/expandable-text/expandable-text';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {ProductContext} from '../product-template-component-utils/stencil-product-template-decorators';\n\n/**\n * @alpha\n * The `atomic-product-excerpt` component renders the excerpt of a product generated at query time.\n */\n@Component({\n tag: 'atomic-product-excerpt',\n styleUrl: 'atomic-product-excerpt.pcss',\n shadow: false,\n})\nexport class AtomicProductExcerpt\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n @ProductContext() private product!: Product;\n\n @Element() hostElement!: HTMLElement;\n\n public error!: Error;\n\n @State() private isExpanded = false;\n @State() private isTruncated = false;\n\n private excerptText!: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n /**\n * The number of lines after which the product excerpt should be truncated. A value of \"none\" will disable truncation.\n */\n @Prop() public truncateAfter: TruncateAfter = '2';\n\n /**\n * Whether the excerpt should be collapsible after being expanded.\n */\n @Prop() public isCollapsible = false;\n\n constructor() {\n this.resizeObserver = new ResizeObserver(() => {\n if (\n this.excerptText &&\n this.excerptText.scrollHeight > this.excerptText.offsetHeight\n ) {\n this.isTruncated = true;\n } else {\n this.isTruncated = false;\n }\n });\n this.validateProps();\n }\n\n private validateProps() {\n new Schema({\n truncateAfter: new StringValue({\n constrainTo: ['none', '1', '2', '3', '4'],\n }),\n }).validate({\n truncateAfter: this.truncateAfter,\n });\n }\n\n componentDidLoad() {\n this.excerptText = this.hostElement.querySelector(\n '.expandable-text'\n ) as HTMLDivElement;\n if (this.excerptText) {\n this.resizeObserver.observe(this.excerptText);\n }\n }\n\n private onToggleExpand(e?: MouseEvent) {\n if (e) {\n e.stopPropagation();\n }\n\n this.isExpanded = !this.isExpanded;\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n public render() {\n const productExcerpt = this.product['excerpt'] ?? null;\n\n if (!productExcerpt) {\n return <Hidden />;\n }\n\n return (\n <ExpandableText\n isExpanded={this.isExpanded}\n isTruncated={this.isTruncated}\n truncateAfter={this.truncateAfter}\n onToggleExpand={(e) => this.onToggleExpand(e)}\n showMoreLabel={this.bindings.i18n.t('show-more')}\n showLessLabel={this.bindings.i18n.t('show-less')}\n isCollapsible={this.isCollapsible}\n >\n <atomic-product-text field=\"excerpt\"></atomic-product-text>\n </ExpandableText>\n );\n }\n}\n"],"version":3}
1
+ {"file":"atomic-product-excerpt.entry.js","mappings":";;;;;;;;;;;;;;;AAAA,MAAM,uBAAuB,GAAG,wUAAwU,CAAC;AACzW,mCAAe,uBAAuB;;;;;;;;;;;;MCuBzB,oBAAoB;IA0B/B;;QAhBiB,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,KAAK,CAAC;;;;QAQtB,kBAAa,GAAkB,GAAG,CAAC;;;;QAKnC,kBAAa,GAAG,KAAK,CAAC;0BAdP,KAAK;2BACJ,KAAK;6BAQU,GAAG;6BAKlB,KAAK;QAGlC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,IACE,IAAI,CAAC,WAAW;gBAChB,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7D;gBACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEO,aAAa;QACnB,IAAI,MAAM,CAAC;YACT,aAAa,EAAE,IAAI,WAAW,CAAC;gBAC7B,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC1C,CAAC;SACH,CAAC,CAAC,QAAQ,CAAC;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;KACJ;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/C,kBAAkB,CACD,CAAC;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/C;KACF;IAEO,cAAc,CAAC,CAAc;QACnC,IAAI,CAAC,EAAE;YACL,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;KAClC;IAEM,MAAM;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAEvD,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,EAAC,MAAM,OAAG,CAAC;SACnB;QAED,QACE,EAAC,cAAc,IACb,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAC7C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAChD,aAAa,EAAE,IAAI,CAAC,aAAa,IAEjC,2BAAqB,KAAK,EAAC,SAAS,GAAuB,CAC5C,EACjB;KACH;;;AAxF4B;IAA5B,kBAAkB,EAAE;sDAAoC;AAC/B;IAAzB,cAAc,EAAE;qDAA2B;;;;;","names":[],"sources":["src/components/commerce/atomic-product-excerpt/atomic-product-excerpt.pcss?tag=atomic-product-excerpt","src/components/commerce/atomic-product-excerpt/atomic-product-excerpt.tsx"],"sourcesContent":["@import '../../common/expandable-text/expandable-text.pcss';\n","import {Schema, StringValue} from '@coveo/bueno';\nimport {Product} from '@coveo/headless/commerce';\nimport {Component, State, h, Element, Prop} from '@stencil/core';\nimport {\n InitializableComponent,\n InitializeBindings,\n} from '../../../utils/initialization-utils';\nimport {\n ExpandableText,\n TruncateAfter,\n} from '../../common/expandable-text/stencil-expandable-text';\nimport {Hidden} from '../../common/stencil-hidden';\nimport {CommerceBindings} from '../atomic-commerce-interface/atomic-commerce-interface';\nimport {ProductContext} from '../product-template-component-utils/stencil-product-template-decorators';\n\n/**\n * @alpha\n * The `atomic-product-excerpt` component renders the excerpt of a product generated at query time.\n */\n@Component({\n tag: 'atomic-product-excerpt',\n styleUrl: 'atomic-product-excerpt.pcss',\n shadow: false,\n})\nexport class AtomicProductExcerpt\n implements InitializableComponent<CommerceBindings>\n{\n @InitializeBindings() public bindings!: CommerceBindings;\n @ProductContext() private product!: Product;\n\n @Element() hostElement!: HTMLElement;\n\n public error!: Error;\n\n @State() private isExpanded = false;\n @State() private isTruncated = false;\n\n private excerptText!: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n /**\n * The number of lines after which the product excerpt should be truncated. A value of \"none\" will disable truncation.\n */\n @Prop() public truncateAfter: TruncateAfter = '2';\n\n /**\n * Whether the excerpt should be collapsible after being expanded.\n */\n @Prop() public isCollapsible = false;\n\n constructor() {\n this.resizeObserver = new ResizeObserver(() => {\n if (\n this.excerptText &&\n this.excerptText.scrollHeight > this.excerptText.offsetHeight\n ) {\n this.isTruncated = true;\n } else {\n this.isTruncated = false;\n }\n });\n this.validateProps();\n }\n\n private validateProps() {\n new Schema({\n truncateAfter: new StringValue({\n constrainTo: ['none', '1', '2', '3', '4'],\n }),\n }).validate({\n truncateAfter: this.truncateAfter,\n });\n }\n\n componentDidLoad() {\n this.excerptText = this.hostElement.querySelector(\n '.expandable-text'\n ) as HTMLDivElement;\n if (this.excerptText) {\n this.resizeObserver.observe(this.excerptText);\n }\n }\n\n private onToggleExpand(e?: MouseEvent) {\n if (e) {\n e.stopPropagation();\n }\n\n this.isExpanded = !this.isExpanded;\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n public render() {\n const productExcerpt = this.product['excerpt'] ?? null;\n\n if (!productExcerpt) {\n return <Hidden />;\n }\n\n return (\n <ExpandableText\n isExpanded={this.isExpanded}\n isTruncated={this.isTruncated}\n truncateAfter={this.truncateAfter}\n onToggleExpand={(e) => this.onToggleExpand(e)}\n showMoreLabel={this.bindings.i18n.t('show-more')}\n showLessLabel={this.bindings.i18n.t('show-less')}\n isCollapsible={this.isCollapsible}\n >\n <atomic-product-text field=\"excerpt\"></atomic-product-text>\n </ExpandableText>\n );\n }\n}\n"],"version":3}
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { loadRecommendationActions, loadSearchConfigurationActions, EcommerceDefaultFieldsToInclude, loadFieldActions, buildRecommendationEngine } from '@coveo/headless/recommendation';
4
- import { C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './interface-common-stencil-0c6e5ba8.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './interface-common-stencil-4bb4d80c.js';
5
5
  import { A as ArrayProp } from './props-utils-187abfd2.js';
6
- import { g as getNextAnalyticsConfig, c as augmentAnalyticsConfigWithDocument, d as augmentAnalyticsConfigWithAtomicVersion, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-40a361c2.js';
6
+ import { g as getNextAnalyticsConfig, c as augmentAnalyticsConfigWithDocument, d as augmentAnalyticsConfigWithAtomicVersion, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-253004a0.js';
7
7
  import { u as unsetLoadingFlag, s as setLoadingFlag, a as createBaseStore } from './store-9da184ac.js';
8
8
  import '@coveo/headless';
9
9
  import './dayjs.min-d04628c6.js';
@@ -1,11 +1,11 @@
1
1
  import { r as registerInstance, s as setNonce, h, g as getElement } from './index-3f35faca.js';
2
2
  import { m as markParentAsReady } from './init-queue-fbe942c3.js';
3
3
  import { loadSearchConfigurationActions, loadQueryActions, EcommerceDefaultFieldsToInclude, loadFieldActions, buildSearchEngine, buildUrlManager, buildSearchStatus } from '@coveo/headless';
4
- import { C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './interface-common-stencil-0c6e5ba8.js';
4
+ import { C as CommonAtomicInterfaceHelper, i as instance, m as mismatchedInterfaceAndEnginePropError } from './interface-common-stencil-4bb4d80c.js';
5
5
  import { a as StorageItems, S as SafeStorage } from './local-storage-utils-c8dbf1ef.js';
6
6
  import { A as ArrayProp } from './props-utils-187abfd2.js';
7
7
  import { m as makeDesktopQuery, n as noResultsSelector, e as errorSelector, f as firstSearchExecutedSelector } from './search-layout-1e3bd9fd.js';
8
- import { g as getNextAnalyticsConfig, d as augmentAnalyticsConfigWithAtomicVersion, c as augmentAnalyticsConfigWithDocument, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-40a361c2.js';
8
+ import { g as getNextAnalyticsConfig, d as augmentAnalyticsConfigWithAtomicVersion, c as augmentAnalyticsConfigWithDocument, a as augmentWithExternalMiddleware, b as augmentAnalyticsWithAtomicVersion } from './analytics-config-253004a0.js';
9
9
  import { D as DEFAULT_MOBILE_BREAKPOINT } from './replace-breakpoint-213367f8.js';
10
10
  import { u as unsetLoadingFlag, s as setLoadingFlag, r as registerFacet, g as getFacetElements, w as waitUntilAppLoaded, a as createBaseStore } from './store-9da184ac.js';
11
11
  import './dayjs.min-d04628c6.js';
@@ -2220,7 +2220,7 @@ function getWindow() {
2220
2220
  }
2221
2221
  function getAtomicEnvironment() {
2222
2222
  return {
2223
- version: "3.28.0-pre.d7a2bdbfed",
2223
+ version: "3.28.0-pre.df6c8a3eb3",
2224
2224
  headlessVersion: VERSION,
2225
2225
  };
2226
2226
  }
@@ -2938,4 +2938,4 @@ class CommonAtomicInterfaceHelper {
2938
2938
 
2939
2939
  export { CommonAtomicInterfaceHelper as C, getAtomicEnvironment as g, instance as i, mismatchedInterfaceAndEnginePropError as m };
2940
2940
 
2941
- //# sourceMappingURL=interface-common-stencil-0c6e5ba8.js.map
2941
+ //# sourceMappingURL=interface-common-stencil-4bb4d80c.js.map