@ukic/web-components 2.35.0 → 2.35.2
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/README.md +1 -0
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +23 -0
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
- package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +2 -2
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/ic-accordion/ic-accordion.stories.js +635 -0
- package/dist/collection/components/ic-alert/ic-alert.stories.js +257 -0
- package/dist/collection/components/ic-back-to-top/ic-back-to-top.stories.js +162 -0
- package/dist/collection/components/ic-badge/ic-badge.js +39 -1
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
- package/dist/collection/components/ic-badge/ic-badge.stories.js +1082 -0
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +194 -0
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
- package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.stories.js +502 -0
- package/dist/collection/components/ic-button/ic-button.stories.js +2218 -0
- package/dist/collection/components/ic-card/ic-card.stories.js +1034 -0
- package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +687 -0
- package/dist/collection/components/ic-chip/ic-chip.stories.js +670 -0
- package/dist/collection/components/ic-classification-banner/ic-classification-banner.stories.js +131 -0
- package/dist/collection/components/ic-data-entity/ic-data-entity.stories.js +487 -0
- package/dist/collection/components/ic-dialog/ic-dialog.stories.js +1256 -0
- package/dist/collection/components/ic-empty-state/ic-empty-state.stories.js +397 -0
- package/dist/collection/components/ic-footer/ic-footer.stories.js +383 -0
- package/dist/collection/components/ic-hero/ic-hero.stories.js +489 -0
- package/dist/collection/components/ic-link/ic-link.stories.js +114 -0
- package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +416 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +4 -0
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +1 -1
- package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +7 -35
- package/dist/collection/components/ic-page-header/ic-page-header.stories.js +557 -0
- package/dist/collection/components/ic-pagination/ic-pagination.stories.js +125 -0
- package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +486 -0
- package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +450 -0
- package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +591 -0
- package/dist/collection/components/ic-section-container/ic-section-container.stories.js +62 -0
- package/dist/collection/components/ic-select/ic-select-searchable.stories.js +953 -0
- package/dist/collection/components/ic-select/ic-select-single.stories.js +780 -0
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +2526 -0
- package/dist/collection/components/ic-skeleton/ic-skeleton.stories.js +141 -0
- package/dist/collection/components/ic-status-tag/ic-status-tag.stories.js +161 -0
- package/dist/collection/components/ic-stepper/ic-stepper.stories.js +327 -0
- package/dist/collection/components/ic-switch/ic-switch.stories.js +171 -0
- package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +388 -0
- package/dist/collection/components/ic-text-field/ic-text-field.stories.js +1083 -0
- package/dist/collection/components/ic-theme/ic-theme.stories.js +171 -0
- package/dist/collection/components/ic-toast/ic-toast.js +2 -2
- package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
- package/dist/collection/components/ic-toast/ic-toast.stories.js +413 -0
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +3 -3
- package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
- package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +537 -0
- package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +610 -0
- package/dist/collection/components/ic-tooltip/ic-tooltip.js +2 -5
- package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
- package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +356 -0
- package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +1083 -0
- package/dist/collection/components/ic-typography/ic-typography.stories.js +437 -0
- package/dist/collection/patterns/top-nav-content-footer.stories.js +109 -0
- package/dist/collection/patterns/z-index.stories.js +474 -0
- package/dist/components/ic-badge.js +25 -2
- package/dist/components/ic-badge.js.map +1 -1
- package/dist/components/ic-navigation-button.js +2 -2
- package/dist/components/ic-navigation-button.js.map +1 -1
- package/dist/components/ic-navigation-item.js +1 -1
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-toast.js +2 -2
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-tooltip2.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-3e8023ff.entry.js +2 -0
- package/dist/core/p-3e8023ff.entry.js.map +1 -0
- package/dist/core/p-ba06cc95.entry.js.map +1 -1
- package/dist/core/{p-7e8a4abd.entry.js → p-bfaa257c.entry.js} +2 -2
- package/dist/core/{p-7e8a4abd.entry.js.map → p-bfaa257c.entry.js.map} +1 -1
- package/dist/core/p-c05474f3.entry.js +2 -0
- package/dist/core/p-c05474f3.entry.js.map +1 -0
- package/dist/core/{p-5d3c6ea1.entry.js → p-d0299926.entry.js} +2 -2
- package/dist/core/p-d0299926.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-badge.entry.js +23 -0
- package/dist/esm/ic-badge.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-navigation-button.entry.js +2 -2
- package/dist/esm/ic-navigation-button.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +1 -1
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +2 -2
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-badge/ic-badge.d.ts +5 -0
- package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -1
- package/dist/types/components.d.ts +7 -0
- package/hydrate/index.js +30 -7
- package/package.json +17 -12
- package/vscode-data.json +4 -0
- package/dist/core/p-405d89bb.entry.js +0 -2
- package/dist/core/p-405d89bb.entry.js.map +0 -1
- package/dist/core/p-5d3c6ea1.entry.js.map +0 -1
- package/dist/core/p-dfb3e76e.entry.js +0 -2
- package/dist/core/p-dfb3e76e.entry.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["icToastCss","AUTO_DISMISS_TIMER_REFRESH_RATE_MS","TOAST_HEADING_CHAR_LIMIT","TOAST_MESSAGE_CHAR_LIMIT","Toast","this","interactiveElements","dismissAction","icDismiss","emit","handleProgressChange","timerProgress","autoDismissTimeout","dismissModeChangeHandler","newValue","isManual","disconnectedCallback","window","clearTimeout","dismissTimeout","clearInterval","timerRefreshInterval","componentWillLoad","handleLongText","heading","length","_a","message","isSlotUsed","el","dismissMode","variant","neutralVariantLabel","_b","neutralIconAriaLabel","VARIANT_ICONS","ariaLabel","toastMessage","isPropDefined","setAttribute","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","actionContent","getSlot","dismissButton","shadowRoot","querySelector","push","handleDismiss","visible","handleKeyboard","ev","key","preventDefault","findNextInteractiveElement","shiftKey","setFocus","repeat","stopImmediatePropagation","handleTimer","type","setTimeout","setInterval","setVisible","document","activeElement","headingTooLong","messageTooLong","console","error","isBackwards","firstEl","lastEl","isActive","currentIndex","some","index","targetEl","render","dismissButtonAriaLabel","h","Host","class","role","name","innerHTML","icon","appearance","size","progress","id","closeIcon","onClick","IcThemeForegroundEnum","Light"],"sources":["src/components/ic-toast/ic-toast.css?tag=ic-toast&encapsulation=shadow","src/components/ic-toast/ic-toast.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-toast: z-index of toast\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n animation: fadein var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host(.hidden) {\n animation: fadeout var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n --bottom-position: var(--ic-space-xl);\n\n position: fixed;\n bottom: var(--bottom-position);\n left: 50%;\n transform: translate(-50%);\n z-index: var(--ic-z-index-toast);\n}\n\n:host(.hidden) {\n display: none;\n}\n\n.container {\n max-width: 32.5rem;\n min-width: 18rem;\n box-shadow: var(--ic-elevation-overlay);\n min-height: 3.5rem;\n background-color: var(--ic-architectural-800);\n color: var(--ic-color-white-text);\n display: flex;\n align-items: center;\n position: relative;\n border-radius: var(--ic-border-radius);\n}\n\n.toast-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n position: absolute;\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n}\n\n.divider-neutral {\n background-color: var(--ic-status-unknown);\n}\n\n.divider-info {\n background-color: var(--ic-status-info-contrast);\n}\n\n.divider-warning {\n background-color: var(--ic-status-warning-contrast);\n}\n\n.divider-error {\n background-color: var(--ic-status-error-contrast);\n}\n\n.divider-success {\n background-color: var(--ic-status-success-contrast);\n}\n\n.toast-icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n:host([variant=\"neutral\"]) .toast-icon svg,\n::slotted(svg) {\n fill: var(--ic-status-unknown);\n}\n\n:host([variant=\"info\"]) .toast-icon svg {\n fill: var(--ic-status-info-contrast);\n}\n\n:host([variant=\"warning\"]) .toast-icon svg {\n fill: var(--ic-status-warning-contrast);\n}\n\n:host([variant=\"error\"]) .toast-icon svg {\n fill: var(--ic-status-error-contrast);\n}\n\n:host([variant=\"success\"]) .toast-icon svg {\n fill: var(--ic-status-success-contrast);\n}\n\n.toast-content {\n margin-left: var(--ic-space-xs);\n width: 100%;\n}\n\n.no-icon {\n margin-left: var(--ic-space-md);\n}\n\n.toast-message {\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n.toast-action-container {\n padding-bottom: var(--ic-space-md);\n}\n\nic-button,\n.toast-dismiss-timer {\n padding: var(--ic-space-xs);\n}\n\n@media (max-width: 576px) {\n :host {\n --bottom-position: var(--ic-space-lg);\n\n width: calc(100% - 2 * var(--ic-space-md));\n }\n}\n\n@media (min-width: 993px) {\n :host {\n --bottom-position: calc(var(--ic-space-xl) + var(--ic-space-xs));\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-hc-border);\n }\n}\n\n@keyframes fadein {\n from {\n bottom: 0;\n opacity: 0;\n }\n\n to {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n}\n\n@keyframes fadeout {\n from {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n\n to {\n bottom: 0;\n opacity: 0;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n @Watch(\"dismissMode\")\n dismissModeChangeHandler(newValue: IcActivationTypes): void {\n this.isManual = newValue === \"manual\";\n }\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex: number;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot.activeElement\n : document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"wMAAA,MAAMA,EAAa,0tJC4BnB,MAAMC,EAAqC,IAC3C,MAAMC,EAA2B,GACjC,MAAMC,EAA2B,I,MAWpBC,EAAK,M,8DAERC,KAAAC,oBAAgD,GAgLhDD,KAAAE,cAAgB,KACtBF,KAAKG,UAAUC,MAAM,EAGfJ,KAAAK,qBAAuB,KAC7BL,KAAKM,eACFV,EAAqCI,KAAKO,mBAAsB,GAAG,E,mBA/K/C,I,aACN,M,wBAM4B,I,4BAKb,U,iBAKyB,S,yGAE3D,wBAAAC,CAAyBC,GACvBT,KAAKU,SAAWD,IAAa,Q,CA4B/B,oBAAAE,GACEC,OAAOC,aAAab,KAAKc,gBACzBF,OAAOG,cAAcf,KAAKgB,qB,CAG5B,iBAAAC,G,QACEjB,KAAKkB,eACHlB,KAAKmB,QAAQC,OAASvB,IACtBwB,EAAArB,KAAKsB,WAAO,MAAAD,SAAA,SAAAA,EAAED,QAAStB,GAGzB,GAAIE,KAAKO,mBAAqB,IAAMP,KAAKO,mBAAqB,IAE9D,GAAIgB,EAAWvB,KAAKwB,GAAI,UAAWxB,KAAKyB,YAAc,SACtDzB,KAAKU,SAAWV,KAAKyB,cAAgB,SAErC,GAAIF,EAAWvB,KAAKwB,GAAI,gBAAiBxB,KAAK0B,QAAU,UACxD,GAAI1B,KAAK0B,UAAY,UAAW,CAC9B1B,KAAK2B,qBACHC,EAAA5B,KAAK6B,wBAAoB,MAAAD,SAAA,EAAAA,EAAIE,EAAc9B,KAAK0B,SAASK,S,CAG7D,GAAI/B,KAAKU,SAAU,CACjB,MAAMsB,EAAuBC,EAAcjC,KAAKsB,SAC5C,KAAKtB,KAAKsB,UACV,GACJtB,KAAKwB,GAAGU,aACN,aACAlC,KAAK0B,QACD1B,KAAK2B,qBAAuBG,EAAc9B,KAAK0B,SAASK,UACxD/B,KAAKmB,UAEVnB,KAAK0B,SAAW1B,KAAKsB,UACpBtB,KAAKwB,GAAGU,aACN,mBACAlC,KAAK0B,QAAU,GAAG1B,KAAKmB,UAAUa,IAAiBhC,KAAKsB,Q,EAK/D,gBAAAa,GACEC,EACE,CAAC,CAAEC,KAAMrC,KAAKmB,QAASmB,SAAU,YACjC,SAEF,MAAMC,EAAgBC,EAAQxC,KAAKwB,GAAI,UACvC,MAAMiB,EAAgBzC,KAAKwB,GAAGkB,WAAWC,cAAc,aACvD,GAAIJ,EAAevC,KAAKC,oBAAoB2C,KAAKL,GACjD,GAAIE,EAAezC,KAAKC,oBAAoB2C,KAAKH,E,CAInD,aAAAI,GACE7C,KAAK8C,QAAU,MACf/B,cAAcf,KAAKgB,sBACnBhB,KAAKM,cAAgB,G,CAIvB,cAAAyC,CAAeC,GACb,GAAIhD,KAAKU,UAAYV,KAAK8C,QAAS,CACjC,OAAQE,EAAGC,KACT,IAAK,MACHD,EAAGE,iBACHlD,KAAKmD,2BAA2BH,EAAGI,UAAUC,WAC7C,MACF,IAAK,UACFL,EAAGM,QAAUtD,KAAKE,gBACnB8C,EAAGO,2BACH,M,EAOR,WAAAC,CAAYR,GACV,IAAKhD,KAAKU,SAAU,CAClB,OAAQsC,EAAGS,MACT,IAAK,aACH7C,OAAOC,aAAab,KAAKc,gBACzBF,OAAOG,cAAcf,KAAKgB,sBAC1BhB,KAAKM,cAAgB,IACrB,MACF,IAAK,aACHN,KAAKc,eAAiBF,OAAO8C,WAC3B1D,KAAKE,cACLF,KAAKO,oBAEPP,KAAKgB,qBAAuBJ,OAAO+C,YACjC3D,KAAKK,qBACLT,GAEF,M,EAUR,gBAAMgE,GACJ,IAAK5D,KAAK8C,QAAS9C,KAAK8C,QAAU,KAClC,IAAK9C,KAAKU,SAAU,CAClBV,KAAKc,eAAiBF,OAAO8C,WAC3B1D,KAAKE,cACLF,KAAKO,oBAEPP,KAAKgB,qBAAuBJ,OAAO+C,YACjC3D,KAAKK,qBACLT,GAEF,OAAO,I,KACF,CACLgB,OAAO8C,YAAW,IAAM1D,KAAKC,oBAAoB,GAAGoD,YAAY,KAChE,OAAOQ,SAASC,a,EAaZ,cAAA5C,CACN6C,EACAC,GAEA,GAAIA,GAAkBD,EAAgB,CACpCE,QAAQC,MACN,gCAAgCH,EAAiB,UAAY,KAC3DA,GAAkBC,EAAiB,QAAU,KAE7CA,EAAiB,UAAY,kE,EAM7B,0BAAAb,CACNgB,GAEA,MAAMC,EAAUpE,KAAKC,oBAAoB,GACzC,MAAMoE,EACJrE,KAAKC,oBAAoBD,KAAKC,oBAAoBmB,OAAS,GAE7D,GAAIpB,KAAKsE,SAASH,EAAcC,EAAUC,GACxC,OAAOF,EAAcE,EAASD,EAEhC,IAAIG,EAEJ,OAAOvE,KAAKC,oBAAoBuE,MAAK,CAAChD,EAAIiD,KACxC,IAAKzE,KAAKsE,SAAS9C,GAAK,OAAO,MAC/B+C,EAAeE,EACf,OAAO,IAAI,IAETzE,KAAKC,oBAAoBsE,GAAgBJ,GAAe,EAAI,IAC5DC,C,CAGE,QAAAE,CAASI,GACf,OAAOA,IAAa1E,KAAKwB,KACnBxB,KAAKwB,GAAGkB,WAAWoB,cACrBD,SAASC,gBAAkBY,C,CAGjC,MAAAC,GACE,MAAMjD,QACJA,EAAOP,QACPA,EAAOG,QACPA,EAAOwB,QACPA,EAAOpC,SACPA,EAAQkE,uBACRA,GACE5E,KACJ,OACE6E,EAACC,EAAI,CACHC,MAAO,CAAE,CAAC,WAAYjC,GACtBkC,KAAMtE,EAAW,SAAW,UAE5BmE,EAAA,OAAKE,MAAM,aACRrD,GAAWoB,GACV+B,EAAA,OAAKE,MAAM,wBACTF,EAAA,OACEE,MAAO,CACL,CAAC,WAAY,KACb,CAAC,WAAWrD,KAAY,QAG3BA,IAAY,UACXmD,EAAA,QAAMI,KAAK,iBAEXJ,EAAA,QACEE,MAAM,aACNG,UAAWpD,EAAcJ,GAASyD,QAK1CN,EAAA,OACEE,MAAO,CACL,CAAC,iBAAkB,KACnB,CAAC,WACCrD,IAAY,YAAcH,EAAWvB,KAAKwB,GAAI,kBAGlDqD,EAAA,OAAKE,MAAM,iBACTF,EAAA,iBAAenD,QAAQ,kBACpBoB,GAAW+B,EAAA,UAAK1D,IAElBG,GACCuD,EAAA,iBAAenD,QAAQ,QACpBoB,GAAW+B,EAAA,SAAIvD,KAIrBC,EAAWvB,KAAKwB,GAAI,WACnBqD,EAAA,OAAKE,MAAM,0BACTF,EAAA,QAAMI,KAAK,cAIfvE,EACAmE,EAAA,wBACEE,MAAM,sBACNK,WAAW,QACXC,KAAK,OACLC,SAAUtF,KAAKM,gBAGjBuE,EAAA,aACEU,GAAG,iBACHL,UAAWM,EACXC,QAASzF,KAAKE,cACdwB,QAAQ,OACR0D,WAAYM,EAAsBC,MAAK,aAC3Bf,K"}
|
1
|
+
{"version":3,"names":["icToastCss","AUTO_DISMISS_TIMER_REFRESH_RATE_MS","TOAST_HEADING_CHAR_LIMIT","TOAST_MESSAGE_CHAR_LIMIT","Toast","this","interactiveElements","dismissAction","icDismiss","emit","handleProgressChange","timerProgress","autoDismissTimeout","dismissModeChangeHandler","newValue","isManual","disconnectedCallback","window","clearTimeout","dismissTimeout","clearInterval","timerRefreshInterval","componentWillLoad","handleLongText","heading","length","_a","message","isSlotUsed","el","dismissMode","variant","neutralVariantLabel","_b","neutralIconAriaLabel","VARIANT_ICONS","ariaLabel","toastMessage","isPropDefined","setAttribute","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","actionContent","getSlot","dismissButton","shadowRoot","querySelector","push","handleDismiss","visible","handleKeyboard","ev","key","preventDefault","findNextInteractiveElement","shiftKey","setFocus","repeat","stopImmediatePropagation","handleTimer","type","setTimeout","setInterval","setVisible","document","activeElement","headingTooLong","messageTooLong","console","error","isBackwards","firstEl","lastEl","isActive","currentIndex","some","index","targetEl","render","dismissButtonAriaLabel","h","Host","class","role","name","innerHTML","icon","appearance","size","progress","id","closeIcon","onClick","IcThemeForegroundEnum","Light"],"sources":["src/components/ic-toast/ic-toast.css?tag=ic-toast&encapsulation=shadow","src/components/ic-toast/ic-toast.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-toast: z-index of toast\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n animation: fadein var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host(.hidden) {\n animation: fadeout var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n --bottom-position: var(--ic-space-xl);\n\n position: fixed;\n bottom: var(--bottom-position);\n left: 50%;\n transform: translate(-50%);\n z-index: var(--ic-z-index-toast);\n}\n\n:host(.hidden) {\n display: none;\n}\n\n.container {\n max-width: 32.5rem;\n min-width: 18rem;\n box-shadow: var(--ic-elevation-overlay);\n min-height: 3.5rem;\n background-color: var(--ic-architectural-800);\n color: var(--ic-color-white-text);\n display: flex;\n align-items: center;\n position: relative;\n border-radius: var(--ic-border-radius);\n}\n\n.toast-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n position: absolute;\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n}\n\n.divider-neutral {\n background-color: var(--ic-status-unknown);\n}\n\n.divider-info {\n background-color: var(--ic-status-info-contrast);\n}\n\n.divider-warning {\n background-color: var(--ic-status-warning-contrast);\n}\n\n.divider-error {\n background-color: var(--ic-status-error-contrast);\n}\n\n.divider-success {\n background-color: var(--ic-status-success-contrast);\n}\n\n.toast-icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n:host([variant=\"neutral\"]) .toast-icon svg,\n::slotted(svg) {\n fill: var(--ic-status-unknown);\n}\n\n:host([variant=\"info\"]) .toast-icon svg {\n fill: var(--ic-status-info-contrast);\n}\n\n:host([variant=\"warning\"]) .toast-icon svg {\n fill: var(--ic-status-warning-contrast);\n}\n\n:host([variant=\"error\"]) .toast-icon svg {\n fill: var(--ic-status-error-contrast);\n}\n\n:host([variant=\"success\"]) .toast-icon svg {\n fill: var(--ic-status-success-contrast);\n}\n\n.toast-content {\n margin-left: var(--ic-space-xs);\n width: 100%;\n}\n\n.no-icon {\n margin-left: var(--ic-space-md);\n}\n\n.toast-message {\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n.toast-action-container {\n padding-bottom: var(--ic-space-md);\n}\n\nic-button,\n.toast-dismiss-timer {\n padding: var(--ic-space-xs);\n}\n\n@media (max-width: 576px) {\n :host {\n --bottom-position: var(--ic-space-lg);\n\n width: calc(100% - 2 * var(--ic-space-md));\n }\n}\n\n@media (min-width: 993px) {\n :host {\n --bottom-position: calc(var(--ic-space-xl) + var(--ic-space-xs));\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-hc-border);\n }\n}\n\n@keyframes fadein {\n from {\n bottom: 0;\n opacity: 0;\n }\n\n to {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n}\n\n@keyframes fadeout {\n from {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n\n to {\n bottom: 0;\n opacity: 0;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n @Watch(\"dismissMode\")\n dismissModeChangeHandler(newValue: IcActivationTypes): void {\n this.isManual = newValue === \"manual\";\n }\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex: number;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot.activeElement\n : document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"alert\"}\n aria-live={isManual ? null : \"polite\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && (isManual ? <h5>{heading}</h5> : <p>{heading}</p>)}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
import{r as s,h as t,H as a,g as i}from"./p-6b5e91e2.js";import{c,h as e,g as r,b as o,d as h,e as n,a as l}from"./p-d41c847e.js";import"./p-26b7b18f.js";const d="@media (prefers-reduced-motion: no-preference){:host(.show){animation:expand var(--ic-transition-duration-slow)}:host(.hide){animation:shrink var(--ic-transition-duration-slow)}}:host{display:flex;height:var(--ic-space-md);min-width:var(--ic-space-md);width:-moz-fit-content;width:fit-content;border-radius:calc(2 * var(--ic-space-xxl));position:absolute}:host(.neutral){background-color:var(--ic-architectural-500)}:host(.light){background-color:var(--ic-architectural-40)}:host(.info){background-color:var(--ic-status-info)}:host(.warning){background-color:var(--ic-status-warning-mid)}:host(.error){background-color:var(--ic-status-error)}:host(.success){background-color:var(--ic-status-success)}:host(.small){height:var(--ic-space-sm);min-width:var(--ic-space-sm)}:host(.large){height:calc(var(--ic-space-md) + var(--ic-space-xxs));min-width:calc(var(--ic-space-md) + var(--ic-space-xxs))}:host(.dot.default){height:var(--ic-space-xs);width:var(--ic-space-xs);min-width:var(--ic-space-xs)}:host(.dot.small){height:calc(var(--ic-space-xxs) + var(--ic-space-xxxs));width:calc(var(--ic-space-xxs) + var(--ic-space-xxxs));min-width:calc(var(--ic-space-xxs) + var(--ic-space-xxxs))}:host(.dot.large){height:var(--ic-space-sm);width:var(--ic-space-sm);min-width:var(--ic-space-sm)}:host(.foreground-dark) ::slotted(*){fill:var(--ic-color-primary-text)}:host(.foreground-light) ::slotted(*){fill:white}:host(.foreground-dark) ic-typography{color:var(--ic-color-primary-text)}:host(.foreground-light) ic-typography{color:white}:host(.text) ic-typography{align-self:center;padding:0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px)}:host(.text.small) ic-typography{padding:0 0.2132rem}:host(.text.large) ic-typography{padding:0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px)}:host(.icon) ::slotted(svg){width:var(--ic-space-sm);height:var(--ic-space-sm);padding:var(--ic-space-xxxs)}:host(.icon.small) ::slotted(svg){width:var(--ic-space-xs);height:var(--ic-space-xs)}:host(.icon.large) ::slotted(svg){width:calc(var(--ic-space-sm) + var(--ic-space-xxxs));height:calc(var(--ic-space-sm) + var(--ic-space-xxxs));padding:calc(var(--ic-space-xxxs) + var(--ic-space-1px))}:host(.far){top:calc(-1 * var(--ic-space-xs));right:calc(-1 * var(--ic-space-xs))}:host(.far.small),:host(.dot.far.large){top:calc(-1 * var(--ic-space-xxs));right:calc(-1 * var(--ic-space-xxs))}:host(.dot.far),:host(.dot.far.small){top:calc(-1 * var(--ic-space-xxxs));right:calc(-1 * var(--ic-space-xxxs))}:host(.near){top:calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));right:calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)))}:host(.dot.near){top:calc(-1 * var(--ic-space-1px));right:calc(-1 * var(--ic-space-1px))}:host(.inline){position:static}:host(.hide){visibility:hidden !important;transition:visibility var(--ic-transition-duration-slow)}.sr-only{position:absolute;left:-9999px}@keyframes expand{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes shrink{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}";const p="IC-NAVIGATION-BUTTON";const v="IC-TOP-NAVIGATION";const x=class{constructor(t){s(this,t);this.ariaLabel=null;this.setBadgeColour=()=>{const s=c(this.customColor);if(s){this.customColorRGBA=s;const{r:t,g:a,b:i,a:c}=s;this.el.style.backgroundColor=`rgba(${t}, ${a}, ${i}, ${c})`}};this.getBadgeRGB=()=>{switch(this.variant){case"custom":return this.customColorRGBA;case"error":case"success":case"warning":case"info":{return o(r(`--ic-status-${this.variant}`))}case"neutral":case"light":return e(r(`--ic-architectural-${this.variant==="neutral"?500:40}`))}};this.getBadgeForeground=()=>{const{r:s,g:t,b:a}=this.getBadgeRGB();this.foregroundColour=h((s*299+t*587+a*114)/1e3)};this.getTextLabel=()=>this.maxNumber&&Number(this.textLabel)>this.maxNumber?`${this.maxNumber}+`:this.textLabel;this.setAccessibleLabel=()=>{const s=this.el.parentElement;const t=this.isAccessibleLabelDefined()?this.accessibleLabel:this.textLabel||"with badge being displayed";if(s){const{tagName:a}=s;if(a!=="IC-CARD"&&(a!=="IC-TAB"||a==="IC-TAB"&&this.parentAriaLabel)){const a=this.parentAriaLabel?`${this.parentAriaLabel} ,`:"";s.ariaLabel=this.visible?`${a} ${t}`:undefined}else{this.ariaLabel=`, ${t}`}}};this.setPositionInTopNavigation=()=>{const s=this.el.parentElement.parentElement;s.classList.contains("mobile-mode")?this.position="inline":this.position="near"};this.isInTopNav=()=>{const s=this.el.parentElement;const t=s.parentElement;return s.tagName===p&&t.tagName===v};this.isAccessibleLabelDefined=()=>n(this.accessibleLabel)&&this.accessibleLabel!==null;this.accessibleLabel=undefined;this.customColor=null;this.maxNumber=undefined;this.position="far";this.size="default";this.textLabel=undefined;this.type="text";this.variant="neutral";this.visible=true}accessibleLabelHandler(){this.setAccessibleLabel()}customColorHandler(){this.variant==="custom"&&this.setBadgeColour()}variantHandler(){this.getBadgeForeground()}visibleHandler(){this.setAccessibleLabel()}componentWillLoad(){var s;this.variant==="custom"&&this.setBadgeColour();this.getBadgeForeground();const t=(s=this.el.parentElement)===null||s===void 0?void 0:s.ariaLabel;if(t)this.parentAriaLabel=t;this.setAccessibleLabel()}componentDidLoad(){this.type==="text"&&l([{prop:this.textLabel,propName:"text-label"}],"Badge")}componentWillRender(){this.isInTopNav()&&this.setPositionInTopNavigation()}navBarMenuOpenHandler(){this.isInTopNav()&&(this.position="inline")}navBarMenuCloseHandler(){this.isInTopNav()&&(this.position="near")}async showBadge(){this.visible=true}async hideBadge(){this.visible=false}render(){const{ariaLabel:s,el:i,foregroundColour:c,getTextLabel:e,position:r,size:o,textLabel:h,type:n,variant:l,visible:d}=this;return t(a,{class:{[`${r}`]:true,[`${o}`]:true,[`${l}`]:true,[`${n}`]:true,[`foreground-${c}`]:c!==null,[`${d?"show":"hide"}`]:true},id:i.id||null,"aria-label":s,role:"status"},n==="icon"&&t("slot",{name:"badge-icon"}),n==="text"&&h&&t("ic-typography",{variant:o==="small"?"badge-small":"badge"},e()),n==="dot"&&t("span",{class:"sr-only"},"badge"))}static get delegatesFocus(){return true}get el(){return i(this)}static get watchers(){return{accessibleLabel:["accessibleLabelHandler"],customColor:["customColorHandler"],variant:["variantHandler"],visible:["visibleHandler"]}}};x.style=d;export{x as ic_badge};
|
2
|
+
//# sourceMappingURL=p-c05474f3.entry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["icBadgeCss","NAVIGATION_BUTTON","TOP_NAVIGATION","Badge","this","ariaLabel","setBadgeColour","colorRGBA","convertToRGBA","customColor","customColorRGBA","r","g","b","a","el","style","backgroundColor","getBadgeRGB","variant","rgbaStrToObj","getCssProperty","hexToRgba","getBadgeForeground","foregroundColour","getThemeForegroundColor","getTextLabel","maxNumber","Number","textLabel","setAccessibleLabel","parentEl","parentElement","defaultAriaLabel","isAccessibleLabelDefined","accessibleLabel","tagName","parentAriaLabel","ariaLabelPrefix","visible","undefined","setPositionInTopNavigation","parentTopNavEl","classList","contains","position","isInTopNav","grandparentEl","isPropDefined","accessibleLabelHandler","customColorHandler","variantHandler","visibleHandler","componentWillLoad","_a","componentDidLoad","type","onComponentRequiredPropUndefined","prop","propName","componentWillRender","navBarMenuOpenHandler","navBarMenuCloseHandler","showBadge","hideBadge","render","size","h","Host","class","id","role","name"],"sources":["src/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","src/components/ic-badge/ic-badge.tsx"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host(.neutral) {\n background-color: var(--ic-architectural-500);\n}\n\n:host(.light) {\n background-color: var(--ic-architectural-40);\n}\n\n:host(.info) {\n background-color: var(--ic-status-info);\n}\n\n:host(.warning) {\n background-color: var(--ic-status-warning-mid);\n}\n\n:host(.error) {\n background-color: var(--ic-status-error);\n}\n\n:host(.success) {\n background-color: var(--ic-status-success);\n}\n\n:host(.small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.dot.default) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.dot.small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.dot.large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.foreground-dark) ::slotted(*) {\n fill: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.foreground-dark) ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ic-typography {\n color: white;\n}\n\n:host(.text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.text.small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.text.large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.icon.small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.icon.large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.far.small),\n:host(.dot.far.large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.dot.far),\n:host(.dot.far.small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.dot.near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.inline) {\n position: static;\n}\n\n:host(.hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n} from \"./ic-badge.types\";\nimport {\n IcColorRGBA,\n IcSizes,\n IcThemeForeground,\n IcColor,\n} from \"../../utils/types\";\nimport {\n convertToRGBA,\n getCssProperty,\n getThemeForegroundColor,\n hexToRgba,\n isPropDefined,\n onComponentRequiredPropUndefined,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\n\nconst NAVIGATION_BUTTON = \"IC-NAVIGATION-BUTTON\";\nconst TOP_NAVIGATION = \"IC-TOP-NAVIGATION\";\n\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private ariaLabel: string = null;\n private customColorRGBA: IcColorRGBA;\n private foregroundColour: IcThemeForeground;\n private parentAriaLabel: string;\n\n @Element() el: HTMLIcBadgeElement;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n @Watch(\"accessibleLabel\")\n accessibleLabelHandler(): void {\n this.setAccessibleLabel();\n }\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor = null;\n\n @Watch(\"customColor\")\n customColorHandler(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n }\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and textLabel is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop({ mutable: true }) position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() textLabel?: string;\n\n /**\n * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n @Watch(\"variant\")\n variantHandler(): void {\n this.getBadgeForeground();\n }\n\n /**\n * If `true`, the badge will be displayed.\n */\n @Prop({ mutable: true }) visible: boolean = true;\n\n @Watch(\"visible\")\n visibleHandler(): void {\n this.setAccessibleLabel();\n }\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n this.getBadgeForeground();\n\n const ariaLabel = this.el.parentElement?.ariaLabel;\n if (ariaLabel) this.parentAriaLabel = ariaLabel;\n this.setAccessibleLabel();\n }\n\n componentDidLoad(): void {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined(\n [{ prop: this.textLabel, propName: \"text-label\" }],\n \"Badge\"\n );\n }\n\n componentWillRender(): void {\n this.isInTopNav() && this.setPositionInTopNavigation();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.isInTopNav() && (this.position = \"inline\");\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.isInTopNav() && (this.position = \"near\");\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async showBadge(): Promise<void> {\n this.visible = true;\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async hideBadge(): Promise<void> {\n this.visible = false;\n }\n\n private setBadgeColour = () => {\n const colorRGBA = convertToRGBA(this.customColor);\n\n if (colorRGBA) {\n this.customColorRGBA = colorRGBA;\n const { r, g, b, a } = colorRGBA;\n this.el.style.backgroundColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n };\n\n private getBadgeRGB = () => {\n switch (this.variant) {\n case \"custom\":\n return this.customColorRGBA;\n case \"error\":\n case \"success\":\n case \"warning\":\n case \"info\": {\n return rgbaStrToObj(getCssProperty(`--ic-status-${this.variant}`));\n }\n case \"neutral\":\n case \"light\":\n return hexToRgba(\n getCssProperty(\n `--ic-architectural-${this.variant === \"neutral\" ? 500 : 40}`\n )\n );\n }\n };\n\n private getBadgeForeground = () => {\n const { r, g, b } = this.getBadgeRGB();\n this.foregroundColour = getThemeForegroundColor(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n };\n\n private getTextLabel = () =>\n this.maxNumber && Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n private setAccessibleLabel = () => {\n const parentEl = this.el.parentElement;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.textLabel || \"with badge being displayed\";\n\n if (parentEl) {\n const { tagName } = parentEl;\n if (\n tagName !== \"IC-CARD\" &&\n (tagName !== \"IC-TAB\" || (tagName === \"IC-TAB\" && this.parentAriaLabel))\n ) {\n const ariaLabelPrefix = this.parentAriaLabel\n ? `${this.parentAriaLabel} ,`\n : \"\";\n parentEl.ariaLabel = this.visible\n ? `${ariaLabelPrefix} ${defaultAriaLabel}`\n : undefined;\n } else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n\n private setPositionInTopNavigation = () => {\n const parentTopNavEl = this.el.parentElement.parentElement;\n parentTopNavEl.classList.contains(\"mobile-mode\")\n ? (this.position = \"inline\")\n : (this.position = \"near\");\n };\n\n private isInTopNav = (): boolean => {\n const parentEl = this.el.parentElement;\n const grandparentEl = parentEl.parentElement;\n return (\n parentEl.tagName === NAVIGATION_BUTTON &&\n grandparentEl.tagName === TOP_NAVIGATION\n );\n };\n\n private isAccessibleLabelDefined = () =>\n isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n\n render() {\n const {\n ariaLabel,\n el,\n foregroundColour,\n getTextLabel,\n position,\n size,\n textLabel,\n type,\n variant,\n visible,\n } = this;\n\n return (\n <Host\n class={{\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [`${visible ? \"show\" : \"hide\"}`]: true,\n }}\n id={el.id || null}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && textLabel && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {getTextLabel()}\n </ic-typography>\n )}\n {type === \"dot\" && <span class=\"sr-only\">badge</span>}\n </Host>\n );\n }\n}\n"],"mappings":"0JAAA,MAAMA,EAAa,+hGC+BnB,MAAMC,EAAoB,uBAC1B,MAAMC,EAAiB,oB,MAYVC,EAAK,M,yBACRC,KAAAC,UAAoB,KA0HpBD,KAAAE,eAAiB,KACvB,MAAMC,EAAYC,EAAcJ,KAAKK,aAErC,GAAIF,EAAW,CACbH,KAAKM,gBAAkBH,EACvB,MAAMI,EAAEA,EAACC,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAMP,EACvBH,KAAKW,GAAGC,MAAMC,gBAAkB,QAAQN,MAAMC,MAAMC,MAAMC,I,GAItDV,KAAAc,YAAc,KACpB,OAAQd,KAAKe,SACX,IAAK,SACH,OAAOf,KAAKM,gBACd,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,OAAQ,CACX,OAAOU,EAAaC,EAAe,eAAejB,KAAKe,W,CAEzD,IAAK,UACL,IAAK,QACH,OAAOG,EACLD,EACE,sBAAsBjB,KAAKe,UAAY,UAAY,IAAM,O,EAM3Df,KAAAmB,mBAAqB,KAC3B,MAAMZ,EAAEA,EAACC,EAAEA,EAACC,EAAEA,GAAMT,KAAKc,cACzBd,KAAKoB,iBAAmBC,GACrBd,EAAI,IAAMC,EAAI,IAAMC,EAAI,KAAO,IACjC,EAGKT,KAAAsB,aAAe,IACrBtB,KAAKuB,WAAaC,OAAOxB,KAAKyB,WAAazB,KAAKuB,UAC5C,GAAGvB,KAAKuB,aACRvB,KAAKyB,UAIHzB,KAAA0B,mBAAqB,KAC3B,MAAMC,EAAW3B,KAAKW,GAAGiB,cACzB,MAAMC,EAAmB7B,KAAK8B,2BAC1B9B,KAAK+B,gBACL/B,KAAKyB,WAAa,6BAEtB,GAAIE,EAAU,CACZ,MAAMK,QAAEA,GAAYL,EACpB,GACEK,IAAY,YACXA,IAAY,UAAaA,IAAY,UAAYhC,KAAKiC,iBACvD,CACA,MAAMC,EAAkBlC,KAAKiC,gBACzB,GAAGjC,KAAKiC,oBACR,GACJN,EAAS1B,UAAYD,KAAKmC,QACtB,GAAGD,KAAmBL,IACtBO,S,KACC,CACLpC,KAAKC,UAAY,KAAK4B,G,IAKpB7B,KAAAqC,2BAA6B,KACnC,MAAMC,EAAiBtC,KAAKW,GAAGiB,cAAcA,cAC7CU,EAAeC,UAAUC,SAAS,eAC7BxC,KAAKyC,SAAW,SAChBzC,KAAKyC,SAAW,MAAO,EAGtBzC,KAAA0C,WAAa,KACnB,MAAMf,EAAW3B,KAAKW,GAAGiB,cACzB,MAAMe,EAAgBhB,EAASC,cAC/B,OACED,EAASK,UAAYnC,GACrB8C,EAAcX,UAAYlC,CAAc,EAIpCE,KAAA8B,yBAA2B,IACjCc,EAAc5C,KAAK+B,kBAAoB/B,KAAK+B,kBAAoB,K,gDA1LlC,K,uCAgBuB,M,UAK9B,U,mCAUK,O,aAKM,U,aAUQ,I,CAtD5C,sBAAAc,GACE7C,KAAK0B,oB,CAUP,kBAAAoB,GACE9C,KAAKe,UAAY,UAAYf,KAAKE,gB,CAmCpC,cAAA6C,GACE/C,KAAKmB,oB,CASP,cAAA6B,GACEhD,KAAK0B,oB,CAGP,iBAAAuB,G,MACEjD,KAAKe,UAAY,UAAYf,KAAKE,iBAElCF,KAAKmB,qBAEL,MAAMlB,GAAYiD,EAAAlD,KAAKW,GAAGiB,iBAAa,MAAAsB,SAAA,SAAAA,EAAEjD,UACzC,GAAIA,EAAWD,KAAKiC,gBAAkBhC,EACtCD,KAAK0B,oB,CAGP,gBAAAyB,GACEnD,KAAKoD,OAAS,QACZC,EACE,CAAC,CAAEC,KAAMtD,KAAKyB,UAAW8B,SAAU,eACnC,Q,CAIN,mBAAAC,GACExD,KAAK0C,cAAgB1C,KAAKqC,4B,CAI5B,qBAAAoB,GACEzD,KAAK0C,eAAiB1C,KAAKyC,SAAW,S,CAIxC,sBAAAiB,GACE1D,KAAK0C,eAAiB1C,KAAKyC,SAAW,O,CAOxC,eAAMkB,GACJ3D,KAAKmC,QAAU,I,CAOjB,eAAMyB,GACJ5D,KAAKmC,QAAU,K,CA0FjB,MAAA0B,GACE,MAAM5D,UACJA,EAASU,GACTA,EAAES,iBACFA,EAAgBE,aAChBA,EAAYmB,SACZA,EAAQqB,KACRA,EAAIrC,UACJA,EAAS2B,KACTA,EAAIrC,QACJA,EAAOoB,QACPA,GACEnC,KAEJ,OACE+D,EAACC,EAAI,CACHC,MAAO,CACL,CAAC,GAAGxB,KAAa,KACjB,CAAC,GAAGqB,KAAS,KACb,CAAC,GAAG/C,KAAY,KAChB,CAAC,GAAGqC,KAAS,KACb,CAAC,cAAchC,KAAqBA,IAAqB,KACzD,CAAC,GAAGe,EAAU,OAAS,UAAW,MAEpC+B,GAAIvD,EAAGuD,IAAM,KAAI,aACLjE,EACZkE,KAAK,UAEJf,IAAS,QAAUW,EAAA,QAAMK,KAAK,eAC9BhB,IAAS,QAAU3B,GAClBsC,EAAA,iBAAehD,QAAS+C,IAAS,QAAU,cAAgB,SACxDxC,KAGJ8B,IAAS,OAASW,EAAA,QAAME,MAAM,WAAS,S"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import{r as e,f as t,h as i,H as n,g as o}from"./p-6b5e91e2.js";import{d as s,x as a,a as r,i as l,y as d}from"./p-d41c847e.js";import{I as u}from"./p-26b7b18f.js";const b='/*! 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;margin-right:var(--ic-space-xs);list-style:none}:host(.in-side-menu){margin-right:0}:host::part(button){height:100%;min-height:2.5rem}';const
|
2
|
-
//# sourceMappingURL=p-
|
1
|
+
import{r as e,f as t,h as i,H as n,g as o}from"./p-6b5e91e2.js";import{d as s,x as a,a as r,i as l,y as d}from"./p-d41c847e.js";import{I as u}from"./p-26b7b18f.js";const b='/*! 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;margin-right:var(--ic-space-xs);list-style:none}:host(.in-side-menu){margin-right:0}:host::part(button){height:100%;min-height:2.5rem}:host(.in-side-menu) ::slotted(ic-badge){margin-left:var(--ic-space-xs)}';const c=[...d,"title"];const p=class{constructor(i){e(this,i);this.inheritedAttributes={};this.hostMutationObserver=null;this.hostMutationCallback=e=>{let i=false;e.forEach((({attributeName:e})=>{if(c.includes(e)){this.inheritedAttributes[e]=this.el.getAttribute(e);i=true}}));if(i){t(this)}};this.initialAppearance=s();this.mode="navbar";this.download=false;this.href=undefined;this.hreflang=undefined;this.label=undefined;this.referrerpolicy=undefined;this.rel=undefined;this.target=undefined}componentWillLoad(){this.inheritedAttributes=a(this.el,c)}componentDidLoad(){r([{prop:this.label,propName:"label"}],"Navigation Button");this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentWillRender(){const e=this.el.querySelector(`[slot="icon"]`);e!==null&&e.setAttribute("viewBox","0 0 24 24")}disconnectedCallback(){var e;(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}navBarMenuOpenHandler(){this.mode="menu"}navBarMenuCloseHandler(){this.mode="navbar"}themeChangeHandler(e){const t=e.detail;this.initialAppearance=t.mode}async setFocus(){if(this.buttonEl){this.buttonEl.focus()}}render(){const{href:e,target:t,rel:o,download:s,referrerpolicy:a}=this;let r="";let d="";let b="icon";let c=this.initialAppearance;let p="large";let h=false;let m=false;if(this.mode==="menu"){r=this.label;b="tertiary";c=u.Default;p="default";h=true;d="popout-menu-button";m=true}const f={variant:b,appearance:c,size:p,href:e,target:t,rel:o,download:s,referrerpolicy:a,fullWidth:h,disableTooltip:m};return i(n,{class:{["in-side-menu"]:this.mode==="menu"}},i("ic-button",Object.assign({class:d,"aria-label":b=="icon"?this.label:null,ref:e=>this.buttonEl=e},f,this.inheritedAttributes),r,i("slot",{slot:"left-icon",name:"icon"}),l(this.el,"badge")&&i("slot",{name:"badge"})))}static get delegatesFocus(){return true}get el(){return o(this)}};p.style=b;export{p as ic_navigation_button};
|
2
|
+
//# sourceMappingURL=p-d0299926.entry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["icNavigationButtonCss","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","NavigationButton","this","inheritedAttributes","hostMutationObserver","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","includes","el","getAttribute","forceUpdate","getThemeForegroundColor","componentWillLoad","inheritAttributes","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","observe","attributes","componentWillRender","iconEl","querySelector","setAttribute","disconnectedCallback","_a","disconnect","navBarMenuOpenHandler","mode","navBarMenuCloseHandler","themeChangeHandler","ev","theme","detail","initialAppearance","setFocus","buttonEl","focus","render","href","target","rel","download","referrerpolicy","className","variant","appearance","size","fullWidth","disableTooltip","IcThemeForegroundEnum","Default","buttonProps","h","Host","class","Object","assign","ref","slot","name","isSlotUsed"],"sources":["src/components/ic-navigation-button/ic-navigation-button.css?tag=ic-navigation-button&encapsulation=shadow","src/components/ic-navigation-button/ic-navigation-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n margin-right: var(--ic-space-xs);\n list-style: none;\n}\n\n:host(.in-side-menu) {\n margin-right: 0;\n}\n\n:host::part(button) {\n height: 100%;\n min-height: 2.5rem;\n}\n\n:host(.in-side-menu) ::slotted(ic-badge) {\n margin-left: var(--ic-space-xs);\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n h,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getThemeForegroundColor,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n @State() initialAppearance = getThemeForegroundColor();\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n iconEl !== null && iconEl.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.initialAppearance = theme.mode;\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { href, target, rel, download, referrerpolicy } = this;\n\n let label = \"\";\n let className = \"\";\n let variant: \"icon\" | \"tertiary\" = \"icon\";\n let appearance: IcThemeForeground | IcThemeForegroundEnum.Default =\n this.initialAppearance;\n let size: \"default\" | \"large\" = \"large\";\n let fullWidth = false;\n let disableTooltip = false;\n\n if (this.mode === \"menu\") {\n label = this.label;\n variant = \"tertiary\";\n appearance = IcThemeForegroundEnum.Default;\n size = \"default\";\n fullWidth = true;\n className = \"popout-menu-button\";\n disableTooltip = true;\n }\n\n const buttonProps = {\n variant,\n appearance,\n size,\n href,\n target,\n rel,\n download,\n referrerpolicy,\n fullWidth,\n disableTooltip,\n };\n\n return (\n <Host class={{ [\"in-side-menu\"]: this.mode === \"menu\" }}>\n <ic-button\n class={className}\n aria-label={variant == \"icon\" ? this.label : null}\n ref={(el) => (this.buttonEl = el)}\n {...buttonProps}\n {...this.inheritedAttributes}\n >\n {label}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"oKAAA,MAAMA,EAAwB,skFC0B9B,MAAMC,EAAqB,IAAIC,EAAmB,S,MAcrCC,EAAgB,M,yBAEnBC,KAAAC,oBAA+C,GAC/CD,KAAAE,qBAAyC,KAiGzCF,KAAAG,qBAAwBC,IAC9B,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACtB,GAAIV,EAAmBW,SAASD,GAAgB,CAC9CP,KAAKC,oBAAoBM,GACvBP,KAAKS,GAAGC,aAAaH,GACvBF,EAAuB,I,KAG3B,GAAIA,EAAsB,CACxBM,EAAYX,K,0BAvGaY,I,UAIK,S,cAKI,M,wIAgCtC,iBAAAC,GACEb,KAAKC,oBAAsBa,EAAkBd,KAAKS,GAAIZ,E,CAGxD,gBAAAkB,GACEC,EACE,CAAC,CAAEC,KAAMjB,KAAKkB,MAAOC,SAAU,UAC/B,qBAGFnB,KAAKE,qBAAuB,IAAIkB,iBAAiBpB,KAAKG,sBACtDH,KAAKE,qBAAqBmB,QAAQrB,KAAKS,GAAI,CACzCa,WAAY,M,CAIhB,mBAAAC,GACE,MAAMC,EAASxB,KAAKS,GAAGgB,cAAc,iBACrCD,IAAW,MAAQA,EAAOE,aAAa,UAAW,Y,CAGpD,oBAAAC,G,OACEC,EAAA5B,KAAKE,wBAAoB,MAAA0B,SAAA,SAAAA,EAAEC,Y,CAI7B,qBAAAC,GACE9B,KAAK+B,KAAO,M,CAId,sBAAAC,GACEhC,KAAK+B,KAAO,Q,CAId,kBAAAE,CAAmBC,GACjB,MAAMC,EAAiBD,EAAGE,OAC1BpC,KAAKqC,kBAAoBF,EAAMJ,I,CAOjC,cAAMO,GACJ,GAAItC,KAAKuC,SAAU,CACjBvC,KAAKuC,SAASC,O,EAmBlB,MAAAC,GACE,MAAMC,KAAEA,EAAIC,OAAEA,EAAMC,IAAEA,EAAGC,SAAEA,EAAQC,eAAEA,GAAmB9C,KAExD,IAAIkB,EAAQ,GACZ,IAAI6B,EAAY,GAChB,IAAIC,EAA+B,OACnC,IAAIC,EACFjD,KAAKqC,kBACP,IAAIa,EAA4B,QAChC,IAAIC,EAAY,MAChB,IAAIC,EAAiB,MAErB,GAAIpD,KAAK+B,OAAS,OAAQ,CACxBb,EAAQlB,KAAKkB,MACb8B,EAAU,WACVC,EAAaI,EAAsBC,QACnCJ,EAAO,UACPC,EAAY,KACZJ,EAAY,qBACZK,EAAiB,I,CAGnB,MAAMG,EAAc,CAClBP,UACAC,aACAC,OACAR,OACAC,SACAC,MACAC,WACAC,iBACAK,YACAC,kBAGF,OACEI,EAACC,EAAI,CAACC,MAAO,CAAE,CAAC,gBAAiB1D,KAAK+B,OAAS,SAC7CyB,EAAA,YAAAG,OAAAC,OAAA,CACEF,MAAOX,EAAS,aACJC,GAAW,OAAShD,KAAKkB,MAAQ,KAC7C2C,IAAMpD,GAAQT,KAAKuC,SAAW9B,GAC1B8C,EACAvD,KAAKC,qBAERiB,EACDsC,EAAA,QAAMM,KAAK,YAAYC,KAAK,SAC3BC,EAAWhE,KAAKS,GAAI,UAAY+C,EAAA,QAAMO,KAAK,W"}
|
package/dist/esm/core.js
CHANGED
@@ -14,7 +14,7 @@ const patchBrowser = () => {
|
|
14
14
|
};
|
15
15
|
|
16
16
|
patchBrowser().then(options => {
|
17
|
-
return bootstrapLazy(JSON.parse("[[\"ic-typography\",[[1,\"ic-typography\",{\"applyVerticalMargins\":[4,\"apply-vertical-margins\"],\"bold\":[4],\"italic\":[4],\"maxLines\":[1026,\"max-lines\"],\"strikethrough\":[4],\"underline\":[4],\"variant\":[1],\"truncated\":[32],\"truncButtonFocussed\":[32],\"expanded\":[32],\"resetTruncation\":[64],\"checkMaxLines\":[64],\"setShowHideExpanded\":[64]},null,{\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-search-bar\",[[17,\"ic-search-bar\",{\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autofocus\":[4],\"charactersUntilSuggestion\":[2,\"characters-until-suggestion\"],\"disabled\":[4],\"disableFilter\":[4,\"disable-filter\"],\"debounce\":[2],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"focusOnLoad\":[4,\"focus-on-load\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hintText\":[1,\"hint-text\"],\"label\":[1],\"labelField\":[1,\"label-field\"],\"loading\":[1028],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchMode\":[1,\"search-mode\"],\"size\":[1],\"small\":[4],\"spellcheck\":[4],\"timeout\":[2],\"valueField\":[1,\"value-field\"],\"options\":[16],\"value\":[1537],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"highlightedValue\":[32],\"open\":[32],\"searchSubmitFocused\":[32],\"showClearButton\":[32],\"filteredOptions\":[32],\"setFocus\":[64]},[[0,\"icKeydown\",\"handleKeyDown\"],[0,\"keyup\",\"handleKeyUp\"]],{\"disabled\":[\"watchDisabledHandler\"],\"loading\":[\"loadingHandler\"],\"filteredOptions\":[\"filteredOptionsHandler\"],\"options\":[\"watchOptionsHandler\"],\"value\":[\"watchValueHandler\"]}]]],[\"ic-select\",[[17,\"ic-select\",{\"charactersUntilSuggestions\":[2,\"characters-until-suggestions\"],\"disabled\":[516],\"disableFilter\":[4,\"disable-filter\"],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"includeDescriptionsInSearch\":[4,\"include-descriptions-in-search\"],\"includeGroupTitlesInSearch\":[4,\"include-group-titles-in-search\"],\"label\":[1],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchable\":[4],\"searchMatchPosition\":[1,\"search-match-position\"],\"selectOnEnter\":[4,\"select-on-enter\"],\"showClearButton\":[4,\"show-clear-button\"],\"size\":[1],\"small\":[4],\"timeout\":[2],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"loading\":[1028],\"options\":[16],\"debounce\":[2],\"value\":[1025],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"debounceIcChange\":[32],\"hiddenInputValue\":[32],\"noOptions\":[32],\"open\":[32],\"pressedCharacters\":[32],\"searchableSelectInputValue\":[32],\"filteredOptions\":[32],\"uniqueOptions\":[32],\"currDebounce\":[32],\"initialValue\":[32],\"inputValueToFilter\":[32],\"currValue\":[32],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"loading\":[\"loadingHandler\"],\"options\":[\"watchOptionsHandler\"],\"debounce\":[\"debounceChangedHandler\"],\"value\":[\"valueChangedHandler\"],\"open\":[\"openChangedHandler\"]}]]],[\"ic-top-navigation\",[[1,\"ic-top-navigation\",{\"contentAligned\":[1,\"content-aligned\"],\"customMobileBreakpoint\":[2,\"custom-mobile-breakpoint\"],\"href\":[1],\"inline\":[4],\"shortAppTitle\":[1,\"short-app-title\"],\"status\":[1],\"version\":[1],\"appTitle\":[1,\"app-title\"],\"deviceSize\":[32],\"foregroundColor\":[32],\"hasFullWidthSearchBar\":[32],\"mobileSearchBarVisible\":[32],\"mobileSearchHiddenOnBlur\":[32],\"navMenuVisible\":[32],\"searchButtonClick\":[32],\"searchValue\":[32]},[[0,\"icNavigationMenuClose\",\"navBarMenuCloseHandler\"],[0,\"icSearchBarBlur\",\"searchInputBlurHandler\"],[0,\"icChange\",\"searchValueChangeHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"appTitle\":[\"watchPropHandler\"]}]]],[\"ic-page-header\",[[1,\"ic-page-header\",{\"aligned\":[1],\"border\":[4],\"heading\":[1],\"reverseOrder\":[4,\"reverse-order\"],\"size\":[1],\"small\":[4],\"sticky\":[4],\"stickyDesktopOnly\":[4,\"sticky-desktop-only\"],\"subheading\":[1],\"actionContent\":[32],\"areButtonsReversed\":[32],\"deviceSize\":[32]}]]],[\"ic-dialog\",[[1,\"ic-dialog\",{\"alertHeading\":[1,\"alert-heading\"],\"alertMessage\":[1,\"alert-message\"],\"buttons\":[4],\"closeOnBackdropClick\":[4,\"close-on-backdrop-click\"],\"destructive\":[4],\"dismissLabel\":[1,\"dismiss-label\"],\"disableHeightConstraint\":[4,\"disable-height-constraint\"],\"disableWidthConstraint\":[4,\"disable-width-constraint\"],\"hideCloseButton\":[4,\"hide-close-button\"],\"heading\":[1],\"label\":[1],\"open\":[1540],\"size\":[1],\"status\":[1],\"buttonProps\":[16],\"dialogRendered\":[32],\"fadeIn\":[32],\"showDialog\":[64],\"hideDialog\":[64],\"cancelDialog\":[64],\"confirmDialog\":[64]},[[4,\"keydown\",\"handleKeyboard\"],[0,\"click\",\"handleClick\"]],{\"open\":[\"watchOpenHandler\"],\"buttonProps\":[\"watchPropHandler\"]}]]],[\"ic-pagination\",[[1,\"ic-pagination\",{\"adjacentCount\":[1026,\"adjacent-count\"],\"appearance\":[1],\"boundaryCount\":[1026,\"boundary-count\"],\"defaultPage\":[2,\"default-page\"],\"disabled\":[4],\"hideCurrentPage\":[4,\"hide-current-page\"],\"hideFirstAndLastPageButton\":[4,\"hide-first-and-last-page-button\"],\"label\":[1],\"pages\":[2],\"type\":[1],\"currentPage\":[1026,\"current-page\"],\"endEllipsis\":[32],\"endItems\":[32],\"midItems\":[32],\"startEllipsis\":[32],\"startItems\":[32],\"setCurrentPage\":[64]},[[0,\"paginationItemClick\",\"paginationItemClickHandler\"]],{\"adjacentCount\":[\"watchAdjacentCountHandler\"],\"boundaryCount\":[\"watchBoundaryCountHandler\"],\"disabled\":[\"watchDisabledHandler\"],\"pages\":[\"watchNumberPagesHandler\"],\"type\":[\"watchTypeHandler\"],\"currentPage\":[\"watchPageChangeHandler\"]}]]],[\"ic-popover-menu\",[[17,\"ic-popover-menu\",{\"anchor\":[1],\"parentLabel\":[1,\"parent-label\"],\"parentPopover\":[16],\"submenuId\":[1,\"submenu-id\"],\"submenuLevel\":[2,\"submenu-level\"],\"open\":[1540],\"openingFromChild\":[32],\"openingFromParent\":[32],\"openFromChild\":[64],\"openFromParent\":[64],\"closeMenu\":[64]},[[0,\"handleMenuItemClick\",\"handleMenuItemClick\"],[2,\"triggerPopoverMenuInstance\",\"handleSubmenuChange\"],[4,\"click\",\"handleClick\"],[0,\"keydown\",\"handleKeyDown\"]],{\"open\":[\"watchOpenHandler\"]}]]],[\"ic-side-navigation\",[[1,\"ic-side-navigation\",{\"appTitle\":[1,\"app-title\"],\"collapsedIconLabels\":[4,\"collapsed-icon-labels\"],\"disableAutoParentStyling\":[4,\"disable-auto-parent-styling\"],\"disableTopBarBehaviour\":[4,\"disable-top-bar-behaviour\"],\"expanded\":[4],\"href\":[1],\"inline\":[4],\"shortAppTitle\":[1,\"short-app-title\"],\"static\":[4],\"status\":[1],\"version\":[1],\"deviceSize\":[32],\"deviceSizeAppTitle\":[32],\"foregroundColor\":[32],\"hasSecondaryNavigation\":[32],\"menuExpanded\":[32],\"menuOpen\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]],{\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-tab-group\",[[17,\"ic-tab-group\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"inline\":[516],\"label\":[1]}]]],[\"ic-accordion-group\",[[1,\"ic-accordion-group\",{\"accessibleButtonLabel\":[1,\"accessible-button-label\"],\"appearance\":[1],\"expanded\":[1028],\"groupTitle\":[1,\"group-title\"],\"singleExpansion\":[4,\"single-expansion\"],\"size\":[1],\"accordions\":[32],\"areAllAccordionsOpen\":[32],\"setFocus\":[64]},[[0,\"accordionClicked\",\"handleAccordionClicked\"]],{\"appearance\":[\"watchAppearanceHandler\"],\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-navigation-button\",[[17,\"ic-navigation-button\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"initialAppearance\":[32],\"mode\":[32],\"setFocus\":[64]},[[4,\"icNavigationMenuOpened\",\"navBarMenuOpenHandler\"],[4,\"icNavigationMenuClosed\",\"navBarMenuCloseHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-toast\",[[1,\"ic-toast\",{\"autoDismissTimeout\":[1026,\"auto-dismiss-timeout\"],\"dismissButtonAriaLabel\":[1,\"dismiss-button-aria-label\"],\"dismissMode\":[1025,\"dismiss-mode\"],\"heading\":[1],\"message\":[1],\"neutralIconAriaLabel\":[1,\"neutral-icon-aria-label\"],\"variant\":[1025],\"timerProgress\":[32],\"visible\":[32],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismiss\"],[4,\"keydown\",\"handleKeyboard\"],[1,\"mouseenter\",\"handleTimer\"],[1,\"mouseleave\",\"handleTimer\"]],{\"dismissMode\":[\"dismissModeChangeHandler\"]}]]],[\"ic-toggle-button\",[[17,\"ic-toggle-button\",{\"accessibleLabel\":[1,\"accessible-label\"],\"appearance\":[1],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"iconPlacement\":[1,\"icon-placement\"],\"label\":[1],\"loading\":[4],\"size\":[1],\"toggleChecked\":[1540,\"toggle-checked\"],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"variant\":[513]},[[2,\"click\",\"handleHostClick\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-checkbox-group\",[[1,\"ic-checkbox-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"required\":[4],\"size\":[1],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"]},[[0,\"icChange\",\"handleChange\"],[0,\"icCheck\",\"selectHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"label\":[\"labelNameHandler\"],\"name\":[\"labelNameHandler\"]}]]],[\"ic-radio-group\",[[1,\"ic-radio-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"orientation\":[1],\"required\":[4],\"size\":[1],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"checkedValue\":[32],\"currentOrientation\":[32],\"initialOrientation\":[32],\"selectedChild\":[32]},[[0,\"icCheck\",\"selectHandler\"],[0,\"icSelectedChange\",\"changeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"orientation\":[\"orientationChangeHandler\"]}]]],[\"ic-back-to-top\",[[17,\"ic-back-to-top\",{\"target\":[1],\"variant\":[1],\"bannerOffset\":[32],\"footerVisible\":[32],\"targetElVisible\":[32]},null,{\"target\":[\"watchPropHandler\"]}]]],[\"ic-breadcrumb-group\",[[1,\"ic-breadcrumb-group\",{\"appearance\":[1],\"backBreadcrumbOnly\":[4,\"back-breadcrumb-only\"],\"collapsed\":[4],\"deviceSize\":[32],\"expandedBreadcrumbs\":[32]},null,{\"appearance\":[\"watchAppearanceHandler\"],\"backBreadcrumbOnly\":[\"watchBackBreadcrumbHandler\"],\"collapsed\":[\"watchCollapsedHandler\"]}]]],[\"ic-card\",[[1,\"ic-card\",{\"clickable\":[1028],\"disabled\":[4],\"expandable\":[4],\"fullWidth\":[4,\"full-width\"],\"heading\":[1],\"href\":[1],\"hreflang\":[1],\"message\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"subheading\":[1],\"target\":[1],\"appearance\":[32],\"areaExpanded\":[32],\"isFocussed\":[32],\"parentEl\":[32],\"parentIsAnchorTag\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-chip\",[[17,\"ic-chip\",{\"appearance\":[1],\"customColor\":[1,\"custom-color\"],\"disabled\":[4],\"dismissible\":[4],\"label\":[1],\"size\":[1],\"transparentBackground\":[4,\"transparent-background\"],\"variant\":[1],\"dismissLabel\":[1,\"dismiss-label\"],\"hovered\":[32],\"visible\":[32],\"setFocus\":[64]},[[2,\"icDismiss\",\"handleClick\"]],{\"customColor\":[\"customColorHandler\"],\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-footer\",[[1,\"ic-footer\",{\"aligned\":[1],\"breakpoint\":[1],\"caption\":[1],\"copyright\":[4],\"description\":[1],\"groupLinks\":[4,\"group-links\"],\"deviceSize\":[32],\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-footer-link-group\",[[17,\"ic-footer-link-group\",{\"groupTitle\":[1,\"group-title\"],\"expanded\":[32],\"deviceSize\":[32],\"dropdownIconStyle\":[32],\"small\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-hero\",[[1,\"ic-hero\",{\"aligned\":[1],\"backgroundImage\":[1,\"background-image\"],\"contentAligned\":[1,\"content-aligned\"],\"disableBackgroundParallax\":[4,\"disable-background-parallax\"],\"heading\":[1],\"secondaryHeading\":[1,\"secondary-heading\"],\"secondarySubheading\":[1,\"secondary-subheading\"],\"size\":[1],\"small\":[4],\"subheading\":[1],\"foregroundColor\":[32],\"rightContent\":[32],\"leftContentFullWidth\":[32],\"scrollFactor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"],[5,\"scroll\",\"doScroll\"]]]]],[\"ic-navigation-item\",[[17,\"ic-navigation-item\",{\"collapsedIconLabel\":[4,\"collapsed-icon-label\"],\"displayNavigationTooltip\":[4,\"display-navigation-tooltip\"],\"download\":[8],\"expandable\":[4],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"rel\":[1],\"referrerpolicy\":[1],\"selected\":[4],\"target\":[1],\"deviceSize\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"isSideNavMobile\":[32],\"isTopNavChild\":[32],\"navigationType\":[32],\"parentEl\":[32],\"sideNavExpanded\":[32],\"ariaLabel\":[32],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-step\",[[1,\"ic-step\",{\"compactStepStyling\":[1,\"compact-step-styling\"],\"current\":[1028],\"lastStep\":[4,\"last-step\"],\"lastStepNum\":[2,\"last-step-num\"],\"nextStepTitle\":[1,\"next-step-title\"],\"progress\":[2],\"stepNum\":[2,\"step-num\"],\"stepStatus\":[1,\"step-status\"],\"stepSubtitle\":[1,\"step-subtitle\"],\"stepTitle\":[1,\"step-title\"],\"variant\":[1],\"stepType\":[1,\"step-type\"]},null,{\"stepType\":[\"stepTypeChangeHandler\"]}]]],[\"ic-switch\",[[17,\"ic-switch\",{\"checked\":[4],\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"showState\":[4,\"show-state\"],\"size\":[1],\"small\":[4],\"value\":[1],\"checkedState\":[32],\"initiallyChecked\":[32],\"setFocus\":[64]},null,{\"checked\":[\"checkedChangeHandler\"],\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-accordion\",[[1,\"ic-accordion\",{\"appearance\":[1],\"disabled\":[4],\"expanded\":[1028],\"heading\":[1],\"message\":[1],\"size\":[1],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"expanded\":[\"handleExpandedWatch\"]}]]],[\"ic-badge\",[[17,\"ic-badge\",{\"accessibleLabel\":[1,\"accessible-label\"],\"customColor\":[1,\"custom-color\"],\"maxNumber\":[2,\"max-number\"],\"position\":[1],\"size\":[1],\"textLabel\":[1,\"text-label\"],\"type\":[1],\"variant\":[1],\"visible\":[1028],\"showBadge\":[64],\"hideBadge\":[64]},null,{\"accessibleLabel\":[\"accessibleLabelHandler\"],\"customColor\":[\"customColorHandler\"],\"variant\":[\"variantHandler\"],\"visible\":[\"visibleHandler\"]}]]],[\"ic-checkbox\",[[17,\"ic-checkbox\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"checked\":[1540],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"groupLabel\":[1025,\"group-label\"],\"indeterminate\":[4],\"label\":[1],\"name\":[1025],\"nativeIndeterminateBehaviour\":[4,\"native-indeterminate-behaviour\"],\"size\":[1],\"small\":[4],\"value\":[1],\"hideLabel\":[4,\"hide-label\"],\"initiallyChecked\":[32],\"displayIndeterminate\":[32],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"indeterminate\":[\"watchIndeterminateHandler\"]}]]],[\"ic-classification-banner\",[[1,\"ic-classification-banner\",{\"additionalSelectors\":[1,\"additional-selectors\"],\"classification\":[1],\"country\":[1],\"inline\":[4],\"upTo\":[4,\"up-to\"]}]]],[\"ic-data-entity\",[[1,\"ic-data-entity\",{\"heading\":[1],\"size\":[1],\"small\":[4]}]]],[\"ic-data-row\",[[1,\"ic-data-row\",{\"label\":[1],\"size\":[1],\"small\":[4],\"value\":[1],\"deviceSize\":[32],\"entitySize\":[32]}]]],[\"ic-empty-state\",[[1,\"ic-empty-state\",{\"aligned\":[1],\"body\":[1],\"bodyMaxLines\":[2,\"body-max-lines\"],\"heading\":[1],\"imageSize\":[1,\"image-size\"],\"subheading\":[1]}]]],[\"ic-menu-group\",[[1,\"ic-menu-group\",{\"label\":[1]}]]],[\"ic-navigation-group\",[[17,\"ic-navigation-group\",{\"expandable\":[4],\"label\":[1],\"deviceSize\":[32],\"dropdownOpen\":[32],\"expanded\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"navigationType\":[32],\"parentEl\":[32],\"setFocus\":[64]},[[0,\"childBlur\",\"childBlurHandler\"],[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-radio-option\",[[17,\"ic-radio-option\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"groupLabel\":[1,\"group-label\"],\"label\":[1],\"name\":[1],\"value\":[1025],\"selected\":[1540],\"initiallySelected\":[32],\"setFocus\":[64],\"setTabIndex\":[64]},[[0,\"icCheck\",\"handleCheck\"],[0,\"icChange\",\"textfieldValueHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"selected\":[\"watchSelectedHandler\"]}]]],[\"ic-status-tag\",[[1,\"ic-status-tag\",{\"announced\":[4],\"appearance\":[1],\"label\":[1],\"size\":[1],\"small\":[4],\"status\":[1],\"variant\":[1]}]]],[\"ic-tab\",[[1,\"ic-tab\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"disabled\":[4],\"selected\":[516],\"tabId\":[513,\"tab-id\"],\"tabPosition\":[2,\"tab-position\"],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\",\"disabledWatchHandler\"]}]]],[\"ic-footer-link\",[[17,\"ic-footer-link\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"deviceSize\":[32],\"footerConfig\":[32],\"foregroundColor\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-skeleton\",[[1,\"ic-skeleton\",{\"appearance\":[1],\"light\":[4],\"variant\":[1]}]]],[\"ic-stepper\",[[1,\"ic-stepper\",{\"aligned\":[1],\"appearance\":[1],\"connectorWidth\":[2,\"connector-width\"],\"hideStepInfo\":[4,\"hide-step-info\"],\"variant\":[1025],\"alignedFullWidth\":[32],\"autoSetStepTitles\":[32],\"lastStepWidth\":[32],\"noOfResizes\":[32],\"stepperWidth\":[32],\"stepTypes\":[32],\"variantOverride\":[32]},null,{\"hideStepInfo\":[\"handlePropChange\"],\"variant\":[\"handlePropChange\"]}]]],[\"ic-tab-context\",[[4,\"ic-tab-context\",{\"activationType\":[1,\"activation-type\"],\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"selectedTabIndex\":[2,\"selected-tab-index\"],\"selectedTab\":[32],\"tabRemovedHandler\":[64]},[[0,\"tabClick\",\"tabClickHandler\"],[0,\"tabCreated\",\"tabCreatedHandler\"],[0,\"tabPanelCreated\",\"tabCreatedHandler\"],[0,\"tabEnabled\",\"tabEnabledHandler\"]],{\"appearance\":[\"watchAppearanceHandler\"],\"selectedTabIndex\":[\"updateSelectedTab\"]}]]],[\"ic-tab-panel\",[[1,\"ic-tab-panel\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"]}]]],[\"ic-theme\",[[1,\"ic-theme\",{\"color\":[1]},null,{\"color\":[\"watchColorPropHandler\"]}]]],[\"ic-toast-region\",[[4,\"ic-toast-region\",{\"openToast\":[1040],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismissedToast\"]],{\"openToast\":[\"watchOpenToastHandler\"]}]]],[\"ic-toggle-button-group\",[[1,\"ic-toggle-button-group\",{\"accessibleLabel\":[1,\"accessible-label\"],\"appearance\":[1],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"iconPlacement\":[1,\"icon-placement\"],\"loading\":[4],\"selectMethod\":[1025,\"select-method\"],\"selectType\":[1,\"select-type\"],\"size\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"variant\":[513],\"lastKeyPressed\":[32]},[[0,\"icToggleChecked\",\"selectHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"tooltipPlacement\":[\"watchTooltipPlacementHandler\"]}]]],[\"ic-text-field\",[[1,\"ic-text-field\",{\"ariaActiveDescendant\":[1,\"aria-active-descendant\"],\"ariaAutocomplete\":[1,\"aria-autocomplete\"],\"ariaExpanded\":[1,\"aria-expanded\"],\"ariaOwns\":[1,\"aria-owns\"],\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autoFocus\":[4,\"auto-focus\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hiddenInput\":[4,\"hidden-input\"],\"inputId\":[1,\"input-id\"],\"inputmode\":[1],\"label\":[1],\"max\":[8],\"maxCharacters\":[2,\"max-characters\"],\"maxLength\":[2,\"max-length\"],\"maxLengthMessage\":[1,\"max-length-message\"],\"min\":[8],\"minCharacters\":[2,\"min-characters\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[516],\"required\":[4],\"resize\":[4],\"role\":[1],\"rows\":[2],\"size\":[1],\"small\":[4],\"spellcheck\":[4],\"truncateValue\":[4,\"truncate-value\"],\"type\":[1],\"validationInline\":[4,\"validation-inline\"],\"validationInlineInternal\":[4,\"validation-inline-internal\"],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"debounce\":[2],\"value\":[1537],\"numChars\":[32],\"maxCharactersReached\":[32],\"maxCharactersError\":[32],\"minCharactersUnattained\":[32],\"maxLengthExceeded\":[32],\"maxValueExceeded\":[32],\"minValueUnattained\":[32],\"initialValue\":[32],\"setFocus\":[64]},[[0,\"keydown\",\"handleKeyDown\"]],{\"disabled\":[\"watchDisabledHandler\"],\"debounce\":[\"debounceChanged\"],\"value\":[\"watchValueHandler\"]}]]],[\"ic-alert\",[[1,\"ic-alert\",{\"announced\":[4],\"dismissible\":[4],\"heading\":[1],\"message\":[1],\"titleAbove\":[4,\"title-above\"],\"variant\":[1],\"showDefaultIcon\":[4,\"show-default-icon\"],\"alertTitleWrap\":[32],\"visible\":[32]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-menu-item\",[[17,\"ic-menu-item\",{\"description\":[1],\"disabled\":[4],\"href\":[1],\"hreflang\":[1],\"keyboardShortcut\":[1,\"keyboard-shortcut\"],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"submenuTriggerFor\":[1,\"submenu-trigger-for\"],\"target\":[1],\"toggleChecked\":[1540,\"toggle-checked\"],\"variant\":[1537]},[[2,\"click\",\"handleHostClick\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-navigation-menu\",[[1,\"ic-navigation-menu\",{\"status\":[1],\"version\":[1]},[[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-link\",[[17,\"ic-link\",{\"appearance\":[1025],\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"showIcon\":[4,\"show-icon\"],\"target\":[1],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-breadcrumb\",[[17,\"ic-breadcrumb\",{\"appearance\":[1],\"current\":[4],\"href\":[1],\"pageTitle\":[1,\"page-title\"],\"showBackIcon\":[516,\"show-back-icon\"],\"setFocus\":[64]}]]],[\"ic-pagination-item\",[[1,\"ic-pagination-item\",{\"appearance\":[1],\"disabled\":[4],\"label\":[1],\"page\":[2],\"selected\":[4],\"type\":[1],\"capitalizedLabel\":[32]},null,{\"disabled\":[\"watchDisabledHandler\"],\"label\":[\"watchLabelHandler\"]}]]],[\"ic-divider\",[[2,\"ic-divider\",{\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-horizontal-scroll\",[[1,\"ic-horizontal-scroll\",{\"appearance\":[1],\"focusTrigger\":[1,\"focus-trigger\"],\"firstItemVisible\":[32],\"itemOverflow\":[32],\"lastItemVisible\":[32],\"scrollItemIntoView\":[64]}]]],[\"ic-section-container\",[[1,\"ic-section-container\",{\"aligned\":[1],\"fullHeight\":[4,\"full-height\"]}]]],[\"ic-input-component-container_3\",[[2,\"ic-menu\",{\"activationType\":[1,\"activation-type\"],\"anchorEl\":[16],\"autoFocusOnSelected\":[4,\"auto-focus-on-selected\"],\"fullWidth\":[4,\"full-width\"],\"inputEl\":[16],\"inputLabel\":[1,\"input-label\"],\"labelField\":[1,\"label-field\"],\"menuId\":[1,\"menu-id\"],\"open\":[516],\"parentEl\":[16],\"searchMode\":[1,\"search-mode\"],\"selectOnEnter\":[4,\"select-on-enter\"],\"size\":[1],\"small\":[4],\"options\":[16],\"value\":[1025],\"valueField\":[1,\"value-field\"],\"focusFromSearchKeypress\":[32],\"initialOptionsListRender\":[32],\"keyboardNav\":[32],\"optionHighlighted\":[32],\"preventIncorrectTabOrder\":[32],\"handleClickOpen\":[64],\"handleKeyboardOpen\":[64],\"handleSetFirstOption\":[64],\"initPopperJs\":[64]},null,{\"open\":[\"watchOpenHandler\"],\"options\":[\"watchOptionsHandler\"],\"value\":[\"watchValueHandler\"]}],[4,\"ic-input-component-container\",{\"appearance\":[1],\"dark\":[4],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"multiLine\":[4,\"multi-line\"],\"readonly\":[4],\"size\":[1],\"small\":[4],\"validationInline\":[4,\"validation-inline\"],\"validationStatus\":[1,\"validation-status\"]},null,{\"disabled\":[\"watchDisabledHandler\"]}],[4,\"ic-input-container\",{\"disabled\":[4],\"readonly\":[4]}]]],[\"ic-input-label_2\",[[4,\"ic-input-validation\",{\"ariaLiveMode\":[1,\"aria-live-mode\"],\"for\":[1],\"fullWidth\":[4,\"full-width\"],\"message\":[1],\"status\":[1]}],[0,\"ic-input-label\",{\"appearance\":[1],\"dark\":[4],\"disabled\":[4],\"error\":[4],\"for\":[1],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"readonly\":[4],\"required\":[4]}]]],[\"ic-button_3\",[[17,\"ic-button\",{\"accept\":[1],\"appearance\":[1025],\"ariaControlsId\":[8,\"aria-controls-id\"],\"ariaOwnsId\":[8,\"aria-owns-id\"],\"disabled\":[4],\"disableTooltip\":[4,\"disable-tooltip\"],\"download\":[8],\"dropdown\":[4],\"dropdownExpanded\":[1540,\"dropdown-expanded\"],\"fileUpload\":[4,\"file-upload\"],\"fileInputName\":[1,\"file-input-name\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"hreflang\":[1],\"loading\":[4],\"multiple\":[4],\"referrerpolicy\":[1],\"rel\":[1],\"selectedFiles\":[16],\"size\":[1],\"target\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"transparentBackground\":[4,\"transparent-background\"],\"type\":[1],\"variant\":[1],\"ariaLabel\":[32],\"describedByContent\":[32],\"title\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"]}],[1,\"ic-loading-indicator\",{\"appearance\":[1],\"description\":[1],\"fullWidth\":[516,\"full-width\"],\"innerLabel\":[2,\"inner-label\"],\"labelDuration\":[2,\"label-duration\"],\"max\":[2],\"min\":[2],\"size\":[513],\"type\":[513],\"label\":[1],\"progress\":[2],\"circularDiameter\":[32],\"circularLineWidth\":[32],\"indeterminate\":[32],\"indicatorLabel\":[32],\"showSecond\":[32]},null,{\"label\":[\"watchPropHandler\"],\"progress\":[\"watchProgressHandler\"]}],[1,\"ic-tooltip\",{\"disableClick\":[4,\"disable-click\"],\"disableHover\":[4,\"disable-hover\"],\"maxLines\":[2,\"max-lines\"],\"placement\":[1025],\"silent\":[4],\"target\":[513],\"label\":[1],\"popperProps\":[32],\"setExternalPopperProps\":[64],\"displayTooltip\":[64],\"isTooltipVisible\":[64]}]]]]"), options);
|
17
|
+
return bootstrapLazy(JSON.parse("[[\"ic-typography\",[[1,\"ic-typography\",{\"applyVerticalMargins\":[4,\"apply-vertical-margins\"],\"bold\":[4],\"italic\":[4],\"maxLines\":[1026,\"max-lines\"],\"strikethrough\":[4],\"underline\":[4],\"variant\":[1],\"truncated\":[32],\"truncButtonFocussed\":[32],\"expanded\":[32],\"resetTruncation\":[64],\"checkMaxLines\":[64],\"setShowHideExpanded\":[64]},null,{\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-search-bar\",[[17,\"ic-search-bar\",{\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autofocus\":[4],\"charactersUntilSuggestion\":[2,\"characters-until-suggestion\"],\"disabled\":[4],\"disableFilter\":[4,\"disable-filter\"],\"debounce\":[2],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"focusOnLoad\":[4,\"focus-on-load\"],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hintText\":[1,\"hint-text\"],\"label\":[1],\"labelField\":[1,\"label-field\"],\"loading\":[1028],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchMode\":[1,\"search-mode\"],\"size\":[1],\"small\":[4],\"spellcheck\":[4],\"timeout\":[2],\"valueField\":[1,\"value-field\"],\"options\":[16],\"value\":[1537],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"highlightedValue\":[32],\"open\":[32],\"searchSubmitFocused\":[32],\"showClearButton\":[32],\"filteredOptions\":[32],\"setFocus\":[64]},[[0,\"icKeydown\",\"handleKeyDown\"],[0,\"keyup\",\"handleKeyUp\"]],{\"disabled\":[\"watchDisabledHandler\"],\"loading\":[\"loadingHandler\"],\"filteredOptions\":[\"filteredOptionsHandler\"],\"options\":[\"watchOptionsHandler\"],\"value\":[\"watchValueHandler\"]}]]],[\"ic-select\",[[17,\"ic-select\",{\"charactersUntilSuggestions\":[2,\"characters-until-suggestions\"],\"disabled\":[516],\"disableFilter\":[4,\"disable-filter\"],\"emptyOptionListText\":[1,\"empty-option-list-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"includeDescriptionsInSearch\":[4,\"include-descriptions-in-search\"],\"includeGroupTitlesInSearch\":[4,\"include-group-titles-in-search\"],\"label\":[1],\"loadingErrorLabel\":[1,\"loading-error-label\"],\"loadingLabel\":[1,\"loading-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"searchable\":[4],\"searchMatchPosition\":[1,\"search-match-position\"],\"selectOnEnter\":[4,\"select-on-enter\"],\"showClearButton\":[4,\"show-clear-button\"],\"size\":[1],\"small\":[4],\"timeout\":[2],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"loading\":[1028],\"options\":[16],\"debounce\":[2],\"value\":[1025],\"ariaActiveDescendant\":[32],\"clearButtonFocused\":[32],\"debounceIcChange\":[32],\"hiddenInputValue\":[32],\"noOptions\":[32],\"open\":[32],\"pressedCharacters\":[32],\"searchableSelectInputValue\":[32],\"filteredOptions\":[32],\"uniqueOptions\":[32],\"currDebounce\":[32],\"initialValue\":[32],\"inputValueToFilter\":[32],\"currValue\":[32],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"loading\":[\"loadingHandler\"],\"options\":[\"watchOptionsHandler\"],\"debounce\":[\"debounceChangedHandler\"],\"value\":[\"valueChangedHandler\"],\"open\":[\"openChangedHandler\"]}]]],[\"ic-top-navigation\",[[1,\"ic-top-navigation\",{\"contentAligned\":[1,\"content-aligned\"],\"customMobileBreakpoint\":[2,\"custom-mobile-breakpoint\"],\"href\":[1],\"inline\":[4],\"shortAppTitle\":[1,\"short-app-title\"],\"status\":[1],\"version\":[1],\"appTitle\":[1,\"app-title\"],\"deviceSize\":[32],\"foregroundColor\":[32],\"hasFullWidthSearchBar\":[32],\"mobileSearchBarVisible\":[32],\"mobileSearchHiddenOnBlur\":[32],\"navMenuVisible\":[32],\"searchButtonClick\":[32],\"searchValue\":[32]},[[0,\"icNavigationMenuClose\",\"navBarMenuCloseHandler\"],[0,\"icSearchBarBlur\",\"searchInputBlurHandler\"],[0,\"icChange\",\"searchValueChangeHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"appTitle\":[\"watchPropHandler\"]}]]],[\"ic-page-header\",[[1,\"ic-page-header\",{\"aligned\":[1],\"border\":[4],\"heading\":[1],\"reverseOrder\":[4,\"reverse-order\"],\"size\":[1],\"small\":[4],\"sticky\":[4],\"stickyDesktopOnly\":[4,\"sticky-desktop-only\"],\"subheading\":[1],\"actionContent\":[32],\"areButtonsReversed\":[32],\"deviceSize\":[32]}]]],[\"ic-dialog\",[[1,\"ic-dialog\",{\"alertHeading\":[1,\"alert-heading\"],\"alertMessage\":[1,\"alert-message\"],\"buttons\":[4],\"closeOnBackdropClick\":[4,\"close-on-backdrop-click\"],\"destructive\":[4],\"dismissLabel\":[1,\"dismiss-label\"],\"disableHeightConstraint\":[4,\"disable-height-constraint\"],\"disableWidthConstraint\":[4,\"disable-width-constraint\"],\"hideCloseButton\":[4,\"hide-close-button\"],\"heading\":[1],\"label\":[1],\"open\":[1540],\"size\":[1],\"status\":[1],\"buttonProps\":[16],\"dialogRendered\":[32],\"fadeIn\":[32],\"showDialog\":[64],\"hideDialog\":[64],\"cancelDialog\":[64],\"confirmDialog\":[64]},[[4,\"keydown\",\"handleKeyboard\"],[0,\"click\",\"handleClick\"]],{\"open\":[\"watchOpenHandler\"],\"buttonProps\":[\"watchPropHandler\"]}]]],[\"ic-pagination\",[[1,\"ic-pagination\",{\"adjacentCount\":[1026,\"adjacent-count\"],\"appearance\":[1],\"boundaryCount\":[1026,\"boundary-count\"],\"defaultPage\":[2,\"default-page\"],\"disabled\":[4],\"hideCurrentPage\":[4,\"hide-current-page\"],\"hideFirstAndLastPageButton\":[4,\"hide-first-and-last-page-button\"],\"label\":[1],\"pages\":[2],\"type\":[1],\"currentPage\":[1026,\"current-page\"],\"endEllipsis\":[32],\"endItems\":[32],\"midItems\":[32],\"startEllipsis\":[32],\"startItems\":[32],\"setCurrentPage\":[64]},[[0,\"paginationItemClick\",\"paginationItemClickHandler\"]],{\"adjacentCount\":[\"watchAdjacentCountHandler\"],\"boundaryCount\":[\"watchBoundaryCountHandler\"],\"disabled\":[\"watchDisabledHandler\"],\"pages\":[\"watchNumberPagesHandler\"],\"type\":[\"watchTypeHandler\"],\"currentPage\":[\"watchPageChangeHandler\"]}]]],[\"ic-popover-menu\",[[17,\"ic-popover-menu\",{\"anchor\":[1],\"parentLabel\":[1,\"parent-label\"],\"parentPopover\":[16],\"submenuId\":[1,\"submenu-id\"],\"submenuLevel\":[2,\"submenu-level\"],\"open\":[1540],\"openingFromChild\":[32],\"openingFromParent\":[32],\"openFromChild\":[64],\"openFromParent\":[64],\"closeMenu\":[64]},[[0,\"handleMenuItemClick\",\"handleMenuItemClick\"],[2,\"triggerPopoverMenuInstance\",\"handleSubmenuChange\"],[4,\"click\",\"handleClick\"],[0,\"keydown\",\"handleKeyDown\"]],{\"open\":[\"watchOpenHandler\"]}]]],[\"ic-side-navigation\",[[1,\"ic-side-navigation\",{\"appTitle\":[1,\"app-title\"],\"collapsedIconLabels\":[4,\"collapsed-icon-labels\"],\"disableAutoParentStyling\":[4,\"disable-auto-parent-styling\"],\"disableTopBarBehaviour\":[4,\"disable-top-bar-behaviour\"],\"expanded\":[4],\"href\":[1],\"inline\":[4],\"shortAppTitle\":[1,\"short-app-title\"],\"static\":[4],\"status\":[1],\"version\":[1],\"deviceSize\":[32],\"deviceSizeAppTitle\":[32],\"foregroundColor\":[32],\"hasSecondaryNavigation\":[32],\"menuExpanded\":[32],\"menuOpen\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]],{\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-tab-group\",[[17,\"ic-tab-group\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"inline\":[516],\"label\":[1]}]]],[\"ic-accordion-group\",[[1,\"ic-accordion-group\",{\"accessibleButtonLabel\":[1,\"accessible-button-label\"],\"appearance\":[1],\"expanded\":[1028],\"groupTitle\":[1,\"group-title\"],\"singleExpansion\":[4,\"single-expansion\"],\"size\":[1],\"accordions\":[32],\"areAllAccordionsOpen\":[32],\"setFocus\":[64]},[[0,\"accordionClicked\",\"handleAccordionClicked\"]],{\"appearance\":[\"watchAppearanceHandler\"],\"expanded\":[\"watchExpandedHandler\"]}]]],[\"ic-navigation-button\",[[17,\"ic-navigation-button\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"initialAppearance\":[32],\"mode\":[32],\"setFocus\":[64]},[[4,\"icNavigationMenuOpened\",\"navBarMenuOpenHandler\"],[4,\"icNavigationMenuClosed\",\"navBarMenuCloseHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-toast\",[[1,\"ic-toast\",{\"autoDismissTimeout\":[1026,\"auto-dismiss-timeout\"],\"dismissButtonAriaLabel\":[1,\"dismiss-button-aria-label\"],\"dismissMode\":[1025,\"dismiss-mode\"],\"heading\":[1],\"message\":[1],\"neutralIconAriaLabel\":[1,\"neutral-icon-aria-label\"],\"variant\":[1025],\"timerProgress\":[32],\"visible\":[32],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismiss\"],[4,\"keydown\",\"handleKeyboard\"],[1,\"mouseenter\",\"handleTimer\"],[1,\"mouseleave\",\"handleTimer\"]],{\"dismissMode\":[\"dismissModeChangeHandler\"]}]]],[\"ic-toggle-button\",[[17,\"ic-toggle-button\",{\"accessibleLabel\":[1,\"accessible-label\"],\"appearance\":[1],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"iconPlacement\":[1,\"icon-placement\"],\"label\":[1],\"loading\":[4],\"size\":[1],\"toggleChecked\":[1540,\"toggle-checked\"],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"variant\":[513]},[[2,\"click\",\"handleHostClick\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-checkbox-group\",[[1,\"ic-checkbox-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"required\":[4],\"size\":[1],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"]},[[0,\"icChange\",\"handleChange\"],[0,\"icCheck\",\"selectHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"label\":[\"labelNameHandler\"],\"name\":[\"labelNameHandler\"]}]]],[\"ic-radio-group\",[[1,\"ic-radio-group\",{\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"orientation\":[1],\"required\":[4],\"size\":[1],\"small\":[4],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"checkedValue\":[32],\"currentOrientation\":[32],\"initialOrientation\":[32],\"selectedChild\":[32]},[[0,\"icCheck\",\"selectHandler\"],[0,\"icSelectedChange\",\"changeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"orientation\":[\"orientationChangeHandler\"]}]]],[\"ic-back-to-top\",[[17,\"ic-back-to-top\",{\"target\":[1],\"variant\":[1],\"bannerOffset\":[32],\"footerVisible\":[32],\"targetElVisible\":[32]},null,{\"target\":[\"watchPropHandler\"]}]]],[\"ic-breadcrumb-group\",[[1,\"ic-breadcrumb-group\",{\"appearance\":[1],\"backBreadcrumbOnly\":[4,\"back-breadcrumb-only\"],\"collapsed\":[4],\"deviceSize\":[32],\"expandedBreadcrumbs\":[32]},null,{\"appearance\":[\"watchAppearanceHandler\"],\"backBreadcrumbOnly\":[\"watchBackBreadcrumbHandler\"],\"collapsed\":[\"watchCollapsedHandler\"]}]]],[\"ic-card\",[[1,\"ic-card\",{\"clickable\":[1028],\"disabled\":[4],\"expandable\":[4],\"fullWidth\":[4,\"full-width\"],\"heading\":[1],\"href\":[1],\"hreflang\":[1],\"message\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"subheading\":[1],\"target\":[1],\"appearance\":[32],\"areaExpanded\":[32],\"isFocussed\":[32],\"parentEl\":[32],\"parentIsAnchorTag\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-chip\",[[17,\"ic-chip\",{\"appearance\":[1],\"customColor\":[1,\"custom-color\"],\"disabled\":[4],\"dismissible\":[4],\"label\":[1],\"size\":[1],\"transparentBackground\":[4,\"transparent-background\"],\"variant\":[1],\"dismissLabel\":[1,\"dismiss-label\"],\"hovered\":[32],\"visible\":[32],\"setFocus\":[64]},[[2,\"icDismiss\",\"handleClick\"]],{\"customColor\":[\"customColorHandler\"],\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-footer\",[[1,\"ic-footer\",{\"aligned\":[1],\"breakpoint\":[1],\"caption\":[1],\"copyright\":[4],\"description\":[1],\"groupLinks\":[4,\"group-links\"],\"deviceSize\":[32],\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-footer-link-group\",[[17,\"ic-footer-link-group\",{\"groupTitle\":[1,\"group-title\"],\"expanded\":[32],\"deviceSize\":[32],\"dropdownIconStyle\":[32],\"small\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-hero\",[[1,\"ic-hero\",{\"aligned\":[1],\"backgroundImage\":[1,\"background-image\"],\"contentAligned\":[1,\"content-aligned\"],\"disableBackgroundParallax\":[4,\"disable-background-parallax\"],\"heading\":[1],\"secondaryHeading\":[1,\"secondary-heading\"],\"secondarySubheading\":[1,\"secondary-subheading\"],\"size\":[1],\"small\":[4],\"subheading\":[1],\"foregroundColor\":[32],\"rightContent\":[32],\"leftContentFullWidth\":[32],\"scrollFactor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"],[5,\"scroll\",\"doScroll\"]]]]],[\"ic-navigation-item\",[[17,\"ic-navigation-item\",{\"collapsedIconLabel\":[4,\"collapsed-icon-label\"],\"displayNavigationTooltip\":[4,\"display-navigation-tooltip\"],\"download\":[8],\"expandable\":[4],\"href\":[1],\"hreflang\":[1],\"label\":[1],\"rel\":[1],\"referrerpolicy\":[1],\"selected\":[4],\"target\":[1],\"deviceSize\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"isSideNavMobile\":[32],\"isTopNavChild\":[32],\"navigationType\":[32],\"parentEl\":[32],\"sideNavExpanded\":[32],\"ariaLabel\":[32],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-step\",[[1,\"ic-step\",{\"compactStepStyling\":[1,\"compact-step-styling\"],\"current\":[1028],\"lastStep\":[4,\"last-step\"],\"lastStepNum\":[2,\"last-step-num\"],\"nextStepTitle\":[1,\"next-step-title\"],\"progress\":[2],\"stepNum\":[2,\"step-num\"],\"stepStatus\":[1,\"step-status\"],\"stepSubtitle\":[1,\"step-subtitle\"],\"stepTitle\":[1,\"step-title\"],\"variant\":[1],\"stepType\":[1,\"step-type\"]},null,{\"stepType\":[\"stepTypeChangeHandler\"]}]]],[\"ic-switch\",[[17,\"ic-switch\",{\"checked\":[4],\"disabled\":[4],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"name\":[1],\"showState\":[4,\"show-state\"],\"size\":[1],\"small\":[4],\"value\":[1],\"checkedState\":[32],\"initiallyChecked\":[32],\"setFocus\":[64]},null,{\"checked\":[\"checkedChangeHandler\"],\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-accordion\",[[1,\"ic-accordion\",{\"appearance\":[1],\"disabled\":[4],\"expanded\":[1028],\"heading\":[1],\"message\":[1],\"size\":[1],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"expanded\":[\"handleExpandedWatch\"]}]]],[\"ic-badge\",[[17,\"ic-badge\",{\"accessibleLabel\":[1,\"accessible-label\"],\"customColor\":[1,\"custom-color\"],\"maxNumber\":[2,\"max-number\"],\"position\":[1025],\"size\":[1],\"textLabel\":[1,\"text-label\"],\"type\":[1],\"variant\":[1],\"visible\":[1028],\"showBadge\":[64],\"hideBadge\":[64]},[[4,\"icNavigationMenuOpened\",\"navBarMenuOpenHandler\"],[4,\"icNavigationMenuClosed\",\"navBarMenuCloseHandler\"]],{\"accessibleLabel\":[\"accessibleLabelHandler\"],\"customColor\":[\"customColorHandler\"],\"variant\":[\"variantHandler\"],\"visible\":[\"visibleHandler\"]}]]],[\"ic-checkbox\",[[17,\"ic-checkbox\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"checked\":[1540],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"groupLabel\":[1025,\"group-label\"],\"indeterminate\":[4],\"label\":[1],\"name\":[1025],\"nativeIndeterminateBehaviour\":[4,\"native-indeterminate-behaviour\"],\"size\":[1],\"small\":[4],\"value\":[1],\"hideLabel\":[4,\"hide-label\"],\"initiallyChecked\":[32],\"displayIndeterminate\":[32],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\"],\"indeterminate\":[\"watchIndeterminateHandler\"]}]]],[\"ic-classification-banner\",[[1,\"ic-classification-banner\",{\"additionalSelectors\":[1,\"additional-selectors\"],\"classification\":[1],\"country\":[1],\"inline\":[4],\"upTo\":[4,\"up-to\"]}]]],[\"ic-data-entity\",[[1,\"ic-data-entity\",{\"heading\":[1],\"size\":[1],\"small\":[4]}]]],[\"ic-data-row\",[[1,\"ic-data-row\",{\"label\":[1],\"size\":[1],\"small\":[4],\"value\":[1],\"deviceSize\":[32],\"entitySize\":[32]}]]],[\"ic-empty-state\",[[1,\"ic-empty-state\",{\"aligned\":[1],\"body\":[1],\"bodyMaxLines\":[2,\"body-max-lines\"],\"heading\":[1],\"imageSize\":[1,\"image-size\"],\"subheading\":[1]}]]],[\"ic-menu-group\",[[1,\"ic-menu-group\",{\"label\":[1]}]]],[\"ic-navigation-group\",[[17,\"ic-navigation-group\",{\"expandable\":[4],\"label\":[1],\"deviceSize\":[32],\"dropdownOpen\":[32],\"expanded\":[32],\"focusStyle\":[32],\"inTopNavSideMenu\":[32],\"navigationType\":[32],\"parentEl\":[32],\"setFocus\":[64]},[[0,\"childBlur\",\"childBlurHandler\"],[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-radio-option\",[[17,\"ic-radio-option\",{\"additionalFieldDisplay\":[513,\"additional-field-display\"],\"disabled\":[4],\"dynamicText\":[1,\"dynamic-text\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"groupLabel\":[1,\"group-label\"],\"label\":[1],\"name\":[1],\"value\":[1025],\"selected\":[1540],\"initiallySelected\":[32],\"setFocus\":[64],\"setTabIndex\":[64]},[[0,\"icCheck\",\"handleCheck\"],[0,\"icChange\",\"textfieldValueHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"selected\":[\"watchSelectedHandler\"]}]]],[\"ic-status-tag\",[[1,\"ic-status-tag\",{\"announced\":[4],\"appearance\":[1],\"label\":[1],\"size\":[1],\"small\":[4],\"status\":[1],\"variant\":[1]}]]],[\"ic-tab\",[[1,\"ic-tab\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"disabled\":[4],\"selected\":[516],\"tabId\":[513,\"tab-id\"],\"tabPosition\":[2,\"tab-position\"],\"setFocus\":[64]},null,{\"disabled\":[\"watchDisabledHandler\",\"disabledWatchHandler\"]}]]],[\"ic-footer-link\",[[17,\"ic-footer-link\",{\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"target\":[1],\"deviceSize\":[32],\"footerConfig\":[32],\"foregroundColor\":[32]},[[4,\"footerResized\",\"footerResizeHandler\"],[4,\"themeChange\",\"footerThemeChangeHandler\"]]]]],[\"ic-skeleton\",[[1,\"ic-skeleton\",{\"appearance\":[1],\"light\":[4],\"variant\":[1]}]]],[\"ic-stepper\",[[1,\"ic-stepper\",{\"aligned\":[1],\"appearance\":[1],\"connectorWidth\":[2,\"connector-width\"],\"hideStepInfo\":[4,\"hide-step-info\"],\"variant\":[1025],\"alignedFullWidth\":[32],\"autoSetStepTitles\":[32],\"lastStepWidth\":[32],\"noOfResizes\":[32],\"stepperWidth\":[32],\"stepTypes\":[32],\"variantOverride\":[32]},null,{\"hideStepInfo\":[\"handlePropChange\"],\"variant\":[\"handlePropChange\"]}]]],[\"ic-tab-context\",[[4,\"ic-tab-context\",{\"activationType\":[1,\"activation-type\"],\"appearance\":[1],\"contextId\":[513,\"context-id\"],\"selectedTabIndex\":[2,\"selected-tab-index\"],\"selectedTab\":[32],\"tabRemovedHandler\":[64]},[[0,\"tabClick\",\"tabClickHandler\"],[0,\"tabCreated\",\"tabCreatedHandler\"],[0,\"tabPanelCreated\",\"tabCreatedHandler\"],[0,\"tabEnabled\",\"tabEnabledHandler\"]],{\"appearance\":[\"watchAppearanceHandler\"],\"selectedTabIndex\":[\"updateSelectedTab\"]}]]],[\"ic-tab-panel\",[[1,\"ic-tab-panel\",{\"appearance\":[1],\"contextId\":[513,\"context-id\"]}]]],[\"ic-theme\",[[1,\"ic-theme\",{\"color\":[1]},null,{\"color\":[\"watchColorPropHandler\"]}]]],[\"ic-toast-region\",[[4,\"ic-toast-region\",{\"openToast\":[1040],\"setVisible\":[64]},[[2,\"icDismiss\",\"handleDismissedToast\"]],{\"openToast\":[\"watchOpenToastHandler\"]}]]],[\"ic-toggle-button-group\",[[1,\"ic-toggle-button-group\",{\"accessibleLabel\":[1,\"accessible-label\"],\"appearance\":[1],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"iconPlacement\":[1,\"icon-placement\"],\"loading\":[4],\"selectMethod\":[1025,\"select-method\"],\"selectType\":[1,\"select-type\"],\"size\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"variant\":[513],\"lastKeyPressed\":[32]},[[0,\"icToggleChecked\",\"selectHandler\"]],{\"disabled\":[\"watchDisabledHandler\"],\"tooltipPlacement\":[\"watchTooltipPlacementHandler\"]}]]],[\"ic-text-field\",[[1,\"ic-text-field\",{\"ariaActiveDescendant\":[1,\"aria-active-descendant\"],\"ariaAutocomplete\":[1,\"aria-autocomplete\"],\"ariaExpanded\":[1,\"aria-expanded\"],\"ariaOwns\":[1,\"aria-owns\"],\"autocapitalize\":[1],\"autocomplete\":[1],\"autocorrect\":[1],\"autoFocus\":[4,\"auto-focus\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"hiddenInput\":[4,\"hidden-input\"],\"inputId\":[1,\"input-id\"],\"inputmode\":[1],\"label\":[1],\"max\":[8],\"maxCharacters\":[2,\"max-characters\"],\"maxLength\":[2,\"max-length\"],\"maxLengthMessage\":[1,\"max-length-message\"],\"min\":[8],\"minCharacters\":[2,\"min-characters\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[516],\"required\":[4],\"resize\":[4],\"role\":[1],\"rows\":[2],\"size\":[1],\"small\":[4],\"spellcheck\":[4],\"truncateValue\":[4,\"truncate-value\"],\"type\":[1],\"validationInline\":[4,\"validation-inline\"],\"validationInlineInternal\":[4,\"validation-inline-internal\"],\"validationStatus\":[1,\"validation-status\"],\"validationText\":[1,\"validation-text\"],\"debounce\":[2],\"value\":[1537],\"numChars\":[32],\"maxCharactersReached\":[32],\"maxCharactersError\":[32],\"minCharactersUnattained\":[32],\"maxLengthExceeded\":[32],\"maxValueExceeded\":[32],\"minValueUnattained\":[32],\"initialValue\":[32],\"setFocus\":[64]},[[0,\"keydown\",\"handleKeyDown\"]],{\"disabled\":[\"watchDisabledHandler\"],\"debounce\":[\"debounceChanged\"],\"value\":[\"watchValueHandler\"]}]]],[\"ic-alert\",[[1,\"ic-alert\",{\"announced\":[4],\"dismissible\":[4],\"heading\":[1],\"message\":[1],\"titleAbove\":[4,\"title-above\"],\"variant\":[1],\"showDefaultIcon\":[4,\"show-default-icon\"],\"alertTitleWrap\":[32],\"visible\":[32]},[[2,\"icDismiss\",\"handleClick\"]]]]],[\"ic-menu-item\",[[17,\"ic-menu-item\",{\"description\":[1],\"disabled\":[4],\"href\":[1],\"hreflang\":[1],\"keyboardShortcut\":[1,\"keyboard-shortcut\"],\"label\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"submenuTriggerFor\":[1,\"submenu-trigger-for\"],\"target\":[1],\"toggleChecked\":[1540,\"toggle-checked\"],\"variant\":[1537]},[[2,\"click\",\"handleHostClick\"]],{\"disabled\":[\"watchDisabledHandler\"]}]]],[\"ic-navigation-menu\",[[1,\"ic-navigation-menu\",{\"status\":[1],\"version\":[1]},[[0,\"navItemClicked\",\"navItemClickHandler\"],[4,\"keydown\",\"handleKeyDown\"]]]]],[\"ic-link\",[[17,\"ic-link\",{\"appearance\":[1025],\"download\":[8],\"href\":[1],\"hreflang\":[1],\"referrerpolicy\":[1],\"rel\":[1],\"showIcon\":[4,\"show-icon\"],\"target\":[1],\"setFocus\":[64]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-breadcrumb\",[[17,\"ic-breadcrumb\",{\"appearance\":[1],\"current\":[4],\"href\":[1],\"pageTitle\":[1,\"page-title\"],\"showBackIcon\":[516,\"show-back-icon\"],\"setFocus\":[64]}]]],[\"ic-pagination-item\",[[1,\"ic-pagination-item\",{\"appearance\":[1],\"disabled\":[4],\"label\":[1],\"page\":[2],\"selected\":[4],\"type\":[1],\"capitalizedLabel\":[32]},null,{\"disabled\":[\"watchDisabledHandler\"],\"label\":[\"watchLabelHandler\"]}]]],[\"ic-divider\",[[2,\"ic-divider\",{\"foregroundColor\":[32]},[[4,\"themeChange\",\"themeChangeHandler\"]]]]],[\"ic-horizontal-scroll\",[[1,\"ic-horizontal-scroll\",{\"appearance\":[1],\"focusTrigger\":[1,\"focus-trigger\"],\"firstItemVisible\":[32],\"itemOverflow\":[32],\"lastItemVisible\":[32],\"scrollItemIntoView\":[64]}]]],[\"ic-section-container\",[[1,\"ic-section-container\",{\"aligned\":[1],\"fullHeight\":[4,\"full-height\"]}]]],[\"ic-input-component-container_3\",[[2,\"ic-menu\",{\"activationType\":[1,\"activation-type\"],\"anchorEl\":[16],\"autoFocusOnSelected\":[4,\"auto-focus-on-selected\"],\"fullWidth\":[4,\"full-width\"],\"inputEl\":[16],\"inputLabel\":[1,\"input-label\"],\"labelField\":[1,\"label-field\"],\"menuId\":[1,\"menu-id\"],\"open\":[516],\"parentEl\":[16],\"searchMode\":[1,\"search-mode\"],\"selectOnEnter\":[4,\"select-on-enter\"],\"size\":[1],\"small\":[4],\"options\":[16],\"value\":[1025],\"valueField\":[1,\"value-field\"],\"focusFromSearchKeypress\":[32],\"initialOptionsListRender\":[32],\"keyboardNav\":[32],\"optionHighlighted\":[32],\"preventIncorrectTabOrder\":[32],\"handleClickOpen\":[64],\"handleKeyboardOpen\":[64],\"handleSetFirstOption\":[64],\"initPopperJs\":[64]},null,{\"open\":[\"watchOpenHandler\"],\"options\":[\"watchOptionsHandler\"],\"value\":[\"watchValueHandler\"]}],[4,\"ic-input-component-container\",{\"appearance\":[1],\"dark\":[4],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"multiLine\":[4,\"multi-line\"],\"readonly\":[4],\"size\":[1],\"small\":[4],\"validationInline\":[4,\"validation-inline\"],\"validationStatus\":[1,\"validation-status\"]},null,{\"disabled\":[\"watchDisabledHandler\"]}],[4,\"ic-input-container\",{\"disabled\":[4],\"readonly\":[4]}]]],[\"ic-input-label_2\",[[4,\"ic-input-validation\",{\"ariaLiveMode\":[1,\"aria-live-mode\"],\"for\":[1],\"fullWidth\":[4,\"full-width\"],\"message\":[1],\"status\":[1]}],[0,\"ic-input-label\",{\"appearance\":[1],\"dark\":[4],\"disabled\":[4],\"error\":[4],\"for\":[1],\"helperText\":[1,\"helper-text\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"readonly\":[4],\"required\":[4]}]]],[\"ic-button_3\",[[17,\"ic-button\",{\"accept\":[1],\"appearance\":[1025],\"ariaControlsId\":[8,\"aria-controls-id\"],\"ariaOwnsId\":[8,\"aria-owns-id\"],\"disabled\":[4],\"disableTooltip\":[4,\"disable-tooltip\"],\"download\":[8],\"dropdown\":[4],\"dropdownExpanded\":[1540,\"dropdown-expanded\"],\"fileUpload\":[4,\"file-upload\"],\"fileInputName\":[1,\"file-input-name\"],\"form\":[1],\"formaction\":[1],\"formenctype\":[1],\"formmethod\":[1],\"formnovalidate\":[4],\"formtarget\":[1],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"hreflang\":[1],\"loading\":[4],\"multiple\":[4],\"referrerpolicy\":[1],\"rel\":[1],\"selectedFiles\":[16],\"size\":[1],\"target\":[1],\"tooltipPlacement\":[1,\"tooltip-placement\"],\"transparentBackground\":[4,\"transparent-background\"],\"type\":[1],\"variant\":[1],\"ariaLabel\":[32],\"describedByContent\":[32],\"title\":[32],\"setFocus\":[64]},[[2,\"click\",\"handleHostClick\"],[4,\"themeChange\",\"themeChangeHandler\"]],{\"disabled\":[\"watchDisabledHandler\"]}],[1,\"ic-loading-indicator\",{\"appearance\":[1],\"description\":[1],\"fullWidth\":[516,\"full-width\"],\"innerLabel\":[2,\"inner-label\"],\"labelDuration\":[2,\"label-duration\"],\"max\":[2],\"min\":[2],\"size\":[513],\"type\":[513],\"label\":[1],\"progress\":[2],\"circularDiameter\":[32],\"circularLineWidth\":[32],\"indeterminate\":[32],\"indicatorLabel\":[32],\"showSecond\":[32]},null,{\"label\":[\"watchPropHandler\"],\"progress\":[\"watchProgressHandler\"]}],[1,\"ic-tooltip\",{\"disableClick\":[4,\"disable-click\"],\"disableHover\":[4,\"disable-hover\"],\"maxLines\":[2,\"max-lines\"],\"placement\":[1025],\"silent\":[4],\"target\":[513],\"label\":[1],\"popperProps\":[32],\"setExternalPopperProps\":[64],\"displayTooltip\":[64],\"isTooltipVisible\":[64]}]]]]"), options);
|
18
18
|
});
|
19
19
|
|
20
20
|
//# sourceMappingURL=core.js.map
|
@@ -4,6 +4,8 @@ import './types-6f6b41a5.js';
|
|
4
4
|
|
5
5
|
const icBadgeCss = "@media (prefers-reduced-motion: no-preference){:host(.show){animation:expand var(--ic-transition-duration-slow)}:host(.hide){animation:shrink var(--ic-transition-duration-slow)}}:host{display:flex;height:var(--ic-space-md);min-width:var(--ic-space-md);width:-moz-fit-content;width:fit-content;border-radius:calc(2 * var(--ic-space-xxl));position:absolute}:host(.neutral){background-color:var(--ic-architectural-500)}:host(.light){background-color:var(--ic-architectural-40)}:host(.info){background-color:var(--ic-status-info)}:host(.warning){background-color:var(--ic-status-warning-mid)}:host(.error){background-color:var(--ic-status-error)}:host(.success){background-color:var(--ic-status-success)}:host(.small){height:var(--ic-space-sm);min-width:var(--ic-space-sm)}:host(.large){height:calc(var(--ic-space-md) + var(--ic-space-xxs));min-width:calc(var(--ic-space-md) + var(--ic-space-xxs))}:host(.dot.default){height:var(--ic-space-xs);width:var(--ic-space-xs);min-width:var(--ic-space-xs)}:host(.dot.small){height:calc(var(--ic-space-xxs) + var(--ic-space-xxxs));width:calc(var(--ic-space-xxs) + var(--ic-space-xxxs));min-width:calc(var(--ic-space-xxs) + var(--ic-space-xxxs))}:host(.dot.large){height:var(--ic-space-sm);width:var(--ic-space-sm);min-width:var(--ic-space-sm)}:host(.foreground-dark) ::slotted(*){fill:var(--ic-color-primary-text)}:host(.foreground-light) ::slotted(*){fill:white}:host(.foreground-dark) ic-typography{color:var(--ic-color-primary-text)}:host(.foreground-light) ic-typography{color:white}:host(.text) ic-typography{align-self:center;padding:0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px)}:host(.text.small) ic-typography{padding:0 0.2132rem}:host(.text.large) ic-typography{padding:0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px)}:host(.icon) ::slotted(svg){width:var(--ic-space-sm);height:var(--ic-space-sm);padding:var(--ic-space-xxxs)}:host(.icon.small) ::slotted(svg){width:var(--ic-space-xs);height:var(--ic-space-xs)}:host(.icon.large) ::slotted(svg){width:calc(var(--ic-space-sm) + var(--ic-space-xxxs));height:calc(var(--ic-space-sm) + var(--ic-space-xxxs));padding:calc(var(--ic-space-xxxs) + var(--ic-space-1px))}:host(.far){top:calc(-1 * var(--ic-space-xs));right:calc(-1 * var(--ic-space-xs))}:host(.far.small),:host(.dot.far.large){top:calc(-1 * var(--ic-space-xxs));right:calc(-1 * var(--ic-space-xxs))}:host(.dot.far),:host(.dot.far.small){top:calc(-1 * var(--ic-space-xxxs));right:calc(-1 * var(--ic-space-xxxs))}:host(.near){top:calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));right:calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)))}:host(.dot.near){top:calc(-1 * var(--ic-space-1px));right:calc(-1 * var(--ic-space-1px))}:host(.inline){position:static}:host(.hide){visibility:hidden !important;transition:visibility var(--ic-transition-duration-slow)}.sr-only{position:absolute;left:-9999px}@keyframes expand{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes shrink{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}";
|
6
6
|
|
7
|
+
const NAVIGATION_BUTTON = "IC-NAVIGATION-BUTTON";
|
8
|
+
const TOP_NAVIGATION = "IC-TOP-NAVIGATION";
|
7
9
|
const Badge = class {
|
8
10
|
constructor(hostRef) {
|
9
11
|
registerInstance(this, hostRef);
|
@@ -61,6 +63,18 @@ const Badge = class {
|
|
61
63
|
}
|
62
64
|
}
|
63
65
|
};
|
66
|
+
this.setPositionInTopNavigation = () => {
|
67
|
+
const parentTopNavEl = this.el.parentElement.parentElement;
|
68
|
+
parentTopNavEl.classList.contains("mobile-mode")
|
69
|
+
? (this.position = "inline")
|
70
|
+
: (this.position = "near");
|
71
|
+
};
|
72
|
+
this.isInTopNav = () => {
|
73
|
+
const parentEl = this.el.parentElement;
|
74
|
+
const grandparentEl = parentEl.parentElement;
|
75
|
+
return (parentEl.tagName === NAVIGATION_BUTTON &&
|
76
|
+
grandparentEl.tagName === TOP_NAVIGATION);
|
77
|
+
};
|
64
78
|
this.isAccessibleLabelDefined = () => isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;
|
65
79
|
this.accessibleLabel = undefined;
|
66
80
|
this.customColor = null;
|
@@ -97,6 +111,15 @@ const Badge = class {
|
|
97
111
|
this.type === "text" &&
|
98
112
|
onComponentRequiredPropUndefined([{ prop: this.textLabel, propName: "text-label" }], "Badge");
|
99
113
|
}
|
114
|
+
componentWillRender() {
|
115
|
+
this.isInTopNav() && this.setPositionInTopNavigation();
|
116
|
+
}
|
117
|
+
navBarMenuOpenHandler() {
|
118
|
+
this.isInTopNav() && (this.position = "inline");
|
119
|
+
}
|
120
|
+
navBarMenuCloseHandler() {
|
121
|
+
this.isInTopNav() && (this.position = "near");
|
122
|
+
}
|
100
123
|
/**
|
101
124
|
* @deprecated This method should not be used anymore. Use visible prop to set badge visibility.
|
102
125
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"file":"ic-badge.entry.js","mappings":"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","names":[],"sources":["src/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","src/components/ic-badge/ic-badge.tsx"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host(.neutral) {\n background-color: var(--ic-architectural-500);\n}\n\n:host(.light) {\n background-color: var(--ic-architectural-40);\n}\n\n:host(.info) {\n background-color: var(--ic-status-info);\n}\n\n:host(.warning) {\n background-color: var(--ic-status-warning-mid);\n}\n\n:host(.error) {\n background-color: var(--ic-status-error);\n}\n\n:host(.success) {\n background-color: var(--ic-status-success);\n}\n\n:host(.small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.dot.default) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.dot.small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.dot.large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.foreground-dark) ::slotted(*) {\n fill: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.foreground-dark) ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ic-typography {\n color: white;\n}\n\n:host(.text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.text.small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.text.large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.icon.small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.icon.large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.far.small),\n:host(.dot.far.large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.dot.far),\n:host(.dot.far.small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.dot.near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.inline) {\n position: static;\n}\n\n:host(.hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Method,\n Prop,\n Watch,\n h,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n} from \"./ic-badge.types\";\nimport {\n IcColorRGBA,\n IcSizes,\n IcThemeForeground,\n IcColor,\n} from \"../../utils/types\";\nimport {\n convertToRGBA,\n getCssProperty,\n getThemeForegroundColor,\n hexToRgba,\n isPropDefined,\n onComponentRequiredPropUndefined,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\n\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private ariaLabel: string = null;\n private customColorRGBA: IcColorRGBA;\n private foregroundColour: IcThemeForeground;\n private parentAriaLabel: string;\n\n @Element() el: HTMLIcBadgeElement;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n @Watch(\"accessibleLabel\")\n accessibleLabelHandler(): void {\n this.setAccessibleLabel();\n }\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor = null;\n\n @Watch(\"customColor\")\n customColorHandler(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n }\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and textLabel is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop() position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() textLabel?: string;\n\n /**\n * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n @Watch(\"variant\")\n variantHandler(): void {\n this.getBadgeForeground();\n }\n\n /**\n * If `true`, the badge will be displayed.\n */\n @Prop({ mutable: true }) visible: boolean = true;\n\n @Watch(\"visible\")\n visibleHandler(): void {\n this.setAccessibleLabel();\n }\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n this.getBadgeForeground();\n\n const ariaLabel = this.el.parentElement?.ariaLabel;\n if (ariaLabel) this.parentAriaLabel = ariaLabel;\n this.setAccessibleLabel();\n }\n\n componentDidLoad(): void {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined(\n [{ prop: this.textLabel, propName: \"text-label\" }],\n \"Badge\"\n );\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async showBadge(): Promise<void> {\n this.visible = true;\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async hideBadge(): Promise<void> {\n this.visible = false;\n }\n\n private setBadgeColour = () => {\n const colorRGBA = convertToRGBA(this.customColor);\n\n if (colorRGBA) {\n this.customColorRGBA = colorRGBA;\n const { r, g, b, a } = colorRGBA;\n this.el.style.backgroundColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n };\n\n private getBadgeRGB = () => {\n switch (this.variant) {\n case \"custom\":\n return this.customColorRGBA;\n case \"error\":\n case \"success\":\n case \"warning\":\n case \"info\": {\n return rgbaStrToObj(getCssProperty(`--ic-status-${this.variant}`));\n }\n case \"neutral\":\n case \"light\":\n return hexToRgba(\n getCssProperty(\n `--ic-architectural-${this.variant === \"neutral\" ? 500 : 40}`\n )\n );\n }\n };\n\n private getBadgeForeground = () => {\n const { r, g, b } = this.getBadgeRGB();\n this.foregroundColour = getThemeForegroundColor(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n };\n\n private getTextLabel = () =>\n this.maxNumber && Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n private setAccessibleLabel = () => {\n const parentEl = this.el.parentElement;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.textLabel || \"with badge being displayed\";\n\n if (parentEl) {\n const { tagName } = parentEl;\n if (\n tagName !== \"IC-CARD\" &&\n (tagName !== \"IC-TAB\" || (tagName === \"IC-TAB\" && this.parentAriaLabel))\n ) {\n const ariaLabelPrefix = this.parentAriaLabel\n ? `${this.parentAriaLabel} ,`\n : \"\";\n parentEl.ariaLabel = this.visible\n ? `${ariaLabelPrefix} ${defaultAriaLabel}`\n : undefined;\n } else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n\n private isAccessibleLabelDefined = () =>\n isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n\n render() {\n const {\n ariaLabel,\n el,\n foregroundColour,\n getTextLabel,\n position,\n size,\n textLabel,\n type,\n variant,\n visible,\n } = this;\n\n return (\n <Host\n class={{\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [`${visible ? \"show\" : \"hide\"}`]: true,\n }}\n id={el.id || null}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && textLabel && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {getTextLabel()}\n </ic-typography>\n )}\n {type === \"dot\" && <span class=\"sr-only\">badge</span>}\n </Host>\n );\n }\n}\n"],"version":3}
|
1
|
+
{"file":"ic-badge.entry.js","mappings":"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","names":[],"sources":["src/components/ic-badge/ic-badge.css?tag=ic-badge&encapsulation=shadow","src/components/ic-badge/ic-badge.tsx"],"sourcesContent":["@media (prefers-reduced-motion: no-preference) {\n :host(.show) {\n animation: expand var(--ic-transition-duration-slow);\n }\n\n :host(.hide) {\n animation: shrink var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n display: flex;\n height: var(--ic-space-md);\n min-width: var(--ic-space-md);\n width: fit-content;\n border-radius: calc(2 * var(--ic-space-xxl));\n position: absolute;\n}\n\n:host(.neutral) {\n background-color: var(--ic-architectural-500);\n}\n\n:host(.light) {\n background-color: var(--ic-architectural-40);\n}\n\n:host(.info) {\n background-color: var(--ic-status-info);\n}\n\n:host(.warning) {\n background-color: var(--ic-status-warning-mid);\n}\n\n:host(.error) {\n background-color: var(--ic-status-error);\n}\n\n:host(.success) {\n background-color: var(--ic-status-success);\n}\n\n:host(.small) {\n height: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.large) {\n height: calc(var(--ic-space-md) + var(--ic-space-xxs));\n min-width: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n:host(.dot.default) {\n height: var(--ic-space-xs);\n width: var(--ic-space-xs);\n min-width: var(--ic-space-xs);\n}\n\n:host(.dot.small) {\n height: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n min-width: calc(var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.dot.large) {\n height: var(--ic-space-sm);\n width: var(--ic-space-sm);\n min-width: var(--ic-space-sm);\n}\n\n:host(.foreground-dark) ::slotted(*) {\n fill: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ::slotted(*) {\n fill: white;\n}\n\n:host(.foreground-dark) ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host(.foreground-light) ic-typography {\n color: white;\n}\n\n:host(.text) ic-typography {\n align-self: center;\n padding: 0 calc((var(--ic-space-xs) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.text.small) ic-typography {\n padding: 0 0.2132rem;\n}\n\n:host(.text.large) ic-typography {\n padding: 0 calc((var(--ic-space-sm) + var(--ic-space-1px)) / 2)\n var(--ic-space-1px);\n}\n\n:host(.icon) ::slotted(svg) {\n width: var(--ic-space-sm);\n height: var(--ic-space-sm);\n padding: var(--ic-space-xxxs);\n}\n\n:host(.icon.small) ::slotted(svg) {\n width: var(--ic-space-xs);\n height: var(--ic-space-xs);\n}\n\n:host(.icon.large) ::slotted(svg) {\n width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n height: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px));\n}\n\n:host(.far) {\n top: calc(-1 * var(--ic-space-xs));\n right: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.far.small),\n:host(.dot.far.large) {\n top: calc(-1 * var(--ic-space-xxs));\n right: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.dot.far),\n:host(.dot.far.small) {\n top: calc(-1 * var(--ic-space-xxxs));\n right: calc(-1 * var(--ic-space-xxxs));\n}\n\n:host(.near) {\n top: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n right: calc(-1 * calc(var(--ic-space-xxs) + var(--ic-space-1px)));\n}\n\n:host(.dot.near) {\n top: calc(-1 * var(--ic-space-1px));\n right: calc(-1 * var(--ic-space-1px));\n}\n\n:host(.inline) {\n position: static;\n}\n\n:host(.hide) {\n visibility: hidden !important;\n transition: visibility var(--ic-transition-duration-slow);\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@keyframes expand {\n from {\n opacity: 0;\n transform: scale(0);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes shrink {\n from {\n opacity: 1;\n transform: scale(1);\n }\n\n to {\n opacity: 0;\n transform: scale(0);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n} from \"./ic-badge.types\";\nimport {\n IcColorRGBA,\n IcSizes,\n IcThemeForeground,\n IcColor,\n} from \"../../utils/types\";\nimport {\n convertToRGBA,\n getCssProperty,\n getThemeForegroundColor,\n hexToRgba,\n isPropDefined,\n onComponentRequiredPropUndefined,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\n\nconst NAVIGATION_BUTTON = \"IC-NAVIGATION-BUTTON\";\nconst TOP_NAVIGATION = \"IC-TOP-NAVIGATION\";\n\n/**\n * @slot badge-icon - Icon will be rendered inside the badge if type is set to icon.\n */\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private ariaLabel: string = null;\n private customColorRGBA: IcColorRGBA;\n private foregroundColour: IcThemeForeground;\n private parentAriaLabel: string;\n\n @Element() el: HTMLIcBadgeElement;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n @Watch(\"accessibleLabel\")\n accessibleLabelHandler(): void {\n this.setAccessibleLabel();\n }\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor = null;\n\n @Watch(\"customColor\")\n customColorHandler(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n }\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and textLabel is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop({ mutable: true }) position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() textLabel?: string;\n\n /**\n * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n @Watch(\"variant\")\n variantHandler(): void {\n this.getBadgeForeground();\n }\n\n /**\n * If `true`, the badge will be displayed.\n */\n @Prop({ mutable: true }) visible: boolean = true;\n\n @Watch(\"visible\")\n visibleHandler(): void {\n this.setAccessibleLabel();\n }\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n this.getBadgeForeground();\n\n const ariaLabel = this.el.parentElement?.ariaLabel;\n if (ariaLabel) this.parentAriaLabel = ariaLabel;\n this.setAccessibleLabel();\n }\n\n componentDidLoad(): void {\n this.type === \"text\" &&\n onComponentRequiredPropUndefined(\n [{ prop: this.textLabel, propName: \"text-label\" }],\n \"Badge\"\n );\n }\n\n componentWillRender(): void {\n this.isInTopNav() && this.setPositionInTopNavigation();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.isInTopNav() && (this.position = \"inline\");\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.isInTopNav() && (this.position = \"near\");\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async showBadge(): Promise<void> {\n this.visible = true;\n }\n\n /**\n * @deprecated This method should not be used anymore. Use visible prop to set badge visibility.\n */\n @Method()\n async hideBadge(): Promise<void> {\n this.visible = false;\n }\n\n private setBadgeColour = () => {\n const colorRGBA = convertToRGBA(this.customColor);\n\n if (colorRGBA) {\n this.customColorRGBA = colorRGBA;\n const { r, g, b, a } = colorRGBA;\n this.el.style.backgroundColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n };\n\n private getBadgeRGB = () => {\n switch (this.variant) {\n case \"custom\":\n return this.customColorRGBA;\n case \"error\":\n case \"success\":\n case \"warning\":\n case \"info\": {\n return rgbaStrToObj(getCssProperty(`--ic-status-${this.variant}`));\n }\n case \"neutral\":\n case \"light\":\n return hexToRgba(\n getCssProperty(\n `--ic-architectural-${this.variant === \"neutral\" ? 500 : 40}`\n )\n );\n }\n };\n\n private getBadgeForeground = () => {\n const { r, g, b } = this.getBadgeRGB();\n this.foregroundColour = getThemeForegroundColor(\n (r * 299 + g * 587 + b * 114) / 1000\n );\n };\n\n private getTextLabel = () =>\n this.maxNumber && Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n\n // Set aria-label on badge and / or parent element\n // Aria-describedby seems to not work, probably due to shadow DOM\n private setAccessibleLabel = () => {\n const parentEl = this.el.parentElement;\n const defaultAriaLabel = this.isAccessibleLabelDefined()\n ? this.accessibleLabel\n : this.textLabel || \"with badge being displayed\";\n\n if (parentEl) {\n const { tagName } = parentEl;\n if (\n tagName !== \"IC-CARD\" &&\n (tagName !== \"IC-TAB\" || (tagName === \"IC-TAB\" && this.parentAriaLabel))\n ) {\n const ariaLabelPrefix = this.parentAriaLabel\n ? `${this.parentAriaLabel} ,`\n : \"\";\n parentEl.ariaLabel = this.visible\n ? `${ariaLabelPrefix} ${defaultAriaLabel}`\n : undefined;\n } else {\n this.ariaLabel = `, ${defaultAriaLabel}`;\n }\n }\n };\n\n private setPositionInTopNavigation = () => {\n const parentTopNavEl = this.el.parentElement.parentElement;\n parentTopNavEl.classList.contains(\"mobile-mode\")\n ? (this.position = \"inline\")\n : (this.position = \"near\");\n };\n\n private isInTopNav = (): boolean => {\n const parentEl = this.el.parentElement;\n const grandparentEl = parentEl.parentElement;\n return (\n parentEl.tagName === NAVIGATION_BUTTON &&\n grandparentEl.tagName === TOP_NAVIGATION\n );\n };\n\n private isAccessibleLabelDefined = () =>\n isPropDefined(this.accessibleLabel) && this.accessibleLabel !== null;\n\n render() {\n const {\n ariaLabel,\n el,\n foregroundColour,\n getTextLabel,\n position,\n size,\n textLabel,\n type,\n variant,\n visible,\n } = this;\n\n return (\n <Host\n class={{\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [`${visible ? \"show\" : \"hide\"}`]: true,\n }}\n id={el.id || null}\n aria-label={ariaLabel}\n role=\"status\"\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && textLabel && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {getTextLabel()}\n </ic-typography>\n )}\n {type === \"dot\" && <span class=\"sr-only\">badge</span>}\n </Host>\n );\n }\n}\n"],"version":3}
|