@ukic/web-components 3.25.0 → 3.27.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/components/OpenInNew.js +5 -0
- package/components/OpenInNew.js.map +1 -0
- package/components/check-icon.js +8 -0
- package/components/check-icon.js.map +1 -0
- package/components/chevron-icon.js +8 -0
- package/components/chevron-icon.js.map +1 -0
- package/components/close-icon.js +10 -0
- package/components/close-icon.js.map +1 -0
- package/components/constants.js +184 -0
- package/components/constants.js.map +1 -0
- package/components/custom-elements.d.ts +2 -0
- package/components/helpers.js +547 -0
- package/components/helpers.js.map +1 -0
- package/components/ic-accordion-group.d.ts +11 -0
- package/components/ic-accordion-group.js +191 -0
- package/components/ic-accordion-group.js.map +1 -0
- package/components/ic-accordion.d.ts +11 -0
- package/components/ic-accordion.js +188 -0
- package/components/ic-accordion.js.map +1 -0
- package/components/ic-action-chip.d.ts +11 -0
- package/components/ic-action-chip.js +164 -0
- package/components/ic-action-chip.js.map +1 -0
- package/components/ic-alert.d.ts +11 -0
- package/components/ic-alert.js +193 -0
- package/components/ic-alert.js.map +1 -0
- package/components/ic-back-to-top.d.ts +11 -0
- package/components/ic-back-to-top.js +216 -0
- package/components/ic-back-to-top.js.map +1 -0
- package/components/ic-badge.d.ts +11 -0
- package/components/ic-badge.js +222 -0
- package/components/ic-badge.js.map +1 -0
- package/components/ic-breadcrumb-group.d.ts +11 -0
- package/components/ic-breadcrumb-group.js +278 -0
- package/components/ic-breadcrumb-group.js.map +1 -0
- package/components/ic-breadcrumb.d.ts +11 -0
- package/components/ic-breadcrumb.js +8 -0
- package/components/ic-breadcrumb.js.map +1 -0
- package/components/ic-breadcrumb2.js +145 -0
- package/components/ic-breadcrumb2.js.map +1 -0
- package/components/ic-button.d.ts +11 -0
- package/components/ic-button.js +8 -0
- package/components/ic-button.js.map +1 -0
- package/components/ic-button2.js +509 -0
- package/components/ic-button2.js.map +1 -0
- package/components/ic-card-horizontal.d.ts +11 -0
- package/components/ic-card-horizontal.js +214 -0
- package/components/ic-card-horizontal.js.map +1 -0
- package/components/ic-card-vertical.d.ts +11 -0
- package/components/ic-card-vertical.js +219 -0
- package/components/ic-card-vertical.js.map +1 -0
- package/components/ic-checkbox-group.d.ts +11 -0
- package/components/ic-checkbox-group.js +198 -0
- package/components/ic-checkbox-group.js.map +1 -0
- package/components/ic-checkbox.d.ts +11 -0
- package/components/ic-checkbox.js +202 -0
- package/components/ic-checkbox.js.map +1 -0
- package/components/ic-chip.d.ts +11 -0
- package/components/ic-chip.js +183 -0
- package/components/ic-chip.js.map +1 -0
- package/components/ic-classification-banner.d.ts +11 -0
- package/components/ic-classification-banner.js +102 -0
- package/components/ic-classification-banner.js.map +1 -0
- package/components/ic-data-list.d.ts +11 -0
- package/components/ic-data-list.js +63 -0
- package/components/ic-data-list.js.map +1 -0
- package/components/ic-data-row.d.ts +11 -0
- package/components/ic-data-row.js +115 -0
- package/components/ic-data-row.js.map +1 -0
- package/components/ic-dialog.d.ts +11 -0
- package/components/ic-dialog.js +366 -0
- package/components/ic-dialog.js.map +1 -0
- package/components/ic-divider.d.ts +11 -0
- package/components/ic-divider.js +8 -0
- package/components/ic-divider.js.map +1 -0
- package/components/ic-divider2.js +148 -0
- package/components/ic-divider2.js.map +1 -0
- package/components/ic-empty-state.d.ts +11 -0
- package/components/ic-empty-state.js +82 -0
- package/components/ic-empty-state.js.map +1 -0
- package/components/ic-footer-link-group.d.ts +11 -0
- package/components/ic-footer-link-group.js +101 -0
- package/components/ic-footer-link-group.js.map +1 -0
- package/components/ic-footer-link.d.ts +11 -0
- package/components/ic-footer-link.js +95 -0
- package/components/ic-footer-link.js.map +1 -0
- package/components/ic-footer.d.ts +11 -0
- package/components/ic-footer.js +156 -0
- package/components/ic-footer.js.map +1 -0
- package/components/ic-hero.d.ts +11 -0
- package/components/ic-hero.js +145 -0
- package/components/ic-hero.js.map +1 -0
- package/components/ic-horizontal-scroll.d.ts +11 -0
- package/components/ic-horizontal-scroll.js +8 -0
- package/components/ic-horizontal-scroll.js.map +1 -0
- package/components/ic-horizontal-scroll2.js +240 -0
- package/components/ic-horizontal-scroll2.js.map +1 -0
- package/components/ic-input-component-container.d.ts +11 -0
- package/components/ic-input-component-container.js +8 -0
- package/components/ic-input-component-container.js.map +1 -0
- package/components/ic-input-component-container2.js +95 -0
- package/components/ic-input-component-container2.js.map +1 -0
- package/components/ic-input-container.d.ts +11 -0
- package/components/ic-input-container.js +8 -0
- package/components/ic-input-container.js.map +1 -0
- package/components/ic-input-container2.js +47 -0
- package/components/ic-input-container2.js.map +1 -0
- package/components/ic-input-label.d.ts +11 -0
- package/components/ic-input-label.js +8 -0
- package/components/ic-input-label.js.map +1 -0
- package/components/ic-input-label2.js +121 -0
- package/components/ic-input-label2.js.map +1 -0
- package/components/ic-input-validation.d.ts +11 -0
- package/components/ic-input-validation.js +8 -0
- package/components/ic-input-validation.js.map +1 -0
- package/components/ic-input-validation2.js +90 -0
- package/components/ic-input-validation2.js.map +1 -0
- package/components/ic-layout-grid-item.d.ts +11 -0
- package/components/ic-layout-grid-item.js +95 -0
- package/components/ic-layout-grid-item.js.map +1 -0
- package/components/ic-layout-grid.d.ts +11 -0
- package/components/ic-layout-grid.js +188 -0
- package/components/ic-layout-grid.js.map +1 -0
- package/components/ic-link.d.ts +11 -0
- package/components/ic-link.js +8 -0
- package/components/ic-link.js.map +1 -0
- package/components/ic-link2.js +135 -0
- package/components/ic-link2.js.map +1 -0
- package/components/ic-loading-indicator.d.ts +11 -0
- package/components/ic-loading-indicator.js +8 -0
- package/components/ic-loading-indicator.js.map +1 -0
- package/components/ic-loading-indicator2.js +278 -0
- package/components/ic-loading-indicator2.js.map +1 -0
- package/components/ic-menu-group.d.ts +11 -0
- package/components/ic-menu-group.js +47 -0
- package/components/ic-menu-group.js.map +1 -0
- package/components/ic-menu-item.d.ts +11 -0
- package/components/ic-menu-item.js +8 -0
- package/components/ic-menu-item.js.map +1 -0
- package/components/ic-menu-item2.js +171 -0
- package/components/ic-menu-item2.js.map +1 -0
- package/components/ic-menu.d.ts +11 -0
- package/components/ic-menu.js +8 -0
- package/components/ic-menu.js.map +1 -0
- package/components/ic-menu2.js +2590 -0
- package/components/ic-menu2.js.map +1 -0
- package/components/ic-navigation-button.d.ts +11 -0
- package/components/ic-navigation-button.js +175 -0
- package/components/ic-navigation-button.js.map +1 -0
- package/components/ic-navigation-group.d.ts +11 -0
- package/components/ic-navigation-group.js +326 -0
- package/components/ic-navigation-group.js.map +1 -0
- package/components/ic-navigation-item.d.ts +11 -0
- package/components/ic-navigation-item.js +294 -0
- package/components/ic-navigation-item.js.map +1 -0
- package/components/ic-navigation-menu.d.ts +11 -0
- package/components/ic-navigation-menu.js +8 -0
- package/components/ic-navigation-menu.js.map +1 -0
- package/components/ic-navigation-menu2.js +188 -0
- package/components/ic-navigation-menu2.js.map +1 -0
- package/components/ic-page-header.d.ts +11 -0
- package/components/ic-page-header.js +196 -0
- package/components/ic-page-header.js.map +1 -0
- package/components/ic-pagination-bar.d.ts +11 -0
- package/components/ic-pagination-bar.js +523 -0
- package/components/ic-pagination-bar.js.map +1 -0
- package/components/ic-pagination-item.d.ts +11 -0
- package/components/ic-pagination-item.js +8 -0
- package/components/ic-pagination-item.js.map +1 -0
- package/components/ic-pagination-item2.js +107 -0
- package/components/ic-pagination-item2.js.map +1 -0
- package/components/ic-pagination.d.ts +11 -0
- package/components/ic-pagination.js +8 -0
- package/components/ic-pagination.js.map +1 -0
- package/components/ic-pagination2.js +379 -0
- package/components/ic-pagination2.js.map +1 -0
- package/components/ic-popover-menu.d.ts +11 -0
- package/components/ic-popover-menu.js +369 -0
- package/components/ic-popover-menu.js.map +1 -0
- package/components/ic-radio-group.d.ts +11 -0
- package/components/ic-radio-group.js +317 -0
- package/components/ic-radio-group.js.map +1 -0
- package/components/ic-radio-option.d.ts +11 -0
- package/components/ic-radio-option.js +211 -0
- package/components/ic-radio-option.js.map +1 -0
- package/components/ic-search-bar.d.ts +11 -0
- package/components/ic-search-bar.js +719 -0
- package/components/ic-search-bar.js.map +1 -0
- package/components/ic-section-container.d.ts +11 -0
- package/components/ic-section-container.js +8 -0
- package/components/ic-section-container.js.map +1 -0
- package/components/ic-section-container2.js +50 -0
- package/components/ic-section-container2.js.map +1 -0
- package/components/ic-select.d.ts +11 -0
- package/components/ic-select.js +8 -0
- package/components/ic-select.js.map +1 -0
- package/components/ic-select2.js +806 -0
- package/components/ic-select2.js.map +1 -0
- package/components/ic-side-navigation.d.ts +11 -0
- package/components/ic-side-navigation.js +568 -0
- package/components/ic-side-navigation.js.map +1 -0
- package/components/ic-skeleton.d.ts +11 -0
- package/components/ic-skeleton.js +81 -0
- package/components/ic-skeleton.js.map +1 -0
- package/components/ic-skip-link.d.ts +11 -0
- package/components/ic-skip-link.js +91 -0
- package/components/ic-skip-link.js.map +1 -0
- package/components/ic-status-tag.d.ts +11 -0
- package/components/ic-status-tag.js +85 -0
- package/components/ic-status-tag.js.map +1 -0
- package/components/ic-step.d.ts +11 -0
- package/components/ic-step.js +200 -0
- package/components/ic-step.js.map +1 -0
- package/components/ic-stepper.d.ts +11 -0
- package/components/ic-stepper.js +340 -0
- package/components/ic-stepper.js.map +1 -0
- package/components/ic-switch.d.ts +11 -0
- package/components/ic-switch.js +164 -0
- package/components/ic-switch.js.map +1 -0
- package/components/ic-tab-context.d.ts +11 -0
- package/components/ic-tab-context.js +275 -0
- package/components/ic-tab-context.js.map +1 -0
- package/components/ic-tab-group.d.ts +11 -0
- package/components/ic-tab-group.js +89 -0
- package/components/ic-tab-group.js.map +1 -0
- package/components/ic-tab-panel.d.ts +11 -0
- package/components/ic-tab-panel.js +63 -0
- package/components/ic-tab-panel.js.map +1 -0
- package/components/ic-tab.d.ts +11 -0
- package/components/ic-tab.js +143 -0
- package/components/ic-tab.js.map +1 -0
- package/components/ic-text-field.d.ts +11 -0
- package/components/ic-text-field.js +8 -0
- package/components/ic-text-field.js.map +1 -0
- package/components/ic-text-field2.js +532 -0
- package/components/ic-text-field2.js.map +1 -0
- package/components/ic-theme.d.ts +11 -0
- package/components/ic-theme.js +105 -0
- package/components/ic-theme.js.map +1 -0
- package/components/ic-toast-region.d.ts +11 -0
- package/components/ic-toast-region.js +76 -0
- package/components/ic-toast-region.js.map +1 -0
- package/components/ic-toast.d.ts +11 -0
- package/components/ic-toast.js +295 -0
- package/components/ic-toast.js.map +1 -0
- package/components/ic-toggle-button-group.d.ts +11 -0
- package/components/ic-toggle-button-group.js +323 -0
- package/components/ic-toggle-button-group.js.map +1 -0
- package/components/ic-toggle-button.d.ts +11 -0
- package/components/ic-toggle-button.js +235 -0
- package/components/ic-toggle-button.js.map +1 -0
- package/components/ic-tooltip.d.ts +11 -0
- package/components/ic-tooltip.js +8 -0
- package/components/ic-tooltip.js.map +1 -0
- package/components/ic-tooltip2.js +2078 -0
- package/components/ic-tooltip2.js.map +1 -0
- package/components/ic-top-navigation.d.ts +11 -0
- package/components/ic-top-navigation.js +320 -0
- package/components/ic-top-navigation.js.map +1 -0
- package/components/ic-typography.d.ts +11 -0
- package/components/ic-typography.js +8 -0
- package/components/ic-typography.js.map +1 -0
- package/components/ic-typography2.js +228 -0
- package/components/ic-typography2.js.map +1 -0
- package/components/index.d.ts +33 -0
- package/components/index.js +4 -0
- package/components/index.js.map +1 -0
- package/components/package.json +9 -0
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +63 -37
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_3.cjs.entry.js +17 -17
- package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +12 -8
- package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-menu/ic-menu.css +19 -0
- package/dist/collection/components/ic-menu/ic-menu.js +62 -36
- package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
- package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select.js +17 -17
- package/dist/collection/components/ic-select/ic-select.js.map +1 -1
- package/dist/collection/components/ic-select/ic-select_(single).stories.js +54 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +33 -9
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +26 -0
- package/dist/components/ic-menu2.js +63 -37
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-page-header.js.map +1 -1
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-select2.js +17 -17
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +13 -8
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-46e5a58b.entry.js → p-12474095.entry.js} +2 -2
- package/dist/core/p-12474095.entry.js.map +1 -0
- package/dist/core/p-98dee727.entry.js.map +1 -1
- package/dist/core/p-d1220d2a.entry.js.map +1 -1
- package/dist/core/p-e0b66371.entry.js +2 -0
- package/dist/core/p-e0b66371.entry.js.map +1 -0
- package/dist/core/{p-171a19bf.entry.js → p-fdc4376e.entry.js} +2 -2
- package/dist/core/p-fdc4376e.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +63 -37
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-pagination_3.entry.js +17 -17
- package/dist/esm/ic-pagination_3.entry.js.map +1 -1
- package/dist/esm/ic-section-container.entry.js.map +1 -1
- package/dist/esm/ic-top-navigation.entry.js +12 -8
- package/dist/esm/ic-top-navigation.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -0
- package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +4 -1
- package/dist/types/components.d.ts +10 -2
- package/hydrate/index.js +93 -62
- package/hydrate/index.mjs +93 -62
- package/package.json +4 -2
- package/vscode-data.json +5 -1
- package/dist/core/p-171a19bf.entry.js.map +0 -1
- package/dist/core/p-343670b4.entry.js +0 -2
- package/dist/core/p-343670b4.entry.js.map +0 -1
- package/dist/core/p-46e5a58b.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ic-classification-banner.js","mappings":";;;AAAA,MAAM,yBAAyB,GAAG,ijHAAijH,CAAC;AACplH,qCAAe,yBAAyB;;ACExC,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,UAAU;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,YAAY;CAC3B,CAAC;MAOW,oBAAoB;IALjC;;;;;;;QASU,wBAAmB,GAAY,EAAE,CAAC;;;;QAIlC,mBAAc,GAA0B,SAAS,CAAC;;;;QAIlD,YAAO,GAAY,IAAI,CAAC;;;;QAIxB,6BAAwB,GAAY,EAAE,CAAC;;;;QAIvC,WAAM,GAAa,KAAK,CAAC;;;;QAIzB,SAAI,GAAa,KAAK,CAAC;KAiDhC;IA/CC,MAAM;QACJ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;;QAG9B,IAAI,EACF,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,wBAAwB,GACzB,GAAG,IAAI,CAAC;QACT,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB;YAAE,mBAAmB,GAAG,EAAE,CAAC;QACnD,IACE,CAAC,cAAc;aACd,cAAc,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAEvD,cAAc,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,wBAAwB;YAAE,wBAAwB,GAAG,EAAE,CAAC;QAE7D,QACE,EAAC,IAAI,qDAAC,KAAK,EAAE,EAAE,CAAC,iCAAiC,GAAG,CAAC,CAAC,MAAM,EAAE,IAC5D,6EACa,oBAAoB,EAC/B,KAAK,EAAE;gBACL,CAAC,uBAAuB,GAAG,IAAI;gBAC/B,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc;aACtC,IAEA,cAAc,KAAK,SAAS,IAC3B,YAAM,KAAK,EAAC,WAAW,+CACmB,GAAG,CACtC,IACL,IAAI,EACR,sEAAe,OAAO,EAAC,mBAAmB,IACvC,wBAAwB,KAAK,EAAE;cAC5B,wBAAwB;cACxB,cAAc,KAAK,SAAS;kBAC5B,kBAAkB,CAAC,cAAc,CAAC;kBAClC,GAAG,IAAI,GAAG,OAAO,GAAG,EAAE;iBACrB,OAAO;iBACP,kBAAkB,CAAC,cAAc,CAAC;iBAClC,mBAAmB,EAAE,CACZ,CACT,CACJ,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/ic-classification-banner/ic-classification-banner.css?tag=ic-classification-banner&encapsulation=shadow","src/components/ic-classification-banner/ic-classification-banner.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-classification-banner: z-index of classification banner\n */\n\n:host {\n position: fixed;\n left: 0;\n bottom: 0;\n width: 100%;\n height: var(--ic-space-lg);\n z-index: var(--ic-z-index-classification-banner);\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.ic-classification-banner-inline) {\n position: static;\n left: auto;\n bottom: auto;\n}\n\n.classification-banner {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: var(--ic-space-xxxs) var(--ic-space-md);\n}\n\n.default {\n background-color: var(--ic-classification-banner-not-set);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.official {\n background-color: var(--ic-classification-banner-official);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.official-sensitive {\n background-color: var(--ic-classification-banner-official-sensitive);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.secret {\n background-color: var(--ic-classification-banner-secret);\n color: var(--ic-classification-banner-text);\n}\n\n.top-secret {\n background-color: var(--ic-classification-banner-top-secret);\n color: var(--ic-classification-banner-text-inverted);\n}\n\n.offscreen {\n position: absolute;\n left: -9999px;\n background-color: #fff;\n color: #000;\n text-transform: none;\n}\n\n.offscreen:dir(rtl) {\n right: -9999px;\n}\n\n@media (forced-colors: active) {\n .classification-banner {\n border: var(--ic-border-hc);\n }\n}\n","import { Component, Prop, h, Host } from \"@stencil/core\";\nimport { IcProtectiveMarkings } from \"./ic-classification-banner.types\";\n\nconst classificationText = {\n default: \"protective marking not set\",\n official: \"official\",\n \"official-sensitive\": \"official-sensitive\",\n secret: \"secret\",\n \"top-secret\": \"top secret\",\n};\n\n@Component({\n tag: \"ic-classification-banner\",\n styleUrl: \"ic-classification-banner.css\",\n shadow: true,\n})\nexport class ClassificationBanner {\n /**\n * The additional information that will be displayed after the classification.\n */\n @Prop() additionalSelectors?: string = \"\";\n /**\n * The classification level to be displayed - also determines the banner and text colour.\n */\n @Prop() classification?: IcProtectiveMarkings = \"default\";\n /**\n * The optional text that will be displayed before classification to specify relevant country/countries.\n */\n @Prop() country?: string = \"uk\";\n /**\n * The custom text that will appear on the banner. If set, the `additionalSelectors`, `country` and `upTo` props are ignored.\n */\n @Prop() customClassificationText?: string = \"\";\n /**\n * If `true`, the banner will appear inline with the page, instead of sticking to the bottom of the page.\n */\n @Prop() inline?: boolean = false;\n /**\n * If `true`, \"Up to\" will be displayed before the classification and country.\n */\n @Prop() upTo?: boolean = false;\n\n render() {\n const { inline, upTo } = this;\n\n // In case of unrecognized props, fallback to default\n let {\n country,\n additionalSelectors,\n classification,\n customClassificationText,\n } = this;\n if (!country) country = \"\";\n if (!additionalSelectors) additionalSelectors = \"\";\n if (\n !classification ||\n (classification && !classificationText[classification])\n )\n classification = \"default\";\n if (!customClassificationText) customClassificationText = \"\";\n\n return (\n <Host class={{ [\"ic-classification-banner-inline\"]: !!inline }}>\n <banner\n aria-label=\"Protective marking\"\n class={{\n [\"classification-banner\"]: true,\n [`${classification}`]: classification,\n }}\n >\n {classification !== \"default\" ? (\n <span class=\"offscreen\">\n The protective marking of this page is:{\" \"}\n </span>\n ) : null}\n <ic-typography variant=\"caption-uppercase\">\n {customClassificationText !== \"\"\n ? customClassificationText\n : classification === \"default\"\n ? classificationText[classification]\n : `${upTo ? \"up to\" : \"\"} \n ${country} \n ${classificationText[classification]} \n ${additionalSelectors}`}\n </ic-typography>\n </banner>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface IcDataList extends Components.IcDataList, HTMLElement {}
|
|
4
|
+
export const IcDataList: {
|
|
5
|
+
prototype: IcDataList;
|
|
6
|
+
new (): IcDataList;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './ic-typography2.js';
|
|
3
|
+
|
|
4
|
+
const icDataListCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}.heading{--ic-typography-color:var(--ic-data-list-text-heading);color:var(--ic-data-list-text-heading)}.rows{display:flex;flex-direction:column;gap:var(--ic-space-md)}:host(.ic-data-list-small) .rows{gap:var(--ic-space-xs)}.divider{margin-top:var(--ic-space-lg);margin-bottom:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-heading)}.divider-no-heading{margin-top:0}:host(.ic-data-list-small) .divider{margin-top:var(--ic-space-sm);margin-bottom:var(--ic-space-xs)}@media (forced-colors: active){.divider{background-color:canvastext}}";
|
|
5
|
+
const IcDataListStyle0 = icDataListCss;
|
|
6
|
+
|
|
7
|
+
const DataList = /*@__PURE__*/ proxyCustomElement(class DataList extends HTMLElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
this.__attachShadow();
|
|
12
|
+
/**
|
|
13
|
+
* The size of the data list component.
|
|
14
|
+
*/
|
|
15
|
+
this.size = "medium";
|
|
16
|
+
/**
|
|
17
|
+
* Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
|
|
18
|
+
*/
|
|
19
|
+
this.theme = "inherit";
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
const { el, heading, size, theme } = this;
|
|
23
|
+
if (size === "small") {
|
|
24
|
+
Array.from(el.children).forEach((child) => child.setAttribute("size", "small"));
|
|
25
|
+
}
|
|
26
|
+
const hasHeading = heading || el.querySelector('[slot="heading"]');
|
|
27
|
+
return (h(Host, { key: 'f331288c7ba2fa98cba0f35b871d749dfc0f3f1a', class: {
|
|
28
|
+
"ic-data-list-small": size === "small",
|
|
29
|
+
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
30
|
+
} }, h("div", { key: 'e6ff66d94a2e43f61c13e1299fe5fa6fe5487140', class: "heading", id: "data-list-heading" }, h("slot", { key: '49d07dbea901b714751713c10f86d857eaa23a18', name: "heading" }, h("ic-typography", { key: '1cdc2c192f6d25e866f6a58add2dd143f42cfd2d', variant: "h3" }, heading))), h("div", { key: '61fc0bb5ae33e4953d8ec96089a51d98cec47525', class: { divider: true, "divider-no-heading": !hasHeading } }), h("ul", { key: '9dfd24a99a64dc6e6d07adb193625c13bfcd0c1d', "aria-labelledby": "data-list-heading", class: "rows" }, h("slot", { key: '6b2eb9f7e56d6357f25d7d0fd066ddb203a4c294' }))));
|
|
31
|
+
}
|
|
32
|
+
get el() { return this; }
|
|
33
|
+
static get style() { return IcDataListStyle0; }
|
|
34
|
+
}, [1, "ic-data-list", {
|
|
35
|
+
"heading": [1],
|
|
36
|
+
"size": [1],
|
|
37
|
+
"theme": [1]
|
|
38
|
+
}]);
|
|
39
|
+
function defineCustomElement$1() {
|
|
40
|
+
if (typeof customElements === "undefined") {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const components = ["ic-data-list", "ic-typography"];
|
|
44
|
+
components.forEach(tagName => { switch (tagName) {
|
|
45
|
+
case "ic-data-list":
|
|
46
|
+
if (!customElements.get(tagName)) {
|
|
47
|
+
customElements.define(tagName, DataList);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case "ic-typography":
|
|
51
|
+
if (!customElements.get(tagName)) {
|
|
52
|
+
defineCustomElement$2();
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
} });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const IcDataList = DataList;
|
|
59
|
+
const defineCustomElement = defineCustomElement$1;
|
|
60
|
+
|
|
61
|
+
export { IcDataList, defineCustomElement };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=ic-data-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ic-data-list.js","mappings":";;;AAAA,MAAM,aAAa,GAAG,w9FAAw9F,CAAC;AAC/+F,yBAAe,aAAa;;MCUf,QAAQ;IALrB;;;;;;;QAgBU,SAAI,GAAoB,QAAQ,CAAC;;;;QAKjC,UAAK,GAAiB,SAAS,CAAC;KAgCzC;IA9BC,MAAM;QACJ,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE1C,IAAI,IAAI,KAAK,OAAO,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KACpC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CACpC,CAAC;SACH;QAED,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAEnE,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,oBAAoB,EAAE,IAAI,KAAK,OAAO;gBACtC,CAAC,YAAY,KAAK,EAAE,GAAG,KAAK,KAAK,SAAS;aAC3C,IAED,4DAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,mBAAmB,IACzC,6DAAM,IAAI,EAAC,SAAS,IAClB,sEAAe,OAAO,EAAC,IAAI,IAAE,OAAO,CAAiB,CAChD,CACH,EACN,4DAAK,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,UAAU,EAAE,GAAI,EACpE,8EAAoB,mBAAmB,EAAC,KAAK,EAAC,MAAM,IAClD,8DAAa,CACV,CACA,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/ic-data-list/ic-data-list.css?tag=ic-data-list&encapsulation=shadow","src/components/ic-data-list/ic-data-list.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --data-row-label-width: Width of the label column in the data list.\n */\n\n:host {\n display: block;\n}\n\n.heading {\n --ic-typography-color: var(--ic-data-list-text-heading);\n\n color: var(--ic-data-list-text-heading);\n}\n\n.rows {\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-md);\n}\n\n:host(.ic-data-list-small) .rows {\n gap: var(--ic-space-xs);\n}\n\n.divider {\n margin-top: var(--ic-space-lg);\n margin-bottom: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-heading);\n}\n\n.divider-no-heading {\n margin-top: 0;\n}\n\n:host(.ic-data-list-small) .divider {\n margin-top: var(--ic-space-sm);\n margin-bottom: var(--ic-space-xs);\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, h, Prop } from \"@stencil/core\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot heading - Content will be placed at the top of the data list.\n */\n@Component({\n tag: \"ic-data-list\",\n styleUrl: \"ic-data-list.css\",\n shadow: true,\n})\nexport class DataList {\n @Element() el: HTMLIcDataListElement;\n\n /**\n * The title for the data list.\n */\n @Prop() heading?: string;\n\n /**\n * The size of the data list component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n render() {\n const { el, heading, size, theme } = this;\n\n if (size === \"small\") {\n Array.from(el.children).forEach((child) =>\n child.setAttribute(\"size\", \"small\")\n );\n }\n\n const hasHeading = heading || el.querySelector('[slot=\"heading\"]');\n\n return (\n <Host\n class={{\n \"ic-data-list-small\": size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"heading\" id=\"data-list-heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h3\">{heading}</ic-typography>\n </slot>\n </div>\n <div class={{ divider: true, \"divider-no-heading\": !hasHeading }} />\n <ul aria-labelledby=\"data-list-heading\" class=\"rows\">\n <slot></slot>\n </ul>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface IcDataRow extends Components.IcDataRow, HTMLElement {}
|
|
4
|
+
export const IcDataRow: {
|
|
5
|
+
prototype: IcDataRow;
|
|
6
|
+
new (): IcDataRow;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { D as DEVICE_SIZES, i as isSlotUsed, q as getCurrentDeviceSize, B as slotHasContent, c as checkResizeObserver } from './helpers.js';
|
|
3
|
+
import { d as defineCustomElement$2 } from './ic-typography2.js';
|
|
4
|
+
|
|
5
|
+
const icDataRowCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:relative;display:block}.data{display:flex;align-items:top}.text-cells{display:flex;flex-grow:1;min-width:0;--ic-typography-color:var(--ic-data-list-text-cell);color:var(--ic-data-list-text-cell)}.label{width:var(--data-row-label-width, 12.5rem);min-width:12.5rem;margin-right:var(--ic-space-md);--ic-typography-color:var(--ic-data-list-text-label);color:var(--ic-data-list-text-label)}.value{flex-grow:1}slot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]){margin-top:calc(var(--ic-space-xs) * -1)}slot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]){margin-top:calc(var(--ic-space-xxs) * -1)}slot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]){margin-top:calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs))}.end-component{width:-moz-fit-content;width:fit-content;margin-left:3.5rem}.divider{margin-top:var(--ic-space-md);height:var(--ic-border-width);background-color:var(--ic-data-list-keyline-cell)}:host(.ic-data-row-small) .divider{margin-top:var(--ic-space-xs)}:host(.breakpoint-medium) .label{width:10rem;min-width:10rem}:host(.breakpoint-xs) .text-cells{flex-direction:column}:host(.breakpoint-xs) .label{width:8rem;margin-bottom:var(--ic-space-xs)}:host(.breakpoint-xs) .value{max-width:95%}:host(.breakpoint-xs) .end-component{margin-left:0}@media (forced-colors: active){.divider{background-color:canvastext}}";
|
|
6
|
+
const IcDataRowStyle0 = icDataRowCss;
|
|
7
|
+
|
|
8
|
+
const DataRow = /*@__PURE__*/ proxyCustomElement(class DataRow extends HTMLElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.__attachShadow();
|
|
13
|
+
this.hasEndComponent = false;
|
|
14
|
+
this.resizeObserver = null;
|
|
15
|
+
this.deviceSize = DEVICE_SIZES.XL;
|
|
16
|
+
/**
|
|
17
|
+
* The size of the data row component.
|
|
18
|
+
*/
|
|
19
|
+
this.size = "medium";
|
|
20
|
+
/**
|
|
21
|
+
* Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
|
|
22
|
+
*/
|
|
23
|
+
this.theme = "inherit";
|
|
24
|
+
this.runResizeObserver = () => {
|
|
25
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
26
|
+
this.checkLabelAbove();
|
|
27
|
+
});
|
|
28
|
+
this.resizeObserver.observe(this.el);
|
|
29
|
+
};
|
|
30
|
+
this.renderCellContent = (cell) => {
|
|
31
|
+
const isValue = cell === "value";
|
|
32
|
+
return (h("div", { class: cell }, isSlotUsed(this.el, cell) ? (h("slot", { name: cell })) : (h("ic-typography", { variant: isValue
|
|
33
|
+
? "body"
|
|
34
|
+
: this.listSize === "xs"
|
|
35
|
+
? "label"
|
|
36
|
+
: "subtitle-large" }, isValue ? this.value : this.label))));
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
disconnectedCallback() {
|
|
40
|
+
var _a;
|
|
41
|
+
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
42
|
+
}
|
|
43
|
+
componentWillLoad() {
|
|
44
|
+
this.deviceSize = getCurrentDeviceSize();
|
|
45
|
+
this.hasEndComponent = slotHasContent(this.el, "end-component");
|
|
46
|
+
this.checkLabelAbove();
|
|
47
|
+
}
|
|
48
|
+
componentDidLoad() {
|
|
49
|
+
checkResizeObserver(this.runResizeObserver);
|
|
50
|
+
if (this.hasEndComponent)
|
|
51
|
+
this.labelEndComponent();
|
|
52
|
+
}
|
|
53
|
+
checkLabelAbove() {
|
|
54
|
+
var _a;
|
|
55
|
+
const row = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".data");
|
|
56
|
+
if (row) {
|
|
57
|
+
const rowSize = (row === null || row === void 0 ? void 0 : row.clientWidth) + 46;
|
|
58
|
+
if (rowSize) {
|
|
59
|
+
this.listSize =
|
|
60
|
+
rowSize < DEVICE_SIZES.S
|
|
61
|
+
? "xs"
|
|
62
|
+
: rowSize < DEVICE_SIZES.M
|
|
63
|
+
? "m"
|
|
64
|
+
: "xl";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
labelEndComponent() {
|
|
69
|
+
var _a;
|
|
70
|
+
(_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll("slot[name=end-component]").forEach((child) => child.setAttribute("aria-label", `for ${this.label} row`));
|
|
71
|
+
}
|
|
72
|
+
render() {
|
|
73
|
+
const { el, listSize, hasEndComponent, label, renderCellContent, size, theme, value, } = this;
|
|
74
|
+
return (h(Host, { key: '46dd273c34a8cce8c645f53304f9b651b2f99a08', class: {
|
|
75
|
+
["ic-data-row-small"]: size === "small",
|
|
76
|
+
["breakpoint-medium"]: listSize === "m",
|
|
77
|
+
["breakpoint-xs"]: listSize === "xs",
|
|
78
|
+
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
79
|
+
}, role: "listitem" }, h("div", { key: 'eea3a2d30e7efbc0482011ed340da0469b461d5a', class: "data" }, h("div", { key: '3d8c6c8b8011048312c997831395b18a361b27e8', class: "text-cells" }, (isSlotUsed(el, "label") || label) && renderCellContent("label"), (isSlotUsed(el, "value") || value) && renderCellContent("value")), hasEndComponent && (h("div", { key: '8c2521ab22be9a57658a0a60b9180d0273ef60f1', class: "end-component" }, h("slot", { key: '8df22512fbbb6e5d7991e1d9bd217bda5fa563ac', name: "end-component" })))), h("div", { key: '6369f6266898ffffe9317c3bb3d4dd483d612f94', class: "divider" })));
|
|
80
|
+
}
|
|
81
|
+
get el() { return this; }
|
|
82
|
+
static get style() { return IcDataRowStyle0; }
|
|
83
|
+
}, [1, "ic-data-row", {
|
|
84
|
+
"label": [1],
|
|
85
|
+
"size": [1],
|
|
86
|
+
"theme": [1],
|
|
87
|
+
"value": [1],
|
|
88
|
+
"deviceSize": [32],
|
|
89
|
+
"listSize": [32]
|
|
90
|
+
}]);
|
|
91
|
+
function defineCustomElement$1() {
|
|
92
|
+
if (typeof customElements === "undefined") {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const components = ["ic-data-row", "ic-typography"];
|
|
96
|
+
components.forEach(tagName => { switch (tagName) {
|
|
97
|
+
case "ic-data-row":
|
|
98
|
+
if (!customElements.get(tagName)) {
|
|
99
|
+
customElements.define(tagName, DataRow);
|
|
100
|
+
}
|
|
101
|
+
break;
|
|
102
|
+
case "ic-typography":
|
|
103
|
+
if (!customElements.get(tagName)) {
|
|
104
|
+
defineCustomElement$2();
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
} });
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const IcDataRow = DataRow;
|
|
111
|
+
const defineCustomElement = defineCustomElement$1;
|
|
112
|
+
|
|
113
|
+
export { IcDataRow, defineCustomElement };
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=ic-data-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"ic-data-row.js","mappings":";;;;AAAA,MAAM,YAAY,GAAG,kvHAAkvH,CAAC;AACxwH,wBAAe,YAAY;;MCmBd,OAAO;IALpB;;;;QAMU,oBAAe,GAAY,KAAK,CAAC;QACjC,mBAAc,GAA0B,IAAI,CAAC;QAI5C,eAAU,GAAW,YAAY,CAAC,EAAE,CAAC;;;;QAWtC,SAAI,GAAoB,QAAQ,CAAC;;;;QAKjC,UAAK,GAAiB,SAAS,CAAC;QAsBhC,sBAAiB,GAAG;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;gBACvC,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;QAiBM,sBAAiB,GAAG,CAAC,IAAuB;YAClD,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;YACjC,QACE,WAAK,KAAK,EAAE,IAAI,IACb,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IACxB,YAAM,IAAI,EAAE,IAAI,GAAS,KAEzB,qBACE,OAAO,EACL,OAAO;sBACH,MAAM;sBACN,IAAI,CAAC,QAAQ,KAAK,IAAI;0BACtB,OAAO;0BACP,gBAAgB,IAGrB,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CACpB,CACjB,CACG,EACN;SACH,CAAC;KA+CH;IA1GC,oBAAoB;;QAClB,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;KACnC;IAED,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,gBAAgB;QACd,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACpD;IAUO,eAAe;;QACrB,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,GAAG,EAAE;YACP,MAAM,OAAO,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,IAAG,EAAE,CAAC;YACtC,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,QAAQ;oBACX,OAAO,GAAG,YAAY,CAAC,CAAC;0BACpB,IAAI;0BACJ,OAAO,GAAG,YAAY,CAAC,CAAC;8BACxB,GAAG;8BACH,IAAI,CAAC;aACZ;SACF;KACF;IAyBO,iBAAiB;;QACvB,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CACd,gBAAgB,CAAC,0BAA0B,EAC5C,OAAO,CAAC,CAAC,KAAK,KACb,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC,KAAK,MAAM,CAAC,CAC1D,CAAC;KACL;IAED,MAAM;QACJ,MAAM,EACJ,EAAE,EACF,QAAQ,EACR,eAAe,EACf,KAAK,EACL,iBAAiB,EACjB,IAAI,EACJ,KAAK,EACL,KAAK,GACN,GAAG,IAAI,CAAC;QAET,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,CAAC,mBAAmB,GAAG,IAAI,KAAK,OAAO;gBACvC,CAAC,mBAAmB,GAAG,QAAQ,KAAK,GAAG;gBACvC,CAAC,eAAe,GAAG,QAAQ,KAAK,IAAI;gBACpC,CAAC,YAAY,KAAK,EAAE,GAAG,KAAK,KAAK,SAAS;aAC3C,EACD,IAAI,EAAC,UAAU,IAEf,4DAAK,KAAK,EAAC,MAAM,IACf,4DAAK,KAAK,EAAC,YAAY,IACpB,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,iBAAiB,CAAC,OAAO,CAAC,EAChE,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,iBAAiB,CAAC,OAAO,CAAC,CAC7D,EACL,eAAe,KACd,4DAAK,KAAK,EAAC,eAAe,IACxB,6DAAM,IAAI,EAAC,eAAe,GAAQ,CAC9B,CACP,CACG,EACN,4DAAK,KAAK,EAAC,SAAS,GAAG,CAClB,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: top;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n\n --ic-typography-color: var(--ic-data-list-text-cell);\n\n color: var(--ic-data-list-text-cell);\n}\n\n.label {\n width: var(--data-row-label-width, 12.5rem);\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-data-list-text-label);\n\n color: var(--ic-data-list-text-label);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-cell);\n}\n\n:host(.ic-data-row-small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() listSize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label?: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value?: string;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) this.labelEndComponent();\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const row = this.el.shadowRoot?.querySelector(\".data\");\n if (row) {\n const rowSize = row?.clientWidth + 46;\n if (rowSize) {\n this.listSize =\n rowSize < DEVICE_SIZES.S\n ? \"xs\"\n : rowSize < DEVICE_SIZES.M\n ? \"m\"\n : \"xl\";\n }\n }\n }\n\n private renderCellContent = (cell: \"label\" | \"value\") => {\n const isValue = cell === \"value\";\n return (\n <div class={cell}>\n {isSlotUsed(this.el, cell) ? (\n <slot name={cell}></slot>\n ) : (\n <ic-typography\n variant={\n isValue\n ? \"body\"\n : this.listSize === \"xs\"\n ? \"label\"\n : \"subtitle-large\"\n }\n >\n {isValue ? this.value : this.label}\n </ic-typography>\n )}\n </div>\n );\n };\n\n private labelEndComponent(): void {\n this.el.shadowRoot\n ?.querySelectorAll(\"slot[name=end-component]\")\n .forEach((child) =>\n child.setAttribute(\"aria-label\", `for ${this.label} row`)\n );\n }\n\n render() {\n const {\n el,\n listSize,\n hasEndComponent,\n label,\n renderCellContent,\n size,\n theme,\n value,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-data-row-small\"]: size === \"small\",\n [\"breakpoint-medium\"]: listSize === \"m\",\n [\"breakpoint-xs\"]: listSize === \"xs\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {(isSlotUsed(el, \"label\") || label) && renderCellContent(\"label\")}\n {(isSlotUsed(el, \"value\") || value) && renderCellContent(\"value\")}\n </div>\n {hasEndComponent && (\n <div class=\"end-component\">\n <slot name=\"end-component\"></slot>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface IcDialog extends Components.IcDialog, HTMLElement {}
|
|
4
|
+
export const IcDialog: {
|
|
5
|
+
prototype: IcDialog;
|
|
6
|
+
new (): IcDialog;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Fragment, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { c as closeIcon } from './close-icon.js';
|
|
3
|
+
import { c as checkResizeObserver, C as refreshInteractiveElementsOnSlotChange, E as focusElement, F as slottedInteractiveElements, i as isSlotUsed, o as onComponentRequiredPropUndefined } from './helpers.js';
|
|
4
|
+
import { d as defineCustomElement$5 } from './ic-button2.js';
|
|
5
|
+
import { d as defineCustomElement$4 } from './ic-loading-indicator2.js';
|
|
6
|
+
import { d as defineCustomElement$3 } from './ic-tooltip2.js';
|
|
7
|
+
import { d as defineCustomElement$2 } from './ic-typography2.js';
|
|
8
|
+
|
|
9
|
+
const icDialogCss = "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type=\"button\"],[type=\"reset\"],[type=\"submit\"]{-webkit-appearance:button}button::-moz-focus-inner,[type=\"button\"]::-moz-focus-inner,[type=\"reset\"]::-moz-focus-inner,[type=\"submit\"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=\"button\"]:-moz-focusring,[type=\"reset\"]:-moz-focusring,[type=\"submit\"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type=\"checkbox\"],[type=\"radio\"]{box-sizing:border-box;padding:0;}[type=\"number\"]::-webkit-inner-spin-button,[type=\"number\"]::-webkit-outer-spin-button{height:auto}[type=\"search\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\"search\"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;min-height:100% !important;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);opacity:0}:host(.ic-dialog-fade-in){opacity:1}:host(.disable-height-constraint){background:none;justify-content:unset;align-items:unset}.dialog.disable-height-constraint{max-height:none;position:relative}.dialog.disable-height-constraint .content-area{overflow-y:visible}@media (prefers-reduced-motion: no-preference){:host{transition:opacity var(--ic-easing-transition-slow)}.dialog{transform:translateY(-3rem);transition:transform 1000s}:host(.ic-dialog-fade-in) .dialog{transform:translateY(0);transition:transform var(--ic-easing-transition-slow)}}:host(.ic-dialog-hidden){display:none}.dialog{background-color:var(--ic-dialog-background);color:var(--ic-dialog-text-primary);--ic-typography-color:var(--ic-dialog-text-primary);border:var(--ic-space-1px) solid var(--ic-dialog-border);border-radius:var(--ic-border-radius);padding:var(--ic-space-xs) 0 var(--ic-space-md);display:flex;flex-direction:column;box-sizing:border-box;overflow-x:visible}.small{width:50%;max-width:25rem;min-height:11rem;max-height:70vh}.medium{width:70vw;max-width:44rem;min-height:12.5rem;max-height:70vh}.large{width:90vw;max-width:62.5rem;min-height:12.5rem;max-height:90vh}.heading-area{display:flex;margin-bottom:var(--ic-space-xs);padding:0 var(--ic-space-md)}.heading{overflow-wrap:break-word}.close-icon{margin-left:auto}.close-icon>svg{color:var(--ic-dialog-clear-button)}.content-area{padding:0 var(--ic-space-md);margin:0;overflow-y:auto}#dialog-content{margin-bottom:var(--ic-space-sm)}#dialog-content ::slotted(ic-typography){overflow-wrap:break-word}#dialog-content ::slotted(*){position:relative}.dialog-controls{margin-top:auto;padding:var(--ic-space-xs) var(--ic-space-md) 0;display:flex;justify-content:flex-end;gap:var(--ic-space-md)}.dialog-control-button{width:-moz-fit-content;width:fit-content}.backdrop{overflow-y:auto;position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);padding-top:16px;padding-bottom:16px}.heading ic-typography{--ic-typography-color:var(--ic-dialog-text-primary)}.label ic-typography{--ic-typography-color:var(--ic-dialog-label)}@media (min-width: 800px){.large:not(.disable-width-constraint)>.content-area{width:75%}}@media (max-width: 576px){.dialog{width:100vw;height:100vh;max-width:none;max-height:none;box-sizing:border-box}.backdrop{padding:0}.dialog.disable-height-constraint{height:auto;min-height:100vh}}@media (max-width: 364px){.dialog-control-button{width:unset}}";
|
|
10
|
+
const IcDialogStyle0 = icDialogCss;
|
|
11
|
+
|
|
12
|
+
const Dialog = /*@__PURE__*/ proxyCustomElement(class Dialog extends HTMLElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.__registerHost();
|
|
16
|
+
this.__attachShadow();
|
|
17
|
+
this.icDialogCancelled = createEvent(this, "icDialogCancelled", 7);
|
|
18
|
+
this.icDialogClosed = createEvent(this, "icDialogClosed", 7);
|
|
19
|
+
this.icDialogConfirmed = createEvent(this, "icDialogConfirmed", 7);
|
|
20
|
+
this.icDialogOpened = createEvent(this, "icDialogOpened", 7);
|
|
21
|
+
this.contentAreaMutationObserver = null;
|
|
22
|
+
this.DATA_GETS_FOCUS = "data-gets-focus";
|
|
23
|
+
this.DIALOG_CONTROLS = "dialog-controls";
|
|
24
|
+
this.dialogHeight = 0;
|
|
25
|
+
this.focusAttemptCount = 0;
|
|
26
|
+
this.interactiveElementList = [];
|
|
27
|
+
this.resizeObserver = null;
|
|
28
|
+
this.dialogRendered = false;
|
|
29
|
+
this.fadeIn = false;
|
|
30
|
+
/**
|
|
31
|
+
* If set to `false`, the dialog will not close when the backdrop is clicked.
|
|
32
|
+
*/
|
|
33
|
+
this.closeOnBackdropClick = true;
|
|
34
|
+
/**
|
|
35
|
+
* If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.
|
|
36
|
+
*/
|
|
37
|
+
this.destructive = false;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the dismiss label tooltip and aria label.
|
|
40
|
+
*/
|
|
41
|
+
this.dismissLabel = "Dismiss";
|
|
42
|
+
/**
|
|
43
|
+
* If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.
|
|
44
|
+
* This prop also prevents popover elements from being cut off within the content area.
|
|
45
|
+
*/
|
|
46
|
+
this.disableHeightConstraint = false;
|
|
47
|
+
/**
|
|
48
|
+
* If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.
|
|
49
|
+
*/
|
|
50
|
+
this.disableWidthConstraint = false;
|
|
51
|
+
/**
|
|
52
|
+
* If `true`, the close button will not be displayed.
|
|
53
|
+
*/
|
|
54
|
+
this.hideCloseButton = false;
|
|
55
|
+
/**
|
|
56
|
+
* If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.
|
|
57
|
+
*/
|
|
58
|
+
this.hideDefaultControls = false;
|
|
59
|
+
/**
|
|
60
|
+
* If `true`, the dialog will be displayed.
|
|
61
|
+
*/
|
|
62
|
+
this.open = false;
|
|
63
|
+
/**
|
|
64
|
+
* Sets the maximum and minimum height and width for the dialog.
|
|
65
|
+
*/
|
|
66
|
+
this.size = "small";
|
|
67
|
+
/**
|
|
68
|
+
* Sets the theme color to the dark or light theme color. "inherit" will set the color based on the system settings or ic-theme component.
|
|
69
|
+
*/
|
|
70
|
+
this.theme = "inherit";
|
|
71
|
+
this.dialogOpened = () => {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
this.dialogRendered = true;
|
|
74
|
+
if (this.disableHeightConstraint) {
|
|
75
|
+
(_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.show();
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
(_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.showModal();
|
|
79
|
+
}
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
this.fadeIn = true;
|
|
82
|
+
/**
|
|
83
|
+
* This is required to set scroll back to top if:
|
|
84
|
+
* - dialog content goes below the fold
|
|
85
|
+
* - is closed using cancel or confirm and reopened.
|
|
86
|
+
*
|
|
87
|
+
* Without this, the scroll bar will start from the dialog's last scroll-x coordinate.
|
|
88
|
+
*/
|
|
89
|
+
if (this.backdropEl &&
|
|
90
|
+
this.disableHeightConstraint &&
|
|
91
|
+
this.backdropEl.scrollTop !== 0) {
|
|
92
|
+
this.backdropEl.scrollTop = 0;
|
|
93
|
+
}
|
|
94
|
+
}, 10);
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
this.getInteractiveElements();
|
|
97
|
+
this.setInitialFocus();
|
|
98
|
+
checkResizeObserver(this.runResizeObserver);
|
|
99
|
+
}, 75);
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
this.icDialogOpened.emit();
|
|
102
|
+
}, 80);
|
|
103
|
+
};
|
|
104
|
+
this.runResizeObserver = () => {
|
|
105
|
+
if (this.dialogEl) {
|
|
106
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
107
|
+
clearTimeout(this.resizeTimeout);
|
|
108
|
+
this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);
|
|
109
|
+
});
|
|
110
|
+
this.resizeObserver.observe(this.dialogEl);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
this.resizeObserverCallback = () => {
|
|
114
|
+
if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {
|
|
115
|
+
this.dialogHeight = this.dialogEl.clientHeight;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
this.removeSlotChangeListener = () => {
|
|
119
|
+
var _a;
|
|
120
|
+
if (this.contentArea) {
|
|
121
|
+
this.contentArea.removeEventListener("slotchange", this.getInteractiveElements);
|
|
122
|
+
(_a = this.contentAreaMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
this.setContentAreaMutationObserver = () => {
|
|
126
|
+
var _a;
|
|
127
|
+
const contentWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("#dialog-content");
|
|
128
|
+
if (contentWrapper) {
|
|
129
|
+
const { contentAreaSlot, contentAreaMutationObserver } = refreshInteractiveElementsOnSlotChange(contentWrapper || null, this.getInteractiveElements);
|
|
130
|
+
this.contentArea = contentAreaSlot;
|
|
131
|
+
this.contentAreaMutationObserver = contentAreaMutationObserver;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
this.focusLast = () => {
|
|
135
|
+
if (this.interactiveElementList.length > 0) {
|
|
136
|
+
focusElement(this.focusAttemptCount, this.interactiveElementList.length - 1, this.interactiveElementList, true);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
this.focusFirst = () => {
|
|
140
|
+
if (this.interactiveElementList.length > 0) {
|
|
141
|
+
focusElement(this.focusAttemptCount, 0, this.interactiveElementList);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
this.setInitialFocus = () => {
|
|
145
|
+
this.sourceElement = document.activeElement;
|
|
146
|
+
if (!this.interactiveElementList.length) {
|
|
147
|
+
// No interactive elements yet, retry shortly
|
|
148
|
+
setTimeout(() => {
|
|
149
|
+
this.getInteractiveElements();
|
|
150
|
+
if (this.interactiveElementList.length) {
|
|
151
|
+
this.setInitialFocus();
|
|
152
|
+
}
|
|
153
|
+
}, 10);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
let focusedElementIndex = this.interactiveElementList.findIndex((element) => element.hasAttribute(this.DATA_GETS_FOCUS));
|
|
157
|
+
if (focusedElementIndex === -1) {
|
|
158
|
+
focusedElementIndex = 0;
|
|
159
|
+
}
|
|
160
|
+
if (this.interactiveElementList[focusedElementIndex]) {
|
|
161
|
+
const focusElementResult = focusElement(this.focusAttemptCount, focusedElementIndex, this.interactiveElementList);
|
|
162
|
+
if (focusElementResult) {
|
|
163
|
+
this.focusAttemptCount = focusElementResult.newFocusAttemptCount;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
this.closeIconClick = () => {
|
|
168
|
+
this.open = false;
|
|
169
|
+
};
|
|
170
|
+
this.getInteractiveElements = () => {
|
|
171
|
+
var _a;
|
|
172
|
+
this.interactiveElementList = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll("ic-button")) || []);
|
|
173
|
+
const slottedElements = slottedInteractiveElements(this.el);
|
|
174
|
+
if (slottedElements.length > 0) {
|
|
175
|
+
if (slottedElements[0].slot !== this.DIALOG_CONTROLS) {
|
|
176
|
+
slottedElements[0].setAttribute(this.DATA_GETS_FOCUS, "");
|
|
177
|
+
}
|
|
178
|
+
else if (!this.destructive) {
|
|
179
|
+
slottedElements[slottedElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, "");
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// insert the slotted interactive elements after the close button in the focus order
|
|
183
|
+
if (slottedElements.length > 0 && this.interactiveElementList.length > 0) {
|
|
184
|
+
if (this.interactiveElementList[0].classList.contains("close-icon")) {
|
|
185
|
+
// if there is a close button, insert slotted interactive elements after it in the focus order
|
|
186
|
+
this.interactiveElementList = [
|
|
187
|
+
this.interactiveElementList[0],
|
|
188
|
+
...slottedElements,
|
|
189
|
+
...this.interactiveElementList.slice(1),
|
|
190
|
+
];
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// if there is no close button, slotted interactive elements should be first in the focus order
|
|
194
|
+
this.interactiveElementList = [
|
|
195
|
+
...slottedElements,
|
|
196
|
+
...this.interactiveElementList,
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
this.renderDialog = () => {
|
|
202
|
+
const { hideDefaultControls, size, heading, label, destructive, dismissLabel, hideCloseButton, disableHeightConstraint, disableWidthConstraint, closeIconClick, DIALOG_CONTROLS, } = this;
|
|
203
|
+
const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);
|
|
204
|
+
return (h("dialog", { class: {
|
|
205
|
+
dialog: true,
|
|
206
|
+
[`${size}`]: true,
|
|
207
|
+
"disable-height-constraint": !!disableHeightConstraint,
|
|
208
|
+
"disable-width-constraint": !!disableWidthConstraint,
|
|
209
|
+
}, "aria-labelledby": "dialog-label dialog-heading", "aria-describedby": "dialog-alert dialog-content", ref: (el) => (this.dialogEl = el) }, h("div", { tabindex: "0", onFocus: this.focusLast }), h("div", { class: "heading-area" }, h("div", { class: "heading-content" }, h("div", { class: "label" }, h("slot", { name: "label" }, h("ic-typography", { variant: "label", id: "dialog-label" }, label))), h("div", { class: "heading" }, h("slot", { name: "heading" }, h("ic-typography", { variant: "h4", id: "dialog-heading" }, heading)))), !hideCloseButton && (h("ic-button", { class: "close-icon", variant: "icon-tertiary", innerHTML: closeIcon, "aria-label": dismissLabel, onClick: closeIconClick, "data-gets-focus": destructive || (hideDefaultControls && !controlsSlotUsed)
|
|
210
|
+
? ""
|
|
211
|
+
: null }))), h("div", { class: "content-area" }, isSlotUsed(this.el, "alert") && h("slot", { name: "alert" }), h("div", { id: "dialog-content" }, h("slot", null))), (controlsSlotUsed || !hideDefaultControls) && (h("div", { class: {
|
|
212
|
+
[DIALOG_CONTROLS]: true,
|
|
213
|
+
} }, controlsSlotUsed ? (h("slot", { name: DIALOG_CONTROLS })) : (h(Fragment, null, h("ic-button", { variant: "tertiary", onClick: () => this.cancelDialog(), class: "dialog-control-button", "data-gets-focus": null }, "Cancel"), h("ic-button", { variant: destructive ? "destructive" : "primary", onClick: () => this.confirmDialog(), class: "dialog-control-button", "data-gets-focus": "" }, "Confirm"))))), h("div", { tabindex: "0", onFocus: this.focusFirst })));
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
watchOpenHandler() {
|
|
217
|
+
if (this.open) {
|
|
218
|
+
this.dialogOpened();
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
this.fadeIn = false;
|
|
222
|
+
if (this.resizeObserver !== null) {
|
|
223
|
+
this.resizeObserver.disconnect();
|
|
224
|
+
}
|
|
225
|
+
setTimeout(() => {
|
|
226
|
+
var _a, _b;
|
|
227
|
+
this.dialogRendered = false;
|
|
228
|
+
(_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.close();
|
|
229
|
+
(_b = this.sourceElement) === null || _b === void 0 ? void 0 : _b.focus();
|
|
230
|
+
this.dialogHeight = 0;
|
|
231
|
+
this.icDialogClosed.emit();
|
|
232
|
+
}, 80);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
disconnectedCallback() {
|
|
236
|
+
this.removeSlotChangeListener();
|
|
237
|
+
}
|
|
238
|
+
componentDidLoad() {
|
|
239
|
+
this.setContentAreaMutationObserver();
|
|
240
|
+
if (this.open) {
|
|
241
|
+
this.dialogOpened();
|
|
242
|
+
}
|
|
243
|
+
!isSlotUsed(this.el, "heading") &&
|
|
244
|
+
onComponentRequiredPropUndefined([{ prop: this.heading, propName: "heading" }], "Dialog");
|
|
245
|
+
}
|
|
246
|
+
componentDidRender() {
|
|
247
|
+
document.body.style.overflow =
|
|
248
|
+
getComputedStyle(this.el).display !== "none" &&
|
|
249
|
+
this.disableHeightConstraint
|
|
250
|
+
? "hidden"
|
|
251
|
+
: "auto";
|
|
252
|
+
}
|
|
253
|
+
handleKeyboard(ev) {
|
|
254
|
+
if (this.dialogRendered) {
|
|
255
|
+
switch (ev.key) {
|
|
256
|
+
case "Escape":
|
|
257
|
+
if (!ev.repeat) {
|
|
258
|
+
this.open = false;
|
|
259
|
+
}
|
|
260
|
+
ev.stopImmediatePropagation();
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
handleClick(ev) {
|
|
266
|
+
if (this.dialogEl &&
|
|
267
|
+
this.closeOnBackdropClick &&
|
|
268
|
+
ev.composedPath().indexOf(this.dialogEl) <= 0) {
|
|
269
|
+
const { top, height, left, width } = this.dialogEl.getBoundingClientRect();
|
|
270
|
+
const isInDialog = top <= ev.clientY &&
|
|
271
|
+
ev.clientY <= top + height &&
|
|
272
|
+
left <= ev.clientX &&
|
|
273
|
+
ev.clientX <= left + width;
|
|
274
|
+
if (!isInDialog) {
|
|
275
|
+
this.open = false;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.
|
|
281
|
+
*/
|
|
282
|
+
async cancelDialog() {
|
|
283
|
+
this.icDialogCancelled.emit();
|
|
284
|
+
this.open = false;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.
|
|
288
|
+
*/
|
|
289
|
+
async confirmDialog() {
|
|
290
|
+
this.icDialogConfirmed.emit();
|
|
291
|
+
}
|
|
292
|
+
render() {
|
|
293
|
+
const { dialogRendered, disableHeightConstraint, fadeIn, theme, size } = this;
|
|
294
|
+
return (h(Host, { key: '81eec3ff249b58950bfd8b0e525e46d8a5688db3', class: {
|
|
295
|
+
"ic-dialog-hidden": !dialogRendered,
|
|
296
|
+
"ic-dialog-fade-in": fadeIn,
|
|
297
|
+
"disable-height-constraint": !!disableHeightConstraint,
|
|
298
|
+
[`ic-theme-${theme}`]: theme !== "inherit",
|
|
299
|
+
[`ic-dialog-size-${size}`]: size != undefined,
|
|
300
|
+
} }, disableHeightConstraint ? (h("div", { class: "backdrop", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));
|
|
301
|
+
}
|
|
302
|
+
get el() { return this; }
|
|
303
|
+
static get watchers() { return {
|
|
304
|
+
"open": ["watchOpenHandler"]
|
|
305
|
+
}; }
|
|
306
|
+
static get style() { return IcDialogStyle0; }
|
|
307
|
+
}, [1, "ic-dialog", {
|
|
308
|
+
"closeOnBackdropClick": [4, "close-on-backdrop-click"],
|
|
309
|
+
"destructive": [4],
|
|
310
|
+
"dismissLabel": [1, "dismiss-label"],
|
|
311
|
+
"disableHeightConstraint": [4, "disable-height-constraint"],
|
|
312
|
+
"disableWidthConstraint": [4, "disable-width-constraint"],
|
|
313
|
+
"hideCloseButton": [4, "hide-close-button"],
|
|
314
|
+
"hideDefaultControls": [4, "hide-default-controls"],
|
|
315
|
+
"heading": [1],
|
|
316
|
+
"label": [1],
|
|
317
|
+
"open": [1540],
|
|
318
|
+
"size": [1],
|
|
319
|
+
"theme": [1],
|
|
320
|
+
"dialogRendered": [32],
|
|
321
|
+
"fadeIn": [32],
|
|
322
|
+
"cancelDialog": [64],
|
|
323
|
+
"confirmDialog": [64]
|
|
324
|
+
}, [[4, "keydown", "handleKeyboard"], [0, "click", "handleClick"]], {
|
|
325
|
+
"open": ["watchOpenHandler"]
|
|
326
|
+
}]);
|
|
327
|
+
function defineCustomElement$1() {
|
|
328
|
+
if (typeof customElements === "undefined") {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
const components = ["ic-dialog", "ic-button", "ic-loading-indicator", "ic-tooltip", "ic-typography"];
|
|
332
|
+
components.forEach(tagName => { switch (tagName) {
|
|
333
|
+
case "ic-dialog":
|
|
334
|
+
if (!customElements.get(tagName)) {
|
|
335
|
+
customElements.define(tagName, Dialog);
|
|
336
|
+
}
|
|
337
|
+
break;
|
|
338
|
+
case "ic-button":
|
|
339
|
+
if (!customElements.get(tagName)) {
|
|
340
|
+
defineCustomElement$5();
|
|
341
|
+
}
|
|
342
|
+
break;
|
|
343
|
+
case "ic-loading-indicator":
|
|
344
|
+
if (!customElements.get(tagName)) {
|
|
345
|
+
defineCustomElement$4();
|
|
346
|
+
}
|
|
347
|
+
break;
|
|
348
|
+
case "ic-tooltip":
|
|
349
|
+
if (!customElements.get(tagName)) {
|
|
350
|
+
defineCustomElement$3();
|
|
351
|
+
}
|
|
352
|
+
break;
|
|
353
|
+
case "ic-typography":
|
|
354
|
+
if (!customElements.get(tagName)) {
|
|
355
|
+
defineCustomElement$2();
|
|
356
|
+
}
|
|
357
|
+
break;
|
|
358
|
+
} });
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
const IcDialog = Dialog;
|
|
362
|
+
const defineCustomElement = defineCustomElement$1;
|
|
363
|
+
|
|
364
|
+
export { IcDialog, defineCustomElement };
|
|
365
|
+
|
|
366
|
+
//# sourceMappingURL=ic-dialog.js.map
|