@carbon/web-components 2.47.0-rc.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.
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/menu/menu.scss.js +1 -1
- package/es/components/notification/actionable-notification.js +8 -1
- package/es/components/notification/actionable-notification.js.map +1 -1
- package/es/components/pagination/pagination.js +7 -4
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/tabs/defs.d.ts +4 -0
- package/es/components/tabs/defs.js +4 -0
- package/es/components/tabs/defs.js.map +1 -1
- package/es/components/tabs/tabs.d.ts +2 -4
- package/es/components/tabs/tabs.js +37 -8
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/menu/menu.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.js +8 -1
- package/es-custom/components/notification/actionable-notification.js.map +1 -1
- package/es-custom/components/pagination/pagination.js +7 -4
- package/es-custom/components/pagination/pagination.js.map +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/tabs/defs.d.ts +4 -0
- package/es-custom/components/tabs/defs.js +4 -0
- package/es-custom/components/tabs/defs.js.map +1 -1
- package/es-custom/components/tabs/tabs.d.ts +2 -4
- package/es-custom/components/tabs/tabs.js +37 -8
- package/es-custom/components/tabs/tabs.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/lib/components/tabs/defs.d.ts +4 -0
- package/lib/components/tabs/defs.js +4 -0
- package/lib/components/tabs/defs.js.map +1 -1
- package/lib/components/tabs/tabs.d.ts +2 -4
- package/package.json +6 -6
- package/scss/components/menu/menu.scss +11 -2
- package/scss/components/tabs/tabs.scss +7 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { css } from 'lit';
|
|
9
9
|
|
|
10
|
-
var styles = css(["@keyframes cds--hide-feedback{0%{opacity:1;visibility:inherit}to{opacity:0;visibility:hidden}}@keyframes cds--show-feedback{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:inherit}}@keyframes cds--skeleton{0%{opacity:.3;transform:scaleX(0);transform-origin:left}20%{opacity:1;transform:scaleX(1);transform-origin:left}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}to{opacity:.3;transform:scaleX(0);transform-origin:left}}.cds--layout--size-xs{--cds-layout-size-height-context:var(--cds-layout-size-height-xs,1.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xs{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xs,1.5rem))}.cds--layout-constraint--size__min-xs{--cds-layout-size-height-min:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout-constraint--size__max-xs{--cds-layout-size-height-max:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout--size-sm{--cds-layout-size-height-context:var(--cds-layout-size-height-sm,2rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-sm{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-sm,2rem))}.cds--layout-constraint--size__min-sm{--cds-layout-size-height-min:var(--cds-layout-size-height-sm,2rem)}.cds--layout-constraint--size__max-sm{--cds-layout-size-height-max:var(--cds-layout-size-height-sm,2rem)}.cds--layout--size-md{--cds-layout-size-height-context:var(--cds-layout-size-height-md,2.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-md{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-md,2.5rem))}.cds--layout-constraint--size__min-md{--cds-layout-size-height-min:var(--cds-layout-size-height-md,2.5rem)}.cds--layout-constraint--size__max-md{--cds-layout-size-height-max:var(--cds-layout-size-height-md,2.5rem)}.cds--layout--size-lg{--cds-layout-size-height-context:var(--cds-layout-size-height-lg,3rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-lg{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-lg,3rem))}.cds--layout-constraint--size__min-lg{--cds-layout-size-height-min:var(--cds-layout-size-height-lg,3rem)}.cds--layout-constraint--size__max-lg{--cds-layout-size-height-max:var(--cds-layout-size-height-lg,3rem)}.cds--layout--size-xl{--cds-layout-size-height-context:var(--cds-layout-size-height-xl,4rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xl,4rem))}.cds--layout-constraint--size__min-xl{--cds-layout-size-height-min:var(--cds-layout-size-height-xl,4rem)}.cds--layout-constraint--size__max-xl{--cds-layout-size-height-max:var(--cds-layout-size-height-xl,4rem)}.cds--layout--size-2xl{--cds-layout-size-height-context:var(--cds-layout-size-height-2xl,5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-2xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-2xl,5rem))}.cds--layout-constraint--size__min-2xl{--cds-layout-size-height-min:var(--cds-layout-size-height-2xl,5rem)}.cds--layout-constraint--size__max-2xl{--cds-layout-size-height-max:var(--cds-layout-size-height-2xl,5rem)}.cds--layout--density-condensed{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-condensed,0.5rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-condensed{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-condensed,0.5rem))}.cds--layout-constraint--density__min-condensed{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout-constraint--density__max-condensed{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout--density-normal{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-normal,1rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-normal{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-normal,1rem))}.cds--layout-constraint--density__min-normal{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-normal,1rem)}.cds--layout-constraint--density__max-normal{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-normal,1rem)}:root{--cds-layout-size-height-xs:1.5rem;--cds-layout-size-height-sm:2rem;--cds-layout-size-height-md:2.5rem;--cds-layout-size-height-lg:3rem;--cds-layout-size-height-xl:4rem;--cds-layout-size-height-2xl:5rem;--cds-layout-size-height-min:0px;--cds-layout-size-height-max:999999999px;--cds-layout-density-padding-inline-condensed:0.5rem;--cds-layout-density-padding-inline-normal:1rem;--cds-layout-density-padding-inline-min:0px;--cds-layout-density-padding-inline-max:999999999px}.cds--assistive-text,.cds--visually-hidden{block-size:1px;border:0;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0,0,0,0);inline-size:1px;visibility:inherit;white-space:nowrap}.cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu *,.cds--menu :after,.cds--menu :before{box-sizing:inherit}.cds--menu{background-color:var(--cds-layer);box-shadow:0 2px 6px var(--cds-shadow,rgba(0,0,0,.3));max-inline-size:18rem;min-inline-size:10rem;opacity:0;padding:.25rem 0;position:fixed;visibility:hidden;z-index:9000}.cds--menu--border{outline:1px solid var(--cds-border-subtle)}.cds--menu--background-token__background{background-color:var(--cds-background,#fff)}.cds--menu--shown{overflow:visible}.cds--menu-item{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);-moz-column-gap:.5rem;column-gap:.5rem;cursor:pointer;display:grid;font-size:var(--cds-body-short-01-font-size,.875rem);font-weight:var(--cds-body-short-01-font-weight,400);grid-template-columns:1fr max-content;letter-spacing:var(--cds-body-short-01-letter-spacing,.16px);line-height:var(--cds-body-short-01-line-height,1.28572);padding-inline:1rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.cds--menu-item:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--menu-item:focus{outline-style:dotted}}.cds--menu-item:hover{background-color:var(--cds-layer-hover);color:var(--cds-text-primary,#161616)}.cds--menu--xs .cds--menu-item{block-size:1.5rem}.cds--menu--sm .cds--menu-item{block-size:2rem}.cds--menu--md .cds--menu-item{block-size:2.5rem}.cds--menu--lg .cds--menu-item{block-size:3rem}.cds--menu-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cds--menu-item__shortcut{display:flex}.cds--menu-item-group>ul,.cds--menu-item-radio-group>ul{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu-item-group>ul *,.cds--menu-item-group>ul :after,.cds--menu-item-group>ul :before,.cds--menu-item-radio-group>ul *,.cds--menu-item-radio-group>ul :after,.cds--menu-item-radio-group>ul :before{box-sizing:inherit}.cds--menu-item__icon,.cds--menu-item__selection-icon{display:none}.cds--menu--with-icons>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1fr max-content}.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item>.cds--menu-item__selection-icon{display:flex}.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1rem 1fr max-content}.cds--menu-item--disabled{color:var(--cds-text-disabled,hsla(0,0%,9%,.25));cursor:not-allowed}.cds--menu-item--disabled.cds--menu-item--danger:hover,.cds--menu-item--disabled:hover{background-color:var(--cds-layer);color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.cds--menu-item--danger:focus,.cds--menu-item--danger:hover{background-color:var(--cds-button-danger-primary,#da1e28);color:var(--cds-text-on-color,#fff)}.cds--menu-item-divider{background-color:var(--cds-border-subtle);block-size:.0625rem;display:block;inline-size:100%;margin-block:.25rem}.cds--menu--with-icons{--child-icon-property:flex;--child-grid-template-columns:1rem 1fr max-content}:host(cds-menu){position:fixed;z-index:9000;--grid-template:1fr max-content;--display-icon-item:none;--display-selection-icon:none;--block-size-value:2rem}.cds--menu--with-icons{--grid-template:1rem 1fr max-content;--display-icon-item:flex}.cds--menu--with-selectable-items{--grid-template:1rem 1fr max-content;--display-selection-icon:flex}.cds--menu--with-icons.cds--menu--with-selectable-items{--grid-template:1rem 1rem 1fr max-content}.cds--menu{overflow-y:auto}.cds--menu--shown{opacity:1}.cds--menu--open{visibility:visible}.cds--menu--open:focus{outline:1px solid var(--cds-focus,#0f62fe)}@media screen and (prefers-contrast){.cds--menu--open:focus{outline-style:dotted}}.cds--menu:not(.cds--menu--open) .cds--menu--open{visibility:hidden}.cds--menu--with-icons{min-inline-size:12rem}.cds--menu--xs{--block-size-value:1.5rem}.cds--menu--sm{--block-size-value:2rem}.cds--menu--md{--block-size-value:2.5rem}.cds--menu--lg{--block-size-value:3rem}"]);
|
|
10
|
+
var styles = css(["@keyframes cds--hide-feedback{0%{opacity:1;visibility:inherit}to{opacity:0;visibility:hidden}}@keyframes cds--show-feedback{0%{opacity:0;visibility:hidden}to{opacity:1;visibility:inherit}}@keyframes cds--skeleton{0%{opacity:.3;transform:scaleX(0);transform-origin:left}20%{opacity:1;transform:scaleX(1);transform-origin:left}28%{transform:scaleX(1);transform-origin:right}51%{transform:scaleX(0);transform-origin:right}58%{transform:scaleX(0);transform-origin:right}82%{transform:scaleX(1);transform-origin:right}83%{transform:scaleX(1);transform-origin:left}96%{transform:scaleX(0);transform-origin:left}to{opacity:.3;transform:scaleX(0);transform-origin:left}}.cds--layout--size-xs{--cds-layout-size-height-context:var(--cds-layout-size-height-xs,1.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xs{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xs,1.5rem))}.cds--layout-constraint--size__min-xs{--cds-layout-size-height-min:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout-constraint--size__max-xs{--cds-layout-size-height-max:var(--cds-layout-size-height-xs,1.5rem)}.cds--layout--size-sm{--cds-layout-size-height-context:var(--cds-layout-size-height-sm,2rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-sm{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-sm,2rem))}.cds--layout-constraint--size__min-sm{--cds-layout-size-height-min:var(--cds-layout-size-height-sm,2rem)}.cds--layout-constraint--size__max-sm{--cds-layout-size-height-max:var(--cds-layout-size-height-sm,2rem)}.cds--layout--size-md{--cds-layout-size-height-context:var(--cds-layout-size-height-md,2.5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-md{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-md,2.5rem))}.cds--layout-constraint--size__min-md{--cds-layout-size-height-min:var(--cds-layout-size-height-md,2.5rem)}.cds--layout-constraint--size__max-md{--cds-layout-size-height-max:var(--cds-layout-size-height-md,2.5rem)}.cds--layout--size-lg{--cds-layout-size-height-context:var(--cds-layout-size-height-lg,3rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-lg{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-lg,3rem))}.cds--layout-constraint--size__min-lg{--cds-layout-size-height-min:var(--cds-layout-size-height-lg,3rem)}.cds--layout-constraint--size__max-lg{--cds-layout-size-height-max:var(--cds-layout-size-height-lg,3rem)}.cds--layout--size-xl{--cds-layout-size-height-context:var(--cds-layout-size-height-xl,4rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-xl,4rem))}.cds--layout-constraint--size__min-xl{--cds-layout-size-height-min:var(--cds-layout-size-height-xl,4rem)}.cds--layout-constraint--size__max-xl{--cds-layout-size-height-max:var(--cds-layout-size-height-xl,4rem)}.cds--layout--size-2xl{--cds-layout-size-height-context:var(--cds-layout-size-height-2xl,5rem);--cds-layout-size-height:var(--cds-layout-size-height-context)}.cds--layout-constraint--size__default-2xl{--cds-layout-size-height:var(--cds-layout-size-height-context,var(--cds-layout-size-height-2xl,5rem))}.cds--layout-constraint--size__min-2xl{--cds-layout-size-height-min:var(--cds-layout-size-height-2xl,5rem)}.cds--layout-constraint--size__max-2xl{--cds-layout-size-height-max:var(--cds-layout-size-height-2xl,5rem)}.cds--layout--density-condensed{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-condensed,0.5rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-condensed{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-condensed,0.5rem))}.cds--layout-constraint--density__min-condensed{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout-constraint--density__max-condensed{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-condensed,0.5rem)}.cds--layout--density-normal{--cds-layout-density-padding-inline-context:var(--cds-layout-density-padding-inline-normal,1rem);--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context)}.cds--layout-constraint--density__default-normal{--cds-layout-density-padding-inline:var(--cds-layout-density-padding-inline-context,var(--cds-layout-density-padding-inline-normal,1rem))}.cds--layout-constraint--density__min-normal{--cds-layout-density-padding-inline-min:var(--cds-layout-density-padding-inline-normal,1rem)}.cds--layout-constraint--density__max-normal{--cds-layout-density-padding-inline-max:var(--cds-layout-density-padding-inline-normal,1rem)}:root{--cds-layout-size-height-xs:1.5rem;--cds-layout-size-height-sm:2rem;--cds-layout-size-height-md:2.5rem;--cds-layout-size-height-lg:3rem;--cds-layout-size-height-xl:4rem;--cds-layout-size-height-2xl:5rem;--cds-layout-size-height-min:0px;--cds-layout-size-height-max:999999999px;--cds-layout-density-padding-inline-condensed:0.5rem;--cds-layout-density-padding-inline-normal:1rem;--cds-layout-density-padding-inline-min:0px;--cds-layout-density-padding-inline-max:999999999px}.cds--assistive-text,.cds--visually-hidden{block-size:1px;border:0;margin:-1px;overflow:hidden;padding:0;position:absolute;clip:rect(0,0,0,0);inline-size:1px;visibility:inherit;white-space:nowrap}.cds--layer-one,:root{--cds-layer:var(--cds-layer-01,#f4f4f4);--cds-layer-active:var(--cds-layer-active-01,#c6c6c6);--cds-layer-background:var(--cds-layer-background-01,#fff);--cds-layer-hover:var(--cds-layer-hover-01,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-01,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-01,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-01,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-01,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-01,#a8a8a8);--cds-field:var(--cds-field-01,#f4f4f4);--cds-field-hover:var(--cds-field-hover-01,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-00,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-01,#c6c6c6);--cds-border-strong:var(--cds-border-strong-01,#8d8d8d);--cds-border-tile:var(--cds-border-tile-01,#c6c6c6)}.cds--layer-two{--cds-layer:var(--cds-layer-02,#fff);--cds-layer-active:var(--cds-layer-active-02,#c6c6c6);--cds-layer-background:var(--cds-layer-background-02,#f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02,#a8a8a8);--cds-field:var(--cds-field-02,#fff);--cds-field-hover:var(--cds-field-hover-02,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01,#c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02,#c6c6c6);--cds-border-strong:var(--cds-border-strong-02,#8d8d8d);--cds-border-tile:var(--cds-border-tile-02,#a8a8a8)}.cds--layer-three{--cds-layer:var(--cds-layer-03,#f4f4f4);--cds-layer-active:var(--cds-layer-active-03,#c6c6c6);--cds-layer-background:var(--cds-layer-background-03,#fff);--cds-layer-hover:var(--cds-layer-hover-03,#e8e8e8);--cds-layer-selected:var(--cds-layer-selected-03,#e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-03,#d1d1d1);--cds-layer-accent:var(--cds-layer-accent-03,#e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-03,#d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-03,#a8a8a8);--cds-field:var(--cds-field-03,#f4f4f4);--cds-field-hover:var(--cds-field-hover-03,#e8e8e8);--cds-border-subtle:var(--cds-border-subtle-02,#e0e0e0);--cds-border-subtle-selected:var(--cds-border-subtle-selected-03,#c6c6c6);--cds-border-strong:var(--cds-border-strong-03,#8d8d8d);--cds-border-tile:var(--cds-border-tile-03,#c6c6c6)}.cds--layer-one.cds--layer__with-background,.cds--layer-three.cds--layer__with-background,.cds--layer-two.cds--layer__with-background{background-color:var(--cds-layer-background)}.cds--menu{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu *,.cds--menu :after,.cds--menu :before{box-sizing:inherit}.cds--menu{background-color:var(--cds-layer);box-shadow:0 2px 6px var(--cds-shadow,rgba(0,0,0,.3));max-inline-size:18rem;min-inline-size:10rem;padding:.25rem 0;position:fixed;z-index:9000}.cds--menu--border{outline:1px solid var(--cds-border-subtle)}.cds--menu--background-token__background{background-color:var(--cds-background,#fff)}.cds--menu:not(.cds--menu--open) .cds--menu--open{visibility:hidden}.cds--menu--shown{overflow:visible}.cds--menu-item{align-items:center;block-size:2rem;color:var(--cds-text-secondary,#525252);-moz-column-gap:.5rem;column-gap:.5rem;cursor:pointer;display:grid;font-size:var(--cds-body-short-01-font-size,.875rem);font-weight:var(--cds-body-short-01-font-weight,400);grid-template-columns:1fr max-content;letter-spacing:var(--cds-body-short-01-letter-spacing,.16px);line-height:var(--cds-body-short-01-line-height,1.28572);padding-inline:1rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.cds--menu-item:focus{outline:2px solid var(--cds-focus,#0f62fe);outline-offset:-2px}@media screen and (prefers-contrast){.cds--menu-item:focus{outline-style:dotted}}.cds--menu-item:hover{background-color:var(--cds-layer-hover);color:var(--cds-text-primary,#161616)}.cds--menu--xs .cds--menu-item{block-size:1.5rem}.cds--menu--sm .cds--menu-item{block-size:2rem}.cds--menu--md .cds--menu-item{block-size:2.5rem}.cds--menu--lg .cds--menu-item{block-size:3rem}.cds--menu-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cds--menu-item__shortcut{display:flex}.cds--menu-item-group>ul,.cds--menu-item-radio-group>ul{border:0;box-sizing:border-box;font-family:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}.cds--menu-item-group>ul *,.cds--menu-item-group>ul :after,.cds--menu-item-group>ul :before,.cds--menu-item-radio-group>ul *,.cds--menu-item-radio-group>ul :after,.cds--menu-item-radio-group>ul :before{box-sizing:inherit}.cds--menu-item__icon,.cds--menu-item__selection-icon{display:none}.cds--menu--with-icons>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1fr max-content}.cds--menu--with-icons>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-icons>.cds--menu-item>.cds--menu-item__icon,.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item>.cds--menu-item__selection-icon,.cds--menu--with-selectable-items>.cds--menu-item>.cds--menu-item__selection-icon{display:flex}.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-group>ul>.cds--menu-item,.cds--menu--with-icons.cds--menu--with-selectable-items>.cds--menu-item-radio-group>ul>.cds--menu-item{grid-template-columns:1rem 1rem 1fr max-content}.cds--menu-item--disabled{color:var(--cds-text-disabled,hsla(0,0%,9%,.25));cursor:not-allowed}.cds--menu-item--disabled.cds--menu-item--danger:hover,.cds--menu-item--disabled:hover{background-color:var(--cds-layer);color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.cds--menu-item--danger:focus,.cds--menu-item--danger:hover{background-color:var(--cds-button-danger-primary,#da1e28);color:var(--cds-text-on-color,#fff)}.cds--menu-item-divider{background-color:var(--cds-border-subtle);block-size:.0625rem;display:block;inline-size:100%;margin-block:.25rem}.cds--menu--with-icons{--child-icon-property:flex;--child-grid-template-columns:1rem 1fr max-content}:host(cds-menu){position:fixed;z-index:9000;--grid-template:1fr max-content;--display-icon-item:none;--display-selection-icon:none;--block-size-value:2rem}:host(cds-menu):not([open]){pointer-events:none}.cds--menu--with-icons{--grid-template:1rem 1fr max-content;--display-icon-item:flex}.cds--menu--with-selectable-items{--grid-template:1rem 1fr max-content;--display-selection-icon:flex}.cds--menu--with-icons.cds--menu--with-selectable-items{--grid-template:1rem 1rem 1fr max-content}.cds--menu{opacity:0;overflow-y:auto;pointer-events:none;visibility:hidden}.cds--menu--shown{opacity:1}.cds--menu--open{visibility:visible}.cds--menu--open:focus{outline:1px solid var(--cds-focus,#0f62fe)}@media screen and (prefers-contrast){.cds--menu--open:focus{outline-style:dotted}}.cds--menu--open.cds--menu--shown{pointer-events:auto}.cds--menu--with-icons{min-inline-size:12rem}.cds--menu--xs{--block-size-value:1.5rem}.cds--menu--sm{--block-size-value:2rem}.cds--menu--md{--block-size-value:2.5rem}.cds--menu--lg{--block-size-value:3rem}"]);
|
|
11
11
|
|
|
12
12
|
export { styles as default };
|
|
13
13
|
//# sourceMappingURL=menu.scss.js.map
|
|
@@ -230,7 +230,14 @@ let CDSActionableNotification = CDSActionableNotification_1 = class CDSActionabl
|
|
|
230
230
|
}
|
|
231
231
|
if (changedProperties.has('hasFocus')) {
|
|
232
232
|
if (this.hasFocus) {
|
|
233
|
-
|
|
233
|
+
if (button) {
|
|
234
|
+
button.updateComplete.then(() => {
|
|
235
|
+
button.focus();
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
this.focus();
|
|
240
|
+
}
|
|
234
241
|
}
|
|
235
242
|
}
|
|
236
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionable-notification.js","sources":["../../../src/components/notification/actionable-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 */\nimport { html } from 'lit';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix, selectorTabbable } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE, NOTIFICATION_KIND } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './actionable-notification.scss?lit';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\n\n/**\n * The default icons, keyed by notification kind.\n */\nexport const iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(elems: NodeListOf<HTMLElement>, reverse = false) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Actionable notification.\n *\n * @element cds-actionable-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-actionable-notification`)\nclass CDSActionableNotification extends HostListenerMixin(\n CDSInlineNotification\n) {\n protected _type = NOTIFICATION_TYPE.ACTIONABLE;\n\n /**\n * Inline notification type.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Pass in the action button label that will be rendered within the ActionableNotification.\n */\n @property({ type: String, reflect: true, attribute: 'action-button-label' })\n actionButtonLabel = '';\n\n /**\n * Specify if pressing the escape key should close notifications\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-escape' })\n closeOnEscape = true;\n\n /**\n * Specify if focus should be moved to the component when the notification contains actions\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-focus' })\n hasFocus = true;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `keydown` event on this event.\n * Escape will close the notification if `closeOnEscape` is true\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeyDown = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.closeOnEscape && key === 'Escape') {\n this.open = false;\n }\n };\n\n @HostListener('shadowRoot:focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains =\n target !== this &&\n (this.contains(target as Node) ||\n (this.shadowRoot?.contains(target as Node) &&\n target !== (startSentinelNode as Node) &&\n target !== (endSentinelNode as Node)));\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (startSentinelNode as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This notification is open\n // * Notification role attribute is set to 'alertdialog'\n // * The viewport still has focus\n // * Notification body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForActionableNotification } = this\n .constructor as typeof CDSActionableNotification;\n if (\n open &&\n this.getAttribute('role') === 'alertdialog' &&\n relatedTarget &&\n !(relatedTarget instanceof CDSActionableNotification) &&\n oldContains &&\n !currentContains\n ) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // tabbable elements in Shadow root\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const shadowElems = this.shadowRoot!.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n // tabbable elements in light DOM\n const lightElems = this.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>, true) &&\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>, true) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>) &&\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>)\n ) {\n this.focus();\n }\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alertdialog');\n }\n super.connectedCallback();\n }\n\n protected _renderIcon() {\n const { kind, inline } = this;\n const IconComponent = iconsForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${inline ? 'inline' : 'toast'}-notification__icon`,\n });\n }\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption &&\n html`<div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSActionableNotification)\n .selectorActionButton\n );\n if (changedProperties.has('inline')) {\n button?.setAttribute('kind', this.inline ? 'ghost' : 'tertiary');\n }\n if (changedProperties.has('lowContrast')) {\n if (this.lowContrast) {\n button?.setAttribute('low-contrast', 'true');\n } else {\n button?.removeAttribute('low-contrast');\n }\n }\n if (changedProperties.has('hideCloseButton')) {\n if (this.hideCloseButton) {\n button?.setAttribute('hide-close-button', 'true');\n } else {\n button?.removeAttribute('hide-close-button');\n }\n }\n if (changedProperties.has('hasFocus')) {\n if (this.hasFocus) {\n this.focus();\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()} ${this._renderText()}\n </div>\n <slot name=\"action\"></slot>\n ${this._renderButton()}\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector that will return the action button element\n */\n static get selectorActionButton() {\n return `${prefix}-actionable-notification-button`;\n }\n\n static styles = styles;\n}\n\nexport default CDSActionableNotification;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionable-notification.js","sources":["../../../src/components/notification/actionable-notification.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 */\nimport { html } from 'lit';\nimport CheckmarkFilled20 from '@carbon/icons/es/checkmark--filled/20.js';\nimport InformationFilled20 from '@carbon/icons/es/information--filled/20.js';\nimport InformationSquareFilled20 from '@carbon/icons/es/information--square--filled/20.js';\nimport WarningFilled20 from '@carbon/icons/es/warning--filled/20.js';\nimport WarningAltFilled20 from '@carbon/icons/es/warning--alt--filled/20.js';\nimport ErrorFilled20 from '@carbon/icons/es/error--filled/20.js';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix, selectorTabbable } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE, NOTIFICATION_KIND } from './defs';\nimport CDSInlineNotification from './inline-notification';\nimport styles from './actionable-notification.scss?lit';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport CDSButton from '../button/button';\n\n/**\n * The default icons, keyed by notification kind.\n */\nexport const iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: InformationFilled20,\n [NOTIFICATION_KIND.INFO_SQUARE]: InformationSquareFilled20,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.WARNING_ALT]: WarningAltFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(elems: NodeListOf<HTMLElement>, reverse = false) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const active = elem.ownerDocument!.activeElement;\n if (\n active === elem ||\n active?.contains(elem) ||\n active?.shadowRoot?.contains(elem)\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Actionable notification.\n *\n * @element cds-actionable-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires cds-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires cds-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-actionable-notification`)\nclass CDSActionableNotification extends HostListenerMixin(\n CDSInlineNotification\n) {\n protected _type = NOTIFICATION_TYPE.ACTIONABLE;\n\n /**\n * Inline notification type.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Pass in the action button label that will be rendered within the ActionableNotification.\n */\n @property({ type: String, reflect: true, attribute: 'action-button-label' })\n actionButtonLabel = '';\n\n /**\n * Specify if pressing the escape key should close notifications\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-escape' })\n closeOnEscape = true;\n\n /**\n * Specify if focus should be moved to the component when the notification contains actions\n */\n @property({ type: Boolean, reflect: true, attribute: 'has-focus' })\n hasFocus = true;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of actionable notification content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `keydown` event on this event.\n * Escape will close the notification if `closeOnEscape` is true\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeyDown = async (event: KeyboardEvent) => {\n const { key } = event;\n if (this.closeOnEscape && key === 'Escape') {\n this.open = false;\n }\n };\n\n @HostListener('shadowRoot:focusout')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains =\n target !== this &&\n (this.contains(target as Node) ||\n (this.shadowRoot?.contains(target as Node) &&\n target !== (startSentinelNode as Node) &&\n target !== (endSentinelNode as Node)));\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (startSentinelNode as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This notification is open\n // * Notification role attribute is set to 'alertdialog'\n // * The viewport still has focus\n // * Notification body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForActionableNotification } = this\n .constructor as typeof CDSActionableNotification;\n if (\n open &&\n this.getAttribute('role') === 'alertdialog' &&\n relatedTarget &&\n !(relatedTarget instanceof CDSActionableNotification) &&\n oldContains &&\n !currentContains\n ) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // tabbable elements in Shadow root\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const shadowElems = this.shadowRoot!.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n // tabbable elements in light DOM\n const lightElems = this.querySelectorAll(\n selectorTabbableForActionableNotification\n );\n\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>, true) &&\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>, true) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n } else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof CDSActionableNotification)._delay();\n if (\n !tryFocusElems(lightElems as NodeListOf<HTMLElement>) &&\n !tryFocusElems(shadowElems as NodeListOf<HTMLElement>)\n ) {\n this.focus();\n }\n }\n }\n };\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alertdialog');\n }\n super.connectedCallback();\n }\n\n protected _renderIcon() {\n const { kind, inline } = this;\n const IconComponent = iconsForKinds[kind];\n return !IconComponent\n ? undefined\n : iconLoader(IconComponent, {\n class: `${prefix}--${inline ? 'inline' : 'toast'}-notification__icon`,\n });\n }\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <div class=\"${prefix}--${type}-notification__content\">\n <div class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n ${caption &&\n html`<div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>`}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const button = this.querySelector(\n (this.constructor as typeof CDSActionableNotification)\n .selectorActionButton\n );\n if (changedProperties.has('inline')) {\n button?.setAttribute('kind', this.inline ? 'ghost' : 'tertiary');\n }\n if (changedProperties.has('lowContrast')) {\n if (this.lowContrast) {\n button?.setAttribute('low-contrast', 'true');\n } else {\n button?.removeAttribute('low-contrast');\n }\n }\n if (changedProperties.has('hideCloseButton')) {\n if (this.hideCloseButton) {\n button?.setAttribute('hide-close-button', 'true');\n } else {\n button?.removeAttribute('hide-close-button');\n }\n }\n if (changedProperties.has('hasFocus')) {\n if (this.hasFocus) {\n if (button) {\n (button as CDSButton).updateComplete.then(() => {\n (button as HTMLElement).focus();\n });\n } else {\n this.focus();\n }\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()} ${this._renderText()}\n </div>\n <slot name=\"action\"></slot>\n ${this._renderButton()}\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector that will return the action button element\n */\n static get selectorActionButton() {\n return `${prefix}-actionable-notification-button`;\n }\n\n static styles = styles;\n}\n\nexport default CDSActionableNotification;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -249,8 +249,8 @@ let CDSPagination = class CDSPagination extends FocusMixin(HostListenerMixin(Lit
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
updated(changedProperties) {
|
|
252
|
-
var _a, _b;
|
|
253
|
-
const {
|
|
252
|
+
var _a, _b, _c;
|
|
253
|
+
const { pageSize, totalItems } = this;
|
|
254
254
|
const { selectorPageSizesSelect, selectorPagesSelect } = this
|
|
255
255
|
.constructor;
|
|
256
256
|
if (changedProperties.has('pageSize')) {
|
|
@@ -282,8 +282,11 @@ let CDSPagination = class CDSPagination extends FocusMixin(HostListenerMixin(Lit
|
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
284
|
if (changedProperties.has('page')) {
|
|
285
|
-
|
|
286
|
-
this.
|
|
285
|
+
this.start = this._calculateStart(this.page, this.pageSize, this.totalItems, this.pagesUnknown);
|
|
286
|
+
const pagesSelect = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(this.constructor.selectorPagesSelect);
|
|
287
|
+
if (pagesSelect) {
|
|
288
|
+
pagesSelect.value = String(this.page);
|
|
289
|
+
}
|
|
287
290
|
}
|
|
288
291
|
}
|
|
289
292
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sources":["../../../src/components/pagination/pagination.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 '../button/index';\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport CDSSelect from '../select/select';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { PAGINATION_SIZE } from './defs';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { prefix } from '../../globals/settings';\nimport styles from './pagination.scss?lit';\n\n/**\n * Pagination UI.\n *\n * @element cds-pagination\n * @slot page-sizes-select - Where to put in the `<page-sizes-select>`.\n * @fires cds-pagination-changed-current - The custom event fired after the current page is changed from `<cds-pages-select>`.\n * @fires cds-page-sizes-select-changed - The custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.\n */\n@customElement(`${prefix}-pagination`)\nclass CDSPagination extends FocusMixin(HostListenerMixin(LitElement)) {\n @query(`${prefix}-select`)\n private _pageSizeSelect!: HTMLElement;\n\n private _handleSlotChange({ target }: Event) {\n const content = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n\n content.forEach((item) => {\n this._pageSizeSelect.appendChild(item);\n });\n }\n\n /**\n * @returns Page status text.\n */\n private _renderStatusText() {\n const {\n start,\n pageSize,\n totalItems,\n pagesUnknown,\n formatStatusWithDeterminateTotal,\n formatStatusWithIndeterminateTotal,\n } = this;\n\n const min = totalItems === 0 ? 0 : start + 1;\n\n if (pagesUnknown || totalItems == null) {\n // * Indeterminate total:\n // - totalItems === 0 → \"0–0 of 0 items\"\n // - else → closed range \"1–10 items\", \"11–20 items\", etc.\n if (totalItems === 0) {\n return formatStatusWithDeterminateTotal({ start: 0, end: 0, count: 0 });\n }\n const end = start + pageSize;\n return formatStatusWithIndeterminateTotal({\n start: min,\n end,\n // Use visible range for pluralization, so we get \"items\" not \"item\"\n count: Math.max(0, end - start),\n });\n }\n\n // * Determinate total:\n // - Regular: \"1–10 of 100 items\"\n // - When totalItems === 0 → \"0–0 of 0 item\"\n return formatStatusWithDeterminateTotal({\n start: min,\n end: Math.min(start + pageSize, totalItems),\n count: totalItems,\n });\n }\n\n /**\n * Calculates the start value based on `page`, `pageSize`, and `totalItems`\n */\n private _calculateStart(\n page: number,\n pageSize: number,\n totalItems: number | undefined,\n pagesUnknown: boolean\n ): number {\n if (!pagesUnknown && totalItems === 0) return 0;\n const safePageSize = pageSize > 0 ? pageSize : 1;\n const calculatedStart = (Math.max(1, page) - 1) * safePageSize;\n\n // Only clamp to the last page when the total is determinate\n if (!pagesUnknown && Number.isFinite(totalItems)) {\n const maxStart =\n (Math.ceil((totalItems as number) / safePageSize) - 1) * safePageSize;\n return Math.max(0, Math.min(calculatedStart, maxStart));\n }\n\n return Math.max(0, calculatedStart);\n }\n\n /**\n * Handles user-initiated change in the row number the current page starts with.\n *\n * @param start The new current row number, index that starts with zero.\n */\n private _handleUserInitiatedChangeStart(start: number) {\n this.start = start;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSPagination).eventChangeCurrent,\n {\n bubbles: true,\n composed: true,\n detail: {\n page: this.page,\n pageSize: this.pageSize,\n },\n }\n )\n );\n }\n\n /**\n * Handles user-initiated change in the size of the page.\n */\n private _handleUserInitiatedPageSizeChange() {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSPagination).eventPageSizeChanged,\n {\n bubbles: true,\n composed: true,\n detail: {\n page: this.page,\n pageSize: this.pageSize,\n },\n }\n )\n );\n }\n\n /**\n * Handles `click` event on the previous button.\n */\n private _handleClickPrevButton() {\n const { start: oldStart, pageSize } = this;\n this.page--;\n const newStart = Math.max(oldStart - pageSize, 0);\n if (newStart !== oldStart) {\n this._handleUserInitiatedChangeStart(newStart);\n }\n // reset focus to forward button if it reaches the beginning\n if (this.page === 1) {\n const { selectorForwardButton } = this\n .constructor as typeof CDSPagination;\n (\n this.shadowRoot?.querySelector(\n `[button-class-name*=${selectorForwardButton}]`\n ) as HTMLElement\n ).focus();\n }\n }\n\n /**\n * Handles `click` event on the next button.\n */\n private _handleClickNextButton() {\n const { start: oldStart, pageSize, totalItems, pagesUnknown } = this;\n this.page++;\n const newStart = oldStart + pageSize;\n\n if (\n newStart < (totalItems == null ? Infinity : totalItems) ||\n pagesUnknown\n ) {\n this._handleUserInitiatedChangeStart(newStart);\n }\n // reset focus to previous button if it reaches the end and `pagesUnknown` is not true\n if (!pagesUnknown && this.page === this.totalPages) {\n const { selectorPreviousButton } = this\n .constructor as typeof CDSPagination;\n (\n this.shadowRoot?.querySelector(\n `[button-class-name*=${selectorPreviousButton}]`\n ) as HTMLElement\n ).focus();\n }\n }\n\n /**\n * Handles user-initiated change in number of rows per page.\n *\n * @param event The event.\n */\n @HostListener(`${prefix}-select-selected`)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeSelector(event) {\n const { value } = event.detail;\n const { totalItems, pageSize, pagesUnknown } = this;\n\n if (event.composedPath()[0] === this._pageSizeSelect) {\n this.pageSize = parseInt(value);\n // Default pageSize to effectively be 1 when we have a value of 0 to avoid\n // division by 0.\n this.totalPages =\n pageSize > 0 ? Math.ceil(totalItems / pageSize) : totalItems;\n this.page = 1;\n this.start = 0;\n this._handleUserInitiatedPageSizeChange();\n } else {\n this.page = value;\n const newStart = this._calculateStart(\n value,\n pageSize,\n totalItems,\n pagesUnknown\n );\n this._handleUserInitiatedChangeStart(newStart);\n }\n }\n\n /**\n * The assistive text for the button to go to previous page.\n */\n @property({ attribute: 'backward-text' })\n backwardText = 'Previous page';\n\n /**\n * The current page\n */\n @property({ type: Number, reflect: true })\n page = 1;\n\n /**\n * The formatter for the assistive text for screen readers to announce.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatLabelText = ({ count }) =>\n `Page of ${count} page${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter, used with determinate the total pages. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatStatusWithDeterminateTotal = ({ start, end, count }) =>\n `${start}–${end} of ${count} item${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter, used with indeterminate the total pages. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatStatusWithIndeterminateTotal = ({ start, end, count }) =>\n end == null\n ? `Item ${start}–`\n : `${start}–${end} item${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter for the text next to the select box. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSupplementalText = ({ count }) =>\n this.pagesUnknown || !this.totalItems\n ? `page`\n : `of ${count} page${count <= 1 ? '' : 's'}`;\n /**\n * `true` to explicitly state that user is at the last page.\n */\n @property({ type: Boolean, attribute: 'is-last-page' })\n isLastPage!: boolean;\n\n /**\n * The translatable text indicating the number of items per page.\n */\n @property({ attribute: 'items-per-page-text' })\n itemsPerPageText = 'Items per page:';\n\n /**\n * `true` if the pagination UI should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The assistive text for the button to go to next page.\n */\n @property({ attribute: 'forward-text' })\n forwardText = 'Next page';\n\n /**\n * true if the select box to change the page should be disabled.\n */\n @property({ type: Boolean, attribute: 'page-input-disabled' })\n pageInputDisabled = false;\n\n /**\n * Number of items per page.\n */\n @property({ type: Number, attribute: 'page-size', reflect: true })\n pageSize = 10;\n\n /**\n * true if the select box to change the items per page should be disabled.\n */\n @property({ type: Boolean, attribute: 'page-size-input-disabled' })\n pageSizeInputDisabled;\n\n /**\n * The label text for the UI to select page size.\n */\n @property({ attribute: 'page-size-label-text' })\n pageSizeLabelText!: string;\n\n /**\n * true if the total number of items is unknown.\n */\n @property({ type: Boolean, reflect: true, attribute: 'pages-unknown' })\n pagesUnknown = false;\n\n /**\n * Specify the size of the Pagination.\n */\n @property({ reflect: true })\n size = PAGINATION_SIZE.MEDIUM;\n\n /**\n * The row number where current page start with, index that starts with zero.\n */\n @property({ type: Number })\n start = 0;\n\n /**\n * The number of total items.\n */\n @property({\n type: Number,\n attribute: 'total-items',\n converter: {\n fromAttribute: (value) =>\n value === null || value === '' ? undefined : Number(value),\n },\n })\n totalItems!: number;\n\n /**\n * The number of total pages.\n */\n @property({ type: Number })\n totalPages = 1;\n\n updated(changedProperties) {\n const { page, pageSize, totalItems, pagesUnknown } = this;\n const { selectorPageSizesSelect, selectorPagesSelect } = this\n .constructor as typeof CDSPagination;\n\n if (changedProperties.has('pageSize')) {\n const pageSizeSelect = this.shadowRoot?.querySelector(\n selectorPageSizesSelect\n ) as CDSSelect | null;\n\n if (pageSizeSelect) {\n pageSizeSelect.value = String(pageSize ?? '');\n }\n }\n\n // Recompute total pages and clamp the visible page whenever any relevant input changes\n if (\n changedProperties.has('pageSize') ||\n changedProperties.has('start') ||\n changedProperties.has('totalItems') ||\n changedProperties.has('page')\n ) {\n const computedTotalPages =\n pageSize > 0\n ? Math.ceil((totalItems ?? 0) / pageSize)\n : (totalItems ?? 0);\n\n // Only assign if it actually changed to avoid unnecessary updates\n if (this.totalPages !== computedTotalPages) {\n this.updateComplete.then(() => {\n this.totalPages = computedTotalPages;\n });\n }\n\n const totalPagesSafe = Math.max(1, computedTotalPages || 1);\n const requestedPage = Math.max(1, Math.floor(this.page || 1));\n const displayPage = Math.min(requestedPage, totalPagesSafe);\n\n const pagesSelect = this.shadowRoot?.querySelector(\n selectorPagesSelect\n ) as CDSSelect | null;\n\n if (pagesSelect) {\n pagesSelect.value = displayPage.toString();\n }\n }\n\n if (changedProperties.has('page')) {\n const newStart = this._calculateStart(\n page,\n pageSize,\n totalItems,\n pagesUnknown\n );\n this._handleUserInitiatedChangeStart(newStart);\n }\n }\n\n render() {\n const {\n page,\n disabled,\n forwardText,\n backwardText,\n itemsPerPageText,\n pageInputDisabled,\n pageSize,\n pageSizeInputDisabled,\n pagesUnknown,\n size,\n start,\n totalItems,\n totalPages,\n _handleClickPrevButton: handleClickPrevButton,\n _handleClickNextButton: handleClickNextButton,\n _handleSlotChange: handleSlotChange,\n formatLabelText,\n formatSupplementalText,\n } = this;\n\n const { isLastPage = start + pageSize >= totalItems } = this;\n const prevButtonDisabled = disabled || start === 0;\n const nextButtonDisabled = disabled || (!pagesUnknown && isLastPage);\n\n const prevButtonClassMap = {\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--pagination__button`]: true,\n [`${prefix}--pagination__button--backward`]: true,\n [`${prefix}--pagination__button--no-index`]: prevButtonDisabled,\n [`${prefix}--btn--${size}`]: true,\n [`${prefix}--btn--ghost`]: true,\n };\n const nextButtonClassMap = {\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--pagination__button`]: true,\n [`${prefix}--pagination__button--forward`]: true,\n [`${prefix}--pagination__button--no-index`]: nextButtonDisabled,\n [`${prefix}--btn--${size}`]: true,\n [`${prefix}--btn--ghost`]: true,\n };\n\n const prevButtonClasses = Object.entries(prevButtonClassMap)\n .filter(([, value]) => value === true)\n .map(([key]) => key)\n .join(' ');\n const nextButtonClasses = Object.entries(nextButtonClassMap)\n .filter(([, value]) => value === true)\n .map(([key]) => key)\n .join(' ');\n\n const totalPagesSafe =\n Number.isFinite(totalPages) && totalPages > 0\n ? totalPages\n : Math.max(1, page || 1);\n\n return html`\n <div class=\"${prefix}--pagination__left\">\n <label for=\"select\" class=\"${prefix}--pagination__text\"\n ><slot name=\"label-text\">${itemsPerPageText}</slot></label\n >\n <cds-select\n ?disabled=${disabled || pageSizeInputDisabled}\n id=\"page-size-select\"\n left-select\n pagination\n size=\"${size}\"\n inline\n value=\"${pageSize}\">\n <slot @slotchange=${handleSlotChange}></slot>\n </cds-select>\n <span\n class=\"${prefix}--pagination__text ${prefix}--pagination__items-count\"\n >${this._renderStatusText()}</span\n >\n </div>\n <div class=\"${prefix}--pagination__right\">\n ${!pagesUnknown || totalItems\n ? html`\n <label\n for=\"select\"\n class=\"${prefix}--label ${prefix}--visually-hidden\">\n ${formatLabelText({ count: totalPages })}\n </label>\n `\n : null}\n ${pagesUnknown || !totalItems\n ? html`\n <span\n class=\"${prefix}--pagination__text ${prefix}--pagination__page-text ${prefix}--pagination__unknown-pages-text\"\n >${formatSupplementalText({ count: totalPages })} ${page}</span\n >\n `\n : html`\n <cds-select\n ?disabled=${disabled || pageInputDisabled}\n id=\"pages-select\"\n pagination\n size=\"${size}\"\n inline\n value=\"${page}\">\n ${Array.from(new Array(totalPagesSafe)).map(\n (_item, index) => html`\n <cds-select-item\n value=\"${index + 1}\"\n ?selected=${page === index + 1}>\n ${index + 1}\n </cds-select-item>\n `\n )}\n </cds-select>\n <span class=\"${prefix}--pagination__text\"\n >${formatSupplementalText({ count: totalPages })}</span\n >\n `}\n\n <div class=\"${prefix}--pagination__control-buttons\">\n <cds-button\n pagination\n size=\"${size}\"\n ?disabled=\"${prevButtonDisabled}\"\n button-class-name=\"${prevButtonClasses}\"\n tooltip-text=\"${backwardText}\"\n @click=\"${handleClickPrevButton}\">\n ${iconLoader(CaretLeft16, { slot: 'icon' })}\n </cds-button>\n <cds-button\n tooltip-position=\"top\"\n pagination\n size=\"${size}\"\n ?disabled=\"${nextButtonDisabled}\"\n button-class-name=\"${nextButtonClasses}\"\n tooltip-text=\"${forwardText}\"\n @click=\"${handleClickNextButton}\">\n ${iconLoader(CaretRight16, { slot: 'icon' })}\n </cds-button>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return the select box for the current page.\n */\n static get selectorPagesSelect() {\n return `${prefix}-select#pages-select`;\n }\n\n /**\n * A selector that will return the select box for page sizes.\n */\n static get selectorPageSizesSelect() {\n return `${prefix}-select`;\n }\n\n /**\n * A selector that will return the previous button.\n */\n static get selectorPreviousButton() {\n return `${prefix}--pagination__button--backward`;\n }\n\n /**\n * A selector that will return the forward button.\n */\n static get selectorForwardButton() {\n return `${prefix}--pagination__button--forward`;\n }\n\n /**\n * The name of the custom event fired after the current row number is changed.\n */\n static get eventChangeCurrent() {\n return `${prefix}-pagination-changed-current`;\n }\n\n /**\n * The name of the custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.\n */\n static get eventPageSizeChanged() {\n return `${prefix}-page-sizes-select-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSPagination;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.js","sources":["../../../src/components/pagination/pagination.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 '../button/index';\n\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport CDSSelect from '../select/select';\nimport CaretLeft16 from '@carbon/icons/es/caret--left/16.js';\nimport CaretRight16 from '@carbon/icons/es/caret--right/16.js';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { PAGINATION_SIZE } from './defs';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { prefix } from '../../globals/settings';\nimport styles from './pagination.scss?lit';\n\n/**\n * Pagination UI.\n *\n * @element cds-pagination\n * @slot page-sizes-select - Where to put in the `<page-sizes-select>`.\n * @fires cds-pagination-changed-current - The custom event fired after the current page is changed from `<cds-pages-select>`.\n * @fires cds-page-sizes-select-changed - The custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.\n */\n@customElement(`${prefix}-pagination`)\nclass CDSPagination extends FocusMixin(HostListenerMixin(LitElement)) {\n @query(`${prefix}-select`)\n private _pageSizeSelect!: HTMLElement;\n\n private _handleSlotChange({ target }: Event) {\n const content = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n\n content.forEach((item) => {\n this._pageSizeSelect.appendChild(item);\n });\n }\n\n /**\n * @returns Page status text.\n */\n private _renderStatusText() {\n const {\n start,\n pageSize,\n totalItems,\n pagesUnknown,\n formatStatusWithDeterminateTotal,\n formatStatusWithIndeterminateTotal,\n } = this;\n\n const min = totalItems === 0 ? 0 : start + 1;\n\n if (pagesUnknown || totalItems == null) {\n // * Indeterminate total:\n // - totalItems === 0 → \"0–0 of 0 items\"\n // - else → closed range \"1–10 items\", \"11–20 items\", etc.\n if (totalItems === 0) {\n return formatStatusWithDeterminateTotal({ start: 0, end: 0, count: 0 });\n }\n const end = start + pageSize;\n return formatStatusWithIndeterminateTotal({\n start: min,\n end,\n // Use visible range for pluralization, so we get \"items\" not \"item\"\n count: Math.max(0, end - start),\n });\n }\n\n // * Determinate total:\n // - Regular: \"1–10 of 100 items\"\n // - When totalItems === 0 → \"0–0 of 0 item\"\n return formatStatusWithDeterminateTotal({\n start: min,\n end: Math.min(start + pageSize, totalItems),\n count: totalItems,\n });\n }\n\n /**\n * Calculates the start value based on `page`, `pageSize`, and `totalItems`\n */\n private _calculateStart(\n page: number,\n pageSize: number,\n totalItems: number | undefined,\n pagesUnknown: boolean\n ): number {\n if (!pagesUnknown && totalItems === 0) return 0;\n const safePageSize = pageSize > 0 ? pageSize : 1;\n const calculatedStart = (Math.max(1, page) - 1) * safePageSize;\n\n // Only clamp to the last page when the total is determinate\n if (!pagesUnknown && Number.isFinite(totalItems)) {\n const maxStart =\n (Math.ceil((totalItems as number) / safePageSize) - 1) * safePageSize;\n return Math.max(0, Math.min(calculatedStart, maxStart));\n }\n\n return Math.max(0, calculatedStart);\n }\n\n /**\n * Handles user-initiated change in the row number the current page starts with.\n *\n * @param start The new current row number, index that starts with zero.\n */\n private _handleUserInitiatedChangeStart(start: number) {\n this.start = start;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSPagination).eventChangeCurrent,\n {\n bubbles: true,\n composed: true,\n detail: {\n page: this.page,\n pageSize: this.pageSize,\n },\n }\n )\n );\n }\n\n /**\n * Handles user-initiated change in the size of the page.\n */\n private _handleUserInitiatedPageSizeChange() {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSPagination).eventPageSizeChanged,\n {\n bubbles: true,\n composed: true,\n detail: {\n page: this.page,\n pageSize: this.pageSize,\n },\n }\n )\n );\n }\n\n /**\n * Handles `click` event on the previous button.\n */\n private _handleClickPrevButton() {\n const { start: oldStart, pageSize } = this;\n this.page--;\n const newStart = Math.max(oldStart - pageSize, 0);\n if (newStart !== oldStart) {\n this._handleUserInitiatedChangeStart(newStart);\n }\n // reset focus to forward button if it reaches the beginning\n if (this.page === 1) {\n const { selectorForwardButton } = this\n .constructor as typeof CDSPagination;\n (\n this.shadowRoot?.querySelector(\n `[button-class-name*=${selectorForwardButton}]`\n ) as HTMLElement\n ).focus();\n }\n }\n\n /**\n * Handles `click` event on the next button.\n */\n private _handleClickNextButton() {\n const { start: oldStart, pageSize, totalItems, pagesUnknown } = this;\n this.page++;\n const newStart = oldStart + pageSize;\n\n if (\n newStart < (totalItems == null ? Infinity : totalItems) ||\n pagesUnknown\n ) {\n this._handleUserInitiatedChangeStart(newStart);\n }\n // reset focus to previous button if it reaches the end and `pagesUnknown` is not true\n if (!pagesUnknown && this.page === this.totalPages) {\n const { selectorPreviousButton } = this\n .constructor as typeof CDSPagination;\n (\n this.shadowRoot?.querySelector(\n `[button-class-name*=${selectorPreviousButton}]`\n ) as HTMLElement\n ).focus();\n }\n }\n\n /**\n * Handles user-initiated change in number of rows per page.\n *\n * @param event The event.\n */\n @HostListener(`${prefix}-select-selected`)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeSelector(event) {\n const { value } = event.detail;\n const { totalItems, pageSize, pagesUnknown } = this;\n\n if (event.composedPath()[0] === this._pageSizeSelect) {\n this.pageSize = parseInt(value);\n // Default pageSize to effectively be 1 when we have a value of 0 to avoid\n // division by 0.\n this.totalPages =\n pageSize > 0 ? Math.ceil(totalItems / pageSize) : totalItems;\n this.page = 1;\n this.start = 0;\n this._handleUserInitiatedPageSizeChange();\n } else {\n this.page = value;\n const newStart = this._calculateStart(\n value,\n pageSize,\n totalItems,\n pagesUnknown\n );\n this._handleUserInitiatedChangeStart(newStart);\n }\n }\n\n /**\n * The assistive text for the button to go to previous page.\n */\n @property({ attribute: 'backward-text' })\n backwardText = 'Previous page';\n\n /**\n * The current page\n */\n @property({ type: Number, reflect: true })\n page = 1;\n\n /**\n * The formatter for the assistive text for screen readers to announce.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatLabelText = ({ count }) =>\n `Page of ${count} page${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter, used with determinate the total pages. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatStatusWithDeterminateTotal = ({ start, end, count }) =>\n `${start}–${end} of ${count} item${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter, used with indeterminate the total pages. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatStatusWithIndeterminateTotal = ({ start, end, count }) =>\n end == null\n ? `Item ${start}–`\n : `${start}–${end} item${count <= 1 ? '' : 's'}`;\n\n /**\n * The formatter for the text next to the select box. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSupplementalText = ({ count }) =>\n this.pagesUnknown || !this.totalItems\n ? `page`\n : `of ${count} page${count <= 1 ? '' : 's'}`;\n /**\n * `true` to explicitly state that user is at the last page.\n */\n @property({ type: Boolean, attribute: 'is-last-page' })\n isLastPage!: boolean;\n\n /**\n * The translatable text indicating the number of items per page.\n */\n @property({ attribute: 'items-per-page-text' })\n itemsPerPageText = 'Items per page:';\n\n /**\n * `true` if the pagination UI should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The assistive text for the button to go to next page.\n */\n @property({ attribute: 'forward-text' })\n forwardText = 'Next page';\n\n /**\n * true if the select box to change the page should be disabled.\n */\n @property({ type: Boolean, attribute: 'page-input-disabled' })\n pageInputDisabled = false;\n\n /**\n * Number of items per page.\n */\n @property({ type: Number, attribute: 'page-size', reflect: true })\n pageSize = 10;\n\n /**\n * true if the select box to change the items per page should be disabled.\n */\n @property({ type: Boolean, attribute: 'page-size-input-disabled' })\n pageSizeInputDisabled;\n\n /**\n * The label text for the UI to select page size.\n */\n @property({ attribute: 'page-size-label-text' })\n pageSizeLabelText!: string;\n\n /**\n * true if the total number of items is unknown.\n */\n @property({ type: Boolean, reflect: true, attribute: 'pages-unknown' })\n pagesUnknown = false;\n\n /**\n * Specify the size of the Pagination.\n */\n @property({ reflect: true })\n size = PAGINATION_SIZE.MEDIUM;\n\n /**\n * The row number where current page start with, index that starts with zero.\n */\n @property({ type: Number })\n start = 0;\n\n /**\n * The number of total items.\n */\n @property({\n type: Number,\n attribute: 'total-items',\n converter: {\n fromAttribute: (value) =>\n value === null || value === '' ? undefined : Number(value),\n },\n })\n totalItems!: number;\n\n /**\n * The number of total pages.\n */\n @property({ type: Number })\n totalPages = 1;\n\n updated(changedProperties) {\n const { pageSize, totalItems } = this;\n const { selectorPageSizesSelect, selectorPagesSelect } = this\n .constructor as typeof CDSPagination;\n\n if (changedProperties.has('pageSize')) {\n const pageSizeSelect = this.shadowRoot?.querySelector(\n selectorPageSizesSelect\n ) as CDSSelect | null;\n\n if (pageSizeSelect) {\n pageSizeSelect.value = String(pageSize ?? '');\n }\n }\n\n // Recompute total pages and clamp the visible page whenever any relevant input changes\n if (\n changedProperties.has('pageSize') ||\n changedProperties.has('start') ||\n changedProperties.has('totalItems') ||\n changedProperties.has('page')\n ) {\n const computedTotalPages =\n pageSize > 0\n ? Math.ceil((totalItems ?? 0) / pageSize)\n : (totalItems ?? 0);\n\n // Only assign if it actually changed to avoid unnecessary updates\n if (this.totalPages !== computedTotalPages) {\n this.updateComplete.then(() => {\n this.totalPages = computedTotalPages;\n });\n }\n\n const totalPagesSafe = Math.max(1, computedTotalPages || 1);\n const requestedPage = Math.max(1, Math.floor(this.page || 1));\n const displayPage = Math.min(requestedPage, totalPagesSafe);\n\n const pagesSelect = this.shadowRoot?.querySelector(\n selectorPagesSelect\n ) as CDSSelect | null;\n\n if (pagesSelect) {\n pagesSelect.value = displayPage.toString();\n }\n }\n\n if (changedProperties.has('page')) {\n this.start = this._calculateStart(\n this.page,\n this.pageSize,\n this.totalItems,\n this.pagesUnknown\n );\n const pagesSelect = this.shadowRoot?.querySelector(\n (this.constructor as typeof CDSPagination).selectorPagesSelect\n ) as CDSSelect | null;\n if (pagesSelect) {\n pagesSelect.value = String(this.page);\n }\n }\n }\n\n render() {\n const {\n page,\n disabled,\n forwardText,\n backwardText,\n itemsPerPageText,\n pageInputDisabled,\n pageSize,\n pageSizeInputDisabled,\n pagesUnknown,\n size,\n start,\n totalItems,\n totalPages,\n _handleClickPrevButton: handleClickPrevButton,\n _handleClickNextButton: handleClickNextButton,\n _handleSlotChange: handleSlotChange,\n formatLabelText,\n formatSupplementalText,\n } = this;\n\n const { isLastPage = start + pageSize >= totalItems } = this;\n const prevButtonDisabled = disabled || start === 0;\n const nextButtonDisabled = disabled || (!pagesUnknown && isLastPage);\n\n const prevButtonClassMap = {\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--pagination__button`]: true,\n [`${prefix}--pagination__button--backward`]: true,\n [`${prefix}--pagination__button--no-index`]: prevButtonDisabled,\n [`${prefix}--btn--${size}`]: true,\n [`${prefix}--btn--ghost`]: true,\n };\n const nextButtonClassMap = {\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--pagination__button`]: true,\n [`${prefix}--pagination__button--forward`]: true,\n [`${prefix}--pagination__button--no-index`]: nextButtonDisabled,\n [`${prefix}--btn--${size}`]: true,\n [`${prefix}--btn--ghost`]: true,\n };\n\n const prevButtonClasses = Object.entries(prevButtonClassMap)\n .filter(([, value]) => value === true)\n .map(([key]) => key)\n .join(' ');\n const nextButtonClasses = Object.entries(nextButtonClassMap)\n .filter(([, value]) => value === true)\n .map(([key]) => key)\n .join(' ');\n\n const totalPagesSafe =\n Number.isFinite(totalPages) && totalPages > 0\n ? totalPages\n : Math.max(1, page || 1);\n\n return html`\n <div class=\"${prefix}--pagination__left\">\n <label for=\"select\" class=\"${prefix}--pagination__text\"\n ><slot name=\"label-text\">${itemsPerPageText}</slot></label\n >\n <cds-select\n ?disabled=${disabled || pageSizeInputDisabled}\n id=\"page-size-select\"\n left-select\n pagination\n size=\"${size}\"\n inline\n value=\"${pageSize}\">\n <slot @slotchange=${handleSlotChange}></slot>\n </cds-select>\n <span\n class=\"${prefix}--pagination__text ${prefix}--pagination__items-count\"\n >${this._renderStatusText()}</span\n >\n </div>\n <div class=\"${prefix}--pagination__right\">\n ${!pagesUnknown || totalItems\n ? html`\n <label\n for=\"select\"\n class=\"${prefix}--label ${prefix}--visually-hidden\">\n ${formatLabelText({ count: totalPages })}\n </label>\n `\n : null}\n ${pagesUnknown || !totalItems\n ? html`\n <span\n class=\"${prefix}--pagination__text ${prefix}--pagination__page-text ${prefix}--pagination__unknown-pages-text\"\n >${formatSupplementalText({ count: totalPages })} ${page}</span\n >\n `\n : html`\n <cds-select\n ?disabled=${disabled || pageInputDisabled}\n id=\"pages-select\"\n pagination\n size=\"${size}\"\n inline\n value=\"${page}\">\n ${Array.from(new Array(totalPagesSafe)).map(\n (_item, index) => html`\n <cds-select-item\n value=\"${index + 1}\"\n ?selected=${page === index + 1}>\n ${index + 1}\n </cds-select-item>\n `\n )}\n </cds-select>\n <span class=\"${prefix}--pagination__text\"\n >${formatSupplementalText({ count: totalPages })}</span\n >\n `}\n\n <div class=\"${prefix}--pagination__control-buttons\">\n <cds-button\n pagination\n size=\"${size}\"\n ?disabled=\"${prevButtonDisabled}\"\n button-class-name=\"${prevButtonClasses}\"\n tooltip-text=\"${backwardText}\"\n @click=\"${handleClickPrevButton}\">\n ${iconLoader(CaretLeft16, { slot: 'icon' })}\n </cds-button>\n <cds-button\n tooltip-position=\"top\"\n pagination\n size=\"${size}\"\n ?disabled=\"${nextButtonDisabled}\"\n button-class-name=\"${nextButtonClasses}\"\n tooltip-text=\"${forwardText}\"\n @click=\"${handleClickNextButton}\">\n ${iconLoader(CaretRight16, { slot: 'icon' })}\n </cds-button>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return the select box for the current page.\n */\n static get selectorPagesSelect() {\n return `${prefix}-select#pages-select`;\n }\n\n /**\n * A selector that will return the select box for page sizes.\n */\n static get selectorPageSizesSelect() {\n return `${prefix}-select`;\n }\n\n /**\n * A selector that will return the previous button.\n */\n static get selectorPreviousButton() {\n return `${prefix}--pagination__button--backward`;\n }\n\n /**\n * A selector that will return the forward button.\n */\n static get selectorForwardButton() {\n return `${prefix}--pagination__button--forward`;\n }\n\n /**\n * The name of the custom event fired after the current row number is changed.\n */\n static get eventChangeCurrent() {\n return `${prefix}-pagination-changed-current`;\n }\n\n /**\n * The name of the custom event fired after the number of rows per page is changed from `<cds-page-sizes-select>`.\n */\n static get eventPageSizeChanged() {\n return `${prefix}-page-sizes-select-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSPagination;\n"],"names":["customElement"],"mappings":"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"}
|