@carbon/ibmdotcom-web-components 2.46.0 → 2.47.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.
Files changed (37) hide show
  1. package/custom-elements.json +6 -0
  2. package/dist/dotcom-shell.js +5 -5
  3. package/dist/dotcom-shell.min.js +5 -5
  4. package/dist/ibmdotcom-web-components-dotcom-shell.js +5 -5
  5. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +5 -5
  6. package/dist/{index-2a27319c.js → index-2afb6b83.js} +79 -11
  7. package/dist/{index-6499062e.js → index-d71fad5e.js} +9 -9
  8. package/dist/{left-nav-menu-87cb8009.js → left-nav-menu-c200cfbf.js} +5 -5
  9. package/dist/{left-nav-menu-category-heading-f24e3053.js → left-nav-menu-category-heading-5e03be50.js} +5 -5
  10. package/dist/{left-nav-menu-category-heading-8d21b7ff.js → left-nav-menu-category-heading-920e6a4d.js} +5 -5
  11. package/dist/{left-nav-menu-d2fd2328.js → left-nav-menu-fd372a33.js} +5 -5
  12. package/dist/{left-nav-menu-item-c7dd7954.js → left-nav-menu-item-4f1e5c31.js} +5 -5
  13. package/dist/{left-nav-menu-item-65681d32.js → left-nav-menu-item-7fdb8ccb.js} +5 -5
  14. package/dist/{left-nav-menu-section-dfce35ff.js → left-nav-menu-section-030cb39a.js} +5 -5
  15. package/dist/{left-nav-menu-section-8f88f76b.js → left-nav-menu-section-6b023c26.js} +5 -5
  16. package/dist/{left-nav-overlay-69e1d9a3.js → left-nav-overlay-08587d78.js} +5 -5
  17. package/dist/{left-nav-overlay-da850571.js → left-nav-overlay-889c0a90.js} +5 -5
  18. package/dist/{megamenu-category-group-6674efc2.js → megamenu-category-group-26bd14a7.js} +5 -5
  19. package/dist/{megamenu-category-group-copy-49c71042.js → megamenu-category-group-copy-3b2207e3.js} +5 -5
  20. package/dist/{megamenu-category-group-copy-5da065ae.js → megamenu-category-group-copy-6164fd89.js} +5 -5
  21. package/dist/{megamenu-category-group-c3e817e7.js → megamenu-category-group-dd55d8cd.js} +5 -5
  22. package/dist/{megamenu-category-heading-e38dad42.js → megamenu-category-heading-1916b04a.js} +5 -5
  23. package/dist/{megamenu-category-heading-7cf0e3e0.js → megamenu-category-heading-7d136716.js} +5 -5
  24. package/dist/{megamenu-category-link-fc2fc4fe.js → megamenu-category-link-5b9838a2.js} +5 -5
  25. package/dist/{megamenu-category-link-46334ebb.js → megamenu-category-link-d47b8f6a.js} +5 -5
  26. package/dist/{megamenu-category-link-group-20985052.js → megamenu-category-link-group-97e7fb8f.js} +5 -5
  27. package/dist/{megamenu-category-link-group-240c9051.js → megamenu-category-link-group-c112da07.js} +5 -5
  28. package/dist/{megamenu-left-navigation-f119bbfc.js → megamenu-left-navigation-68bc901a.js} +5 -5
  29. package/dist/{megamenu-left-navigation-6245546d.js → megamenu-left-navigation-8bbb4f4b.js} +5 -5
  30. package/dist/{megamenu-overlay-6350b555.js → megamenu-overlay-1e5cbcc8.js} +5 -5
  31. package/dist/{megamenu-overlay-babb8218.js → megamenu-overlay-a191f87b.js} +5 -5
  32. package/dist/{megamenu-tab-320d35fa.js → megamenu-tab-15ccf09c.js} +5 -5
  33. package/dist/{megamenu-tab-f8d14ecf.js → megamenu-tab-70d5982a.js} +5 -5
  34. package/es/components/masthead/masthead-cart.d.ts +14 -1
  35. package/es/components/masthead/masthead-cart.js +75 -7
  36. package/es/components/masthead/masthead-cart.js.map +1 -1
  37. package/package.json +2 -2
@@ -20,16 +20,16 @@
20
20
  * This source code is licensed under the Apache-2.0 license found in the
21
21
  * LICENSE file in the root directory of this source tree.
22
22
  *
23
- * lit-html:
23
+ * lit-element:
24
24
  *
25
25
  * @license
26
- * Copyright 2022 Google LLC
26
+ * Copyright 2017 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  *
29
- * lit-element:
29
+ * lit-html:
30
30
  *
31
31
  * @license
32
- * Copyright 2017 Google LLC
32
+ * Copyright 2022 Google LLC
33
33
  * SPDX-License-Identifier: BSD-3-Clause
34
34
  *
35
35
  * @lit/reactive-element:
@@ -88,7 +88,7 @@
88
88
  */
89
89
 
90
90
  let process = { env: {} };
91
- import { g as s, n, x, s as styles, c as carbonElement, a as settings } from './index-2a27319c.js';
91
+ import { g as s, n, x, s as styles, c as carbonElement, a as settings } from './index-2afb6b83.js';
92
92
 
93
93
  let _ = t => t,
94
94
  _t;
@@ -20,16 +20,16 @@
20
20
  * This source code is licensed under the Apache-2.0 license found in the
21
21
  * LICENSE file in the root directory of this source tree.
22
22
  *
23
- * lit-html:
23
+ * lit-element:
24
24
  *
25
25
  * @license
26
- * Copyright 2022 Google LLC
26
+ * Copyright 2017 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  *
29
- * lit-element:
29
+ * lit-html:
30
30
  *
31
31
  * @license
32
- * Copyright 2017 Google LLC
32
+ * Copyright 2022 Google LLC
33
33
  * SPDX-License-Identifier: BSD-3-Clause
34
34
  *
35
35
  * @lit/reactive-element:
@@ -87,7 +87,7 @@
87
87
  * https://www.npmjs.com/package/striptags
88
88
  */
89
89
 
90
- import{_ as e,F as t,g as r,n as i,p as n,x as o,l as a,m as s,c as l,o as c,q as d,T as u,r as f,t as p,u as h,s as y,a as m}from"./index-6499062e.js";let v,k,b,g,w=e=>e,E=e([l(`${n}-content-switcher-item`)],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0,attribute:"hide-divider"})],key:"hideDivider",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"selected",value:()=>!1},{kind:"field",decorators:[i()],key:"target",value:void 0},{kind:"field",decorators:[i()],key:"value",value:()=>""},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"icon",value:()=>!1},{kind:"field",decorators:[i({reflect:!0,type:String})],key:"align",value:()=>"top"},{kind:"field",decorators:[i({attribute:"close-on-activation",reflect:!0,type:Boolean})],key:"closeOnActivation",value:()=>!0},{kind:"field",key:"enterDelayMs",value:()=>100},{kind:"field",key:"leaveDelayMs",value:()=>100},{kind:"method",key:"updated",value:function(e){var t;e&&(null===(t=this.shadowRoot)||void 0===t||null===(t=t.querySelector(`${n}-tooltip`))||void 0===t||null===(t=t.shadowRoot)||void 0===t||null===(t=t.querySelector(`.${n}--tooltip`))||void 0===t||t.classList.add(`${n}--icon-tooltip`))}},{kind:"method",key:"_renderTooltipContent",value:function(){return o(v||(v=w`
90
+ import{_ as e,F as t,g as r,n as i,p as n,x as o,l as a,m as s,c as l,o as c,q as d,T as u,r as f,t as p,u as h,s as y,a as m}from"./index-d71fad5e.js";let v,k,b,g,w=e=>e,E=e([l(`${n}-content-switcher-item`)],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0,attribute:"hide-divider"})],key:"hideDivider",value:()=>!1},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"selected",value:()=>!1},{kind:"field",decorators:[i()],key:"target",value:void 0},{kind:"field",decorators:[i()],key:"value",value:()=>""},{kind:"field",decorators:[i({type:Boolean,reflect:!0})],key:"icon",value:()=>!1},{kind:"field",decorators:[i({reflect:!0,type:String})],key:"align",value:()=>"top"},{kind:"field",decorators:[i({attribute:"close-on-activation",reflect:!0,type:Boolean})],key:"closeOnActivation",value:()=>!0},{kind:"field",key:"enterDelayMs",value:()=>100},{kind:"field",key:"leaveDelayMs",value:()=>100},{kind:"method",key:"updated",value:function(e){var t;e&&(null===(t=this.shadowRoot)||void 0===t||null===(t=t.querySelector(`${n}-tooltip`))||void 0===t||null===(t=t.shadowRoot)||void 0===t||null===(t=t.querySelector(`.${n}--tooltip`))||void 0===t||t.classList.add(`${n}--icon-tooltip`))}},{kind:"method",key:"_renderTooltipContent",value:function(){return o(v||(v=w`
91
91
  <cds-tooltip-content>
92
92
  <slot name="tooltip-content"></slot>
93
93
  </cds-tooltip-content>
@@ -20,16 +20,16 @@
20
20
  * This source code is licensed under the Apache-2.0 license found in the
21
21
  * LICENSE file in the root directory of this source tree.
22
22
  *
23
- * lit-html:
23
+ * lit-element:
24
24
  *
25
25
  * @license
26
- * Copyright 2022 Google LLC
26
+ * Copyright 2017 Google LLC
27
27
  * SPDX-License-Identifier: BSD-3-Clause
28
28
  *
29
- * lit-element:
29
+ * lit-html:
30
30
  *
31
31
  * @license
32
- * Copyright 2017 Google LLC
32
+ * Copyright 2022 Google LLC
33
33
  * SPDX-License-Identifier: BSD-3-Clause
34
34
  *
35
35
  * @lit/reactive-element:
@@ -88,7 +88,7 @@
88
88
  */
89
89
 
90
90
  let process = { env: {} };
91
- import { _ as _decorate$1, F as FocusMixin, g as s, n, p as prefix$1, x, l as _objectSpread2, m as styles, c as carbonElement, o as l, q as o, T as TABS_TYPE, r as styles$1, t as _get$1, u as _getPrototypeOf$1, s as styles$2, a as settings } from './index-2a27319c.js';
91
+ import { _ as _decorate$1, F as FocusMixin, g as s, n, p as prefix$1, x, l as _objectSpread2, m as styles, c as carbonElement, o as l, q as o, T as TABS_TYPE, r as styles$1, t as _get$1, u as _getPrototypeOf$1, s as styles$2, a as settings } from './index-2afb6b83.js';
92
92
 
93
93
  let _$2 = t => t,
94
94
  _t$2,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2024
4
+ * Copyright IBM Corp. 2024, 2026
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -371,6 +371,19 @@ declare class C4DMastheadCart extends C4DMastheadCart_base {
371
371
  cc: string;
372
372
  };
373
373
  connectedCallback(): void;
374
+ disconnectedCallback(): void;
375
+ /**
376
+ * Updates cart state
377
+ */
378
+ updateCart: () => void;
379
+ /**
380
+ * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.
381
+ */
382
+ checkCartWithRetry(retries?: number, delay?: number): void;
383
+ /**
384
+ * Filter the correct checkout URL based on locale and country code.
385
+ */
386
+ handleURL(cc: string, lc: string): string;
374
387
  updated(changedProperties: any): void;
375
388
  render(): import("lit-html").TemplateResult<1>;
376
389
  static get stableSelector(): string;
@@ -7,14 +7,14 @@ function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prot
7
7
  /**
8
8
  * @license
9
9
  *
10
- * Copyright IBM Corp. 2024
10
+ * Copyright IBM Corp. 2024, 2026
11
11
  *
12
12
  * This source code is licensed under the Apache-2.0 license found in the
13
13
  * LICENSE file in the root directory of this source tree.
14
14
  */ /**
15
15
  * @license
16
16
  *
17
- * Copyright IBM Corp. 2024
17
+ * Copyright IBM Corp. 2024, 2026
18
18
  *
19
19
  * This source code is licensed under the Apache-2.0 license found in the
20
20
  * LICENSE file in the root directory of this source tree.
@@ -93,13 +93,81 @@ let C4DMastheadCart = _decorate([customElement(`${c4dPrefix}-masthead-cart`)], f
93
93
 
94
94
  function connectedCallback() {
95
95
  _superPropGet(C4DMastheadCart, "connectedCallback", this, 3)([]);
96
- // Check the relevant cookie for whether the user has an active cart.
97
- this.hasActiveCart = SAPCommerceAPI.hasActiveCart();
98
- // Fetch the locale for the page.
96
+
97
+ // Initial check
98
+ this.updateCart();
99
+
100
+ // Fallback retry
101
+ this.checkCartWithRetry();
102
+
103
+ // Listen for cross-tab updates
104
+ window.addEventListener('storage', this.updateCart);
105
+
106
+ // Fetch locale
99
107
  LocaleAPI.getLocale().then(locale => {
100
108
  this.locale = locale;
101
109
  });
102
110
  }
111
+ }, {
112
+ kind: "method",
113
+ key: "disconnectedCallback",
114
+ value: function disconnectedCallback() {
115
+ _superPropGet(C4DMastheadCart, "disconnectedCallback", this, 3)([]);
116
+ window.removeEventListener('storage', this.updateCart);
117
+ }
118
+
119
+ /**
120
+ * Updates cart state
121
+ */
122
+ }, {
123
+ kind: "field",
124
+ key: "updateCart",
125
+ value() {
126
+ return () => {
127
+ const hasCart = SAPCommerceAPI.hasActiveCart();
128
+ this.hasActiveCart = hasCart;
129
+ };
130
+ }
131
+ }, {
132
+ kind: "method",
133
+ key: "checkCartWithRetry",
134
+ value:
135
+ /**
136
+ * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.
137
+ */
138
+ function checkCartWithRetry(retries = 5, delay = 200) {
139
+ const check = () => {
140
+ const hasCart = SAPCommerceAPI.hasActiveCart();
141
+ if (hasCart) {
142
+ this.hasActiveCart = true;
143
+ return;
144
+ }
145
+ if (retries > 0) {
146
+ retries--;
147
+ setTimeout(check, delay);
148
+ }
149
+ };
150
+ check();
151
+ }
152
+
153
+ /**
154
+ * Filter the correct checkout URL based on locale and country code.
155
+ */
156
+ }, {
157
+ kind: "method",
158
+ key: "handleURL",
159
+ value: function handleURL(cc, lc) {
160
+ switch (cc) {
161
+ case 'uk':
162
+ return `/store/en/gb/checkout`;
163
+ case 'ae':
164
+ return `/store/en/ae/checkout`;
165
+ case 'sa':
166
+ return `/store/en/sa/checkout`;
167
+ default:
168
+ return `/store/${lc}/${cc}/checkout`;
169
+ }
170
+ }
103
171
  }, {
104
172
  kind: "method",
105
173
  key: "updated",
@@ -126,12 +194,12 @@ let C4DMastheadCart = _decorate([customElement(`${c4dPrefix}-masthead-cart`)], f
126
194
  return html(_t || (_t = _`
127
195
  <a
128
196
  part="cart-link"
129
- href="/store/${0}/${0}/checkout"
197
+ href="${0}"
130
198
  class="${0}--header__menu-item ${0}--header__menu-title"
131
199
  aria-label="${0}"
132
200
  >${0}</a
133
201
  >
134
- `), lc, cc, prefix, prefix, linkLabel, ShoppingCart20());
202
+ `), this.handleURL(cc, lc), prefix, prefix, linkLabel, ShoppingCart20());
135
203
  }
136
204
  }, {
137
205
  kind: "get",
@@ -1 +1 @@
1
- {"version":3,"file":"masthead-cart.js","names":["StableSelectorMixin","html","LitElement","property","state","settings","carbonElement","customElement","ShoppingCart20","styles","LocaleAPI","SAPCommerceAPI","prefix","stablePrefix","c4dPrefix","C4DMastheadCart","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","decorators","attribute","key","value","lc","cc","connectedCallback","_superPropGet","hasActiveCart","getLocale","then","locale","updated","changedProperties","has","hidden","render","linkLabel","_t","_","static"],"sources":["components/masthead/masthead-cart.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2024\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ShoppingCart20 from '@carbon/web-components/es/icons/shopping--cart/20.js';\nimport styles from './masthead.scss';\nimport LocaleAPI from '@carbon/ibmdotcom-services/es/services/Locale/Locale.js';\nimport SAPCommerceAPI from '@carbon/ibmdotcom-services/es/services/SAPCommerce/SAPCommerce.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Cart icon in the masthead.\n *\n * @element c4d-masthead-cart\n * @csspart cart-link - The masthead cart link. Usage: `c4d-masthead-cart::part(cart-link)`\n */\n@customElement(`${c4dPrefix}-masthead-cart`)\nclass C4DMastheadCart extends StableSelectorMixin(LitElement) {\n /**\n * The `aria-label` attribute for the link.\n */\n @property({ attribute: 'link-label' })\n linkLabel = 'Cart';\n\n /**\n * Tracks whether the user has an active cart to control the display.\n */\n @state()\n hasActiveCart = false;\n\n /**\n * Store the locale. Defaults to en-us.\n */\n @state()\n locale = { lc: 'en', cc: 'us' };\n\n connectedCallback() {\n super.connectedCallback();\n // Check the relevant cookie for whether the user has an active cart.\n this.hasActiveCart = SAPCommerceAPI.hasActiveCart();\n // Fetch the locale for the page.\n LocaleAPI.getLocale().then((locale) => {\n this.locale = locale;\n });\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { hasActiveCart } = this;\n if (changedProperties.has('hasActiveCart')) {\n this.hidden = !hasActiveCart;\n }\n }\n\n render() {\n const {\n linkLabel,\n locale: { cc, lc },\n } = this;\n\n return html`\n <a\n part=\"cart-link\"\n href=\"/store/${lc}/${cc}/checkout\"\n class=\"${prefix}--header__menu-item ${prefix}--header__menu-title\"\n aria-label=\"${linkLabel}\"\n >${ShoppingCart20()}</a\n >\n `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--masthead-cart`;\n }\n\n static styles = styles;\n}\n\nexport default C4DMastheadCart;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"masthead-cart.js","names":["StableSelectorMixin","html","LitElement","property","state","settings","carbonElement","customElement","ShoppingCart20","styles","LocaleAPI","SAPCommerceAPI","prefix","stablePrefix","c4dPrefix","C4DMastheadCart","_decorate","_initialize","_StableSelectorMixin","constructor","args","F","d","kind","decorators","attribute","key","value","lc","cc","connectedCallback","_superPropGet","updateCart","checkCartWithRetry","window","addEventListener","getLocale","then","locale","disconnectedCallback","removeEventListener","hasCart","hasActiveCart","retries","delay","check","setTimeout","handleURL","updated","changedProperties","has","hidden","render","linkLabel","_t","_","static"],"sources":["components/masthead/masthead-cart.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2024, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport StableSelectorMixin from '../../globals/mixins/stable-selector';\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport settings from '@carbon/ibmdotcom-utilities/es/utilities/settings/settings.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport ShoppingCart20 from '@carbon/web-components/es/icons/shopping--cart/20.js';\nimport styles from './masthead.scss';\nimport LocaleAPI from '@carbon/ibmdotcom-services/es/services/Locale/Locale.js';\nimport SAPCommerceAPI from '@carbon/ibmdotcom-services/es/services/SAPCommerce/SAPCommerce.js';\n\nconst { prefix, stablePrefix: c4dPrefix } = settings;\n\n/**\n * The Cart icon in the masthead.\n *\n * @element c4d-masthead-cart\n * @csspart cart-link - The masthead cart link. Usage: `c4d-masthead-cart::part(cart-link)`\n */\n@customElement(`${c4dPrefix}-masthead-cart`)\nclass C4DMastheadCart extends StableSelectorMixin(LitElement) {\n /**\n * The `aria-label` attribute for the link.\n */\n @property({ attribute: 'link-label' })\n linkLabel = 'Cart';\n\n /**\n * Tracks whether the user has an active cart to control the display.\n */\n @state()\n hasActiveCart = false;\n\n /**\n * Store the locale. Defaults to en-us.\n */\n @state()\n locale = { lc: 'en', cc: 'us' };\n\n connectedCallback() {\n super.connectedCallback();\n\n // Initial check\n this.updateCart();\n\n // Fallback retry\n this.checkCartWithRetry();\n\n // Listen for cross-tab updates\n window.addEventListener('storage', this.updateCart);\n\n // Fetch locale\n LocaleAPI.getLocale().then((locale) => {\n this.locale = locale;\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('storage', this.updateCart);\n }\n\n /**\n * Updates cart state\n */\n updateCart = () => {\n const hasCart = SAPCommerceAPI.hasActiveCart();\n this.hasActiveCart = hasCart;\n };\n\n /**\n * Checks if the user has an active cart and retries a few times if the cart cookie is not available yet.\n */\n checkCartWithRetry(retries = 5, delay = 200) {\n const check = () => {\n const hasCart = SAPCommerceAPI.hasActiveCart();\n\n if (hasCart) {\n this.hasActiveCart = true;\n return;\n }\n\n if (retries > 0) {\n retries--;\n setTimeout(check, delay);\n }\n };\n\n check();\n }\n\n /**\n * Filter the correct checkout URL based on locale and country code.\n */\n handleURL(cc: string, lc: string) {\n switch (cc) {\n case 'uk':\n return `/store/en/gb/checkout`;\n case 'ae':\n return `/store/en/ae/checkout`;\n case 'sa':\n return `/store/en/sa/checkout`;\n default:\n return `/store/${lc}/${cc}/checkout`;\n }\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { hasActiveCart } = this;\n if (changedProperties.has('hasActiveCart')) {\n this.hidden = !hasActiveCart;\n }\n }\n\n render() {\n const {\n linkLabel,\n locale: { cc, lc },\n } = this;\n\n return html`\n <a\n part=\"cart-link\"\n href=\"${this.handleURL(cc, lc)}\"\n class=\"${prefix}--header__menu-item ${prefix}--header__menu-title\"\n aria-label=\"${linkLabel}\"\n >${ShoppingCart20()}</a\n >\n `;\n }\n\n static get stableSelector() {\n return `${c4dPrefix}--masthead-cart`;\n }\n\n static styles = styles;\n}\n\nexport default C4DMastheadCart;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/ibmdotcom-web-components",
3
- "version": "2.46.0",
3
+ "version": "2.47.0",
4
4
  "description": "Carbon for IBM.com Web Components",
5
5
  "license": "Apache-2.0",
6
6
  "exports": {
@@ -244,5 +244,5 @@
244
244
  "web-component-analyzer": "1.2.0-next.0",
245
245
  "webpack": "^4.46.0"
246
246
  },
247
- "gitHead": "342fe61a81841e75e74ba114505d2f85527c9fa4"
247
+ "gitHead": "90b587c3f867e97961d6dfa5e1a379dca0ff62bd"
248
248
  }