@danske/sapphire-angular 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/feedback-message/src/feedback-message.component.mjs +5 -6
- package/esm2020/lib/field/src/field.component.mjs +20 -4
- package/esm2020/lib/modal/src/dialog/alert-dialog.component.mjs +3 -3
- package/esm2020/lib/modal/src/dialog/confirmation-dialog.component.mjs +1 -1
- package/esm2020/lib/modal/src/dialog/danger-dialog.component.mjs +1 -1
- package/esm2020/lib/modal/src/dialog/dialog.component.mjs +12 -3
- package/esm2020/lib/popover/src/popover.component.mjs +3 -2
- package/esm2020/lib/select/src/select/select.component.mjs +3 -3
- package/esm2020/lib/table/src/table-head-cell.component.mjs +3 -3
- package/esm2020/lib/table/src/table.component.mjs +2 -2
- package/esm2020/lib/theme/src/themes.mjs +4 -4
- package/esm2020/lib/typography/src/body.component.mjs +7 -3
- package/esm2020/lib/typography/src/caption.component.mjs +2 -2
- package/esm2020/lib/typography/src/heading.component.mjs +2 -2
- package/esm2020/lib/typography/src/subheading.component.mjs +2 -2
- package/fesm2015/danske-sapphire-angular.mjs +60 -32
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +59 -32
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/field/src/field.component.d.ts +2 -0
- package/lib/modal/src/dialog/dialog.component.d.ts +3 -1
- package/lib/popover/src/popover.component.d.ts +1 -1
- package/lib/typography/src/body.component.d.ts +2 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"danske-sapphire-angular.mjs","sources":["../../src/lib/theme/src/top-level-theme-ref.service.ts","../../src/lib/theme/src/sapphire-overlay.service.ts","../../src/lib/theme/src/theme-base.directive.ts","../../src/lib/theme/src/theme-check.directive.ts","../../src/lib/common/sapphire-view-encapsulation.ts","../../src/lib/typography/src/heading.component.ts","../../src/lib/typography/src/subheading.component.ts","../../src/lib/typography/src/caption.component.ts","../../src/lib/typography/src/body.component.ts","../../src/lib/typography/src/typography.module.ts","../../src/lib/typography/public_api.ts","../../src/lib/button/src/button-group.component.ts","../../src/lib/button/src/button-group.component.html","../../src/lib/icon/src/iconRegistry.service.ts","../../src/lib/icon/src/icon-size-provider.ts","../../src/lib/icon/src/svgSanitizer.ts","../../src/lib/icon/src/icon.component.ts","../../src/lib/icon/src/icon.module.ts","../../src/lib/common/coerce-boolean.decorator.ts","../../src/lib/button/src/button-icon.directive.ts","../../src/lib/button/src/button.component.ts","../../src/lib/button/src/button.component.html","../../src/lib/button/src/icon-button.component.ts","../../src/lib/button/src/icon-button.component.html","../../src/lib/button/src/toggle-button.component.ts","../../src/lib/button/src/toggle-button-required-validator.ts","../../src/lib/button/src/button.module.ts","../../src/lib/button/public_api.ts","../../src/lib/common/tabindex.ts","../../src/lib/common/disabled.ts","../../src/lib/common/auto-id.decorator.ts","../../src/lib/label/i18n/index.ts","../../src/lib/field/src/field-control.ts","../../src/lib/field/src/field-note.directive.ts","../../src/lib/field/src/field-error.directive.ts","../../src/lib/common/translate.service.ts","../../src/lib/common/translate.pipe.ts","../../src/lib/label/src/label.component.ts","../../src/lib/label/src/label.component.html","../../src/lib/field/src/field-label.directive.ts","../../src/lib/radio/src/shared/radio-base.ts","../../src/lib/radio/src/radio.component.ts","../../src/lib/radio/src/radio.component.html","../../src/lib/radio/src/shared/radio-group-base.ts","../../src/lib/radio/src/radio-group.component.ts","../../src/lib/radio/src/radio-group.component.html","../../src/lib/field/src/field.component.ts","../../src/lib/field/src/field.component.html","../../src/lib/checkbox/src/checkbox-group.component.ts","../../src/lib/checkbox/src/checkbox-group.component.html","../../src/lib/checkbox/src/checkbox.component.ts","../../src/lib/checkbox/src/checkbox.component.html","../../src/lib/checkbox/src/checkbox-required-validator.ts","../../src/lib/checkbox/src/checkbox.module.ts","../../src/lib/checkbox/public_api.ts","../../src/lib/menu/src/menu.component.ts","../../src/lib/menu/src/menu.component.html","../../src/lib/menu/src/menu-item.component.ts","../../src/lib/menu/src/menu-item.component.html","../../src/lib/common/placement.ts","../../src/lib/menu/src/menu-trigger.directive.ts","../../src/lib/menu/src/menu-section.component.ts","../../src/lib/menu/src/menu-section.component.html","../../src/lib/menu/src/menu-icon.component.ts","../../src/lib/menu/src/menu-primary-text.component.ts","../../src/lib/menu/src/menu-secondary-text.component.ts","../../src/lib/menu/src/menu.module.ts","../../src/lib/menu/public_api.ts","../../src/lib/popover/src/popover-trigger.directive.ts","../../src/lib/popover/src/popover-title.directive.ts","../../src/lib/popover/src/popover.component.ts","../../src/lib/popover/src/popover.component.html","../../src/lib/popover/src/popover-close-button.directive.ts","../../src/lib/popover/src/popover.module.ts","../../src/lib/popover/public_api.ts","../../src/lib/field/src/field-note-suffix.directive.ts","../../src/lib/label/public_api.ts","../../src/lib/field/src/field.module.ts","../../src/lib/text-field/src/text-field-input.directive.ts","../../src/lib/text-field/src/text-field.component.ts","../../src/lib/text-field/src/text-field.component.html","../../src/lib/text-field/src/text-field-prefix.directive.ts","../../src/lib/text-field/src/text-field-postfix.directive.ts","../../src/lib/text-field/src/text-field-textarea-autosize.directive.ts","../../src/lib/text-field/src/text-field.module.ts","../../src/lib/text-field/public_api.ts","../../src/lib/listbox/src/option-icon.directive.ts","../../src/lib/listbox/src/option-secondary-text.directive.ts","../../src/lib/listbox/src/option-primary-text.directive.ts","../../src/lib/listbox/src/listbox-child.ts","../../src/lib/listbox/src/option.component.ts","../../src/lib/listbox/src/section.directive.ts","../../src/lib/listbox/src/cdk-option-scroll-issue-patch.ts","../../src/lib/common/pressed.directive.ts","../../src/lib/common/focused.directive.ts","../../src/lib/listbox/src/listbox-item.component.ts","../../src/lib/listbox/src/listbox-item.component.html","../../src/lib/listbox/src/listbox.component.ts","../../src/lib/listbox/src/listbox.component.html","../../src/lib/listbox/src/listbox-input.directive.ts","../../src/lib/listbox/src/listbox.module.ts","../../src/lib/select/src/common/select-value-holder.ts","../../src/lib/select/src/select/selection-text.directive.ts","../../src/lib/select/src/common/select-component-base.ts","../../src/lib/select/src/select/searchable-select.directive.ts","../../src/lib/common/visually-hidden.directive.ts","../../src/lib/common/platform.ts","../../src/lib/select/src/common/hidden-select.component.ts","../../src/lib/select/src/common/hidden-select.component.html","../../src/lib/select/src/select/select.component.ts","../../src/lib/select/src/select/select.component.html","../../src/lib/select/src/select-button/select-button.component.ts","../../src/lib/select/src/select-button/select-button.component.html","../../src/lib/select/src/select/select.module.ts","../../src/lib/select/public_api.ts","../../src/lib/link/src/link.component.ts","../../src/lib/link/src/link.module.ts","../../src/lib/link/public_api.ts","../../src/lib/segmented-tabs/src/segmented-tab.component.ts","../../src/lib/segmented-tabs/src/segmented-tab.component.html","../../src/lib/segmented-tabs/src/segmented-tabs.component.ts","../../src/lib/segmented-tabs/src/segmented-tabs.component.html","../../src/lib/segmented-tabs/src/segmented-tab-label.directive.ts","../../src/lib/segmented-tabs/src/segmented-tab-content.directive.ts","../../src/lib/segmented-tabs/src/segmented-tabs.module.ts","../../src/lib/spinner/src/spinner.component.ts","../../src/lib/spinner/src/spinner.component.html","../../src/lib/spinner/src/spinner.module.ts","../../src/lib/spinner/public_api.ts","../../src/lib/avatar/src/avatar.component.ts","../../src/lib/avatar/src/avatar.module.ts","../../src/lib/feedback-message/src/feedback-message.component.ts","../../src/lib/feedback-message/src/feedback-message.component.html","../../src/lib/feedback-message/src/feedback-message.module.ts","../../src/lib/feedback-message/public_api.ts","../../src/lib/table/src/table-sort.directive.ts","../../src/lib/table/src/table-sort-header.directive.ts","../../src/lib/tooltip/src/tooltip.component.ts","../../src/lib/theme/src/themes.ts","../../src/lib/theme/src/theme-root.directive.ts","../../src/lib/theme/src/theme.module.ts","../../src/lib/theme/public_api.ts","../../src/lib/tooltip/src/tooltip.directive.ts","../../src/lib/tooltip/src/truncated-with-tooltip.directive.ts","../../src/lib/table/src/table-head-cell.component.ts","../../src/lib/table/src/table-header-cell.component.html","../../src/lib/tooltip/src/tooltip.module.ts","../../src/lib/table/src/table-cell.directive.ts","../../src/lib/table/src/table-footer.directive.ts","../../src/lib/table/src/table-row.directive.ts","../../src/lib/table/src/table.directive.ts","../../src/lib/table/src/table.component.ts","../../src/lib/table/src/table-body.directive.ts","../../src/lib/table/src/table-head.directive.ts","../../src/lib/table/src/cdk-virtual-scroll-viewport-fix.directive.ts","../../src/lib/table/src/table.module.ts","../../src/lib/table/public_api.ts","../../src/lib/notification-badge/src/notification-badge.component.ts","../../src/lib/notification-badge/src/notification-badge.component.html","../../src/lib/notification-badge/src/notification-badge.module.ts","../../src/lib/switch/src/switch.component.ts","../../src/lib/switch/src/switch.component.html","../../src/lib/switch/src/switch-required-validator.ts","../../src/lib/switch/src/switch.module.ts","../../src/lib/radio/src/segmented/segmented-radio-group.component.ts","../../src/lib/radio/src/segmented/segmented-radio-group.component.html","../../src/lib/radio/src/segmented/segmented-radio.component.ts","../../src/lib/radio/src/segmented/segmented-radio.component.html","../../src/lib/radio/src/radio.module.ts","../../src/lib/radio/public_api.ts","../../src/lib/modal/src/modal.service.ts","../../src/lib/common/scroll-monitor.directive.ts","../../src/lib/modal/i18n/index.ts","../../src/lib/modal/src/layout/modal-close-button.directive.ts","../../src/lib/modal/src/layout/modal-header.component.ts","../../src/lib/modal/src/layout/modal-header.component.html","../../src/lib/modal/src/modal-base.component.ts","../../src/lib/modal/src/dialog/dialog.component.ts","../../src/lib/modal/src/layout/modal-body.component.ts","../../src/lib/modal/src/layout/modal-footer.component.ts","../../src/lib/modal/src/layout/modal-footer.component.html","../../src/lib/modal/src/modal-trigger.directive.ts","../../src/lib/modal/src/dialog/dialog-trigger.directive.ts","../../src/lib/modal/src/layout/modal-layout.component.ts","../../src/lib/modal/src/layout/modal-layout.component.html","../../src/lib/modal/src/dialog/confirmation-dialog.component.ts","../../src/lib/modal/src/dialog/confirmation-dialog.component.html","../../src/lib/modal/src/dialog/danger-dialog.component.ts","../../src/lib/modal/src/dialog/danger-dialog.component.html","../../src/lib/modal/src/dialog/alert-dialog.component.ts","../../src/lib/modal/src/dialog/alert-dialog.component.html","../../src/lib/modal/src/panel/panel.component.ts","../../src/lib/modal/src/panel/panel-trigger.directive.ts","../../src/lib/modal/src/layout/modal-back-button.directive.ts","../../src/lib/modal/src/modal.module.ts","../../src/lib/skeleton/src/skeleton-text.directive.ts","../../src/lib/skeleton/src/util.ts","../../src/lib/skeleton/src/skeleton.component.ts","../../src/lib/skeleton/src/skeleton-circle.directive.ts","../../src/lib/skeleton/src/skeleton-block.directive.ts","../../src/lib/skeleton/src/skeleton.module.ts","../../src/lib/pagination/i18n/index.ts","../../src/lib/pagination/src/page-selection-row.component.ts","../../src/lib/pagination/src/page-selection-row.component.html","../../src/lib/pagination/src/pagination.component.ts","../../src/lib/pagination/src/pagination.component.html","../../src/lib/pagination/src/pagination.module.ts","../../src/lib/help-button/src/help-button.component.ts","../../src/lib/help-button/src/help-button.component.html","../../src/lib/help-button/src/help-button.module.ts","../../src/lib/surface/src/surface.component.ts","../../src/lib/surface/src/surface.module.ts","../../src/lib/surface/public_api.ts","../../src/lib/common/public_api.ts","../../src/lib/badge/src/badge.component.ts","../../src/lib/badge/src/badge.module.ts","../../src/lib/list/src/list-item.component.ts","../../src/lib/list/src/list-item.component.html","../../src/lib/list/src/list.component.ts","../../src/lib/list/src/list-item-content.component.ts","../../src/lib/list/src/list-item-text.component.ts","../../src/lib/list/src/list-item-text-primary.component.ts","../../src/lib/list/src/list-item-text-secondary.component.ts","../../src/lib/list/src/list.module.ts","../../src/lib/list/public_api.ts","../../src/lib/core.module.ts","../../src/public-api.ts","../../src/danske-sapphire-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n/**\n * A reference to the topmost theme in the app. Is needed for providing root-level services\n * that need the theme.\n */\n@Injectable({ providedIn: 'root' })\nexport class TopLevelThemeRef {\n theme?: ThemeBaseDirective;\n\n setTheme(theme: ThemeBaseDirective) {\n this.theme = theme;\n }\n\n getTheme() {\n return this.theme;\n }\n}\n","// eslint-disable-next-line sapphire-angular/cdk-overlay\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { inject, Injectable } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\n\n/**\n * NOTE: Providing a theme-aware OverlayContainer was a solution for overlay styles we used to have.\n * It proved error-prone since it can lead to multiple overlay containers, which can cause\n * z-index issues in various scenarios (UC-4160, UC-2897, UC-3843).\n * The current solution applies.\n */\n\n/**\n * Sapphire theme aware overlay service.\n * It's a slim wrapper around CDK Overlay service that adds theme styles to the overlay container.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SapphireOverlay extends Overlay {\n private topLevelThemeRef: TopLevelThemeRef = inject(TopLevelThemeRef);\n private theme: ThemeBaseDirective | null = inject(ThemeBaseDirective, {\n optional: true,\n });\n\n /**\n * Same as Angular CDK's `overlay.create`,\n * but applies the current theme style on the overlay container.\n * @param overlayConfig The overlay configuration to pass to overlay.create()\n * @param theme The theme to apply. If not provided, the current theme will be used.\n */\n create(overlayConfig?: OverlayConfig, theme?: ThemeBaseDirective) {\n const overlayRef = super.create(overlayConfig);\n this.applyTheme(overlayRef, theme);\n return overlayRef;\n }\n\n /**\n * Applies the current theme style on the overlay container.\n * Useful only when the overlay is not created using `SapphireOverlay.create` method.\n * E.g. when using some higher-level service like Dialog from angular CDK.\n * @param overlayRef The overlay reference to apply the theme on.\n * @param theme The theme to apply. If not provided, the current theme will be used.\n */\n applyTheme(overlayRef: OverlayRef, theme?: ThemeBaseDirective) {\n theme = theme || this.theme || this.topLevelThemeRef.getTheme();\n if (!theme) {\n throw new Error(\n 'Could not find the current theme needed for overlay container'\n );\n }\n theme?.applyOnDomNode(overlayRef.overlayElement);\n if (overlayRef.backdropElement) {\n theme?.applyOnDomNode(overlayRef.backdropElement);\n }\n }\n}\n","// import { SapphireOverlayContainer } from './sapphire-overlay-container.service';\nimport {\n Directive,\n ElementRef,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\nimport { SapphireOverlay } from './sapphire-overlay.service';\n\n@Directive({\n selector: '[_sp-theme-base]', // selector is added to prevent the type error. We don't directly render this\n // directive.\n standalone: true,\n providers: [SapphireOverlay],\n})\nexport class ThemeBaseDirective {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private themeRef: TopLevelThemeRef,\n @Optional() @SkipSelf() parentTheme: ThemeBaseDirective\n ) {\n if (!parentTheme) {\n this.themeRef.setTheme(this);\n }\n }\n\n applyOnDomNode(element: HTMLElement): void {\n this.renderer.setAttribute(element, this.getUniqueAttribute(), '');\n }\n\n private getUniqueAttribute() {\n const attributes = this.elementRef.nativeElement.attributes;\n for (let index = 0; index < attributes.length; index++) {\n const attribute = attributes.item(index);\n if (attribute?.name.startsWith('_nghost')) {\n return attribute?.name;\n }\n }\n throw new Error(\n 'Could not get unique attribute for for the sapphire theme'\n );\n }\n\n equals(theme: ThemeBaseDirective) {\n return this.getUniqueAttribute() === theme.getUniqueAttribute();\n }\n}\n","import { Directive, OnInit, Optional } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n// noinspection AngularInvalidSelector\n/**\n * Checks if Sapphire theme is provided, and throws otherwise.\n * Useful to be added in hostDirectives of components.\n */\n@Directive({\n standalone: true,\n})\nexport class ThemeCheckDirective implements OnInit {\n constructor(\n @Optional()\n private theme: ThemeBaseDirective\n ) {}\n\n ngOnInit(): void {\n if (!this.theme) {\n throw new Error(\n 'Sapphire theme not provided. You need to render a theme component such as sp-theme-default in your app component. Read more in Getting Started guide.'\n );\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Injectable,\n Optional,\n Renderer2,\n} from '@angular/core';\n\n/**\n * Captures the view encapsulation of the current component, and makes it possible to apply that\n * on elements in the component's subtree, using {@link UseComponentStyles} directive.\n * Useful when a component has subcomponents, but they are a single component in css-level.\n */\n@Injectable()\nexport class ViewEncapsulationProvider {\n constructor(\n private elementRef: ElementRef<Element>,\n private renderer: Renderer2\n ) {}\n\n public enableStylesOn(element: Element) {\n this.renderer.setAttribute(element, this.getContentAttribute(), '');\n }\n\n private getContentAttribute(): string {\n const attributes = this.elementRef.nativeElement.attributes;\n for (let index = 0; index < attributes.length; index++) {\n const attribute = attributes.item(index);\n if (attribute?.name.startsWith('_nghost')) {\n return `_ngcontent${attribute.name.slice('_nghost'.length)}`;\n }\n }\n // eslint-disable-next-line no-console\n console.error(\n 'Could not find component id to apply Sapphire style encapsulation on:',\n this.elementRef.nativeElement\n );\n throw new Error(\n `Could not find component id to apply Sapphire style encapsulation. \\\n ViewEncapsulationProvider is supposed to be applied only on components.\n Make sure encapsulation is not set to ViewEncapsulation.None in your component`\n );\n }\n}\n\n/**\n * Enables the use of component's css classes on the host element. Also provides\n * `ViewEncapsulationProvider` which allows for using `UseComponentStyles` in child components.\n * Meant to be used internally, and in components in @danske/sapphire-angular-lab.\n * @internal\n */\n@Directive({\n standalone: true,\n // selector is required only by types. Would be nice to be able to not set any selector,\n // as this directive is meant to be used only in hostDirectives. But not setting selector\n // results in build error.\n selector: '[_spUseComponentStylesOnHost]',\n providers: [ViewEncapsulationProvider],\n})\nexport class UseComponentStylesOnHost {\n constructor(\n elementRef: ElementRef,\n viewEncapsulationProvider: ViewEncapsulationProvider\n ) {\n viewEncapsulationProvider.enableStylesOn(elementRef.nativeElement);\n }\n}\n\n/**\n * Enables the use of css classes from parent component's styles. Meant to be used internally,\n * and in components in @danske/sapphire-angular-lab.\n * @internal\n */\n@Directive({\n standalone: true,\n selector: '[_spUseComponentStyles]',\n})\nexport class UseComponentStyles {\n constructor(\n elementRef: ElementRef,\n @Optional() viewEncapsulationProvider: ViewEncapsulationProvider\n ) {\n if (!viewEncapsulationProvider) {\n // eslint-disable-next-line no-console\n console.error(\n 'Could not find parent Sapphire component to enable its styling on:',\n elementRef.nativeElement\n );\n }\n viewEncapsulationProvider?.enableStylesOn(elementRef.nativeElement);\n }\n}\n","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\ntype HeadingLevel =\n | '' /* for when level is not specified*/\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6';\n\n@Component({\n selector:\n 'h1[sp-heading],h2[sp-heading],h3[sp-heading],h4[sp-heading],h5[sp-heading],h6[sp-heading]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--heading-2xl]': 'level === \"1\"',\n '[class.sapphire-text--heading-xl]': 'level === \"2\"',\n '[class.sapphire-text--heading-lg]': 'level === \"3\"',\n '[class.sapphire-text--heading-md]': 'level === \"4\"',\n '[class.sapphire-text--heading-sm]': 'level === \"5\"',\n '[class.sapphire-text--heading-xs]': 'level === \"6\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class HeadingComponent {\n private levelInput?: HeadingLevel;\n\n @Input('sp-heading')\n set level(value: HeadingLevel) {\n this.levelInput = value;\n }\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n get level() {\n return this.levelInput || this.getLevelFromElement();\n }\n\n constructor(private elementRef: ElementRef) {}\n\n private getLevelFromElement(): HeadingLevel {\n const element = this.elementRef.nativeElement;\n return element instanceof HTMLHeadingElement\n ? (`${parseInt(element.tagName.slice(1))}` as HeadingLevel)\n : '1';\n }\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: '[sp-subheading]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--subheading-sm]': 'size === \"sm\"',\n '[class.sapphire-text--subheading-md]': 'size === \"md\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n})\nexport class SubheadingComponent {\n @Input()\n size: 'md' | 'sm' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: '[sp-caption]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--caption-sm]': 'size === \"sm\"',\n '[class.sapphire-text--caption-md]': 'size === \"md\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n})\nexport class CaptionComponent {\n @Input()\n size: 'md' | 'sm' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: '[sp-body]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--body-xs]': 'size === \"xs\"',\n '[class.sapphire-text--body-sm]': 'size === \"sm\"',\n '[class.sapphire-text--body-md]': 'size === \"md\"',\n '[class.sapphire-text--body-lg]': 'size === \"lg\"',\n '[class.sapphire-text--strong]': 'bold',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class BodyComponent {\n @Input()\n size: 'lg' | 'md' | 'sm' | 'xs' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @Input()\n bold?: BooleanInput = false;\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HeadingComponent } from './heading.component';\nimport { BodyComponent } from './body.component';\nimport { CaptionComponent } from './caption.component';\nimport { SubheadingComponent } from './subheading.component';\n\n@NgModule({\n declarations: [\n HeadingComponent,\n BodyComponent,\n CaptionComponent,\n SubheadingComponent,\n ],\n imports: [CommonModule],\n exports: [\n HeadingComponent,\n BodyComponent,\n CaptionComponent,\n SubheadingComponent,\n ],\n})\nexport class SapphireTypographyModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/heading.component';\nexport * from './src/subheading.component';\nexport * from './src/caption.component';\nexport * from './src/body.component';\nexport * from './src/typography.module';\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\nexport type ButtonGroupStretchType = 'none' | 'default' | 'autoVertical';\n\n/**\n * ButtonGroup is a utility component which ensures consistent spacing between\n * buttons All children must be of type Button. Icon buttons cannot be mixed\n * with standard buttons.\n */\n@Component({\n selector: 'sp-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // TODO: create another hostDirective for this?,\n standalone: false,\n})\nexport class ButtonGroupComponent {\n @Input()\n /**\n * Alignment of buttons within the group.\n * @default \"right\"\n */\n align: 'left' | 'center' | 'right' = 'right';\n\n @Input()\n /**\n * Controls stretching of the contents.\n *\n * `none` - the children will not stretch and will respect the alignment set with the align prop.\n *\n * `default` - the children will stretch to take full width. If the children overflow, they will be wrapped vertically.\n *\n * `autoVertical` - same behaviour as `default`, but if there is more than 3 children, they will be wrapped vertically even if they don't overflow.\n *\n * @default \"none\"\n */\n stretch?: ButtonGroupStretchType = 'none';\n\n @Input()\n /**\n * Spacing between the buttons\n * @default md\n */\n spacing: 'lg' | 'md' | 'sm' | 'xs' = 'md';\n\n @Input()\n /**\n * @default \"horizontal\"\n */\n orientation?: 'vertical' | 'horizontal' = 'horizontal';\n}\n","<div\n class=\"sapphire-button-group\"\n [ngClass]=\"\n stretch !== 'none'\n ? 'sapphire-button-group--stretch'\n : 'sapphire-button-group--align-' + align\n \"\n [class.sapphire-button-group--stretch-auto-vertical]=\"\n stretch === 'autoVertical'\n \"\n [class.sapphire-button-group--spacing-xs]=\"spacing === 'xs'\"\n [class.sapphire-button-group--spacing-sm]=\"spacing === 'sm'\"\n [class.sapphire-button-group--spacing-lg]=\"spacing === 'lg'\"\n [class.sapphire-button-group--vertical]=\"orientation === 'vertical'\"\n>\n <ng-content></ng-content>\n</div>\n","import { Injectable, isDevMode } from '@angular/core';\n\nexport interface IconData {\n name: string;\n data: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistry {\n constructor() {\n this.icons = new Map();\n }\n\n private icons: Map<string, string>;\n\n registerIcon(icon: IconData): void {\n if (!this.icons.has(icon.name)) {\n this.icons.set(icon.name, icon.data);\n }\n }\n\n registerIcons(icons: IconData[]): void {\n icons.forEach((icon) => this.registerIcon(icon));\n }\n\n getSvg(iconName: string): string | undefined {\n const svg = this.icons.get(iconName);\n\n if (svg === undefined) {\n if (isDevMode()) {\n throw new Error(\n `Icon named \"${iconName}\" not found. Make sure you register it using the \"IconRegistry\" service before using it.`\n );\n } else {\n // eslint-disable-next-line no-console\n console.error(\n `Icon named \"${iconName}\" not found. Make sure you register it before using it.`\n );\n }\n }\n\n return svg;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Interface to implement for the value of {@link ICON_SIZE_PROVIDER}\n */\nexport interface IconSizeProvider {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\n/**\n * Injection token to provide the default size of the icon based on where\n * it's used. Provided size will be used by default, if there is no explicit\n * size set on the icon.\n *\n * @example\n * ```\n * @Component({\n * providers: [{provides: ICON_SIZE_PROVIDER, useExisting: forwardRef(() => MyComponent}],\n * })\n * class MyComponent implements IconSizeProvider {\n * @Input()\n * size?: 'sm' | 'md';\n * }\n */\nexport const ICON_SIZE_PROVIDER = new InjectionToken(\n \"Icon size based on the context it's being used in\"\n);\n","import sanitizeHtml from 'sanitize-html';\n\nconst allowedAttributes = {\n svg: [\n 'id',\n 'class',\n 'style',\n 'xmlns',\n 'width',\n 'height',\n 'viewBox',\n 'preserveAspectRatio',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'overflow',\n 'fill',\n ],\n g: [\n 'id',\n 'class',\n 'style',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'fill',\n ],\n defs: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n symbol: [\n 'id',\n 'class',\n 'style',\n 'viewBox',\n 'preserveAspectRatio',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n use: [\n 'id',\n 'class',\n 'style',\n 'href',\n 'xlink:href',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n path: [\n 'id',\n 'class',\n 'style',\n 'd',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n rect: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'rx',\n 'ry',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n circle: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'r',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n ellipse: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'rx',\n 'ry',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n line: [\n 'id',\n 'class',\n 'style',\n 'x1',\n 'y1',\n 'x2',\n 'y2',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n polyline: [\n 'id',\n 'class',\n 'style',\n 'points',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n polygon: [\n 'id',\n 'class',\n 'style',\n 'points',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n text: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n tspan: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n textPath: [\n 'id',\n 'class',\n 'style',\n 'href',\n 'xlink:href',\n 'startOffset',\n 'method',\n 'spacing',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n image: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'href',\n 'xlink:href',\n 'transform',\n 'opacity',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n clipPath: [\n 'id',\n 'class',\n 'style',\n 'clipPathUnits',\n 'transform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n mask: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'maskUnits',\n 'maskContentUnits',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n pattern: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'patternUnits',\n 'patternContentUnits',\n 'viewBox',\n 'preserveAspectRatio',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n linearGradient: [\n 'id',\n 'class',\n 'style',\n 'x1',\n 'y1',\n 'x2',\n 'y2',\n 'gradientUnits',\n 'gradientTransform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n radialGradient: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n 'gradientUnits',\n 'gradientTransform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n stop: [\n 'id',\n 'class',\n 'style',\n 'offset',\n 'stop-color',\n 'stop-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n filter: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'filterUnits',\n 'primitiveUnits',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feGaussianBlur: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'stdDeviation',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feColorMatrix: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'type',\n 'values',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feBlend: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'in2',\n 'mode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feOffset: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'dx',\n 'dy',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feMerge: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feMergeNode: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feComponentTransfer: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncR: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncG: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncB: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncA: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animate: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animateTransform: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'type',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animateMotion: [\n 'id',\n 'class',\n 'style',\n 'path',\n 'keyPoints',\n 'rotate',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n set: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n desc: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n title: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n};\n\nconst selfClosing = [\n 'path',\n 'rect',\n 'circle',\n 'ellipse',\n 'line',\n 'polyline',\n 'polygon',\n 'stop',\n 'use',\n 'image',\n 'feGaussianBlur',\n 'feColorMatrix',\n 'feBlend',\n 'feOffset',\n 'feMergeNode',\n 'feFuncR',\n 'feFuncG',\n 'feFuncB',\n 'feFuncA',\n];\n\nexport const sanitizeSvg = (svg: string): string => {\n return sanitizeHtml(svg, {\n allowedTags: Object.keys(allowedAttributes),\n allowedAttributes,\n selfClosing,\n parser: {\n lowerCaseTags: false,\n lowerCaseAttributeNames: false,\n },\n });\n};\n","import {\n Component,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ICON_SIZE_PROVIDER, IconSizeProvider } from './icon-size-provider';\nimport { IconRegistry } from './iconRegistry.service';\nimport { sanitizeSvg } from './svgSanitizer';\n\ntype IconSize = 'sm' | 'md' | 'lg' | 'xl';\n\ntype IconColor =\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative';\n\n@Component({\n selector: 'sp-icon',\n template: '',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class IconComponent implements DoCheck {\n private iconClass?: IconSize;\n @Input()\n set name(value: string | undefined) {\n const unsafeSvg = (value && this.registry.getSvg(value)) || '';\n const safeSvg = sanitizeSvg(unsafeSvg);\n this.elementRef.nativeElement.innerHTML = safeSvg;\n this.setClasses();\n }\n\n @Input('size') sizeInput?: IconSize;\n\n get size(): IconSize {\n return this.sizeInput ?? this.sizeProvider?.size ?? 'md';\n }\n\n private _color?: IconColor;\n\n /**\n * The semantic color of the text.\n * No value means that the color will be inherited.\n */\n @Input()\n set color(color: IconColor | undefined) {\n this._color = color;\n this.setClasses();\n }\n\n get color() {\n return this._color;\n }\n\n constructor(\n private elementRef: ElementRef,\n private registry: IconRegistry,\n @Optional()\n @Inject(ICON_SIZE_PROVIDER)\n private sizeProvider?: IconSizeProvider\n ) {}\n\n ngDoCheck() {\n if (this.size !== this.iconClass) {\n this.setClasses();\n }\n }\n\n private setClasses() {\n this.iconClass = this.size;\n const svgElem: SVGSVGElement =\n this.elementRef.nativeElement.querySelector('svg');\n\n if (!svgElem) {\n return;\n }\n\n svgElem.setAttribute(\n 'class',\n `sapphire-icon sapphire-icon--${this.iconClass} ${\n this.color && `sapphire-icon--${this.color}`\n }`\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from './icon.component';\nimport { IconRegistry } from './iconRegistry.service';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule],\n exports: [IconComponent],\n providers: [IconRegistry],\n})\nexport class SapphireIconModule {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * To be used on input props of type boolean, to allow value-less shorthand\n * usage. A caveat is that the type will need to be BooleanInput, since TS\n * doesn't support type mutations through decorators, at the moment:\n * https://github.com/Microsoft/TypeScript/issues/4881\n */\nexport function CoerceBoolean(clazz: any, propName: string, descriptor?: any) {\n if (arguments.length === 0) {\n // support usage of the form @CoerceBoolean()\n return CoerceBoolean;\n }\n if (descriptor) {\n const originalSetter = descriptor.set;\n return Object.assign({}, descriptor, {\n set: function (value: any) {\n originalSetter.call(this, coerceBooleanProperty(value));\n },\n });\n } else {\n return Object.assign(\n {},\n {\n set: function (this: any, value: BooleanInput): void {\n this[`__${propName}`] = coerceBooleanProperty(value);\n },\n get: function (this: any): boolean {\n return this[`__${propName}`] || false;\n },\n }\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spButtonIcon]',\n standalone: false,\n})\nexport class ButtonIconDirective {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Injectable,\n Input,\n isDevMode,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { IconComponent, ICON_SIZE_PROVIDER } from '../../icon/public_api';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Injectable()\nclass ButtonIconSizeProvider {\n constructor(private button: ButtonComponent) {}\n\n get size() {\n return this.button.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n@Component({\n selector: 'button[sp-button], a[sp-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n class: 'sapphire-button',\n\n '[class.sapphire-button--lg]': 'size === \"lg\"',\n '[class.sapphire-button--sm]': 'size === \"sm\"',\n\n '[class.sapphire-button--with-left-icon]':\n 'buttonIcon && iconAlign === \"left\"',\n '[class.sapphire-button--with-right-icon]':\n 'buttonIcon && iconAlign === \"right\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: ButtonIconSizeProvider,\n },\n ],\n standalone: false,\n})\nexport class ButtonComponent implements AfterContentInit {\n @Input()\n variant?:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'text'\n | 'danger'\n | 'danger-secondary'\n | 'danger-tertiary'\n | 'danger-text' = 'primary';\n\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @Input()\n iconAlign: 'left' | 'right' = 'left';\n\n /**\n * The behavior of the button when used in an HTML form.\n */\n @Input()\n @HostBinding('type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n @HostBinding('class')\n private get variantClass() {\n return `sapphire-button--${this.variant}`;\n }\n\n @ContentChild(ButtonIconDirective) buttonIcon?: ButtonIconDirective;\n @ContentChild(IconComponent) icon?: IconComponent;\n\n constructor(public elementRef: ElementRef<HTMLButtonElement>) {}\n\n ngAfterContentInit() {\n if (this.icon) {\n if (!this.buttonIcon && isDevMode()) {\n // eslint-disable-next-line no-console\n console.error(`Icon is used in a button of variant \"${this.variant}\".\n You should either add spButtonIcon on the icon or use sp-icon-button instead of sp-button\"`);\n }\n }\n }\n}\n","<span class=\"sapphire-button__content\">\n <span\n *ngIf=\"buttonIcon && iconAlign === 'left'\"\n class=\"sapphire-button__icon\"\n >\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\n </span>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span\n *ngIf=\"buttonIcon && iconAlign === 'right'\"\n class=\"sapphire-button__icon\"\n >\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\n </span>\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #iconContent>\n <ng-content select=\"[spButtonIcon]\"></ng-content>\n </ng-template>\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n isDevMode,\n ElementRef,\n AfterViewInit,\n Injectable,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n@Injectable()\nclass IconButtonIconSizeProvider {\n constructor(private button: IconButtonComponent) {}\n\n get size() {\n return this.button.size === 'xs' ? 'sm' : this.button.size;\n }\n}\n\n@Component({\n selector: 'button[sp-icon-button], a[sp-icon-button]',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: IconButtonIconSizeProvider,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n class: 'sapphire-icon-button',\n\n '[class.sapphire-icon-button--lg]': 'size === \"lg\"',\n '[class.sapphire-icon-button--sm]': 'size === \"sm\"',\n '[class.sapphire-icon-button--xs]': 'size === \"xs\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class IconButtonComponent implements AfterViewInit {\n @Input()\n variant?:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'danger'\n | 'danger-secondary'\n | 'danger-tertiary' = 'tertiary';\n\n @Input()\n size?: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @HostBinding('class')\n private get variantClass() {\n return `sapphire-icon-button--${this.variant}`;\n }\n\n /**\n * The behavior of the button when used in an HTML form.\n */\n @Input()\n @HostBinding('type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n const { ariaLabel, ariaHidden } = this.elementRef.nativeElement;\n if (!ariaLabel && ariaHidden !== 'true' && isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(\n `Label is required for accessibility reasons. Please, provide attribute \"aria-label\" value or set aria-hidden=\"true\" for non-interactive elements.`,\n this.elementRef.nativeElement\n );\n }\n }\n}\n","<span class=\"sapphire-icon-button__icon\">\n <ng-content></ng-content>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Injectable,\n Input,\n isDevMode,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport {\n IconComponent,\n IconSizeProvider,\n ICON_SIZE_PROVIDER,\n} from '../../icon/public_api';\n\n@Injectable()\nclass ToggleButtonIconSizeProvider {\n constructor(private button: ToggleButtonComponent) {}\n\n get size() {\n return this.button.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n/**\n * A button with a toggleable `isSelected` state. By default, the selection is\n * toggled when the button is pressed, allowing user to switch between two\n * states or modes.\n */\n@Component({\n selector: 'button[sp-toggle-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true,\n },\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: ToggleButtonIconSizeProvider,\n },\n ],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n '[class.sapphire-button]': 'true',\n type: 'button',\n\n '[class.sapphire-button--selected]': 'selected',\n '[class.sapphire-button--unselected]': '!selected',\n\n '[class.sapphire-button--lg]': 'size === \"lg\"',\n '[class.sapphire-button--sm]': 'size === \"sm\"',\n\n '[class.sapphire-button--with-left-icon]':\n 'buttonIcon && iconAlign === \"left\"',\n '[class.sapphire-button--with-right-icon]':\n 'buttonIcon && iconAlign === \"right\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class ToggleButtonComponent\n implements\n AfterContentInit,\n OnChanges,\n ControlValueAccessor,\n IconSizeProvider\n{\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @HostBinding('attr.aria-pressed')\n @Input()\n @CoerceBoolean\n selected: BooleanInput;\n /**\n * Whether selected is controlled. If it's controlled via input binding,\n * then we just output selectChanges, without updating this._selected.\n */\n private isSelectedControlled = false;\n\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @Input()\n iconAlign: 'left' | 'right' = 'left';\n\n @ContentChild(ButtonIconDirective) buttonIcon?: ButtonIconDirective;\n @ContentChild(IconComponent) icon?: IconComponent;\n\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor() {}\n\n writeValue(value: any): void {\n this.selected = !!value;\n }\n registerOnChange(fn: any): void {\n this.controlValueAccessorChangeFn = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isSelectedControlled = changes.selected?.currentValue !== undefined;\n }\n\n ngAfterContentInit() {\n if (this.icon) {\n if (!this.buttonIcon && isDevMode()) {\n // eslint-disable-next-line no-console\n console.error(`Icon is used in a button.\n You should either add spButtonIcon on the icon or use sp-icon-button instead of sp-button\"`);\n }\n }\n }\n\n @HostListener('blur')\n _onBlur() {\n this.onTouched();\n }\n\n @HostListener('click')\n private handleClick() {\n const newValue = !this.selected;\n this.selectedChange.emit(newValue);\n this.controlValueAccessorChangeFn(newValue);\n if (!this.isSelectedControlled) {\n this.selected = newValue;\n }\n }\n}\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst TOGGLE_BUTTON_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireToggleButtonRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire checkbox's isRequired attribute in template-driven checkbox.\n */\n@Directive({\n selector: `button[sp-toggle-button][required][formControlName],\n button[sp-toggle-button][required][formControl],\n button[sp-toggle-button][required][ngModel]`,\n providers: [TOGGLE_BUTTON_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireToggleButtonRequiredValidator extends CheckboxRequiredValidator {\n @Input()\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from './button.component';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { IconButtonComponent } from './icon-button.component';\nimport { ToggleButtonComponent } from './toggle-button.component';\nimport { SapphireToggleButtonRequiredValidator } from './toggle-button-required-validator';\nimport { ButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n ButtonIconDirective,\n IconButtonComponent,\n ToggleButtonComponent,\n ButtonGroupComponent,\n SapphireToggleButtonRequiredValidator,\n ],\n imports: [CommonModule, FormsModule],\n exports: [\n ButtonComponent,\n ButtonIconDirective,\n IconButtonComponent,\n ToggleButtonComponent,\n ButtonGroupComponent,\n SapphireToggleButtonRequiredValidator,\n ],\n})\nexport class SapphireButtonModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/button-group.component';\nexport * from './src/button.component';\nexport * from './src/icon-button.component';\nexport * from './src/toggle-button.component';\nexport * from './src/toggle-button-required-validator';\nexport * from './src/button-icon.directive';\nexport * from './src/button.module';\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Constructor, AbstractConstructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n /** Tabindex of the component. */\n tabIndex: number;\n\n /** Tabindex to which to fall back to if no value is set. */\n defaultTabIndex: number;\n}\n\ntype HasTabIndexConstructor = Constructor<HasTabIndex> &\n AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexConstructor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(\n base: T,\n defaultTabIndex = 0\n): HasTabIndexConstructor & T {\n return class extends base implements HasTabIndex {\n private _tabIndex: number = defaultTabIndex;\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex =\n value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n /** Whether the component is disabled. */\n disabled: boolean;\n}\n\ntype CanDisableConstructor = Constructor<CanDisable> &\n AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends AbstractConstructor>(\n base: T\n): CanDisableConstructor & T;\n\nexport function mixinDisabled<T extends Constructor<object>>(\n base: T\n): CanDisableConstructor & T {\n return class extends base {\n private _disabled: boolean = false;\n\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","let nextUniqueId = 0;\n\n/**\n * To be used on id props that require an auto-generated value, if none provided\n * by the user.\n */\nexport const AutoId = ({ prefix = 'generated' }: { prefix?: string } = {}) => {\n return function AutoId(clazz: any, propName: string, descriptor?: any): any {\n const getter = function (this: any) {\n let id = descriptor?.get() || this[`__${propName}`];\n if (!id) {\n id = this[\n `__${propName}`\n ] = `${prefix}-id-${nextUniqueId++}-${Math.floor(\n Math.random() * 10000000\n )}`;\n }\n return id;\n };\n return Object.assign(\n {},\n {\n set:\n descriptor?.set ||\n function (this: any, value: any) {\n this[`__${propName}`] = value;\n },\n get: getter,\n }\n );\n };\n};\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import { FocusOrigin } from '@angular/cdk/a11y';\n\n/**\n * Injection token which is provided by components that are meant to be rendered\n * within sp-field.\n */\nexport abstract class FieldControl {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focus?(origin: FocusOrigin): void {}\n\n /**\n * The id of the control, to be used to associate the label with the control,\n * if the control is a\n * [labelable](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#labelable)\n * element.\n */\n getId?(): string | undefined {\n return undefined;\n }\n\n hasDefaultWidth?: boolean;\n\n abstract isDisabled(): boolean;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\n\n/**\n * Used inside field to provide a note for the field.\n */\n@Directive({\n selector: 'sp-field-note',\n standalone: true,\n host: {\n class: 'sapphire-field__note',\n },\n})\nexport class FieldNoteDirective {\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n @Input()\n variant?: 'warning' | 'neutral' | 'success' = 'neutral';\n\n public get icon(): string {\n switch (this.variant) {\n case 'warning':\n return 'warning';\n case 'success':\n return 'checkmarkOutline';\n default:\n return '';\n }\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { FieldControl } from './field-control';\n\n/**\n * Used inside sp-field to provide an error message for the field.\n */\n@Directive({\n selector: 'sp-field-error',\n standalone: true,\n host: {\n class: 'sapphire-field__note',\n },\n})\nexport class FieldErrorDirective {\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n @Input() target?: FieldControl;\n}\n","import { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport {\n MessageDictionary,\n MessageFormatter,\n} from '@internationalized/message';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslateService {\n constructor(@Inject(LOCALE_ID) @Optional() private locale: string) {\n this.locale = this.locale || 'en-DK';\n }\n\n translate(value: string, translations: MessageDictionary): string {\n return translations.getStringForLocale(value, this.locale);\n }\n\n stringFormatter(translations: MessageDictionary): MessageFormatter {\n return new MessageFormatter(this.locale, translations);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n MessageDictionary,\n MessageFormatter,\n} from '@internationalized/message';\nimport { TranslateService } from './translate.service';\n\n@Pipe({\n name: 't',\n standalone: true,\n})\nexport class TranslatePipe implements PipeTransform {\n constructor(translate: TranslateService, translations: MessageDictionary) {\n this.formatter = translate.stringFormatter(translations);\n }\n\n formatter: MessageFormatter;\n\n transform(value: string, vars?: Record<string, any>): string {\n return this.formatter.format(value, vars);\n }\n}\n","import { NgIf } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { TranslatePipe } from '../../common/translate.pipe';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../i18n';\n\n/**\n * Label UI, currently used exclusively in sp-field.\n * @internal\n */\n@Component({\n selector: 'sp-label',\n standalone: true,\n imports: [NgIf, TranslatePipe],\n providers: [{ provide: MessageDictionary, useValue: translations }],\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class LabelComponent {\n /**\n * id prop set on the underlying label element. Useful to set aria-labelledby\n * on the corresponding control, if it doesn't support labeling via {@link #for}\n */\n @AutoId()\n @Input()\n id = '';\n\n /**\n * html label \"for\" attribute, set on the underlying label element, in case the labeled control\n * has an id and is\n * [labelable](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#labelable)\n */\n @Input()\n for?: string;\n\n /**\n * Whether the label is disabled. Disabled label won't emit labelClick.\n */\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput;\n\n /**\n * Indicates the necessity of the corresponding form control.\n */\n @Input()\n necessityIndicator?: 'required' | 'optional';\n\n /**\n * @default \"lg\"\n */\n @Input()\n size?: 'lg' | 'md' = 'lg';\n\n /**\n * Emits when the label text is clicked.\n */\n @Output()\n labelClick = new EventEmitter<MouseEvent>();\n\n /**\n * @returns the text content of the label.\n */\n getText(): string {\n return this.labelElementRef?.nativeElement.textContent ?? '';\n }\n\n @ViewChild('label', { read: ElementRef })\n private labelElementRef?: ElementRef<HTMLLabelElement>;\n}\n","<div class=\"sapphire-label\" [class.sapphire-label--md]=\"size === 'md'\">\n <label\n class=\"sapphire-label__text\"\n (click)=\"!disabled && labelClick.emit($event)\"\n [attr.for]=\"for\"\n [attr.id]=\"id\"\n #label\n ><ng-content></ng-content\n ></label>\n\n <span\n *ngIf=\"necessityIndicator === 'required'\"\n class=\"sapphire-label__required-indicator\"\n ></span>\n <span\n *ngIf=\"necessityIndicator === 'optional'\"\n class=\"sapphire-label__optional-indicator\"\n >({{ 'optional' | t }})</span\n >\n\n <ng-content select=\"sp-help-button\"></ng-content>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * Used inside sp-field to provide the content of field's label.\n */\n@Directive({\n selector: 'sp-field-label',\n standalone: true,\n})\nexport class FieldLabelDirective {}\n","import {\n AfterViewInit,\n Attribute,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n BooleanInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport { CanDisable, mixinDisabled } from '../../../common/disabled';\nimport { HasTabIndex, mixinTabIndex } from '../../../common/tabindex';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { RadioGroupBase } from './radio-group-base';\n\n/** Change event object emitted by radio. */\nexport class SapphireRadioChange {\n constructor(\n /** The new `checked` value of the radio. */\n public readonly source: RadioBase,\n /** The source radio of the event. */\n public readonly value: any\n ) {}\n}\n\nconst _RadioMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n/**\n * @Directive decorator is just to be able to have a constructor with DI.\n * This class is being extended by other components.\n **/\n@Directive({})\nexport class RadioBase\n extends _RadioMixinBase\n implements OnInit, AfterViewInit, DoCheck, OnDestroy, CanDisable, HasTabIndex\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases,\n * aria-labelledby will take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded\n * to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() name: string = '';\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() autofocus: boolean = false;\n\n _getAriaChecked(): 'true' | 'false' {\n return this.checked ? 'true' : 'false';\n }\n\n /** A unique id for the radio input. If none is supplied, it will be auto-generated. */\n @Input()\n @HostBinding()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Previous value of the input's tabindex. */\n private previousTabIndex: number | undefined;\n\n /** Unregister function for _radioDispatcher */\n private removeUniqueSelectionListener: () => void = () => {};\n\n /** The native `<input type=\"radio\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n /** The value of this radio button. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n if (this.radioGroup !== null) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n private _value: any = null;\n\n /** Whether this radio button is checked. */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: BooleanInput) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (\n newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value !== this.value\n ) {\n this.radioGroup.selected = this;\n }\n\n if (newCheckedState) {\n this._radioDispatcher.notify(this.id, this.name);\n }\n }\n }\n private _checked: boolean = false;\n\n /** Whether the radio button is disabled. */\n @Input()\n get disabled(): boolean {\n return (\n this._disabled || (this.radioGroup !== null && this.radioGroup.disabled)\n );\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n }\n }\n private _disabled: boolean = false;\n\n /** Whether the radio button is readonly. */\n @Input()\n get readonly(): boolean {\n return (\n this._readonly || (this.radioGroup !== null && this.radioGroup.readonly)\n );\n }\n set readonly(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.readonly) {\n this._readonly = newValue;\n }\n }\n private _readonly: boolean = false;\n\n /** Whether the radio button is required. */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<SapphireRadioChange> =\n new EventEmitter<SapphireRadioChange>();\n\n constructor(\n @Optional() public readonly radioGroup: RadioGroupBase,\n public elementRef: ElementRef<HTMLLIElement>,\n @Attribute('tabindex') tabIndex: string,\n private _focusMonitor: FocusMonitor,\n private _radioDispatcher: UniqueSelectionDispatcher\n ) {\n super(elementRef);\n this.radioGroup = radioGroup;\n\n if (tabIndex) {\n this.tabIndex = coerceNumberProperty(tabIndex, 0);\n }\n }\n\n ngDoCheck(): void {\n this.updateTabIndex();\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this._value;\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n // Assining group name to all radio buttons\n this.name = this.radioGroup.name;\n }\n\n this.removeUniqueSelectionListener = this._radioDispatcher.listen(\n (id, name) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n }\n );\n }\n\n ngAfterViewInit() {\n this.updateTabIndex();\n if (this.autofocus) {\n this._inputElement.nativeElement.focus();\n }\n }\n\n ngOnDestroy() {\n this.removeUniqueSelectionListener();\n }\n\n /** Focuses the radio button. */\n focus(options?: FocusOptions, origin?: FocusOrigin): void {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n } else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n\n /** Gets the tabindex for the underlying input element. */\n private updateTabIndex() {\n const group = this.radioGroup;\n let value: number;\n\n // Implement a roving tabindex if the button is inside a group. For most cases this isn't\n // necessary, because the browser handles the tab order for inputs inside a group automatically,\n // but we need an explicitly higher tabindex for the selected button in order for things like\n // the focus trap to pick it up correctly.\n if (!group || !group.selected || this.disabled) {\n value = this.tabIndex;\n } else {\n value = group.selected === this ? this.tabIndex : -1;\n }\n\n if (value !== this.previousTabIndex) {\n // We have to set the tabindex directly on the DOM node, because it depends on\n // the selected state which is prone to \"changed after checked errors\".\n const input: HTMLInputElement | undefined =\n this._inputElement?.nativeElement;\n\n if (input) {\n input.setAttribute('tabindex', value + '');\n this.previousTabIndex = value;\n }\n }\n }\n\n private emitChangeEvent() {\n this.change.emit(new SapphireRadioChange(this, this.checked));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /** Triggered when the radio button receives an interaction from the user. */\n _onInputInteraction(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n if (!this.checked && !this.disabled && !this.readonly) {\n const groupValueChanged =\n this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n if (this.radioGroup) {\n this.radioGroup._controlValueAccessorChangeFn(this.value);\n if (groupValueChanged) {\n this.radioGroup._emitChangeEvent();\n }\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { RadioBase } from './shared/radio-base';\n\n@Component({\n selector: 'sp-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [ThemeCheckDirective],\n inputs: ['tabIndex'],\n host: {\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n },\n standalone: false,\n})\nexport class RadioComponent extends RadioBase {}\n","<label\n [for]=\"inputId\"\n class=\"sapphire-radio\"\n [class.sapphire-radio--no-disabled]=\"radioGroup?.disabled\"\n [class.sapphire-radio--checked]=\"checked\"\n [class.sapphire-radio--md]=\"radioGroup?._field?.size === 'md'\"\n>\n <input\n #input\n class=\"sapphire-radio__input\"\n type=\"radio\"\n [id]=\"inputId\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"_onInputInteraction($event)\"\n [attr.autofocus]=\"autofocus ? true : null\"\n />\n <span class=\"sapphire-radio__box\"></span>\n <span class=\"sapphire-radio__label\">\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n Optional,\n Output,\n QueryList,\n} from '@angular/core';\nimport { RadioComponent } from '../radio.component';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { FieldControl } from '../../../field/src/field-control';\nimport { SapphireRadioChange } from './radio-base';\nimport { FieldComponent } from '../../../field/src/field.component';\n\n@Directive({\n standalone: true,\n})\nexport abstract class RadioGroupBase\n implements ControlValueAccessor, FieldControl\n{\n @AutoId()\n public uniqueId = '';\n\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n private _name: string = `sapphire-radio-group-${this.uniqueId}`;\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<SapphireRadioChange> =\n new EventEmitter<SapphireRadioChange>();\n\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n if (this._value !== newValue) {\n this._value = newValue;\n\n this.updateSelectedRadioFromValue();\n this._checkSelectedRadioButton();\n }\n }\n private _value: any = '';\n\n /**\n * The currently selected radio button. If set to a new radio button, the radio group value\n * will be updated to match the new selected button. */\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(selected: RadioComponent | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioButton();\n }\n private _selected: RadioComponent | null = null;\n\n /** Whether the radio group is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n /** Whether the radio group is readonly */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly: boolean = false;\n\n /** Whether the radio group is required */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n /** Child radio buttons. */\n @ContentChildren(forwardRef(() => RadioComponent), { descendants: true })\n private radios: QueryList<RadioComponent> = new QueryList<RadioComponent>();\n\n onTouched: () => any = () => {};\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() public _field: FieldComponent\n ) {}\n\n _checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(): void {\n this.change.emit(new SapphireRadioChange(this._selected!, this._value));\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n this.changeDetectorRef.markForCheck();\n }\n\n // Implementing FieldControl interface\n isDisabled(): boolean {\n return this.disabled;\n }\n\n /** Updates the `selected` radio button from the internal _value state. */\n private updateSelectedRadioFromValue(): void {\n // If the value already matches the selected radio, do nothing.\n const alreadySelected =\n this._selected !== null && this._selected.value === this._value;\n\n if (this.radios && !alreadySelected) {\n this._selected = null;\n this.radios.forEach((radio) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FieldControl } from '../../field/src/field-control';\nimport { RadioGroupBase } from './shared/radio-group-base';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'sp-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => RadioGroupComponent),\n },\n {\n provide: RadioGroupBase,\n useExisting: forwardRef(() => RadioGroupComponent),\n },\n ],\n host: {\n role: 'radiogroup',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class RadioGroupComponent extends RadioGroupBase {\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n if (!focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<div\n class=\"sapphire-field-group\"\n role=\"radiogroup\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-labelledby]=\"_field?.label?.id\"\n [class.sapphire-field-group--vertical]=\"orientation === 'vertical'\"\n [class.sapphire-field-group--horizontal]=\"orientation === 'horizontal'\"\n [class.sapphire-field-group--md]=\"_field?.size === 'md'\"\n (cdkFocusChange)=\"_onFocusChange($event)\"\n cdkMonitorSubtreeFocus\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Injectable,\n Input,\n isDevMode,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { FieldNoteDirective } from './field-note.directive';\nimport { FieldErrorDirective } from './field-error.directive';\nimport { LabelComponent } from '../../label/src/label.component';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { RequiredValidator } from '@angular/forms';\nimport { FieldControl } from './field-control';\nimport { FieldLabelDirective } from './field-label.directive';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport {\n ICON_SIZE_PROVIDER,\n IconSizeProvider,\n} from '../../icon/src/icon-size-provider';\nimport { RadioGroupComponent } from '../../radio/src/radio-group.component';\nimport { IconRegistry } from '../../icon/public_api';\nimport {\n iconWarning,\n iconError,\n iconCheckmarkOutline,\n} from '@danske/sapphire-icons/js';\n\n@Injectable()\nclass FieldIconSizeProvider {\n constructor(private field: FieldComponent) {}\n\n get size() {\n return this.field.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n/**\n * A field is a common container for labelable controls such as select, radio group, text field,\n * etc.\n * In addition to the field control (sp-select, sp-radio-group, sp-text-field), the following\n * components can be used inside a field:\n * - sp-field-label: is used to provide the label text for the field.\n * - sp-help-button: is placed in the label area, next to the label text\n * - sp-field-error: is used to provide an error message, which is placed below the field's\n * control.\n * - sp-field-note: is used to provide a note, which is placed below the field's control. Only\n * shown\n * when there is no error\n * - sp-field-note-suffix: is used to provide a suffix, which is placed on the right side of the\n * note area.\n *\n * Additionally, field supports:\n * - Label placement either above (default) or on the side of the control.\n * - Associating label with the control, so that clicking the label focuses the control, showing\n * focus ring.\n * - Optionally showing necessity indicator in the label. Fields necessity (required or optional)\n * is determined based on the presence of @angular/form's {@link RequiredValidator}.\n */\n@Component({\n selector: 'sp-field',\n templateUrl: './field.component.html',\n styleUrls: ['./field.component.scss'],\n host: {\n class: 'sapphire-field',\n '[class.sapphire-field--label-placement-side]': 'labelPlacement === \"side\"',\n '[class.sapphire-field--no-width]':\n 'noDefaultWidth || !controlHasDefaultWidth()',\n '[class.sapphire-field--label-alignment-top]':\n 'labelPlacement === \"side\" && hasRadioGroupChild()',\n '[class.sapphire-field--md]': 'size === \"md\"',\n '[class.is-disabled]': 'isDisabled()',\n },\n hostDirectives: [UseComponentStylesOnHost],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: FieldIconSizeProvider,\n },\n ],\n standalone: false,\n})\nexport class FieldComponent\n implements AfterContentInit, AfterViewChecked, IconSizeProvider\n{\n /**\n * Whether the necessity indicator should be visible.\n */\n @Input()\n @CoerceBoolean\n necessityIndicator?: BooleanInput;\n\n /**\n * Label placement with respect to the form control.\n * @default \"above\"\n */\n @Input()\n labelPlacement?: 'side' | 'above' = 'above';\n\n /**\n * Avoid the default width\n */\n @Input()\n @CoerceBoolean\n noDefaultWidth?: BooleanInput;\n\n /**\n * Allow both note and error at the same time\n * @default false\n */\n @Input()\n @CoerceBoolean\n allowNoteAndError?: BooleanInput;\n\n /**\n * @default \"lg\"\n */\n @Input()\n size?: 'lg' | 'md' = 'lg';\n\n @ContentChild(FieldNoteDirective)\n note?: FieldNoteDirective;\n\n @ContentChild(FieldErrorDirective)\n error?: FieldErrorDirective;\n\n @ViewChild(LabelComponent)\n label?: LabelComponent;\n\n @ContentChild(FieldLabelDirective)\n _fieldLabel?: FieldLabelDirective;\n\n /**\n * Focusable, labelable control. Components like Select, RadioGroup or TextField,\n * that are meant to rendered inside sp-field, provide FieldControl.\n */\n @ContentChildren(FieldControl)\n controls?: QueryList<FieldControl>;\n\n @ContentChild(RadioGroupComponent)\n radioGroup?: RadioGroupComponent;\n\n @ContentChild(RequiredValidator, { descendants: true })\n private requiredValidator?: RequiredValidator;\n\n /**\n * Is set via field-note-affix directive. ContentChild query can't be used since we need\n * to query from content -> view in some cases.\n * @internal\n */\n _noteSuffixPortal: DomPortal<HTMLElement> | null = null;\n\n private changed: boolean = false;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n iconRegistry: IconRegistry\n ) {\n iconRegistry.registerIcon(iconCheckmarkOutline);\n iconRegistry.registerIcon(iconWarning);\n iconRegistry.registerIcon(iconError);\n }\n\n ngAfterContentInit() {\n if (!this.controls && isDevMode()) {\n throw new Error(\n 'sp-field is rendered without any control like sp-select, sp-text-field, or sp-radio-group inside it.'\n );\n }\n }\n\n ngAfterViewChecked() {\n /**\n * Since note suffix portal is changed by FieldNoteSuffixDirective,\n * it creates a case of ExpressionChangedAfterItHasBeenCheckedError.\n * So we need to manually detect changes when suffix portal is changed.\n * We Wouldn't need to do so, if we could query FieldNoteSuffixDirective\n * via @ContentChild, but we can't because it can be in the view of a content\n * child, which makes it not query-able.\n */\n if (this.changed) {\n this.changeDetectorRef.detectChanges();\n this.changed = false;\n }\n }\n\n /**\n * Whether the field contains an error message (sp-field-error).\n */\n hasError(targetField?: FieldControl): boolean {\n return (\n this.error !== undefined &&\n (!targetField || !this.error.target || this.error.target === targetField)\n );\n }\n\n /**\n * If there are multiple controls, the field is only disabled when all of them are disabled\n */\n isDisabled(): boolean {\n if (!this.controls || this.controls.length === 0) {\n return false;\n }\n\n return this.controls?.toArray().every((control) => control.isDisabled());\n }\n\n /**\n * If any of the controls should be constrained by the field's default widht\n */\n controlHasDefaultWidth(): boolean {\n if (!this.controls || this.controls.length === 0) {\n return false;\n }\n\n return this.controls?.toArray().some((control) => control.hasDefaultWidth);\n }\n\n /**\n * Only support features like `for` or `labelClick` if the field has one control.\n */\n get control(): FieldControl | undefined {\n return this.controls?.length === 1 ? this.controls.first : undefined;\n }\n\n get isGroup(): boolean {\n return this.controls ? this.controls.length > 1 : false;\n }\n\n /**\n * Whether the field control is radio group (sp-radio-group).\n */\n hasRadioGroupChild(): boolean {\n return this.radioGroup != undefined;\n }\n\n get labelNecessityIndicator(): LabelComponent['necessityIndicator'] {\n if (this.necessityIndicator) {\n return coerceBooleanProperty(this.requiredValidator?.required)\n ? 'required'\n : 'optional';\n }\n return undefined;\n }\n\n _setSuffixPortal(portal: DomPortal<HTMLElement> | null) {\n if (this._noteSuffixPortal?.isAttached) {\n this._noteSuffixPortal.detach();\n // calling detach will move the element back to the DOM. Couldn't find any better\n // way than imperatively removing the DOM element too.\n this._noteSuffixPortal.element.remove();\n }\n this._noteSuffixPortal = portal;\n this.changed = true;\n }\n}\n","<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-help-button\"\n ngProjectAs=\"sp-help-button\"\n ></ng-content>\n </sp-label>\n</div>\n<div\n class=\"sapphire-field__control\"\n [ngClass]=\"{\n 'sapphire-field__control--group': isGroup\n }\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row sapphire-text--negative\" *ngIf=\"error\">\n <span class=\"sapphire-field__note-icon\">\n <sp-icon name=\"error\" size=\"sm\"></sp-icon>\n </span>\n <div class=\"sapphire-field__note\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-field__note-row\"\n [ngClass]=\"{\n 'sapphire-text--positive': note?.variant === 'success',\n 'sapphire-text--warning': note?.variant === 'warning'\n }\"\n *ngIf=\"note && (!error || allowNoteAndError)\"\n >\n <span class=\"sapphire-field__note-icon\" *ngIf=\"note?.icon\">\n <sp-icon [name]=\"note?.icon\" size=\"sm\"></sp-icon>\n </span>\n <div class=\"sapphire-field__note\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"!error && _noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-field__note-row\"\n *ngIf=\"!note && !error && _noteSuffixPortal\"\n >\n <ng-container>\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n Optional,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { FieldControl } from '../../field/src/field-control';\nimport { FieldComponent } from '../../field/src/field.component';\n\n@Component({\n selector: 'sp-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: FieldControl,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n },\n ],\n host: {\n role: 'checkboxgroup',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class CheckboxGroupComponent implements FieldControl {\n @AutoId()\n public uniqueId = '';\n\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /** Whether the checkbox group is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n /** Whether the checkbox group is readonly */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly: boolean = false;\n\n /** Whether the checkbox group is required */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n get size(): 'lg' | 'md' {\n return this._field.size || 'lg';\n }\n\n constructor(@Optional() public _field: FieldComponent) {}\n\n // Implementing FieldControl interface\n isDisabled(): boolean {\n return this.disabled;\n }\n}\n","<div\n class=\"sapphire-field-group\"\n role=\"group\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-labelledby]=\"_field?.label?.id\"\n [class.sapphire-field-group--vertical]=\"orientation === 'vertical'\"\n [class.sapphire-field-group--horizontal]=\"orientation === 'horizontal'\"\n [class.sapphire-field-group--md]=\"_field?.size === 'md'\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { HasTabIndex, mixinTabIndex } from '../../common/tabindex';\nimport { CanDisable, mixinDisabled } from '../../common/disabled';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CheckboxGroupComponent } from './checkbox-group.component';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../../label/i18n';\n\n/** Change event object emitted by checkbox. */\nexport class CheckboxChange {\n constructor(\n /** The new `selected` value of the checkbox. */\n public readonly selected: boolean,\n /** The source checkbox of the event. */\n public readonly source: CheckboxComponent\n ) {}\n}\n\nconst _CheckboxMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n@Component({\n selector: 'sp-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n exportAs: 'spCheckbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n { provide: MessageDictionary, useValue: translations },\n ],\n host: {\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class CheckboxComponent\n extends _CheckboxMixinBase\n implements\n AfterViewInit,\n ControlValueAccessor,\n CanDisable,\n HasTabIndex,\n FocusableOption\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases,\n * aria-labelledby will take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded\n * to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get _inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input()\n @CoerceBoolean\n required: BooleanInput = false;\n\n /**\n * Whether the necessity indicator should be visible.\n */\n @Input()\n @CoerceBoolean\n necessityIndicator?: BooleanInput;\n\n /**\n * Whether the checkbox is readonly.\n */\n @Input()\n @CoerceBoolean\n readonly: BooleanInput = false;\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n @Input()\n get size(): 'lg' | 'md' {\n return this._size || this.checkboxGroup?.size;\n }\n set size(value: 'lg' | 'md') {\n if (value !== this.size) {\n this._size = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _size?: 'lg' | 'md';\n\n /** Event emitted when the checkbox's `selected` value changes. */\n @Output() readonly change: EventEmitter<CheckboxChange> =\n new EventEmitter<CheckboxChange>();\n\n /** The value attribute of the native input element */\n @Input() value: string | undefined;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement\n * ControlValueAccessor.\n * @docs-private\n */\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor(\n @Optional() public readonly checkboxGroup: CheckboxGroupComponent,\n elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(elementRef);\n this.tabIndex = parseInt(tabIndex) || 0;\n this.checkboxGroup = checkboxGroup;\n }\n ngAfterViewInit() {\n this.syncIndeterminate(this._indeterminate);\n }\n\n /** Whether the checkbox is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: BooleanInput) {\n const selected = coerceBooleanProperty(value);\n\n if (selected != this.selected) {\n this._selected = selected;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _selected: boolean = false;\n\n /**\n * Whether the checkbox is disabled. This fully overrides the implementation\n * provided by mixinDisabled, but the mixin is still required because\n * mixinTabIndex requires it.\n */\n @Input()\n override get disabled(): boolean {\n return this._disabled || this.checkboxGroup?.disabled;\n }\n override set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _disabled: boolean = false;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode\n * and can be used to represent a checkbox with three states, e.g. a checkbox\n * that represents a nested list of checkable items.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: BooleanInput) {\n this._indeterminate = coerceBooleanProperty(value);\n this.syncIndeterminate(this._indeterminate);\n }\n private _indeterminate: boolean = false;\n\n get labelNecessityIndicator(): 'optional' | 'required' | undefined {\n if (this.necessityIndicator) {\n return coerceBooleanProperty(this.required) ? 'required' : 'optional';\n }\n return undefined;\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.selected = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /** Toggles the `selected` state of the checkbox. */\n toggle(): void {\n this.selected = !this.selected;\n this.controlValueAccessorChangeFn(this.selected);\n }\n\n focus() {\n this._inputElement.nativeElement.focus();\n }\n\n _getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.selected) {\n return 'true';\n }\n\n return this.indeterminate ? 'mixed' : 'false';\n }\n\n _onInputClick($event: Event) {\n $event.stopPropagation();\n if (!this.disabled && !this.readonly) {\n this._selected = !this._selected;\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise, the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n _onBlur() {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n });\n }\n private emitChangeEvent() {\n this.controlValueAccessorChangeFn(this.selected);\n this.change.emit(new CheckboxChange(this.selected, this));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.selected;\n }\n }\n\n /**\n * Syncs the indeterminate value with the checkbox DOM node.\n *\n * We sync `indeterminate` directly on the DOM node, because in Ivy the check\n * for whether a property is supported on an element boils down to `if\n * (propName in element)`. Domino's HTMLInputElement doesn't have an\n * `indeterminate` property so Ivy will warn during server-side rendering.\n */\n private syncIndeterminate(value: boolean) {\n const nativeCheckbox = this._inputElement;\n\n if (nativeCheckbox) {\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n }\n}\n","<label\n [for]=\"_inputId\"\n class=\"sapphire-checkbox\"\n [class.sapphire-checkbox--checked]=\"selected\"\n [class.sapphire-checkbox--indeterminate]=\"indeterminate\"\n [class.is-disabled]=\"disabled && !checkboxGroup?.disabled\"\n [class.sapphire-checkbox--md]=\"size === 'md'\"\n>\n <input\n #input\n type=\"checkbox\"\n class=\"sapphire-checkbox__input\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [id]=\"_inputId\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick($event)\"\n (change)=\"_onInteractionEvent($event)\"\n />\n <span class=\"sapphire-checkbox__box\">\n <svg\n *ngIf=\"indeterminate\"\n class=\"sapphire-checkbox__box-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"square\"\n d=\"M7 12h10\"\n />\n <path fill=\"currentColor\" fill-rule=\"nonzero\" d=\"M18 11v2H6v-2z\" />\n </g>\n </svg>\n <svg\n *ngIf=\"selected && !indeterminate\"\n class=\"sapphire-checkbox__box-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M17.782 6.918l.753.659a.5.5 0 01.047.705L10.9 17.061a.5.5 0 01-.73.024l-4.232-4.231a.5.5 0 010-.708l.707-.707a.5.5 0 01.708 0l3.097 3.097 6.626-7.57a.5.5 0 01.705-.048z\"\n fill=\"currentColor\"\n fill-rule=\"nonzero\"\n />\n </svg>\n </span>\n <span class=\"sapphire-checkbox__label\">\n <ng-content></ng-content>\n <span\n *ngIf=\"labelNecessityIndicator === 'required'\"\n class=\"sapphire-checkbox__required-indicator\"\n ></span>\n <span\n *ngIf=\"labelNecessityIndicator === 'optional'\"\n class=\"sapphire-checkbox__optional-indicator\"\n >({{ 'optional' | t }})\n </span>\n </span>\n</label>\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireCheckboxRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire checkbox's \"required\" attribute in template-driven checkbox.\n */\n@Directive({\n selector: `sp-checkbox[required][formControlName],\n sp-checkbox[required][formControl], sp-checkbox[required][ngModel]`,\n providers: [CHECKBOX_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireCheckboxRequiredValidator extends CheckboxRequiredValidator {\n @Input()\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from './checkbox.component';\nimport { FormsModule } from '@angular/forms';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireCheckboxRequiredValidator } from './checkbox-required-validator';\nimport { CheckboxGroupComponent } from './checkbox-group.component';\nimport { TranslatePipe } from '../../common/translate.pipe';\n\n@NgModule({\n declarations: [\n CheckboxComponent,\n SapphireCheckboxRequiredValidator,\n CheckboxGroupComponent,\n ],\n imports: [CommonModule, TranslatePipe, FormsModule, A11yModule],\n exports: [\n CheckboxComponent,\n SapphireCheckboxRequiredValidator,\n CheckboxGroupComponent,\n ],\n})\nexport class SapphireCheckboxModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/checkbox.component';\nexport * from './src/checkbox-group.component';\nexport * from './src/checkbox.module';\nexport * from './src/checkbox-required-validator';\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n/** @title Menu with Standalone Trigger. */\n@Component({\n selector: 'sp-menu',\n styleUrls: ['./menu.component.scss'],\n templateUrl: './menu.component.html',\n hostDirectives: [\n { directive: CdkMenu, outputs: ['closed'] },\n ThemeCheckDirective,\n UseComponentStylesOnHost,\n ],\n host: {\n // It would be more accurate to apply sapphire-popover on the element with cdk-overlay-pane\n // class, instead of the inner sp-menu element. There might be a provider to use for adding\n // custom class to the cdk overlay pane element.\n '[class.sapphire-popover]': 'true',\n '[class.sapphire-popover--max-width]': 'true',\n },\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'sm' },\n },\n ],\n standalone: false,\n})\nexport class MenuComponent {}\n","<div class=\"sapphire-listbox\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-menu-item',\n templateUrl: './menu-item.component.html',\n standalone: false,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: [\n 'cdkMenuItemDisabled: disabled',\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\n ],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n UseComponentStyles,\n ],\n host: {\n '[class.sapphire-listbox__item]': 'true',\n },\n})\nexport class MenuItemComponent {\n /** Whether the item should be disabled */\n @HostBinding('class.is-disabled')\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** Whether the item should be styled as danger item */\n @HostBinding('class.sapphire-listbox__item--danger')\n @Input()\n @CoerceBoolean\n danger: BooleanInput;\n}\n","<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-content select=\"sp-menu-primary-text\"></ng-content>\n <!-- If nothing matches other ng-content selectors then render it as primary text -->\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sp-menu-secondary-text\"></ng-content>\n </div>\n <ng-content select=\"sp-menu-item-icon\"></ng-content>\n</div>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type HorizontalPlacement = 'start' | 'end';\nexport type VerticalPlacement = 'top' | 'bottom';\nexport type Placement =\n | HorizontalPlacement\n | VerticalPlacement\n | `${HorizontalPlacement} ${VerticalPlacement}`\n | `${VerticalPlacement} ${HorizontalPlacement}`;\n\ntype PlacementPart = HorizontalPlacement | VerticalPlacement;\n\n/**\n * Converts our `Placement` input (which is aligned with react implementation), to Angular CDK\n * `ConnectedPosition`\n * @param placement\n */\nexport function toConnectedPosition(placement: Placement): ConnectedPosition {\n const [first, second = 'center'] = placement.split(' ') as [\n PlacementPart,\n PlacementPart | undefined\n ];\n\n switch (first) {\n case 'top':\n return {\n originY: 'top',\n overlayY: 'bottom',\n originX: second as 'center' | HorizontalPlacement,\n overlayX: second as 'center' | HorizontalPlacement,\n offsetY: -6,\n };\n case 'bottom':\n return {\n originY: 'bottom',\n overlayY: 'top',\n originX: second as 'center' | HorizontalPlacement,\n overlayX: second as 'center' | HorizontalPlacement,\n offsetY: 6,\n };\n case 'start':\n return {\n overlayX: 'end',\n originX: 'start',\n originY: second as 'center' | VerticalPlacement,\n overlayY: second as 'center' | VerticalPlacement,\n offsetX: -6,\n };\n case 'end':\n return {\n overlayX: 'start',\n originX: 'end',\n originY: second as 'center' | VerticalPlacement,\n overlayY: second as 'center' | VerticalPlacement,\n offsetX: 6,\n };\n }\n}\n\nconst PLACEMENT_FLIP_MAP: Record<PlacementPart, PlacementPart> = {\n top: 'bottom',\n bottom: 'top',\n start: 'end',\n end: 'start',\n};\n\nexport function flip(placement: Placement): Placement {\n return placement\n .split(' ')\n .map((part, index) => {\n if (index === 0) {\n return PLACEMENT_FLIP_MAP[part as PlacementPart];\n }\n return part;\n })\n .join(' ') as Placement;\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport {\n FlexibleConnectedPositionStrategy,\n // eslint-disable-next-line sapphire-angular/cdk-overlay\n Overlay,\n OverlayConfig,\n} from '@angular/cdk/overlay';\nimport { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\nimport {\n flip,\n HorizontalPlacement,\n Placement,\n toConnectedPosition,\n VerticalPlacement,\n} from '../../common/placement';\n\n@Directive({\n selector: '[spMenuTriggerFor]',\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: spMenuTriggerFor'],\n outputs: ['cdkMenuOpened: spMenuOpened', 'cdkMenuClosed: spMenuClosed'],\n },\n ],\n // CdkMenuTrigger uses Overlay directly\n providers: [{ provide: Overlay, useClass: SapphireOverlay }],\n exportAs: 'spMenuTrigger',\n host: {\n '[class.is-active]': 'isOpen()',\n },\n standalone: false,\n})\nexport class MenuTriggerDirective implements OnInit {\n /**\n * Horizontal alignment of the menu and the trigger.\n */\n @Input('spMenuTriggerAlign') align: HorizontalPlacement = 'start';\n\n /**\n * Vertical direction in which the menu opens, relative to the trigger.\n */\n @Input('spMenuTriggerDirection') direction: VerticalPlacement = 'bottom';\n\n constructor(private menuTrigger: CdkMenuTrigger) {}\n\n ngOnInit(): void {\n this.menuTrigger.menuPosition = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 6,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -6,\n },\n ];\n this.patchMenuTrigger(this.menuTrigger, this.getPlacementValue.bind(this));\n }\n\n close() {\n return this.menuTrigger.close();\n }\n\n open() {\n return this.menuTrigger.open();\n }\n\n toggle() {\n return this.menuTrigger.toggle();\n }\n\n getMenu() {\n return this.menuTrigger.getMenu();\n }\n\n isOpen() {\n return this.menuTrigger.isOpen();\n }\n\n // Preventing default behavior of page being scrolled when you press space when you use it to activate the trigger\n @HostListener('keydown.space')\n private handleSpace() {\n return false;\n }\n\n @HostListener('keydown.escape')\n private handleEscape() {\n this.close();\n }\n\n /**\n * `CdkMenuTrigger` controls overlay creation, and doesn't allow customizing overlay config.\n * We need to patch it like this to make the menu modal, like other popovers. It's unsafe, as it\n * relies on private API, so we have to cover the expected result by tests.\n */\n private patchMenuTrigger(\n menuTrigger: CdkMenuTrigger,\n getPlacement: () => Placement\n ) {\n // @ts-expect-error accessing private method\n const originalGetOverlayConfig = menuTrigger._getOverlayConfig;\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayConfig = function (): OverlayConfig {\n // @ts-expect-error accessing private method\n const overlay: Overlay = this._overlay;\n return {\n // eslint-disable-next-line prefer-rest-params\n ...originalGetOverlayConfig.call(this, arguments),\n hasBackdrop: true,\n backdropClass: 'sapphire-menu-backdrop',\n scrollStrategy: overlay?.scrollStrategies.block(),\n };\n };\n\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositions = function () {\n const placement: Placement = getPlacement() || 'bottom start';\n\n return [\n toConnectedPosition(placement),\n toConnectedPosition(flip(placement)),\n ];\n };\n\n const original_getOverlayPositionStrategy =\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy;\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy =\n function (): FlexibleConnectedPositionStrategy {\n const result = original_getOverlayPositionStrategy.call(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments\n ) as FlexibleConnectedPositionStrategy;\n\n /**\n * Two reasons for viewport margin:\n * - Looks ugly with zero margin\n * - For some reason, with zero margin, menu item text may unnecessarily\n * wrap, if menu trigger is rendered close to the right edge of the\n * viewport.\n * - If menu popover is 'end' aligned, it's for some reason pushed to the right\n * as if it were close to the left edge. Thus avoiding margin in those cases.\n */\n const placement: Placement = getPlacement();\n return result.withViewportMargin(placement.includes('end') ? 0 : 6);\n };\n\n const originalOpen = menuTrigger.open;\n menuTrigger.open = () => {\n // @ts-expect-error accessing private method\n menuTrigger.overlayRef?.updatePositionStrategy(\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy()\n );\n originalOpen.call(menuTrigger);\n };\n }\n\n private getPlacementValue(): Placement {\n return `${this.direction} ${this.align}`;\n }\n}\n","import { Component, ContentChild } from '@angular/core';\nimport { CdkMenu, CdkMenuGroup, CdkMenuItem } from '@angular/cdk/menu';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-menu-section',\n templateUrl: './menu-section.component.html',\n hostDirectives: [CdkMenuGroup, UseComponentStyles],\n host: {\n '[class.sapphire-listbox__section]': 'true',\n },\n standalone: false,\n})\nexport class MenuSectionComponent {\n @ContentChild(CdkMenuItem) firstMenuItem?: CdkMenuItem;\n\n constructor(private menu: CdkMenu) {}\n\n _isFirstSection() {\n return this.menu.items?.first === this.firstMenuItem;\n }\n}\n","<div\n *ngIf=\"!_isFirstSection()\"\n class=\"sapphire-listbox__separator\"\n _spUseComponentStyles\n></div>\n<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n/**\n * Icon container of a listbox option.\n */\n@Component({\n selector: 'sp-menu-item-icon',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-listbox__icon',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class MenuIconComponent {}\n","import { Component } from '@angular/core';\n\n/**\n * Primary text of a listbox option. Useful when the option contains other parts\n * like secondary text or icon.\n */\n@Component({\n selector: 'sp-menu-primary-text',\n template: '<ng-content></ng-content>',\n standalone: false,\n})\nexport class MenuPrimaryTextComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n/**\n * Secondary text of a listbox option.\n */\n@Component({\n selector: 'sp-menu-secondary-text',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-listbox__secondary-text',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class MenuSecondaryTextComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { MenuComponent } from './menu.component';\nimport { MenuItemComponent } from './menu-item.component';\nimport { MenuTriggerDirective } from './menu-trigger.directive';\nimport { MenuSectionComponent } from './menu-section.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { MenuIconComponent } from './menu-icon.component';\nimport { MenuPrimaryTextComponent } from './menu-primary-text.component';\nimport { MenuSecondaryTextComponent } from './menu-secondary-text.component';\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuIconComponent,\n MenuPrimaryTextComponent,\n MenuSecondaryTextComponent,\n MenuSectionComponent,\n MenuTriggerDirective,\n ],\n imports: [CommonModule, CdkMenuModule, UseComponentStyles],\n exports: [\n MenuComponent,\n MenuItemComponent,\n MenuIconComponent,\n MenuPrimaryTextComponent,\n MenuSecondaryTextComponent,\n MenuSectionComponent,\n MenuTriggerDirective,\n ],\n})\nexport class SapphireMenuModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/menu.component';\nexport * from './src/menu.module';\nexport * from './src/menu-item.component';\nexport * from './src/menu-primary-text.component';\nexport * from './src/menu-secondary-text.component';\nexport * from './src/menu-icon.component';\nexport * from './src/menu-section.component';\nexport * from './src/menu-trigger.directive';\n","import {\n FlexibleConnectedPositionStrategy,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n InjectionToken,\n Injector,\n Input,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { flip, Placement, toConnectedPosition } from '../../common/placement';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\n\nexport interface PopoverTrigger {\n toggle(): void;\n open(): void;\n close(): void;\n elementRef: ElementRef<HTMLElement>;\n}\nexport const POPOVER_TRIGGER = new InjectionToken<PopoverTrigger>(\n 'sp-popover-trigger'\n);\n\n// TODO(UC-2728): improve event handling when reusable press utility is added\n\n@Directive({\n selector: '[spPopoverTriggerFor]',\n providers: [\n { provide: POPOVER_TRIGGER, useExisting: PopoverTriggerDirective },\n ],\n host: {\n '[class.is-active]': 'isOpen()',\n '[attr.aria-expanded]': 'isOpen()',\n },\n exportAs: 'spPopoverTrigger',\n standalone: false,\n})\nexport class PopoverTriggerDirective implements PopoverTrigger {\n @Input('spPopoverPlacement')\n public placement: Placement = 'bottom';\n\n @Input('spPopoverTriggerFor')\n templateRef: TemplateRef<unknown> | null = null;\n\n /**\n * Whether the popover should not block interaction with background.\n */\n @Input('spPopoverNonModal')\n @CoerceBoolean\n nonModal: BooleanInput = false;\n\n /**\n * Whether the popover should be opened on press start.\n */\n @Input('spPopoverTriggerOpenOnPressStart')\n @CoerceBoolean\n openOnPressStart: BooleanInput = false;\n\n /**\n * Whether the popover should be closed when the container is scrolled.\n * @default false\n */\n @Input('spPopoverTriggerCloseOnScroll')\n @CoerceBoolean\n closeOnScroll: BooleanInput = false;\n\n /**\n * Can be used to disable toggling popover on clicks. Useful if `spPopoverTrigger`\n * is applied on an element which doesn't support `disabled` property.\n */\n @Input('spPopoverTriggerDisabled')\n @CoerceBoolean\n disabled: BooleanInput = false;\n\n /**\n * If the popover should be pushed around whenever it doesn't fit the viewport\n * with the provided placement.\n */\n @Input('spPopoverDisablePushInsideViewport')\n @CoerceBoolean\n disablePushInsideViewport: BooleanInput = false;\n\n /** Emits when the attached popover is requested to open */\n @Output('spPopoverTriggerOpened')\n readonly opened: EventEmitter<void> = new EventEmitter();\n\n /** Emits when the attached popover is requested to close */\n @Output('spPopoverTriggerClosed')\n readonly closed: EventEmitter<void> = new EventEmitter();\n\n /** Emits when this trigger is destroyed. */\n protected readonly destroyed: Subject<void> = new Subject();\n\n /** A reference to the overlay which manages the triggered menu */\n protected overlayRef: OverlayRef | null = null;\n\n private isBeingPressed = false;\n\n @HostBinding('attr.aria-controls')\n public get getPopoverId() {\n return this.overlayRef?.hostElement.querySelector('[role=\"dialog\"]')?.id;\n }\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private overlay: SapphireOverlay,\n private viewContainerRef: ViewContainerRef,\n public elementRef: ElementRef<HTMLElement>,\n private injector: Injector\n ) {}\n\n ngOnDestroy() {\n this.destroyOverlay();\n\n this.destroyed.next(undefined);\n this.destroyed.complete();\n }\n\n /** Toggle the attached popover. */\n toggle() {\n this.isOpen() ? this.close() : this.open();\n }\n\n /** Open the attached popover. */\n open() {\n if (!this.isOpen() && this.templateRef != null && !this.disabled) {\n this.opened.next();\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef.updatePositionStrategy(\n this.getOverlayPositionStrategy()\n );\n this.overlayRef.detachments().subscribe(() => {\n this.closed.next();\n this.changeDetectorRef.detectChanges();\n });\n }\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(merge(this.closed, this.destroyed)))\n .subscribe((event: MouseEvent) => {\n if (\n // If popover is opened on press start, an outside pointer event\n // is emitted as the mouse is being released, which would immediately\n // close the popover. Probably a bug in @angular/cdk/overlay.\n !(this.openOnPressStart && this.isBeingPressed) &&\n !this.elementRef.nativeElement.contains(event.target as Element)\n ) {\n this.close();\n }\n });\n this.overlayRef.attach(this.getContentPortal());\n this.changeDetectorRef.detectChanges();\n }\n }\n\n /** Close the opened popover. */\n close() {\n if (this.isOpen()) {\n this.overlayRef?.detach();\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the popover is open. */\n isOpen() {\n return !!this.overlayRef?.hasAttached();\n }\n\n @HostListener('mousedown', ['$event'])\n private handleMousedown(event: MouseEvent) {\n this.isBeingPressed = true;\n if (this.openOnPressStart) {\n if (event.currentTarget instanceof HTMLElement) {\n // We need to focus the trigger before opening. Otherwise, the focus restoration logic will\n // be messed up, since the wrong element would have the focus when the popover is mounted.\n event.currentTarget.focus();\n event.preventDefault();\n document.addEventListener(\n 'mouseup',\n () => {\n setTimeout(() => {\n this.isBeingPressed = false;\n });\n },\n { once: true }\n );\n }\n this.toggle();\n }\n }\n\n @HostListener('click', ['$event'])\n private handleClick() {\n if (!this.openOnPressStart) {\n this.toggle();\n }\n }\n\n /**\n * While onFocusout takes care of closing the popover when focus goes out, in the rare cases\n * that there is no more focusable element between the trigger and the popover, the focus can\n * go to the popover on pressing `Tab`. But the popover should be closed when tabbing on the\n * trigger.\n */\n @HostListener('keydown.tab')\n private handleTab() {\n this.close();\n }\n\n /**\n * In some use cases (e.g. in searchable select) popover trigger grabs the focus, right after\n * the popover is opened. That requires popover trigger to detect when focus goes out of it\n * and close the popover.\n * Note: we can't use `blur` event since it won't bubble up, and the focus can be on an element\n * inside the trigger, but not the trigger itself.\n *\n */\n @HostListener('focusout', ['$event'])\n private onFocusout(event: FocusEvent) {\n if (\n event.relatedTarget === null &&\n document.activeElement === event.target\n ) {\n // This happens on tab switch, without focus being actually moved.\n return;\n }\n const focusReceivingElement =\n event.relatedTarget instanceof Element ? event.relatedTarget : null;\n if (\n // focus is going nowhere\n !focusReceivingElement ||\n // focus is going anywhere outside popover and popover trigger\n !(\n this.elementRef?.nativeElement?.contains(focusReceivingElement) ||\n // This is to not have the popover closed as soon as mouse is down on something inside the\n // popover, if the focus is currently on the trigger\n this.overlayRef?.overlayElement?.contains(focusReceivingElement)\n )\n ) {\n this.close();\n }\n }\n\n @HostListener('keydown', ['$event'])\n private handleKeyDown(event: KeyboardEvent) {\n if (\n event.target === this.elementRef.nativeElement &&\n !(this.elementRef.nativeElement instanceof HTMLButtonElement) &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n private destroyOverlay() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n /** Get the configuration object used to create the overlay. */\n private getOverlayConfig() {\n return new OverlayConfig({\n scrollStrategy: this.nonModal\n ? this.closeOnScroll\n ? this.overlay.scrollStrategies.close()\n : this.overlay.scrollStrategies.reposition()\n : this.overlay.scrollStrategies.block(), // to match what we have in react\n\n // Including a transparent backdrop according to the latest decision of making popovers modal.\n hasBackdrop: !this.nonModal,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n private getContentPortal(): TemplatePortal | null {\n if (this.templateRef) {\n return new TemplatePortal(\n this.templateRef,\n this.viewContainerRef,\n null,\n Injector.create({\n providers: [{ provide: POPOVER_TRIGGER, useValue: this }],\n parent: this.injector,\n })\n );\n }\n return null;\n }\n\n private getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n const placement = this.placement || 'bottom';\n return (\n this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n /**\n * Disabling pushing, to fix an issue in FlexibleConnectedPositionStrategy where the\n * overlay's bottom grows past the top of the trigger element (aka origin).\n * I.e., when the overlay is supposed to be placed above the trigger element, it can\n * grow in height and cover the trigger element. This is more of an issue when the trigger\n * element remains interactive after the overlay is opened, such as in searchable select.\n * Note that this is not the case when the overlay is placed above the trigger element.\n * In that case the overlay will not eat up all available viewport height, and is sized in\n * a way that respects the preferred placement above the trigger element.\n * Disabling push is not the ideal solution but prevents the issue.\n * push is disabled only for overlays where the horizontal alignment is anchored to left\n * or right of the trigger element, based on the fair assumption that the connected\n * element is itself within the viewport, and we won't need to push the overlay horizontally\n * to have it within the viewport. It should also be ok not to push vertically, since we\n * allow for vertical flipping if needed.\n **/\n .withPush(!this.disablePushInsideViewport)\n .withPositions([\n toConnectedPosition(placement),\n toConnectedPosition(flip(placement)),\n ])\n .withViewportMargin(placement.includes('end') ? 0 : 6)\n );\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Directive to be added to the title of the popover. It will make sure the\n * right accessibility attributes are set to have assistive technology\n * describe the dialog by this title.\n */\n@Directive({\n selector: '[spPopoverTitle]',\n standalone: false,\n})\nexport class PopoverTitleDirective {\n @HostBinding('id')\n public ID: string = `sp-popover-title-${Math.floor(\n Math.random() * 1000000000\n )}`;\n}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Inject,\n Input,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { POPOVER_TRIGGER, PopoverTrigger } from './popover-trigger.directive';\nimport { PopoverTitleDirective } from './popover-title.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n/**\n * A generic popover component which lets you render arbitrary\n * content in a popover overlay which is linked to a trigger, and is accessible\n * as\n * [dialog](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role).\n */\n@Component({\n selector: 'sp-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n host: {\n '[class.sapphire-popover]': 'true',\n '[class.sapphire-popover--padded]': '!noPadding',\n '[class.sapphire-popover--max-width]': '!noMaxWidth',\n role: 'presentation',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class PopoverComponent implements AfterViewInit {\n @Input()\n @CoerceBoolean\n noPadding: BooleanInput;\n\n @Input()\n @CoerceBoolean\n noMaxWidth: BooleanInput;\n\n @ContentChild(PopoverTitleDirective) title?: PopoverTitleDirective;\n\n @ViewChild('contentWrapper', { read: ElementRef })\n private contentWrapper?: ElementRef;\n\n /**\n * Whether the default behavior of moving focus to the popover content upon open should be disabled\n */\n @Input()\n @CoerceBoolean\n noAutoFocus: BooleanInput = false;\n\n /**\n * Wheter the popover traps the focus inside.\n */\n @Input()\n @CoerceBoolean\n trapFocus: BooleanInput = false;\n\n ID: string = `sp-popover-${Math.floor(Math.random() * 1000000000)}`;\n\n /**\n * Keeps track of if the content is focused\n */\n private contentFocused = false;\n\n constructor(\n @Optional() @Inject(POPOVER_TRIGGER) private trigger?: PopoverTrigger\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.contentFocused && !this.noAutoFocus) {\n this.contentWrapper?.nativeElement.focus();\n }\n }\n\n @HostListener('keydown.Escape', ['$event'])\n private handleEscape(event: KeyboardEvent) {\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.trigger?.close();\n }\n }\n\n _contentFocusChanged(origin: FocusOrigin) {\n this.contentFocused = origin != null;\n\n if (!this.contentFocused) {\n // cdkFocusChange doesn't give access to the native event, so we can't figure out where the\n // focus is going. So we asynchronously check if the focus is outside the trigger and close\n // in that case.\n setTimeout(() => {\n if (\n /**\n * If the focus is going to body, don't close the popover.\n * similar consideration in react-aria's useOverlay:\n * https://github.com/adobe/react-spectrum/blob/2bda4c971dd557be7ecc44614569a8281e6cb6dd/packages/%40react-aria/overlays/src/useOverlay.ts#L128-L130\n *\n * In addition to those scenarios, the focused element may get disabled in the popover,\n * which moves the focus to body.\n *\n * contentFocused might have changed before timeout rad but we only care\n * in case trapFocus is true. If that's the case, we don't want\n * to close the popover if anything moved the focus inside before the\n * timeout ran.\n */\n (!this.trapFocus || !this.contentFocused) &&\n document.activeElement !== document.body &&\n !this.trigger?.elementRef.nativeElement.contains(\n document.activeElement\n )\n ) {\n this.trigger?.close();\n }\n });\n }\n }\n}\n","<!--\n NOTE: cdkTrapFocus is required for cdkTrapFocusAutoCapture to work, which would be similar to\n <FocusScope autoFocus /> in react-aria.\n\n It prevents focus from going out of popover by bringing it back to the first\n focusable element.\n\n We sometimes counter this in (cdkFocusChange) and sometimes don't, based on\n the \"trapFocus\" input.\n -->\n<div class=\"sapphire-popover__content\" role=\"presentation\">\n <!-- NOTE: the role-dialog wrapper is only needed for generic popovers.\n In use cases like Select, role=listbox doesn't need to be wrapped in the role=dialog element,\n and that's how it is in the React impl (role=dialog is rendered only when PopoverTrigger is used)\n We can consider allowing for no dialog wrapper for use cases like Select, but it requires\n some refactoring around the focus management directives.\n -->\n <div\n #contentWrapper\n [id]=\"ID\"\n role=\"dialog\"\n tabindex=\"-1\"\n cdkMonitorSubtreeFocus\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"!noAutoFocus\"\n class=\"dialog\"\n [attr.aria-labelledby]=\"title?.ID\"\n (cdkFocusChange)=\"_contentFocusChanged($event)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostListener, Inject, Optional } from '@angular/core';\nimport { POPOVER_TRIGGER, PopoverTrigger } from './popover-trigger.directive';\n\n/**\n * Directive to be added to buttons inside popover, if they should close the popover\n * when pressed.\n */\n@Directive({\n selector: 'button[spPopoverCloseButton]',\n standalone: false,\n})\nexport class PopoverCloseButtonDirective {\n constructor(\n @Optional() @Inject(POPOVER_TRIGGER) private trigger?: PopoverTrigger\n ) {}\n\n @HostListener('click')\n private handleClick() {\n this.trigger?.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverComponent } from './popover.component';\nimport { PopoverCloseButtonDirective } from './popover-close-button.directive';\nimport { PopoverTitleDirective } from './popover-title.directive';\n\n@NgModule({\n declarations: [\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverCloseButtonDirective,\n PopoverTitleDirective,\n ],\n imports: [CommonModule, A11yModule],\n exports: [\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverCloseButtonDirective,\n PopoverTitleDirective,\n ],\n})\nexport class SapphirePopoverModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/popover.component';\nexport * from './src/popover-title.directive';\nexport * from './src/popover-close-button.directive';\nexport * from './src/popover-trigger.directive';\nexport * from './src/popover.module';\n","import { DomPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef } from '@angular/core';\nimport { FieldComponent } from './field.component';\n\n/**\n * Marks an element as something that should be rendered in field note affix slot.\n * @internal\n */\n@Directive({\n selector: '[spFieldNoteSuffix]',\n standalone: true,\n})\nexport class FieldNoteSuffixDirective {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private field: FieldComponent\n ) {\n this.field._setSuffixPortal(new DomPortal(this.elementRef));\n }\n\n ngOnDestroy() {\n this.field._setSuffixPortal(null);\n }\n}\n","/**\n * NOTE: label is intentionally kept internal for now. We need to add docs and stories\n * if we decide to expose it.\n */\nexport { LabelComponent } from './src/label.component';\n","import { NgModule } from '@angular/core';\nimport { FieldLabelDirective } from './field-label.directive';\nimport { FieldNoteDirective } from './field-note.directive';\nimport { FieldNoteSuffixDirective } from './field-note-suffix.directive';\nimport { FieldErrorDirective } from './field-error.directive';\n\nimport { FieldComponent } from './field.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { LabelComponent } from '../../label/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\n\n@NgModule({\n declarations: [FieldComponent],\n imports: [\n NgIf,\n FieldLabelDirective,\n FieldNoteDirective,\n FieldNoteSuffixDirective,\n FieldErrorDirective,\n PortalModule,\n LabelComponent,\n CommonModule,\n SapphireIconModule,\n ],\n exports: [\n FieldLabelDirective,\n FieldNoteDirective,\n FieldNoteSuffixDirective,\n FieldErrorDirective,\n FieldComponent,\n ],\n})\nexport class SapphireFieldModule {}\n","import {\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n} from '@angular/core';\n\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { FieldComponent } from '../../field/public_api';\n\n@Directive({\n selector: '[spTextFieldInput]',\n host: {\n '[id]': 'id',\n class: 'sapphire-text-field__input',\n '[attr.aria-describedby]': 'field?.error?.id || field?.note?.id',\n '[attr.aria-invalid]': 'field?.hasError(this) ? true : null',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldInputDirective implements DoCheck {\n readonly textarea: boolean;\n\n @Input()\n @AutoId()\n id: string = '';\n\n @Input()\n disabled: BooleanInput = false;\n\n @Input()\n @CoerceBoolean\n required: string = '';\n\n public valueLength: number = 0;\n public autofillStyle?: string;\n\n @HostListener('input', ['$event.target.value'])\n ngDoCheck() {\n this.updateValueLength();\n this.updateAutofillStyle();\n }\n\n @HostListener('blur')\n private onBlur() {\n this.updateAutofillStyle();\n }\n\n private updateValueLength() {\n this.valueLength = this._elementRef.nativeElement.value.length;\n }\n\n @HostBinding('style')\n get style() {\n return this.autofillStyle;\n }\n\n private updateAutofillStyle() {\n const { backgroundColor } = window.getComputedStyle(\n this._elementRef.nativeElement\n );\n this.autofillStyle = `box-shadow: -100px 0 ${backgroundColor}, 100px 0 ${backgroundColor}`;\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement | HTMLTextAreaElement>,\n @Optional() public field: FieldComponent\n ) {\n const element = this._elementRef.nativeElement;\n this.valueLength = element.value.length;\n this.textarea = element.nodeName.toLowerCase() === 'textarea';\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n Input,\n Optional,\n} from '@angular/core';\nimport {\n coerceBooleanProperty,\n coerceNumberProperty,\n NumberInput,\n} from '@angular/cdk/coercion';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { FieldComponent, FieldControl } from '../../field/public_api';\nimport { TextFieldInputDirective } from './text-field-input.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-text-field',\n templateUrl: './text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n host: {\n class: 'sapphire-text-field',\n '[class.sapphire-text-field--multiline]': '_inputDirective.textarea',\n '[class.sapphire-text-field--error]': 'field?.hasError(this)',\n '[class.sapphire-text-field--md]': 'field?.size === \"md\"',\n },\n providers: [\n {\n provide: FieldControl,\n useExisting: forwardRef(() => TextFieldComponent),\n },\n ],\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class TextFieldComponent implements FieldControl {\n @Input('characterCounterMax')\n characterCounterMax?: NumberInput;\n\n @ContentChild(TextFieldInputDirective, {\n read: ElementRef,\n })\n inputElement?: ElementRef<HTMLInputElement | HTMLTextAreaElement>;\n\n @ContentChild(TextFieldInputDirective)\n _inputDirective?: TextFieldInputDirective;\n\n constructor(@Optional() public field?: FieldComponent) {}\n\n isCharacterCounterExceeded() {\n return (\n (this._inputDirective?.valueLength ?? 0) >\n coerceNumberProperty(this.characterCounterMax)\n );\n }\n\n isDisabled(): boolean {\n return coerceBooleanProperty(this._inputDirective?.disabled);\n }\n\n getId(): string | undefined {\n return this._inputDirective?.id;\n }\n\n readonly hasDefaultWidth = true;\n}\n","<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n","import { Directive, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'sp-text-field-prefix',\n host: {\n class: 'sapphire-text-field__prefix',\n '[class.sapphire-text-field__prefix--icon]': '!isTextNode()',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldPrefixDirective {\n isTextNode() {\n return (\n this._elementRef?.nativeElement.firstChild?.nodeType === Node.TEXT_NODE\n );\n }\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'sp-text-field-postfix',\n host: {\n class: 'sapphire-text-field__postfix',\n '[class.sapphire-text-field__postfix--icon]': '!isTextNode()',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldPostfixDirective {\n isTextNode() {\n return (\n this._elementRef?.nativeElement.firstChild?.nodeType === Node.TEXT_NODE\n );\n }\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n}\n","import {\n BooleanInput,\n NumberInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: 'textarea[spTextareaAutosize]',\n host: {\n '[rows]': 'enabled && minRows && minRows < 2 ? 1 : undefined',\n },\n standalone: false,\n})\nexport class TextFieldTextareaAutosizeDirective {\n private _minRows: number | undefined;\n private _maxRows: number | undefined = Infinity;\n private _enabled: boolean = true;\n\n @Input('spTextareaAutosizeMinRows')\n get minRows(): number | undefined {\n return this._minRows;\n }\n set minRows(value: NumberInput) {\n this._minRows = coerceNumberProperty(value);\n this.updateHeight();\n }\n\n @Input('spTextareaAutosizeMaxRows')\n get maxRows(): number | undefined {\n return this._maxRows;\n }\n set maxRows(value: NumberInput) {\n this._maxRows = coerceNumberProperty(value);\n this.updateHeight();\n }\n\n @Input('spTextareaAutosizeEnabled')\n get enabled(): boolean {\n return this._enabled;\n }\n set enabled(value: BooleanInput) {\n this._enabled = coerceBooleanProperty(value);\n this.updateHeight();\n }\n\n constructor(private _elementRef: ElementRef<HTMLTextAreaElement>) {}\n\n ngDoCheck(): void {\n this.updateHeight();\n }\n\n private updateHeight() {\n if (this.enabled) {\n const textareaElement = this._elementRef.nativeElement;\n const { lineHeight, paddingTop, paddingBottom } =\n window.getComputedStyle(textareaElement);\n const getTotalHeight = (rowCount: number) => {\n return (\n parseInt(lineHeight, 10) * rowCount +\n parseInt(paddingTop, 10) +\n parseInt(paddingBottom, 10)\n );\n };\n\n const minHeight = this._minRows ? getTotalHeight(this._minRows) : 1;\n const maxHeight = this._maxRows\n ? getTotalHeight(this._maxRows)\n : Infinity;\n textareaElement.style.height = 'auto';\n const clampedHeight = Math.max(\n Math.min(textareaElement.scrollHeight, maxHeight),\n minHeight\n );\n textareaElement.style.height = `${clampedHeight}px`;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TextFieldComponent } from './text-field.component';\nimport { TextFieldInputDirective } from './text-field-input.directive';\nimport { TextFieldPrefixDirective } from './text-field-prefix.directive';\nimport { TextFieldPostfixDirective } from './text-field-postfix.directive';\nimport { TextFieldTextareaAutosizeDirective } from './text-field-textarea-autosize.directive';\nimport { SapphireFieldModule } from '../../field/src/field.module';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { LabelComponent } from '../../label/public_api';\n\n@NgModule({\n declarations: [\n TextFieldComponent,\n TextFieldInputDirective,\n TextFieldPrefixDirective,\n TextFieldPostfixDirective,\n TextFieldTextareaAutosizeDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n PortalModule,\n LabelComponent,\n SapphireFieldModule,\n ],\n exports: [\n TextFieldComponent,\n TextFieldInputDirective,\n SapphireFieldModule,\n TextFieldPrefixDirective,\n TextFieldPostfixDirective,\n TextFieldTextareaAutosizeDirective,\n ],\n})\nexport class SapphireTextFieldModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport { TextFieldComponent } from './src/text-field.component';\nexport { TextFieldInputDirective } from './src/text-field-input.directive';\nexport { TextFieldPrefixDirective } from './src/text-field-prefix.directive';\nexport { TextFieldPostfixDirective } from './src/text-field-postfix.directive';\nexport { TextFieldTextareaAutosizeDirective } from './src/text-field-textarea-autosize.directive';\nexport { SapphireTextFieldModule } from './src/text-field.module';\n","import { Component, ViewChild } from '@angular/core';\nimport { CdkPortal } from '@angular/cdk/portal';\n\n/**\n * Icon part of the listbox option layout, rendered on the left side.\n */\n@Component({\n selector: 'sp-option-icon',\n template: '<ng-template cdkPortal><ng-content></ng-content></ng-template>',\n standalone: false,\n})\nexport class OptionIconDirective {\n @ViewChild(CdkPortal)\n contentPortal?: CdkPortal;\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { CdkPortal } from '@angular/cdk/portal';\n\n/**\n * Secondary text of a listbox option.\n */\n@Component({\n selector: 'sp-option-secondary-text',\n template: '<ng-template cdkPortal><ng-content></ng-content></ng-template>',\n standalone: false,\n})\nexport class OptionSecondaryTextDirective {\n @ViewChild(CdkPortal)\n contentPortal?: CdkPortal;\n}\n","import { DomPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\n\n/**\n * Primary text of a listbox option. Useful when the option contains other parts\n * like secondary text or icon.\n */\n@Component({\n selector: 'sp-option-primary-text',\n template: '<span #content><ng-content></ng-content></span>',\n standalone: false,\n})\nexport class OptionPrimaryTextDirective implements AfterViewInit {\n contentPortal?: DomPortal<HTMLElement>;\n\n @ViewChild('content', { read: ElementRef })\n private content?: ElementRef<HTMLElement>;\n\n ngAfterViewInit() {\n if (this.content?.nativeElement) {\n this.contentPortal = new DomPortal(this.content?.nativeElement);\n }\n }\n}\n","/**\n * Base class for valid listbox children (option and section), to be able to\n * query all with @ContentChildren.\n */\nexport abstract class ListboxChild {}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { OptionPrimaryTextDirective } from './option-primary-text.directive';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { OptionSecondaryTextDirective } from './option-secondary-text.directive';\nimport { OptionIconDirective } from './option-icon.directive';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ListboxChild } from './listbox-child';\n\n@Component({\n template: `<span #content><ng-content></ng-content></span>`,\n providers: [\n { provide: ListboxChild, useExisting: forwardRef(() => OptionComponent) },\n ],\n selector: 'sp-option',\n standalone: false,\n})\nexport class OptionComponent extends ListboxChild implements AfterViewInit {\n @Input()\n value: string = '';\n\n @ContentChild(OptionPrimaryTextDirective)\n private _primaryText?: OptionPrimaryTextDirective;\n private domPortal?: DomPortal<HTMLElement>;\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n get primaryText() {\n return this._primaryText?.contentPortal || this.domPortal;\n }\n\n @ViewChild('content', { read: ElementRef })\n content?: ElementRef<HTMLElement>;\n\n @ContentChild(OptionSecondaryTextDirective)\n secondaryText?: OptionSecondaryTextDirective;\n\n @ContentChild(OptionIconDirective)\n icon?: OptionIconDirective;\n\n get label(): string {\n return (\n (\n this._primaryText?.contentPortal?.element || this.content?.nativeElement\n )?.textContent?.trim() || ''\n );\n }\n\n ngAfterViewInit(): void {\n if (this.content?.nativeElement) {\n this.domPortal = new DomPortal(this.content?.nativeElement);\n }\n }\n}\n","import {\n ContentChildren,\n Directive,\n forwardRef,\n Input,\n QueryList,\n} from '@angular/core';\nimport { OptionComponent } from './option.component';\nimport { ListboxChild } from './listbox-child';\n\n/**\n * Used to define a group of Options as a section. It intentionally only\n * queries OptionComponent, in `children`, to limit the section/option nesting\n * to one level.\n */\n@Directive({\n selector: 'sp-section',\n providers: [\n {\n provide: ListboxChild,\n useExisting: forwardRef(() => SectionDirective),\n },\n ],\n standalone: false,\n})\nexport class SectionDirective {\n @ContentChildren(OptionComponent)\n children: Iterable<OptionComponent> = new QueryList<OptionComponent>();\n\n @Input('aria-label')\n ariaLabel?: string;\n}\n\nexport function section(\n options: Iterable<OptionComponent>,\n ariaLabel?: string\n) {\n const section = new SectionDirective();\n section.children = options;\n section.ariaLabel = ariaLabel;\n return section;\n}\n","import { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { Directive, ElementRef } from '@angular/core';\n\n/**\n A workaround for an issue in cdkListbox, where the active item is not scrolled\n into view when it's not physically focused (i.e. useActiveDescendant is true).\n * TODO: remove when https://github.com/angular/components/issues/28989 is fixed\n */\n@Directive({\n selector: '[cdkOption]',\n standalone: true,\n})\nexport class CdkOptionScrollIssuePatch {\n private appliedScroll = false;\n\n constructor(\n private cdkListbox: CdkListbox,\n private cdkOption: CdkOption,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngAfterViewChecked(): void {\n if (\n this.cdkListbox.useActiveDescendant &&\n this.cdkOption.isActive() &&\n !this.appliedScroll\n ) {\n this.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n this.appliedScroll = true;\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * JS-based :active state for non-button clickable elements.\n * TODO(UC-2728): we can evolve this to something like usePress (spPressable?), to bring\n * the same improvements. e.g. disabling selection on press, or normalizing\n * cross-browser inconsistencies, allowing for handling press start and end, optimizing for touch,\n * etc.\n */\n@Directive({\n standalone: true,\n selector: '[spPressed], [spPressedClass]',\n exportAs: 'spPressed',\n})\nexport class PressedDirective {\n /**\n * CSS class to be applied when the element is being pressed.\n */\n @Input('spPressedClass')\n pressedClass?: string;\n\n /**\n * Whether the element is currently in being pressed (:active) state\n */\n _pressed = false;\n get pressed() {\n return this._pressed;\n }\n set pressed(pressed: boolean) {\n this._pressed = pressed;\n if (this.pressedClass) {\n this.elementRef.nativeElement.classList.toggle(\n this.pressedClass,\n this._pressed\n );\n }\n }\n\n @HostListener('mousedown', ['$event'])\n _onPressStart() {\n this.pressed = true;\n this.document.addEventListener(\n 'mouseup',\n () => {\n this.pressed = false;\n },\n { once: true, capture: true }\n );\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n}\n","import { InputModalityDetector } from '@angular/cdk/a11y';\nimport { Directive, HostBinding, HostListener, Input } from '@angular/core';\n\n/**\n * JS-based :focus-visible state. Based on the convention in Sapphire styles, it:\n * - adds js-focus class to the host element\n * - adds is-focus class when `spFocused` is true, and focus should be visible.\n * is-focus class can be customized via `spFocusedClass` input\n\n */\n@Directive({\n standalone: true,\n selector: '[spFocused]',\n exportAs: 'spFocused',\n})\nexport class FocusedDirective {\n /**\n * CSS class to be applied when the element is focused, and focus should be visible.\n */\n @Input('spFocusedClass')\n focusedClass: string = 'is-focus';\n\n /**\n * Whether the element is (virtually) focused. If not provided, the actual focus\n * state of the host element will be used to determine the focus state.\n */\n @Input('spFocused')\n focusedInput?: boolean;\n\n private hostFocused: boolean = false;\n\n @HostBinding('class')\n private get className() {\n return this.isFocused() && this.isFocusVisible()\n ? `${this.focusedClass} js-focus`\n : 'js-focus';\n }\n\n @HostListener('focusin')\n private onFocusIn() {\n this.hostFocused = true;\n }\n @HostListener('focusout')\n private onFocusOut() {\n this.hostFocused = false;\n }\n\n isFocused() {\n return this.focusedInput ?? this.hostFocused;\n }\n\n isFocusVisible() {\n return (\n this.isFocused() &&\n this.inputModalityDetector.mostRecentModality === 'keyboard'\n );\n }\n\n constructor(private inputModalityDetector: InputModalityDetector) {}\n}\n","import { Component, Input } from '@angular/core';\nimport { PressedDirective } from '../../common/pressed.directive';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { OptionComponent } from './option.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconCheckmark } from '@danske/sapphire-icons/js';\n/**\n * Used internally in listbox component to render items. The primary reason\n * this is extracted into a component is to be reused outside and inside\n * sections. Using a ng-template inside listbox component, as an alternative\n * approach, leads to out of sync queries of cdkOptions, which leads to bugs.\n */\n@Component({\n selector: 'li[sp-listbox-item]',\n templateUrl: 'listbox-item.component.html',\n host: {\n class: 'sapphire-listbox__item',\n '[class.sapphire-listbox__item--selected]': 'selected',\n '[class.is-disabled]': 'option.disabled',\n },\n hostDirectives: [\n UseComponentStyles,\n PressedDirective,\n {\n directive: FocusedDirective,\n inputs: ['spFocused: focused'],\n },\n ],\n standalone: false,\n})\nexport class ListboxItemComponent {\n @Input()\n selected?: boolean;\n\n @Input()\n focused?: boolean;\n\n @Input()\n option!: OptionComponent;\n\n constructor(pressedDirective: PressedDirective, iconRegistry: IconRegistry) {\n pressedDirective.pressedClass = 'is-active';\n iconRegistry.registerIcon(iconCheckmark);\n }\n}\n","<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__icon\" _spUseComponentStyles *ngIf=\"selected\">\n <sp-icon name=\"checkmark\" color=\"informative\"></sp-icon>\n </div>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-container *ngIf=\"option.primaryText\">\n <ng-container *cdkPortalOutlet=\"option.primaryText\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-listbox__secondary-text\"\n _spUseComponentStyles\n *ngIf=\"option.secondaryText?.contentPortal as secondaryText\"\n >\n <ng-container *cdkPortalOutlet=\"secondaryText\"></ng-container>\n </div>\n </div>\n <div\n class=\"sapphire-listbox__icon\"\n _spUseComponentStyles\n *ngIf=\"option.icon?.contentPortal as icon\"\n >\n <ng-container *cdkPortalOutlet=\"icon\"></ng-container>\n </div>\n</div>\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DoCheck,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {\n CdkListbox,\n CdkOption,\n ListboxValueChangeEvent,\n} from '@angular/cdk/listbox';\nimport { OptionComponent } from './option.component';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ListboxChild } from './listbox-child';\nimport { SectionDirective } from './section.directive';\nimport { ListboxInputDirective } from './listbox-input.directive';\nimport { ViewEncapsulationProvider } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n@Component({\n selector: 'sp-listbox',\n templateUrl: './listbox.component.html',\n styleUrls: ['./listbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ListboxComponent),\n multi: true,\n },\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'sm' },\n },\n ViewEncapsulationProvider,\n ],\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n exportAs: 'spListbox',\n standalone: false,\n})\nexport class ListboxComponent\n implements ControlValueAccessor, AfterViewInit, AfterViewChecked, DoCheck\n{\n /**\n * The list of selected values (`value`s of selected sp-options).\n * It's always an array, regardless of {@property multiple} being true or not.\n */\n @Input()\n selectedValues: readonly string[] = [];\n\n /**\n * Emitted when the selection is changed. Emits selected values.\n */\n @Output()\n selectedValuesChange = new EventEmitter<readonly string[]>();\n\n /**\n * Allows for passing the list of listbox items instead of having them collected\n * from children. Useful when a component wants to render a listbox within its view\n * but wants to collect listbox items from its own content.\n */\n @Input('spListboxItems')\n _itemsInput?: Iterable<ListboxChild>;\n\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput;\n\n /**\n * Whether multiple selection is allowed\n */\n @Input()\n @CoerceBoolean\n multiple?: BooleanInput;\n\n /**\n * If true, pressing ArrowUp/ArrowDown on the first/last item will not move\n * focus to the last/first item.\n */\n @Input()\n @CoerceBoolean\n navigationWrapDisabled: BooleanInput;\n\n @Input('aria-label')\n ariaLabel!: string;\n\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n\n @Input()\n id?: string;\n\n /**\n * Emits whenever an option is selected, regardless of if it's already selected.\n */\n @Output()\n selected = new EventEmitter();\n\n @ContentChildren(ListboxChild)\n private itemsInContent: QueryList<ListboxChild> =\n new QueryList<ListboxChild>();\n\n private onTouched: () => object = () => ({});\n private onChange = () => {};\n\n /**\n * List of spOption or spSection components either collected from the content\n * or passed as input.\n */\n get options() {\n return this._itemsInput || this.itemsInContent;\n }\n\n @ViewChild(CdkListbox)\n private cdkListbox?: CdkListbox;\n\n @ViewChildren(CdkOption)\n private cdkOptions?: QueryList<CdkOption>;\n\n private connectedInput?: ListboxInputDirective;\n\n /**\n * CdkListbox throws if there is a selected value that doesn't match any of the cdkOptions\n * It's probably an artificial check, and maybe they could remove it, but that's how it is now,\n * and selected value can be none of the currently visible options if options are searchable.\n * Since the check seems unnecessary, we do the filtering right in the listbox component instead\n * of in searchable select.\n * @private\n */\n _validSelectedValues: readonly string[] = [];\n /**\n * Our expected behavior (matching the React impl) is to navigate to the last option, when\n * ArrowDown is pressed and no option is currently focused, but to not have focus wrapping.\n * disabling focus wrapping on cdkListbox is implemented differently, and doesn't allow for\n * that, so we enable it regardless of `navigationWrapDisabled` input, if there is no active\n * option.\n */\n _forceEnableNavigationWrap = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n /**\n * Connects the listbox to an input, for combobox-like use cases.\n * Returns a keydown event handler to be used on the connected input.\n * Connecting an input to the listbox also causes listbox to use virtual focus\n * since the actual focus will be in the input.\n * @param inputDirective\n *\n * @internal\n */\n connectToInput(inputDirective: ListboxInputDirective) {\n this.connectedInput = inputDirective;\n // need to run change detection because _connectedInput is used to set the value of\n // cdkListboxUseActiveDescendant, and it's set after change detection for this component is done\n // and when ListboxInputDirective input is set\n this.changeDetectorRef.detectChanges();\n return {\n onKeydown: (event: KeyboardEvent) => {\n if (\n // Only forwarding certain keystrokes, not to trigger typeahead while input is focused\n [\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Enter',\n ].includes(event.key)\n ) {\n // @ts-expect-error(access): _handleKeydown is protected\n this.cdkListbox?._handleKeydown?.(event);\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n this.setActiveOption(null);\n }\n },\n // cdkListbox keeps track of focus state, and sets the active item to the selected item if\n // the listbox is not focused when selection changes. That causes issues especially in\n // multi-select, where the dropdown keeps open when selection changes.\n onFocus: () => {\n if (this.cdkListbox) {\n // @ts-expect-error(access): _hasFocus is private\n this.cdkListbox._hasFocus = true;\n }\n },\n onBlur: () => {\n if (this.cdkListbox) {\n // @ts-expect-error(access): _hasFocus is private\n this.cdkListbox._hasFocus = false;\n }\n },\n };\n }\n\n isSelected(option: OptionComponent) {\n return this.selectedValues?.includes(option.value);\n }\n\n ngAfterViewInit(): void {\n this.cdkListbox?.registerOnChange(this.onChange);\n this.cdkListbox?.registerOnTouched(this.onTouched);\n }\n\n ngDoCheck() {\n /**\n * Properties set here are used in the template, but depend on the state of child directives,\n * which can change after view is checked on this component. By setting them in ngDoCheck\n * instead of directly referencing them in the template, we avoid NG0100: ExpressionChanged...\n * errors\n */\n this._forceEnableNavigationWrap = !this.getActiveOption();\n }\n\n ngAfterViewChecked() {\n const validValues =\n this.selectedValues?.filter((value) =>\n this.cdkOptions?.find((cdkOption) => cdkOption.value === value)\n ) || [];\n if (\n validValues.length !== this._validSelectedValues.length ||\n this._validSelectedValues.some(\n (value, index) => value !== validValues[index]\n )\n ) {\n this._validSelectedValues = validValues;\n this.changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Sets active (focused) option. Passing null removes active state if any.\n * @param value option value\n */\n setActiveOption(value: string | null) {\n const option =\n value && this.cdkOptions?.find((option) => option.value === value);\n if (option || option === null) {\n // @ts-expect-error: null is actually accepted and resets active item, but the type doesn't allow it by mistake\n this.cdkListbox?._setActiveOption(option);\n }\n }\n\n /**\n * @returns currently active (focused) option.\n */\n getActiveOption(): string | null {\n // There is currently no public method on CdkListbox to get the active item or select it directly.\n return (\n (this.cdkOptions?.find((option) =>\n Boolean(this.cdkListbox?.isActive(option))\n )?.value as string) ?? null\n );\n }\n\n //// ControlValueAccessor ////\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n writeValue(obj: any): void {\n this.selectedValues = obj;\n }\n ///////////////////////////////\n\n /**\n * @private\n */\n _handleSelectionChange({ value }: ListboxValueChangeEvent<string>) {\n this.selectedValues = value;\n this.selectedValuesChange.emit(value);\n }\n\n /**\n * @private\n */\n _isOption(item: ListboxChild): item is OptionComponent {\n return item instanceof OptionComponent;\n }\n\n /**\n * @private\n */\n _isSection(item: ListboxChild): item is SectionDirective {\n return item instanceof SectionDirective;\n }\n\n /**\n * @private\n */\n _shouldUseVirtualFocus() {\n return Boolean(this.connectedInput);\n }\n\n /**\n * @private\n */\n _isConnectedToInput() {\n return Boolean(this.connectedInput);\n }\n}\n","<ul\n class=\"sapphire-listbox sapphire-listbox--selection\"\n cdkListbox\n [id]=\"id || ''\"\n [cdkListboxCompareWith]=\"\"\n [cdkListboxMultiple]=\"!!multiple\"\n [cdkListboxDisabled]=\"!!disabled\"\n [cdkListboxNavigationWrapDisabled]=\"\n navigationWrapDisabled && !_forceEnableNavigationWrap\n \"\n [cdkListboxValue]=\"_validSelectedValues\"\n [cdkListboxUseActiveDescendant]=\"_shouldUseVirtualFocus()\"\n (cdkListboxValueChange)=\"_handleSelectionChange($event)\"\n (keydown.enter)=\"selected.emit($event)\"\n (keydown.space)=\"selected.emit($event)\"\n (mousedown)=\"_isConnectedToInput() && $event.preventDefault()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n>\n <ng-container *ngFor=\"let item of options; let last = last\">\n <ng-container *ngIf=\"_isSection(item)\">\n <li role=\"presentation\">\n <ul\n role=\"group\"\n class=\"sapphire-listbox__section\"\n [attr.aria-label]=\"item.ariaLabel\"\n >\n <li\n *ngFor=\"let option of item.children\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"!!option.disabled\"\n [cdkOptionTypeaheadLabel]=\"option.label\"\n #cdkOption=\"cdkOption\"\n sp-listbox-item\n [option]=\"option\"\n [selected]=\"isSelected(option)\"\n [focused]=\"cdkOption.isActive()\"\n (click)=\"!(disabled || option.disabled) && selected.emit($event)\"\n ></li>\n </ul>\n </li>\n <li\n *ngIf=\"!last\"\n role=\"separator\"\n class=\"sapphire-listbox__separator\"\n ></li>\n </ng-container>\n <li\n *ngIf=\"_isOption(item)\"\n [cdkOption]=\"item.value\"\n [cdkOptionDisabled]=\"!!item.disabled\"\n [cdkOptionTypeaheadLabel]=\"item.label\"\n #cdkOption=\"cdkOption\"\n sp-listbox-item\n [option]=\"item\"\n [selected]=\"isSelected(item)\"\n [focused]=\"cdkOption.isActive()\"\n (click)=\"!(disabled || item.disabled) && selected.emit($event)\"\n ></li>\n </ng-container>\n</ul>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { ListboxComponent } from './listbox.component';\n\n/**\n * A low-level directive to connect a listbox to an input, for use cases like search.\n * It adds event handlers to enable navigation via arrow keys. It also makes\n * the listbox use virtual focus, since the actual focus will be on the connected input.\n */\n@Directive({\n selector: 'input[spListboxInput]',\n standalone: true,\n})\nexport class ListboxInputDirective {\n @Input('spListboxInput')\n set listbox(listbox: ListboxComponent | undefined) {\n this.handlers = listbox?.connectToInput(this);\n }\n\n private handlers?: {\n onKeydown: (event: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n };\n\n @HostListener('keydown', ['$event'])\n private onKeyDown(event: KeyboardEvent) {\n this.handlers?.onKeydown?.(event);\n }\n\n @HostListener('focus')\n private onFocus() {\n this.handlers?.onFocus?.();\n }\n @HostListener('blur')\n private onBlur() {\n this.handlers?.onBlur?.();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { OptionIconDirective } from './option-icon.directive';\nimport { OptionSecondaryTextDirective } from './option-secondary-text.directive';\nimport { OptionPrimaryTextDirective } from './option-primary-text.directive';\nimport { ListboxComponent } from './listbox.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OptionComponent } from './option.component';\nimport { SectionDirective } from './section.directive';\nimport { PressedDirective } from '../../common/pressed.directive';\nimport { ListboxInputDirective } from './listbox-input.directive';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { ListboxItemComponent } from './listbox-item.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CdkOptionScrollIssuePatch } from './cdk-option-scroll-issue-patch';\n\n@NgModule({\n declarations: [\n SectionDirective,\n OptionComponent,\n OptionIconDirective,\n OptionSecondaryTextDirective,\n OptionPrimaryTextDirective,\n ListboxComponent,\n ListboxItemComponent,\n ],\n imports: [\n CommonModule,\n SapphireIconModule,\n CdkListboxModule,\n PortalModule,\n PressedDirective,\n FocusedDirective,\n UseComponentStyles,\n ListboxInputDirective,\n CdkOptionScrollIssuePatch,\n ],\n exports: [\n ListboxComponent,\n OptionComponent,\n OptionIconDirective,\n OptionSecondaryTextDirective,\n OptionPrimaryTextDirective,\n SectionDirective,\n ListboxInputDirective,\n ],\n})\nexport class SapphireListboxModule {}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * A common base class to handle value for single and multiple selection.\n * {@link MultiSelectDirectiveBase} and {@link SingleSelectDirectiveBase} implement and\n * provide this interface. Note that the main purpose for such design is **not**\n * to abstract out selection behavior. But to have accurate `value` and `valueChange`\n * type for single and multiple selection mode. It would be possible to fully abstract out\n * the selection behavior, and have Select component not know anything about selection being\n * multiple or not, but it doesn't seem such a clear abstraction, and also not worth the additional\n * complexity.\n *\n * At least one directive has to be defined for each select component to provide SelectValueHolder,\n * extending either {@link MultiSelectDirectiveBase} or {@link SingleSelectDirectiveBase}\n */\nexport abstract class SelectValueHolder<T = unknown> {\n abstract value: T;\n abstract valueChange: EventEmitter<T>;\n\n abstract setFromListboxValue(value: readonly string[]): void;\n\n abstract getListboxValue(): readonly string[];\n}\n\n/**\n * Enables multiple selection. When present, `value` will be of type `string[]`, and `valueChange`\n * will emit `string[]`.\n *\n * Each select component can define a directive with the right selector (usually based on\n * the presence of `multiple` attribute) to enable multiple selection.\n */\n@Directive() // This is needed for decorators like Input to work\nexport class MultiSelectDirectiveBase extends SelectValueHolder<string[]> {\n @Input()\n value: string[] = [];\n\n @Output()\n valueChange = new EventEmitter<string[]>();\n\n setFromListboxValue(value: string[]): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n getListboxValue(): readonly string[] {\n return this.value || [];\n }\n}\n\n/**\n * Enables single selection, the default behavior of select.\n * When present, `value` will be of type `string`, and `valueChange` will emit `string`.\n *\n * Each select component has to define a directive with the right selector (usually based on\n * the absence of `multiple` attribute) to enable single selection.\n */\n@Directive() // This is needed for decorators like Input to work\nexport class SingleSelectDirectiveBase extends SelectValueHolder<string> {\n @Input()\n get value(): string {\n return this._value;\n }\n set value(value: string) {\n this._value = value;\n this.values = value ? [value] : [];\n }\n private _value: string = '';\n\n private values: string[] = [];\n\n @Output()\n valueChange = new EventEmitter<string>();\n\n setFromListboxValue(value: string[]): void {\n this.value = value[0];\n this.valueChange.emit(this._value);\n }\n\n getListboxValue(): readonly string[] {\n return this.values;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Used to customize what is shown in select's trigger when selection is non-empty.\n * By default, the (primary) text of the selected option is shown in single selection mode,\n * and a short text indicating the number of selected items is shown in multiple selection mode,\n * if more than 1 item is selected.\n */\n@Directive({\n selector: 'sp-selection-text',\n standalone: false,\n})\nexport class SelectionTextDirective {}\n","import { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ListboxChild,\n ListboxComponent,\n OptionComponent,\n} from '../../../listbox/public_api';\nimport { ControlValueAccessor } from '@angular/forms';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport {\n FocusOrigin,\n ListKeyManager,\n ListKeyManagerOption,\n} from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport {\n MultiSelectDirectiveBase,\n SelectValueHolder,\n} from './select-value-holder';\nimport { SelectionTextDirective } from '../select/selection-text.directive';\n\n@Directive() // This is needed for decorators like Input to work\nexport abstract class SelectComponentBase\n implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n /**\n * Whether the component is disabled.\n */\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** A unique id for the select. If none is supplied, it will be auto-generated. */\n @Input()\n @AutoId()\n id = '';\n\n /** The name of the input, used when submitting an HTML form. */\n @Input()\n name?: string;\n\n /** The autocomplete behavior */\n @Input()\n autocomplete?: string;\n\n /**\n * Placeholder to be shown if no value has been selected.\n */\n @Input() placeholder?: string;\n\n /**\n * Emitted when the popover is opened\n */\n @Output()\n readonly opened: EventEmitter<void> = new EventEmitter();\n\n /**\n * Emitted when the popover is closed\n */\n @Output()\n readonly closed: EventEmitter<void> = new EventEmitter();\n\n @ContentChildren(OptionComponent, { descendants: true })\n public options: QueryList<OptionComponent> = new QueryList<OptionComponent>();\n\n @ContentChildren(ListboxChild)\n public listboxChildren: QueryList<ListboxChild> =\n new QueryList<ListboxChild>();\n\n /**\n * Manages keyboard events for options in the panel.\n */\n protected keyManager:\n | ListKeyManager<{ value: string } & ListKeyManagerOption>\n | undefined;\n\n /**\n * Emits whenever the dropdown is closed as a result of an option (already\n * selected or not) being selected.\n */\n @Output()\n selected = new EventEmitter();\n\n @Input('aria-label')\n ariaLabel: string | null = null;\n @Input('aria-labelledby')\n ariaLabelledby?: string | null = null;\n\n @ContentChild(SelectionTextDirective)\n selectionText?: SelectionTextDirective;\n\n /**\n * Used to work around ExpressionChangedAfterItHasBeenCheckedError error thrown from HiddenSelect,\n * when the select component is rendered from a template (e.g. with *ngIf). It's set to true\n * asynchronously after content is initialized, to delay rendering of things that depend on\n * options. It's not clear why the issue happens, and it only happens when select is used with\n * *ngIf, or generally in a template.\n */\n _initialized = false;\n\n set listboxValue(value: readonly string[]) {\n this.valueHolder.setFromListboxValue(value);\n this.controlValueAccessorChangeFn(this.valueHolder.value);\n }\n get listboxValue() {\n return this.valueHolder.getListboxValue();\n }\n get selectedOptions() {\n return this.options?.filter((option) =>\n this.listboxValue.includes(option.value)\n );\n }\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor(protected valueHolder: SelectValueHolder) {}\n\n protected abstract triggerRef: PopoverTriggerDirective | undefined;\n protected abstract triggerElementRef: ElementRef<HTMLElement> | undefined;\n protected abstract listbox: ListboxComponent | undefined;\n public abstract focus(focusOrigin: FocusOrigin): void;\n public abstract isFocused(): boolean;\n\n handleKeyDown($event: KeyboardEvent) {\n if ($event.target !== this.triggerElementRef?.nativeElement) {\n return;\n }\n switch ($event.key) {\n case 'ArrowDown':\n this.triggerRef?.open();\n break;\n case 'ArrowUp':\n this.triggerRef?.open();\n // we need to delay it a little, since the listbox will autofocus\n // the first item.\n setTimeout(() => {\n if (this.options?.last && this.listboxValue.length === 0) {\n this.listbox?.setActiveOption(this.options?.last.value);\n }\n });\n break;\n case 'ArrowRight':\n case 'ArrowLeft':\n if (this.multiple) {\n this.triggerRef?.open();\n } else {\n const option = this.getNextEnabledOptionValue(\n $event.key === 'ArrowLeft' ? 'left' : 'right'\n );\n if (option) {\n this.listboxValue = [option];\n }\n }\n break;\n default:\n this.keyManager?.onKeydown($event);\n }\n }\n\n getSelectionText(): string {\n const selectedOptions = this.selectedOptions;\n if (selectedOptions.length === 0) {\n return '';\n }\n if (selectedOptions.length === 1) {\n return selectedOptions[0]?.label;\n }\n return `${\n selectedOptions.length === this.options.length\n ? 'All'\n : selectedOptions.length\n } selected`;\n }\n\n /**\n * Whether multiple selection is allowed.\n */\n get multiple() {\n return this.valueHolder instanceof MultiSelectDirectiveBase;\n }\n\n ngAfterContentInit(): void {\n this.initKeyManager();\n\n this.options.changes.subscribe(() => {\n this.initKeyManager();\n });\n Promise.resolve().then(() => {\n this._initialized = true;\n });\n }\n\n ngAfterViewInit() {\n /**\n * This is to avoid an NG0100 ExpressionChangedAfter... error when there is an initial value\n * The issue is probably due to the fact that options are defined withing the **content**\n * (sp-option elements), so the listbox value can change after the view of select is checked,\n * if there is a default value. And that leads to the error, since we have bindings in the\n * template, such as `getSelectionText()`, that depend on the listbox value.\n */\n if (this.listboxValue.length > 0) {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.keyManager?.destroy();\n }\n\n /**\n * Called when an item in the listbox is selected.\n */\n _handleSelected() {\n if (!this.multiple) {\n this.triggerRef?.close();\n }\n this.selected.emit();\n }\n\n isOpen(): boolean {\n return this.triggerRef?.isOpen() ?? false;\n }\n\n open() {\n this.triggerRef?.open();\n }\n\n close() {\n this.triggerRef?.close();\n }\n\n toggle() {\n this.triggerRef?.open();\n }\n\n protected getFieldLabel?(): string;\n\n getLabelText(): string | undefined {\n return (this.getFieldLabel?.() ?? this.ariaLabel)?.trim();\n }\n\n protected controlValueAccessorChangeFn: (value: any) => void = () => {};\n public onTouched: () => any = () => {};\n\n public _onOpen(): void {\n this.opened.emit();\n }\n\n public _onClose(): void {\n this.closed.emit();\n this.onTouched();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnChange(fn: any): void {\n this.controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n writeValue(value: unknown): void {\n this.valueHolder.value = value;\n }\n\n protected getNextEnabledOptionValue(direction: 'left' | 'right' = 'right') {\n const optionsArray = this.options?.toArray() || [];\n let nextNonDisabledOption;\n const selectedOption = this.selectedOptions[0];\n\n const currentOptionIndex =\n (selectedOption && optionsArray.indexOf(selectedOption)) ?? -1;\n const notDisabled = (o: OptionComponent) => !o.disabled;\n\n if (currentOptionIndex === -1) {\n nextNonDisabledOption = optionsArray.find(notDisabled);\n } else if (direction === 'left') {\n nextNonDisabledOption = optionsArray\n .slice(0, currentOptionIndex)\n .reverse()\n .find(notDisabled);\n } else {\n nextNonDisabledOption = optionsArray\n .slice(currentOptionIndex + 1, optionsArray.length)\n .find(notDisabled);\n }\n\n const nextNonDisabledOptionIndex = nextNonDisabledOption\n ? optionsArray.indexOf(nextNonDisabledOption)\n : currentOptionIndex;\n return this.options?.get(nextNonDisabledOptionIndex)?.value;\n }\n\n protected initKeyManager(): void {\n // destroy any existing key manager\n this.keyManager?.destroy();\n\n this.keyManager = new ListKeyManager<\n { value: string } & ListKeyManagerOption\n >(\n this.options.map((option) => ({\n value: option.value,\n getLabel: () => option.label,\n disabled: !!option.disabled,\n }))\n ).withTypeAhead();\n\n this.keyManager.change.subscribe(() => {\n const selectedOption = this.options?.find(\n (option) => this.keyManager?.activeItem?.value === option.value\n );\n\n if (selectedOption) {\n this.listboxValue = [selectedOption.value];\n }\n });\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ListboxChild } from '../../../listbox/src/listbox-child';\nimport { OptionComponent } from '../../../listbox/src/option.component';\nimport {\n section,\n SectionDirective,\n} from '../../../listbox/src/section.directive';\n\n/**\n * Marks sp-select as searchable. When used, a search input is rendered inside select trigger\n * which allows filtering options, in a more convenient way than the default typeahead search.\n * By default, rendered `sp-option`s are filtered based on the search value, but `searchValue`\n * and `searchValueChange` can be used to control the search value and filter the `sp-options`\n * upfront.\n */\n@Directive({\n selector: 'sp-select[searchable]',\n standalone: false,\n})\nexport class SearchableSelectDirective {\n @Input()\n get searchValue() {\n return this._searchValue ?? '';\n }\n set searchValue(value: string | undefined) {\n this._searchValue = value;\n }\n private _searchValue: string | undefined;\n\n /**\n * Filtering function to be applied on each item. The default filter function\n * does a case-insensitive search on optionComponent.label.\n * The built-in filtering can be disabled by passing `null`. That's useful\n * when filtering is fully controlled by filtering input sp-options based on\n * {@property searchValue}.\n */\n @Input()\n filter?:\n | null\n | ((optionComponent: OptionComponent, searchQuery: string) => boolean) = (\n optionComponent: OptionComponent,\n searchQuery: string\n ) => optionComponent.label.toLowerCase().includes(searchQuery?.toLowerCase());\n\n /**\n * Whether the search input value should be selected upon open.\n * Useful when options are long and the user would likely want to start\n * typing a new option from scratch.\n * @default false\n */\n @Input()\n @CoerceBoolean\n selectTextOnOpen?: BooleanInput;\n\n /**\n * Whether the search field should be cleared upon open, instead of being\n * populated by the selected option value.\n * @default false\n */\n @Input()\n @CoerceBoolean\n clearSearchOnOpen?: BooleanInput;\n\n @Output()\n searchValueChange = new EventEmitter<string>();\n\n filterListboxItems(\n items: Iterable<ListboxChild>,\n filter: (option: OptionComponent) => boolean\n ): {\n filteredChildren: ListboxChild[];\n filteredOutOptions: OptionComponent[];\n } {\n const filteredOutOptions: OptionComponent[] = [];\n const filteredChildren = Array.from(items)\n ?.map((item): ListboxChild | null => {\n if (item instanceof OptionComponent) {\n const isMatch = filter(item);\n if (!isMatch) {\n filteredOutOptions.push(item);\n }\n return isMatch ? item : null;\n }\n if (item instanceof SectionDirective) {\n const {\n filteredChildren: sectionFilteredChildren,\n filteredOutOptions: sectionFilteredOutOptions,\n } = this.filterListboxItems(item.children, filter);\n filteredOutOptions.push(...sectionFilteredOutOptions);\n if (sectionFilteredChildren.length > 0) {\n return section(\n sectionFilteredChildren.filter(\n (item): item is OptionComponent =>\n item instanceof OptionComponent\n ),\n item.ariaLabel\n );\n }\n return null;\n }\n return null;\n })\n .filter(notNull);\n return { filteredChildren, filteredOutOptions };\n }\n\n /**\n * Used when search value is updated via UI, and searchValueChange output should be emitted.\n * @internal\n */\n setSearchValue(searchValue: string) {\n this._searchValue = searchValue;\n this.searchValueChange.emit(searchValue);\n }\n\n defaultFilter(optionComponent: OptionComponent, searchQuery: string) {\n return optionComponent.label\n .toLowerCase()\n .includes(searchQuery?.toLowerCase());\n }\n}\n\nexport const notNull = <T>(\n item: T | undefined | null\n): item is NonNullable<T> => item != null;\n","import { Directive, Input } from '@angular/core';\nimport { CoerceBoolean } from './coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\n/**\n * Hides an element visually, while keeping it visible to screen readers and\n * other assistive technology\n */\n@Directive({\n selector: '[spVisuallyHidden]',\n standalone: true,\n host: {\n class: 'cdk-visually-hidden',\n },\n})\nexport class VisuallyHiddenDirective {\n @CoerceBoolean\n @Input('spVisuallyHidden')\n enabled: BooleanInput = true;\n}\n","// Taken from react-aria https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/utils/src/platform.ts\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n // @ts-expect-error incorrect navigator type\n window.navigator['userAgentData']?.brands.some(\n (brand: { brand: string; version: string }) => re.test(brand.brand)\n ) || re.test(window.navigator.userAgent)\n );\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? // @ts-expect-error incorrect navigator type\n re.test((window.navigator['userAgentData'] || window.navigator).platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return (\n testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1)\n );\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n\nexport function isMobile() {\n return isIPhone() || isAndroid();\n}\n","import { Component } from '@angular/core';\nimport { isMobile } from '../../../common/platform';\nimport { SelectComponentBase } from './select-component-base';\n\n/**\n * Hidden native select to be rendered in sapphire select components. It does two things:\n * - Takes care of form accessibility and autofilling by rendering native select/input\n * - Opens the native select dropdown instead of the custom dropdown, when possible.\n *\n * The latter proved to be a questionable, and we may rethink it at some point.\n *\n * @internal\n */\n@Component({\n selector: 'sp-hidden-select',\n templateUrl: './hidden-select.component.html',\n standalone: false,\n})\nexport class HiddenSelectComponent {\n _isMobile = isMobile();\n\n constructor(public _select: SelectComponentBase) {}\n\n _onNativeSelectChange(e: any) {\n this._select.listboxValue = [e.target.value];\n }\n}\n","<ng-container *ngIf=\"_select._initialized\">\n <select\n *ngIf=\"_isMobile && !_select.multiple\"\n class=\"sapphire-select__native-select\"\n _spUseComponentStyles\n [disabled]=\"_select.disabled\"\n [attr.name]=\"_select.name\"\n [attr.autocomplete]=\"_select.autocomplete\"\n (change)=\"_onNativeSelectChange($event)\"\n >\n <option\n *ngFor=\"let option of _select.options\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"_select.listboxValue.includes(option.value)\"\n >\n {{ option.label }}\n </option>\n </select>\n <div\n *ngIf=\"!_isMobile || _select.multiple\"\n aria-hidden=\"true\"\n spVisuallyHidden\n >\n <input\n type=\"text\"\n style=\"font-size: 16px\"\n [disabled]=\"_select.disabled\"\n [tabIndex]=\"_select.isFocused() || _select.isOpen() ? -1 : 0\"\n (focus)=\"_select.focus('keyboard')\"\n />\n <label>\n {{ _select.getLabelText() }}\n <select\n [attr.size]=\"_select.multiple ? _select.options.length : null\"\n [disabled]=\"_select.disabled\"\n tabindex=\"-1\"\n [multiple]=\"_select.multiple\"\n (change)=\"_onNativeSelectChange($event)\"\n [attr.name]=\"_select.name\"\n [attr.autocomplete]=\"_select.autocomplete\"\n >\n <option\n *ngFor=\"let option of _select.options\"\n [value]=\"option.value\"\n [selected]=\"_select.listboxValue.includes(option.value)\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n </label>\n </div>\n</ng-container>\n","import {\n AfterViewInit,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n FocusMonitor,\n FocusOrigin,\n InputModalityDetector,\n} from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { combineLatest, empty, Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\n\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport { ListboxChild, ListboxComponent } from '../../../listbox/public_api';\nimport { section } from '../../../listbox/src/section.directive';\nimport { FieldComponent, FieldControl } from '../../../field/public_api';\nimport { SelectComponentBase } from '../common/select-component-base';\nimport {\n MultiSelectDirectiveBase,\n SelectValueHolder,\n SingleSelectDirectiveBase,\n} from '../common/select-value-holder';\nimport { SearchableSelectDirective } from './searchable-select.directive';\nimport { IconRegistry } from '../../../icon/public_api';\nimport { iconChevronDown } from '@danske/sapphire-icons/js';\n\n/**\n * Enables multiple selection. When present, `value` will be of type `string[]`, and `valueChange`\n * will emit `string[]`.\n */\n@Directive({\n selector: 'sp-select[multiple]',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => MultiSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class MultiSelectDirective extends MultiSelectDirectiveBase {}\n\n/**\n * Enables single selection, the default behavior of Select.\n * When present, `value` will be of type `string`, and `valueChange` will emit `string`.\n */\n@Directive({\n selector: 'sp-select:not([multiple])',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => SingleSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class SingleSelectDirective extends SingleSelectDirectiveBase {}\n\n/**\n * Allows user to select a single option from a list, similar to native select\n * component.\n *\n * Example:\n * ```tsx\n * <sp-field>\n * <sp-field-label>Label text</sp-field-label>\n * <sp-select placeholder=\"Select an option\">\n * <sp-option value=\"option1\">First Option</sp-option>\n * <sp-option value=\"option2\">Second Option</sp-option>\n * <sp-option value=\"option3\">Third Option</sp-option>\n * </sp-select>\n * </sp-field>\n * ```\n */\n@Component({\n selector: 'sp-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n exportAs: 'spSelect',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: SelectComponentBase,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => SelectComponent),\n },\n ],\n host: {\n class: 'sapphire-select',\n '[class.sapphire-select--error]': '_field?.hasError(this)',\n '[class.sapphire-select--md]': '_field?.size === \"md\"',\n '[class.is-focus]': 'isFocusVisible()',\n '[class.is-disabled]': 'isDisabled()',\n '[attr.id]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.placeholder]': 'null',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class SelectComponent\n extends SelectComponentBase\n implements FieldControl, AfterViewInit, OnDestroy\n{\n private focusOrigin: FocusOrigin = null;\n filteredChildren$: Observable<ListboxChild[]> = new Subject();\n\n @ViewChild('triggerRef')\n protected triggerRef: PopoverTriggerDirective | undefined;\n\n @ViewChild('triggerElementRef', { read: ElementRef })\n protected triggerElementRef: ElementRef | undefined;\n\n @ViewChild(ListboxComponent)\n protected listbox: ListboxComponent | undefined;\n\n @ViewChild('searchInput', { read: ElementRef })\n private searchInput?: ElementRef<HTMLInputElement>;\n\n get searchable() {\n return Boolean(this._searchableSelectDirective);\n }\n\n /**\n * id of trigger value area, which will contain either the selected value or the placeholder.\n */\n @AutoId()\n _valueContainerId: string = '';\n\n private destroyed = new Subject<void>();\n\n constructor(\n valueHolder: SelectValueHolder,\n iconRegistry: IconRegistry,\n private focusMonitor: FocusMonitor,\n private inputModality: InputModalityDetector,\n @Optional() public _field?: FieldComponent,\n @Optional() public _searchableSelectDirective?: SearchableSelectDirective\n ) {\n super(valueHolder);\n iconRegistry.registerIcon(iconChevronDown);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n const listboxItem$ = this.listboxChildren.changes.pipe(\n startWith(this.listboxChildren)\n );\n const searchableSelect = this._searchableSelectDirective;\n if (this.searchInput && searchableSelect) {\n const searchInputValue$ = searchableSelect.searchValueChange.pipe(\n takeUntil(this.destroyed),\n startWith(searchableSelect.searchValue)\n );\n const filterResult$ = combineLatest(searchInputValue$, listboxItem$).pipe(\n map(([searchQuery]) => {\n if (!searchQuery) {\n return {\n filteredChildren: this.listboxChildren.toArray(),\n filteredOutOptions: [],\n };\n }\n return searchableSelect.filterListboxItems(\n this.listboxChildren,\n (option) =>\n !searchableSelect.filter ||\n searchableSelect.filter(option, searchQuery)\n );\n })\n );\n this.filteredChildren$ = this.multiple\n ? // Grouping selected options\n combineLatest(\n filterResult$,\n this.valueHolder.valueChange.pipe(startWith(empty()))\n ).pipe(\n map(([{ filteredChildren }]) => {\n if (this.listboxValue.length === 0) {\n return filteredChildren;\n }\n const {\n filteredOutOptions: selectedOptions,\n filteredChildren: selectionExcludedChildren,\n } = searchableSelect.filterListboxItems(\n filteredChildren,\n (option) => !this.listboxValue.includes(option.value)\n );\n return (\n selectedOptions.length > 0\n ? [section(selectedOptions)]\n : ([] as ListboxChild[])\n ).concat(selectionExcludedChildren);\n })\n )\n : filterResult$.pipe(map(({ filteredChildren }) => filteredChildren));\n } else {\n this.filteredChildren$ = listboxItem$;\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed.next(undefined);\n this.destroyed.complete();\n }\n\n _getAriaLabelledBy(): string | undefined {\n // The logic here is similar to the one in react-aria's useSelect.\n const labelledBy = this.ariaLabelledby || this._field?.label?.id;\n return [\n this._valueContainerId,\n labelledBy,\n this.ariaLabel && !labelledBy ? this.id : null,\n ]\n .filter((i) => i)\n .join(' ');\n }\n\n isFocused() {\n return Boolean(this.focusOrigin);\n }\n\n isFocusVisible(): boolean {\n return (\n this.isFocused() &&\n // This is needed because focus doesn't change when a key (e.g. Escape) is pressed in the search input.\n (this.inputModality.mostRecentModality === 'keyboard' ||\n // This is needed for when label is clicked and focusOrigin is forced to keyboard, but current modality is mouse.\n this.focusOrigin === 'keyboard') &&\n !this.isOpen() // This is because in searchable select, the actual focus is on the input,\n // but it's meant to be shown on the listbox. It doesn't make sense to show the focus in two\n // places.\n );\n }\n\n focus(focusOrigin: FocusOrigin = 'program') {\n this.focusMonitor.focusVia(\n this.searchInput?.nativeElement ?? this.triggerElementRef?.nativeElement,\n focusOrigin\n );\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this.focusOrigin = focusOrigin;\n }\n\n _onFocus() {\n // Whenever focus comes to the trigger , forward it to the search input. It's needed for when\n // the trigger is re-focused after popover is closed.\n this.focus(this.focusOrigin);\n }\n\n _isInputVisible() {\n return this.isOpen() /*||\n (this.searchInput?.nativeElement === document.activeElement &&\n this.listboxValue.length === 0)*/;\n }\n\n _onOpen() {\n super._onOpen();\n if (!this.multiple && this._searchableSelectDirective) {\n this._searchableSelectDirective.setSearchValue(\n (this._searchableSelectDirective.clearSearchOnOpen\n ? ''\n : this.selectedOptions[0]?.label) ?? ''\n );\n }\n const searchInputElement = this.searchInput?.nativeElement;\n if (this._searchableSelectDirective?.selectTextOnOpen) {\n searchInputElement?.select();\n }\n const focusVisibleOnOpen = this.isFocusVisible();\n // Move focus to the search input. The timeout is needed because popover will autofocus the\n // content, and we need to let the focus first land in the popover, and then steal it.\n setTimeout(() => {\n searchInputElement?.focus();\n\n // Need to run this also asynchronously, to let the popover (and listbox) mount\n if (!focusVisibleOnOpen && this.selectedOptions.length === 0) {\n // to prevent the first item from being focused when the dropdown is opened via mouse\n this.listbox?.setActiveOption(null);\n }\n });\n }\n\n _onClose() {\n super._onClose();\n if (!this.multiple && this._searchableSelectDirective) {\n this._searchableSelectDirective.setSearchValue(\n this.selectedOptions[0]?.label || ''\n );\n }\n const searchInputElement = this.searchInput?.nativeElement;\n searchInputElement?.setSelectionRange(\n searchInputElement.value.length,\n searchInputElement.value.length\n );\n }\n\n protected getFieldLabel?(): string {\n return this._field?.label?.getText() ?? '';\n }\n\n _onInputKeydown(event: KeyboardEvent) {\n const selectValue = (toBeSelected: string) => {\n const listboxValue = this.listboxValue;\n const alreadySelected = listboxValue.includes(toBeSelected);\n if (this.multiple) {\n this.listboxValue = alreadySelected\n ? listboxValue.filter((value) => value !== toBeSelected)\n : [...listboxValue, toBeSelected];\n } else if (!alreadySelected) {\n this.listboxValue = [toBeSelected];\n }\n };\n const firstOptionValue = this.options?.get(0)?.value;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (!this.isOpen()) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n this.close();\n break;\n case 'Enter':\n // Selection is already handled if there is an active option\n if (this.isOpen()) {\n if (\n this.listbox?.getActiveOption() == undefined &&\n firstOptionValue\n ) {\n selectValue(firstOptionValue);\n }\n if (!this.multiple) {\n this.close();\n }\n } else {\n this.open();\n }\n break;\n case 'Tab':\n if (this.isOpen() && !this.multiple) {\n const toBeSelected =\n this.listbox?.getActiveOption() || firstOptionValue;\n if (toBeSelected != undefined) {\n selectValue(toBeSelected);\n }\n }\n break;\n }\n }\n\n _onSearchInput(event: Event) {\n if (event.target instanceof HTMLInputElement) {\n const value = event.target?.value;\n this._searchableSelectDirective?.setSearchValue(value);\n // clearing the value when the search input is cleared.\n if (!this.multiple && !value && this.listboxValue.length > 0) {\n this.listboxValue = [];\n }\n }\n\n this.listbox?.setActiveOption(null);\n }\n\n _handleSelected() {\n super._handleSelected();\n }\n\n isDisabled(): boolean {\n return coerceBooleanProperty(this.disabled);\n }\n\n hasDefaultWidth = true;\n}\n","<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n spPopoverDisablePushInsideViewport=\"true\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n","import {\n Component,\n Directive,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport { ListboxComponent } from '../../../listbox/src/listbox.component';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { SelectComponentBase } from '../common/select-component-base';\nimport {\n SelectValueHolder,\n SingleSelectDirectiveBase,\n} from '../common/select-value-holder';\nimport { ViewEncapsulationProvider } from '../../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../../icon/public_api';\nimport { iconChevronDown } from '@danske/sapphire-icons/js';\n\n/**\n * NOTE: Support for multiple selection in basic select is removed, based on\n * a UX decision. See commit message for more details.\n */\n@Directive({\n selector: 'sp-select-button:not([multiple])',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => SelectButtonSingleSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class SelectButtonSingleSelectDirective extends SingleSelectDirectiveBase {}\n\n/**\n * Allows user to select a single option from a list, similar to native select\n * component.\n *\n * Example:\n * ```tsx\n * <sp-select-button\n * placeholder=\"Select an option\"\n * size=\"sm\"\n * variant=\"secondary\"\n * >\n * <sp-option value=\"option1\">First Option</sp-option>\n * <sp-option value=\"option2\">Second Option</sp-option>\n * <sp-option value=\"option3\">Third Option</sp-option>\n * </sp-select-button>\n * ```\n */\n@Component({\n selector: 'sp-select-button',\n templateUrl: './select-button.component.html',\n styleUrls: ['./select-button.component.scss'],\n exportAs: 'spSelectButton',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButtonComponent),\n multi: true,\n },\n {\n provide: SelectComponentBase,\n useExisting: forwardRef(() => SelectButtonComponent),\n },\n ViewEncapsulationProvider,\n ],\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n standalone: false,\n})\nexport class SelectButtonComponent extends SelectComponentBase {\n /**\n * Size of the button\n * @default 'md'\n */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Visual variations\n * @default 'tertiary'\n */\n @Input()\n variant: 'primary' | 'secondary' | 'tertiary' = 'tertiary';\n\n @ViewChild('triggerRef')\n protected triggerRef: PopoverTriggerDirective | undefined;\n\n @ViewChild('triggerElementRef', { read: ElementRef })\n protected triggerElementRef: ElementRef | undefined;\n\n @ViewChild(ListboxComponent)\n protected listbox: ListboxComponent | undefined;\n\n private focused = false;\n\n constructor(\n valueHolder: SelectValueHolder,\n private focusMonitor: FocusMonitor,\n iconRegistry: IconRegistry\n ) {\n super(valueHolder);\n iconRegistry.registerIcon(iconChevronDown);\n }\n\n focus(focusOrigin: FocusOrigin = 'program') {\n if (this.triggerElementRef) {\n this.focusMonitor.focusVia(\n this.triggerElementRef.nativeElement,\n focusOrigin\n );\n }\n }\n\n isFocused() {\n return this.focused;\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this.focused = Boolean(focusOrigin);\n }\n}\n","<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"variant\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireIconModule } from '../../../icon/public_api';\nimport { SapphirePopoverModule } from '../../../popover/public_api';\nimport {\n MultiSelectDirective,\n SelectComponent,\n SingleSelectDirective,\n} from './select.component';\nimport { SapphireListboxModule } from '../../../listbox/src/listbox.module';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { SelectionTextDirective } from './selection-text.directive';\nimport { VisuallyHiddenDirective } from '../../../common/visually-hidden.directive';\nimport { SapphireButtonModule } from '../../../button/public_api';\nimport {\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n} from '../select-button/select-button.component';\nimport { HiddenSelectComponent } from '../common/hidden-select.component';\nimport { SearchableSelectDirective } from './searchable-select.directive';\nimport { FieldLabelDirective } from '../../../field/src/field-label.directive';\nimport { FieldErrorDirective } from '../../../field/src/field-error.directive';\nimport { FieldNoteDirective } from '../../../field/src/field-note.directive';\nimport { LabelComponent } from '../../../label/public_api';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n SelectionTextDirective,\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n HiddenSelectComponent,\n SearchableSelectDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SapphireIconModule,\n SapphireListboxModule,\n SapphirePopoverModule,\n CdkListboxModule,\n A11yModule,\n PortalModule,\n VisuallyHiddenDirective,\n FieldLabelDirective,\n FieldErrorDirective,\n FieldNoteDirective,\n SapphireButtonModule,\n LabelComponent,\n UseComponentStyles,\n ],\n exports: [\n SapphireListboxModule,\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n SelectionTextDirective,\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n SearchableSelectDirective,\n FieldLabelDirective,\n FieldErrorDirective,\n FieldNoteDirective,\n ],\n})\nexport class SapphireSelectModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport {\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n} from './src/select/select.component';\nexport { SapphireSelectModule } from './src/select/select.module';\nexport { SelectionTextDirective } from './src/select/selection-text.directive';\nexport { SearchableSelectDirective } from './src/select/searchable-select.directive';\nexport {\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n} from './src/select-button/select-button.component';\n","import { Component, Input, HostListener } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n@Component({\n selector: 'a[sp-link]',\n styleUrls: ['./link.component.scss'],\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-link',\n\n '[class.sapphire-link--primary]': 'variant === \"primary\"',\n '[class.sapphire-link--secondary]': 'variant === \"secondary\"',\n\n '[attr.tabindex]': 'disabled ? -1 : (tabindex || tabIndex)',\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n hostDirectives: [UseComponentStylesOnHost],\n})\nexport class LinkComponent {\n @Input()\n variant?: 'primary' | 'secondary' = 'primary';\n\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput = false;\n\n @Input()\n tabindex?: string | null = null;\n @Input()\n tabIndex?: string | null = null;\n\n // TODO: This will prevent navigation on click,\n // but it won't prevent the link being focused on click\n @HostListener('click', ['$event'])\n @HostListener('pointerdown', ['$event'])\n @HostListener('mousedown', ['$event'])\n @HostListener('keydown', ['$event'])\n private handleDisableInteraction(e: Event) {\n if (this.disabled) e.preventDefault();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LinkComponent } from './link.component';\n\n@NgModule({\n imports: [LinkComponent],\n exports: [LinkComponent],\n})\nexport class SapphireLinkModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/link.component';\nexport * from './src/link.module';\n","import {\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { SegmentedTabsComponent } from './segmented-tabs.component';\n\n@Component({\n selector: 'sp-segmented-tab',\n templateUrl: './segmented-tab.component.html',\n styleUrls: ['./segmented-tab.component.scss'],\n host: {\n // Angular specific styles that are needed due to extra dom elements added by angular\n '[style.flex]': \"'1 1 auto'\",\n '[style.display]': \"'inline-flex'\",\n },\n standalone: false,\n})\nexport class SegmentedTabComponent {\n /** Whether the tab should be disabled */\n @Input()\n get disabled(): boolean {\n return Boolean(this.tabs.disabled) || this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Input()\n label?: string;\n\n /**\n * auto generated id applied on the tab element\n */\n @AutoId()\n id = '';\n\n @ViewChild(TemplateRef)\n _contentTemplate: TemplateRef<any> | null = null;\n\n @ViewChild('button')\n _button?: ElementRef<HTMLButtonElement>;\n\n constructor(\n @Inject(forwardRef(() => SegmentedTabsComponent))\n public tabs: SegmentedTabsComponent\n ) {}\n\n select() {\n if (this.disabled) return;\n this.tabs.selectTab(this);\n }\n\n /**\n * Whether this tab is currently selected\n */\n isSelected(): boolean {\n return this.tabs?.isSelected(this);\n }\n\n getTabIndex() {\n return this.tabs.getFocusedTab() === this && !this.tabs.disabled\n ? '0'\n : '-1';\n }\n}\n","<button\n #button\n class=\"sapphire-segmented-control__button\"\n _spUseComponentStyles\n [class.sapphire-segmented-control__button--disabled]=\"disabled\"\n [class.sapphire-segmented-control__button--active]=\"isSelected()\"\n role=\"tab\"\n (click)=\"select()\"\n [id]=\"id\"\n [tabIndex]=\"getTabIndex()\"\n [attr.aria-disabled]=\"disabled\"\n>\n {{ label }}\n <ng-content select=\"sp-segmented-tab-label\"></ng-content>\n</button>\n<ng-template>\n <div\n class=\"sapphire-tab-panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [id]=\"id + '-panel'\"\n [attr.aria-labelledby]=\"id\"\n >\n <ng-content select=\"sp-segmented-tab-content\"></ng-content>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n BooleanInput,\n coerceNumberProperty,\n NumberInput,\n} from '@angular/cdk/coercion';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { SegmentedTabComponent } from './segmented-tab.component';\nimport { ViewEncapsulationProvider } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-segmented-tabs',\n templateUrl: './segmented-tabs.component.html',\n styleUrls: ['./segmented-tabs.component.scss'],\n providers: [ViewEncapsulationProvider],\n exportAs: 'spSegmentedTabs',\n host: {\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class SegmentedTabsComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('segmentedControl') segmentedControl!: ElementRef;\n\n /** Size of tabs */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Alignment of tabs' buttons group.\n * @default 'left'\n */\n @Input()\n align?: 'left' | 'center' | 'right' | 'stretch' = 'left';\n\n /** Whether tabs are activated automatically on focus or manually. */\n @Input()\n keyboardActivation?: 'manual' | 'automatic' = 'automatic';\n\n /** Whether the entire component should be disabled */\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** Index of the selected tab */\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex || 0;\n }\n set selectedIndex(value: NumberInput) {\n this._selectedIndex = coerceNumberProperty(value);\n this._focusedIndex = this._selectedIndex;\n }\n private _selectedIndex?: number;\n private _focusedIndex: number = 0;\n\n @Output() readonly selectedIndexChange: EventEmitter<number> =\n new EventEmitter<number>();\n\n @ContentChildren(forwardRef(() => SegmentedTabComponent))\n readonly tabs: QueryList<SegmentedTabComponent> = new QueryList();\n private _tabIds: string[] = [];\n\n private resizeObserver: ResizeObserver | undefined;\n _gliderStyles = { left: '0px', width: '0px' };\n _animationEnabled = false;\n _focusVisible = false;\n\n constructor(private zone: NgZone, private changeDetector: ChangeDetectorRef) {\n this.skipAnimationFrame();\n }\n\n ngAfterContentInit(): void {\n this._tabIds = this.tabs.map((tab) => tab.id);\n this.tabs.changes.subscribe(() => {\n this.onTabsChange();\n });\n if (this._selectedIndex === undefined) {\n this.selectedIndex = this.findFocusableIndex(0, 'right') || 0;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n ngAfterViewInit(): void {\n // The value of \"_getTabContentTemplate\", which is bound in the\n // template, changes after the view has been checked. This\n // \"detectChanges()\" avoids the \"NG0100: Expression has\n // changed after it was checked\" angular error.\n //\n // https://angular.io/errors/NG0100\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n this.resizeObserver = new ResizeObserver(() => {\n // zonejs doesn't monkey-patch resize observer (yet)\n this.zone.run(() => {\n this.setGliderStyles();\n });\n });\n\n this.resizeObserver.observe(this.segmentedControl.nativeElement);\n this.selectedIndexChange.subscribe(() => {\n this.setGliderStyles();\n });\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.segmentedControl.nativeElement);\n this.selectedIndexChange.unsubscribe();\n }\n\n ngAfterViewChecked(): void {\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n }\n\n getFocusedTab() {\n return this.tabs.toArray()[this._focusedIndex];\n }\n\n selectTab(selectedTab: SegmentedTabComponent) {\n this.selectedIndex = this.tabs\n .toArray()\n .findIndex((tab) => tab === selectedTab);\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n\n isSelected(tab: SegmentedTabComponent): boolean {\n return this.tabs?.toArray().indexOf(tab) === this.selectedIndex;\n }\n\n _getTabContentTemplate() {\n return this.tabs.toArray()[this.selectedIndex]?._contentTemplate || null;\n }\n\n _onFocusChange(origin: FocusOrigin) {\n this._focusVisible = origin === 'keyboard';\n if (!origin) {\n this._focusedIndex = this.selectedIndex;\n }\n }\n\n _onKeyDown(event: KeyboardEvent) {\n const focusNextValidTab = (\n targetIndex: number,\n direction: 'left' | 'right'\n ) => {\n if (this.tabs.toArray().every((tab) => tab.disabled)) return;\n const index = this.findFocusableIndex(targetIndex, direction);\n if (index === null) return;\n const button = this.tabs.toArray()[index]._button?.nativeElement;\n if (!button) return;\n button.focus();\n if (this.keyboardActivation === 'automatic') {\n this.selectedIndex = index;\n this.selectedIndexChange.emit(this.selectedIndex);\n } else {\n this._focusedIndex = index;\n }\n };\n switch (event.key) {\n case 'ArrowLeft': {\n event.stopPropagation();\n focusNextValidTab(this._focusedIndex - 1, 'left');\n break;\n }\n case 'ArrowRight': {\n event.stopPropagation();\n focusNextValidTab(this._focusedIndex + 1, 'right');\n break;\n }\n case 'Home': {\n event.stopPropagation();\n event.preventDefault();\n focusNextValidTab(0, 'right');\n break;\n }\n case 'End': {\n event.stopPropagation();\n event.preventDefault();\n focusNextValidTab(this.tabs.length - 1, 'left');\n break;\n }\n default:\n return;\n }\n }\n\n private setGliderStyles() {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n this._gliderStyles = {\n left: `${offsetLeft}px`,\n width: `${clientWidth}px`,\n };\n }\n\n private getSelectedTabPosition() {\n const tab = this.tabs.toArray()[this.selectedIndex]?._button?.nativeElement;\n return {\n offsetLeft: tab?.offsetLeft || 0,\n clientWidth: tab?.clientWidth || 0,\n };\n }\n\n private onTabsChange() {\n // Ensure the current tab doesn't change if tabs change\n // and tab with currently selected id still exists\n const previousTabId = this._tabIds[this.selectedIndex];\n this._tabIds = this.tabs.map((tab) => tab.id);\n if (this._tabIds.includes(previousTabId)) {\n this.selectedIndex = this._tabIds.findIndex(\n (tabId) => tabId === previousTabId\n );\n } else {\n const maxIndex = this.tabs.length - 1;\n if (this.selectedIndex > maxIndex) {\n this.selectedIndex = maxIndex;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n this.skipAnimationFrame();\n }\n\n private skipAnimationFrame() {\n // We want to avoid animation on first render and whenever tab content changes\n this._animationEnabled = false;\n requestAnimationFrame(() => {\n this._animationEnabled = true;\n });\n }\n\n private findFocusableIndex(\n index: number,\n direction: 'left' | 'right'\n ): number | null {\n if (this.tabs.toArray().every((tab) => tab.disabled)) return null;\n const constrainIndex = (index: number) => {\n if (index >= this.tabs.length) {\n return 0;\n } else if (index < 0) {\n return this.tabs.length - 1;\n } else {\n return index;\n }\n };\n const constrainedIndex = constrainIndex(index);\n if (this.tabs.toArray()[constrainedIndex].disabled) {\n return this.findFocusableIndex(\n constrainedIndex + (direction === 'left' ? -1 : 1),\n direction\n );\n } else {\n return constrainedIndex;\n }\n }\n}\n","<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-segmented-tab-label',\n host: {\n // Angular specific styles that are needed due to extra dom elements added by angular\n '[style.display]': '\"flex\"',\n '[style.align-items]': '\"center\"',\n },\n standalone: false,\n})\n/** Content will be displayed as label within the tab button */\nexport class SegmentedTabLabelDirective {\n constructor() {}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-segmented-tab-content',\n standalone: false,\n})\n/** Content that will be displayed when the tab is selected */\nexport class SegmentedTabContentDirective {\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SegmentedTabsComponent } from './segmented-tabs.component';\nimport { SegmentedTabComponent } from './segmented-tab.component';\nimport { SegmentedTabLabelDirective } from './segmented-tab-label.directive';\nimport { SegmentedTabContentDirective } from './segmented-tab-content.directive';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n SegmentedTabsComponent,\n SegmentedTabComponent,\n SegmentedTabLabelDirective,\n SegmentedTabContentDirective,\n ],\n imports: [CommonModule, A11yModule, UseComponentStyles],\n exports: [\n SegmentedTabsComponent,\n SegmentedTabComponent,\n SegmentedTabLabelDirective,\n SegmentedTabContentDirective,\n ],\n})\nexport class SapphireSegmentedTabsModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sp-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n standalone: false,\n})\nexport class SpinnerComponent {\n @Input()\n size: '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Defines a string value that labels the current element.\n */\n @Input('aria-label')\n ariaLabel?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n}\n","<svg\n class=\"sapphire-spinner\"\n viewBox=\"0 0 16 16\"\n role=\"progressbar\"\n [ngClass]=\"{\n 'sapphire-spinner--3xs': size === '3xs',\n 'sapphire-spinner--2xs': size === '2xs',\n 'sapphire-spinner--xs': size === 'xs',\n 'sapphire-spinner--sm': size === 'sm',\n 'sapphire-spinner--lg': size === 'lg',\n 'sapphire-spinner--xl': size === 'xl'\n }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n>\n <path\n class=\"sapphire-spinner__track\"\n d=\"M10.3993 2.13882C10.3295 2.39914 10.4641 2.66858 10.7034 2.79263C11.2238 3.06246 11.7123 3.41501 12.1489 3.85159C14.4401 6.14281 14.4399 9.85728 12.1489 12.1483C9.85783 14.4393 6.14335 14.4395 3.85214 12.1483C3.41556 11.7117 3.06301 11.2232 2.79317 10.7028C2.66913 10.4635 2.39969 10.329 2.13937 10.3987C1.82795 10.4821 1.65738 10.8194 1.80178 11.1077C2.1261 11.7551 2.55778 12.3624 3.09789 12.9026C5.80564 15.6103 10.1955 15.6101 12.9031 12.9026C15.6107 10.195 15.6109 5.80509 12.9031 3.09734C12.363 2.55723 11.7556 2.12555 11.1082 1.80123C10.82 1.65683 10.4827 1.8274 10.3993 2.13882Z\"\n />\n <path\n class=\"sapphire-spinner__accent\"\n d=\"M1.72661 8.85304C1.98694 8.78329 2.15316 8.53215 2.14111 8.26291C2.07002 6.67514 2.63971 5.06425 3.85203 3.85193C5.06452 2.63944 6.67527 2.06989 8.26302 2.14101C8.53225 2.15306 8.78337 1.98683 8.85309 1.7265C8.93661 1.41464 8.72921 1.09798 8.4069 1.07913C6.49959 0.96764 4.55516 1.6403 3.09778 3.09768C1.64062 4.55485 0.967813 6.49934 1.07909 8.40676C1.0979 8.72916 1.41467 8.93663 1.72661 8.85304Z\"\n />\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n declarations: [SpinnerComponent],\n imports: [CommonModule],\n exports: [SpinnerComponent],\n})\nexport class SapphireSpinnerModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/spinner.component';\nexport * from './src/spinner.module';\n","import { Component, HostBinding, Input, forwardRef } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/public_api';\n\ntype Color =\n | 'neutral'\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16;\n\ntype Size = 'sm' | 'md' | 'lg';\n\n@Component({\n standalone: true,\n selector: 'sp-avatar',\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./avatar.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useExisting: forwardRef(() => AvatarComponent),\n },\n ],\n host: {\n class: 'sapphire-avatar',\n '[class.sapphire-avatar--lg]': 'size === \"lg\"',\n '[class.sapphire-avatar--sm]': 'size === \"sm\"',\n },\n})\nexport class AvatarComponent {\n /**\n * @default 'md'\n */\n @Input()\n size?: Size = 'md';\n\n /**\n * The background color of the avatar.\n * Can either be semantic or one of the named decorative color.\n *\n * @default 'informative'\n */\n @Input()\n color?: Color = 'neutral';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'neutral'\n ? `sapphire-avatar--decorative-${this.color}`\n : '';\n }\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent],\n})\nexport class SapphireAvatarModule {}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n Directive,\n Input,\n} from '@angular/core';\nimport {\n iconCheckmarkOutline,\n iconError,\n iconNotification,\n iconWarning,\n} from '@danske/sapphire-icons/js';\nimport { IconRegistry } from '../../icon/public_api';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\nexport type FeedbackMessageVariant =\n | 'success'\n | 'error'\n | 'warning'\n | 'informative'\n | 'neutral';\n\n@Directive({\n selector: '[spFeedbackMessageIcon]',\n})\nexport class FeedbackMessageIcon {}\n\n@Directive({\n selector: 'sp-feedback-message-heading',\n})\nexport class FeedbackMessageHeading {}\n\n@Directive({\n selector: 'sp-feedback-message-body',\n})\nexport class FeedbackMessageBody {}\n\n@Directive({\n selector: 'sp-feedback-message-actions',\n})\nexport class FeedbackMessageActions {}\n\n/**\n * Implements layout and style of a feedback message.\n */\n@Component({\n selector: 'sp-feedback-message',\n templateUrl: './feedback-message.component.html',\n styleUrls: ['./feedback-message.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'xl' },\n },\n ],\n standalone: false,\n})\nexport class FeedbackMessageComponent implements AfterContentInit {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([\n iconCheckmarkOutline,\n iconError,\n iconWarning,\n iconNotification,\n ]);\n }\n\n @Input()\n variant?: FeedbackMessageVariant;\n\n @ContentChild(FeedbackMessageHeading)\n heading?: FeedbackMessageHeading;\n\n @ContentChild(FeedbackMessageIcon)\n icon?: FeedbackMessageIcon;\n\n ngAfterContentInit(): void {\n if (!this.heading) {\n throw new Error(\n 'Missing heading for sp-feedback-message. Render <sp-feedback-message-heading>...</sp-feedback-message-heading> inside sp-feedback-message'\n );\n }\n }\n\n get color() {\n switch (this.variant) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'neutral':\n return 'primary';\n default:\n return this.variant;\n }\n }\n}\n","<div class=\"sapphire-feedback-message\">\n <div>\n <ng-container *ngIf=\"icon !== undefined; else defaultIcon\">\n <ng-content select=\"[spFeedbackMessageIcon]\"></ng-content>\n </ng-container>\n\n <ng-template #defaultIcon>\n <ng-container [ngSwitch]=\"variant\">\n <sp-icon\n *ngSwitchCase=\"'success'\"\n [color]=\"color\"\n name=\"checkmarkOutline\"\n ></sp-icon>\n <sp-icon *ngSwitchCase=\"'error'\" [color]=\"color\" name=\"error\"></sp-icon>\n <sp-icon\n *ngSwitchCase=\"'warning'\"\n [color]=\"color\"\n name=\"warning\"\n ></sp-icon>\n <sp-icon\n *ngSwitchCase=\"'informative'\"\n [color]=\"color\"\n name=\"notification\"\n ></sp-icon>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"sapphire-feedback-message__content\">\n <h3 [sp-heading]=\"'6'\">\n <ng-content select=\"sp-feedback-message-heading\"></ng-content>\n </h3>\n <section sp-body size=\"sm\" color=\"secondary\">\n <ng-content select=\"sp-feedback-message-body\"></ng-content>\n </section>\n </div>\n <ng-content select=\"sp-feedback-message-actions\"></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireTypographyModule } from '../../typography/public_api';\n\nimport {\n FeedbackMessageActions,\n FeedbackMessageBody,\n FeedbackMessageComponent,\n FeedbackMessageHeading,\n FeedbackMessageIcon,\n} from './feedback-message.component';\n\n@NgModule({\n declarations: [\n FeedbackMessageComponent,\n FeedbackMessageIcon,\n FeedbackMessageHeading,\n FeedbackMessageBody,\n FeedbackMessageActions,\n ],\n imports: [CommonModule, SapphireTypographyModule, SapphireIconModule],\n exports: [\n FeedbackMessageComponent,\n FeedbackMessageIcon,\n FeedbackMessageHeading,\n FeedbackMessageBody,\n FeedbackMessageActions,\n ],\n})\nexport class SapphireFeedbackMessageModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/feedback-message.component';\nexport * from './src/feedback-message.module';\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nexport interface SortDescriptor {\n column: string | null;\n direction: 'ascending' | 'descending';\n}\n\n@Directive({\n selector: 'sp-table[spTableSort]',\n standalone: false,\n})\nexport class TableSortDirective implements OnChanges {\n @Input('spTableSort')\n sortDescriptor: SortDescriptor = {\n column: null,\n direction: 'descending',\n };\n\n @Output('spTableSortChange')\n sortChange: EventEmitter<SortDescriptor> = new EventEmitter();\n\n private isControlled: boolean = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isControlled = Boolean(changes.sortDescriptor?.currentValue);\n }\n\n setSortDescriptor(sortDescriptor: SortDescriptor): void {\n if (!this.isControlled) {\n this.sortDescriptor = sortDescriptor;\n }\n this.sortChange.emit(sortDescriptor);\n }\n\n constructor() {}\n}\n","import { Directive, Input } from '@angular/core';\nimport { TableSortDirective } from './table-sort.directive';\n\n@Directive({\n selector: '[spTableSortHeader]',\n host: {\n // TableHeadCellComponent will provide spTableSortHeader\n class: 'sapphire-table__headCell--sortable',\n '[class.sapphire-table__headCell--sorted]': 'isSorted()',\n '(click)': 'emitSortChange()',\n '[style.user-select]': '\"none\"',\n '[attr.aria-sort]':\n 'isSorted() ? tableSort.sortDescriptor.direction : \"none\"',\n },\n standalone: false,\n})\nexport class TableSortHeaderDirective {\n @Input('spTableSortHeader')\n sortHeader: string = '';\n\n constructor(public tableSort: TableSortDirective) {}\n\n emitSortChange() {\n const currentSortDescription = this.tableSort.sortDescriptor;\n const newSortDescriptor = {\n column: this.sortHeader,\n direction:\n currentSortDescription.column === this.sortHeader &&\n currentSortDescription.direction === 'ascending'\n ? ('descending' as const)\n : ('ascending' as const),\n };\n this.tableSort.setSortDescriptor(newSortDescriptor);\n }\n\n isSorted() {\n return this.tableSort.sortDescriptor.column === this.sortHeader;\n }\n}\n","import { Component, forwardRef, HostListener, Inject } from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\n\n@Component({\n selector: 'sp-tooltip',\n template: `\n <div [id]=\"tooltipDirective.id\" class=\"sapphire-tooltip\" role=\"tooltip\">\n <div class=\"sapphire-theme--contrast\">\n <div class=\"sapphire-tooltip__content\">\n {{ tooltipDirective.tooltipText }}\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./tooltip.component.scss'],\n standalone: false,\n})\nexport class TooltipComponent {\n @HostListener('mouseenter')\n onMouseEnter() {\n this.tooltipDirective.warmup();\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltipDirective.hide();\n }\n\n constructor(\n @Inject(forwardRef(() => TooltipDirective))\n public tooltipDirective: TooltipDirective\n ) {}\n}\n","import { Component } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n/**\n * Sapphire default theme\n */\n@Component({\n selector: 'sp-theme-default',\n standalone: true,\n template: '<ng-content></ng-content>',\n hostDirectives: [ThemeBaseDirective],\n styleUrls: ['./theme-default.component.scss'],\n})\nexport class ThemeDefault {}\n\n/**\n * Sapphire default theme\n */\n@Component({\n selector: 'sp-theme-default-dark',\n standalone: true,\n template: '<ng-content></ng-content>',\n hostDirectives: [ThemeBaseDirective],\n styleUrls: ['./theme-default-dark.component.scss'],\n})\nexport class ThemeDefaultDark {}\n","import { Directive, ElementRef, Optional, SkipSelf } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\n\n/**\n * Applies the current theme style on an element which is not under the rendered\n * sp-theme, in DOM tree. Useful for non-Sapphire portal components that render things in body.\n *\n */\n@Directive({\n selector: '[sp-theme-root]',\n standalone: true,\n})\nexport class ThemeRootDirective {\n constructor(\n elementRef: ElementRef,\n themeRef: TopLevelThemeRef,\n @Optional() @SkipSelf() parentTheme: ThemeBaseDirective\n ) {\n const theme = parentTheme || themeRef.theme;\n theme.applyOnDomNode(elementRef.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ThemeDefault, ThemeDefaultDark } from './themes';\nimport { ThemeRootDirective } from './theme-root.directive';\n\n/**\n * - Makes sure currently applied theme is applied on overlays which are rendered as portal\n * - Provides `THEME_ATTRIBUTE` injectable via sp-theme component. Useful when a custom component\n * needs to render a portal with the currently applied theme class.\n */\n@NgModule({\n declarations: [],\n imports: [OverlayModule, ThemeRootDirective, ThemeDefault, ThemeDefaultDark],\n exports: [ThemeRootDirective, ThemeDefault, ThemeDefaultDark],\n})\nexport class SapphireThemeModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\n\n/**\n * IMPORTANT:\n * By re-exporting semantic tokens from @danske/sapphire-css, as an interface to allow users of\n * @danske/sapphire-angular to access design system values, we should be mindful of breaking changes\n * every time @danske/sapphire-css is upgraded to new major versions.\n */\nexport { tokens } from '@danske/sapphire-css/themes';\n\nexport type Breakpoint = 'XS' | 'S' | 'M' | 'L' | 'XL';\nexport type Breakpoints = Record<Breakpoint, number>;\n\n/**\n * Exporting \"tokens.size.breakpoint\" is not good enough.\n * That is a map from breakpoint name to a a string which is the css variable\n * that will have the breakpoint size. This is not useful in a JS context.\n *\n * TODO: export something which uses the \"tokens.size.breakpoint\" and offers\n * something usabled in JS.\n */\nexport const DEFAULT_BREAKPOINTS: Breakpoints = {\n XS: 576,\n S: 768,\n M: 960,\n L: 1200,\n XL: 1400,\n};\n\nexport { SapphireThemeModule } from './src/theme.module';\nexport { SapphireOverlay } from './src/sapphire-overlay.service';\nexport { ThemeDefaultDark, ThemeDefault } from './src/themes';\nexport { ThemeRootDirective } from './src/theme-root.directive';\n\n// Exported just for the issue with vscode\nexport { ThemeBaseDirective } from './src/theme-base.directive';\nexport { ThemeCheckDirective } from './src/theme-check.directive';\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Injector,\n Input,\n} from '@angular/core';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './tooltip.component';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { SapphireOverlay } from '../../theme/public_api';\n\nconst tooltips: Record<string, TooltipDirective> = {};\nlet globalWarmedUp = false;\nlet globalWarmUpTimeout: ReturnType<typeof setTimeout> | null = null;\nlet globalCooldownTimeout: ReturnType<typeof setTimeout> | null = null;\n\nconst TOOLTIP_COOLDOWN = 500;\n\n@Directive({\n // This allows for this directive to be used in hostDirectives of other components/directives\n // E.g. useful for having a tooltip on a truncated table cell element\n standalone: true,\n selector: '[spTooltip]',\n host: {\n '(mouseenter)': 'warmup()',\n '(mouseleave)': 'hide()',\n '(click)': 'hide(true)',\n },\n exportAs: 'spTooltip',\n})\nexport class TooltipDirective {\n private _overlayRef: OverlayRef | null = null;\n private _portal: ComponentPortal<TooltipComponent> | null = null;\n private _closeTimeout: ReturnType<typeof setTimeout> | undefined;\n\n @AutoId()\n id = '';\n\n /**\n * The string to show inside the tooltip or null to disable it.\n */\n @Input('spTooltip')\n tooltipText: string | null = '';\n\n /**\n * The amount of time that has to pass before tooltip will show\n * upon user interaction activating it – aka \"warm up\" period.\n *\n * @default 500\n */\n @Input('spTooltipDelay')\n get delay(): number | undefined {\n return this._delay;\n }\n set delay(value: NumberInput) {\n this._delay = coerceNumberProperty(value);\n }\n _delay = 500;\n\n @HostListener('document:keydown.escape')\n private handleGlobalEscapeKeyEvent() {\n if (this._overlayRef?.hasAttached()) {\n this.hide(true);\n }\n }\n\n @HostListener('focus', ['$event'])\n private onFocus(event: FocusEvent) {\n if (\n event.target === this._elementRef.nativeElement &&\n !this._overlayRef?.hasAttached()\n ) {\n this.show();\n }\n }\n\n @HostListener('blur', ['$event'])\n private onBlur(event: FocusEvent) {\n if (event.target === this._elementRef.nativeElement) {\n this.hide(true);\n }\n }\n\n @Input('spTooltipPlacement')\n placement: 'start' | 'center' | 'end' = 'center';\n\n isOpen = () => {\n return this._overlayRef?.hasAttached();\n };\n\n private ensureTooltipEntry = () => {\n tooltips[this.id] = this;\n };\n\n private closeOpenTooltips = () => {\n for (const id in tooltips) {\n if (id !== this.id) {\n tooltips[id]?.hide(true);\n delete tooltips[id];\n }\n }\n };\n\n show = () => {\n if (typeof this.tooltipText !== 'string' || this.tooltipText.length < 1) {\n return;\n }\n\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n this.closeOpenTooltips();\n this.ensureTooltipEntry();\n globalWarmedUp = true;\n this.attachTooltipPortal();\n if (globalWarmUpTimeout) {\n clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = null;\n }\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n };\n\n hide = (immediate?: boolean) => {\n const detach = () => {\n this._closeTimeout = undefined;\n this._overlayRef?.detach();\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n };\n\n if (immediate) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n detach();\n } else if (!this._closeTimeout) {\n this._closeTimeout = setTimeout(() => {\n detach();\n }, TOOLTIP_COOLDOWN);\n }\n\n if (globalWarmUpTimeout) {\n clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = null;\n }\n if (globalWarmedUp) {\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n globalCooldownTimeout = setTimeout(() => {\n delete tooltips[this.id];\n globalCooldownTimeout = null;\n globalWarmedUp = false;\n }, TOOLTIP_COOLDOWN);\n }\n };\n\n warmup = () => {\n this.closeOpenTooltips();\n this.ensureTooltipEntry();\n if (\n !this._overlayRef?.hasAttached() &&\n !globalWarmUpTimeout &&\n !globalWarmedUp\n ) {\n globalWarmUpTimeout = setTimeout(() => {\n globalWarmUpTimeout = null;\n globalWarmedUp = true;\n this.show();\n }, this.delay);\n } else if (!this._overlayRef?.hasAttached()) {\n this.show();\n } else if (this._overlayRef?.hasAttached()) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n }\n };\n\n private attachTooltipPortal = () => {\n if (this._overlayRef?.hasAttached()) return;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this.id);\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions([\n {\n originX: this.placement,\n originY: 'bottom',\n overlayX: this.placement,\n overlayY: 'top',\n offsetY: 6,\n },\n {\n originX: this.placement,\n originY: 'top',\n overlayX: this.placement,\n overlayY: 'bottom',\n offsetY: -6,\n },\n ])\n .withFlexibleDimensions(false)\n .withViewportMargin(6);\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n });\n this._portal = new ComponentPortal(\n TooltipComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: TooltipDirective,\n useValue: this,\n },\n ],\n })\n );\n this._overlayRef.attach(this._portal).instance;\n };\n\n constructor(\n private _overlay: SapphireOverlay,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n}\n","import {\n AfterContentChecked,\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n/**\n * Shows a tooltip with the text content of the host element, if the content is\n * overflowing. It also applies inline styles to hide the overflow and show the\n * ellipsis.\n *\n * @example <something spTruncatedWithTooltip>Overflow will always be truncated</something>\n * @example <something spTruncatedWithTooltip=\"someCondition\">Overflow will be truncated only if someCondition is truthy</something>\n */\n@Directive({\n selector: '[spTruncatedWithTooltip]',\n standalone: true,\n hostDirectives: [TooltipDirective],\n host: {\n '[style.overflow]': 'enabled && \"hidden\"',\n '[style.text-overflow]': 'enabled && \"ellipsis\"',\n '[style.white-space]': 'enabled && \"nowrap\"',\n },\n})\nexport class TruncatedWithTooltipDirective implements AfterContentChecked {\n /**\n * Whether the directive is enabled.\n */\n @CoerceBoolean\n @Input('spTruncatedWithTooltip')\n enabled: BooleanInput = true;\n\n constructor(\n private tooltipDirective: TooltipDirective,\n private elementRef: ElementRef\n ) {}\n\n ngAfterContentChecked(): void {\n const contentElement = this.elementRef.nativeElement;\n this.tooltipDirective.tooltipText =\n this.enabled && this.hasOverflow() ? contentElement.innerText : null;\n }\n\n private hasOverflow() {\n const contentElement = this.elementRef.nativeElement;\n return (\n contentElement.scrollWidth > contentElement.clientWidth ||\n contentElement.scrollHeight > contentElement.clientHeight\n );\n }\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport { TableSortHeaderDirective } from './table-sort-header.directive';\nimport { TableComponent } from './table.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconCaretDown, iconCaretUp } from '@danske/sapphire-icons/js';\n\n@Component({\n selector: 'th[sp-table-th]',\n templateUrl: './table-header-cell.component.html',\n host: {\n '[class.sapphire-table__headCell]': '!selectionCell',\n '[class.sapphire-table__cell]': 'selectionCell',\n '[class.sapphire-table__cell--alignLeft]': \"align === 'left'\",\n '[class.sapphire-table__cell--alignCenter]': \"align === 'center'\",\n '[class.sapphire-table__cell--alignRight]': \"align === 'right'\",\n '[class.sapphire-table__selectionCell]': 'selectionCell',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableHeadCellComponent {\n /**\n * Horizontal alignment of content in the cell.\n */\n @Input()\n align?: 'left' | 'center' | 'right' = 'left';\n\n @HostBinding('style.width')\n @Input()\n width?: string;\n\n @HostBinding('style.min-width')\n @Input()\n minWidth?: string;\n\n @HostBinding('style.max-width')\n @Input()\n maxWidth?: string;\n\n /**\n * Applies the styles for selection cell. A selection cell is the first cell in a row, containing\n * a checkbox.\n */\n @Input()\n @CoerceBoolean\n selectionCell: BooleanInput = false;\n\n get cellOverflow() {\n return this.table.cellOverflow;\n }\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n private table: TableComponent,\n iconRegistry: IconRegistry,\n @Optional() public tableSortHeader?: TableSortHeaderDirective\n ) {\n iconRegistry.registerIcons([iconCaretUp, iconCaretDown]);\n }\n}\n","<div\n *ngIf=\"!selectionCell\"\n class=\"sapphire-table__headCell_container\"\n _spUseComponentStyles\n>\n <span *ngIf=\"tableSortHeader && align === 'right'\">\n <ng-container *ngTemplateOutlet=\"sortIcon\"></ng-container>\n </span>\n <span [spTruncatedWithTooltip]=\"cellOverflow === 'truncate'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n <span *ngIf=\"tableSortHeader && align !== 'right'\">\n <ng-container *ngTemplateOutlet=\"sortIcon\"></ng-container>\n </span>\n</div>\n<ng-container *ngIf=\"selectionCell\"\n ><ng-container *ngTemplateOutlet=\"content\"></ng-container\n></ng-container>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #sortIcon>\n <span\n *ngIf=\"tableSortHeader\"\n aria-hidden=\"true\"\n [class.sapphire-table-sortableIcon]=\"\n tableSortHeader.tableSort.sortDescriptor.column !==\n tableSortHeader.sortHeader\n \"\n [class.sapphire-table-sortedIcon]=\"\n tableSortHeader.tableSort.sortDescriptor.column ===\n tableSortHeader.sortHeader\n \"\n _spUseComponentStyles\n >\n <sp-icon\n [name]=\"\n tableSortHeader.tableSort.sortDescriptor.column ===\n tableSortHeader.sortHeader &&\n tableSortHeader.tableSort.sortDescriptor.direction === 'descending'\n ? 'sortDescending'\n : 'sortAscending'\n \"\n size=\"md\"\n ></sp-icon>\n </span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\nimport { TruncatedWithTooltipDirective } from './truncated-with-tooltip.directive';\n\n@NgModule({\n declarations: [TooltipComponent],\n imports: [\n CommonModule,\n OverlayModule,\n TooltipDirective,\n TruncatedWithTooltipDirective,\n ],\n exports: [TooltipDirective, TruncatedWithTooltipDirective],\n})\nexport class SapphireTooltipModule {}\n","import {\n AfterContentChecked,\n Directive,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport { TableRowDirective } from './table-row.directive';\nimport { TableComponent } from './table.component';\nimport { TruncatedWithTooltipDirective } from '../../tooltip/public_api';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\ntype CellAlignment = 'left' | 'center' | 'right';\n\n@Directive({\n selector: 'td[sp-table-td]',\n hostDirectives: [TruncatedWithTooltipDirective, UseComponentStyles],\n host: {\n class: 'sapphire-table__cell',\n '[class.sapphire-table__cell--alignLeft]': \"align === 'left'\",\n '[class.sapphire-table__cell--alignCenter]': \"align === 'center'\",\n '[class.sapphire-table__cell--alignRight]': \"align === 'right'\",\n '[class.sapphire-table__selectionCell]': 'selectionCell',\n },\n standalone: false,\n})\nexport class TableCellDirective implements AfterContentChecked {\n @HostBinding('attr.role')\n get role() {\n return this.isFirstCellInRow ? 'rowheader' : 'cell';\n }\n /**\n * Horizontal alignment of content in the cell.\n *\n * @default 'left'\n */\n @HostBinding('attr.align')\n @Input()\n get align(): CellAlignment | undefined {\n return this._align || this.headCell?.align;\n }\n\n /**\n * Applies the styles for selection cell.\n * A selection cell is the first cell in a row, containing a checkbox.\n */\n @Input()\n @CoerceBoolean\n selectionCell: BooleanInput = false;\n\n set align(value: CellAlignment | undefined) {\n this._align = value;\n }\n private _align: CellAlignment | undefined;\n @HostBinding('style.width')\n get width() {\n return this.headCell?.width;\n }\n\n @HostBinding('style.min-width')\n get minWidth() {\n return this.headCell?.minWidth;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.headCell?.maxWidth;\n }\n\n private headCell?: TableHeadCellComponent;\n private isFirstCellInRow = false;\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n private table: TableComponent,\n private truncatedWithTooltipDirective: TruncatedWithTooltipDirective,\n @Inject(forwardRef(() => TableRowDirective))\n private tableRow: TableRowDirective\n ) {}\n\n ngAfterContentChecked(): void {\n this.truncatedWithTooltipDirective.enabled =\n this.table.cellOverflow === 'truncate';\n this.headCell = this.tableRow.getColumnHeadCell(this);\n this.isFirstCellInRow = this.tableRow.cells.toArray().indexOf(this) === 0;\n }\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'tfoot[sp-table-tfoot]',\n host: {\n class: 'sapphire-table__tfoot',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableFooterDirective {\n constructor() {}\n}\n","import {\n ContentChildren,\n Directive,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n} from '@angular/core';\nimport { TableComponent } from './table.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { TableFooterDirective } from './table-footer.directive';\n\n@Directive({\n selector: 'tr[sp-table-tr]',\n host: {\n class: 'sapphire-table__row',\n /**\n * We want the css hover styles to not be applied for the disabled rows.\n * The \"js-hover\" class basically means that we're taking over the hover\n * styles from css.\n */\n '[class.sapphire-table__row--selected]': 'selected',\n '[class.sapphire-table__row--highlighted]': 'highlighted',\n '[attr.aria-selected]': 'selected || null',\n '[class.js-hover]': 'disabled||_footer',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableRowDirective<D = unknown> {\n @ContentChildren(TableCellDirective)\n cells: QueryList<TableCellDirective> = new QueryList();\n\n @Input()\n rowData: D | null = null;\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput = false;\n\n /**\n * Applies selected row styles, and marks the row as selected for assistive technology.\n */\n @Input()\n @CoerceBoolean\n selected: BooleanInput = false;\n\n /**\n * Applies highlighted row styles. Highlighted rows are shown in a selected state\n * which is different from the normal selection with checkboxes. The primary use case is when\n * the row action is to update an external view (such as a row detail view), to\n * show its connection with the selected row.\n */\n @Input()\n @CoerceBoolean\n highlighted: BooleanInput = false;\n\n @HostListener('click')\n private onRowClick() {\n if (!this.disabled && !this._footer) {\n this.table.rowAction.emit({\n index:\n this.table.rows?.toArray().findIndex((row) => row === this) ?? -1,\n rowData: this.rowData,\n });\n }\n }\n\n public getColumnHeadCell(cell: TableCellDirective) {\n const index = this.cells.toArray().indexOf(cell);\n return this.table.headCells?.toArray()[index];\n }\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n public table: TableComponent,\n @Optional()\n public _footer: TableFooterDirective\n ) {}\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableComponent } from './table.component';\n\n@Directive({\n selector: 'table[sp-table]',\n host: {\n class: 'sapphire-table__table',\n '[class.sapphire-table__table--spacing-sm]': '_table.cellSpacing === \"sm\"',\n '[class.sapphire-table__table--spacing-lg]': '_table.cellSpacing === \"lg\"',\n '[class.sapphire-table__table--spacing-xl]': '_table.cellSpacing === \"xl\"',\n '[class.sapphire-table__table--fixed-layout]': '_table.layout === \"fixed\"',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableDirective {\n constructor(public _table: TableComponent) {}\n}\n","import {\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { TableRowDirective } from './table-row.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { TableDirective } from './table.directive';\n\nexport interface RowActionEvent<D> {\n index: number;\n rowData: D;\n}\n\n@Component({\n selector: 'sp-table',\n template: `\n <ng-container>\n <ng-content select=\"table\"></ng-content>\n </ng-container>\n `,\n host: {\n class: 'sapphire-table',\n '[style.height]': 'height',\n '[style.max-height]': 'maxHeight',\n '[class.sapphire-table--overflow]': 'height || maxHeight',\n '[class.sapphire-table--interactive]': 'isInteractive',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./table.component.scss'],\n standalone: false,\n})\nexport class TableComponent {\n /**\n * Handler that is called when a user performs an action on a row.\n */\n @Output()\n rowAction = new EventEmitter<RowActionEvent<unknown>>();\n\n /**\n * If the table header should be sticky relative to the first ancestor with\n * an `overflow`.\n * `auto` means it is `true` if the table has a custom `height` or\n * `maxHeight` and `false` otherwise.\n */\n @Input()\n stickyHeader: 'on' | 'off' | 'auto' = 'auto';\n\n /**\n * Whether text within a table cell should be truncated and followed by\n * 3 dots or it should wrap.\n */\n @Input()\n cellOverflow: 'wrap' | 'truncate' = 'truncate';\n\n @Input()\n height: number | undefined = undefined;\n\n @Input()\n maxHeight: number | undefined = undefined;\n\n @Input()\n cellSpacing: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Same as CSS table-layout property.\n * @default 'auto'\n */\n @Input()\n layout?: 'auto' | 'fixed';\n\n get isInteractive() {\n return this.rowAction.observers.length > 0;\n }\n\n @ContentChildren(TableRowDirective, { descendants: true })\n rows?: QueryList<TableRowDirective>;\n\n @ContentChildren(TableHeadCellComponent, { descendants: true })\n headCells?: QueryList<TableHeadCellComponent>;\n\n @ContentChild(TableDirective, { descendants: true })\n table?: TableDirective;\n\n constructor() {}\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'tbody[sp-table-tbody]',\n host: {\n class: 'sapphire-table__body',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableBodyDirective {\n constructor() {}\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { TableComponent } from './table.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'thead[sp-table-thead]',\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableHeadDirective {\n @HostBinding('class')\n private get classNames() {\n const classes = ['sapphire-table__head'];\n\n if (\n this.table.stickyHeader === 'on' ||\n (this.table.stickyHeader === 'auto' &&\n (this.table.height || this.table.maxHeight))\n ) {\n classes.push('sapphire-table__head--sticky');\n }\n\n return classes.join(' ');\n }\n\n constructor(public table: TableComponent) {}\n}\n","import { Directive, OnInit } from '@angular/core';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n/**\n * A patch to fix the issue of sticky header position getting affected\n * by transform, which is due to transform making the element\n * a [containing block](https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block).\n *\n * It intercepts style assignments on the content wrapper, and converts\n * transform: translateY(value) to top: value, to avoid making the content\n * wrapper a containing block for sticky positioned children.\n *\n * @see\n * https://github.com/angular/components/issues/14833\n * https://github.com/angular/components/issues/18240\n * https://github.com/angular/components/issues/21576\n * https://github.com/angular/components/issues/28584\n */\n@Directive({\n selector: 'cdk-virtual-scroll-viewport',\n standalone: true,\n})\nexport class CdkVirtualScrollViewportFixDirective implements OnInit {\n constructor(private cdkViewport: CdkVirtualScrollViewport) {}\n\n ngOnInit() {\n const contentWrapper = this.cdkViewport._contentWrapper.nativeElement;\n /**\n * Proxy to set `top: {value}px` instead of `transform: translateY({value}px)`\n * whenever `style.transform` is set.\n */\n const styleProxy = new Proxy(contentWrapper.style, {\n set: (target, prop, value) => {\n const top: string | undefined =\n prop === 'transform'\n ? value?.match(/translateY\\((\\d+)px\\)/)?.[1]\n : undefined;\n if (top) {\n target['top'] = `${top}px`;\n return true;\n }\n (target as any)[prop] = value;\n return true;\n },\n });\n\n // Not directly setting style proxy to contentWrapper.style, to limit\n // it to the styles set by CdkVirtualScrollViewport.\n // i.e. only setting `top` instead of `transform`, when set by cdk viewport.\n this.cdkViewport._contentWrapper.nativeElement = new Proxy(contentWrapper, {\n get: (target, prop) => {\n return prop === 'style' ? styleProxy : (target as any)[prop];\n },\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableComponent } from './table.component';\nimport { TableBodyDirective } from './table-body.directive';\nimport { TableHeadDirective } from './table-head.directive';\nimport { TableRowDirective } from './table-row.directive';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { TableSortHeaderDirective } from './table-sort-header.directive';\nimport { TableSortDirective } from './table-sort.directive';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { TruncatedWithTooltipDirective } from '../../tooltip/public_api';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableDirective } from './table.directive';\nimport { TableFooterDirective } from './table-footer.directive';\nimport { CdkVirtualScrollViewportFixDirective } from './cdk-virtual-scroll-viewport-fix.directive';\n\n@NgModule({\n declarations: [\n TableComponent,\n TableDirective,\n TableBodyDirective,\n TableFooterDirective,\n TableHeadDirective,\n TableRowDirective,\n TableHeadCellComponent,\n TableCellDirective,\n TableSortDirective,\n TableSortHeaderDirective,\n ],\n imports: [\n CommonModule,\n SapphireIconModule,\n TruncatedWithTooltipDirective,\n CdkVirtualScrollViewportFixDirective,\n UseComponentStyles,\n ],\n exports: [\n TableComponent,\n TableDirective,\n TableBodyDirective,\n TableFooterDirective,\n TableHeadDirective,\n TableRowDirective,\n TableHeadCellComponent,\n TableCellDirective,\n TableSortDirective,\n TableSortHeaderDirective,\n CdkVirtualScrollViewportFixDirective,\n ],\n})\nexport class SapphireTableModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/table.component';\nexport * from './src/table.directive';\nexport * from './src/table-row.directive';\nexport * from './src/table-cell.directive';\nexport * from './src/table-footer.directive';\nexport * from './src/table-body.directive';\nexport * from './src/table-head-cell.component';\nexport * from './src/table-head.directive';\nexport * from './src/table-sort.directive';\nexport * from './src/table-sort-header.directive';\nexport * from './src/table.module';\nexport { CdkVirtualScrollViewportFixDirective } from './src/cdk-virtual-scroll-viewport-fix.directive';\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sp-notification-badge',\n templateUrl: './notification-badge.component.html',\n styleUrls: ['./notification-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NotificationBadgeComponent {\n @Input()\n containerType?: 'circle' | 'rectangle' = 'circle';\n\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n variant?: 'primary' | 'secondary' = 'primary';\n\n @Input()\n count?: number = 1;\n\n @Input()\n show?: boolean = true;\n\n /**\n * Flag to toggle the animation of the badge on show/hide.\n *\n * @default 'true'\n */\n @Input()\n animate?: boolean = true;\n}\n","<span\n class=\"sapphire-notification-badge-container\"\n [class.sapphire-notification-badge-container--rectangle]=\"\n containerType === 'rectangle'\n \"\n>\n <ng-content></ng-content>\n <span\n role=\"status\"\n class=\"sapphire-notification-badge\"\n [class.sapphire-notification-badge--lg]=\"size === 'lg'\"\n [class.sapphire-notification-badge--md]=\"size === 'md'\"\n [class.sapphire-notification-badge--sm]=\"size === 'sm'\"\n [class.sapphire-notification-badge--primary]=\"variant === 'primary'\"\n [class.sapphire-notification-badge--secondary]=\"variant === 'secondary'\"\n [class.sapphire-notification-badge--pop-in]=\"show && animate\"\n [class.sapphire-notification-badge--pop-out]=\"!show && animate\"\n *ngIf=\"show || animate\"\n >\n {{\n size !== 'sm'\n ? count && count.toString().length > 2\n ? '99+'\n : count\n : ''\n }}\n </span>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NotificationBadgeComponent } from './notification-badge.component';\n\n@NgModule({\n declarations: [NotificationBadgeComponent],\n imports: [CommonModule],\n exports: [NotificationBadgeComponent],\n})\nexport class SapphireNotificationBadgeModule {}\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n forwardRef,\n HostBinding,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { HasTabIndex, mixinTabIndex } from '../../common/tabindex';\nimport { CanDisable, mixinDisabled } from '../../common/disabled';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n/** Change event object emitted by switch. */\nexport class SapphireSwitchChange {\n constructor(\n /** The new `selected` value of the switch. */\n public readonly selected: boolean,\n /** The source switch of the event. */\n public readonly source: SwitchComponent\n ) {}\n}\n\nconst _SwitchMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n@Component({\n selector: 'sp-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class SwitchComponent\n extends _SwitchMixinBase\n implements ControlValueAccessor, CanDisable, HasTabIndex, FocusableOption\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** @default \"lg\" */\n @Input() size?: 'lg' | 'md' = 'lg';\n\n /** A unique id for the switch input. If none is supplied, it will be auto-generated. */\n @Input()\n @HostBinding()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Event emitted when the switch's `selected` value changes. */\n @Output() readonly change: EventEmitter<SapphireSwitchChange> =\n new EventEmitter<SapphireSwitchChange>();\n\n /** The value attribute of the native input element */\n @Input() value: string | undefined;\n\n /** Whether the switch is required. */\n @Input()\n @CoerceBoolean\n required: BooleanInput;\n\n /** Whether the switch is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: BooleanInput) {\n const selected = coerceBooleanProperty(value);\n\n if (selected != this.selected) {\n this._selected = selected;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _selected: boolean = false;\n\n /**\n * Whether the switch is disabled. This fully overrides the implementation provided by\n * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.\n */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _disabled: boolean = false;\n\n /**\n * Whether the switch is readonly.\n */\n @Input()\n @CoerceBoolean\n readonly: BooleanInput;\n\n /**\n * Called when the switch is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(elementRef);\n this.tabIndex = parseInt(tabIndex) || 0;\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.selected = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /** Toggles the `selected` state of the switch. */\n toggle(): void {\n this.selected = !this.selected;\n this.controlValueAccessorChangeFn(this.selected);\n }\n\n focus() {\n this._inputElement.nativeElement.focus();\n }\n\n _onInputClick($event: Event) {\n $event.stopPropagation();\n if (!this.disabled && !this.readonly) {\n this._selected = !this._selected;\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise, the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n _onBlur() {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n });\n }\n private emitChangeEvent() {\n this.controlValueAccessorChangeFn(this.selected);\n this.change.emit(new SapphireSwitchChange(this.selected, this));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.selected;\n }\n }\n}\n","<label\n class=\"sapphire-switch\"\n [class.sapphire-switch--md]=\"size === 'md'\"\n [attr.for]=\"inputId\"\n>\n <input\n #input\n class=\"sapphire-switch-input\"\n role=\"switch\"\n type=\"checkbox\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [id]=\"inputId\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick($event)\"\n (change)=\"_onInteractionEvent($event)\"\n />\n <span class=\"sapphire-switch-track\"></span>\n <span span class=\"sapphire-switch-label\"><ng-content></ng-content></span>\n</label>\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst SWITCH_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireSwitchRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire switch's required attribute in template-driven checkbox.\n */\n@Directive({\n selector: `sp-switch[required][formControlName],\n sp-switch[required][formControl], sp-switch[required][ngModel]`,\n providers: [SWITCH_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireSwitchRequiredValidator extends CheckboxRequiredValidator {\n @Input('required')\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SwitchComponent } from './switch.component';\nimport { SapphireSwitchRequiredValidator } from './switch-required-validator';\n\n@NgModule({\n declarations: [SwitchComponent, SapphireSwitchRequiredValidator],\n imports: [CommonModule],\n exports: [SwitchComponent, SapphireSwitchRequiredValidator],\n})\nexport class SapphireSwitchModule {}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../../theme/src/theme-check.directive';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FieldControl } from '../../../field/src/field-control';\nimport { RadioGroupBase } from '../shared/radio-group-base';\nimport { ViewEncapsulationProvider } from '../../../common/sapphire-view-encapsulation';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'sp-segmented-radio-group',\n templateUrl: './segmented-radio-group.component.html',\n styleUrls: ['./segmented-radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n ViewEncapsulationProvider,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n multi: true,\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n },\n {\n provide: RadioGroupBase,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n },\n ],\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class SegmentedRadioGroupComponent\n extends RadioGroupBase\n implements AfterViewInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('segmentedControl') segmentedControl!: ElementRef;\n\n /**\n * Label (not shown on the screen).\n * Required for accessibility reasons.\n **/\n @Input('aria-label')\n ariaLabel!: string;\n\n /** Size of tabs */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Alignment of tabs' buttons group.\n * @default 'left'\n */\n @Input()\n align?: 'left' | 'center' | 'right' | 'stretch' = 'left';\n\n private resizeObserver: ResizeObserver | undefined;\n _gliderStyles = { left: '0px', width: '0px' };\n _animationEnabled = false;\n _focusVisible = false;\n\n constructor(private zone: NgZone, private changeDetector: ChangeDetectorRef) {\n super(changeDetector, undefined as any);\n this.skipAnimationFrame();\n }\n\n private skipAnimationFrame() {\n // We want to avoid animation on first render and whenever tab content changes\n this._animationEnabled = false;\n requestAnimationFrame(() => {\n this._animationEnabled = true;\n });\n }\n\n private setGliderStyles() {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n this._gliderStyles = {\n left: `${offsetLeft}px`,\n width: `${clientWidth}px`,\n };\n }\n\n private getSelectedTabPosition() {\n const selected = this.selected?.elementRef.nativeElement;\n return {\n offsetLeft: selected?.offsetLeft || 0,\n clientWidth: selected?.clientWidth || 0,\n };\n }\n\n private shouldUpdateGliderStyles(): boolean {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n return (\n `${offsetLeft}px` !== this._gliderStyles.left ||\n `${clientWidth}px` !== this._gliderStyles.width\n );\n }\n\n ngAfterViewInit(): void {\n this.setGliderStyles();\n this.resizeObserver = new ResizeObserver(() => {\n if (this.shouldUpdateGliderStyles()) {\n // zonejs doesn't monkey-patch resize observer (yet)\n this.zone.run(() => {\n this.setGliderStyles();\n });\n }\n });\n\n this.resizeObserver.observe(this.segmentedControl.nativeElement);\n this.change.subscribe(() => {\n this.setGliderStyles();\n });\n }\n\n ngAfterViewChecked(): void {\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.segmentedControl.nativeElement);\n this.change.unsubscribe();\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this._focusVisible = focusOrigin === 'keyboard';\n if (!focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n >\n <ng-content></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\nimport { ThemeCheckDirective } from '../../../theme/src/theme-check.directive';\nimport { RadioBase } from '../shared/radio-base';\n\n@Component({\n selector: 'sp-segmented-radio',\n templateUrl: './segmented-radio.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [ThemeCheckDirective, UseComponentStyles],\n inputs: ['tabIndex'],\n host: {\n class: 'sapphire-segmented-control__button',\n '[class.sapphire-segmented-control__button--disabled]': 'disabled',\n '[class.sapphire-segmented-control__button--active]': 'checked',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n },\n standalone: false,\n})\nexport class SegmentedRadioComponent extends RadioBase {}\n","<label [for]=\"inputId\">\n <input\n #input\n _spUseComponentStyles\n class=\"sapphire-segmented-control__radio-input\"\n type=\"radio\"\n [id]=\"inputId\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"_onInputInteraction($event)\"\n [attr.autofocus]=\"autofocus ? true : null\"\n />\n <ng-content></ng-content>\n</label>\n","import { NgModule } from '@angular/core';\nimport { RadioComponent } from './radio.component';\nimport { RadioGroupComponent } from './radio-group.component';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireFieldModule } from '../../field/src/field.module';\nimport { LabelComponent } from '../../label/public_api';\nimport { SegmentedRadioGroupComponent } from './segmented/segmented-radio-group.component';\nimport { SegmentedRadioComponent } from './segmented/segmented-radio.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n RadioComponent,\n RadioGroupComponent,\n SegmentedRadioComponent,\n SegmentedRadioGroupComponent,\n ],\n imports: [\n CommonModule,\n LabelComponent,\n A11yModule,\n SapphireFieldModule,\n UseComponentStyles,\n ],\n exports: [\n RadioComponent,\n RadioGroupComponent,\n SegmentedRadioComponent,\n SegmentedRadioGroupComponent,\n SapphireFieldModule,\n ],\n})\nexport class SapphireRadioModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/radio.component';\nexport * from './src/radio-group.component';\nexport * from './src/radio.module';\nexport * from './src/segmented/segmented-radio.component';\nexport * from './src/segmented/segmented-radio-group.component';\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType, PositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\nimport { ThemeBaseDirective } from '../../theme/src/theme-base.directive';\n\nexport interface ModalOptions {\n /**\n * Whether to close the dialog when the backdrop is clicked/touched.\n * @default false\n */\n dismissable?: boolean;\n /**\n * Whether pressing the escape key to close the dialog should be disabled.\n * @default false\n */\n keyboardDismissDisabled?: boolean;\n\n /**\n * The theme to apply on the opened modal. It allows for injecting and\n * passing along the \"current\" theme, when `ModalService` is used in a\n * trigger component.\n */\n theme?: ThemeBaseDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n constructor(private cdkDialog: Dialog, private overlay: SapphireOverlay) {}\n\n private open<R = unknown, C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {},\n positionStrategy?: PositionStrategy\n ): DialogRef<R, C> {\n const dialogRef: DialogRef<R, C> = this.cdkDialog.open(\n componentOrTemplateRef,\n {\n /**\n * There is no separate option for dismiss-ability by mouse and\n * keyboard. So, we disable both via `disableClose`, and set up our own\n * listeners below.\n * Another reason we need to handle escapes ourself is an extra check on\n * event target being located within the dialog. To avoid Escapes pressed\n * on popovers closing the dialog as well.\n */\n disableClose: true,\n backdropClass: [\n 'cdk-overlay-backdrop-noop-animation', // To disable the default cdk animation\n 'sapphire-backdrop',\n ],\n positionStrategy,\n }\n );\n this.overlay.applyTheme(dialogRef.overlayRef, options.theme);\n const close = dialogRef.close.bind(dialogRef);\n\n (dialogRef as any).immediateClose = close;\n\n (dialogRef as any).closing = false;\n\n dialogRef.close = () => {\n (dialogRef as any).closing = true;\n dialogRef?.overlayRef.backdropElement?.classList.add(\n 'sapphire-backdrop--exiting'\n );\n dialogRef?.overlayRef.backdropElement?.addEventListener(\n 'animationend',\n () => {\n close();\n (dialogRef as any).closing = false;\n },\n { once: true }\n );\n };\n\n dialogRef.backdropClick.subscribe(() => {\n if (options?.dismissable) {\n dialogRef.close(undefined, { focusOrigin: 'mouse' });\n }\n });\n\n dialogRef.keydownEvents.subscribe((event) => {\n if (\n event.code === 'Escape' &&\n !options.keyboardDismissDisabled &&\n !hasModifierKey(event) &&\n event.target instanceof Node &&\n dialogRef.overlayRef.hostElement.contains(event.target)\n ) {\n event.preventDefault();\n dialogRef.close(undefined, { focusOrigin: 'keyboard' });\n }\n });\n\n return dialogRef;\n }\n\n openDialog<C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {}\n ) {\n return this.open(componentOrTemplateRef, options);\n }\n\n openPanel<C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {}\n ) {\n return this.open(\n componentOrTemplateRef,\n options,\n this.overlay.position().global().right()\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\n\n/**\n * Monitors host element's **scrolled** and **scrollable** state.\n */\n@Directive({\n selector: '[spScrollMonitor]',\n exportAs: 'spScrollMonitor',\n standalone: true,\n})\nexport class ScrollMonitorDirective implements OnInit, OnDestroy {\n scrolled = false;\n scrollable = false;\n\n @Output('spScrollMonitor')\n change = new EventEmitter<{\n scrollable: boolean;\n scrolled: boolean;\n }>();\n private resizeObserver?: ResizeObserver;\n private subscription?: Subscription;\n constructor(private elementRef: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.update();\n this.subscription = fromEvent(\n this.elementRef.nativeElement,\n 'scroll'\n ).subscribe(() => {\n this.update();\n });\n /**\n * ResizeObserver is not supported by IE but there is a polyfill for it\n * https://www.npmjs.com/package/resize-observer-polyfill\n * https://github.com/que-etc/resize-observer-polyfill\n * so it is safe to use it, in case we need to support IE as well.\n */\n this.resizeObserver = new ResizeObserver(() => {\n this.update();\n });\n this.resizeObserver.observe(this.elementRef.nativeElement);\n });\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.elementRef.nativeElement);\n this.subscription?.unsubscribe();\n }\n\n private update() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const scrollable = element?.scrollHeight > element.offsetHeight;\n const scrolled = element?.scrollTop > 0;\n\n if (scrollable !== this.scrollable || this.scrolled !== scrolled) {\n this.ngZone.run(() => {\n this.scrolled = scrolled;\n this.scrollable = scrollable;\n this.change.emit({ scrollable, scrolled });\n });\n }\n }\n}\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { Directive, HostListener, Optional } from '@angular/core';\nimport { TranslateService } from '../../../common/translate.service';\nimport translations from '../../i18n';\n\n@Directive({\n selector: 'button[spModalCloseButton]',\n host: {\n '[attr.aria-label]': 'dismissLabel',\n },\n standalone: false,\n})\nexport class ModalCloseButtonDirective {\n constructor(\n t: TranslateService,\n @Optional() private dialogRef: DialogRef | null\n ) {\n this.dismissLabel = t.translate('dismiss', translations);\n }\n\n dismissLabel: string;\n\n @HostListener('click')\n close() {\n this.dialogRef?.close();\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { iconClose } from '@danske/sapphire-icons/js';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../../icon/public_api';\n\n/**\n * Marks a piece of UI as modal header (eg. dialog, panel).\n * Use only for **custom** header. For standard header (a heading,\n * optional subheading and a close button),\n * use {@link ModalHeaderComponent sp-modal-header} instead.\n */\n@Directive({\n selector: '[spModalHeader]',\n standalone: true, // need this to use as host directive\n})\nexport class ModalHeaderDirective {\n @HostBinding('id')\n @Input()\n @AutoId()\n id = '';\n}\n\n/**\n * Standard modal header component (eg. dialog, panel), which consists\n * of a heading (the content), optional subheading and a close button.\n * For a custom header, use\n * {@link ModalHeaderDirective spModalHeader attribute directive}.\n */\n@Component({\n selector: 'sp-modal-header',\n templateUrl: './modal-header.component.html',\n hostDirectives: [\n { directive: ModalHeaderDirective, inputs: ['id'] },\n UseComponentStyles,\n ],\n host: {\n class: 'sapphire-modal-layout__header-container',\n },\n standalone: false,\n})\nexport class ModalHeaderComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcon(iconClose);\n }\n\n @Input()\n subheading?: string;\n\n @Input()\n @CoerceBoolean\n hideCloseButton?: BooleanInput = false;\n\n @Output('closeClicked')\n closeEventEmitter = new EventEmitter();\n\n close(event: MouseEvent) {\n this.closeEventEmitter.emit(event);\n }\n}\n","<div class=\"sapphire-modal-layout__header\" _spUseComponentStyles>\n <ng-content select=\"[spModalBackButton]\"></ng-content>\n\n <div class=\"sapphire-modal-layout__heading-container\" _spUseComponentStyles>\n <h4 sp-heading><ng-content></ng-content></h4>\n <div\n *ngIf=\"!!subheading\"\n class=\"sapphire-modal-layout__subheading\"\n _spUseComponentStyles\n >\n {{ subheading }}\n </div>\n </div>\n\n <button\n *ngIf=\"!hideCloseButton\"\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"close($event)\"\n spModalCloseButton\n >\n <sp-icon name=\"close\"></sp-icon>\n </button>\n</div>\n","import {\n CdkDialogContainer,\n DialogConfig,\n DialogRef,\n DialogRole,\n} from '@angular/cdk/dialog';\nimport {\n AfterContentChecked,\n Component,\n ContentChild,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { ModalHeaderDirective } from './layout/modal-header.component';\n\n@Component({\n template: '',\n host: {\n // aria attributes neutralized here, since they are ported to the container\n // Read more about it in implementation-decisions.md\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.role]': 'null',\n },\n standalone: false,\n})\nexport abstract class ModalBaseComponent\n implements OnChanges, AfterContentChecked, OnDestroy\n{\n // Accessibility inputs. We need them to sync them with CdkDialogContainer.\n // Read more about it in implementation-decisions.md\n /**\n * Defines a string value that labels the current element.\n */\n @Input('aria-label')\n ariaLabel?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n /**\n * Identifies the element (or elements) that describes the object.\n */\n @Input('aria-describedby')\n ariaDescribedBy?: string;\n /**\n * The accessibility role for the dialog.\n */\n @Input('role')\n role?: DialogRole;\n\n protected contentInitialized = false;\n\n @ContentChild(ModalHeaderDirective)\n protected header?: ModalHeaderDirective;\n\n constructor(protected dialogRef: DialogRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n const containerInstance = this.dialogRef.containerInstance;\n // Syncing some dialog config properties, when corresponding inputs are changed.\n // Read more about it in implementation-decisions.md\n if (containerInstance instanceof CdkDialogContainer) {\n // Promise.resolve to avoid \"Expression has changed after it was\n // checked\" error, which can happen in some cases.\n Promise.resolve().then(() => {\n const keys: Array<\n keyof Pick<\n DialogConfig,\n 'role' | 'ariaLabel' | 'ariaLabelledBy' | 'ariaDescribedBy'\n >\n > = ['ariaLabel', 'ariaLabelledBy', 'ariaDescribedBy', 'role'];\n keys\n .filter((key) => changes[key as string])\n .forEach((key) => {\n const value = this[key];\n containerInstance._config[key] = value;\n // ariaLabeledBy is for some reason treated differently in\n // CdkDialogContainer, and is read off the instance itself, instead\n // of the config object.\n if (key === 'ariaLabelledBy' && value !== undefined) {\n containerInstance._ariaLabelledBy = value;\n }\n });\n });\n }\n }\n\n ngAfterContentChecked(): void {\n const containerInstance = this.dialogRef.containerInstance;\n const headerId = this.header?.id;\n if (\n headerId &&\n !this.ariaLabel &&\n !this.ariaLabelledBy &&\n containerInstance instanceof CdkDialogContainer &&\n headerId !== containerInstance._ariaLabelledBy\n ) {\n Promise.resolve().then(() => {\n containerInstance._ariaLabelledBy = headerId;\n });\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n (this.dialogRef as any).immediateClose();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { ModalBaseComponent } from '../modal-base.component';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\n\n/**\n * Dialogs focus the user's attention exclusively on one task or piece of\n * information via a dialog box that sits on top of the page content.\n */\n@Component({\n selector: 'sp-dialog',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-dialog',\n '[class.sapphire-dialog--xs]': \"size === 'xs'\",\n '[class.sapphire-dialog--sm]': \"size === 'sm'\",\n '[class.sapphire-dialog--md]': \"size === 'md'\",\n '[class.sapphire-dialog--lg]': \"size === 'lg'\",\n '[class.sapphire-dialog--exiting]': 'dialogRef.closing',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./dialog.component.scss'],\n standalone: false,\n})\nexport class DialogComponent extends ModalBaseComponent {\n /**\n * Dialog size, constraining the width of the dialog.\n */\n @Input()\n size: 'xs' | 'sm' | 'md' | 'lg' = 'sm';\n\n constructor(protected dialogRef: DialogRef) {\n super(dialogRef);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ScrollMonitorDirective } from '../../../common/scroll-monitor.directive';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-modal-body',\n hostDirectives: [ScrollMonitorDirective, UseComponentStyles],\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-modal-layout__body',\n '[class.sapphire-modal-layout__body--no-padding]': 'noPadding',\n '[class.sapphire-modal-layout__body--scrollable]':\n '_scrollMonitor.scrollable',\n '[class.sapphire-modal-layout__body--scrolled]': '_scrollMonitor.scrolled',\n },\n standalone: false,\n})\nexport class ModalBodyComponent {\n @Input()\n get noPadding(): boolean {\n return this._noPadding;\n }\n set noPadding(value: BooleanInput) {\n this._noPadding = coerceBooleanProperty(value);\n }\n private _noPadding: boolean = false;\n\n constructor(public _scrollMonitor: ScrollMonitorDirective) {}\n}\n","import { Component, Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n/**\n * Marks a piece of UI as modal footer (eg. dialog, panel). Use only for\n * **custom** footer. For a standard modal footer with default padding,\n * use {@link ModalFooterComponent sp-modal-footer} instead.\n */\n@Directive({\n selector: '[spModalFooter]',\n host: {\n class: 'sapphire-modal-layout__footer-container',\n },\n hostDirectives: [UseComponentStyles],\n standalone: true,\n})\nexport class ModalFooterDirective {}\n\n/**\n * Standard modal footer component (eg. dialog, panel) with default\n * padding. For a custom footer, use\n * {@link ModalFooterDirective spModalFooter attribute directive}.\n */\n@Component({\n selector: 'sp-modal-footer',\n templateUrl: './modal-footer.component.html',\n hostDirectives: [{ directive: ModalFooterDirective }],\n standalone: false,\n})\nexport class ModalFooterComponent {\n constructor() {}\n}\n","<div class=\"sapphire-modal-layout__footer\" _spUseComponentStyles>\n <ng-content></ng-content>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ModalOptions, ModalService } from './modal.service';\nimport { ThemeBaseDirective } from '../../theme/public_api';\n\n/**\n * Makes a clickable element a trigger for a modal\n */\n@Directive({\n host: {\n '[attr.aria-controls]': 'dialogRef?.id ?? null',\n },\n standalone: true,\n})\nexport abstract class ModalTriggerDirective implements ModalOptions {\n protected templateRef: TemplateRef<unknown> | null = null;\n protected dialogRef?: DialogRef;\n\n get dismissable(): boolean {\n return this._dismissable;\n }\n set dismissable(value: BooleanInput) {\n this._dismissable = coerceBooleanProperty(value);\n }\n private _dismissable: boolean = false;\n\n get keyboardDismissDisabled(): boolean {\n return this._keyboardDismissDisabled;\n }\n set keyboardDismissDisabled(value: BooleanInput) {\n this._keyboardDismissDisabled = coerceBooleanProperty(value);\n }\n private _keyboardDismissDisabled: boolean = false;\n\n protected modalService = inject(ModalService);\n public readonly theme = inject(ThemeBaseDirective);\n\n abstract open(): void;\n\n close() {\n this.dialogRef?.close();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ModalTriggerDirective } from '../modal-trigger.directive';\n\n/**\n * Makes a clickable element a trigger for a dialog.\n */\n@Directive({\n selector: '[spDialogTriggerFor]',\n inputs: [\n 'dismissable: spDialogDismissable',\n 'keyboardDismissDisabled: spDialogDisableKeyboardDismissable',\n 'templateRef: spDialogTriggerFor',\n ],\n exportAs: 'spDialogTrigger',\n standalone: false,\n})\nexport class DialogTriggerDirective extends ModalTriggerDirective {\n @HostListener('click')\n open() {\n if (this.templateRef) {\n this.dialogRef = this.modalService.openDialog(this.templateRef, this);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-modal-layout',\n template: '<ng-content></ng-content>',\n templateUrl: './modal-layout.component.html',\n host: {\n class: 'sapphire-modal-layout',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./modal-layout.component.scss'],\n standalone: false,\n})\nexport class ModalLayoutComponent {}\n","<ng-content select=\"sp-modal-header, [spModalHeader]\"></ng-content>\n<ng-content select=\"sp-modal-body\"></ng-content>\n<ng-content select=\"sp-modal-footer, [spModalFooter]\"></ng-content>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { DialogComponent } from './dialog.component';\n\n/**\n * A wrapper around `<sp-dialog>` which gives you a simple way of creating a\n * confirmation dialog which is aligned with Sapphire design vision.\n */\n@Component({\n selector: 'sp-confirmation-dialog',\n templateUrl: 'confirmation-dialog.component.html',\n exportAs: 'spConfirmationDialog',\n standalone: false,\n})\nexport class ConfirmationDialogComponent {\n /**\n * Dialog heading text. Passed to the wrapped `sp-dialog`\n */\n @Input()\n heading: string = '';\n\n /**\n * The label of the primary action button in the dialog footer.\n */\n @Input()\n primaryActionLabel: string = '';\n\n /**\n * The label of the secondary action button in the dialog footer.\n */\n @Input()\n secondaryActionLabel: string = '';\n\n /**\n * Emitted when the primary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n primaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Emitted when the secondary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n secondaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\">\n <sp-modal-layout>\n <sp-modal-header *ngIf=\"heading\" hideCloseButton>{{\n heading\n }}</sp-modal-header>\n <sp-modal-body><ng-content></ng-content></sp-modal-body>\n <sp-modal-footer>\n <sp-button-group>\n <button\n sp-button\n variant=\"secondary\"\n (click)=\"dialog && secondaryActionSelected.emit({dialog})\"\n >\n {{ secondaryActionLabel }}\n </button>\n <button\n sp-button\n variant=\"primary\"\n (click)=\"dialog && primaryActionSelected.emit({dialog})\"\n >\n {{ primaryActionLabel }}\n </button>\n </sp-button-group>\n </sp-modal-footer>\n </sp-modal-layout>\n</sp-dialog>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { DialogComponent } from './dialog.component';\n\n/**\n * A wrapper around `<sp-dialog>` which gives you a simple way of creating a\n * danger dialog which is aligned with Sapphire design vision.\n */\n@Component({\n selector: 'sp-danger-dialog',\n templateUrl: './danger-dialog.component.html',\n exportAs: 'spDangerDialog',\n standalone: false,\n})\nexport class DangerDialogComponent {\n /**\n * Dialog heading text. Passed to the wrapped `sp-dialog`\n */\n @Input()\n heading: string = '';\n\n /**\n * The label of the primary action button in the dialog footer.\n */\n @Input()\n primaryActionLabel: string = '';\n\n /**\n * The label of the secondary action button in the dialog footer.\n */\n @Input()\n secondaryActionLabel: string = '';\n\n /**\n * Emitted when the primary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n primaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Emitted when the secondary action is triggered. Use `$event.dialog` to\n * access the wrapped dialog in the event handler, and close the dialog by\n * calling\n * `$event.dialog.close()`\n */\n @Output()\n secondaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\">\n <sp-modal-layout>\n <sp-modal-header *ngIf=\"heading\" hideCloseButton>{{\n heading\n }}</sp-modal-header>\n <sp-modal-body><ng-content></ng-content></sp-modal-body>\n <sp-modal-footer>\n <sp-button-group>\n <button\n sp-button\n variant=\"secondary\"\n (click)=\"dialog && secondaryActionSelected.emit({dialog})\"\n >\n {{ secondaryActionLabel }}\n </button>\n <button\n sp-button\n variant=\"danger\"\n (click)=\"dialog && primaryActionSelected.emit({dialog})\"\n >\n {{ primaryActionLabel }}\n </button>\n </sp-button-group>\n </sp-modal-footer>\n </sp-modal-layout>\n</sp-dialog>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ICON_SIZE_PROVIDER } from '../../../icon/public_api';\nimport { DialogComponent } from './dialog.component';\n\ntype AlertDialogVariant =\n | 'success'\n | 'error'\n | 'warning'\n | 'informative'\n | 'neutral';\n\n@Directive({\n selector: '[spAlertDialogIcon]',\n})\nexport class AlertDialogIcon {}\n\n@Directive({\n selector: '[spAlertDialogHeading]',\n})\nexport class AlertDialogHeading {}\n\n@Directive({\n selector: '[spAlertDialogBody]',\n})\nexport class AlertDialogBody {}\n\n@Directive({\n selector: '[spAlertDialogActions]',\n})\nexport class AlertDialogActions {}\n\n/**\n * Implements layout and style of the alert dialog\n */\n@Component({\n selector: 'sp-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'xl' },\n },\n ],\n standalone: false,\n})\nexport class AlertDialogComponent implements AfterContentInit {\n @Input()\n variant?: AlertDialogVariant;\n\n @Input()\n /**\n * @default \"horizontal\"\n */\n actionsOrientation?: 'vertical' | 'horizontal' = 'horizontal';\n\n @ContentChild(AlertDialogIcon)\n icon?: AlertDialogIcon;\n\n @ContentChild(AlertDialogHeading)\n heading?: AlertDialogHeading;\n\n @ContentChild(AlertDialogBody)\n body?: AlertDialogBody;\n\n @ContentChildren(AlertDialogActions)\n actions?: AlertDialogActions;\n\n ngAfterContentInit(): void {\n if (!this.heading) {\n throw new Error(\n 'Missing heading for sp-alert-dialog. Render <sp-alert-dialog-heading>...</sp-alert-dialog-heading> inside sp-alert-dialog'\n );\n }\n\n if (!this.body) {\n throw new Error(\n 'Missing body for sp-alert-dialog. Render <sp-alert-dialog-body>...</sp-alert-dialog-body> inside sp-alert-dialog'\n );\n }\n\n if (!this.actions) {\n throw new Error(\n 'Missing actions for sp-alert-dialog. Render <sp-alert-dialog-actions>...</sp-alert-dialog-actions> inside sp-alert-dialog'\n );\n }\n }\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\" size=\"xs\">\n <sp-feedback-message\n [variant]=\"variant\"\n style=\"margin: var(--sapphire-semantic-size-spacing-xl)\"\n >\n <ng-container *ngIf=\"icon !== undefined\" spFeedbackMessageIcon>\n <ng-content select=\"[spAlertDialogIcon]\"></ng-content>\n </ng-container>\n <sp-feedback-message-heading spModalHeader>\n <ng-content select=\"[spAlertDialogHeading]\"></ng-content>\n </sp-feedback-message-heading>\n <sp-feedback-message-body>\n <ng-content select=\"[spAlertDialogBody]\"></ng-content>\n </sp-feedback-message-body>\n <sp-feedback-message-actions style=\"width: 100%\">\n <sp-button-group\n stretch=\"autoVertical\"\n [orientation]=\"actionsOrientation\"\n >\n <ng-content select=\"[spAlertDialogActions]\"></ng-content>\n </sp-button-group>\n </sp-feedback-message-actions>\n </sp-feedback-message>\n</sp-dialog>\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { Component, Input } from '@angular/core';\nimport { ModalBaseComponent } from '../modal-base.component';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-panel',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-panel',\n '[class.sapphire-panel--sm]': 'size === \"sm\"',\n '[class.sapphire-panel--visible]': '!dialogRef.closing',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./panel.component.scss'],\n standalone: false,\n})\nexport class PanelComponent extends ModalBaseComponent {\n /**\n * Panel size, constraining the width of the panel.\n * @default 'lg'\n */\n @Input()\n size: 'sm' | 'lg' = 'lg';\n\n constructor(protected dialogRef: DialogRef) {\n super(dialogRef);\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ModalTriggerDirective } from '../modal-trigger.directive';\n\n/**\n * Makes a clickable element a trigger for a panel.\n */\n@Directive({\n selector: '[spPanelTriggerFor]',\n inputs: [\n 'dismissable: spPanelDismissable',\n 'keyboardDismissDisabled: spPanelDisableKeyboardDismissable',\n 'templateRef: spPanelTriggerFor',\n ],\n exportAs: 'spPanelTrigger',\n standalone: false,\n})\nexport class PanelTriggerDirective extends ModalTriggerDirective {\n @HostListener('click')\n open() {\n if (!this.templateRef) {\n throw new Error('Template referenced by modal trigger not found.');\n }\n this.dialogRef = this.modalService.openPanel(this.templateRef, this);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spModalBackButton]',\n standalone: false,\n})\nexport class ModalBackButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SapphireThemeModule } from '../../theme/public_api';\nimport { SapphireTypographyModule } from '../../typography/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireButtonModule } from '../../button/public_api';\nimport { ScrollMonitorDirective } from '../../common/scroll-monitor.directive';\nimport { DialogComponent } from './dialog/dialog.component';\nimport {\n ModalHeaderComponent,\n ModalHeaderDirective,\n} from './layout/modal-header.component';\nimport { ModalBodyComponent } from './layout/modal-body.component';\nimport {\n ModalFooterComponent,\n ModalFooterDirective,\n} from './layout/modal-footer.component';\nimport { DialogTriggerDirective } from './dialog/dialog-trigger.directive';\nimport { ConfirmationDialogComponent } from './dialog/confirmation-dialog.component';\nimport { DangerDialogComponent } from './dialog/danger-dialog.component';\nimport {\n AlertDialogActions,\n AlertDialogBody,\n AlertDialogComponent,\n AlertDialogHeading,\n AlertDialogIcon,\n} from './dialog/alert-dialog.component';\nimport { PanelComponent } from './panel/panel.component';\nimport { PanelTriggerDirective } from './panel/panel-trigger.directive';\nimport { ModalLayoutComponent } from './layout/modal-layout.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { ModalBackButtonDirective } from './layout/modal-back-button.directive';\nimport { ModalCloseButtonDirective } from './layout/modal-close-button.directive';\nimport { SapphireFeedbackMessageModule } from '../../feedback-message/public_api';\n\n@NgModule({\n declarations: [\n ModalLayoutComponent,\n ModalHeaderComponent,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseButtonDirective,\n ModalBackButtonDirective,\n DialogComponent,\n DialogTriggerDirective,\n ConfirmationDialogComponent,\n DangerDialogComponent,\n AlertDialogComponent,\n AlertDialogIcon,\n AlertDialogBody,\n AlertDialogHeading,\n AlertDialogActions,\n PanelComponent,\n PanelTriggerDirective,\n ],\n imports: [\n CommonModule,\n DialogModule,\n SapphireThemeModule,\n SapphireTypographyModule,\n SapphireIconModule,\n SapphireButtonModule,\n SapphireFeedbackMessageModule,\n ScrollMonitorDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n UseComponentStyles,\n ],\n exports: [\n ModalLayoutComponent,\n ModalHeaderComponent,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalHeaderDirective,\n ModalFooterDirective,\n ModalBackButtonDirective,\n ModalCloseButtonDirective,\n DialogComponent,\n DialogTriggerDirective,\n ConfirmationDialogComponent,\n DangerDialogComponent,\n AlertDialogComponent,\n AlertDialogIcon,\n AlertDialogBody,\n AlertDialogHeading,\n AlertDialogActions,\n PanelComponent,\n PanelTriggerDirective,\n ],\n})\nexport class SapphireModalModule {}\n","import { AfterContentInit, Directive, Input } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-text',\n host: {\n class: 'sapphire-skeleton--text',\n '[style.width]': '_calculatedWidth',\n },\n standalone: false,\n})\nexport class SkeletonTextDirective implements AfterContentInit {\n @Input()\n width?: string;\n\n @Input()\n minWidth?: number = 50;\n\n @Input()\n maxWidth?: number = 100;\n\n @Input()\n widthType?: 'randomPct' | 'randomPx' | 'fixed' = 'randomPct';\n\n _calculatedWidth = '0';\n\n private calculateWidth() {\n if (this.widthType === 'fixed') {\n return this.width || '0';\n }\n if (!this.minWidth || !this.maxWidth) return '0';\n const calculatedWidth =\n Math.random() * (this.maxWidth - this.minWidth) + this.minWidth;\n return `${calculatedWidth}${this.widthType === 'randomPct' ? '%' : 'px'}`;\n }\n\n ngAfterContentInit(): void {\n this._calculatedWidth = this.calculateWidth();\n }\n}\n","export const getAnimationDelay = (order?: number) =>\n order ? `${order * 80}ms` : undefined;\n","import { Component, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { getAnimationDelay as utilGetAnimationDelay } from './util';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-skeleton-block, sp-skeleton-circle, sp-skeleton-text',\n template: '',\n styleUrls: ['./skeleton.component.scss'],\n host: {\n class: 'sapphire-skeleton',\n '[style.animation-delay]': '_getAnimationDelay(index)',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class SkeletonComponent {\n /**\n * The index of this element in the container that renders skeleton pieces.\n * Used to harmonize the background animation across the skeleton pieces.\n */\n @Input()\n index?: number = 0;\n\n _getAnimationDelay = utilGetAnimationDelay;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-circle',\n host: {\n class: 'sapphire-skeleton--circle',\n },\n standalone: false,\n})\nexport class SkeletonCircleDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-block',\n host: {\n class: 'sapphire-skeleton--block',\n },\n standalone: false,\n})\nexport class SkeletonBlockDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonTextDirective } from './skeleton-text.directive';\nimport { SkeletonComponent } from './skeleton.component';\nimport { SkeletonCircleDirective } from './skeleton-circle.directive';\nimport { SkeletonBlockDirective } from './skeleton-block.directive';\n\n@NgModule({\n declarations: [\n SkeletonComponent,\n SkeletonTextDirective,\n SkeletonCircleDirective,\n SkeletonBlockDirective,\n ],\n imports: [CommonModule],\n exports: [\n SkeletonComponent,\n SkeletonTextDirective,\n SkeletonCircleDirective,\n SkeletonBlockDirective,\n ],\n})\nexport class SapphireSkeletonModule {}\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport translations from '../i18n';\nimport { TranslateService } from '../../common/translate.service';\n\ntype PageSlot = { type: 'ellipsis' } | { type: 'page'; page: number };\n\ninterface PageSelectionOptions {\n currentPage: number;\n totalPageCount: number;\n siblingCount?: number;\n boundaryCount?: number;\n}\n\n@Component({\n selector: 'sp-page-selection-row',\n templateUrl: './page-selection-row.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false,\n})\nexport class PageSelectionRowComponent implements OnChanges {\n t: TranslateService;\n\n constructor(t: TranslateService) {\n this.t = t;\n }\n\n @Input() currentPage: number = 0;\n @Input() totalPageCount: number = 0;\n @Input() siblingCount: number = 1;\n @Input() boundaryCount: number = 1;\n @Output() pageChange = new EventEmitter<number>();\n\n slots: PageSlot[] = [];\n\n onPageSelect(page: number) {\n this.pageChange.emit(page);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.currentPage ||\n changes.totalPageCount ||\n changes.siblingCount ||\n changes.boundaryCount\n ) {\n this.slots = this.pageSlots({\n currentPage: this.currentPage,\n totalPageCount: this.totalPageCount,\n siblingCount: this.siblingCount,\n boundaryCount: this.boundaryCount,\n });\n }\n }\n\n getAriaLabel(slot: PageSlot): string {\n if (slot.type === 'ellipsis') {\n return 'ellipsis';\n } else {\n return this.t\n .stringFormatter(translations)\n .format(slot.page === this.currentPage ? 'page-number' : 'go-to-page', {\n value: (slot.page + 1).toString(),\n }) as string;\n }\n }\n\n // Common code with React\n pageSlots = (params: PageSelectionOptions): Array<PageSlot> =>\n this.intersperse<Array<PageSlot>>(\n this.visiblePages(params).map((pageGroup) =>\n pageGroup.map((page) => ({ type: 'page', page }))\n ),\n [{ type: 'ellipsis' }]\n ).flatMap((pageSlot) => pageSlot);\n\n visiblePages = (params: PageSelectionOptions): Array<Array<number>> => {\n const { currentPage, totalPageCount, siblingCount, boundaryCount } =\n this.normalizePageValues(params);\n\n /**\n * NOTE for maintainers.\n *\n * Below could be written as \"boundaryCount * 2 + siblingCount * 2 + 3)\"\n * but I wanted to better show what each number represents.\n *\n * Example where boundary is 1 and sibling is 1:\n *\n * 1 ... 5 6 7 ... 10\n * boundary ellipsis sibling selectedPage sibling ellipsis boundary\n */\n const maxPageSlots =\n boundaryCount +\n 1 /* ellipsis */ +\n (siblingCount + 1 + siblingCount) /* visible middle range */ +\n 1 /* ellipsis */ +\n boundaryCount;\n\n const pages = this.arrayOfNumbers({ from: 0, count: totalPageCount });\n\n if (pages.length <= maxPageSlots) {\n return [pages]; // eg: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]\n } else {\n const halfSlotsCount = Math.ceil(maxPageSlots / 2);\n const currentPageIndex = pages.findIndex((page) => page === currentPage);\n\n if (pages.slice(0, halfSlotsCount).includes(currentPage)) {\n return [\n pages.slice(0, halfSlotsCount + siblingCount),\n boundaryCount === 0 ? [] : pages.slice(-boundaryCount),\n ].slice(0, maxPageSlots); // eg: [[1, 2, 3, 4, 5], [10]]\n } else if (pages.slice(-halfSlotsCount).includes(currentPage)) {\n return [\n pages.slice(0, boundaryCount),\n pages.slice(-halfSlotsCount - siblingCount),\n ].slice(0, maxPageSlots); // eg: [[1], [6, 7, 8, 9, 10]]\n } else {\n return [\n pages.slice(0, boundaryCount),\n pages.slice(\n currentPageIndex - siblingCount,\n currentPageIndex + siblingCount + 1\n ),\n boundaryCount === 0 ? [] : pages.slice(-boundaryCount),\n ].slice(0, maxPageSlots); // eg: [[1], [4, 5, 6], [10]]\n }\n }\n };\n\n normalizePageValues = ({\n currentPage,\n totalPageCount,\n siblingCount = 1,\n boundaryCount = 1,\n }: PageSelectionOptions): Required<PageSelectionOptions> => ({\n totalPageCount: Math.max(totalPageCount, 1),\n currentPage: Math.min(Math.max(currentPage, 0), totalPageCount - 1),\n boundaryCount: Math.max(boundaryCount, 0),\n siblingCount: Math.max(siblingCount, 0),\n });\n\n arrayOfNumbers = ({\n from,\n count,\n }: {\n from: number;\n count: number;\n }): Array<number> =>\n Array.from(new Array(count)).map((_, index) => from + index);\n\n intersperse = <T>(array: T[], separator: T): T[] =>\n array.reduce((a: T[], v: T) => [...a, v, separator], []).slice(0, -1);\n}\n","<sp-button-group orientation=\"horizontal\" spacing=\"xs\">\n <ng-container *ngFor=\"let slot of slots\">\n <div *ngIf=\"slot.type === 'ellipsis'\" class=\"sapphire-pagination__ellipsis\">\n ...\n </div>\n <button\n *ngIf=\"slot.type === 'page'\"\n sp-icon-button\n [variant]=\"slot.page === currentPage ? 'secondary' : 'tertiary'\"\n size=\"md\"\n (click)=\"onPageSelect(slot.page)\"\n [attr.aria-label]=\"getAriaLabel(slot)\"\n [ngStyle]=\"{ 'z-index': slot.page !== currentPage ? 1 : null }\"\n >\n {{ slot.page + 1 }}\n </button>\n </ng-container>\n</sp-button-group>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { iconChevronLeft, iconChevronRight } from '@danske/sapphire-icons/js';\nimport { IconRegistry } from '../../icon/public_api';\n\nexport class SapphirePaginationChange {\n constructor(\n /** The new page index */\n public readonly page: number,\n /** The new page size */\n public readonly pageSize: number\n ) {}\n}\n\n@Component({\n selector: 'sp-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false,\n})\nexport class PaginationComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([iconChevronLeft, iconChevronRight]);\n }\n\n @Input()\n pageSize: number = 10;\n\n @Input()\n itemCount: number = 0;\n\n @Input()\n page: number = 0;\n\n @Input()\n pageSizeOptions?: number[];\n\n /**\n * Allow selection of individual pages\n * @default false\n */\n @Input()\n allowPageSelection: boolean = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n get startItemIndex(): number {\n return this.page * this.pageSize + 1;\n }\n\n get endItemIndex(): number {\n return Math.min(this.page * this.pageSize + this.pageSize, this.itemCount);\n }\n\n @Output() readonly valueChange = new EventEmitter<SapphirePaginationChange>();\n\n _onPageSizeChange(value: string) {\n const newPageSize = parseInt(value, 10);\n\n /**\n * Avoid going to invalid page when switching\n * to a different page size\n */\n const firstItemIndex = this.pageSize * this.page + 1;\n const newPage = Math.ceil(firstItemIndex / newPageSize) - 1;\n\n this.page = newPage;\n this.pageSize = newPageSize;\n this.valueChange.emit({ page: newPage, pageSize: newPageSize });\n }\n\n _onPageChange(direction: 'previous' | 'next') {\n const newPage = this.page + (direction === 'previous' ? -1 : 1);\n this.page = newPage;\n this.valueChange.emit({\n page: newPage,\n pageSize: this.pageSize,\n });\n }\n\n _onPageSelect(index: number) {\n this.page = index;\n this.valueChange.emit({\n page: this.page,\n pageSize: this.pageSize,\n });\n }\n\n _isNextPageButtonDisabled() {\n return this.itemCount <= this.page * this.pageSize + this.pageSize;\n }\n\n _isPreviousPageButtonDisabled() {\n return this.page === 0;\n }\n\n protected readonly Math = Math;\n}\n","<div class=\"sapphire-pagination\">\n <sp-select-button\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary\"\n size=\"md\"\n >\n <sp-option\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n [value]=\"'' + pageSizeOption\"\n >{{ 'items-per-page' | t : { value: pageSizeOption } }}</sp-option\n >\n </sp-select-button>\n <span class=\"sapphire-pagination__controls\">\n <span\n *ngIf=\"!allowPageSelection\"\n class=\"sapphire-pagination__text sapphire-pagination__text--emphasized\"\n >\n {{ startItemIndex }} -\n {{ endItemIndex }}\n <span class=\"sapphire-pagination__text\"> {{ 'of' | t }} </span>\n {{ itemCount }}\n </span>\n <button\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"_onPageChange('previous')\"\n [disabled]=\"_isPreviousPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'previous' | t\"\n >\n <sp-icon name=\"chevronLeft\"></sp-icon>\n </button>\n\n <sp-page-selection-row\n *ngIf=\"allowPageSelection\"\n [currentPage]=\"page\"\n [totalPageCount]=\"Math.ceil(itemCount / pageSize)\"\n [siblingCount]=\"1\"\n [boundaryCount]=\"1\"\n (pageChange)=\"_onPageSelect($event)\"\n />\n\n <button\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"_onPageChange('next')\"\n [disabled]=\"_isNextPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'next' | t\"\n >\n <sp-icon name=\"chevronRight\"></sp-icon>\n </button>\n </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { PaginationComponent } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireSelectModule } from '../../select/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireButtonModule } from '../../button/public_api';\nimport { TranslatePipe } from '../../common/translate.pipe';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../i18n';\nimport { PageSelectionRowComponent } from './page-selection-row.component';\n\n@NgModule({\n declarations: [PaginationComponent, PageSelectionRowComponent],\n imports: [\n CommonModule,\n TranslatePipe,\n A11yModule,\n SapphireSelectModule,\n SapphireButtonModule,\n SapphireIconModule,\n ],\n exports: [PaginationComponent],\n providers: [{ provide: MessageDictionary, useValue: translations }],\n})\nexport class SapphirePaginationModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { SapphireButtonModule } from '../../button/src/button.module';\nimport { SapphireIconModule } from '../../icon/src/icon.module';\nimport { SapphirePopoverModule } from '../../popover/src/popover.module';\nimport { PopoverTriggerDirective } from '../../popover/src/popover-trigger.directive';\nimport { SapphireTypographyModule } from '../../typography/src/typography.module';\nimport { Placement } from '../../common/placement';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconHelp, iconInformation } from '@danske/sapphire-icons/js';\n\n@Directive({\n selector: 'sp-help-button-header',\n standalone: true,\n})\nexport class HelpButtonHeaderDirective {}\n@Directive({\n selector: 'sp-help-button-content',\n standalone: true,\n})\nexport class HelpButtonContentDirective {}\n\n@Directive({\n selector: 'sp-help-button-footer',\n standalone: true,\n})\nexport class HelpButtonFooterDirective {}\n\n@Component({\n selector: 'sp-help-button',\n templateUrl: './help-button.component.html',\n styleUrls: ['./help-button.component.scss'],\n standalone: true,\n imports: [\n NgIf,\n SapphireTypographyModule,\n SapphireButtonModule,\n SapphireIconModule,\n SapphirePopoverModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n },\n})\nexport class HelpButtonComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([iconInformation, iconHelp]);\n }\n /**\n *\n * The type of help button which determines the icon shown.\n *\n * Use \"info\" for brief, contextual supplemental information. The content\n * inside should have an instructive tone.\n *\n * Use \"help\" variant to signal more in-depth guidance about a task or UI,\n * this may include links or images or other helpful media. The content\n * inside should have a helpful tone.\n *\n * @default 'info'\n */\n @Input()\n variant: 'info' | 'help' = 'info';\n\n /**\n * Placement of popover relative to the icon that triggers it.\n */\n @Input()\n placement: Placement = 'top';\n\n /**\n * The label for the trigger of the help dialog.\n * This will NOT be rendered on the screen, but it is required\n * for accessibility reasons.\n */\n @Input('aria-label')\n ariaLabel!: string;\n\n @ViewChild(PopoverTriggerDirective)\n _trigger?: PopoverTriggerDirective;\n\n @ContentChild(HelpButtonFooterDirective)\n _footer?: HelpButtonFooterDirective;\n\n @ContentChild(HelpButtonHeaderDirective)\n _header?: HelpButtonHeaderDirective;\n\n isOpen() {\n return this._trigger?.isOpen();\n }\n\n toggle() {\n return this._trigger?.toggle();\n }\n open() {\n return this._trigger?.open();\n }\n close() {\n return this._trigger?.close();\n }\n}\n","<button\n sp-icon-button\n size=\"xs\"\n variant=\"tertiary\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverPlacement]=\"placement\"\n [attr.aria-label]=\"ariaLabel\"\n>\n <sp-icon\n *ngIf=\"variant === 'help'; else defaultIcon\"\n size=\"sm\"\n name=\"help\"\n ></sp-icon>\n <ng-template #defaultIcon>\n <sp-icon name=\"information\" size=\"sm\"></sp-icon>\n </ng-template>\n</button>\n\n<ng-template #popover>\n <sp-popover noPadding>\n <div class=\"sapphire-contextual-help\">\n <div *ngIf=\"_header\" class=\"sapphire-contextual-help__header\">\n <h6 sp-heading spPopoverTitle>\n <ng-content select=\"sp-help-button-header\"></ng-content>\n </h6>\n </div>\n <ng-content select=\"sp-help-button-content\"></ng-content>\n <div *ngIf=\"_footer\" class=\"sapphire-contextual-help__footer\">\n <ng-content select=\"sp-help-button-footer\"></ng-content>\n </div>\n </div>\n </sp-popover>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n HelpButtonComponent,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n HelpButtonHeaderDirective,\n} from './help-button.component';\n\n@NgModule({\n declarations: [],\n imports: [\n HelpButtonComponent,\n HelpButtonHeaderDirective,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n ],\n exports: [\n HelpButtonComponent,\n HelpButtonHeaderDirective,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n ],\n})\nexport class SapphireHelpButtonModule {}\n","import { Component, Input } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n/**\n * This is a container for all other components which comes with the theme's\n * primary surface background color, text color and font family.\n */\n@Component({\n selector: 'sp-surface',\n styleUrls: ['./surface.component.scss'],\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-surface',\n '[class.sapphire-theme--secondary]': 'variant === \"secondary\"',\n '[class.sapphire-theme--tertiary]': 'variant === \"tertiary\"',\n '[class.sapphire-theme--contrast]': 'variant === \"contrast\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n})\nexport class SurfaceComponent {\n @Input()\n variant?: 'primary' | 'secondary' | 'tertiary' | 'contrast' = 'primary';\n}\n","import { NgModule } from '@angular/core';\nimport { SurfaceComponent } from './surface.component';\n\n@NgModule({\n imports: [SurfaceComponent],\n exports: [SurfaceComponent],\n})\nexport class SapphireSurfaceModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/surface.component';\nexport * from './src/surface.module';\n","// Exported just for the issue with vscode\nexport { ScrollMonitorDirective } from './scroll-monitor.directive';\nexport {\n UseComponentStyles,\n UseComponentStylesOnHost,\n ViewEncapsulationProvider,\n} from './sapphire-view-encapsulation';\nexport { PressedDirective } from './pressed.directive';\nexport { FocusedDirective } from './focused.directive';\nexport { TranslateService } from './translate.service';\nexport { TranslatePipe } from './translate.pipe';\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\ntype Color =\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative'\n | 'neutral'\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16;\n\ntype Variant = 'primary' | 'secondary';\n\ntype Size = 'sm' | 'md';\n\n@Component({\n selector: 'sp-badge',\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./badge.component.scss'],\n standalone: false,\n})\nexport class BadgeComponent {\n @HostBinding('role') role = 'presentation';\n\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n /**\n * @default 'md'\n */\n @Input()\n size?: Size = 'md';\n\n /**\n * Whether the badge has a saturated or faint background.\n *\n * @default 'primary'\n */\n @Input()\n variant?: Variant = 'primary';\n\n /**\n * The background color of the badge.\n * Can either be semantic or one of the named decorative color.\n *\n * @default 'neutral'\n */\n @Input()\n color?: Color = 'neutral';\n\n @HostBinding('class')\n private get classNames() {\n return [\n 'sapphire-badge',\n this.size === 'sm' && 'sapphire-badge--sm',\n typeof this.color === 'string' &&\n this.color !== 'neutral' &&\n `sapphire-badge--${this.variant}-${this.color}`,\n typeof Number(this.color) === 'number' &&\n `sapphire-badge--decorative-${this.color}`,\n ].join(' ');\n }\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n declarations: [BadgeComponent],\n imports: [CommonModule],\n exports: [BadgeComponent],\n})\nexport class SapphireBadgeModule {}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, forwardRef, Inject } from '@angular/core';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { ListComponent } from './list.component';\n\n@Component({\n selector: '[sp-list-item], [sp-list-item-interactive]',\n standalone: true,\n templateUrl: './list-item.component.html',\n host: {\n class: 'sapphire-list__item',\n '[class.sapphire-list__item--interactive]': '_isInteractive',\n '[class.sapphire-list__item--without-divider]': '_isLastItem',\n '[attr.role]': `_role`,\n },\n hostDirectives: [\n UseComponentStyles,\n {\n directive: FocusedDirective,\n },\n ],\n imports: [NgIf, NgTemplateOutlet, FocusedDirective],\n})\nexport class ListItemComponent {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n @Inject(forwardRef(() => ListComponent))\n public list: ListComponent\n ) {}\n\n get _isInteractive(): boolean {\n const hostElement = this.elementRef.nativeElement;\n return (\n hostElement.hasAttribute('sp-list-item-interactive') ||\n hostElement.tagName === 'A' ||\n hostElement.tagName === 'BUTTON'\n );\n }\n\n get _role(): string | undefined {\n const hostElement = this.elementRef.nativeElement;\n\n if (['BUTTON', 'A', 'LI'].includes(hostElement.tagName)) {\n return undefined;\n }\n\n if (\n hostElement.hasAttribute('sp-list-item-interactive') &&\n hostElement.tagName !== 'A' &&\n hostElement.tagName !== 'BUTTON'\n ) {\n return 'button';\n }\n return 'listitem';\n }\n\n get _isLastItem(): boolean {\n // Only apply if hideLastDivider is true\n if (!this.list.hideLastDivider) return false;\n\n return this.list.listItems.last === this;\n }\n}\n","<ng-content></ng-content>\n<ng-content select=\"sp-list-item-content-left\"></ng-content>\n<ng-content select=\"sp-list-item-content-right\"></ng-content>\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n Input,\n QueryList,\n} from '@angular/core';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport {\n UseComponentStylesOnHost,\n ViewEncapsulationProvider,\n} from '../../common/sapphire-view-encapsulation';\nimport { ListItemComponent } from './list-item.component';\n\n@Component({\n selector: '[sp-list]',\n standalone: true,\n template: `<ng-content></ng-content>`,\n styleUrls: ['./list.component.scss'],\n host: {\n class: 'sapphire-list',\n '[class.sapphire-list--without-last-divider]': 'hideLastDivider',\n '[attr.role]': `!isListElement ? \"list\" : undefined`,\n },\n hostDirectives: [UseComponentStylesOnHost],\n providers: [ViewEncapsulationProvider],\n imports: [UseComponentStylesOnHost],\n})\nexport class ListComponent {\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n get isListElement(): boolean {\n const hostElement = this.elementRef.nativeElement;\n return hostElement.tagName === 'UL' || hostElement.tagName === 'OL';\n }\n\n @Input()\n @CoerceBoolean\n hideLastDivider: BooleanInput = false;\n\n @ContentChildren(forwardRef(() => ListItemComponent), { descendants: true })\n readonly listItems: QueryList<ListItemComponent> = new QueryList();\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-content-right, sp-list-item-content-left',\n standalone: true,\n template: '<ng-content></ng-content>',\n host: {\n '[class.sapphire-list__item-content-right]': '_variant === \"right\"',\n '[class.sapphire-list__item-content-left]': '_variant === \"left\"',\n },\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemContentComponent {\n _variant: 'right' | 'left';\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n this._variant =\n this.elementRef.nativeElement.tagName === 'SP-LIST-ITEM-CONTENT-RIGHT'\n ? 'right'\n : 'left';\n }\n}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text-primary',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text-primary',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextPrimaryComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text-secondary',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text-secondary',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextSecondaryComponent {}\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { ListItemComponent } from './list-item.component';\nimport { ListItemContentComponent } from './list-item-content.component';\nimport { ListItemTextComponent } from './list-item-text.component';\nimport { ListItemTextPrimaryComponent } from './list-item-text-primary.component';\nimport { ListItemTextSecondaryComponent } from './list-item-text-secondary.component';\n@NgModule({\n declarations: [],\n imports: [\n ListComponent,\n ListItemComponent,\n ListItemContentComponent,\n ListItemTextComponent,\n ListItemTextPrimaryComponent,\n ListItemTextSecondaryComponent,\n ],\n exports: [\n ListComponent,\n ListItemComponent,\n ListItemContentComponent,\n ListItemTextComponent,\n ListItemTextPrimaryComponent,\n ListItemTextSecondaryComponent,\n ],\n})\nexport class SapphireListModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/list.component';\nexport * from './src/list-item.component';\nexport * from './src/list-item-content.component';\nexport * from './src/list-item-text.component';\nexport * from './src/list-item-text-primary.component';\nexport * from './src/list-item-text-secondary.component';\n\nexport * from './src/list.module';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SapphireSpinnerModule } from './spinner/src/spinner.module';\nimport { SapphireButtonModule } from './button/public_api';\nimport { SapphireIconModule } from './icon/src/icon.module';\nimport { SapphireTypographyModule } from './typography/src/typography.module';\nimport { SapphireAvatarModule } from './avatar/src/avatar.module';\nimport { SapphireFeedbackMessageModule } from './feedback-message/src/feedback-message.module';\nimport { SapphireCheckboxModule } from './checkbox/src/checkbox.module';\nimport { SapphireMenuModule } from './menu/public_api';\nimport { SapphirePopoverModule } from './popover/src/popover.module';\nimport { SapphireTableModule } from './table/src/table.module';\nimport { SapphireTextFieldModule } from './text-field/public_api';\nimport { SapphireSelectModule } from './select/public_api';\nimport { SapphireLinkModule } from './link/src/link.module';\nimport { SapphireSegmentedTabsModule } from './segmented-tabs/public_api';\nimport { SapphireThemeModule } from './theme/public_api';\nimport { SapphireNotificationBadgeModule } from './notification-badge/public_api';\nimport { SapphireSwitchModule } from './switch/public_api';\nimport { SapphireRadioModule } from './radio/public_api';\nimport { SapphireTooltipModule } from './tooltip/public_api';\nimport { SapphireListboxModule } from './listbox/public_api';\nimport { SapphireModalModule } from './modal/public_api';\nimport { SapphireSkeletonModule } from './skeleton/public_api';\nimport { SapphirePaginationModule } from './pagination/public_api';\nimport { SapphireHelpButtonModule } from './help-button/public_api';\nimport { SapphireSurfaceModule } from './surface/public_api';\nimport { SapphireBadgeModule } from './badge/public_api';\nimport { SapphireListModule } from './list/public_api';\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n SapphireThemeModule,\n SapphireButtonModule,\n SapphireCheckboxModule,\n SapphireIconModule,\n SapphireTypographyModule,\n SapphireFeedbackMessageModule,\n SapphireSpinnerModule,\n SapphireMenuModule,\n SapphirePopoverModule,\n SapphireTextFieldModule,\n SapphireSelectModule,\n SapphireTableModule,\n SapphireLinkModule,\n SapphireAvatarModule,\n SapphireSegmentedTabsModule,\n SapphireNotificationBadgeModule,\n SapphireSwitchModule,\n SapphireRadioModule,\n SapphireTooltipModule,\n SapphireListboxModule,\n SapphireModalModule,\n SapphireSkeletonModule,\n SapphirePaginationModule,\n SapphireHelpButtonModule,\n SapphireSurfaceModule,\n SapphireBadgeModule,\n SapphireListModule,\n ],\n exports: [\n SapphireButtonModule,\n SapphireIconModule,\n SapphireTypographyModule,\n SapphireSpinnerModule,\n SapphireCheckboxModule,\n SapphireMenuModule,\n SapphireAvatarModule,\n SapphirePopoverModule,\n SapphireFeedbackMessageModule,\n SapphireTextFieldModule,\n SapphireTableModule,\n SapphireLinkModule,\n SapphireSegmentedTabsModule,\n SapphireThemeModule,\n SapphireSelectModule,\n SapphireNotificationBadgeModule,\n SapphireSwitchModule,\n SapphireRadioModule,\n SapphireTooltipModule,\n SapphireListboxModule,\n SapphireModalModule,\n SapphireSkeletonModule,\n SapphirePaginationModule,\n SapphireHelpButtonModule,\n SapphireSurfaceModule,\n SapphireBadgeModule,\n SapphireListModule,\n ],\n})\nexport class SapphireCoreModule {}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/typography/public_api';\nexport * from './lib/button/public_api';\nexport * from './lib/checkbox/public_api';\nexport * from './lib/icon/public_api';\nexport * from './lib/menu/public_api';\nexport * from './lib/popover/public_api';\nexport * from './lib/text-field/public_api';\nexport * from './lib/select/public_api';\nexport * from './lib/listbox/public_api';\nexport * from './lib/link/public_api';\nexport * from './lib/segmented-tabs/public_api';\nexport * from './lib/spinner/public_api';\nexport * from './lib/avatar/public_api';\nexport * from './lib/feedback-message/public_api';\nexport * from './lib/table/public_api';\nexport * from './lib/notification-badge/public_api';\nexport * from './lib/switch/public_api';\nexport * from './lib/theme/public_api';\nexport * from './lib/radio/public_api';\nexport * from './lib/tooltip/public_api';\nexport * from './lib/modal/public_api';\nexport * from './lib/skeleton/public_api';\nexport * from './lib/pagination/public_api';\nexport * from './lib/help-button/public_api';\nexport * from './lib/field/public_api';\nexport * from './lib/surface/public_api';\nexport * from './lib/common/public_api';\nexport * from './lib/core.module';\nexport * from './lib/badge/public_api';\nexport * from './lib/list/public_api';\n\n/* Exports only for lab */\n\nexport * from './lib/label/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TopLevelThemeRef","i1.ThemeBaseDirective","i1","i1.ThemeCheckDirective","i2.UseComponentStylesOnHost","i3","i1.UseComponentStylesOnHost","translations","da","en","de","fi","no","pl","se","i1.TranslateService","i2","i1.FieldComponent","i1.IconRegistry","i4","i5.LabelComponent","i6.IconComponent","i2.ThemeCheckDirective","i4.TranslatePipe","i3.UseComponentStylesOnHost","i2.UseComponentStyles","i1.SapphireOverlay","i5.FieldNoteSuffixDirective","i1.UseComponentStyles","i1.PressedDirective","i2.IconRegistry","i5","i7","i3.UseComponentStyles","i3.CdkOptionScrollIssuePatch","i4.ListboxItemComponent","i1.SelectValueHolder","i1.SelectComponentBase","i4.VisuallyHiddenDirective","i5.UseComponentStyles","i4.FieldComponent","i5.SearchableSelectDirective","i8.IconComponent","i9.ListboxComponent","i10.ListboxInputDirective","i11.PopoverComponent","i12.PopoverTriggerDirective","i13.VisuallyHiddenDirective","i14.HiddenSelectComponent","i3.IconRegistry","i5.IconComponent","i6.ListboxComponent","i7.PopoverComponent","i8.PopoverTriggerDirective","i9.ButtonComponent","i10.ButtonIconDirective","i11.HiddenSelectComponent","i3.HeadingComponent","i4.BodyComponent","i1.TableSortDirective","i2.ThemeBaseDirective","i1.TooltipDirective","i2.TableSortHeaderDirective","i6.TruncatedWithTooltipDirective","i1.TruncatedWithTooltipDirective","i2.TruncatedWithTooltipDirective","i1.TableFooterDirective","i1.TableComponent","i2.SapphireOverlay","i4.HeadingComponent","i6.IconButtonComponent","i7.ModalCloseButtonDirective","i1.ScrollMonitorDirective","i2.ButtonComponent","i3.ButtonGroupComponent","i4.ModalLayoutComponent","i5.ModalHeaderComponent","i6.ModalBodyComponent","i7.ModalFooterComponent","i8.DialogComponent","i2.ButtonGroupComponent","i3.FeedbackMessageComponent","i3.FeedbackMessageIcon","i3.FeedbackMessageHeading","i3.FeedbackMessageBody","i3.FeedbackMessageActions","i4.ModalHeaderDirective","i5.DialogComponent","utilGetAnimationDelay","i3.IconButtonComponent","i4.ButtonGroupComponent","i3.OptionComponent","i4.SelectButtonComponent","i4.SelectButtonSingleSelectDirective","i5.IconButtonComponent","i7.PageSelectionRowComponent","i8.TranslatePipe","i2.HeadingComponent","i5.PopoverComponent","i6.PopoverTriggerDirective","i7.PopoverTitleDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"danske-sapphire-angular.mjs","sources":["../../src/lib/theme/src/top-level-theme-ref.service.ts","../../src/lib/theme/src/sapphire-overlay.service.ts","../../src/lib/theme/src/theme-base.directive.ts","../../src/lib/theme/src/theme-check.directive.ts","../../src/lib/common/sapphire-view-encapsulation.ts","../../src/lib/typography/src/heading.component.ts","../../src/lib/typography/src/subheading.component.ts","../../src/lib/typography/src/caption.component.ts","../../src/lib/typography/src/body.component.ts","../../src/lib/typography/src/typography.module.ts","../../src/lib/typography/public_api.ts","../../src/lib/button/src/button-group.component.ts","../../src/lib/button/src/button-group.component.html","../../src/lib/icon/src/iconRegistry.service.ts","../../src/lib/icon/src/icon-size-provider.ts","../../src/lib/icon/src/svgSanitizer.ts","../../src/lib/icon/src/icon.component.ts","../../src/lib/icon/src/icon.module.ts","../../src/lib/common/coerce-boolean.decorator.ts","../../src/lib/button/src/button-icon.directive.ts","../../src/lib/button/src/button.component.ts","../../src/lib/button/src/button.component.html","../../src/lib/button/src/icon-button.component.ts","../../src/lib/button/src/icon-button.component.html","../../src/lib/button/src/toggle-button.component.ts","../../src/lib/button/src/toggle-button-required-validator.ts","../../src/lib/button/src/button.module.ts","../../src/lib/button/public_api.ts","../../src/lib/common/tabindex.ts","../../src/lib/common/disabled.ts","../../src/lib/common/auto-id.decorator.ts","../../src/lib/label/i18n/index.ts","../../src/lib/field/src/field-control.ts","../../src/lib/field/src/field-note.directive.ts","../../src/lib/field/src/field-error.directive.ts","../../src/lib/common/translate.service.ts","../../src/lib/common/translate.pipe.ts","../../src/lib/label/src/label.component.ts","../../src/lib/label/src/label.component.html","../../src/lib/field/src/field-label.directive.ts","../../src/lib/radio/src/shared/radio-base.ts","../../src/lib/radio/src/radio.component.ts","../../src/lib/radio/src/radio.component.html","../../src/lib/radio/src/shared/radio-group-base.ts","../../src/lib/radio/src/radio-group.component.ts","../../src/lib/radio/src/radio-group.component.html","../../src/lib/field/src/field.component.ts","../../src/lib/field/src/field.component.html","../../src/lib/checkbox/src/checkbox-group.component.ts","../../src/lib/checkbox/src/checkbox-group.component.html","../../src/lib/checkbox/src/checkbox.component.ts","../../src/lib/checkbox/src/checkbox.component.html","../../src/lib/checkbox/src/checkbox-required-validator.ts","../../src/lib/checkbox/src/checkbox.module.ts","../../src/lib/checkbox/public_api.ts","../../src/lib/menu/src/menu.component.ts","../../src/lib/menu/src/menu.component.html","../../src/lib/menu/src/menu-item.component.ts","../../src/lib/menu/src/menu-item.component.html","../../src/lib/common/placement.ts","../../src/lib/menu/src/menu-trigger.directive.ts","../../src/lib/menu/src/menu-section.component.ts","../../src/lib/menu/src/menu-section.component.html","../../src/lib/menu/src/menu-icon.component.ts","../../src/lib/menu/src/menu-primary-text.component.ts","../../src/lib/menu/src/menu-secondary-text.component.ts","../../src/lib/menu/src/menu.module.ts","../../src/lib/menu/public_api.ts","../../src/lib/popover/src/popover-trigger.directive.ts","../../src/lib/popover/src/popover-title.directive.ts","../../src/lib/popover/src/popover.component.ts","../../src/lib/popover/src/popover.component.html","../../src/lib/popover/src/popover-close-button.directive.ts","../../src/lib/popover/src/popover.module.ts","../../src/lib/popover/public_api.ts","../../src/lib/field/src/field-note-suffix.directive.ts","../../src/lib/label/public_api.ts","../../src/lib/field/src/field.module.ts","../../src/lib/text-field/src/text-field-input.directive.ts","../../src/lib/text-field/src/text-field.component.ts","../../src/lib/text-field/src/text-field.component.html","../../src/lib/text-field/src/text-field-prefix.directive.ts","../../src/lib/text-field/src/text-field-postfix.directive.ts","../../src/lib/text-field/src/text-field-textarea-autosize.directive.ts","../../src/lib/text-field/src/text-field.module.ts","../../src/lib/text-field/public_api.ts","../../src/lib/listbox/src/option-icon.directive.ts","../../src/lib/listbox/src/option-secondary-text.directive.ts","../../src/lib/listbox/src/option-primary-text.directive.ts","../../src/lib/listbox/src/listbox-child.ts","../../src/lib/listbox/src/option.component.ts","../../src/lib/listbox/src/section.directive.ts","../../src/lib/listbox/src/cdk-option-scroll-issue-patch.ts","../../src/lib/common/pressed.directive.ts","../../src/lib/common/focused.directive.ts","../../src/lib/listbox/src/listbox-item.component.ts","../../src/lib/listbox/src/listbox-item.component.html","../../src/lib/listbox/src/listbox.component.ts","../../src/lib/listbox/src/listbox.component.html","../../src/lib/listbox/src/listbox-input.directive.ts","../../src/lib/listbox/src/listbox.module.ts","../../src/lib/select/src/common/select-value-holder.ts","../../src/lib/select/src/select/selection-text.directive.ts","../../src/lib/select/src/common/select-component-base.ts","../../src/lib/select/src/select/searchable-select.directive.ts","../../src/lib/common/visually-hidden.directive.ts","../../src/lib/common/platform.ts","../../src/lib/select/src/common/hidden-select.component.ts","../../src/lib/select/src/common/hidden-select.component.html","../../src/lib/select/src/select/select.component.ts","../../src/lib/select/src/select/select.component.html","../../src/lib/select/src/select-button/select-button.component.ts","../../src/lib/select/src/select-button/select-button.component.html","../../src/lib/select/src/select/select.module.ts","../../src/lib/select/public_api.ts","../../src/lib/link/src/link.component.ts","../../src/lib/link/src/link.module.ts","../../src/lib/link/public_api.ts","../../src/lib/segmented-tabs/src/segmented-tab.component.ts","../../src/lib/segmented-tabs/src/segmented-tab.component.html","../../src/lib/segmented-tabs/src/segmented-tabs.component.ts","../../src/lib/segmented-tabs/src/segmented-tabs.component.html","../../src/lib/segmented-tabs/src/segmented-tab-label.directive.ts","../../src/lib/segmented-tabs/src/segmented-tab-content.directive.ts","../../src/lib/segmented-tabs/src/segmented-tabs.module.ts","../../src/lib/spinner/src/spinner.component.ts","../../src/lib/spinner/src/spinner.component.html","../../src/lib/spinner/src/spinner.module.ts","../../src/lib/spinner/public_api.ts","../../src/lib/avatar/src/avatar.component.ts","../../src/lib/avatar/src/avatar.module.ts","../../src/lib/feedback-message/src/feedback-message.component.ts","../../src/lib/feedback-message/src/feedback-message.component.html","../../src/lib/feedback-message/src/feedback-message.module.ts","../../src/lib/feedback-message/public_api.ts","../../src/lib/table/src/table-sort.directive.ts","../../src/lib/table/src/table-sort-header.directive.ts","../../src/lib/tooltip/src/tooltip.component.ts","../../src/lib/theme/src/themes.ts","../../src/lib/theme/src/theme-root.directive.ts","../../src/lib/theme/src/theme.module.ts","../../src/lib/theme/public_api.ts","../../src/lib/tooltip/src/tooltip.directive.ts","../../src/lib/tooltip/src/truncated-with-tooltip.directive.ts","../../src/lib/table/src/table-head-cell.component.ts","../../src/lib/table/src/table-header-cell.component.html","../../src/lib/tooltip/src/tooltip.module.ts","../../src/lib/table/src/table-cell.directive.ts","../../src/lib/table/src/table-footer.directive.ts","../../src/lib/table/src/table-row.directive.ts","../../src/lib/table/src/table.directive.ts","../../src/lib/table/src/table.component.ts","../../src/lib/table/src/table-body.directive.ts","../../src/lib/table/src/table-head.directive.ts","../../src/lib/table/src/cdk-virtual-scroll-viewport-fix.directive.ts","../../src/lib/table/src/table.module.ts","../../src/lib/table/public_api.ts","../../src/lib/notification-badge/src/notification-badge.component.ts","../../src/lib/notification-badge/src/notification-badge.component.html","../../src/lib/notification-badge/src/notification-badge.module.ts","../../src/lib/switch/src/switch.component.ts","../../src/lib/switch/src/switch.component.html","../../src/lib/switch/src/switch-required-validator.ts","../../src/lib/switch/src/switch.module.ts","../../src/lib/radio/src/segmented/segmented-radio-group.component.ts","../../src/lib/radio/src/segmented/segmented-radio-group.component.html","../../src/lib/radio/src/segmented/segmented-radio.component.ts","../../src/lib/radio/src/segmented/segmented-radio.component.html","../../src/lib/radio/src/radio.module.ts","../../src/lib/radio/public_api.ts","../../src/lib/modal/src/modal.service.ts","../../src/lib/common/scroll-monitor.directive.ts","../../src/lib/modal/i18n/index.ts","../../src/lib/modal/src/layout/modal-close-button.directive.ts","../../src/lib/modal/src/layout/modal-header.component.ts","../../src/lib/modal/src/layout/modal-header.component.html","../../src/lib/modal/src/modal-base.component.ts","../../src/lib/modal/src/dialog/dialog.component.ts","../../src/lib/modal/src/layout/modal-body.component.ts","../../src/lib/modal/src/layout/modal-footer.component.ts","../../src/lib/modal/src/layout/modal-footer.component.html","../../src/lib/modal/src/modal-trigger.directive.ts","../../src/lib/modal/src/dialog/dialog-trigger.directive.ts","../../src/lib/modal/src/layout/modal-layout.component.ts","../../src/lib/modal/src/layout/modal-layout.component.html","../../src/lib/modal/src/dialog/confirmation-dialog.component.ts","../../src/lib/modal/src/dialog/confirmation-dialog.component.html","../../src/lib/modal/src/dialog/danger-dialog.component.ts","../../src/lib/modal/src/dialog/danger-dialog.component.html","../../src/lib/modal/src/dialog/alert-dialog.component.ts","../../src/lib/modal/src/dialog/alert-dialog.component.html","../../src/lib/modal/src/panel/panel.component.ts","../../src/lib/modal/src/panel/panel-trigger.directive.ts","../../src/lib/modal/src/layout/modal-back-button.directive.ts","../../src/lib/modal/src/modal.module.ts","../../src/lib/skeleton/src/skeleton-text.directive.ts","../../src/lib/skeleton/src/util.ts","../../src/lib/skeleton/src/skeleton.component.ts","../../src/lib/skeleton/src/skeleton-circle.directive.ts","../../src/lib/skeleton/src/skeleton-block.directive.ts","../../src/lib/skeleton/src/skeleton.module.ts","../../src/lib/pagination/i18n/index.ts","../../src/lib/pagination/src/page-selection-row.component.ts","../../src/lib/pagination/src/page-selection-row.component.html","../../src/lib/pagination/src/pagination.component.ts","../../src/lib/pagination/src/pagination.component.html","../../src/lib/pagination/src/pagination.module.ts","../../src/lib/help-button/src/help-button.component.ts","../../src/lib/help-button/src/help-button.component.html","../../src/lib/help-button/src/help-button.module.ts","../../src/lib/surface/src/surface.component.ts","../../src/lib/surface/src/surface.module.ts","../../src/lib/surface/public_api.ts","../../src/lib/common/public_api.ts","../../src/lib/badge/src/badge.component.ts","../../src/lib/badge/src/badge.module.ts","../../src/lib/list/src/list-item.component.ts","../../src/lib/list/src/list-item.component.html","../../src/lib/list/src/list.component.ts","../../src/lib/list/src/list-item-content.component.ts","../../src/lib/list/src/list-item-text.component.ts","../../src/lib/list/src/list-item-text-primary.component.ts","../../src/lib/list/src/list-item-text-secondary.component.ts","../../src/lib/list/src/list.module.ts","../../src/lib/list/public_api.ts","../../src/lib/core.module.ts","../../src/public-api.ts","../../src/danske-sapphire-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n/**\n * A reference to the topmost theme in the app. Is needed for providing root-level services\n * that need the theme.\n */\n@Injectable({ providedIn: 'root' })\nexport class TopLevelThemeRef {\n theme?: ThemeBaseDirective;\n\n setTheme(theme: ThemeBaseDirective) {\n this.theme = theme;\n }\n\n getTheme() {\n return this.theme;\n }\n}\n","// eslint-disable-next-line sapphire-angular/cdk-overlay\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { inject, Injectable } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\n\n/**\n * NOTE: Providing a theme-aware OverlayContainer was a solution for overlay styles we used to have.\n * It proved error-prone since it can lead to multiple overlay containers, which can cause\n * z-index issues in various scenarios (UC-4160, UC-2897, UC-3843).\n * The current solution applies.\n */\n\n/**\n * Sapphire theme aware overlay service.\n * It's a slim wrapper around CDK Overlay service that adds theme styles to the overlay container.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SapphireOverlay extends Overlay {\n private topLevelThemeRef: TopLevelThemeRef = inject(TopLevelThemeRef);\n private theme: ThemeBaseDirective | null = inject(ThemeBaseDirective, {\n optional: true,\n });\n\n /**\n * Same as Angular CDK's `overlay.create`,\n * but applies the current theme style on the overlay container.\n * @param overlayConfig The overlay configuration to pass to overlay.create()\n * @param theme The theme to apply. If not provided, the current theme will be used.\n */\n create(overlayConfig?: OverlayConfig, theme?: ThemeBaseDirective) {\n const overlayRef = super.create(overlayConfig);\n this.applyTheme(overlayRef, theme);\n return overlayRef;\n }\n\n /**\n * Applies the current theme style on the overlay container.\n * Useful only when the overlay is not created using `SapphireOverlay.create` method.\n * E.g. when using some higher-level service like Dialog from angular CDK.\n * @param overlayRef The overlay reference to apply the theme on.\n * @param theme The theme to apply. If not provided, the current theme will be used.\n */\n applyTheme(overlayRef: OverlayRef, theme?: ThemeBaseDirective) {\n theme = theme || this.theme || this.topLevelThemeRef.getTheme();\n if (!theme) {\n throw new Error(\n 'Could not find the current theme needed for overlay container'\n );\n }\n theme?.applyOnDomNode(overlayRef.overlayElement);\n if (overlayRef.backdropElement) {\n theme?.applyOnDomNode(overlayRef.backdropElement);\n }\n }\n}\n","// import { SapphireOverlayContainer } from './sapphire-overlay-container.service';\nimport {\n Directive,\n ElementRef,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\nimport { SapphireOverlay } from './sapphire-overlay.service';\n\n@Directive({\n selector: '[_sp-theme-base]', // selector is added to prevent the type error. We don't directly render this\n // directive.\n standalone: true,\n providers: [SapphireOverlay],\n})\nexport class ThemeBaseDirective {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private themeRef: TopLevelThemeRef,\n @Optional() @SkipSelf() parentTheme: ThemeBaseDirective\n ) {\n if (!parentTheme) {\n this.themeRef.setTheme(this);\n }\n }\n\n applyOnDomNode(element: HTMLElement): void {\n this.renderer.setAttribute(element, this.getUniqueAttribute(), '');\n }\n\n private getUniqueAttribute() {\n const attributes = this.elementRef.nativeElement.attributes;\n for (let index = 0; index < attributes.length; index++) {\n const attribute = attributes.item(index);\n if (attribute?.name.startsWith('_nghost')) {\n return attribute?.name;\n }\n }\n throw new Error(\n 'Could not get unique attribute for for the sapphire theme'\n );\n }\n\n equals(theme: ThemeBaseDirective) {\n return this.getUniqueAttribute() === theme.getUniqueAttribute();\n }\n}\n","import { Directive, OnInit, Optional } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n// noinspection AngularInvalidSelector\n/**\n * Checks if Sapphire theme is provided, and throws otherwise.\n * Useful to be added in hostDirectives of components.\n */\n@Directive({\n standalone: true,\n})\nexport class ThemeCheckDirective implements OnInit {\n constructor(\n @Optional()\n private theme: ThemeBaseDirective\n ) {}\n\n ngOnInit(): void {\n if (!this.theme) {\n throw new Error(\n 'Sapphire theme not provided. You need to render a theme component such as sp-theme-default in your app component. Read more in Getting Started guide.'\n );\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Injectable,\n Optional,\n Renderer2,\n} from '@angular/core';\n\n/**\n * Captures the view encapsulation of the current component, and makes it possible to apply that\n * on elements in the component's subtree, using {@link UseComponentStyles} directive.\n * Useful when a component has subcomponents, but they are a single component in css-level.\n */\n@Injectable()\nexport class ViewEncapsulationProvider {\n constructor(\n private elementRef: ElementRef<Element>,\n private renderer: Renderer2\n ) {}\n\n public enableStylesOn(element: Element) {\n this.renderer.setAttribute(element, this.getContentAttribute(), '');\n }\n\n private getContentAttribute(): string {\n const attributes = this.elementRef.nativeElement.attributes;\n for (let index = 0; index < attributes.length; index++) {\n const attribute = attributes.item(index);\n if (attribute?.name.startsWith('_nghost')) {\n return `_ngcontent${attribute.name.slice('_nghost'.length)}`;\n }\n }\n // eslint-disable-next-line no-console\n console.error(\n 'Could not find component id to apply Sapphire style encapsulation on:',\n this.elementRef.nativeElement\n );\n throw new Error(\n `Could not find component id to apply Sapphire style encapsulation. \\\n ViewEncapsulationProvider is supposed to be applied only on components.\n Make sure encapsulation is not set to ViewEncapsulation.None in your component`\n );\n }\n}\n\n/**\n * Enables the use of component's css classes on the host element. Also provides\n * `ViewEncapsulationProvider` which allows for using `UseComponentStyles` in child components.\n * Meant to be used internally, and in components in @danske/sapphire-angular-lab.\n * @internal\n */\n@Directive({\n standalone: true,\n // selector is required only by types. Would be nice to be able to not set any selector,\n // as this directive is meant to be used only in hostDirectives. But not setting selector\n // results in build error.\n selector: '[_spUseComponentStylesOnHost]',\n providers: [ViewEncapsulationProvider],\n})\nexport class UseComponentStylesOnHost {\n constructor(\n elementRef: ElementRef,\n viewEncapsulationProvider: ViewEncapsulationProvider\n ) {\n viewEncapsulationProvider.enableStylesOn(elementRef.nativeElement);\n }\n}\n\n/**\n * Enables the use of css classes from parent component's styles. Meant to be used internally,\n * and in components in @danske/sapphire-angular-lab.\n * @internal\n */\n@Directive({\n standalone: true,\n selector: '[_spUseComponentStyles]',\n})\nexport class UseComponentStyles {\n constructor(\n elementRef: ElementRef,\n @Optional() viewEncapsulationProvider: ViewEncapsulationProvider\n ) {\n if (!viewEncapsulationProvider) {\n // eslint-disable-next-line no-console\n console.error(\n 'Could not find parent Sapphire component to enable its styling on:',\n elementRef.nativeElement\n );\n }\n viewEncapsulationProvider?.enableStylesOn(elementRef.nativeElement);\n }\n}\n","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\ntype HeadingLevel =\n | '' /* for when level is not specified*/\n | '1'\n | '2'\n | '3'\n | '4'\n | '5'\n | '6';\n\n@Component({\n selector:\n 'h1[sp-heading],h2[sp-heading],h3[sp-heading],h4[sp-heading],h5[sp-heading],h6[sp-heading]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--heading-2xl]': 'level === \"1\"',\n '[class.sapphire-text--heading-xl]': 'level === \"2\"',\n '[class.sapphire-text--heading-lg]': 'level === \"3\"',\n '[class.sapphire-text--heading-md]': 'level === \"4\"',\n '[class.sapphire-text--heading-sm]': 'level === \"5\"',\n '[class.sapphire-text--heading-xs]': 'level === \"6\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class HeadingComponent {\n private levelInput?: HeadingLevel;\n\n @Input('sp-heading')\n set level(value: HeadingLevel) {\n this.levelInput = value;\n }\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n get level() {\n return this.levelInput || this.getLevelFromElement();\n }\n\n constructor(private elementRef: ElementRef) {}\n\n private getLevelFromElement(): HeadingLevel {\n const element = this.elementRef.nativeElement;\n return element instanceof HTMLHeadingElement\n ? (`${parseInt(element.tagName.slice(1))}` as HeadingLevel)\n : '1';\n }\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: '[sp-subheading]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--subheading-sm]': 'size === \"sm\"',\n '[class.sapphire-text--subheading-md]': 'size === \"md\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n})\nexport class SubheadingComponent {\n @Input()\n size: 'md' | 'sm' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: '[sp-caption]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--caption-sm]': 'size === \"sm\"',\n '[class.sapphire-text--caption-md]': 'size === \"md\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n})\nexport class CaptionComponent {\n @Input()\n size: 'md' | 'sm' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: '[sp-body]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./typography.component.scss'],\n host: {\n '[class.sapphire-text]': 'true',\n '[class.sapphire-text--body-xs]': 'size === \"xs\"',\n '[class.sapphire-text--body-sm]': 'size === \"sm\"',\n '[class.sapphire-text--body-md]': 'size === \"md\"',\n '[class.sapphire-text--body-lg]': 'size === \"lg\"',\n '[class.sapphire-text--strong]': 'bold',\n '[class.sapphire-text--semibold]': 'semibold',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class BodyComponent {\n @Input()\n size: 'lg' | 'md' | 'sm' | 'xs' = 'md';\n\n /**\n * The semantic color of the text\n * @default 'primary'\n */\n @Input()\n color?:\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative' = 'primary';\n\n @Input()\n bold?: BooleanInput = false;\n\n @Input()\n semibold?: BooleanInput = false;\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'primary' ? `sapphire-text--${this.color}` : '';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HeadingComponent } from './heading.component';\nimport { BodyComponent } from './body.component';\nimport { CaptionComponent } from './caption.component';\nimport { SubheadingComponent } from './subheading.component';\n\n@NgModule({\n declarations: [\n HeadingComponent,\n BodyComponent,\n CaptionComponent,\n SubheadingComponent,\n ],\n imports: [CommonModule],\n exports: [\n HeadingComponent,\n BodyComponent,\n CaptionComponent,\n SubheadingComponent,\n ],\n})\nexport class SapphireTypographyModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/heading.component';\nexport * from './src/subheading.component';\nexport * from './src/caption.component';\nexport * from './src/body.component';\nexport * from './src/typography.module';\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\nexport type ButtonGroupStretchType = 'none' | 'default' | 'autoVertical';\n\n/**\n * ButtonGroup is a utility component which ensures consistent spacing between\n * buttons All children must be of type Button. Icon buttons cannot be mixed\n * with standard buttons.\n */\n@Component({\n selector: 'sp-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // TODO: create another hostDirective for this?,\n standalone: false,\n})\nexport class ButtonGroupComponent {\n @Input()\n /**\n * Alignment of buttons within the group.\n * @default \"right\"\n */\n align: 'left' | 'center' | 'right' = 'right';\n\n @Input()\n /**\n * Controls stretching of the contents.\n *\n * `none` - the children will not stretch and will respect the alignment set with the align prop.\n *\n * `default` - the children will stretch to take full width. If the children overflow, they will be wrapped vertically.\n *\n * `autoVertical` - same behaviour as `default`, but if there is more than 3 children, they will be wrapped vertically even if they don't overflow.\n *\n * @default \"none\"\n */\n stretch?: ButtonGroupStretchType = 'none';\n\n @Input()\n /**\n * Spacing between the buttons\n * @default md\n */\n spacing: 'lg' | 'md' | 'sm' | 'xs' = 'md';\n\n @Input()\n /**\n * @default \"horizontal\"\n */\n orientation?: 'vertical' | 'horizontal' = 'horizontal';\n}\n","<div\n class=\"sapphire-button-group\"\n [ngClass]=\"\n stretch !== 'none'\n ? 'sapphire-button-group--stretch'\n : 'sapphire-button-group--align-' + align\n \"\n [class.sapphire-button-group--stretch-auto-vertical]=\"\n stretch === 'autoVertical'\n \"\n [class.sapphire-button-group--spacing-xs]=\"spacing === 'xs'\"\n [class.sapphire-button-group--spacing-sm]=\"spacing === 'sm'\"\n [class.sapphire-button-group--spacing-lg]=\"spacing === 'lg'\"\n [class.sapphire-button-group--vertical]=\"orientation === 'vertical'\"\n>\n <ng-content></ng-content>\n</div>\n","import { Injectable, isDevMode } from '@angular/core';\n\nexport interface IconData {\n name: string;\n data: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistry {\n constructor() {\n this.icons = new Map();\n }\n\n private icons: Map<string, string>;\n\n registerIcon(icon: IconData): void {\n if (!this.icons.has(icon.name)) {\n this.icons.set(icon.name, icon.data);\n }\n }\n\n registerIcons(icons: IconData[]): void {\n icons.forEach((icon) => this.registerIcon(icon));\n }\n\n getSvg(iconName: string): string | undefined {\n const svg = this.icons.get(iconName);\n\n if (svg === undefined) {\n if (isDevMode()) {\n throw new Error(\n `Icon named \"${iconName}\" not found. Make sure you register it using the \"IconRegistry\" service before using it.`\n );\n } else {\n // eslint-disable-next-line no-console\n console.error(\n `Icon named \"${iconName}\" not found. Make sure you register it before using it.`\n );\n }\n }\n\n return svg;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Interface to implement for the value of {@link ICON_SIZE_PROVIDER}\n */\nexport interface IconSizeProvider {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\n/**\n * Injection token to provide the default size of the icon based on where\n * it's used. Provided size will be used by default, if there is no explicit\n * size set on the icon.\n *\n * @example\n * ```\n * @Component({\n * providers: [{provides: ICON_SIZE_PROVIDER, useExisting: forwardRef(() => MyComponent}],\n * })\n * class MyComponent implements IconSizeProvider {\n * @Input()\n * size?: 'sm' | 'md';\n * }\n */\nexport const ICON_SIZE_PROVIDER = new InjectionToken(\n \"Icon size based on the context it's being used in\"\n);\n","import sanitizeHtml from 'sanitize-html';\n\nconst allowedAttributes = {\n svg: [\n 'id',\n 'class',\n 'style',\n 'xmlns',\n 'width',\n 'height',\n 'viewBox',\n 'preserveAspectRatio',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'overflow',\n 'fill',\n ],\n g: [\n 'id',\n 'class',\n 'style',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'fill',\n ],\n defs: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n symbol: [\n 'id',\n 'class',\n 'style',\n 'viewBox',\n 'preserveAspectRatio',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n use: [\n 'id',\n 'class',\n 'style',\n 'href',\n 'xlink:href',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n path: [\n 'id',\n 'class',\n 'style',\n 'd',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n rect: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'rx',\n 'ry',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n circle: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'r',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n ellipse: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'rx',\n 'ry',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n line: [\n 'id',\n 'class',\n 'style',\n 'x1',\n 'y1',\n 'x2',\n 'y2',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n polyline: [\n 'id',\n 'class',\n 'style',\n 'points',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n polygon: [\n 'id',\n 'class',\n 'style',\n 'points',\n 'fill',\n 'stroke',\n 'stroke-width',\n 'transform',\n 'opacity',\n 'clip-path',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-opacity',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n text: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n tspan: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'dx',\n 'dy',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n textPath: [\n 'id',\n 'class',\n 'style',\n 'href',\n 'xlink:href',\n 'startOffset',\n 'method',\n 'spacing',\n 'fill',\n 'stroke',\n 'font-family',\n 'font-size',\n 'text-anchor',\n 'alignment-baseline',\n 'transform',\n 'opacity',\n 'clip-path',\n 'fill-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n image: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'href',\n 'xlink:href',\n 'transform',\n 'opacity',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n 'filter',\n ],\n clipPath: [\n 'id',\n 'class',\n 'style',\n 'clipPathUnits',\n 'transform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n mask: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'maskUnits',\n 'maskContentUnits',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n pattern: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'patternUnits',\n 'patternContentUnits',\n 'viewBox',\n 'preserveAspectRatio',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n linearGradient: [\n 'id',\n 'class',\n 'style',\n 'x1',\n 'y1',\n 'x2',\n 'y2',\n 'gradientUnits',\n 'gradientTransform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n radialGradient: [\n 'id',\n 'class',\n 'style',\n 'cx',\n 'cy',\n 'r',\n 'fx',\n 'fy',\n 'gradientUnits',\n 'gradientTransform',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n stop: [\n 'id',\n 'class',\n 'style',\n 'offset',\n 'stop-color',\n 'stop-opacity',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n filter: [\n 'id',\n 'class',\n 'style',\n 'x',\n 'y',\n 'width',\n 'height',\n 'filterUnits',\n 'primitiveUnits',\n 'transform',\n 'clip-path',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feGaussianBlur: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'stdDeviation',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feColorMatrix: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'type',\n 'values',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feBlend: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'in2',\n 'mode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feOffset: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'dx',\n 'dy',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feMerge: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feMergeNode: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feComponentTransfer: [\n 'id',\n 'class',\n 'style',\n 'in',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncR: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncG: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncB: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n feFuncA: [\n 'id',\n 'class',\n 'style',\n 'type',\n 'tableValues',\n 'slope',\n 'intercept',\n 'amplitude',\n 'exponent',\n 'offset',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animate: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animateTransform: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'type',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n animateMotion: [\n 'id',\n 'class',\n 'style',\n 'path',\n 'keyPoints',\n 'rotate',\n 'from',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'values',\n 'keyTimes',\n 'keySplines',\n 'calcMode',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n set: [\n 'id',\n 'class',\n 'style',\n 'attributeName',\n 'to',\n 'begin',\n 'dur',\n 'end',\n 'repeatCount',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n desc: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n title: [\n 'id',\n 'class',\n 'style',\n 'visibility',\n 'pointer-events',\n 'cursor',\n 'display',\n ],\n};\n\nconst selfClosing = [\n 'path',\n 'rect',\n 'circle',\n 'ellipse',\n 'line',\n 'polyline',\n 'polygon',\n 'stop',\n 'use',\n 'image',\n 'feGaussianBlur',\n 'feColorMatrix',\n 'feBlend',\n 'feOffset',\n 'feMergeNode',\n 'feFuncR',\n 'feFuncG',\n 'feFuncB',\n 'feFuncA',\n];\n\nexport const sanitizeSvg = (svg: string): string => {\n return sanitizeHtml(svg, {\n allowedTags: Object.keys(allowedAttributes),\n allowedAttributes,\n selfClosing,\n parser: {\n lowerCaseTags: false,\n lowerCaseAttributeNames: false,\n },\n });\n};\n","import {\n Component,\n DoCheck,\n ElementRef,\n Inject,\n Input,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ICON_SIZE_PROVIDER, IconSizeProvider } from './icon-size-provider';\nimport { IconRegistry } from './iconRegistry.service';\nimport { sanitizeSvg } from './svgSanitizer';\n\ntype IconSize = 'sm' | 'md' | 'lg' | 'xl';\n\ntype IconColor =\n | 'primary'\n | 'secondary'\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative';\n\n@Component({\n selector: 'sp-icon',\n template: '',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class IconComponent implements DoCheck {\n private iconClass?: IconSize;\n @Input()\n set name(value: string | undefined) {\n const unsafeSvg = (value && this.registry.getSvg(value)) || '';\n const safeSvg = sanitizeSvg(unsafeSvg);\n this.elementRef.nativeElement.innerHTML = safeSvg;\n this.setClasses();\n }\n\n @Input('size') sizeInput?: IconSize;\n\n get size(): IconSize {\n return this.sizeInput ?? this.sizeProvider?.size ?? 'md';\n }\n\n private _color?: IconColor;\n\n /**\n * The semantic color of the text.\n * No value means that the color will be inherited.\n */\n @Input()\n set color(color: IconColor | undefined) {\n this._color = color;\n this.setClasses();\n }\n\n get color() {\n return this._color;\n }\n\n constructor(\n private elementRef: ElementRef,\n private registry: IconRegistry,\n @Optional()\n @Inject(ICON_SIZE_PROVIDER)\n private sizeProvider?: IconSizeProvider\n ) {}\n\n ngDoCheck() {\n if (this.size !== this.iconClass) {\n this.setClasses();\n }\n }\n\n private setClasses() {\n this.iconClass = this.size;\n const svgElem: SVGSVGElement =\n this.elementRef.nativeElement.querySelector('svg');\n\n if (!svgElem) {\n return;\n }\n\n svgElem.setAttribute(\n 'class',\n `sapphire-icon sapphire-icon--${this.iconClass} ${\n this.color && `sapphire-icon--${this.color}`\n }`\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from './icon.component';\nimport { IconRegistry } from './iconRegistry.service';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule],\n exports: [IconComponent],\n providers: [IconRegistry],\n})\nexport class SapphireIconModule {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * To be used on input props of type boolean, to allow value-less shorthand\n * usage. A caveat is that the type will need to be BooleanInput, since TS\n * doesn't support type mutations through decorators, at the moment:\n * https://github.com/Microsoft/TypeScript/issues/4881\n */\nexport function CoerceBoolean(clazz: any, propName: string, descriptor?: any) {\n if (arguments.length === 0) {\n // support usage of the form @CoerceBoolean()\n return CoerceBoolean;\n }\n if (descriptor) {\n const originalSetter = descriptor.set;\n return Object.assign({}, descriptor, {\n set: function (value: any) {\n originalSetter.call(this, coerceBooleanProperty(value));\n },\n });\n } else {\n return Object.assign(\n {},\n {\n set: function (this: any, value: BooleanInput): void {\n this[`__${propName}`] = coerceBooleanProperty(value);\n },\n get: function (this: any): boolean {\n return this[`__${propName}`] || false;\n },\n }\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spButtonIcon]',\n standalone: false,\n})\nexport class ButtonIconDirective {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Injectable,\n Input,\n isDevMode,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { IconComponent, ICON_SIZE_PROVIDER } from '../../icon/public_api';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Injectable()\nclass ButtonIconSizeProvider {\n constructor(private button: ButtonComponent) {}\n\n get size() {\n return this.button.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n@Component({\n selector: 'button[sp-button], a[sp-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n class: 'sapphire-button',\n\n '[class.sapphire-button--lg]': 'size === \"lg\"',\n '[class.sapphire-button--sm]': 'size === \"sm\"',\n\n '[class.sapphire-button--with-left-icon]':\n 'buttonIcon && iconAlign === \"left\"',\n '[class.sapphire-button--with-right-icon]':\n 'buttonIcon && iconAlign === \"right\"',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: ButtonIconSizeProvider,\n },\n ],\n standalone: false,\n})\nexport class ButtonComponent implements AfterContentInit {\n @Input()\n variant?:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'text'\n | 'danger'\n | 'danger-secondary'\n | 'danger-tertiary'\n | 'danger-text' = 'primary';\n\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @Input()\n iconAlign: 'left' | 'right' = 'left';\n\n /**\n * The behavior of the button when used in an HTML form.\n */\n @Input()\n @HostBinding('type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n @HostBinding('class')\n private get variantClass() {\n return `sapphire-button--${this.variant}`;\n }\n\n @ContentChild(ButtonIconDirective) buttonIcon?: ButtonIconDirective;\n @ContentChild(IconComponent) icon?: IconComponent;\n\n constructor(public elementRef: ElementRef<HTMLButtonElement>) {}\n\n ngAfterContentInit() {\n if (this.icon) {\n if (!this.buttonIcon && isDevMode()) {\n // eslint-disable-next-line no-console\n console.error(`Icon is used in a button of variant \"${this.variant}\".\n You should either add spButtonIcon on the icon or use sp-icon-button instead of sp-button\"`);\n }\n }\n }\n}\n","<span class=\"sapphire-button__content\">\n <span\n *ngIf=\"buttonIcon && iconAlign === 'left'\"\n class=\"sapphire-button__icon\"\n >\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\n </span>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <span\n *ngIf=\"buttonIcon && iconAlign === 'right'\"\n class=\"sapphire-button__icon\"\n >\n <ng-container *ngTemplateOutlet=\"iconContent\"></ng-container>\n </span>\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #iconContent>\n <ng-content select=\"[spButtonIcon]\"></ng-content>\n </ng-template>\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n isDevMode,\n ElementRef,\n AfterViewInit,\n Injectable,\n} from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n@Injectable()\nclass IconButtonIconSizeProvider {\n constructor(private button: IconButtonComponent) {}\n\n get size() {\n return this.button.size === 'xs' ? 'sm' : this.button.size;\n }\n}\n\n@Component({\n selector: 'button[sp-icon-button], a[sp-icon-button]',\n templateUrl: './icon-button.component.html',\n styleUrls: ['./icon-button.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: IconButtonIconSizeProvider,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n class: 'sapphire-icon-button',\n\n '[class.sapphire-icon-button--lg]': 'size === \"lg\"',\n '[class.sapphire-icon-button--sm]': 'size === \"sm\"',\n '[class.sapphire-icon-button--xs]': 'size === \"xs\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class IconButtonComponent implements AfterViewInit {\n @Input()\n variant?:\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'danger'\n | 'danger-secondary'\n | 'danger-tertiary' = 'tertiary';\n\n @Input()\n size?: 'xs' | 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @HostBinding('class')\n private get variantClass() {\n return `sapphire-icon-button--${this.variant}`;\n }\n\n /**\n * The behavior of the button when used in an HTML form.\n */\n @Input()\n @HostBinding('type')\n type: 'submit' | 'button' | 'reset' = 'button';\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterViewInit() {\n const { ariaLabel, ariaHidden } = this.elementRef.nativeElement;\n if (!ariaLabel && ariaHidden !== 'true' && isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(\n `Label is required for accessibility reasons. Please, provide attribute \"aria-label\" value or set aria-hidden=\"true\" for non-interactive elements.`,\n this.elementRef.nativeElement\n );\n }\n }\n}\n","<span class=\"sapphire-icon-button__icon\">\n <ng-content></ng-content>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Injectable,\n Input,\n isDevMode,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport {\n IconComponent,\n IconSizeProvider,\n ICON_SIZE_PROVIDER,\n} from '../../icon/public_api';\n\n@Injectable()\nclass ToggleButtonIconSizeProvider {\n constructor(private button: ToggleButtonComponent) {}\n\n get size() {\n return this.button.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n/**\n * A button with a toggleable `isSelected` state. By default, the selection is\n * toggled when the button is pressed, allowing user to switch between two\n * states or modes.\n */\n@Component({\n selector: 'button[sp-toggle-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true,\n },\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: ToggleButtonIconSizeProvider,\n },\n ],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n\n '[class.sapphire-button]': 'true',\n type: 'button',\n\n '[class.sapphire-button--selected]': 'selected',\n '[class.sapphire-button--unselected]': '!selected',\n\n '[class.sapphire-button--lg]': 'size === \"lg\"',\n '[class.sapphire-button--sm]': 'size === \"sm\"',\n\n '[class.sapphire-button--with-left-icon]':\n 'buttonIcon && iconAlign === \"left\"',\n '[class.sapphire-button--with-right-icon]':\n 'buttonIcon && iconAlign === \"right\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class ToggleButtonComponent\n implements\n AfterContentInit,\n OnChanges,\n ControlValueAccessor,\n IconSizeProvider\n{\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @HostBinding('attr.aria-pressed')\n @Input()\n @CoerceBoolean\n selected: BooleanInput;\n /**\n * Whether selected is controlled. If it's controlled via input binding,\n * then we just output selectChanges, without updating this._selected.\n */\n private isSelectedControlled = false;\n\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n @Input()\n iconAlign: 'left' | 'right' = 'left';\n\n @ContentChild(ButtonIconDirective) buttonIcon?: ButtonIconDirective;\n @ContentChild(IconComponent) icon?: IconComponent;\n\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor() {}\n\n writeValue(value: any): void {\n this.selected = !!value;\n }\n registerOnChange(fn: any): void {\n this.controlValueAccessorChangeFn = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isSelectedControlled = changes.selected?.currentValue !== undefined;\n }\n\n ngAfterContentInit() {\n if (this.icon) {\n if (!this.buttonIcon && isDevMode()) {\n // eslint-disable-next-line no-console\n console.error(`Icon is used in a button.\n You should either add spButtonIcon on the icon or use sp-icon-button instead of sp-button\"`);\n }\n }\n }\n\n @HostListener('blur')\n _onBlur() {\n this.onTouched();\n }\n\n @HostListener('click')\n private handleClick() {\n const newValue = !this.selected;\n this.selectedChange.emit(newValue);\n this.controlValueAccessorChangeFn(newValue);\n if (!this.isSelectedControlled) {\n this.selected = newValue;\n }\n }\n}\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst TOGGLE_BUTTON_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireToggleButtonRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire checkbox's isRequired attribute in template-driven checkbox.\n */\n@Directive({\n selector: `button[sp-toggle-button][required][formControlName],\n button[sp-toggle-button][required][formControl],\n button[sp-toggle-button][required][ngModel]`,\n providers: [TOGGLE_BUTTON_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireToggleButtonRequiredValidator extends CheckboxRequiredValidator {\n @Input()\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from './button.component';\nimport { ButtonIconDirective } from './button-icon.directive';\nimport { IconButtonComponent } from './icon-button.component';\nimport { ToggleButtonComponent } from './toggle-button.component';\nimport { SapphireToggleButtonRequiredValidator } from './toggle-button-required-validator';\nimport { ButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n ButtonIconDirective,\n IconButtonComponent,\n ToggleButtonComponent,\n ButtonGroupComponent,\n SapphireToggleButtonRequiredValidator,\n ],\n imports: [CommonModule, FormsModule],\n exports: [\n ButtonComponent,\n ButtonIconDirective,\n IconButtonComponent,\n ToggleButtonComponent,\n ButtonGroupComponent,\n SapphireToggleButtonRequiredValidator,\n ],\n})\nexport class SapphireButtonModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/button-group.component';\nexport * from './src/button.component';\nexport * from './src/icon-button.component';\nexport * from './src/toggle-button.component';\nexport * from './src/toggle-button-required-validator';\nexport * from './src/button-icon.directive';\nexport * from './src/button.module';\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Constructor, AbstractConstructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n /** Tabindex of the component. */\n tabIndex: number;\n\n /** Tabindex to which to fall back to if no value is set. */\n defaultTabIndex: number;\n}\n\ntype HasTabIndexConstructor = Constructor<HasTabIndex> &\n AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexConstructor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(\n base: T,\n defaultTabIndex = 0\n): HasTabIndexConstructor & T {\n return class extends base implements HasTabIndex {\n private _tabIndex: number = defaultTabIndex;\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex =\n value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n /** Whether the component is disabled. */\n disabled: boolean;\n}\n\ntype CanDisableConstructor = Constructor<CanDisable> &\n AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\nexport function mixinDisabled<T extends AbstractConstructor>(\n base: T\n): CanDisableConstructor & T;\n\nexport function mixinDisabled<T extends Constructor<object>>(\n base: T\n): CanDisableConstructor & T {\n return class extends base {\n private _disabled: boolean = false;\n\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n };\n}\n","let nextUniqueId = 0;\n\n/**\n * To be used on id props that require an auto-generated value, if none provided\n * by the user.\n */\nexport const AutoId = ({ prefix = 'generated' }: { prefix?: string } = {}) => {\n return function AutoId(clazz: any, propName: string, descriptor?: any): any {\n const getter = function (this: any) {\n let id = descriptor?.get() || this[`__${propName}`];\n if (!id) {\n id = this[\n `__${propName}`\n ] = `${prefix}-id-${nextUniqueId++}-${Math.floor(\n Math.random() * 10000000\n )}`;\n }\n return id;\n };\n return Object.assign(\n {},\n {\n set:\n descriptor?.set ||\n function (this: any, value: any) {\n this[`__${propName}`] = value;\n },\n get: getter,\n }\n );\n };\n};\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import { FocusOrigin } from '@angular/cdk/a11y';\n\n/**\n * Injection token which is provided by components that are meant to be rendered\n * within sp-field.\n */\nexport abstract class FieldControl {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focus?(origin: FocusOrigin): void {}\n\n /**\n * The id of the control, to be used to associate the label with the control,\n * if the control is a\n * [labelable](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#labelable)\n * element.\n */\n getId?(): string | undefined {\n return undefined;\n }\n\n hasDefaultWidth?: boolean;\n\n abstract isDisabled(): boolean;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\n\n/**\n * Used inside field to provide a note for the field.\n */\n@Directive({\n selector: 'sp-field-note',\n standalone: true,\n host: {\n class: 'sapphire-field__note',\n },\n})\nexport class FieldNoteDirective {\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n @Input()\n variant?: 'warning' | 'neutral' | 'success' = 'neutral';\n\n public get icon(): string {\n switch (this.variant) {\n case 'warning':\n return 'warning';\n case 'success':\n return 'checkmarkOutline';\n default:\n return '';\n }\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { FieldControl } from './field-control';\n\n/**\n * Used inside sp-field to provide an error message for the field.\n */\n@Directive({\n selector: 'sp-field-error',\n standalone: true,\n host: {\n class: 'sapphire-field__note',\n },\n})\nexport class FieldErrorDirective {\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n @Input() target?: FieldControl;\n}\n","import { Inject, Injectable, LOCALE_ID, Optional } from '@angular/core';\nimport {\n MessageDictionary,\n MessageFormatter,\n} from '@internationalized/message';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslateService {\n constructor(@Inject(LOCALE_ID) @Optional() private locale: string) {\n this.locale = this.locale || 'en-DK';\n }\n\n translate(value: string, translations: MessageDictionary): string {\n return translations.getStringForLocale(value, this.locale);\n }\n\n stringFormatter(translations: MessageDictionary): MessageFormatter {\n return new MessageFormatter(this.locale, translations);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n MessageDictionary,\n MessageFormatter,\n} from '@internationalized/message';\nimport { TranslateService } from './translate.service';\n\n@Pipe({\n name: 't',\n standalone: true,\n})\nexport class TranslatePipe implements PipeTransform {\n constructor(translate: TranslateService, translations: MessageDictionary) {\n this.formatter = translate.stringFormatter(translations);\n }\n\n formatter: MessageFormatter;\n\n transform(value: string, vars?: Record<string, any>): string {\n return this.formatter.format(value, vars);\n }\n}\n","import { NgIf } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { TranslatePipe } from '../../common/translate.pipe';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../i18n';\n\n/**\n * Label UI, currently used exclusively in sp-field.\n * @internal\n */\n@Component({\n selector: 'sp-label',\n standalone: true,\n imports: [NgIf, TranslatePipe],\n providers: [{ provide: MessageDictionary, useValue: translations }],\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class LabelComponent {\n /**\n * id prop set on the underlying label element. Useful to set aria-labelledby\n * on the corresponding control, if it doesn't support labeling via {@link #for}\n */\n @AutoId()\n @Input()\n id = '';\n\n /**\n * html label \"for\" attribute, set on the underlying label element, in case the labeled control\n * has an id and is\n * [labelable](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#labelable)\n */\n @Input()\n for?: string;\n\n /**\n * Whether the label is disabled. Disabled label won't emit labelClick.\n */\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput;\n\n /**\n * Indicates the necessity of the corresponding form control.\n */\n @Input()\n necessityIndicator?: 'required' | 'optional';\n\n /**\n * @default \"lg\"\n */\n @Input()\n size?: 'lg' | 'md' = 'lg';\n\n /**\n * Emits when the label text is clicked.\n */\n @Output()\n labelClick = new EventEmitter<MouseEvent>();\n\n /**\n * @returns the text content of the label.\n */\n getText(): string {\n return this.labelElementRef?.nativeElement.textContent ?? '';\n }\n\n @ViewChild('label', { read: ElementRef })\n private labelElementRef?: ElementRef<HTMLLabelElement>;\n}\n","<div class=\"sapphire-label\" [class.sapphire-label--md]=\"size === 'md'\">\n <label\n class=\"sapphire-label__text\"\n (click)=\"!disabled && labelClick.emit($event)\"\n [attr.for]=\"for\"\n [attr.id]=\"id\"\n #label\n ><ng-content></ng-content\n ></label>\n\n <span\n *ngIf=\"necessityIndicator === 'required'\"\n class=\"sapphire-label__required-indicator\"\n ></span>\n <span\n *ngIf=\"necessityIndicator === 'optional'\"\n class=\"sapphire-label__optional-indicator\"\n >({{ 'optional' | t }})</span\n >\n\n <ng-content select=\"sp-help-button\"></ng-content>\n</div>\n","import { Directive } from '@angular/core';\n\n/**\n * Used inside sp-field to provide the content of field's label.\n */\n@Directive({\n selector: 'sp-field-label',\n standalone: true,\n})\nexport class FieldLabelDirective {}\n","import {\n AfterViewInit,\n Attribute,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n BooleanInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport { CanDisable, mixinDisabled } from '../../../common/disabled';\nimport { HasTabIndex, mixinTabIndex } from '../../../common/tabindex';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { RadioGroupBase } from './radio-group-base';\n\n/** Change event object emitted by radio. */\nexport class SapphireRadioChange {\n constructor(\n /** The new `checked` value of the radio. */\n public readonly source: RadioBase,\n /** The source radio of the event. */\n public readonly value: any\n ) {}\n}\n\nconst _RadioMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n/**\n * @Directive decorator is just to be able to have a constructor with DI.\n * This class is being extended by other components.\n **/\n@Directive({})\nexport class RadioBase\n extends _RadioMixinBase\n implements OnInit, AfterViewInit, DoCheck, OnDestroy, CanDisable, HasTabIndex\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases,\n * aria-labelledby will take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded\n * to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() name: string = '';\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() autofocus: boolean = false;\n\n _getAriaChecked(): 'true' | 'false' {\n return this.checked ? 'true' : 'false';\n }\n\n /** A unique id for the radio input. If none is supplied, it will be auto-generated. */\n @Input()\n @HostBinding()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Previous value of the input's tabindex. */\n private previousTabIndex: number | undefined;\n\n /** Unregister function for _radioDispatcher */\n private removeUniqueSelectionListener: () => void = () => {};\n\n /** The native `<input type=\"radio\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n /** The value of this radio button. */\n @Input()\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n if (this.radioGroup !== null) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n private _value: any = null;\n\n /** Whether this radio button is checked. */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: BooleanInput) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (\n newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value !== this.value\n ) {\n this.radioGroup.selected = this;\n }\n\n if (newCheckedState) {\n this._radioDispatcher.notify(this.id, this.name);\n }\n }\n }\n private _checked: boolean = false;\n\n /** Whether the radio button is disabled. */\n @Input()\n get disabled(): boolean {\n return (\n this._disabled || (this.radioGroup !== null && this.radioGroup.disabled)\n );\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n }\n }\n private _disabled: boolean = false;\n\n /** Whether the radio button is readonly. */\n @Input()\n get readonly(): boolean {\n return (\n this._readonly || (this.radioGroup !== null && this.radioGroup.readonly)\n );\n }\n set readonly(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.readonly) {\n this._readonly = newValue;\n }\n }\n private _readonly: boolean = false;\n\n /** Whether the radio button is required. */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<SapphireRadioChange> =\n new EventEmitter<SapphireRadioChange>();\n\n constructor(\n @Optional() public readonly radioGroup: RadioGroupBase,\n public elementRef: ElementRef<HTMLLIElement>,\n @Attribute('tabindex') tabIndex: string,\n private _focusMonitor: FocusMonitor,\n private _radioDispatcher: UniqueSelectionDispatcher\n ) {\n super(elementRef);\n this.radioGroup = radioGroup;\n\n if (tabIndex) {\n this.tabIndex = coerceNumberProperty(tabIndex, 0);\n }\n }\n\n ngDoCheck(): void {\n this.updateTabIndex();\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this._value;\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n // Assining group name to all radio buttons\n this.name = this.radioGroup.name;\n }\n\n this.removeUniqueSelectionListener = this._radioDispatcher.listen(\n (id, name) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n }\n );\n }\n\n ngAfterViewInit() {\n this.updateTabIndex();\n if (this.autofocus) {\n this._inputElement.nativeElement.focus();\n }\n }\n\n ngOnDestroy() {\n this.removeUniqueSelectionListener();\n }\n\n /** Focuses the radio button. */\n focus(options?: FocusOptions, origin?: FocusOrigin): void {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n } else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n\n /** Gets the tabindex for the underlying input element. */\n private updateTabIndex() {\n const group = this.radioGroup;\n let value: number;\n\n // Implement a roving tabindex if the button is inside a group. For most cases this isn't\n // necessary, because the browser handles the tab order for inputs inside a group automatically,\n // but we need an explicitly higher tabindex for the selected button in order for things like\n // the focus trap to pick it up correctly.\n if (!group || !group.selected || this.disabled) {\n value = this.tabIndex;\n } else {\n value = group.selected === this ? this.tabIndex : -1;\n }\n\n if (value !== this.previousTabIndex) {\n // We have to set the tabindex directly on the DOM node, because it depends on\n // the selected state which is prone to \"changed after checked errors\".\n const input: HTMLInputElement | undefined =\n this._inputElement?.nativeElement;\n\n if (input) {\n input.setAttribute('tabindex', value + '');\n this.previousTabIndex = value;\n }\n }\n }\n\n private emitChangeEvent() {\n this.change.emit(new SapphireRadioChange(this, this.checked));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /** Triggered when the radio button receives an interaction from the user. */\n _onInputInteraction(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n if (!this.checked && !this.disabled && !this.readonly) {\n const groupValueChanged =\n this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n if (this.radioGroup) {\n this.radioGroup._controlValueAccessorChangeFn(this.value);\n if (groupValueChanged) {\n this.radioGroup._emitChangeEvent();\n }\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { RadioBase } from './shared/radio-base';\n\n@Component({\n selector: 'sp-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [ThemeCheckDirective],\n inputs: ['tabIndex'],\n host: {\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n },\n standalone: false,\n})\nexport class RadioComponent extends RadioBase {}\n","<label\n [for]=\"inputId\"\n class=\"sapphire-radio\"\n [class.sapphire-radio--no-disabled]=\"radioGroup?.disabled\"\n [class.sapphire-radio--checked]=\"checked\"\n [class.sapphire-radio--md]=\"radioGroup?._field?.size === 'md'\"\n>\n <input\n #input\n class=\"sapphire-radio__input\"\n type=\"radio\"\n [id]=\"inputId\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"_onInputInteraction($event)\"\n [attr.autofocus]=\"autofocus ? true : null\"\n />\n <span class=\"sapphire-radio__box\"></span>\n <span class=\"sapphire-radio__label\">\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n Optional,\n Output,\n QueryList,\n} from '@angular/core';\nimport { RadioComponent } from '../radio.component';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { FieldControl } from '../../../field/src/field-control';\nimport { SapphireRadioChange } from './radio-base';\nimport { FieldComponent } from '../../../field/src/field.component';\n\n@Directive({\n standalone: true,\n})\nexport abstract class RadioGroupBase\n implements ControlValueAccessor, FieldControl\n{\n @AutoId()\n public uniqueId = '';\n\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n private _name: string = `sapphire-radio-group-${this.uniqueId}`;\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<SapphireRadioChange> =\n new EventEmitter<SapphireRadioChange>();\n\n @Input()\n get value(): any {\n return this._value;\n }\n set value(newValue: any) {\n if (this._value !== newValue) {\n this._value = newValue;\n\n this.updateSelectedRadioFromValue();\n this._checkSelectedRadioButton();\n }\n }\n private _value: any = '';\n\n /**\n * The currently selected radio button. If set to a new radio button, the radio group value\n * will be updated to match the new selected button. */\n @Input()\n get selected() {\n return this._selected;\n }\n set selected(selected: RadioComponent | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioButton();\n }\n private _selected: RadioComponent | null = null;\n\n /** Whether the radio group is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n /** Whether the radio group is readonly */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly: boolean = false;\n\n /** Whether the radio group is required */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n /** Child radio buttons. */\n @ContentChildren(forwardRef(() => RadioComponent), { descendants: true })\n private radios: QueryList<RadioComponent> = new QueryList<RadioComponent>();\n\n onTouched: () => any = () => {};\n _controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() public _field: FieldComponent\n ) {}\n\n _checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent(): void {\n this.change.emit(new SapphireRadioChange(this._selected!, this._value));\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n this.changeDetectorRef.markForCheck();\n }\n\n // Implementing FieldControl interface\n isDisabled(): boolean {\n return this.disabled;\n }\n\n /** Updates the `selected` radio button from the internal _value state. */\n private updateSelectedRadioFromValue(): void {\n // If the value already matches the selected radio, do nothing.\n const alreadySelected =\n this._selected !== null && this._selected.value === this._value;\n\n if (this.radios && !alreadySelected) {\n this._selected = null;\n this.radios.forEach((radio) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FieldControl } from '../../field/src/field-control';\nimport { RadioGroupBase } from './shared/radio-group-base';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'sp-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => RadioGroupComponent),\n },\n {\n provide: RadioGroupBase,\n useExisting: forwardRef(() => RadioGroupComponent),\n },\n ],\n host: {\n role: 'radiogroup',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class RadioGroupComponent extends RadioGroupBase {\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n if (!focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<div\n class=\"sapphire-field-group\"\n role=\"radiogroup\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-labelledby]=\"_field?.label?.id\"\n [class.sapphire-field-group--vertical]=\"orientation === 'vertical'\"\n [class.sapphire-field-group--horizontal]=\"orientation === 'horizontal'\"\n [class.sapphire-field-group--md]=\"_field?.size === 'md'\"\n (cdkFocusChange)=\"_onFocusChange($event)\"\n cdkMonitorSubtreeFocus\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Injectable,\n Input,\n isDevMode,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { FieldNoteDirective } from './field-note.directive';\nimport { FieldErrorDirective } from './field-error.directive';\nimport { LabelComponent } from '../../label/src/label.component';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { RequiredValidator } from '@angular/forms';\nimport { FieldControl } from './field-control';\nimport { FieldLabelDirective } from './field-label.directive';\nimport { CdkPortalOutlet, DomPortal } from '@angular/cdk/portal';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport {\n ICON_SIZE_PROVIDER,\n IconSizeProvider,\n} from '../../icon/src/icon-size-provider';\nimport { RadioGroupComponent } from '../../radio/src/radio-group.component';\nimport { IconRegistry } from '../../icon/public_api';\nimport {\n iconWarning,\n iconError,\n iconCheckmarkOutline,\n} from '@danske/sapphire-icons/js';\n\n@Injectable()\nclass FieldIconSizeProvider {\n constructor(private field: FieldComponent) {}\n\n get size() {\n return this.field.size === 'lg' ? 'md' : 'sm';\n }\n}\n\n/**\n * A field is a common container for labelable controls such as select, radio group, text field,\n * etc.\n * In addition to the field control (sp-select, sp-radio-group, sp-text-field), the following\n * components can be used inside a field:\n * - sp-field-label: is used to provide the label text for the field.\n * - sp-help-button: is placed in the label area, next to the label text\n * - sp-field-error: is used to provide an error message, which is placed below the field's\n * control.\n * - sp-field-note: is used to provide a note, which is placed below the field's control. Only\n * shown\n * when there is no error\n * - sp-field-note-suffix: is used to provide a suffix, which is placed on the right side of the\n * note area.\n *\n * Additionally, field supports:\n * - Label placement either above (default) or on the side of the control.\n * - Associating label with the control, so that clicking the label focuses the control, showing\n * focus ring.\n * - Optionally showing necessity indicator in the label. Fields necessity (required or optional)\n * is determined based on the presence of @angular/form's {@link RequiredValidator}.\n */\n@Component({\n selector: 'sp-field',\n templateUrl: './field.component.html',\n styleUrls: ['./field.component.scss'],\n host: {\n class: 'sapphire-field',\n '[class.sapphire-field--label-placement-side]': 'labelPlacement === \"side\"',\n '[class.sapphire-field--no-width]':\n 'noDefaultWidth || !controlHasDefaultWidth()',\n '[class.sapphire-field--label-alignment-top]':\n 'labelPlacement === \"side\" && hasRadioGroupChild()',\n '[class.sapphire-field--md]': 'size === \"md\"',\n '[class.is-disabled]': 'isDisabled()',\n },\n hostDirectives: [UseComponentStylesOnHost],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useClass: FieldIconSizeProvider,\n },\n ],\n standalone: false,\n})\nexport class FieldComponent\n implements AfterContentInit, AfterViewChecked, IconSizeProvider\n{\n /**\n * Whether the necessity indicator should be visible.\n */\n @Input()\n @CoerceBoolean\n necessityIndicator?: BooleanInput;\n\n /**\n * Label placement with respect to the form control.\n * @default \"above\"\n */\n @Input()\n labelPlacement?: 'side' | 'above' = 'above';\n\n /**\n * Avoid the default width\n */\n @Input()\n @CoerceBoolean\n noDefaultWidth?: BooleanInput;\n\n /**\n * Allow both note and error at the same time\n * @default false\n */\n @Input()\n @CoerceBoolean\n allowNoteAndError?: BooleanInput;\n\n /**\n * @default \"lg\"\n */\n @Input()\n size?: 'lg' | 'md' = 'lg';\n\n @ContentChild(FieldNoteDirective)\n note?: FieldNoteDirective;\n\n @ContentChild(FieldErrorDirective)\n error?: FieldErrorDirective;\n\n @ViewChild(LabelComponent)\n label?: LabelComponent;\n\n @ContentChild(FieldLabelDirective)\n _fieldLabel?: FieldLabelDirective;\n\n /**\n * Focusable, labelable control. Components like Select, RadioGroup or TextField,\n * that are meant to rendered inside sp-field, provide FieldControl.\n */\n @ContentChildren(FieldControl)\n controls?: QueryList<FieldControl>;\n\n @ContentChild(RadioGroupComponent)\n radioGroup?: RadioGroupComponent;\n\n @ContentChild(RequiredValidator, { descendants: true })\n private requiredValidator?: RequiredValidator;\n\n @ViewChildren(CdkPortalOutlet)\n private suffixPortalOutlet: QueryList<CdkPortalOutlet> | null = null;\n\n /**\n * Is set via field-note-affix directive. ContentChild query can't be used since we need\n * to query from content -> view in some cases.\n * @internal\n */\n _noteSuffixPortal: DomPortal<HTMLElement> | null = null;\n\n private changed: boolean = false;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n iconRegistry: IconRegistry\n ) {\n iconRegistry.registerIcon(iconCheckmarkOutline);\n iconRegistry.registerIcon(iconWarning);\n iconRegistry.registerIcon(iconError);\n }\n\n ngAfterContentInit() {\n if (!this.controls && isDevMode()) {\n throw new Error(\n 'sp-field is rendered without any control like sp-select, sp-text-field, or sp-radio-group inside it.'\n );\n }\n }\n\n ngAfterViewInit() {\n this.suffixPortalOutlet!.changes.subscribe(() => {\n if (this._noteSuffixPortal?.isAttached === false) {\n // It might be a bug in @angular/cdk/portal, but when the portal outlet that renders\n // a DomPortal is changed, the DomPortal gets detached and not reattached to the new outlet.\n // The following reattaching is to work around this issue.\n this.suffixPortalOutlet?.first?.detach();\n this.suffixPortalOutlet?.first?.attach(this._noteSuffixPortal);\n }\n });\n }\n\n ngAfterViewChecked() {\n /**\n * Since note suffix portal is changed by FieldNoteSuffixDirective,\n * it creates a case of ExpressionChangedAfterItHasBeenCheckedError.\n * So we need to manually detect changes when suffix portal is changed.\n * We Wouldn't need to do so, if we could query FieldNoteSuffixDirective\n * via @ContentChild, but we can't because it can be in the view of a content\n * child, which makes it not query-able.\n */\n if (this.changed) {\n this.changeDetectorRef.detectChanges();\n this.changed = false;\n }\n }\n\n /**\n * Whether the field contains an error message (sp-field-error).\n */\n hasError(targetField?: FieldControl): boolean {\n return (\n this.error !== undefined &&\n (!targetField || !this.error.target || this.error.target === targetField)\n );\n }\n\n /**\n * If there are multiple controls, the field is only disabled when all of them are disabled\n */\n isDisabled(): boolean {\n if (!this.controls || this.controls.length === 0) {\n return false;\n }\n\n return this.controls?.toArray().every((control) => control.isDisabled());\n }\n\n /**\n * If any of the controls should be constrained by the field's default widht\n */\n controlHasDefaultWidth(): boolean {\n if (!this.controls || this.controls.length === 0) {\n return false;\n }\n\n return this.controls?.toArray().some((control) => control.hasDefaultWidth);\n }\n\n /**\n * Only support features like `for` or `labelClick` if the field has one control.\n */\n get control(): FieldControl | undefined {\n return this.controls?.length === 1 ? this.controls.first : undefined;\n }\n\n get isGroup(): boolean {\n return this.controls ? this.controls.length > 1 : false;\n }\n\n /**\n * Whether the field control is radio group (sp-radio-group).\n */\n hasRadioGroupChild(): boolean {\n return this.radioGroup != undefined;\n }\n\n get labelNecessityIndicator(): LabelComponent['necessityIndicator'] {\n if (this.necessityIndicator) {\n return coerceBooleanProperty(this.requiredValidator?.required)\n ? 'required'\n : 'optional';\n }\n return undefined;\n }\n\n _setSuffixPortal(portal: DomPortal<HTMLElement> | null) {\n if (this._noteSuffixPortal?.isAttached) {\n this._noteSuffixPortal.detach();\n // calling detach will move the element back to the DOM. Couldn't find any better\n // way than imperatively removing the DOM element too.\n this._noteSuffixPortal.element.remove();\n }\n this._noteSuffixPortal = portal;\n this.changed = true;\n }\n}\n","<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-help-button\"\n ngProjectAs=\"sp-help-button\"\n ></ng-content>\n </sp-label>\n</div>\n<div\n class=\"sapphire-field__control\"\n [ngClass]=\"{\n 'sapphire-field__control--group': isGroup\n }\"\n>\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row sapphire-text--negative\" *ngIf=\"error\">\n <span class=\"sapphire-field__note-icon\">\n <sp-icon name=\"error\" size=\"sm\"></sp-icon>\n </span>\n <div class=\"sapphire-field__note\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-field__note-row\"\n [ngClass]=\"{\n 'sapphire-text--positive': note?.variant === 'success',\n 'sapphire-text--warning': note?.variant === 'warning'\n }\"\n *ngIf=\"note && (!error || allowNoteAndError)\"\n >\n <span class=\"sapphire-field__note-icon\" *ngIf=\"note?.icon\">\n <sp-icon [name]=\"note?.icon\" size=\"sm\"></sp-icon>\n </span>\n <div class=\"sapphire-field__note\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"!error && _noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-field__note-row\"\n *ngIf=\"!note && !error && _noteSuffixPortal\"\n >\n <ng-container>\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n Optional,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { FieldControl } from '../../field/src/field-control';\nimport { FieldComponent } from '../../field/src/field.component';\n\n@Component({\n selector: 'sp-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n {\n provide: FieldControl,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n },\n ],\n host: {\n role: 'checkboxgroup',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class CheckboxGroupComponent implements FieldControl {\n @AutoId()\n public uniqueId = '';\n\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /** Whether the checkbox group is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n /** Whether the checkbox group is readonly */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: BooleanInput) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n private _readonly: boolean = false;\n\n /** Whether the checkbox group is required */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean = false;\n\n get size(): 'lg' | 'md' {\n return this._field.size || 'lg';\n }\n\n constructor(@Optional() public _field: FieldComponent) {}\n\n // Implementing FieldControl interface\n isDisabled(): boolean {\n return this.disabled;\n }\n}\n","<div\n class=\"sapphire-field-group\"\n role=\"group\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-labelledby]=\"_field?.label?.id\"\n [class.sapphire-field-group--vertical]=\"orientation === 'vertical'\"\n [class.sapphire-field-group--horizontal]=\"orientation === 'horizontal'\"\n [class.sapphire-field-group--md]=\"_field?.size === 'md'\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { HasTabIndex, mixinTabIndex } from '../../common/tabindex';\nimport { CanDisable, mixinDisabled } from '../../common/disabled';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CheckboxGroupComponent } from './checkbox-group.component';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../../label/i18n';\n\n/** Change event object emitted by checkbox. */\nexport class CheckboxChange {\n constructor(\n /** The new `selected` value of the checkbox. */\n public readonly selected: boolean,\n /** The source checkbox of the event. */\n public readonly source: CheckboxComponent\n ) {}\n}\n\nconst _CheckboxMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n@Component({\n selector: 'sp-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n exportAs: 'spCheckbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n { provide: MessageDictionary, useValue: translations },\n ],\n host: {\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class CheckboxComponent\n extends _CheckboxMixinBase\n implements\n AfterViewInit,\n ControlValueAccessor,\n CanDisable,\n HasTabIndex,\n FocusableOption\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases,\n * aria-labelledby will take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded\n * to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get _inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input()\n @CoerceBoolean\n required: BooleanInput = false;\n\n /**\n * Whether the necessity indicator should be visible.\n */\n @Input()\n @CoerceBoolean\n necessityIndicator?: BooleanInput;\n\n /**\n * Whether the checkbox is readonly.\n */\n @Input()\n @CoerceBoolean\n readonly: BooleanInput = false;\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n @Input()\n get size(): 'lg' | 'md' {\n return this._size || this.checkboxGroup?.size;\n }\n set size(value: 'lg' | 'md') {\n if (value !== this.size) {\n this._size = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _size?: 'lg' | 'md';\n\n /** Event emitted when the checkbox's `selected` value changes. */\n @Output() readonly change: EventEmitter<CheckboxChange> =\n new EventEmitter<CheckboxChange>();\n\n /** The value attribute of the native input element */\n @Input() value: string | undefined;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement\n * ControlValueAccessor.\n * @docs-private\n */\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n constructor(\n @Optional() public readonly checkboxGroup: CheckboxGroupComponent,\n elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(elementRef);\n this.tabIndex = parseInt(tabIndex) || 0;\n this.checkboxGroup = checkboxGroup;\n }\n ngAfterViewInit() {\n this.syncIndeterminate(this._indeterminate);\n }\n\n /** Whether the checkbox is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: BooleanInput) {\n const selected = coerceBooleanProperty(value);\n\n if (selected != this.selected) {\n this._selected = selected;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _selected: boolean = false;\n\n /**\n * Whether the checkbox is disabled. This fully overrides the implementation\n * provided by mixinDisabled, but the mixin is still required because\n * mixinTabIndex requires it.\n */\n @Input()\n override get disabled(): boolean {\n return this._disabled || this.checkboxGroup?.disabled;\n }\n override set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _disabled: boolean = false;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode\n * and can be used to represent a checkbox with three states, e.g. a checkbox\n * that represents a nested list of checkable items.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: BooleanInput) {\n this._indeterminate = coerceBooleanProperty(value);\n this.syncIndeterminate(this._indeterminate);\n }\n private _indeterminate: boolean = false;\n\n get labelNecessityIndicator(): 'optional' | 'required' | undefined {\n if (this.necessityIndicator) {\n return coerceBooleanProperty(this.required) ? 'required' : 'optional';\n }\n return undefined;\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.selected = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /** Toggles the `selected` state of the checkbox. */\n toggle(): void {\n this.selected = !this.selected;\n this.controlValueAccessorChangeFn(this.selected);\n }\n\n focus() {\n this._inputElement.nativeElement.focus();\n }\n\n _getAriaChecked(): 'true' | 'false' | 'mixed' {\n if (this.selected) {\n return 'true';\n }\n\n return this.indeterminate ? 'mixed' : 'false';\n }\n\n _onInputClick($event: Event) {\n $event.stopPropagation();\n if (!this.disabled && !this.readonly) {\n this._selected = !this._selected;\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise, the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n _onBlur() {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n });\n }\n private emitChangeEvent() {\n this.controlValueAccessorChangeFn(this.selected);\n this.change.emit(new CheckboxChange(this.selected, this));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.selected;\n }\n }\n\n /**\n * Syncs the indeterminate value with the checkbox DOM node.\n *\n * We sync `indeterminate` directly on the DOM node, because in Ivy the check\n * for whether a property is supported on an element boils down to `if\n * (propName in element)`. Domino's HTMLInputElement doesn't have an\n * `indeterminate` property so Ivy will warn during server-side rendering.\n */\n private syncIndeterminate(value: boolean) {\n const nativeCheckbox = this._inputElement;\n\n if (nativeCheckbox) {\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n }\n}\n","<label\n [for]=\"_inputId\"\n class=\"sapphire-checkbox\"\n [class.sapphire-checkbox--checked]=\"selected\"\n [class.sapphire-checkbox--indeterminate]=\"indeterminate\"\n [class.is-disabled]=\"disabled && !checkboxGroup?.disabled\"\n [class.sapphire-checkbox--md]=\"size === 'md'\"\n>\n <input\n #input\n type=\"checkbox\"\n class=\"sapphire-checkbox__input\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [id]=\"_inputId\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick($event)\"\n (change)=\"_onInteractionEvent($event)\"\n />\n <span class=\"sapphire-checkbox__box\">\n <svg\n *ngIf=\"indeterminate\"\n class=\"sapphire-checkbox__box-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"square\"\n d=\"M7 12h10\"\n />\n <path fill=\"currentColor\" fill-rule=\"nonzero\" d=\"M18 11v2H6v-2z\" />\n </g>\n </svg>\n <svg\n *ngIf=\"selected && !indeterminate\"\n class=\"sapphire-checkbox__box-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M17.782 6.918l.753.659a.5.5 0 01.047.705L10.9 17.061a.5.5 0 01-.73.024l-4.232-4.231a.5.5 0 010-.708l.707-.707a.5.5 0 01.708 0l3.097 3.097 6.626-7.57a.5.5 0 01.705-.048z\"\n fill=\"currentColor\"\n fill-rule=\"nonzero\"\n />\n </svg>\n </span>\n <span class=\"sapphire-checkbox__label\">\n <ng-content></ng-content>\n <span\n *ngIf=\"labelNecessityIndicator === 'required'\"\n class=\"sapphire-checkbox__required-indicator\"\n ></span>\n <span\n *ngIf=\"labelNecessityIndicator === 'optional'\"\n class=\"sapphire-checkbox__optional-indicator\"\n >({{ 'optional' | t }})\n </span>\n </span>\n</label>\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireCheckboxRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire checkbox's \"required\" attribute in template-driven checkbox.\n */\n@Directive({\n selector: `sp-checkbox[required][formControlName],\n sp-checkbox[required][formControl], sp-checkbox[required][ngModel]`,\n providers: [CHECKBOX_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireCheckboxRequiredValidator extends CheckboxRequiredValidator {\n @Input()\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from './checkbox.component';\nimport { FormsModule } from '@angular/forms';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireCheckboxRequiredValidator } from './checkbox-required-validator';\nimport { CheckboxGroupComponent } from './checkbox-group.component';\nimport { TranslatePipe } from '../../common/translate.pipe';\n\n@NgModule({\n declarations: [\n CheckboxComponent,\n SapphireCheckboxRequiredValidator,\n CheckboxGroupComponent,\n ],\n imports: [CommonModule, TranslatePipe, FormsModule, A11yModule],\n exports: [\n CheckboxComponent,\n SapphireCheckboxRequiredValidator,\n CheckboxGroupComponent,\n ],\n})\nexport class SapphireCheckboxModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/checkbox.component';\nexport * from './src/checkbox-group.component';\nexport * from './src/checkbox.module';\nexport * from './src/checkbox-required-validator';\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Component } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n/** @title Menu with Standalone Trigger. */\n@Component({\n selector: 'sp-menu',\n styleUrls: ['./menu.component.scss'],\n templateUrl: './menu.component.html',\n hostDirectives: [\n { directive: CdkMenu, outputs: ['closed'] },\n ThemeCheckDirective,\n UseComponentStylesOnHost,\n ],\n host: {\n // It would be more accurate to apply sapphire-popover on the element with cdk-overlay-pane\n // class, instead of the inner sp-menu element. There might be a provider to use for adding\n // custom class to the cdk overlay pane element.\n '[class.sapphire-popover]': 'true',\n '[class.sapphire-popover--max-width]': 'true',\n },\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'sm' },\n },\n ],\n standalone: false,\n})\nexport class MenuComponent {}\n","<div class=\"sapphire-listbox\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-menu-item',\n templateUrl: './menu-item.component.html',\n standalone: false,\n hostDirectives: [\n {\n directive: CdkMenuItem,\n inputs: [\n 'cdkMenuItemDisabled: disabled',\n 'cdkMenuitemTypeaheadLabel: typeaheadLabel',\n ],\n outputs: ['cdkMenuItemTriggered: triggered'],\n },\n UseComponentStyles,\n ],\n host: {\n '[class.sapphire-listbox__item]': 'true',\n },\n})\nexport class MenuItemComponent {\n /** Whether the item should be disabled */\n @HostBinding('class.is-disabled')\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** Whether the item should be styled as danger item */\n @HostBinding('class.sapphire-listbox__item--danger')\n @Input()\n @CoerceBoolean\n danger: BooleanInput;\n}\n","<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-content select=\"sp-menu-primary-text\"></ng-content>\n <!-- If nothing matches other ng-content selectors then render it as primary text -->\n <ng-content></ng-content>\n </div>\n <ng-content select=\"sp-menu-secondary-text\"></ng-content>\n </div>\n <ng-content select=\"sp-menu-item-icon\"></ng-content>\n</div>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type HorizontalPlacement = 'start' | 'end';\nexport type VerticalPlacement = 'top' | 'bottom';\nexport type Placement =\n | HorizontalPlacement\n | VerticalPlacement\n | `${HorizontalPlacement} ${VerticalPlacement}`\n | `${VerticalPlacement} ${HorizontalPlacement}`;\n\ntype PlacementPart = HorizontalPlacement | VerticalPlacement;\n\n/**\n * Converts our `Placement` input (which is aligned with react implementation), to Angular CDK\n * `ConnectedPosition`\n * @param placement\n */\nexport function toConnectedPosition(placement: Placement): ConnectedPosition {\n const [first, second = 'center'] = placement.split(' ') as [\n PlacementPart,\n PlacementPart | undefined\n ];\n\n switch (first) {\n case 'top':\n return {\n originY: 'top',\n overlayY: 'bottom',\n originX: second as 'center' | HorizontalPlacement,\n overlayX: second as 'center' | HorizontalPlacement,\n offsetY: -6,\n };\n case 'bottom':\n return {\n originY: 'bottom',\n overlayY: 'top',\n originX: second as 'center' | HorizontalPlacement,\n overlayX: second as 'center' | HorizontalPlacement,\n offsetY: 6,\n };\n case 'start':\n return {\n overlayX: 'end',\n originX: 'start',\n originY: second as 'center' | VerticalPlacement,\n overlayY: second as 'center' | VerticalPlacement,\n offsetX: -6,\n };\n case 'end':\n return {\n overlayX: 'start',\n originX: 'end',\n originY: second as 'center' | VerticalPlacement,\n overlayY: second as 'center' | VerticalPlacement,\n offsetX: 6,\n };\n }\n}\n\nconst PLACEMENT_FLIP_MAP: Record<PlacementPart, PlacementPart> = {\n top: 'bottom',\n bottom: 'top',\n start: 'end',\n end: 'start',\n};\n\nexport function flip(placement: Placement): Placement {\n return placement\n .split(' ')\n .map((part, index) => {\n if (index === 0) {\n return PLACEMENT_FLIP_MAP[part as PlacementPart];\n }\n return part;\n })\n .join(' ') as Placement;\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport {\n FlexibleConnectedPositionStrategy,\n // eslint-disable-next-line sapphire-angular/cdk-overlay\n Overlay,\n OverlayConfig,\n} from '@angular/cdk/overlay';\nimport { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\nimport {\n flip,\n HorizontalPlacement,\n Placement,\n toConnectedPosition,\n VerticalPlacement,\n} from '../../common/placement';\n\n@Directive({\n selector: '[spMenuTriggerFor]',\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: spMenuTriggerFor'],\n outputs: ['cdkMenuOpened: spMenuOpened', 'cdkMenuClosed: spMenuClosed'],\n },\n ],\n // CdkMenuTrigger uses Overlay directly\n providers: [{ provide: Overlay, useClass: SapphireOverlay }],\n exportAs: 'spMenuTrigger',\n host: {\n '[class.is-active]': 'isOpen()',\n },\n standalone: false,\n})\nexport class MenuTriggerDirective implements OnInit {\n /**\n * Horizontal alignment of the menu and the trigger.\n */\n @Input('spMenuTriggerAlign') align: HorizontalPlacement = 'start';\n\n /**\n * Vertical direction in which the menu opens, relative to the trigger.\n */\n @Input('spMenuTriggerDirection') direction: VerticalPlacement = 'bottom';\n\n constructor(private menuTrigger: CdkMenuTrigger) {}\n\n ngOnInit(): void {\n this.menuTrigger.menuPosition = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 6,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -6,\n },\n ];\n this.patchMenuTrigger(this.menuTrigger, this.getPlacementValue.bind(this));\n }\n\n close() {\n return this.menuTrigger.close();\n }\n\n open() {\n return this.menuTrigger.open();\n }\n\n toggle() {\n return this.menuTrigger.toggle();\n }\n\n getMenu() {\n return this.menuTrigger.getMenu();\n }\n\n isOpen() {\n return this.menuTrigger.isOpen();\n }\n\n // Preventing default behavior of page being scrolled when you press space when you use it to activate the trigger\n @HostListener('keydown.space')\n private handleSpace() {\n return false;\n }\n\n @HostListener('keydown.escape')\n private handleEscape() {\n this.close();\n }\n\n /**\n * `CdkMenuTrigger` controls overlay creation, and doesn't allow customizing overlay config.\n * We need to patch it like this to make the menu modal, like other popovers. It's unsafe, as it\n * relies on private API, so we have to cover the expected result by tests.\n */\n private patchMenuTrigger(\n menuTrigger: CdkMenuTrigger,\n getPlacement: () => Placement\n ) {\n // @ts-expect-error accessing private method\n const originalGetOverlayConfig = menuTrigger._getOverlayConfig;\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayConfig = function (): OverlayConfig {\n // @ts-expect-error accessing private method\n const overlay: Overlay = this._overlay;\n return {\n // eslint-disable-next-line prefer-rest-params\n ...originalGetOverlayConfig.call(this, arguments),\n hasBackdrop: true,\n backdropClass: 'sapphire-menu-backdrop',\n scrollStrategy: overlay?.scrollStrategies.block(),\n };\n };\n\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositions = function () {\n const placement: Placement = getPlacement() || 'bottom start';\n\n return [\n toConnectedPosition(placement),\n toConnectedPosition(flip(placement)),\n ];\n };\n\n const original_getOverlayPositionStrategy =\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy;\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy =\n function (): FlexibleConnectedPositionStrategy {\n const result = original_getOverlayPositionStrategy.call(\n this,\n // eslint-disable-next-line prefer-rest-params\n arguments\n ) as FlexibleConnectedPositionStrategy;\n\n /**\n * Two reasons for viewport margin:\n * - Looks ugly with zero margin\n * - For some reason, with zero margin, menu item text may unnecessarily\n * wrap, if menu trigger is rendered close to the right edge of the\n * viewport.\n * - If menu popover is 'end' aligned, it's for some reason pushed to the right\n * as if it were close to the left edge. Thus avoiding margin in those cases.\n */\n const placement: Placement = getPlacement();\n return result.withViewportMargin(placement.includes('end') ? 0 : 6);\n };\n\n const originalOpen = menuTrigger.open;\n menuTrigger.open = () => {\n // @ts-expect-error accessing private method\n menuTrigger.overlayRef?.updatePositionStrategy(\n // @ts-expect-error accessing private method\n menuTrigger._getOverlayPositionStrategy()\n );\n originalOpen.call(menuTrigger);\n };\n }\n\n private getPlacementValue(): Placement {\n return `${this.direction} ${this.align}`;\n }\n}\n","import { Component, ContentChild } from '@angular/core';\nimport { CdkMenu, CdkMenuGroup, CdkMenuItem } from '@angular/cdk/menu';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-menu-section',\n templateUrl: './menu-section.component.html',\n hostDirectives: [CdkMenuGroup, UseComponentStyles],\n host: {\n '[class.sapphire-listbox__section]': 'true',\n },\n standalone: false,\n})\nexport class MenuSectionComponent {\n @ContentChild(CdkMenuItem) firstMenuItem?: CdkMenuItem;\n\n constructor(private menu: CdkMenu) {}\n\n _isFirstSection() {\n return this.menu.items?.first === this.firstMenuItem;\n }\n}\n","<div\n *ngIf=\"!_isFirstSection()\"\n class=\"sapphire-listbox__separator\"\n _spUseComponentStyles\n></div>\n<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n/**\n * Icon container of a listbox option.\n */\n@Component({\n selector: 'sp-menu-item-icon',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-listbox__icon',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class MenuIconComponent {}\n","import { Component } from '@angular/core';\n\n/**\n * Primary text of a listbox option. Useful when the option contains other parts\n * like secondary text or icon.\n */\n@Component({\n selector: 'sp-menu-primary-text',\n template: '<ng-content></ng-content>',\n standalone: false,\n})\nexport class MenuPrimaryTextComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n/**\n * Secondary text of a listbox option.\n */\n@Component({\n selector: 'sp-menu-secondary-text',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-listbox__secondary-text',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class MenuSecondaryTextComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { MenuComponent } from './menu.component';\nimport { MenuItemComponent } from './menu-item.component';\nimport { MenuTriggerDirective } from './menu-trigger.directive';\nimport { MenuSectionComponent } from './menu-section.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { MenuIconComponent } from './menu-icon.component';\nimport { MenuPrimaryTextComponent } from './menu-primary-text.component';\nimport { MenuSecondaryTextComponent } from './menu-secondary-text.component';\n\n@NgModule({\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuIconComponent,\n MenuPrimaryTextComponent,\n MenuSecondaryTextComponent,\n MenuSectionComponent,\n MenuTriggerDirective,\n ],\n imports: [CommonModule, CdkMenuModule, UseComponentStyles],\n exports: [\n MenuComponent,\n MenuItemComponent,\n MenuIconComponent,\n MenuPrimaryTextComponent,\n MenuSecondaryTextComponent,\n MenuSectionComponent,\n MenuTriggerDirective,\n ],\n})\nexport class SapphireMenuModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/menu.component';\nexport * from './src/menu.module';\nexport * from './src/menu-item.component';\nexport * from './src/menu-primary-text.component';\nexport * from './src/menu-secondary-text.component';\nexport * from './src/menu-icon.component';\nexport * from './src/menu-section.component';\nexport * from './src/menu-trigger.directive';\n","import {\n FlexibleConnectedPositionStrategy,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n InjectionToken,\n Injector,\n Input,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { flip, Placement, toConnectedPosition } from '../../common/placement';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\n\nexport interface PopoverTrigger {\n toggle(): void;\n open(): void;\n close(): void;\n elementRef: ElementRef<HTMLElement>;\n}\nexport const POPOVER_TRIGGER = new InjectionToken<PopoverTrigger>(\n 'sp-popover-trigger'\n);\n\n// TODO(UC-2728): improve event handling when reusable press utility is added\n\n@Directive({\n selector: '[spPopoverTriggerFor]',\n providers: [\n { provide: POPOVER_TRIGGER, useExisting: PopoverTriggerDirective },\n ],\n host: {\n '[class.is-active]': 'isOpen()',\n '[attr.aria-expanded]': 'isOpen()',\n },\n exportAs: 'spPopoverTrigger',\n standalone: false,\n})\nexport class PopoverTriggerDirective implements PopoverTrigger {\n @Input('spPopoverPlacement')\n public placement: Placement = 'bottom';\n\n @Input('spPopoverTriggerFor')\n templateRef: TemplateRef<unknown> | null = null;\n\n /**\n * Whether the popover should not block interaction with background.\n */\n @Input('spPopoverNonModal')\n @CoerceBoolean\n nonModal: BooleanInput = false;\n\n /**\n * Whether the popover should be opened on press start.\n */\n @Input('spPopoverTriggerOpenOnPressStart')\n @CoerceBoolean\n openOnPressStart: BooleanInput = false;\n\n /**\n * Whether the popover should be closed when the container is scrolled.\n * @default false\n */\n @Input('spPopoverTriggerCloseOnScroll')\n @CoerceBoolean\n closeOnScroll: BooleanInput = false;\n\n /**\n * Can be used to disable toggling popover on clicks. Useful if `spPopoverTrigger`\n * is applied on an element which doesn't support `disabled` property.\n */\n @Input('spPopoverTriggerDisabled')\n @CoerceBoolean\n disabled: BooleanInput = false;\n\n /**\n * If the popover should be pushed around whenever it doesn't fit the viewport\n * with the provided placement.\n */\n @Input('spPopoverDisablePushInsideViewport')\n @CoerceBoolean\n disablePushInsideViewport: BooleanInput = false;\n\n /** Emits when the attached popover is requested to open */\n @Output('spPopoverTriggerOpened')\n readonly opened: EventEmitter<void> = new EventEmitter();\n\n /** Emits when the attached popover is requested to close */\n @Output('spPopoverTriggerClosed')\n readonly closed: EventEmitter<void> = new EventEmitter();\n\n /** Emits when this trigger is destroyed. */\n protected readonly destroyed: Subject<void> = new Subject();\n\n /** A reference to the overlay which manages the triggered menu */\n protected overlayRef: OverlayRef | null = null;\n\n private isBeingPressed = false;\n\n @HostBinding('attr.aria-controls')\n public get getPopoverId() {\n return this.overlayRef?.hostElement.querySelector('[role=\"dialog\"]')?.id;\n }\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private overlay: SapphireOverlay,\n private viewContainerRef: ViewContainerRef,\n public elementRef: ElementRef<HTMLElement>,\n private injector: Injector\n ) {}\n\n ngOnDestroy() {\n this.destroyOverlay();\n\n this.destroyed.next(undefined);\n this.destroyed.complete();\n }\n\n /** Toggle the attached popover. */\n toggle() {\n this.isOpen() ? this.close() : this.open();\n }\n\n /** Open the attached popover. */\n open() {\n if (!this.isOpen() && this.templateRef != null && !this.disabled) {\n this.opened.next();\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef.updatePositionStrategy(\n this.getOverlayPositionStrategy()\n );\n this.overlayRef.detachments().subscribe(() => {\n this.closed.next();\n this.changeDetectorRef.detectChanges();\n });\n }\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(merge(this.closed, this.destroyed)))\n .subscribe((event: MouseEvent) => {\n if (\n // If popover is opened on press start, an outside pointer event\n // is emitted as the mouse is being released, which would immediately\n // close the popover. Probably a bug in @angular/cdk/overlay.\n !(this.openOnPressStart && this.isBeingPressed) &&\n !this.elementRef.nativeElement.contains(event.target as Element)\n ) {\n this.close();\n }\n });\n this.overlayRef.attach(this.getContentPortal());\n this.changeDetectorRef.detectChanges();\n }\n }\n\n /** Close the opened popover. */\n close() {\n if (this.isOpen()) {\n this.overlayRef?.detach();\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Whether the popover is open. */\n isOpen() {\n return !!this.overlayRef?.hasAttached();\n }\n\n @HostListener('mousedown', ['$event'])\n private handleMousedown(event: MouseEvent) {\n this.isBeingPressed = true;\n if (this.openOnPressStart) {\n if (event.currentTarget instanceof HTMLElement) {\n // We need to focus the trigger before opening. Otherwise, the focus restoration logic will\n // be messed up, since the wrong element would have the focus when the popover is mounted.\n event.currentTarget.focus();\n event.preventDefault();\n document.addEventListener(\n 'mouseup',\n () => {\n setTimeout(() => {\n this.isBeingPressed = false;\n });\n },\n { once: true }\n );\n }\n this.toggle();\n }\n }\n\n @HostListener('click', ['$event'])\n private handleClick() {\n if (!this.openOnPressStart) {\n this.toggle();\n }\n }\n\n /**\n * While onFocusout takes care of closing the popover when focus goes out, in the rare cases\n * that there is no more focusable element between the trigger and the popover, the focus can\n * go to the popover on pressing `Tab`. But the popover should be closed when tabbing on the\n * trigger.\n */\n @HostListener('keydown.tab')\n private handleTab() {\n this.close();\n }\n\n /**\n * In some use cases (e.g. in searchable select) popover trigger grabs the focus, right after\n * the popover is opened. That requires popover trigger to detect when focus goes out of it\n * and close the popover.\n * Note: we can't use `blur` event since it won't bubble up, and the focus can be on an element\n * inside the trigger, but not the trigger itself.\n *\n */\n @HostListener('focusout', ['$event'])\n private onFocusout(event: FocusEvent) {\n if (\n event.relatedTarget === null &&\n document.activeElement === event.target\n ) {\n // This happens on tab switch, without focus being actually moved.\n return;\n }\n const focusReceivingElement =\n event.relatedTarget instanceof Element ? event.relatedTarget : null;\n if (\n // focus is going nowhere\n !focusReceivingElement ||\n // focus is going anywhere outside popover and popover trigger\n !(\n this.elementRef?.nativeElement?.contains(focusReceivingElement) ||\n // This is to not have the popover closed as soon as mouse is down on something inside the\n // popover, if the focus is currently on the trigger\n this.overlayRef?.overlayElement?.contains(focusReceivingElement)\n )\n ) {\n this.close();\n }\n }\n\n @HostListener('keydown', ['$event'])\n private handleKeyDown(event: KeyboardEvent) {\n if (\n event.target === this.elementRef.nativeElement &&\n !(this.elementRef.nativeElement instanceof HTMLButtonElement) &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n private destroyOverlay() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n /** Get the configuration object used to create the overlay. */\n private getOverlayConfig() {\n return new OverlayConfig({\n scrollStrategy: this.nonModal\n ? this.closeOnScroll\n ? this.overlay.scrollStrategies.close()\n : this.overlay.scrollStrategies.reposition()\n : this.overlay.scrollStrategies.block(), // to match what we have in react\n\n // Including a transparent backdrop according to the latest decision of making popovers modal.\n hasBackdrop: !this.nonModal,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n private getContentPortal(): TemplatePortal | null {\n if (this.templateRef) {\n return new TemplatePortal(\n this.templateRef,\n this.viewContainerRef,\n null,\n Injector.create({\n providers: [{ provide: POPOVER_TRIGGER, useValue: this }],\n parent: this.injector,\n })\n );\n }\n return null;\n }\n\n private getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n const placement = this.placement || 'bottom';\n return (\n this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n /**\n * Disabling pushing, to fix an issue in FlexibleConnectedPositionStrategy where the\n * overlay's bottom grows past the top of the trigger element (aka origin).\n * I.e., when the overlay is supposed to be placed above the trigger element, it can\n * grow in height and cover the trigger element. This is more of an issue when the trigger\n * element remains interactive after the overlay is opened, such as in searchable select.\n * Note that this is not the case when the overlay is placed above the trigger element.\n * In that case the overlay will not eat up all available viewport height, and is sized in\n * a way that respects the preferred placement above the trigger element.\n * Disabling push is not the ideal solution but prevents the issue.\n * push is disabled only for overlays where the horizontal alignment is anchored to left\n * or right of the trigger element, based on the fair assumption that the connected\n * element is itself within the viewport, and we won't need to push the overlay horizontally\n * to have it within the viewport. It should also be ok not to push vertically, since we\n * allow for vertical flipping if needed.\n **/\n .withPush(!this.disablePushInsideViewport)\n .withPositions([\n toConnectedPosition(placement),\n toConnectedPosition(flip(placement)),\n ])\n .withViewportMargin(placement.includes('end') ? 0 : 6)\n );\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Directive to be added to the title of the popover. It will make sure the\n * right accessibility attributes are set to have assistive technology\n * describe the dialog by this title.\n */\n@Directive({\n selector: '[spPopoverTitle]',\n standalone: false,\n})\nexport class PopoverTitleDirective {\n @HostBinding('id')\n public ID: string = `sp-popover-title-${Math.floor(\n Math.random() * 1000000000\n )}`;\n}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Inject,\n Input,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { POPOVER_TRIGGER, PopoverTrigger } from './popover-trigger.directive';\nimport { PopoverTitleDirective } from './popover-title.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n/**\n * A generic popover component which lets you render arbitrary\n * content in a popover overlay which is linked to a trigger, and is accessible\n * as\n * [dialog](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role).\n */\n@Component({\n selector: 'sp-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n host: {\n '[class.sapphire-popover]': 'true',\n '[class.sapphire-popover--padded]': '!noPadding',\n '[class.sapphire-popover--max-width]': '!noMaxWidth',\n role: 'presentation',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class PopoverComponent implements AfterViewInit {\n @Input()\n @CoerceBoolean\n noPadding: BooleanInput;\n\n @Input()\n @CoerceBoolean\n noMaxWidth: BooleanInput;\n\n @ContentChild(PopoverTitleDirective) title?: PopoverTitleDirective;\n\n @ViewChild('contentWrapper', { read: ElementRef })\n private contentWrapper?: ElementRef;\n\n /**\n * Whether the default behavior of moving focus to the popover content upon open should be disabled\n */\n @Input()\n @CoerceBoolean\n noAutoFocus: BooleanInput = false;\n\n // FIXME(@danske/sapphire-angular@v4): replace `trapFocus` with `noTrapFocus`, making trapping the default behavior\n /**\n * Whether the popover traps the focus inside.\n */\n @Input()\n @CoerceBoolean\n trapFocus: BooleanInput = false;\n\n ID: string = `sp-popover-${Math.floor(Math.random() * 1000000000)}`;\n\n /**\n * Keeps track of if the content is focused\n */\n private contentFocused = false;\n\n constructor(\n @Optional() @Inject(POPOVER_TRIGGER) private trigger?: PopoverTrigger\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.contentFocused && !this.noAutoFocus) {\n this.contentWrapper?.nativeElement.focus();\n }\n }\n\n @HostListener('keydown.Escape', ['$event'])\n private handleEscape(event: KeyboardEvent) {\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.trigger?.close();\n }\n }\n\n _contentFocusChanged(origin: FocusOrigin) {\n this.contentFocused = origin != null;\n\n if (!this.contentFocused) {\n // cdkFocusChange doesn't give access to the native event, so we can't figure out where the\n // focus is going. So we asynchronously check if the focus is outside the trigger and close\n // in that case.\n setTimeout(() => {\n if (\n /**\n * If the focus is going to body, don't close the popover.\n * similar consideration in react-aria's useOverlay:\n * https://github.com/adobe/react-spectrum/blob/2bda4c971dd557be7ecc44614569a8281e6cb6dd/packages/%40react-aria/overlays/src/useOverlay.ts#L128-L130\n *\n * In addition to those scenarios, the focused element may get disabled in the popover,\n * which moves the focus to body.\n *\n * contentFocused might have changed before timeout rad but we only care\n * in case trapFocus is true. If that's the case, we don't want\n * to close the popover if anything moved the focus inside before the\n * timeout ran.\n */\n (!this.trapFocus || !this.contentFocused) &&\n document.activeElement !== document.body &&\n !this.trigger?.elementRef.nativeElement.contains(\n document.activeElement\n )\n ) {\n this.trigger?.close();\n }\n });\n }\n }\n}\n","<!--\n NOTE: cdkTrapFocus is required for cdkTrapFocusAutoCapture to work, which would be similar to\n <FocusScope autoFocus /> in react-aria.\n\n It prevents focus from going out of popover by bringing it back to the first\n focusable element.\n\n We sometimes counter this in (cdkFocusChange) and sometimes don't, based on\n the \"trapFocus\" input.\n -->\n<div class=\"sapphire-popover__content\" role=\"presentation\">\n <!-- NOTE: the role-dialog wrapper is only needed for generic popovers.\n In use cases like Select, role=listbox doesn't need to be wrapped in the role=dialog element,\n and that's how it is in the React impl (role=dialog is rendered only when PopoverTrigger is used)\n We can consider allowing for no dialog wrapper for use cases like Select, but it requires\n some refactoring around the focus management directives.\n -->\n <div\n #contentWrapper\n [id]=\"ID\"\n role=\"dialog\"\n tabindex=\"-1\"\n cdkMonitorSubtreeFocus\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"!noAutoFocus\"\n class=\"dialog\"\n [attr.aria-labelledby]=\"title?.ID\"\n (cdkFocusChange)=\"_contentFocusChanged($event)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostListener, Inject, Optional } from '@angular/core';\nimport { POPOVER_TRIGGER, PopoverTrigger } from './popover-trigger.directive';\n\n/**\n * Directive to be added to buttons inside popover, if they should close the popover\n * when pressed.\n */\n@Directive({\n selector: 'button[spPopoverCloseButton]',\n standalone: false,\n})\nexport class PopoverCloseButtonDirective {\n constructor(\n @Optional() @Inject(POPOVER_TRIGGER) private trigger?: PopoverTrigger\n ) {}\n\n @HostListener('click')\n private handleClick() {\n this.trigger?.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverComponent } from './popover.component';\nimport { PopoverCloseButtonDirective } from './popover-close-button.directive';\nimport { PopoverTitleDirective } from './popover-title.directive';\n\n@NgModule({\n declarations: [\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverCloseButtonDirective,\n PopoverTitleDirective,\n ],\n imports: [CommonModule, A11yModule],\n exports: [\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverCloseButtonDirective,\n PopoverTitleDirective,\n ],\n})\nexport class SapphirePopoverModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/popover.component';\nexport * from './src/popover-title.directive';\nexport * from './src/popover-close-button.directive';\nexport * from './src/popover-trigger.directive';\nexport * from './src/popover.module';\n","import { DomPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef } from '@angular/core';\nimport { FieldComponent } from './field.component';\n\n/**\n * Marks an element as something that should be rendered in field note affix slot.\n * @internal\n */\n@Directive({\n selector: '[spFieldNoteSuffix]',\n standalone: true,\n})\nexport class FieldNoteSuffixDirective {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private field: FieldComponent\n ) {\n this.field._setSuffixPortal(new DomPortal(this.elementRef));\n }\n\n ngOnDestroy() {\n this.field._setSuffixPortal(null);\n }\n}\n","/**\n * NOTE: label is intentionally kept internal for now. We need to add docs and stories\n * if we decide to expose it.\n */\nexport { LabelComponent } from './src/label.component';\n","import { NgModule } from '@angular/core';\nimport { FieldLabelDirective } from './field-label.directive';\nimport { FieldNoteDirective } from './field-note.directive';\nimport { FieldNoteSuffixDirective } from './field-note-suffix.directive';\nimport { FieldErrorDirective } from './field-error.directive';\n\nimport { FieldComponent } from './field.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { LabelComponent } from '../../label/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\n\n@NgModule({\n declarations: [FieldComponent],\n imports: [\n NgIf,\n FieldLabelDirective,\n FieldNoteDirective,\n FieldNoteSuffixDirective,\n FieldErrorDirective,\n PortalModule,\n LabelComponent,\n CommonModule,\n SapphireIconModule,\n ],\n exports: [\n FieldLabelDirective,\n FieldNoteDirective,\n FieldNoteSuffixDirective,\n FieldErrorDirective,\n FieldComponent,\n ],\n})\nexport class SapphireFieldModule {}\n","import {\n Directive,\n DoCheck,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n} from '@angular/core';\n\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { FieldComponent } from '../../field/public_api';\n\n@Directive({\n selector: '[spTextFieldInput]',\n host: {\n '[id]': 'id',\n class: 'sapphire-text-field__input',\n '[attr.aria-describedby]': 'field?.error?.id || field?.note?.id',\n '[attr.aria-invalid]': 'field?.hasError(this) ? true : null',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldInputDirective implements DoCheck {\n readonly textarea: boolean;\n\n @Input()\n @AutoId()\n id: string = '';\n\n @Input()\n disabled: BooleanInput = false;\n\n @Input()\n @CoerceBoolean\n required: string = '';\n\n public valueLength: number = 0;\n public autofillStyle?: string;\n\n @HostListener('input', ['$event.target.value'])\n ngDoCheck() {\n this.updateValueLength();\n this.updateAutofillStyle();\n }\n\n @HostListener('blur')\n private onBlur() {\n this.updateAutofillStyle();\n }\n\n private updateValueLength() {\n this.valueLength = this._elementRef.nativeElement.value.length;\n }\n\n @HostBinding('style')\n get style() {\n return this.autofillStyle;\n }\n\n private updateAutofillStyle() {\n const { backgroundColor } = window.getComputedStyle(\n this._elementRef.nativeElement\n );\n this.autofillStyle = `box-shadow: -100px 0 ${backgroundColor}, 100px 0 ${backgroundColor}`;\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement | HTMLTextAreaElement>,\n @Optional() public field: FieldComponent\n ) {\n const element = this._elementRef.nativeElement;\n this.valueLength = element.value.length;\n this.textarea = element.nodeName.toLowerCase() === 'textarea';\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n Input,\n Optional,\n} from '@angular/core';\nimport {\n coerceBooleanProperty,\n coerceNumberProperty,\n NumberInput,\n} from '@angular/cdk/coercion';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { FieldComponent, FieldControl } from '../../field/public_api';\nimport { TextFieldInputDirective } from './text-field-input.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-text-field',\n templateUrl: './text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n host: {\n class: 'sapphire-text-field',\n '[class.sapphire-text-field--multiline]': '_inputDirective.textarea',\n '[class.sapphire-text-field--error]': 'field?.hasError(this)',\n '[class.sapphire-text-field--md]': 'field?.size === \"md\"',\n },\n providers: [\n {\n provide: FieldControl,\n useExisting: forwardRef(() => TextFieldComponent),\n },\n ],\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class TextFieldComponent implements FieldControl {\n @Input('characterCounterMax')\n characterCounterMax?: NumberInput;\n\n @ContentChild(TextFieldInputDirective, {\n read: ElementRef,\n })\n inputElement?: ElementRef<HTMLInputElement | HTMLTextAreaElement>;\n\n @ContentChild(TextFieldInputDirective)\n _inputDirective?: TextFieldInputDirective;\n\n constructor(@Optional() public field?: FieldComponent) {}\n\n isCharacterCounterExceeded() {\n return (\n (this._inputDirective?.valueLength ?? 0) >\n coerceNumberProperty(this.characterCounterMax)\n );\n }\n\n isDisabled(): boolean {\n return coerceBooleanProperty(this._inputDirective?.disabled);\n }\n\n getId(): string | undefined {\n return this._inputDirective?.id;\n }\n\n readonly hasDefaultWidth = true;\n}\n","<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n","import { Directive, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'sp-text-field-prefix',\n host: {\n class: 'sapphire-text-field__prefix',\n '[class.sapphire-text-field__prefix--icon]': '!isTextNode()',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldPrefixDirective {\n isTextNode() {\n return (\n this._elementRef?.nativeElement.firstChild?.nodeType === Node.TEXT_NODE\n );\n }\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'sp-text-field-postfix',\n host: {\n class: 'sapphire-text-field__postfix',\n '[class.sapphire-text-field__postfix--icon]': '!isTextNode()',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TextFieldPostfixDirective {\n isTextNode() {\n return (\n this._elementRef?.nativeElement.firstChild?.nodeType === Node.TEXT_NODE\n );\n }\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n}\n","import {\n BooleanInput,\n NumberInput,\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: 'textarea[spTextareaAutosize]',\n host: {\n '[rows]': 'enabled && minRows && minRows < 2 ? 1 : undefined',\n },\n standalone: false,\n})\nexport class TextFieldTextareaAutosizeDirective {\n private _minRows: number | undefined;\n private _maxRows: number | undefined = Infinity;\n private _enabled: boolean = true;\n\n @Input('spTextareaAutosizeMinRows')\n get minRows(): number | undefined {\n return this._minRows;\n }\n set minRows(value: NumberInput) {\n this._minRows = coerceNumberProperty(value);\n this.updateHeight();\n }\n\n @Input('spTextareaAutosizeMaxRows')\n get maxRows(): number | undefined {\n return this._maxRows;\n }\n set maxRows(value: NumberInput) {\n this._maxRows = coerceNumberProperty(value);\n this.updateHeight();\n }\n\n @Input('spTextareaAutosizeEnabled')\n get enabled(): boolean {\n return this._enabled;\n }\n set enabled(value: BooleanInput) {\n this._enabled = coerceBooleanProperty(value);\n this.updateHeight();\n }\n\n constructor(private _elementRef: ElementRef<HTMLTextAreaElement>) {}\n\n ngDoCheck(): void {\n this.updateHeight();\n }\n\n private updateHeight() {\n if (this.enabled) {\n const textareaElement = this._elementRef.nativeElement;\n const { lineHeight, paddingTop, paddingBottom } =\n window.getComputedStyle(textareaElement);\n const getTotalHeight = (rowCount: number) => {\n return (\n parseInt(lineHeight, 10) * rowCount +\n parseInt(paddingTop, 10) +\n parseInt(paddingBottom, 10)\n );\n };\n\n const minHeight = this._minRows ? getTotalHeight(this._minRows) : 1;\n const maxHeight = this._maxRows\n ? getTotalHeight(this._maxRows)\n : Infinity;\n textareaElement.style.height = 'auto';\n const clampedHeight = Math.max(\n Math.min(textareaElement.scrollHeight, maxHeight),\n minHeight\n );\n textareaElement.style.height = `${clampedHeight}px`;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TextFieldComponent } from './text-field.component';\nimport { TextFieldInputDirective } from './text-field-input.directive';\nimport { TextFieldPrefixDirective } from './text-field-prefix.directive';\nimport { TextFieldPostfixDirective } from './text-field-postfix.directive';\nimport { TextFieldTextareaAutosizeDirective } from './text-field-textarea-autosize.directive';\nimport { SapphireFieldModule } from '../../field/src/field.module';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { LabelComponent } from '../../label/public_api';\n\n@NgModule({\n declarations: [\n TextFieldComponent,\n TextFieldInputDirective,\n TextFieldPrefixDirective,\n TextFieldPostfixDirective,\n TextFieldTextareaAutosizeDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n PortalModule,\n LabelComponent,\n SapphireFieldModule,\n ],\n exports: [\n TextFieldComponent,\n TextFieldInputDirective,\n SapphireFieldModule,\n TextFieldPrefixDirective,\n TextFieldPostfixDirective,\n TextFieldTextareaAutosizeDirective,\n ],\n})\nexport class SapphireTextFieldModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport { TextFieldComponent } from './src/text-field.component';\nexport { TextFieldInputDirective } from './src/text-field-input.directive';\nexport { TextFieldPrefixDirective } from './src/text-field-prefix.directive';\nexport { TextFieldPostfixDirective } from './src/text-field-postfix.directive';\nexport { TextFieldTextareaAutosizeDirective } from './src/text-field-textarea-autosize.directive';\nexport { SapphireTextFieldModule } from './src/text-field.module';\n","import { Component, ViewChild } from '@angular/core';\nimport { CdkPortal } from '@angular/cdk/portal';\n\n/**\n * Icon part of the listbox option layout, rendered on the left side.\n */\n@Component({\n selector: 'sp-option-icon',\n template: '<ng-template cdkPortal><ng-content></ng-content></ng-template>',\n standalone: false,\n})\nexport class OptionIconDirective {\n @ViewChild(CdkPortal)\n contentPortal?: CdkPortal;\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { CdkPortal } from '@angular/cdk/portal';\n\n/**\n * Secondary text of a listbox option.\n */\n@Component({\n selector: 'sp-option-secondary-text',\n template: '<ng-template cdkPortal><ng-content></ng-content></ng-template>',\n standalone: false,\n})\nexport class OptionSecondaryTextDirective {\n @ViewChild(CdkPortal)\n contentPortal?: CdkPortal;\n}\n","import { DomPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\n\n/**\n * Primary text of a listbox option. Useful when the option contains other parts\n * like secondary text or icon.\n */\n@Component({\n selector: 'sp-option-primary-text',\n template: '<span #content><ng-content></ng-content></span>',\n standalone: false,\n})\nexport class OptionPrimaryTextDirective implements AfterViewInit {\n contentPortal?: DomPortal<HTMLElement>;\n\n @ViewChild('content', { read: ElementRef })\n private content?: ElementRef<HTMLElement>;\n\n ngAfterViewInit() {\n if (this.content?.nativeElement) {\n this.contentPortal = new DomPortal(this.content?.nativeElement);\n }\n }\n}\n","/**\n * Base class for valid listbox children (option and section), to be able to\n * query all with @ContentChildren.\n */\nexport abstract class ListboxChild {}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { OptionPrimaryTextDirective } from './option-primary-text.directive';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { OptionSecondaryTextDirective } from './option-secondary-text.directive';\nimport { OptionIconDirective } from './option-icon.directive';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { ListboxChild } from './listbox-child';\n\n@Component({\n template: `<span #content><ng-content></ng-content></span>`,\n providers: [\n { provide: ListboxChild, useExisting: forwardRef(() => OptionComponent) },\n ],\n selector: 'sp-option',\n standalone: false,\n})\nexport class OptionComponent extends ListboxChild implements AfterViewInit {\n @Input()\n value: string = '';\n\n @ContentChild(OptionPrimaryTextDirective)\n private _primaryText?: OptionPrimaryTextDirective;\n private domPortal?: DomPortal<HTMLElement>;\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n get primaryText() {\n return this._primaryText?.contentPortal || this.domPortal;\n }\n\n @ViewChild('content', { read: ElementRef })\n content?: ElementRef<HTMLElement>;\n\n @ContentChild(OptionSecondaryTextDirective)\n secondaryText?: OptionSecondaryTextDirective;\n\n @ContentChild(OptionIconDirective)\n icon?: OptionIconDirective;\n\n get label(): string {\n return (\n (\n this._primaryText?.contentPortal?.element || this.content?.nativeElement\n )?.textContent?.trim() || ''\n );\n }\n\n ngAfterViewInit(): void {\n if (this.content?.nativeElement) {\n this.domPortal = new DomPortal(this.content?.nativeElement);\n }\n }\n}\n","import {\n ContentChildren,\n Directive,\n forwardRef,\n Input,\n QueryList,\n} from '@angular/core';\nimport { OptionComponent } from './option.component';\nimport { ListboxChild } from './listbox-child';\n\n/**\n * Used to define a group of Options as a section. It intentionally only\n * queries OptionComponent, in `children`, to limit the section/option nesting\n * to one level.\n */\n@Directive({\n selector: 'sp-section',\n providers: [\n {\n provide: ListboxChild,\n useExisting: forwardRef(() => SectionDirective),\n },\n ],\n standalone: false,\n})\nexport class SectionDirective {\n @ContentChildren(OptionComponent)\n children: Iterable<OptionComponent> = new QueryList<OptionComponent>();\n\n @Input('aria-label')\n ariaLabel?: string;\n}\n\nexport function section(\n options: Iterable<OptionComponent>,\n ariaLabel?: string\n) {\n const section = new SectionDirective();\n section.children = options;\n section.ariaLabel = ariaLabel;\n return section;\n}\n","import { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { Directive, ElementRef } from '@angular/core';\n\n/**\n A workaround for an issue in cdkListbox, where the active item is not scrolled\n into view when it's not physically focused (i.e. useActiveDescendant is true).\n * TODO: remove when https://github.com/angular/components/issues/28989 is fixed\n */\n@Directive({\n selector: '[cdkOption]',\n standalone: true,\n})\nexport class CdkOptionScrollIssuePatch {\n private appliedScroll = false;\n\n constructor(\n private cdkListbox: CdkListbox,\n private cdkOption: CdkOption,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngAfterViewChecked(): void {\n if (\n this.cdkListbox.useActiveDescendant &&\n this.cdkOption.isActive() &&\n !this.appliedScroll\n ) {\n this.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n this.appliedScroll = true;\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * JS-based :active state for non-button clickable elements.\n * TODO(UC-2728): we can evolve this to something like usePress (spPressable?), to bring\n * the same improvements. e.g. disabling selection on press, or normalizing\n * cross-browser inconsistencies, allowing for handling press start and end, optimizing for touch,\n * etc.\n */\n@Directive({\n standalone: true,\n selector: '[spPressed], [spPressedClass]',\n exportAs: 'spPressed',\n})\nexport class PressedDirective {\n /**\n * CSS class to be applied when the element is being pressed.\n */\n @Input('spPressedClass')\n pressedClass?: string;\n\n /**\n * Whether the element is currently in being pressed (:active) state\n */\n _pressed = false;\n get pressed() {\n return this._pressed;\n }\n set pressed(pressed: boolean) {\n this._pressed = pressed;\n if (this.pressedClass) {\n this.elementRef.nativeElement.classList.toggle(\n this.pressedClass,\n this._pressed\n );\n }\n }\n\n @HostListener('mousedown', ['$event'])\n _onPressStart() {\n this.pressed = true;\n this.document.addEventListener(\n 'mouseup',\n () => {\n this.pressed = false;\n },\n { once: true, capture: true }\n );\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n}\n","import { InputModalityDetector } from '@angular/cdk/a11y';\nimport { Directive, HostBinding, HostListener, Input } from '@angular/core';\n\n/**\n * JS-based :focus-visible state. Based on the convention in Sapphire styles, it:\n * - adds js-focus class to the host element\n * - adds is-focus class when `spFocused` is true, and focus should be visible.\n * is-focus class can be customized via `spFocusedClass` input\n\n */\n@Directive({\n standalone: true,\n selector: '[spFocused]',\n exportAs: 'spFocused',\n})\nexport class FocusedDirective {\n /**\n * CSS class to be applied when the element is focused, and focus should be visible.\n */\n @Input('spFocusedClass')\n focusedClass: string = 'is-focus';\n\n /**\n * Whether the element is (virtually) focused. If not provided, the actual focus\n * state of the host element will be used to determine the focus state.\n */\n @Input('spFocused')\n focusedInput?: boolean;\n\n private hostFocused: boolean = false;\n\n @HostBinding('class')\n private get className() {\n return this.isFocused() && this.isFocusVisible()\n ? `${this.focusedClass} js-focus`\n : 'js-focus';\n }\n\n @HostListener('focusin')\n private onFocusIn() {\n this.hostFocused = true;\n }\n @HostListener('focusout')\n private onFocusOut() {\n this.hostFocused = false;\n }\n\n isFocused() {\n return this.focusedInput ?? this.hostFocused;\n }\n\n isFocusVisible() {\n return (\n this.isFocused() &&\n this.inputModalityDetector.mostRecentModality === 'keyboard'\n );\n }\n\n constructor(private inputModalityDetector: InputModalityDetector) {}\n}\n","import { Component, Input } from '@angular/core';\nimport { PressedDirective } from '../../common/pressed.directive';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { OptionComponent } from './option.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconCheckmark } from '@danske/sapphire-icons/js';\n/**\n * Used internally in listbox component to render items. The primary reason\n * this is extracted into a component is to be reused outside and inside\n * sections. Using a ng-template inside listbox component, as an alternative\n * approach, leads to out of sync queries of cdkOptions, which leads to bugs.\n */\n@Component({\n selector: 'li[sp-listbox-item]',\n templateUrl: 'listbox-item.component.html',\n host: {\n class: 'sapphire-listbox__item',\n '[class.sapphire-listbox__item--selected]': 'selected',\n '[class.is-disabled]': 'option.disabled',\n },\n hostDirectives: [\n UseComponentStyles,\n PressedDirective,\n {\n directive: FocusedDirective,\n inputs: ['spFocused: focused'],\n },\n ],\n standalone: false,\n})\nexport class ListboxItemComponent {\n @Input()\n selected?: boolean;\n\n @Input()\n focused?: boolean;\n\n @Input()\n option!: OptionComponent;\n\n constructor(pressedDirective: PressedDirective, iconRegistry: IconRegistry) {\n pressedDirective.pressedClass = 'is-active';\n iconRegistry.registerIcon(iconCheckmark);\n }\n}\n","<div class=\"sapphire-listbox__content\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__icon\" _spUseComponentStyles *ngIf=\"selected\">\n <sp-icon name=\"checkmark\" color=\"informative\"></sp-icon>\n </div>\n <div class=\"sapphire-listbox__text-container\" _spUseComponentStyles>\n <div class=\"sapphire-listbox__primary-text\" _spUseComponentStyles>\n <ng-container *ngIf=\"option.primaryText\">\n <ng-container *cdkPortalOutlet=\"option.primaryText\"></ng-container>\n </ng-container>\n </div>\n <div\n class=\"sapphire-listbox__secondary-text\"\n _spUseComponentStyles\n *ngIf=\"option.secondaryText?.contentPortal as secondaryText\"\n >\n <ng-container *cdkPortalOutlet=\"secondaryText\"></ng-container>\n </div>\n </div>\n <div\n class=\"sapphire-listbox__icon\"\n _spUseComponentStyles\n *ngIf=\"option.icon?.contentPortal as icon\"\n >\n <ng-container *cdkPortalOutlet=\"icon\"></ng-container>\n </div>\n</div>\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DoCheck,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {\n CdkListbox,\n CdkOption,\n ListboxValueChangeEvent,\n} from '@angular/cdk/listbox';\nimport { OptionComponent } from './option.component';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ListboxChild } from './listbox-child';\nimport { SectionDirective } from './section.directive';\nimport { ListboxInputDirective } from './listbox-input.directive';\nimport { ViewEncapsulationProvider } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\n@Component({\n selector: 'sp-listbox',\n templateUrl: './listbox.component.html',\n styleUrls: ['./listbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ListboxComponent),\n multi: true,\n },\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'sm' },\n },\n ViewEncapsulationProvider,\n ],\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n exportAs: 'spListbox',\n standalone: false,\n})\nexport class ListboxComponent\n implements ControlValueAccessor, AfterViewInit, AfterViewChecked, DoCheck\n{\n /**\n * The list of selected values (`value`s of selected sp-options).\n * It's always an array, regardless of {@property multiple} being true or not.\n */\n @Input()\n selectedValues: readonly string[] = [];\n\n /**\n * Emitted when the selection is changed. Emits selected values.\n */\n @Output()\n selectedValuesChange = new EventEmitter<readonly string[]>();\n\n /**\n * Allows for passing the list of listbox items instead of having them collected\n * from children. Useful when a component wants to render a listbox within its view\n * but wants to collect listbox items from its own content.\n */\n @Input('spListboxItems')\n _itemsInput?: Iterable<ListboxChild>;\n\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput;\n\n /**\n * Whether multiple selection is allowed\n */\n @Input()\n @CoerceBoolean\n multiple?: BooleanInput;\n\n /**\n * If true, pressing ArrowUp/ArrowDown on the first/last item will not move\n * focus to the last/first item.\n */\n @Input()\n @CoerceBoolean\n navigationWrapDisabled: BooleanInput;\n\n @Input('aria-label')\n ariaLabel!: string;\n\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n\n @Input()\n id?: string;\n\n /**\n * Emits whenever an option is selected, regardless of if it's already selected.\n */\n @Output()\n selected = new EventEmitter();\n\n @ContentChildren(ListboxChild)\n private itemsInContent: QueryList<ListboxChild> =\n new QueryList<ListboxChild>();\n\n private onTouched: () => object = () => ({});\n private onChange = () => {};\n\n /**\n * List of spOption or spSection components either collected from the content\n * or passed as input.\n */\n get options() {\n return this._itemsInput || this.itemsInContent;\n }\n\n @ViewChild(CdkListbox)\n private cdkListbox?: CdkListbox;\n\n @ViewChildren(CdkOption)\n private cdkOptions?: QueryList<CdkOption>;\n\n private connectedInput?: ListboxInputDirective;\n\n /**\n * CdkListbox throws if there is a selected value that doesn't match any of the cdkOptions\n * It's probably an artificial check, and maybe they could remove it, but that's how it is now,\n * and selected value can be none of the currently visible options if options are searchable.\n * Since the check seems unnecessary, we do the filtering right in the listbox component instead\n * of in searchable select.\n * @private\n */\n _validSelectedValues: readonly string[] = [];\n /**\n * Our expected behavior (matching the React impl) is to navigate to the last option, when\n * ArrowDown is pressed and no option is currently focused, but to not have focus wrapping.\n * disabling focus wrapping on cdkListbox is implemented differently, and doesn't allow for\n * that, so we enable it regardless of `navigationWrapDisabled` input, if there is no active\n * option.\n */\n _forceEnableNavigationWrap = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n /**\n * Connects the listbox to an input, for combobox-like use cases.\n * Returns a keydown event handler to be used on the connected input.\n * Connecting an input to the listbox also causes listbox to use virtual focus\n * since the actual focus will be in the input.\n * @param inputDirective\n *\n * @internal\n */\n connectToInput(inputDirective: ListboxInputDirective) {\n this.connectedInput = inputDirective;\n // need to run change detection because _connectedInput is used to set the value of\n // cdkListboxUseActiveDescendant, and it's set after change detection for this component is done\n // and when ListboxInputDirective input is set\n this.changeDetectorRef.detectChanges();\n return {\n onKeydown: (event: KeyboardEvent) => {\n if (\n // Only forwarding certain keystrokes, not to trigger typeahead while input is focused\n [\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Enter',\n ].includes(event.key)\n ) {\n // @ts-expect-error(access): _handleKeydown is protected\n this.cdkListbox?._handleKeydown?.(event);\n }\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n this.setActiveOption(null);\n }\n },\n // cdkListbox keeps track of focus state, and sets the active item to the selected item if\n // the listbox is not focused when selection changes. That causes issues especially in\n // multi-select, where the dropdown keeps open when selection changes.\n onFocus: () => {\n if (this.cdkListbox) {\n // @ts-expect-error(access): _hasFocus is private\n this.cdkListbox._hasFocus = true;\n }\n },\n onBlur: () => {\n if (this.cdkListbox) {\n // @ts-expect-error(access): _hasFocus is private\n this.cdkListbox._hasFocus = false;\n }\n },\n };\n }\n\n isSelected(option: OptionComponent) {\n return this.selectedValues?.includes(option.value);\n }\n\n ngAfterViewInit(): void {\n this.cdkListbox?.registerOnChange(this.onChange);\n this.cdkListbox?.registerOnTouched(this.onTouched);\n }\n\n ngDoCheck() {\n /**\n * Properties set here are used in the template, but depend on the state of child directives,\n * which can change after view is checked on this component. By setting them in ngDoCheck\n * instead of directly referencing them in the template, we avoid NG0100: ExpressionChanged...\n * errors\n */\n this._forceEnableNavigationWrap = !this.getActiveOption();\n }\n\n ngAfterViewChecked() {\n const validValues =\n this.selectedValues?.filter((value) =>\n this.cdkOptions?.find((cdkOption) => cdkOption.value === value)\n ) || [];\n if (\n validValues.length !== this._validSelectedValues.length ||\n this._validSelectedValues.some(\n (value, index) => value !== validValues[index]\n )\n ) {\n this._validSelectedValues = validValues;\n this.changeDetectorRef.detectChanges();\n }\n }\n\n /**\n * Sets active (focused) option. Passing null removes active state if any.\n * @param value option value\n */\n setActiveOption(value: string | null) {\n const option =\n value && this.cdkOptions?.find((option) => option.value === value);\n if (option || option === null) {\n // @ts-expect-error: null is actually accepted and resets active item, but the type doesn't allow it by mistake\n this.cdkListbox?._setActiveOption(option);\n }\n }\n\n /**\n * @returns currently active (focused) option.\n */\n getActiveOption(): string | null {\n // There is currently no public method on CdkListbox to get the active item or select it directly.\n return (\n (this.cdkOptions?.find((option) =>\n Boolean(this.cdkListbox?.isActive(option))\n )?.value as string) ?? null\n );\n }\n\n //// ControlValueAccessor ////\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n writeValue(obj: any): void {\n this.selectedValues = obj;\n }\n ///////////////////////////////\n\n /**\n * @private\n */\n _handleSelectionChange({ value }: ListboxValueChangeEvent<string>) {\n this.selectedValues = value;\n this.selectedValuesChange.emit(value);\n }\n\n /**\n * @private\n */\n _isOption(item: ListboxChild): item is OptionComponent {\n return item instanceof OptionComponent;\n }\n\n /**\n * @private\n */\n _isSection(item: ListboxChild): item is SectionDirective {\n return item instanceof SectionDirective;\n }\n\n /**\n * @private\n */\n _shouldUseVirtualFocus() {\n return Boolean(this.connectedInput);\n }\n\n /**\n * @private\n */\n _isConnectedToInput() {\n return Boolean(this.connectedInput);\n }\n}\n","<ul\n class=\"sapphire-listbox sapphire-listbox--selection\"\n cdkListbox\n [id]=\"id || ''\"\n [cdkListboxCompareWith]=\"\"\n [cdkListboxMultiple]=\"!!multiple\"\n [cdkListboxDisabled]=\"!!disabled\"\n [cdkListboxNavigationWrapDisabled]=\"\n navigationWrapDisabled && !_forceEnableNavigationWrap\n \"\n [cdkListboxValue]=\"_validSelectedValues\"\n [cdkListboxUseActiveDescendant]=\"_shouldUseVirtualFocus()\"\n (cdkListboxValueChange)=\"_handleSelectionChange($event)\"\n (keydown.enter)=\"selected.emit($event)\"\n (keydown.space)=\"selected.emit($event)\"\n (mousedown)=\"_isConnectedToInput() && $event.preventDefault()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n>\n <ng-container *ngFor=\"let item of options; let last = last\">\n <ng-container *ngIf=\"_isSection(item)\">\n <li role=\"presentation\">\n <ul\n role=\"group\"\n class=\"sapphire-listbox__section\"\n [attr.aria-label]=\"item.ariaLabel\"\n >\n <li\n *ngFor=\"let option of item.children\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"!!option.disabled\"\n [cdkOptionTypeaheadLabel]=\"option.label\"\n #cdkOption=\"cdkOption\"\n sp-listbox-item\n [option]=\"option\"\n [selected]=\"isSelected(option)\"\n [focused]=\"cdkOption.isActive()\"\n (click)=\"!(disabled || option.disabled) && selected.emit($event)\"\n ></li>\n </ul>\n </li>\n <li\n *ngIf=\"!last\"\n role=\"separator\"\n class=\"sapphire-listbox__separator\"\n ></li>\n </ng-container>\n <li\n *ngIf=\"_isOption(item)\"\n [cdkOption]=\"item.value\"\n [cdkOptionDisabled]=\"!!item.disabled\"\n [cdkOptionTypeaheadLabel]=\"item.label\"\n #cdkOption=\"cdkOption\"\n sp-listbox-item\n [option]=\"item\"\n [selected]=\"isSelected(item)\"\n [focused]=\"cdkOption.isActive()\"\n (click)=\"!(disabled || item.disabled) && selected.emit($event)\"\n ></li>\n </ng-container>\n</ul>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { ListboxComponent } from './listbox.component';\n\n/**\n * A low-level directive to connect a listbox to an input, for use cases like search.\n * It adds event handlers to enable navigation via arrow keys. It also makes\n * the listbox use virtual focus, since the actual focus will be on the connected input.\n */\n@Directive({\n selector: 'input[spListboxInput]',\n standalone: true,\n})\nexport class ListboxInputDirective {\n @Input('spListboxInput')\n set listbox(listbox: ListboxComponent | undefined) {\n this.handlers = listbox?.connectToInput(this);\n }\n\n private handlers?: {\n onKeydown: (event: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n };\n\n @HostListener('keydown', ['$event'])\n private onKeyDown(event: KeyboardEvent) {\n this.handlers?.onKeydown?.(event);\n }\n\n @HostListener('focus')\n private onFocus() {\n this.handlers?.onFocus?.();\n }\n @HostListener('blur')\n private onBlur() {\n this.handlers?.onBlur?.();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { OptionIconDirective } from './option-icon.directive';\nimport { OptionSecondaryTextDirective } from './option-secondary-text.directive';\nimport { OptionPrimaryTextDirective } from './option-primary-text.directive';\nimport { ListboxComponent } from './listbox.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OptionComponent } from './option.component';\nimport { SectionDirective } from './section.directive';\nimport { PressedDirective } from '../../common/pressed.directive';\nimport { ListboxInputDirective } from './listbox-input.directive';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { ListboxItemComponent } from './listbox-item.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CdkOptionScrollIssuePatch } from './cdk-option-scroll-issue-patch';\n\n@NgModule({\n declarations: [\n SectionDirective,\n OptionComponent,\n OptionIconDirective,\n OptionSecondaryTextDirective,\n OptionPrimaryTextDirective,\n ListboxComponent,\n ListboxItemComponent,\n ],\n imports: [\n CommonModule,\n SapphireIconModule,\n CdkListboxModule,\n PortalModule,\n PressedDirective,\n FocusedDirective,\n UseComponentStyles,\n ListboxInputDirective,\n CdkOptionScrollIssuePatch,\n ],\n exports: [\n ListboxComponent,\n OptionComponent,\n OptionIconDirective,\n OptionSecondaryTextDirective,\n OptionPrimaryTextDirective,\n SectionDirective,\n ListboxInputDirective,\n ],\n})\nexport class SapphireListboxModule {}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * A common base class to handle value for single and multiple selection.\n * {@link MultiSelectDirectiveBase} and {@link SingleSelectDirectiveBase} implement and\n * provide this interface. Note that the main purpose for such design is **not**\n * to abstract out selection behavior. But to have accurate `value` and `valueChange`\n * type for single and multiple selection mode. It would be possible to fully abstract out\n * the selection behavior, and have Select component not know anything about selection being\n * multiple or not, but it doesn't seem such a clear abstraction, and also not worth the additional\n * complexity.\n *\n * At least one directive has to be defined for each select component to provide SelectValueHolder,\n * extending either {@link MultiSelectDirectiveBase} or {@link SingleSelectDirectiveBase}\n */\nexport abstract class SelectValueHolder<T = unknown> {\n abstract value: T;\n abstract valueChange: EventEmitter<T>;\n\n abstract setFromListboxValue(value: readonly string[]): void;\n\n abstract getListboxValue(): readonly string[];\n}\n\n/**\n * Enables multiple selection. When present, `value` will be of type `string[]`, and `valueChange`\n * will emit `string[]`.\n *\n * Each select component can define a directive with the right selector (usually based on\n * the presence of `multiple` attribute) to enable multiple selection.\n */\n@Directive() // This is needed for decorators like Input to work\nexport class MultiSelectDirectiveBase extends SelectValueHolder<string[]> {\n @Input()\n value: string[] = [];\n\n @Output()\n valueChange = new EventEmitter<string[]>();\n\n setFromListboxValue(value: string[]): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n getListboxValue(): readonly string[] {\n return this.value || [];\n }\n}\n\n/**\n * Enables single selection, the default behavior of select.\n * When present, `value` will be of type `string`, and `valueChange` will emit `string`.\n *\n * Each select component has to define a directive with the right selector (usually based on\n * the absence of `multiple` attribute) to enable single selection.\n */\n@Directive() // This is needed for decorators like Input to work\nexport class SingleSelectDirectiveBase extends SelectValueHolder<string> {\n @Input()\n get value(): string {\n return this._value;\n }\n set value(value: string) {\n this._value = value;\n this.values = value ? [value] : [];\n }\n private _value: string = '';\n\n private values: string[] = [];\n\n @Output()\n valueChange = new EventEmitter<string>();\n\n setFromListboxValue(value: string[]): void {\n this.value = value[0];\n this.valueChange.emit(this._value);\n }\n\n getListboxValue(): readonly string[] {\n return this.values;\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Used to customize what is shown in select's trigger when selection is non-empty.\n * By default, the (primary) text of the selected option is shown in single selection mode,\n * and a short text indicating the number of selected items is shown in multiple selection mode,\n * if more than 1 item is selected.\n */\n@Directive({\n selector: 'sp-selection-text',\n standalone: false,\n})\nexport class SelectionTextDirective {}\n","import { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ListboxChild,\n ListboxComponent,\n OptionComponent,\n} from '../../../listbox/public_api';\nimport { ControlValueAccessor } from '@angular/forms';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport {\n FocusOrigin,\n ListKeyManager,\n ListKeyManagerOption,\n} from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport {\n MultiSelectDirectiveBase,\n SelectValueHolder,\n} from './select-value-holder';\nimport { SelectionTextDirective } from '../select/selection-text.directive';\n\n@Directive() // This is needed for decorators like Input to work\nexport abstract class SelectComponentBase\n implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n /**\n * Whether the component is disabled.\n */\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** A unique id for the select. If none is supplied, it will be auto-generated. */\n @Input()\n @AutoId()\n id = '';\n\n /** The name of the input, used when submitting an HTML form. */\n @Input()\n name?: string;\n\n /** The autocomplete behavior */\n @Input()\n autocomplete?: string;\n\n /**\n * Placeholder to be shown if no value has been selected.\n */\n @Input() placeholder?: string;\n\n /**\n * Emitted when the popover is opened\n */\n @Output()\n readonly opened: EventEmitter<void> = new EventEmitter();\n\n /**\n * Emitted when the popover is closed\n */\n @Output()\n readonly closed: EventEmitter<void> = new EventEmitter();\n\n @ContentChildren(OptionComponent, { descendants: true })\n public options: QueryList<OptionComponent> = new QueryList<OptionComponent>();\n\n @ContentChildren(ListboxChild)\n public listboxChildren: QueryList<ListboxChild> =\n new QueryList<ListboxChild>();\n\n /**\n * Manages keyboard events for options in the panel.\n */\n protected keyManager:\n | ListKeyManager<{ value: string } & ListKeyManagerOption>\n | undefined;\n\n /**\n * Emits whenever the dropdown is closed as a result of an option (already\n * selected or not) being selected.\n */\n @Output()\n selected = new EventEmitter();\n\n @Input('aria-label')\n ariaLabel: string | null = null;\n @Input('aria-labelledby')\n ariaLabelledby?: string | null = null;\n\n @ContentChild(SelectionTextDirective)\n selectionText?: SelectionTextDirective;\n\n /**\n * Used to work around ExpressionChangedAfterItHasBeenCheckedError error thrown from HiddenSelect,\n * when the select component is rendered from a template (e.g. with *ngIf). It's set to true\n * asynchronously after content is initialized, to delay rendering of things that depend on\n * options. It's not clear why the issue happens, and it only happens when select is used with\n * *ngIf, or generally in a template.\n */\n _initialized = false;\n\n set listboxValue(value: readonly string[]) {\n this.valueHolder.setFromListboxValue(value);\n this.controlValueAccessorChangeFn(this.valueHolder.value);\n }\n get listboxValue() {\n return this.valueHolder.getListboxValue();\n }\n get selectedOptions() {\n return this.options?.filter((option) =>\n this.listboxValue.includes(option.value)\n );\n }\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n constructor(protected valueHolder: SelectValueHolder) {}\n\n protected abstract triggerRef: PopoverTriggerDirective | undefined;\n protected abstract triggerElementRef: ElementRef<HTMLElement> | undefined;\n protected abstract listbox: ListboxComponent | undefined;\n public abstract focus(focusOrigin: FocusOrigin): void;\n public abstract isFocused(): boolean;\n\n handleKeyDown($event: KeyboardEvent) {\n if ($event.target !== this.triggerElementRef?.nativeElement) {\n return;\n }\n switch ($event.key) {\n case 'ArrowDown':\n this.triggerRef?.open();\n break;\n case 'ArrowUp':\n this.triggerRef?.open();\n // we need to delay it a little, since the listbox will autofocus\n // the first item.\n setTimeout(() => {\n if (this.options?.last && this.listboxValue.length === 0) {\n this.listbox?.setActiveOption(this.options?.last.value);\n }\n });\n break;\n case 'ArrowRight':\n case 'ArrowLeft':\n if (this.multiple) {\n this.triggerRef?.open();\n } else {\n const option = this.getNextEnabledOptionValue(\n $event.key === 'ArrowLeft' ? 'left' : 'right'\n );\n if (option) {\n this.listboxValue = [option];\n }\n }\n break;\n default:\n this.keyManager?.onKeydown($event);\n }\n }\n\n getSelectionText(): string {\n const selectedOptions = this.selectedOptions;\n if (selectedOptions.length === 0) {\n return '';\n }\n if (selectedOptions.length === 1) {\n return selectedOptions[0]?.label;\n }\n return `${\n selectedOptions.length === this.options.length\n ? 'All'\n : selectedOptions.length\n } selected`;\n }\n\n /**\n * Whether multiple selection is allowed.\n */\n get multiple() {\n return this.valueHolder instanceof MultiSelectDirectiveBase;\n }\n\n ngAfterContentInit(): void {\n this.initKeyManager();\n\n this.options.changes.subscribe(() => {\n this.initKeyManager();\n });\n Promise.resolve().then(() => {\n this._initialized = true;\n });\n }\n\n ngAfterViewInit() {\n /**\n * This is to avoid an NG0100 ExpressionChangedAfter... error when there is an initial value\n * The issue is probably due to the fact that options are defined withing the **content**\n * (sp-option elements), so the listbox value can change after the view of select is checked,\n * if there is a default value. And that leads to the error, since we have bindings in the\n * template, such as `getSelectionText()`, that depend on the listbox value.\n */\n if (this.listboxValue.length > 0) {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.keyManager?.destroy();\n }\n\n /**\n * Called when an item in the listbox is selected.\n */\n _handleSelected() {\n if (!this.multiple) {\n this.triggerRef?.close();\n }\n this.selected.emit();\n }\n\n isOpen(): boolean {\n return this.triggerRef?.isOpen() ?? false;\n }\n\n open() {\n this.triggerRef?.open();\n }\n\n close() {\n this.triggerRef?.close();\n }\n\n toggle() {\n this.triggerRef?.open();\n }\n\n protected getFieldLabel?(): string;\n\n getLabelText(): string | undefined {\n return (this.getFieldLabel?.() ?? this.ariaLabel)?.trim();\n }\n\n protected controlValueAccessorChangeFn: (value: any) => void = () => {};\n public onTouched: () => any = () => {};\n\n public _onOpen(): void {\n this.opened.emit();\n }\n\n public _onClose(): void {\n this.closed.emit();\n this.onTouched();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnChange(fn: any): void {\n this.controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n writeValue(value: unknown): void {\n this.valueHolder.value = value;\n }\n\n protected getNextEnabledOptionValue(direction: 'left' | 'right' = 'right') {\n const optionsArray = this.options?.toArray() || [];\n let nextNonDisabledOption;\n const selectedOption = this.selectedOptions[0];\n\n const currentOptionIndex =\n (selectedOption && optionsArray.indexOf(selectedOption)) ?? -1;\n const notDisabled = (o: OptionComponent) => !o.disabled;\n\n if (currentOptionIndex === -1) {\n nextNonDisabledOption = optionsArray.find(notDisabled);\n } else if (direction === 'left') {\n nextNonDisabledOption = optionsArray\n .slice(0, currentOptionIndex)\n .reverse()\n .find(notDisabled);\n } else {\n nextNonDisabledOption = optionsArray\n .slice(currentOptionIndex + 1, optionsArray.length)\n .find(notDisabled);\n }\n\n const nextNonDisabledOptionIndex = nextNonDisabledOption\n ? optionsArray.indexOf(nextNonDisabledOption)\n : currentOptionIndex;\n return this.options?.get(nextNonDisabledOptionIndex)?.value;\n }\n\n protected initKeyManager(): void {\n // destroy any existing key manager\n this.keyManager?.destroy();\n\n this.keyManager = new ListKeyManager<\n { value: string } & ListKeyManagerOption\n >(\n this.options.map((option) => ({\n value: option.value,\n getLabel: () => option.label,\n disabled: !!option.disabled,\n }))\n ).withTypeAhead();\n\n this.keyManager.change.subscribe(() => {\n const selectedOption = this.options?.find(\n (option) => this.keyManager?.activeItem?.value === option.value\n );\n\n if (selectedOption) {\n this.listboxValue = [selectedOption.value];\n }\n });\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { ListboxChild } from '../../../listbox/src/listbox-child';\nimport { OptionComponent } from '../../../listbox/src/option.component';\nimport {\n section,\n SectionDirective,\n} from '../../../listbox/src/section.directive';\n\n/**\n * Marks sp-select as searchable. When used, a search input is rendered inside select trigger\n * which allows filtering options, in a more convenient way than the default typeahead search.\n * By default, rendered `sp-option`s are filtered based on the search value, but `searchValue`\n * and `searchValueChange` can be used to control the search value and filter the `sp-options`\n * upfront.\n */\n@Directive({\n selector: 'sp-select[searchable]',\n standalone: false,\n})\nexport class SearchableSelectDirective {\n @Input()\n get searchValue() {\n return this._searchValue ?? '';\n }\n set searchValue(value: string | undefined) {\n this._searchValue = value;\n }\n private _searchValue: string | undefined;\n\n /**\n * Filtering function to be applied on each item. The default filter function\n * does a case-insensitive search on optionComponent.label.\n * The built-in filtering can be disabled by passing `null`. That's useful\n * when filtering is fully controlled by filtering input sp-options based on\n * {@property searchValue}.\n */\n @Input()\n filter?:\n | null\n | ((optionComponent: OptionComponent, searchQuery: string) => boolean) = (\n optionComponent: OptionComponent,\n searchQuery: string\n ) => optionComponent.label.toLowerCase().includes(searchQuery?.toLowerCase());\n\n /**\n * Whether the search input value should be selected upon open.\n * Useful when options are long and the user would likely want to start\n * typing a new option from scratch.\n * @default false\n */\n @Input()\n @CoerceBoolean\n selectTextOnOpen?: BooleanInput;\n\n /**\n * Whether the search field should be cleared upon open, instead of being\n * populated by the selected option value.\n * @default false\n */\n @Input()\n @CoerceBoolean\n clearSearchOnOpen?: BooleanInput;\n\n @Output()\n searchValueChange = new EventEmitter<string>();\n\n filterListboxItems(\n items: Iterable<ListboxChild>,\n filter: (option: OptionComponent) => boolean\n ): {\n filteredChildren: ListboxChild[];\n filteredOutOptions: OptionComponent[];\n } {\n const filteredOutOptions: OptionComponent[] = [];\n const filteredChildren = Array.from(items)\n ?.map((item): ListboxChild | null => {\n if (item instanceof OptionComponent) {\n const isMatch = filter(item);\n if (!isMatch) {\n filteredOutOptions.push(item);\n }\n return isMatch ? item : null;\n }\n if (item instanceof SectionDirective) {\n const {\n filteredChildren: sectionFilteredChildren,\n filteredOutOptions: sectionFilteredOutOptions,\n } = this.filterListboxItems(item.children, filter);\n filteredOutOptions.push(...sectionFilteredOutOptions);\n if (sectionFilteredChildren.length > 0) {\n return section(\n sectionFilteredChildren.filter(\n (item): item is OptionComponent =>\n item instanceof OptionComponent\n ),\n item.ariaLabel\n );\n }\n return null;\n }\n return null;\n })\n .filter(notNull);\n return { filteredChildren, filteredOutOptions };\n }\n\n /**\n * Used when search value is updated via UI, and searchValueChange output should be emitted.\n * @internal\n */\n setSearchValue(searchValue: string) {\n this._searchValue = searchValue;\n this.searchValueChange.emit(searchValue);\n }\n\n defaultFilter(optionComponent: OptionComponent, searchQuery: string) {\n return optionComponent.label\n .toLowerCase()\n .includes(searchQuery?.toLowerCase());\n }\n}\n\nexport const notNull = <T>(\n item: T | undefined | null\n): item is NonNullable<T> => item != null;\n","import { Directive, Input } from '@angular/core';\nimport { CoerceBoolean } from './coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\n/**\n * Hides an element visually, while keeping it visible to screen readers and\n * other assistive technology\n */\n@Directive({\n selector: '[spVisuallyHidden]',\n standalone: true,\n host: {\n class: 'cdk-visually-hidden',\n },\n})\nexport class VisuallyHiddenDirective {\n @CoerceBoolean\n @Input('spVisuallyHidden')\n enabled: BooleanInput = true;\n}\n","// Taken from react-aria https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/utils/src/platform.ts\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n // @ts-expect-error incorrect navigator type\n window.navigator['userAgentData']?.brands.some(\n (brand: { brand: string; version: string }) => re.test(brand.brand)\n ) || re.test(window.navigator.userAgent)\n );\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? // @ts-expect-error incorrect navigator type\n re.test((window.navigator['userAgentData'] || window.navigator).platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return (\n testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1)\n );\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n\nexport function isMobile() {\n return isIPhone() || isAndroid();\n}\n","import { Component } from '@angular/core';\nimport { isMobile } from '../../../common/platform';\nimport { SelectComponentBase } from './select-component-base';\n\n/**\n * Hidden native select to be rendered in sapphire select components. It does two things:\n * - Takes care of form accessibility and autofilling by rendering native select/input\n * - Opens the native select dropdown instead of the custom dropdown, when possible.\n *\n * The latter proved to be a questionable, and we may rethink it at some point.\n *\n * @internal\n */\n@Component({\n selector: 'sp-hidden-select',\n templateUrl: './hidden-select.component.html',\n standalone: false,\n})\nexport class HiddenSelectComponent {\n _isMobile = isMobile();\n\n constructor(public _select: SelectComponentBase) {}\n\n _onNativeSelectChange(e: any) {\n this._select.listboxValue = [e.target.value];\n }\n}\n","<ng-container *ngIf=\"_select._initialized\">\n <select\n *ngIf=\"_isMobile && !_select.multiple\"\n class=\"sapphire-select__native-select\"\n _spUseComponentStyles\n [disabled]=\"_select.disabled\"\n [attr.name]=\"_select.name\"\n [attr.autocomplete]=\"_select.autocomplete\"\n (change)=\"_onNativeSelectChange($event)\"\n >\n <option\n *ngFor=\"let option of _select.options\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"_select.listboxValue.includes(option.value)\"\n >\n {{ option.label }}\n </option>\n </select>\n <div\n *ngIf=\"!_isMobile || _select.multiple\"\n aria-hidden=\"true\"\n spVisuallyHidden\n >\n <input\n type=\"text\"\n style=\"font-size: 16px\"\n [disabled]=\"_select.disabled\"\n [tabIndex]=\"_select.isFocused() || _select.isOpen() ? -1 : 0\"\n (focus)=\"_select.focus('keyboard')\"\n />\n <label>\n {{ _select.getLabelText() }}\n <select\n [attr.size]=\"_select.multiple ? _select.options.length : null\"\n [disabled]=\"_select.disabled\"\n tabindex=\"-1\"\n [multiple]=\"_select.multiple\"\n (change)=\"_onNativeSelectChange($event)\"\n [attr.name]=\"_select.name\"\n [attr.autocomplete]=\"_select.autocomplete\"\n >\n <option\n *ngFor=\"let option of _select.options\"\n [value]=\"option.value\"\n [selected]=\"_select.listboxValue.includes(option.value)\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n </label>\n </div>\n</ng-container>\n","import {\n AfterViewInit,\n Component,\n Directive,\n ElementRef,\n forwardRef,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n FocusMonitor,\n FocusOrigin,\n InputModalityDetector,\n} from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { combineLatest, empty, Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\n\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport { ListboxChild, ListboxComponent } from '../../../listbox/public_api';\nimport { section } from '../../../listbox/src/section.directive';\nimport { FieldComponent, FieldControl } from '../../../field/public_api';\nimport { SelectComponentBase } from '../common/select-component-base';\nimport {\n MultiSelectDirectiveBase,\n SelectValueHolder,\n SingleSelectDirectiveBase,\n} from '../common/select-value-holder';\nimport { SearchableSelectDirective } from './searchable-select.directive';\nimport { IconRegistry } from '../../../icon/public_api';\nimport { iconChevronDown } from '@danske/sapphire-icons/js';\n\n/**\n * Enables multiple selection. When present, `value` will be of type `string[]`, and `valueChange`\n * will emit `string[]`.\n */\n@Directive({\n selector: 'sp-select[multiple]',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => MultiSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class MultiSelectDirective extends MultiSelectDirectiveBase {}\n\n/**\n * Enables single selection, the default behavior of Select.\n * When present, `value` will be of type `string`, and `valueChange` will emit `string`.\n */\n@Directive({\n selector: 'sp-select:not([multiple])',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => SingleSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class SingleSelectDirective extends SingleSelectDirectiveBase {}\n\n/**\n * Allows user to select a single option from a list, similar to native select\n * component.\n *\n * Example:\n * ```tsx\n * <sp-field>\n * <sp-field-label>Label text</sp-field-label>\n * <sp-select placeholder=\"Select an option\">\n * <sp-option value=\"option1\">First Option</sp-option>\n * <sp-option value=\"option2\">Second Option</sp-option>\n * <sp-option value=\"option3\">Third Option</sp-option>\n * </sp-select>\n * </sp-field>\n * ```\n */\n@Component({\n selector: 'sp-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n exportAs: 'spSelect',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n {\n provide: SelectComponentBase,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => SelectComponent),\n },\n ],\n host: {\n class: 'sapphire-select',\n '[class.sapphire-select--error]': '_field?.hasError(this)',\n '[class.sapphire-select--md]': '_field?.size === \"md\"',\n '[class.is-focus]': 'isFocusVisible()',\n '[class.is-disabled]': 'isDisabled()',\n '[attr.id]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.placeholder]': 'null',\n },\n hostDirectives: [UseComponentStylesOnHost],\n standalone: false,\n})\nexport class SelectComponent\n extends SelectComponentBase\n implements FieldControl, AfterViewInit, OnDestroy\n{\n private focusOrigin: FocusOrigin = null;\n filteredChildren$: Observable<ListboxChild[]> = new Subject();\n\n @ViewChild('triggerRef')\n protected triggerRef: PopoverTriggerDirective | undefined;\n\n @ViewChild('triggerElementRef', { read: ElementRef })\n protected triggerElementRef: ElementRef | undefined;\n\n @ViewChild(ListboxComponent)\n protected listbox: ListboxComponent | undefined;\n\n @ViewChild('searchInput', { read: ElementRef })\n private searchInput?: ElementRef<HTMLInputElement>;\n\n get searchable() {\n return Boolean(this._searchableSelectDirective);\n }\n\n /**\n * id of trigger value area, which will contain either the selected value or the placeholder.\n */\n @AutoId()\n _valueContainerId: string = '';\n\n private destroyed = new Subject<void>();\n\n constructor(\n valueHolder: SelectValueHolder,\n iconRegistry: IconRegistry,\n private focusMonitor: FocusMonitor,\n private inputModality: InputModalityDetector,\n @Optional() public _field?: FieldComponent,\n @Optional() public _searchableSelectDirective?: SearchableSelectDirective\n ) {\n super(valueHolder);\n iconRegistry.registerIcon(iconChevronDown);\n }\n\n override ngAfterViewInit(): void {\n super.ngAfterViewInit();\n const listboxItem$ = this.listboxChildren.changes.pipe(\n startWith(this.listboxChildren)\n );\n const searchableSelect = this._searchableSelectDirective;\n if (this.searchInput && searchableSelect) {\n const searchInputValue$ = searchableSelect.searchValueChange.pipe(\n takeUntil(this.destroyed),\n startWith(searchableSelect.searchValue)\n );\n const filterResult$ = combineLatest(searchInputValue$, listboxItem$).pipe(\n map(([searchQuery]) => {\n if (!searchQuery) {\n return {\n filteredChildren: this.listboxChildren.toArray(),\n filteredOutOptions: [],\n };\n }\n return searchableSelect.filterListboxItems(\n this.listboxChildren,\n (option) =>\n !searchableSelect.filter ||\n searchableSelect.filter(option, searchQuery)\n );\n })\n );\n this.filteredChildren$ = this.multiple\n ? // Grouping selected options\n combineLatest(\n filterResult$,\n this.valueHolder.valueChange.pipe(startWith(empty()))\n ).pipe(\n map(([{ filteredChildren }]) => {\n if (this.listboxValue.length === 0) {\n return filteredChildren;\n }\n const {\n filteredOutOptions: selectedOptions,\n filteredChildren: selectionExcludedChildren,\n } = searchableSelect.filterListboxItems(\n filteredChildren,\n (option) => !this.listboxValue.includes(option.value)\n );\n return (\n selectedOptions.length > 0\n ? [section(selectedOptions)]\n : ([] as ListboxChild[])\n ).concat(selectionExcludedChildren);\n })\n )\n : filterResult$.pipe(map(({ filteredChildren }) => filteredChildren));\n } else {\n this.filteredChildren$ = listboxItem$;\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.destroyed.next(undefined);\n this.destroyed.complete();\n }\n\n _getAriaLabelledBy(): string | undefined {\n // The logic here is similar to the one in react-aria's useSelect.\n const labelledBy = this.ariaLabelledby || this._field?.label?.id;\n return [\n this._valueContainerId,\n labelledBy,\n this.ariaLabel && !labelledBy ? this.id : null,\n ]\n .filter((i) => i)\n .join(' ');\n }\n\n isFocused() {\n return Boolean(this.focusOrigin);\n }\n\n isFocusVisible(): boolean {\n return (\n this.isFocused() &&\n // This is needed because focus doesn't change when a key (e.g. Escape) is pressed in the search input.\n (this.inputModality.mostRecentModality === 'keyboard' ||\n // This is needed for when label is clicked and focusOrigin is forced to keyboard, but current modality is mouse.\n this.focusOrigin === 'keyboard') &&\n !this.isOpen() // This is because in searchable select, the actual focus is on the input,\n // but it's meant to be shown on the listbox. It doesn't make sense to show the focus in two\n // places.\n );\n }\n\n focus(focusOrigin: FocusOrigin = 'program') {\n this.focusMonitor.focusVia(\n this.searchInput?.nativeElement ?? this.triggerElementRef?.nativeElement,\n focusOrigin\n );\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this.focusOrigin = focusOrigin;\n }\n\n _onFocus() {\n // Whenever focus comes to the trigger , forward it to the search input. It's needed for when\n // the trigger is re-focused after popover is closed.\n this.focus(this.focusOrigin);\n }\n\n _isInputVisible() {\n return this.isOpen() /*||\n (this.searchInput?.nativeElement === document.activeElement &&\n this.listboxValue.length === 0)*/;\n }\n\n _onOpen() {\n super._onOpen();\n if (!this.multiple && this._searchableSelectDirective) {\n this._searchableSelectDirective.setSearchValue(\n (this._searchableSelectDirective.clearSearchOnOpen\n ? ''\n : this.selectedOptions[0]?.label) ?? ''\n );\n }\n const searchInputElement = this.searchInput?.nativeElement;\n if (this._searchableSelectDirective?.selectTextOnOpen) {\n searchInputElement?.select();\n }\n const focusVisibleOnOpen = this.isFocusVisible();\n // Move focus to the search input. The timeout is needed because popover will autofocus the\n // content, and we need to let the focus first land in the popover, and then steal it.\n setTimeout(() => {\n searchInputElement?.focus();\n\n // Need to run this also asynchronously, to let the popover (and listbox) mount\n if (!focusVisibleOnOpen && this.selectedOptions.length === 0) {\n // to prevent the first item from being focused when the dropdown is opened via mouse\n this.listbox?.setActiveOption(null);\n }\n });\n }\n\n _onClose() {\n super._onClose();\n if (!this.multiple && this._searchableSelectDirective) {\n this._searchableSelectDirective.setSearchValue(\n this.selectedOptions[0]?.label || ''\n );\n }\n const searchInputElement = this.searchInput?.nativeElement;\n searchInputElement?.setSelectionRange(\n searchInputElement.value.length,\n searchInputElement.value.length\n );\n }\n\n protected getFieldLabel?(): string {\n return this._field?.label?.getText() ?? '';\n }\n\n _onInputKeydown(event: KeyboardEvent) {\n const selectValue = (toBeSelected: string) => {\n const listboxValue = this.listboxValue;\n const alreadySelected = listboxValue.includes(toBeSelected);\n if (this.multiple) {\n this.listboxValue = alreadySelected\n ? listboxValue.filter((value) => value !== toBeSelected)\n : [...listboxValue, toBeSelected];\n } else if (!alreadySelected) {\n this.listboxValue = [toBeSelected];\n }\n };\n const firstOptionValue = this.options?.get(0)?.value;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (!this.isOpen()) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n this.close();\n break;\n case 'Enter':\n // Selection is already handled if there is an active option\n if (this.isOpen()) {\n if (\n this.listbox?.getActiveOption() == undefined &&\n firstOptionValue\n ) {\n selectValue(firstOptionValue);\n }\n if (!this.multiple) {\n this.close();\n }\n } else {\n this.open();\n }\n break;\n case 'Tab':\n if (this.isOpen() && !this.multiple) {\n const toBeSelected =\n this.listbox?.getActiveOption() || firstOptionValue;\n if (toBeSelected != undefined) {\n selectValue(toBeSelected);\n }\n }\n break;\n }\n }\n\n _onSearchInput(event: Event) {\n if (event.target instanceof HTMLInputElement) {\n const value = event.target?.value;\n this._searchableSelectDirective?.setSearchValue(value);\n // clearing the value when the search input is cleared.\n if (!this.multiple && !value && this.listboxValue.length > 0) {\n this.listboxValue = [];\n }\n }\n\n this.listbox?.setActiveOption(null);\n }\n\n _handleSelected() {\n super._handleSelected();\n }\n\n isDisabled(): boolean {\n return coerceBooleanProperty(this.disabled);\n }\n\n hasDefaultWidth = true;\n}\n","<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n spPopoverDisablePushInsideViewport=\"true\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n [trapFocus]=\"!searchable\"\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n","import {\n Component,\n Directive,\n ElementRef,\n forwardRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PopoverTriggerDirective } from '../../../popover/src/popover-trigger.directive';\nimport { ListboxComponent } from '../../../listbox/src/listbox.component';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { SelectComponentBase } from '../common/select-component-base';\nimport {\n SelectValueHolder,\n SingleSelectDirectiveBase,\n} from '../common/select-value-holder';\nimport { ViewEncapsulationProvider } from '../../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../../icon/public_api';\nimport { iconChevronDown } from '@danske/sapphire-icons/js';\n\n/**\n * NOTE: Support for multiple selection in basic select is removed, based on\n * a UX decision. See commit message for more details.\n */\n@Directive({\n selector: 'sp-select-button:not([multiple])',\n providers: [\n {\n provide: SelectValueHolder,\n useExisting: forwardRef(() => SelectButtonSingleSelectDirective),\n },\n ],\n standalone: false,\n})\nexport class SelectButtonSingleSelectDirective extends SingleSelectDirectiveBase {}\n\n/**\n * Allows user to select a single option from a list, similar to native select\n * component.\n *\n * Example:\n * ```tsx\n * <sp-select-button\n * placeholder=\"Select an option\"\n * size=\"sm\"\n * variant=\"secondary\"\n * >\n * <sp-option value=\"option1\">First Option</sp-option>\n * <sp-option value=\"option2\">Second Option</sp-option>\n * <sp-option value=\"option3\">Third Option</sp-option>\n * </sp-select-button>\n * ```\n */\n@Component({\n selector: 'sp-select-button',\n templateUrl: './select-button.component.html',\n styleUrls: ['./select-button.component.scss'],\n exportAs: 'spSelectButton',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButtonComponent),\n multi: true,\n },\n {\n provide: SelectComponentBase,\n useExisting: forwardRef(() => SelectButtonComponent),\n },\n ViewEncapsulationProvider,\n ],\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n standalone: false,\n})\nexport class SelectButtonComponent extends SelectComponentBase {\n /**\n * Size of the button\n * @default 'md'\n */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Visual variations\n * @default 'tertiary'\n */\n @Input()\n variant: 'primary' | 'secondary' | 'tertiary' = 'tertiary';\n\n @ViewChild('triggerRef')\n protected triggerRef: PopoverTriggerDirective | undefined;\n\n @ViewChild('triggerElementRef', { read: ElementRef })\n protected triggerElementRef: ElementRef | undefined;\n\n @ViewChild(ListboxComponent)\n protected listbox: ListboxComponent | undefined;\n\n private focused = false;\n\n constructor(\n valueHolder: SelectValueHolder,\n private focusMonitor: FocusMonitor,\n iconRegistry: IconRegistry\n ) {\n super(valueHolder);\n iconRegistry.registerIcon(iconChevronDown);\n }\n\n focus(focusOrigin: FocusOrigin = 'program') {\n if (this.triggerElementRef) {\n this.focusMonitor.focusVia(\n this.triggerElementRef.nativeElement,\n focusOrigin\n );\n }\n }\n\n isFocused() {\n return this.focused;\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this.focused = Boolean(focusOrigin);\n }\n}\n","<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"variant\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireIconModule } from '../../../icon/public_api';\nimport { SapphirePopoverModule } from '../../../popover/public_api';\nimport {\n MultiSelectDirective,\n SelectComponent,\n SingleSelectDirective,\n} from './select.component';\nimport { SapphireListboxModule } from '../../../listbox/src/listbox.module';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { SelectionTextDirective } from './selection-text.directive';\nimport { VisuallyHiddenDirective } from '../../../common/visually-hidden.directive';\nimport { SapphireButtonModule } from '../../../button/public_api';\nimport {\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n} from '../select-button/select-button.component';\nimport { HiddenSelectComponent } from '../common/hidden-select.component';\nimport { SearchableSelectDirective } from './searchable-select.directive';\nimport { FieldLabelDirective } from '../../../field/src/field-label.directive';\nimport { FieldErrorDirective } from '../../../field/src/field-error.directive';\nimport { FieldNoteDirective } from '../../../field/src/field-note.directive';\nimport { LabelComponent } from '../../../label/public_api';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n SelectionTextDirective,\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n HiddenSelectComponent,\n SearchableSelectDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SapphireIconModule,\n SapphireListboxModule,\n SapphirePopoverModule,\n CdkListboxModule,\n A11yModule,\n PortalModule,\n VisuallyHiddenDirective,\n FieldLabelDirective,\n FieldErrorDirective,\n FieldNoteDirective,\n SapphireButtonModule,\n LabelComponent,\n UseComponentStyles,\n ],\n exports: [\n SapphireListboxModule,\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n SelectionTextDirective,\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n SearchableSelectDirective,\n FieldLabelDirective,\n FieldErrorDirective,\n FieldNoteDirective,\n ],\n})\nexport class SapphireSelectModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport {\n SelectComponent,\n MultiSelectDirective,\n SingleSelectDirective,\n} from './src/select/select.component';\nexport { SapphireSelectModule } from './src/select/select.module';\nexport { SelectionTextDirective } from './src/select/selection-text.directive';\nexport { SearchableSelectDirective } from './src/select/searchable-select.directive';\nexport {\n SelectButtonComponent,\n SelectButtonSingleSelectDirective,\n} from './src/select-button/select-button.component';\n","import { Component, Input, HostListener } from '@angular/core';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n@Component({\n selector: 'a[sp-link]',\n styleUrls: ['./link.component.scss'],\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-link',\n\n '[class.sapphire-link--primary]': 'variant === \"primary\"',\n '[class.sapphire-link--secondary]': 'variant === \"secondary\"',\n\n '[attr.tabindex]': 'disabled ? -1 : (tabindex || tabIndex)',\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n hostDirectives: [UseComponentStylesOnHost],\n})\nexport class LinkComponent {\n @Input()\n variant?: 'primary' | 'secondary' = 'primary';\n\n @Input()\n @CoerceBoolean\n disabled?: BooleanInput = false;\n\n @Input()\n tabindex?: string | null = null;\n @Input()\n tabIndex?: string | null = null;\n\n // TODO: This will prevent navigation on click,\n // but it won't prevent the link being focused on click\n @HostListener('click', ['$event'])\n @HostListener('pointerdown', ['$event'])\n @HostListener('mousedown', ['$event'])\n @HostListener('keydown', ['$event'])\n private handleDisableInteraction(e: Event) {\n if (this.disabled) e.preventDefault();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LinkComponent } from './link.component';\n\n@NgModule({\n imports: [LinkComponent],\n exports: [LinkComponent],\n})\nexport class SapphireLinkModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/link.component';\nexport * from './src/link.module';\n","import {\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { SegmentedTabsComponent } from './segmented-tabs.component';\n\n@Component({\n selector: 'sp-segmented-tab',\n templateUrl: './segmented-tab.component.html',\n styleUrls: ['./segmented-tab.component.scss'],\n host: {\n // Angular specific styles that are needed due to extra dom elements added by angular\n '[style.flex]': \"'1 1 auto'\",\n '[style.display]': \"'inline-flex'\",\n },\n standalone: false,\n})\nexport class SegmentedTabComponent {\n /** Whether the tab should be disabled */\n @Input()\n get disabled(): boolean {\n return Boolean(this.tabs.disabled) || this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled = false;\n\n @Input()\n label?: string;\n\n /**\n * auto generated id applied on the tab element\n */\n @AutoId()\n id = '';\n\n @ViewChild(TemplateRef)\n _contentTemplate: TemplateRef<any> | null = null;\n\n @ViewChild('button')\n _button?: ElementRef<HTMLButtonElement>;\n\n constructor(\n @Inject(forwardRef(() => SegmentedTabsComponent))\n public tabs: SegmentedTabsComponent\n ) {}\n\n select() {\n if (this.disabled) return;\n this.tabs.selectTab(this);\n }\n\n /**\n * Whether this tab is currently selected\n */\n isSelected(): boolean {\n return this.tabs?.isSelected(this);\n }\n\n getTabIndex() {\n return this.tabs.getFocusedTab() === this && !this.tabs.disabled\n ? '0'\n : '-1';\n }\n}\n","<button\n #button\n class=\"sapphire-segmented-control__button\"\n _spUseComponentStyles\n [class.sapphire-segmented-control__button--disabled]=\"disabled\"\n [class.sapphire-segmented-control__button--active]=\"isSelected()\"\n role=\"tab\"\n (click)=\"select()\"\n [id]=\"id\"\n [tabIndex]=\"getTabIndex()\"\n [attr.aria-disabled]=\"disabled\"\n>\n {{ label }}\n <ng-content select=\"sp-segmented-tab-label\"></ng-content>\n</button>\n<ng-template>\n <div\n class=\"sapphire-tab-panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [id]=\"id + '-panel'\"\n [attr.aria-labelledby]=\"id\"\n >\n <ng-content select=\"sp-segmented-tab-content\"></ng-content>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n BooleanInput,\n coerceNumberProperty,\n NumberInput,\n} from '@angular/cdk/coercion';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { SegmentedTabComponent } from './segmented-tab.component';\nimport { ViewEncapsulationProvider } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-segmented-tabs',\n templateUrl: './segmented-tabs.component.html',\n styleUrls: ['./segmented-tabs.component.scss'],\n providers: [ViewEncapsulationProvider],\n exportAs: 'spSegmentedTabs',\n host: {\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class SegmentedTabsComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('segmentedControl') segmentedControl!: ElementRef;\n\n /** Size of tabs */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Alignment of tabs' buttons group.\n * @default 'left'\n */\n @Input()\n align?: 'left' | 'center' | 'right' | 'stretch' = 'left';\n\n /** Whether tabs are activated automatically on focus or manually. */\n @Input()\n keyboardActivation?: 'manual' | 'automatic' = 'automatic';\n\n /** Whether the entire component should be disabled */\n @Input()\n @CoerceBoolean\n disabled: BooleanInput;\n\n /** Index of the selected tab */\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex || 0;\n }\n set selectedIndex(value: NumberInput) {\n this._selectedIndex = coerceNumberProperty(value);\n this._focusedIndex = this._selectedIndex;\n }\n private _selectedIndex?: number;\n private _focusedIndex: number = 0;\n\n @Output() readonly selectedIndexChange: EventEmitter<number> =\n new EventEmitter<number>();\n\n @ContentChildren(forwardRef(() => SegmentedTabComponent))\n readonly tabs: QueryList<SegmentedTabComponent> = new QueryList();\n private _tabIds: string[] = [];\n\n private resizeObserver: ResizeObserver | undefined;\n _gliderStyles = { left: '0px', width: '0px' };\n _animationEnabled = false;\n _focusVisible = false;\n\n constructor(private zone: NgZone, private changeDetector: ChangeDetectorRef) {\n this.skipAnimationFrame();\n }\n\n ngAfterContentInit(): void {\n this._tabIds = this.tabs.map((tab) => tab.id);\n this.tabs.changes.subscribe(() => {\n this.onTabsChange();\n });\n if (this._selectedIndex === undefined) {\n this.selectedIndex = this.findFocusableIndex(0, 'right') || 0;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n\n ngAfterViewInit(): void {\n // The value of \"_getTabContentTemplate\", which is bound in the\n // template, changes after the view has been checked. This\n // \"detectChanges()\" avoids the \"NG0100: Expression has\n // changed after it was checked\" angular error.\n //\n // https://angular.io/errors/NG0100\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n this.resizeObserver = new ResizeObserver(() => {\n // zonejs doesn't monkey-patch resize observer (yet)\n this.zone.run(() => {\n this.setGliderStyles();\n });\n });\n\n this.resizeObserver.observe(this.segmentedControl.nativeElement);\n this.selectedIndexChange.subscribe(() => {\n this.setGliderStyles();\n });\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.segmentedControl.nativeElement);\n this.selectedIndexChange.unsubscribe();\n }\n\n ngAfterViewChecked(): void {\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n }\n\n getFocusedTab() {\n return this.tabs.toArray()[this._focusedIndex];\n }\n\n selectTab(selectedTab: SegmentedTabComponent) {\n this.selectedIndex = this.tabs\n .toArray()\n .findIndex((tab) => tab === selectedTab);\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n\n isSelected(tab: SegmentedTabComponent): boolean {\n return this.tabs?.toArray().indexOf(tab) === this.selectedIndex;\n }\n\n _getTabContentTemplate() {\n return this.tabs.toArray()[this.selectedIndex]?._contentTemplate || null;\n }\n\n _onFocusChange(origin: FocusOrigin) {\n this._focusVisible = origin === 'keyboard';\n if (!origin) {\n this._focusedIndex = this.selectedIndex;\n }\n }\n\n _onKeyDown(event: KeyboardEvent) {\n const focusNextValidTab = (\n targetIndex: number,\n direction: 'left' | 'right'\n ) => {\n if (this.tabs.toArray().every((tab) => tab.disabled)) return;\n const index = this.findFocusableIndex(targetIndex, direction);\n if (index === null) return;\n const button = this.tabs.toArray()[index]._button?.nativeElement;\n if (!button) return;\n button.focus();\n if (this.keyboardActivation === 'automatic') {\n this.selectedIndex = index;\n this.selectedIndexChange.emit(this.selectedIndex);\n } else {\n this._focusedIndex = index;\n }\n };\n switch (event.key) {\n case 'ArrowLeft': {\n event.stopPropagation();\n focusNextValidTab(this._focusedIndex - 1, 'left');\n break;\n }\n case 'ArrowRight': {\n event.stopPropagation();\n focusNextValidTab(this._focusedIndex + 1, 'right');\n break;\n }\n case 'Home': {\n event.stopPropagation();\n event.preventDefault();\n focusNextValidTab(0, 'right');\n break;\n }\n case 'End': {\n event.stopPropagation();\n event.preventDefault();\n focusNextValidTab(this.tabs.length - 1, 'left');\n break;\n }\n default:\n return;\n }\n }\n\n private setGliderStyles() {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n this._gliderStyles = {\n left: `${offsetLeft}px`,\n width: `${clientWidth}px`,\n };\n }\n\n private getSelectedTabPosition() {\n const tab = this.tabs.toArray()[this.selectedIndex]?._button?.nativeElement;\n return {\n offsetLeft: tab?.offsetLeft || 0,\n clientWidth: tab?.clientWidth || 0,\n };\n }\n\n private onTabsChange() {\n // Ensure the current tab doesn't change if tabs change\n // and tab with currently selected id still exists\n const previousTabId = this._tabIds[this.selectedIndex];\n this._tabIds = this.tabs.map((tab) => tab.id);\n if (this._tabIds.includes(previousTabId)) {\n this.selectedIndex = this._tabIds.findIndex(\n (tabId) => tabId === previousTabId\n );\n } else {\n const maxIndex = this.tabs.length - 1;\n if (this.selectedIndex > maxIndex) {\n this.selectedIndex = maxIndex;\n this.selectedIndexChange.emit(this.selectedIndex);\n }\n }\n this.skipAnimationFrame();\n }\n\n private skipAnimationFrame() {\n // We want to avoid animation on first render and whenever tab content changes\n this._animationEnabled = false;\n requestAnimationFrame(() => {\n this._animationEnabled = true;\n });\n }\n\n private findFocusableIndex(\n index: number,\n direction: 'left' | 'right'\n ): number | null {\n if (this.tabs.toArray().every((tab) => tab.disabled)) return null;\n const constrainIndex = (index: number) => {\n if (index >= this.tabs.length) {\n return 0;\n } else if (index < 0) {\n return this.tabs.length - 1;\n } else {\n return index;\n }\n };\n const constrainedIndex = constrainIndex(index);\n if (this.tabs.toArray()[constrainedIndex].disabled) {\n return this.findFocusableIndex(\n constrainedIndex + (direction === 'left' ? -1 : 1),\n direction\n );\n } else {\n return constrainedIndex;\n }\n }\n}\n","<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-segmented-tab-label',\n host: {\n // Angular specific styles that are needed due to extra dom elements added by angular\n '[style.display]': '\"flex\"',\n '[style.align-items]': '\"center\"',\n },\n standalone: false,\n})\n/** Content will be displayed as label within the tab button */\nexport class SegmentedTabLabelDirective {\n constructor() {}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-segmented-tab-content',\n standalone: false,\n})\n/** Content that will be displayed when the tab is selected */\nexport class SegmentedTabContentDirective {\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SegmentedTabsComponent } from './segmented-tabs.component';\nimport { SegmentedTabComponent } from './segmented-tab.component';\nimport { SegmentedTabLabelDirective } from './segmented-tab-label.directive';\nimport { SegmentedTabContentDirective } from './segmented-tab-content.directive';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n SegmentedTabsComponent,\n SegmentedTabComponent,\n SegmentedTabLabelDirective,\n SegmentedTabContentDirective,\n ],\n imports: [CommonModule, A11yModule, UseComponentStyles],\n exports: [\n SegmentedTabsComponent,\n SegmentedTabComponent,\n SegmentedTabLabelDirective,\n SegmentedTabContentDirective,\n ],\n})\nexport class SapphireSegmentedTabsModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sp-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n standalone: false,\n})\nexport class SpinnerComponent {\n @Input()\n size: '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Defines a string value that labels the current element.\n */\n @Input('aria-label')\n ariaLabel?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n}\n","<svg\n class=\"sapphire-spinner\"\n viewBox=\"0 0 16 16\"\n role=\"progressbar\"\n [ngClass]=\"{\n 'sapphire-spinner--3xs': size === '3xs',\n 'sapphire-spinner--2xs': size === '2xs',\n 'sapphire-spinner--xs': size === 'xs',\n 'sapphire-spinner--sm': size === 'sm',\n 'sapphire-spinner--lg': size === 'lg',\n 'sapphire-spinner--xl': size === 'xl'\n }\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n>\n <path\n class=\"sapphire-spinner__track\"\n d=\"M10.3993 2.13882C10.3295 2.39914 10.4641 2.66858 10.7034 2.79263C11.2238 3.06246 11.7123 3.41501 12.1489 3.85159C14.4401 6.14281 14.4399 9.85728 12.1489 12.1483C9.85783 14.4393 6.14335 14.4395 3.85214 12.1483C3.41556 11.7117 3.06301 11.2232 2.79317 10.7028C2.66913 10.4635 2.39969 10.329 2.13937 10.3987C1.82795 10.4821 1.65738 10.8194 1.80178 11.1077C2.1261 11.7551 2.55778 12.3624 3.09789 12.9026C5.80564 15.6103 10.1955 15.6101 12.9031 12.9026C15.6107 10.195 15.6109 5.80509 12.9031 3.09734C12.363 2.55723 11.7556 2.12555 11.1082 1.80123C10.82 1.65683 10.4827 1.8274 10.3993 2.13882Z\"\n />\n <path\n class=\"sapphire-spinner__accent\"\n d=\"M1.72661 8.85304C1.98694 8.78329 2.15316 8.53215 2.14111 8.26291C2.07002 6.67514 2.63971 5.06425 3.85203 3.85193C5.06452 2.63944 6.67527 2.06989 8.26302 2.14101C8.53225 2.15306 8.78337 1.98683 8.85309 1.7265C8.93661 1.41464 8.72921 1.09798 8.4069 1.07913C6.49959 0.96764 4.55516 1.6403 3.09778 3.09768C1.64062 4.55485 0.967813 6.49934 1.07909 8.40676C1.0979 8.72916 1.41467 8.93663 1.72661 8.85304Z\"\n />\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n declarations: [SpinnerComponent],\n imports: [CommonModule],\n exports: [SpinnerComponent],\n})\nexport class SapphireSpinnerModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/spinner.component';\nexport * from './src/spinner.module';\n","import { Component, HostBinding, Input, forwardRef } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { ICON_SIZE_PROVIDER } from '../../icon/public_api';\n\ntype Color =\n | 'neutral'\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16;\n\ntype Size = 'sm' | 'md' | 'lg';\n\n@Component({\n standalone: true,\n selector: 'sp-avatar',\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./avatar.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useExisting: forwardRef(() => AvatarComponent),\n },\n ],\n host: {\n class: 'sapphire-avatar',\n '[class.sapphire-avatar--lg]': 'size === \"lg\"',\n '[class.sapphire-avatar--sm]': 'size === \"sm\"',\n },\n})\nexport class AvatarComponent {\n /**\n * @default 'md'\n */\n @Input()\n size?: Size = 'md';\n\n /**\n * The background color of the avatar.\n * Can either be semantic or one of the named decorative color.\n *\n * @default 'informative'\n */\n @Input()\n color?: Color = 'neutral';\n\n @HostBinding('class')\n private get className() {\n return this.color !== 'neutral'\n ? `sapphire-avatar--decorative-${this.color}`\n : '';\n }\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { AvatarComponent } from './avatar.component';\n\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent],\n})\nexport class SapphireAvatarModule {}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n Directive,\n Input,\n} from '@angular/core';\nimport {\n iconCheckmarkOutline,\n iconError,\n iconNotification,\n iconWarning,\n} from '@danske/sapphire-icons/js';\nimport { IconRegistry } from '../../icon/public_api';\nimport { ICON_SIZE_PROVIDER } from '../../icon/src/icon-size-provider';\n\nexport type FeedbackMessageVariant =\n | 'success'\n | 'error'\n | 'warning'\n | 'informative'\n | 'neutral';\n\n@Directive({\n selector: '[spFeedbackMessageIcon]',\n})\nexport class FeedbackMessageIcon {}\n\n@Directive({\n selector: 'sp-feedback-message-heading',\n})\nexport class FeedbackMessageHeading {}\n\n@Directive({\n selector: 'sp-feedback-message-body',\n})\nexport class FeedbackMessageBody {}\n\n@Directive({\n selector: 'sp-feedback-message-actions',\n})\nexport class FeedbackMessageActions {}\n\n/**\n * Implements layout and style of a feedback message.\n */\n@Component({\n selector: 'sp-feedback-message',\n templateUrl: './feedback-message.component.html',\n styleUrls: ['./feedback-message.component.scss'],\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'xl' },\n },\n ],\n standalone: false,\n})\nexport class FeedbackMessageComponent implements AfterContentInit {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([\n iconCheckmarkOutline,\n iconError,\n iconWarning,\n iconNotification,\n ]);\n }\n\n @Input()\n variant?: FeedbackMessageVariant;\n\n @ContentChild(FeedbackMessageHeading)\n heading?: FeedbackMessageHeading;\n\n @ContentChild(FeedbackMessageIcon)\n icon?: FeedbackMessageIcon;\n\n ngAfterContentInit(): void {\n if (!this.heading) {\n throw new Error(\n 'Missing heading for sp-feedback-message. Render <sp-feedback-message-heading>...</sp-feedback-message-heading> inside sp-feedback-message'\n );\n }\n }\n\n get color() {\n switch (this.variant) {\n case 'success':\n return 'positive';\n case 'error':\n return 'negative';\n case 'neutral':\n return 'primary';\n default:\n return this.variant;\n }\n }\n}\n","<div class=\"sapphire-feedback-message\">\n <div class=\"sapphire-feedback-message__header\">\n <ng-container *ngIf=\"icon !== undefined; else defaultIcon\">\n <ng-content select=\"[spFeedbackMessageIcon]\"></ng-content>\n </ng-container>\n\n <ng-template #defaultIcon>\n <ng-container [ngSwitch]=\"variant\">\n <sp-icon\n *ngSwitchCase=\"'success'\"\n [color]=\"color\"\n name=\"checkmarkOutline\"\n ></sp-icon>\n <sp-icon *ngSwitchCase=\"'error'\" [color]=\"color\" name=\"error\"></sp-icon>\n <sp-icon\n *ngSwitchCase=\"'warning'\"\n [color]=\"color\"\n name=\"warning\"\n ></sp-icon>\n <sp-icon\n *ngSwitchCase=\"'informative'\"\n [color]=\"color\"\n name=\"notification\"\n ></sp-icon>\n </ng-container>\n </ng-template>\n </div>\n <div class=\"sapphire-feedback-message__content\">\n <h3 sp-body semibold=\"true\" size=\"lg\">\n <ng-content select=\"sp-feedback-message-heading\"></ng-content>\n </h3>\n <section sp-body size=\"sm\">\n <ng-content select=\"sp-feedback-message-body\"></ng-content>\n </section>\n </div>\n <div class=\"sapphire-feedback-message__footer\">\n <ng-content select=\"sp-feedback-message-actions\"></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireTypographyModule } from '../../typography/public_api';\n\nimport {\n FeedbackMessageActions,\n FeedbackMessageBody,\n FeedbackMessageComponent,\n FeedbackMessageHeading,\n FeedbackMessageIcon,\n} from './feedback-message.component';\n\n@NgModule({\n declarations: [\n FeedbackMessageComponent,\n FeedbackMessageIcon,\n FeedbackMessageHeading,\n FeedbackMessageBody,\n FeedbackMessageActions,\n ],\n imports: [CommonModule, SapphireTypographyModule, SapphireIconModule],\n exports: [\n FeedbackMessageComponent,\n FeedbackMessageIcon,\n FeedbackMessageHeading,\n FeedbackMessageBody,\n FeedbackMessageActions,\n ],\n})\nexport class SapphireFeedbackMessageModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/feedback-message.component';\nexport * from './src/feedback-message.module';\n","import {\n Directive,\n EventEmitter,\n Input,\n Output,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nexport interface SortDescriptor {\n column: string | null;\n direction: 'ascending' | 'descending';\n}\n\n@Directive({\n selector: 'sp-table[spTableSort]',\n standalone: false,\n})\nexport class TableSortDirective implements OnChanges {\n @Input('spTableSort')\n sortDescriptor: SortDescriptor = {\n column: null,\n direction: 'descending',\n };\n\n @Output('spTableSortChange')\n sortChange: EventEmitter<SortDescriptor> = new EventEmitter();\n\n private isControlled: boolean = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.isControlled = Boolean(changes.sortDescriptor?.currentValue);\n }\n\n setSortDescriptor(sortDescriptor: SortDescriptor): void {\n if (!this.isControlled) {\n this.sortDescriptor = sortDescriptor;\n }\n this.sortChange.emit(sortDescriptor);\n }\n\n constructor() {}\n}\n","import { Directive, Input } from '@angular/core';\nimport { TableSortDirective } from './table-sort.directive';\n\n@Directive({\n selector: '[spTableSortHeader]',\n host: {\n // TableHeadCellComponent will provide spTableSortHeader\n class: 'sapphire-table__headCell--sortable',\n '[class.sapphire-table__headCell--sorted]': 'isSorted()',\n '(click)': 'emitSortChange()',\n '[style.user-select]': '\"none\"',\n '[attr.aria-sort]':\n 'isSorted() ? tableSort.sortDescriptor.direction : \"none\"',\n },\n standalone: false,\n})\nexport class TableSortHeaderDirective {\n @Input('spTableSortHeader')\n sortHeader: string = '';\n\n constructor(public tableSort: TableSortDirective) {}\n\n emitSortChange() {\n const currentSortDescription = this.tableSort.sortDescriptor;\n const newSortDescriptor = {\n column: this.sortHeader,\n direction:\n currentSortDescription.column === this.sortHeader &&\n currentSortDescription.direction === 'ascending'\n ? ('descending' as const)\n : ('ascending' as const),\n };\n this.tableSort.setSortDescriptor(newSortDescriptor);\n }\n\n isSorted() {\n return this.tableSort.sortDescriptor.column === this.sortHeader;\n }\n}\n","import { Component, forwardRef, HostListener, Inject } from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\n\n@Component({\n selector: 'sp-tooltip',\n template: `\n <div [id]=\"tooltipDirective.id\" class=\"sapphire-tooltip\" role=\"tooltip\">\n <div class=\"sapphire-theme--contrast\">\n <div class=\"sapphire-tooltip__content\">\n {{ tooltipDirective.tooltipText }}\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./tooltip.component.scss'],\n standalone: false,\n})\nexport class TooltipComponent {\n @HostListener('mouseenter')\n onMouseEnter() {\n this.tooltipDirective.warmup();\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltipDirective.hide();\n }\n\n constructor(\n @Inject(forwardRef(() => TooltipDirective))\n public tooltipDirective: TooltipDirective\n ) {}\n}\n","import { Component } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\n\n/**\n * Sapphire default theme\n */\n@Component({\n selector: 'sp-theme-default',\n standalone: true,\n template: '<ng-content></ng-content>',\n hostDirectives: [ThemeBaseDirective],\n styleUrls: ['./theme-default.component.scss'],\n})\nexport class ThemeDefault {}\n\n/**\n * Sapphire default theme\n */\n@Component({\n selector: 'sp-theme-default-dark',\n standalone: true,\n template: '<ng-content></ng-content>',\n hostDirectives: [ThemeBaseDirective],\n styleUrls: ['./theme-default-dark.component.scss'],\n})\nexport class ThemeDefaultDark {}\n","import { Directive, ElementRef, Optional, SkipSelf } from '@angular/core';\nimport { ThemeBaseDirective } from './theme-base.directive';\nimport { TopLevelThemeRef } from './top-level-theme-ref.service';\n\n/**\n * Applies the current theme style on an element which is not under the rendered\n * sp-theme, in DOM tree. Useful for non-Sapphire portal components that render things in body.\n *\n */\n@Directive({\n selector: '[sp-theme-root]',\n standalone: true,\n})\nexport class ThemeRootDirective {\n constructor(\n elementRef: ElementRef,\n themeRef: TopLevelThemeRef,\n @Optional() @SkipSelf() parentTheme: ThemeBaseDirective\n ) {\n const theme = parentTheme || themeRef.theme;\n theme.applyOnDomNode(elementRef.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { ThemeDefault, ThemeDefaultDark } from './themes';\nimport { ThemeRootDirective } from './theme-root.directive';\n\n/**\n * - Makes sure currently applied theme is applied on overlays which are rendered as portal\n * - Provides `THEME_ATTRIBUTE` injectable via sp-theme component. Useful when a custom component\n * needs to render a portal with the currently applied theme class.\n */\n@NgModule({\n declarations: [],\n imports: [OverlayModule, ThemeRootDirective, ThemeDefault, ThemeDefaultDark],\n exports: [ThemeRootDirective, ThemeDefault, ThemeDefaultDark],\n})\nexport class SapphireThemeModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\n\n/**\n * IMPORTANT:\n * By re-exporting semantic tokens from @danske/sapphire-css, as an interface to allow users of\n * @danske/sapphire-angular to access design system values, we should be mindful of breaking changes\n * every time @danske/sapphire-css is upgraded to new major versions.\n */\nexport { tokens } from '@danske/sapphire-css/themes';\n\nexport type Breakpoint = 'XS' | 'S' | 'M' | 'L' | 'XL';\nexport type Breakpoints = Record<Breakpoint, number>;\n\n/**\n * Exporting \"tokens.size.breakpoint\" is not good enough.\n * That is a map from breakpoint name to a a string which is the css variable\n * that will have the breakpoint size. This is not useful in a JS context.\n *\n * TODO: export something which uses the \"tokens.size.breakpoint\" and offers\n * something usabled in JS.\n */\nexport const DEFAULT_BREAKPOINTS: Breakpoints = {\n XS: 576,\n S: 768,\n M: 960,\n L: 1200,\n XL: 1400,\n};\n\nexport { SapphireThemeModule } from './src/theme.module';\nexport { SapphireOverlay } from './src/sapphire-overlay.service';\nexport { ThemeDefaultDark, ThemeDefault } from './src/themes';\nexport { ThemeRootDirective } from './src/theme-root.directive';\n\n// Exported just for the issue with vscode\nexport { ThemeBaseDirective } from './src/theme-base.directive';\nexport { ThemeCheckDirective } from './src/theme-check.directive';\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Injector,\n Input,\n} from '@angular/core';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './tooltip.component';\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { SapphireOverlay } from '../../theme/public_api';\n\nconst tooltips: Record<string, TooltipDirective> = {};\nlet globalWarmedUp = false;\nlet globalWarmUpTimeout: ReturnType<typeof setTimeout> | null = null;\nlet globalCooldownTimeout: ReturnType<typeof setTimeout> | null = null;\n\nconst TOOLTIP_COOLDOWN = 500;\n\n@Directive({\n // This allows for this directive to be used in hostDirectives of other components/directives\n // E.g. useful for having a tooltip on a truncated table cell element\n standalone: true,\n selector: '[spTooltip]',\n host: {\n '(mouseenter)': 'warmup()',\n '(mouseleave)': 'hide()',\n '(click)': 'hide(true)',\n },\n exportAs: 'spTooltip',\n})\nexport class TooltipDirective {\n private _overlayRef: OverlayRef | null = null;\n private _portal: ComponentPortal<TooltipComponent> | null = null;\n private _closeTimeout: ReturnType<typeof setTimeout> | undefined;\n\n @AutoId()\n id = '';\n\n /**\n * The string to show inside the tooltip or null to disable it.\n */\n @Input('spTooltip')\n tooltipText: string | null = '';\n\n /**\n * The amount of time that has to pass before tooltip will show\n * upon user interaction activating it – aka \"warm up\" period.\n *\n * @default 500\n */\n @Input('spTooltipDelay')\n get delay(): number | undefined {\n return this._delay;\n }\n set delay(value: NumberInput) {\n this._delay = coerceNumberProperty(value);\n }\n _delay = 500;\n\n @HostListener('document:keydown.escape')\n private handleGlobalEscapeKeyEvent() {\n if (this._overlayRef?.hasAttached()) {\n this.hide(true);\n }\n }\n\n @HostListener('focus', ['$event'])\n private onFocus(event: FocusEvent) {\n if (\n event.target === this._elementRef.nativeElement &&\n !this._overlayRef?.hasAttached()\n ) {\n this.show();\n }\n }\n\n @HostListener('blur', ['$event'])\n private onBlur(event: FocusEvent) {\n if (event.target === this._elementRef.nativeElement) {\n this.hide(true);\n }\n }\n\n @Input('spTooltipPlacement')\n placement: 'start' | 'center' | 'end' = 'center';\n\n isOpen = () => {\n return this._overlayRef?.hasAttached();\n };\n\n private ensureTooltipEntry = () => {\n tooltips[this.id] = this;\n };\n\n private closeOpenTooltips = () => {\n for (const id in tooltips) {\n if (id !== this.id) {\n tooltips[id]?.hide(true);\n delete tooltips[id];\n }\n }\n };\n\n show = () => {\n if (typeof this.tooltipText !== 'string' || this.tooltipText.length < 1) {\n return;\n }\n\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n this.closeOpenTooltips();\n this.ensureTooltipEntry();\n globalWarmedUp = true;\n this.attachTooltipPortal();\n if (globalWarmUpTimeout) {\n clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = null;\n }\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n };\n\n hide = (immediate?: boolean) => {\n const detach = () => {\n this._closeTimeout = undefined;\n this._overlayRef?.detach();\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n };\n\n if (immediate) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n detach();\n } else if (!this._closeTimeout) {\n this._closeTimeout = setTimeout(() => {\n detach();\n }, TOOLTIP_COOLDOWN);\n }\n\n if (globalWarmUpTimeout) {\n clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = null;\n }\n if (globalWarmedUp) {\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n globalCooldownTimeout = setTimeout(() => {\n delete tooltips[this.id];\n globalCooldownTimeout = null;\n globalWarmedUp = false;\n }, TOOLTIP_COOLDOWN);\n }\n };\n\n warmup = () => {\n this.closeOpenTooltips();\n this.ensureTooltipEntry();\n if (\n !this._overlayRef?.hasAttached() &&\n !globalWarmUpTimeout &&\n !globalWarmedUp\n ) {\n globalWarmUpTimeout = setTimeout(() => {\n globalWarmUpTimeout = null;\n globalWarmedUp = true;\n this.show();\n }, this.delay);\n } else if (!this._overlayRef?.hasAttached()) {\n this.show();\n } else if (this._overlayRef?.hasAttached()) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n if (globalCooldownTimeout) {\n clearTimeout(globalCooldownTimeout);\n globalCooldownTimeout = null;\n }\n }\n };\n\n private attachTooltipPortal = () => {\n if (this._overlayRef?.hasAttached()) return;\n this._elementRef.nativeElement.setAttribute('aria-describedby', this.id);\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions([\n {\n originX: this.placement,\n originY: 'bottom',\n overlayX: this.placement,\n overlayY: 'top',\n offsetY: 6,\n },\n {\n originX: this.placement,\n originY: 'top',\n overlayX: this.placement,\n overlayY: 'bottom',\n offsetY: -6,\n },\n ])\n .withFlexibleDimensions(false)\n .withViewportMargin(6);\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n });\n this._portal = new ComponentPortal(\n TooltipComponent,\n null,\n Injector.create({\n providers: [\n {\n provide: TooltipDirective,\n useValue: this,\n },\n ],\n })\n );\n this._overlayRef.attach(this._portal).instance;\n };\n\n constructor(\n private _overlay: SapphireOverlay,\n private _elementRef: ElementRef<HTMLElement>\n ) {}\n}\n","import {\n AfterContentChecked,\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n/**\n * Shows a tooltip with the text content of the host element, if the content is\n * overflowing. It also applies inline styles to hide the overflow and show the\n * ellipsis.\n *\n * @example <something spTruncatedWithTooltip>Overflow will always be truncated</something>\n * @example <something spTruncatedWithTooltip=\"someCondition\">Overflow will be truncated only if someCondition is truthy</something>\n */\n@Directive({\n selector: '[spTruncatedWithTooltip]',\n standalone: true,\n hostDirectives: [TooltipDirective],\n host: {\n '[style.overflow]': 'enabled && \"hidden\"',\n '[style.text-overflow]': 'enabled && \"ellipsis\"',\n '[style.white-space]': 'enabled && \"nowrap\"',\n },\n})\nexport class TruncatedWithTooltipDirective implements AfterContentChecked {\n /**\n * Whether the directive is enabled.\n */\n @CoerceBoolean\n @Input('spTruncatedWithTooltip')\n enabled: BooleanInput = true;\n\n constructor(\n private tooltipDirective: TooltipDirective,\n private elementRef: ElementRef\n ) {}\n\n ngAfterContentChecked(): void {\n const contentElement = this.elementRef.nativeElement;\n this.tooltipDirective.tooltipText =\n this.enabled && this.hasOverflow() ? contentElement.innerText : null;\n }\n\n private hasOverflow() {\n const contentElement = this.elementRef.nativeElement;\n return (\n contentElement.scrollWidth > contentElement.clientWidth ||\n contentElement.scrollHeight > contentElement.clientHeight\n );\n }\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport { TableSortHeaderDirective } from './table-sort-header.directive';\nimport { TableComponent } from './table.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconSortDescending, iconSortAscending } from '@danske/sapphire-icons/js';\n\n@Component({\n selector: 'th[sp-table-th]',\n templateUrl: './table-header-cell.component.html',\n host: {\n '[class.sapphire-table__headCell]': '!selectionCell',\n '[class.sapphire-table__cell]': 'selectionCell',\n '[class.sapphire-table__cell--alignLeft]': \"align === 'left'\",\n '[class.sapphire-table__cell--alignCenter]': \"align === 'center'\",\n '[class.sapphire-table__cell--alignRight]': \"align === 'right'\",\n '[class.sapphire-table__selectionCell]': 'selectionCell',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableHeadCellComponent {\n /**\n * Horizontal alignment of content in the cell.\n */\n @Input()\n align?: 'left' | 'center' | 'right' = 'left';\n\n @HostBinding('style.width')\n @Input()\n width?: string;\n\n @HostBinding('style.min-width')\n @Input()\n minWidth?: string;\n\n @HostBinding('style.max-width')\n @Input()\n maxWidth?: string;\n\n /**\n * Applies the styles for selection cell. A selection cell is the first cell in a row, containing\n * a checkbox.\n */\n @Input()\n @CoerceBoolean\n selectionCell: BooleanInput = false;\n\n get cellOverflow() {\n return this.table.cellOverflow;\n }\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n private table: TableComponent,\n iconRegistry: IconRegistry,\n @Optional() public tableSortHeader?: TableSortHeaderDirective\n ) {\n iconRegistry.registerIcons([iconSortAscending, iconSortDescending]);\n }\n}\n","<div\n *ngIf=\"!selectionCell\"\n class=\"sapphire-table__headCell_container\"\n _spUseComponentStyles\n>\n <span *ngIf=\"tableSortHeader && align === 'right'\">\n <ng-container *ngTemplateOutlet=\"sortIcon\"></ng-container>\n </span>\n <span [spTruncatedWithTooltip]=\"cellOverflow === 'truncate'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n <span *ngIf=\"tableSortHeader && align !== 'right'\">\n <ng-container *ngTemplateOutlet=\"sortIcon\"></ng-container>\n </span>\n</div>\n<ng-container *ngIf=\"selectionCell\"\n ><ng-container *ngTemplateOutlet=\"content\"></ng-container\n></ng-container>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n\n<ng-template #sortIcon>\n <span\n *ngIf=\"tableSortHeader\"\n aria-hidden=\"true\"\n [class.sapphire-table-sortableIcon]=\"\n tableSortHeader.tableSort.sortDescriptor.column !==\n tableSortHeader.sortHeader\n \"\n [class.sapphire-table-sortedIcon]=\"\n tableSortHeader.tableSort.sortDescriptor.column ===\n tableSortHeader.sortHeader\n \"\n _spUseComponentStyles\n >\n <sp-icon\n [name]=\"\n tableSortHeader.tableSort.sortDescriptor.column ===\n tableSortHeader.sortHeader &&\n tableSortHeader.tableSort.sortDescriptor.direction === 'descending'\n ? 'sortDescending'\n : 'sortAscending'\n \"\n size=\"md\"\n ></sp-icon>\n </span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\nimport { TruncatedWithTooltipDirective } from './truncated-with-tooltip.directive';\n\n@NgModule({\n declarations: [TooltipComponent],\n imports: [\n CommonModule,\n OverlayModule,\n TooltipDirective,\n TruncatedWithTooltipDirective,\n ],\n exports: [TooltipDirective, TruncatedWithTooltipDirective],\n})\nexport class SapphireTooltipModule {}\n","import {\n AfterContentChecked,\n Directive,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport { TableRowDirective } from './table-row.directive';\nimport { TableComponent } from './table.component';\nimport { TruncatedWithTooltipDirective } from '../../tooltip/public_api';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\ntype CellAlignment = 'left' | 'center' | 'right';\n\n@Directive({\n selector: 'td[sp-table-td]',\n hostDirectives: [TruncatedWithTooltipDirective, UseComponentStyles],\n host: {\n class: 'sapphire-table__cell',\n '[class.sapphire-table__cell--alignLeft]': \"align === 'left'\",\n '[class.sapphire-table__cell--alignCenter]': \"align === 'center'\",\n '[class.sapphire-table__cell--alignRight]': \"align === 'right'\",\n '[class.sapphire-table__selectionCell]': 'selectionCell',\n },\n standalone: false,\n})\nexport class TableCellDirective implements AfterContentChecked {\n @HostBinding('attr.role')\n get role() {\n return this.isFirstCellInRow ? 'rowheader' : 'cell';\n }\n /**\n * Horizontal alignment of content in the cell.\n *\n * @default 'left'\n */\n @HostBinding('attr.align')\n @Input()\n get align(): CellAlignment | undefined {\n return this._align || this.headCell?.align;\n }\n\n /**\n * Applies the styles for selection cell.\n * A selection cell is the first cell in a row, containing a checkbox.\n */\n @Input()\n @CoerceBoolean\n selectionCell: BooleanInput = false;\n\n set align(value: CellAlignment | undefined) {\n this._align = value;\n }\n private _align: CellAlignment | undefined;\n @HostBinding('style.width')\n get width() {\n return this.headCell?.width;\n }\n\n @HostBinding('style.min-width')\n get minWidth() {\n return this.headCell?.minWidth;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.headCell?.maxWidth;\n }\n\n private headCell?: TableHeadCellComponent;\n private isFirstCellInRow = false;\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n private table: TableComponent,\n private truncatedWithTooltipDirective: TruncatedWithTooltipDirective,\n @Inject(forwardRef(() => TableRowDirective))\n private tableRow: TableRowDirective\n ) {}\n\n ngAfterContentChecked(): void {\n this.truncatedWithTooltipDirective.enabled =\n this.table.cellOverflow === 'truncate';\n this.headCell = this.tableRow.getColumnHeadCell(this);\n this.isFirstCellInRow = this.tableRow.cells.toArray().indexOf(this) === 0;\n }\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'tfoot[sp-table-tfoot]',\n host: {\n class: 'sapphire-table__tfoot',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableFooterDirective {\n constructor() {}\n}\n","import {\n ContentChildren,\n Directive,\n forwardRef,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n} from '@angular/core';\nimport { TableComponent } from './table.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { TableFooterDirective } from './table-footer.directive';\n\n@Directive({\n selector: 'tr[sp-table-tr]',\n host: {\n class: 'sapphire-table__row',\n /**\n * We want the css hover styles to not be applied for the disabled rows.\n * The \"js-hover\" class basically means that we're taking over the hover\n * styles from css.\n */\n '[class.sapphire-table__row--selected]': 'selected',\n '[class.sapphire-table__row--highlighted]': 'highlighted',\n '[attr.aria-selected]': 'selected || null',\n '[class.js-hover]': 'disabled||_footer',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableRowDirective<D = unknown> {\n @ContentChildren(TableCellDirective)\n cells: QueryList<TableCellDirective> = new QueryList();\n\n @Input()\n rowData: D | null = null;\n\n @Input()\n @CoerceBoolean\n disabled: BooleanInput = false;\n\n /**\n * Applies selected row styles, and marks the row as selected for assistive technology.\n */\n @Input()\n @CoerceBoolean\n selected: BooleanInput = false;\n\n /**\n * Applies highlighted row styles. Highlighted rows are shown in a selected state\n * which is different from the normal selection with checkboxes. The primary use case is when\n * the row action is to update an external view (such as a row detail view), to\n * show its connection with the selected row.\n */\n @Input()\n @CoerceBoolean\n highlighted: BooleanInput = false;\n\n @HostListener('click')\n private onRowClick() {\n if (!this.disabled && !this._footer) {\n this.table.rowAction.emit({\n index:\n this.table.rows?.toArray().findIndex((row) => row === this) ?? -1,\n rowData: this.rowData,\n });\n }\n }\n\n public getColumnHeadCell(cell: TableCellDirective) {\n const index = this.cells.toArray().indexOf(cell);\n return this.table.headCells?.toArray()[index];\n }\n\n constructor(\n @Inject(forwardRef(() => TableComponent))\n public table: TableComponent,\n @Optional()\n public _footer: TableFooterDirective\n ) {}\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableComponent } from './table.component';\n\n@Directive({\n selector: 'table[sp-table]',\n host: {\n class: 'sapphire-table__table',\n '[class.sapphire-table__table--spacing-sm]': '_table.cellSpacing === \"sm\"',\n '[class.sapphire-table__table--spacing-lg]': '_table.cellSpacing === \"lg\"',\n '[class.sapphire-table__table--spacing-xl]': '_table.cellSpacing === \"xl\"',\n '[class.sapphire-table__table--fixed-layout]': '_table.layout === \"fixed\"',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableDirective {\n constructor(public _table: TableComponent) {}\n}\n","import {\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { TableRowDirective } from './table-row.directive';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\nimport { TableDirective } from './table.directive';\n\nexport interface RowActionEvent<D> {\n index: number;\n rowData: D;\n}\n\n@Component({\n selector: 'sp-table',\n template: `\n <ng-container>\n <ng-content select=\"table\"></ng-content>\n </ng-container>\n `,\n host: {\n class: 'sapphire-table',\n '[style.height]': 'height',\n '[style.max-height]': 'maxHeight',\n '[class.sapphire-table--overflow]': 'height || maxHeight',\n '[class.sapphire-table--interactive]': 'isInteractive',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./table.component.scss'],\n standalone: false,\n})\nexport class TableComponent {\n /**\n * Handler that is called when a user performs an action on a row.\n */\n @Output()\n rowAction = new EventEmitter<RowActionEvent<unknown>>();\n\n /**\n * If the table header should be sticky relative to the first ancestor with\n * an `overflow`.\n * `auto` means it is `true` if the table has a custom `height` or\n * `maxHeight` and `false` otherwise.\n */\n @Input()\n stickyHeader: 'on' | 'off' | 'auto' = 'auto';\n\n /**\n * Whether text within a table cell should be truncated and followed by\n * 3 dots or it should wrap.\n */\n @Input()\n cellOverflow: 'wrap' | 'truncate' = 'truncate';\n\n @Input()\n height: number | undefined = undefined;\n\n @Input()\n maxHeight: number | undefined = undefined;\n\n @Input()\n cellSpacing: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Same as CSS table-layout property.\n * @default 'auto'\n */\n @Input()\n layout?: 'auto' | 'fixed';\n\n get isInteractive() {\n return this.rowAction.observers.length > 0;\n }\n\n @ContentChildren(TableRowDirective, { descendants: true })\n rows?: QueryList<TableRowDirective>;\n\n @ContentChildren(TableHeadCellComponent, { descendants: true })\n headCells?: QueryList<TableHeadCellComponent>;\n\n @ContentChild(TableDirective, { descendants: true })\n table?: TableDirective;\n\n constructor() {}\n}\n","import { Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'tbody[sp-table-tbody]',\n host: {\n class: 'sapphire-table__body',\n },\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableBodyDirective {\n constructor() {}\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { TableComponent } from './table.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Directive({\n selector: 'thead[sp-table-thead]',\n hostDirectives: [UseComponentStyles],\n standalone: false,\n})\nexport class TableHeadDirective {\n @HostBinding('class')\n private get classNames() {\n const classes = ['sapphire-table__head'];\n\n if (\n this.table.stickyHeader === 'on' ||\n (this.table.stickyHeader === 'auto' &&\n (this.table.height || this.table.maxHeight))\n ) {\n classes.push('sapphire-table__head--sticky');\n }\n\n return classes.join(' ');\n }\n\n constructor(public table: TableComponent) {}\n}\n","import { Directive, OnInit } from '@angular/core';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n/**\n * A patch to fix the issue of sticky header position getting affected\n * by transform, which is due to transform making the element\n * a [containing block](https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block).\n *\n * It intercepts style assignments on the content wrapper, and converts\n * transform: translateY(value) to top: value, to avoid making the content\n * wrapper a containing block for sticky positioned children.\n *\n * @see\n * https://github.com/angular/components/issues/14833\n * https://github.com/angular/components/issues/18240\n * https://github.com/angular/components/issues/21576\n * https://github.com/angular/components/issues/28584\n */\n@Directive({\n selector: 'cdk-virtual-scroll-viewport',\n standalone: true,\n})\nexport class CdkVirtualScrollViewportFixDirective implements OnInit {\n constructor(private cdkViewport: CdkVirtualScrollViewport) {}\n\n ngOnInit() {\n const contentWrapper = this.cdkViewport._contentWrapper.nativeElement;\n /**\n * Proxy to set `top: {value}px` instead of `transform: translateY({value}px)`\n * whenever `style.transform` is set.\n */\n const styleProxy = new Proxy(contentWrapper.style, {\n set: (target, prop, value) => {\n const top: string | undefined =\n prop === 'transform'\n ? value?.match(/translateY\\((\\d+)px\\)/)?.[1]\n : undefined;\n if (top) {\n target['top'] = `${top}px`;\n return true;\n }\n (target as any)[prop] = value;\n return true;\n },\n });\n\n // Not directly setting style proxy to contentWrapper.style, to limit\n // it to the styles set by CdkVirtualScrollViewport.\n // i.e. only setting `top` instead of `transform`, when set by cdk viewport.\n this.cdkViewport._contentWrapper.nativeElement = new Proxy(contentWrapper, {\n get: (target, prop) => {\n return prop === 'style' ? styleProxy : (target as any)[prop];\n },\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableComponent } from './table.component';\nimport { TableBodyDirective } from './table-body.directive';\nimport { TableHeadDirective } from './table-head.directive';\nimport { TableRowDirective } from './table-row.directive';\nimport { TableHeadCellComponent } from './table-head-cell.component';\nimport { TableCellDirective } from './table-cell.directive';\nimport { TableSortHeaderDirective } from './table-sort-header.directive';\nimport { TableSortDirective } from './table-sort.directive';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { TruncatedWithTooltipDirective } from '../../tooltip/public_api';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { TableDirective } from './table.directive';\nimport { TableFooterDirective } from './table-footer.directive';\nimport { CdkVirtualScrollViewportFixDirective } from './cdk-virtual-scroll-viewport-fix.directive';\n\n@NgModule({\n declarations: [\n TableComponent,\n TableDirective,\n TableBodyDirective,\n TableFooterDirective,\n TableHeadDirective,\n TableRowDirective,\n TableHeadCellComponent,\n TableCellDirective,\n TableSortDirective,\n TableSortHeaderDirective,\n ],\n imports: [\n CommonModule,\n SapphireIconModule,\n TruncatedWithTooltipDirective,\n CdkVirtualScrollViewportFixDirective,\n UseComponentStyles,\n ],\n exports: [\n TableComponent,\n TableDirective,\n TableBodyDirective,\n TableFooterDirective,\n TableHeadDirective,\n TableRowDirective,\n TableHeadCellComponent,\n TableCellDirective,\n TableSortDirective,\n TableSortHeaderDirective,\n CdkVirtualScrollViewportFixDirective,\n ],\n})\nexport class SapphireTableModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/table.component';\nexport * from './src/table.directive';\nexport * from './src/table-row.directive';\nexport * from './src/table-cell.directive';\nexport * from './src/table-footer.directive';\nexport * from './src/table-body.directive';\nexport * from './src/table-head-cell.component';\nexport * from './src/table-head.directive';\nexport * from './src/table-sort.directive';\nexport * from './src/table-sort-header.directive';\nexport * from './src/table.module';\nexport { CdkVirtualScrollViewportFixDirective } from './src/cdk-virtual-scroll-viewport-fix.directive';\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sp-notification-badge',\n templateUrl: './notification-badge.component.html',\n styleUrls: ['./notification-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NotificationBadgeComponent {\n @Input()\n containerType?: 'circle' | 'rectangle' = 'circle';\n\n @Input()\n size?: 'sm' | 'md' | 'lg' = 'md';\n\n @Input()\n variant?: 'primary' | 'secondary' = 'primary';\n\n @Input()\n count?: number = 1;\n\n @Input()\n show?: boolean = true;\n\n /**\n * Flag to toggle the animation of the badge on show/hide.\n *\n * @default 'true'\n */\n @Input()\n animate?: boolean = true;\n}\n","<span\n class=\"sapphire-notification-badge-container\"\n [class.sapphire-notification-badge-container--rectangle]=\"\n containerType === 'rectangle'\n \"\n>\n <ng-content></ng-content>\n <span\n role=\"status\"\n class=\"sapphire-notification-badge\"\n [class.sapphire-notification-badge--lg]=\"size === 'lg'\"\n [class.sapphire-notification-badge--md]=\"size === 'md'\"\n [class.sapphire-notification-badge--sm]=\"size === 'sm'\"\n [class.sapphire-notification-badge--primary]=\"variant === 'primary'\"\n [class.sapphire-notification-badge--secondary]=\"variant === 'secondary'\"\n [class.sapphire-notification-badge--pop-in]=\"show && animate\"\n [class.sapphire-notification-badge--pop-out]=\"!show && animate\"\n *ngIf=\"show || animate\"\n >\n {{\n size !== 'sm'\n ? count && count.toString().length > 2\n ? '99+'\n : count\n : ''\n }}\n </span>\n</span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NotificationBadgeComponent } from './notification-badge.component';\n\n@NgModule({\n declarations: [NotificationBadgeComponent],\n imports: [CommonModule],\n exports: [NotificationBadgeComponent],\n})\nexport class SapphireNotificationBadgeModule {}\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n forwardRef,\n HostBinding,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { HasTabIndex, mixinTabIndex } from '../../common/tabindex';\nimport { CanDisable, mixinDisabled } from '../../common/disabled';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\n\n/** Change event object emitted by switch. */\nexport class SapphireSwitchChange {\n constructor(\n /** The new `selected` value of the switch. */\n public readonly selected: boolean,\n /** The source switch of the event. */\n public readonly source: SwitchComponent\n ) {}\n}\n\nconst _SwitchMixinBase = mixinTabIndex(\n mixinDisabled(\n class {\n constructor(public _elementRef: ElementRef) {}\n }\n )\n);\n\n@Component({\n selector: 'sp-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class SwitchComponent\n extends _SwitchMixinBase\n implements ControlValueAccessor, CanDisable, HasTabIndex, FocusableOption\n{\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string = '';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** @default \"lg\" */\n @Input() size?: 'lg' | 'md' = 'lg';\n\n /** A unique id for the switch input. If none is supplied, it will be auto-generated. */\n @Input()\n @HostBinding()\n @AutoId()\n id = '';\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id}-input`;\n }\n\n /** Event emitted when the switch's `selected` value changes. */\n @Output() readonly change: EventEmitter<SapphireSwitchChange> =\n new EventEmitter<SapphireSwitchChange>();\n\n /** The value attribute of the native input element */\n @Input() value: string | undefined;\n\n /** Whether the switch is required. */\n @Input()\n @CoerceBoolean\n required: BooleanInput;\n\n /** Whether the switch is selected. */\n @Input()\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: BooleanInput) {\n const selected = coerceBooleanProperty(value);\n\n if (selected != this.selected) {\n this._selected = selected;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _selected: boolean = false;\n\n /**\n * Whether the switch is disabled. This fully overrides the implementation provided by\n * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.\n */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.changeDetectorRef.markForCheck();\n }\n }\n private _disabled: boolean = false;\n\n /**\n * Whether the switch is readonly.\n */\n @Input()\n @CoerceBoolean\n readonly: BooleanInput;\n\n /**\n * Called when the switch is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n private onTouched: () => any = () => {};\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(elementRef);\n this.tabIndex = parseInt(tabIndex) || 0;\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.selected = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /** Toggles the `selected` state of the switch. */\n toggle(): void {\n this.selected = !this.selected;\n this.controlValueAccessorChangeFn(this.selected);\n }\n\n focus() {\n this._inputElement.nativeElement.focus();\n }\n\n _onInputClick($event: Event) {\n $event.stopPropagation();\n if (!this.disabled && !this.readonly) {\n this._selected = !this._selected;\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise, the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n _onBlur() {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n });\n }\n private emitChangeEvent() {\n this.controlValueAccessorChangeFn(this.selected);\n this.change.emit(new SapphireSwitchChange(this.selected, this));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.selected;\n }\n }\n}\n","<label\n class=\"sapphire-switch\"\n [class.sapphire-switch--md]=\"size === 'md'\"\n [attr.for]=\"inputId\"\n>\n <input\n #input\n class=\"sapphire-switch-input\"\n role=\"switch\"\n type=\"checkbox\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [id]=\"inputId\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick($event)\"\n (change)=\"_onInteractionEvent($event)\"\n />\n <span class=\"sapphire-switch-track\"></span>\n <span span class=\"sapphire-switch-label\"><ng-content></ng-content></span>\n</label>\n","import { Directive, forwardRef, Input, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nconst SWITCH_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SapphireSwitchRequiredValidator),\n multi: true,\n};\n\n/**\n * Validator for Sapphire switch's required attribute in template-driven checkbox.\n */\n@Directive({\n selector: `sp-switch[required][formControlName],\n sp-switch[required][formControl], sp-switch[required][ngModel]`,\n providers: [SWITCH_REQUIRED_VALIDATOR],\n standalone: false,\n})\nexport class SapphireSwitchRequiredValidator extends CheckboxRequiredValidator {\n @Input('required')\n required!: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SwitchComponent } from './switch.component';\nimport { SapphireSwitchRequiredValidator } from './switch-required-validator';\n\n@NgModule({\n declarations: [SwitchComponent, SapphireSwitchRequiredValidator],\n imports: [CommonModule],\n exports: [SwitchComponent, SapphireSwitchRequiredValidator],\n})\nexport class SapphireSwitchModule {}\n","import {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { ThemeCheckDirective } from '../../../theme/src/theme-check.directive';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FieldControl } from '../../../field/src/field-control';\nimport { RadioGroupBase } from '../shared/radio-group-base';\nimport { ViewEncapsulationProvider } from '../../../common/sapphire-view-encapsulation';\nimport { FocusOrigin } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'sp-segmented-radio-group',\n templateUrl: './segmented-radio-group.component.html',\n styleUrls: ['./segmented-radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [\n ViewEncapsulationProvider,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n multi: true,\n },\n {\n provide: FieldControl,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n },\n {\n provide: RadioGroupBase,\n useExisting: forwardRef(() => SegmentedRadioGroupComponent),\n },\n ],\n hostDirectives: [ThemeCheckDirective],\n standalone: false,\n})\nexport class SegmentedRadioGroupComponent\n extends RadioGroupBase\n implements AfterViewInit, OnDestroy, AfterViewChecked\n{\n @ViewChild('segmentedControl') segmentedControl!: ElementRef;\n\n /**\n * Label (not shown on the screen).\n * Required for accessibility reasons.\n **/\n @Input('aria-label')\n ariaLabel!: string;\n\n /** Size of tabs */\n @Input()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Alignment of tabs' buttons group.\n * @default 'left'\n */\n @Input()\n align?: 'left' | 'center' | 'right' | 'stretch' = 'left';\n\n private resizeObserver: ResizeObserver | undefined;\n _gliderStyles = { left: '0px', width: '0px' };\n _animationEnabled = false;\n _focusVisible = false;\n\n constructor(private zone: NgZone, private changeDetector: ChangeDetectorRef) {\n super(changeDetector, undefined as any);\n this.skipAnimationFrame();\n }\n\n private skipAnimationFrame() {\n // We want to avoid animation on first render and whenever tab content changes\n this._animationEnabled = false;\n requestAnimationFrame(() => {\n this._animationEnabled = true;\n });\n }\n\n private setGliderStyles() {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n this._gliderStyles = {\n left: `${offsetLeft}px`,\n width: `${clientWidth}px`,\n };\n }\n\n private getSelectedTabPosition() {\n const selected = this.selected?.elementRef.nativeElement;\n return {\n offsetLeft: selected?.offsetLeft || 0,\n clientWidth: selected?.clientWidth || 0,\n };\n }\n\n private shouldUpdateGliderStyles(): boolean {\n const { offsetLeft, clientWidth } = this.getSelectedTabPosition();\n return (\n `${offsetLeft}px` !== this._gliderStyles.left ||\n `${clientWidth}px` !== this._gliderStyles.width\n );\n }\n\n ngAfterViewInit(): void {\n this.setGliderStyles();\n this.resizeObserver = new ResizeObserver(() => {\n if (this.shouldUpdateGliderStyles()) {\n // zonejs doesn't monkey-patch resize observer (yet)\n this.zone.run(() => {\n this.setGliderStyles();\n });\n }\n });\n\n this.resizeObserver.observe(this.segmentedControl.nativeElement);\n this.change.subscribe(() => {\n this.setGliderStyles();\n });\n }\n\n ngAfterViewChecked(): void {\n this.setGliderStyles();\n this.changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.segmentedControl.nativeElement);\n this.change.unsubscribe();\n }\n\n _onFocusChange(focusOrigin: FocusOrigin) {\n this._focusVisible = focusOrigin === 'keyboard';\n if (!focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--lg]=\"size === 'lg'\"\n [class.sapphire-segmented-control--sm]=\"size === 'sm'\"\n [class.focus-visible]=\"_focusVisible\"\n [ngClass]=\"\n align === 'stretch'\n ? 'sapphire-segmented-control--stretch'\n : 'sapphire-segmented-control--align-' + align\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n >\n <ng-content></ng-content>\n <span\n [style.left]=\"_gliderStyles.left\"\n [style.width]=\"_gliderStyles.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\nimport { ThemeCheckDirective } from '../../../theme/src/theme-check.directive';\nimport { RadioBase } from '../shared/radio-base';\n\n@Component({\n selector: 'sp-segmented-radio',\n templateUrl: './segmented-radio.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [ThemeCheckDirective, UseComponentStyles],\n inputs: ['tabIndex'],\n host: {\n class: 'sapphire-segmented-control__button',\n '[class.sapphire-segmented-control__button--disabled]': 'disabled',\n '[class.sapphire-segmented-control__button--active]': 'checked',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n },\n standalone: false,\n})\nexport class SegmentedRadioComponent extends RadioBase {}\n","<label [for]=\"inputId\">\n <input\n #input\n _spUseComponentStyles\n class=\"sapphire-segmented-control__radio-input\"\n type=\"radio\"\n [id]=\"inputId\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n (change)=\"_onInputInteraction($event)\"\n [attr.autofocus]=\"autofocus ? true : null\"\n />\n <ng-content></ng-content>\n</label>\n","import { NgModule } from '@angular/core';\nimport { RadioComponent } from './radio.component';\nimport { RadioGroupComponent } from './radio-group.component';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireFieldModule } from '../../field/src/field.module';\nimport { LabelComponent } from '../../label/public_api';\nimport { SegmentedRadioGroupComponent } from './segmented/segmented-radio-group.component';\nimport { SegmentedRadioComponent } from './segmented/segmented-radio.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@NgModule({\n declarations: [\n RadioComponent,\n RadioGroupComponent,\n SegmentedRadioComponent,\n SegmentedRadioGroupComponent,\n ],\n imports: [\n CommonModule,\n LabelComponent,\n A11yModule,\n SapphireFieldModule,\n UseComponentStyles,\n ],\n exports: [\n RadioComponent,\n RadioGroupComponent,\n SegmentedRadioComponent,\n SegmentedRadioGroupComponent,\n SapphireFieldModule,\n ],\n})\nexport class SapphireRadioModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/radio.component';\nexport * from './src/radio-group.component';\nexport * from './src/radio.module';\nexport * from './src/segmented/segmented-radio.component';\nexport * from './src/segmented/segmented-radio-group.component';\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType, PositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { SapphireOverlay } from '../../theme/src/sapphire-overlay.service';\nimport { ThemeBaseDirective } from '../../theme/src/theme-base.directive';\n\nexport interface ModalOptions {\n /**\n * Whether to close the dialog when the backdrop is clicked/touched.\n * @default false\n */\n dismissable?: boolean;\n /**\n * Whether pressing the escape key to close the dialog should be disabled.\n * @default false\n */\n keyboardDismissDisabled?: boolean;\n\n /**\n * The theme to apply on the opened modal. It allows for injecting and\n * passing along the \"current\" theme, when `ModalService` is used in a\n * trigger component.\n */\n theme?: ThemeBaseDirective;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n constructor(private cdkDialog: Dialog, private overlay: SapphireOverlay) {}\n\n private open<R = unknown, C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {},\n positionStrategy?: PositionStrategy\n ): DialogRef<R, C> {\n const dialogRef: DialogRef<R, C> = this.cdkDialog.open(\n componentOrTemplateRef,\n {\n /**\n * There is no separate option for dismiss-ability by mouse and\n * keyboard. So, we disable both via `disableClose`, and set up our own\n * listeners below.\n * Another reason we need to handle escapes ourself is an extra check on\n * event target being located within the dialog. To avoid Escapes pressed\n * on popovers closing the dialog as well.\n */\n disableClose: true,\n backdropClass: [\n 'cdk-overlay-backdrop-noop-animation', // To disable the default cdk animation\n 'sapphire-backdrop',\n ],\n positionStrategy,\n }\n );\n this.overlay.applyTheme(dialogRef.overlayRef, options.theme);\n const close = dialogRef.close.bind(dialogRef);\n\n (dialogRef as any).immediateClose = close;\n\n (dialogRef as any).closing = false;\n\n dialogRef.close = () => {\n (dialogRef as any).closing = true;\n dialogRef?.overlayRef.backdropElement?.classList.add(\n 'sapphire-backdrop--exiting'\n );\n dialogRef?.overlayRef.backdropElement?.addEventListener(\n 'animationend',\n () => {\n close();\n (dialogRef as any).closing = false;\n },\n { once: true }\n );\n };\n\n dialogRef.backdropClick.subscribe(() => {\n if (options?.dismissable) {\n dialogRef.close(undefined, { focusOrigin: 'mouse' });\n }\n });\n\n dialogRef.keydownEvents.subscribe((event) => {\n if (\n event.code === 'Escape' &&\n !options.keyboardDismissDisabled &&\n !hasModifierKey(event) &&\n event.target instanceof Node &&\n dialogRef.overlayRef.hostElement.contains(event.target)\n ) {\n event.preventDefault();\n dialogRef.close(undefined, { focusOrigin: 'keyboard' });\n }\n });\n\n return dialogRef;\n }\n\n openDialog<C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {}\n ) {\n return this.open(componentOrTemplateRef, options);\n }\n\n openPanel<C = unknown>(\n componentOrTemplateRef: ComponentType<C> | TemplateRef<C>,\n options: ModalOptions = {}\n ) {\n return this.open(\n componentOrTemplateRef,\n options,\n this.overlay.position().global().right()\n );\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\n\n/**\n * Monitors host element's **scrolled** and **scrollable** state.\n */\n@Directive({\n selector: '[spScrollMonitor]',\n exportAs: 'spScrollMonitor',\n standalone: true,\n})\nexport class ScrollMonitorDirective implements OnInit, OnDestroy {\n scrolled = false;\n scrollable = false;\n\n @Output('spScrollMonitor')\n change = new EventEmitter<{\n scrollable: boolean;\n scrolled: boolean;\n }>();\n private resizeObserver?: ResizeObserver;\n private subscription?: Subscription;\n constructor(private elementRef: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.update();\n this.subscription = fromEvent(\n this.elementRef.nativeElement,\n 'scroll'\n ).subscribe(() => {\n this.update();\n });\n /**\n * ResizeObserver is not supported by IE but there is a polyfill for it\n * https://www.npmjs.com/package/resize-observer-polyfill\n * https://github.com/que-etc/resize-observer-polyfill\n * so it is safe to use it, in case we need to support IE as well.\n */\n this.resizeObserver = new ResizeObserver(() => {\n this.update();\n });\n this.resizeObserver.observe(this.elementRef.nativeElement);\n });\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.unobserve(this.elementRef.nativeElement);\n this.subscription?.unsubscribe();\n }\n\n private update() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const scrollable = element?.scrollHeight > element.offsetHeight;\n const scrolled = element?.scrollTop > 0;\n\n if (scrollable !== this.scrollable || this.scrolled !== scrolled) {\n this.ngZone.run(() => {\n this.scrolled = scrolled;\n this.scrollable = scrollable;\n this.change.emit({ scrollable, scrolled });\n });\n }\n }\n}\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { Directive, HostListener, Optional } from '@angular/core';\nimport { TranslateService } from '../../../common/translate.service';\nimport translations from '../../i18n';\n\n@Directive({\n selector: 'button[spModalCloseButton]',\n host: {\n '[attr.aria-label]': 'dismissLabel',\n },\n standalone: false,\n})\nexport class ModalCloseButtonDirective {\n constructor(\n t: TranslateService,\n @Optional() private dialogRef: DialogRef | null\n ) {\n this.dismissLabel = t.translate('dismiss', translations);\n }\n\n dismissLabel: string;\n\n @HostListener('click')\n close() {\n this.dialogRef?.close();\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { iconClose } from '@danske/sapphire-icons/js';\nimport { AutoId } from '../../../common/auto-id.decorator';\nimport { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\nimport { IconRegistry } from '../../../icon/public_api';\n\n/**\n * Marks a piece of UI as modal header (eg. dialog, panel).\n * Use only for **custom** header. For standard header (a heading,\n * optional subheading and a close button),\n * use {@link ModalHeaderComponent sp-modal-header} instead.\n */\n@Directive({\n selector: '[spModalHeader]',\n standalone: true, // need this to use as host directive\n})\nexport class ModalHeaderDirective {\n @HostBinding('id')\n @Input()\n @AutoId()\n id = '';\n}\n\n/**\n * Standard modal header component (eg. dialog, panel), which consists\n * of a heading (the content), optional subheading and a close button.\n * For a custom header, use\n * {@link ModalHeaderDirective spModalHeader attribute directive}.\n */\n@Component({\n selector: 'sp-modal-header',\n templateUrl: './modal-header.component.html',\n hostDirectives: [\n { directive: ModalHeaderDirective, inputs: ['id'] },\n UseComponentStyles,\n ],\n host: {\n class: 'sapphire-modal-layout__header-container',\n },\n standalone: false,\n})\nexport class ModalHeaderComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcon(iconClose);\n }\n\n @Input()\n subheading?: string;\n\n @Input()\n @CoerceBoolean\n hideCloseButton?: BooleanInput = false;\n\n @Output('closeClicked')\n closeEventEmitter = new EventEmitter();\n\n close(event: MouseEvent) {\n this.closeEventEmitter.emit(event);\n }\n}\n","<div class=\"sapphire-modal-layout__header\" _spUseComponentStyles>\n <ng-content select=\"[spModalBackButton]\"></ng-content>\n\n <div class=\"sapphire-modal-layout__heading-container\" _spUseComponentStyles>\n <h4 sp-heading><ng-content></ng-content></h4>\n <div\n *ngIf=\"!!subheading\"\n class=\"sapphire-modal-layout__subheading\"\n _spUseComponentStyles\n >\n {{ subheading }}\n </div>\n </div>\n\n <button\n *ngIf=\"!hideCloseButton\"\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"close($event)\"\n spModalCloseButton\n >\n <sp-icon name=\"close\"></sp-icon>\n </button>\n</div>\n","import {\n CdkDialogContainer,\n DialogConfig,\n DialogRef,\n DialogRole,\n} from '@angular/cdk/dialog';\nimport {\n AfterContentChecked,\n Component,\n ContentChild,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n} from '@angular/core';\nimport { ModalHeaderDirective } from './layout/modal-header.component';\n\n@Component({\n template: '',\n host: {\n // aria attributes neutralized here, since they are ported to the container\n // Read more about it in implementation-decisions.md\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.role]': 'null',\n },\n standalone: false,\n})\nexport abstract class ModalBaseComponent\n implements OnChanges, AfterContentChecked, OnDestroy\n{\n // Accessibility inputs. We need them to sync them with CdkDialogContainer.\n // Read more about it in implementation-decisions.md\n /**\n * Defines a string value that labels the current element.\n */\n @Input('aria-label')\n ariaLabel?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n @Input('aria-labelledby')\n ariaLabelledBy?: string;\n /**\n * Identifies the element (or elements) that describes the object.\n */\n @Input('aria-describedby')\n ariaDescribedBy?: string;\n /**\n * The accessibility role for the dialog.\n */\n @Input('role')\n role?: DialogRole;\n\n protected contentInitialized = false;\n\n @ContentChild(ModalHeaderDirective)\n protected header?: ModalHeaderDirective;\n\n constructor(protected dialogRef: DialogRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n const containerInstance = this.dialogRef.containerInstance;\n // Syncing some dialog config properties, when corresponding inputs are changed.\n // Read more about it in implementation-decisions.md\n if (containerInstance instanceof CdkDialogContainer) {\n // Promise.resolve to avoid \"Expression has changed after it was\n // checked\" error, which can happen in some cases.\n Promise.resolve().then(() => {\n const keys: Array<\n keyof Pick<\n DialogConfig,\n 'role' | 'ariaLabel' | 'ariaLabelledBy' | 'ariaDescribedBy'\n >\n > = ['ariaLabel', 'ariaLabelledBy', 'ariaDescribedBy', 'role'];\n keys\n .filter((key) => changes[key as string])\n .forEach((key) => {\n const value = this[key];\n containerInstance._config[key] = value;\n // ariaLabeledBy is for some reason treated differently in\n // CdkDialogContainer, and is read off the instance itself, instead\n // of the config object.\n if (key === 'ariaLabelledBy' && value !== undefined) {\n containerInstance._ariaLabelledBy = value;\n }\n });\n });\n }\n }\n\n ngAfterContentChecked(): void {\n const containerInstance = this.dialogRef.containerInstance;\n const headerId = this.header?.id;\n if (\n headerId &&\n !this.ariaLabel &&\n !this.ariaLabelledBy &&\n containerInstance instanceof CdkDialogContainer &&\n headerId !== containerInstance._ariaLabelledBy\n ) {\n Promise.resolve().then(() => {\n containerInstance._ariaLabelledBy = headerId;\n });\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n\n ngOnDestroy() {\n (this.dialogRef as any).immediateClose();\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { ModalBaseComponent } from '../modal-base.component';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\nimport { CoerceBoolean } from '../../../common/coerce-boolean.decorator';\nimport { BooleanInput } from '@angular/cdk/coercion';\n\n/**\n * Dialogs focus the user's attention exclusively on one task or piece of\n * information via a dialog box that sits on top of the page content.\n */\n@Component({\n selector: 'sp-dialog',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-dialog',\n '[class.sapphire-dialog--xs]': \"size === 'xs'\",\n '[class.sapphire-dialog--sm]': \"size === 'sm'\",\n '[class.sapphire-dialog--md]': \"size === 'md'\",\n '[class.sapphire-dialog--lg]': \"size === 'lg'\",\n '[class.sapphire-dialog--padded]': 'padded === true',\n '[class.sapphire-dialog--exiting]': 'dialogRef.closing',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./dialog.component.scss'],\n standalone: false,\n})\nexport class DialogComponent extends ModalBaseComponent {\n /**\n * Dialog size, constraining the width of the dialog.\n */\n @Input()\n size: 'xs' | 'sm' | 'md' | 'lg' = 'sm';\n\n @Input()\n @CoerceBoolean\n padded: BooleanInput = false;\n\n constructor(protected dialogRef: DialogRef) {\n super(dialogRef);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ScrollMonitorDirective } from '../../../common/scroll-monitor.directive';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-modal-body',\n hostDirectives: [ScrollMonitorDirective, UseComponentStyles],\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-modal-layout__body',\n '[class.sapphire-modal-layout__body--no-padding]': 'noPadding',\n '[class.sapphire-modal-layout__body--scrollable]':\n '_scrollMonitor.scrollable',\n '[class.sapphire-modal-layout__body--scrolled]': '_scrollMonitor.scrolled',\n },\n standalone: false,\n})\nexport class ModalBodyComponent {\n @Input()\n get noPadding(): boolean {\n return this._noPadding;\n }\n set noPadding(value: BooleanInput) {\n this._noPadding = coerceBooleanProperty(value);\n }\n private _noPadding: boolean = false;\n\n constructor(public _scrollMonitor: ScrollMonitorDirective) {}\n}\n","import { Component, Directive } from '@angular/core';\nimport { UseComponentStyles } from '../../../common/sapphire-view-encapsulation';\n\n/**\n * Marks a piece of UI as modal footer (eg. dialog, panel). Use only for\n * **custom** footer. For a standard modal footer with default padding,\n * use {@link ModalFooterComponent sp-modal-footer} instead.\n */\n@Directive({\n selector: '[spModalFooter]',\n host: {\n class: 'sapphire-modal-layout__footer-container',\n },\n hostDirectives: [UseComponentStyles],\n standalone: true,\n})\nexport class ModalFooterDirective {}\n\n/**\n * Standard modal footer component (eg. dialog, panel) with default\n * padding. For a custom footer, use\n * {@link ModalFooterDirective spModalFooter attribute directive}.\n */\n@Component({\n selector: 'sp-modal-footer',\n templateUrl: './modal-footer.component.html',\n hostDirectives: [{ directive: ModalFooterDirective }],\n standalone: false,\n})\nexport class ModalFooterComponent {\n constructor() {}\n}\n","<div class=\"sapphire-modal-layout__footer\" _spUseComponentStyles>\n <ng-content></ng-content>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ModalOptions, ModalService } from './modal.service';\nimport { ThemeBaseDirective } from '../../theme/public_api';\n\n/**\n * Makes a clickable element a trigger for a modal\n */\n@Directive({\n host: {\n '[attr.aria-controls]': 'dialogRef?.id ?? null',\n },\n standalone: true,\n})\nexport abstract class ModalTriggerDirective implements ModalOptions {\n protected templateRef: TemplateRef<unknown> | null = null;\n protected dialogRef?: DialogRef;\n\n get dismissable(): boolean {\n return this._dismissable;\n }\n set dismissable(value: BooleanInput) {\n this._dismissable = coerceBooleanProperty(value);\n }\n private _dismissable: boolean = false;\n\n get keyboardDismissDisabled(): boolean {\n return this._keyboardDismissDisabled;\n }\n set keyboardDismissDisabled(value: BooleanInput) {\n this._keyboardDismissDisabled = coerceBooleanProperty(value);\n }\n private _keyboardDismissDisabled: boolean = false;\n\n protected modalService = inject(ModalService);\n public readonly theme = inject(ThemeBaseDirective);\n\n abstract open(): void;\n\n close() {\n this.dialogRef?.close();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ModalTriggerDirective } from '../modal-trigger.directive';\n\n/**\n * Makes a clickable element a trigger for a dialog.\n */\n@Directive({\n selector: '[spDialogTriggerFor]',\n inputs: [\n 'dismissable: spDialogDismissable',\n 'keyboardDismissDisabled: spDialogDisableKeyboardDismissable',\n 'templateRef: spDialogTriggerFor',\n ],\n exportAs: 'spDialogTrigger',\n standalone: false,\n})\nexport class DialogTriggerDirective extends ModalTriggerDirective {\n @HostListener('click')\n open() {\n if (this.templateRef) {\n this.dialogRef = this.modalService.openDialog(this.templateRef, this);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-modal-layout',\n template: '<ng-content></ng-content>',\n templateUrl: './modal-layout.component.html',\n host: {\n class: 'sapphire-modal-layout',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./modal-layout.component.scss'],\n standalone: false,\n})\nexport class ModalLayoutComponent {}\n","<ng-content select=\"sp-modal-header, [spModalHeader]\"></ng-content>\n<ng-content select=\"sp-modal-body\"></ng-content>\n<ng-content select=\"sp-modal-footer, [spModalFooter]\"></ng-content>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { DialogComponent } from './dialog.component';\n\n/**\n * A wrapper around `<sp-dialog>` which gives you a simple way of creating a\n * confirmation dialog which is aligned with Sapphire design vision.\n */\n@Component({\n selector: 'sp-confirmation-dialog',\n templateUrl: 'confirmation-dialog.component.html',\n exportAs: 'spConfirmationDialog',\n standalone: false,\n})\nexport class ConfirmationDialogComponent {\n /**\n * Dialog heading text. Passed to the wrapped `sp-dialog`\n */\n @Input()\n heading: string = '';\n\n /**\n * The label of the primary action button in the dialog footer.\n */\n @Input()\n primaryActionLabel: string = '';\n\n /**\n * The label of the secondary action button in the dialog footer.\n */\n @Input()\n secondaryActionLabel: string = '';\n\n /**\n * Emitted when the primary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n primaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Emitted when the secondary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n secondaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\">\n <sp-modal-layout>\n <sp-modal-header *ngIf=\"heading\" hideCloseButton>{{\n heading\n }}</sp-modal-header>\n <sp-modal-body><ng-content></ng-content></sp-modal-body>\n <sp-modal-footer>\n <sp-button-group>\n <button\n sp-button\n variant=\"secondary\"\n (click)=\"dialog && secondaryActionSelected.emit({dialog})\"\n >\n {{ secondaryActionLabel }}\n </button>\n <button\n sp-button\n variant=\"primary\"\n (click)=\"dialog && primaryActionSelected.emit({dialog})\"\n >\n {{ primaryActionLabel }}\n </button>\n </sp-button-group>\n </sp-modal-footer>\n </sp-modal-layout>\n</sp-dialog>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { DialogComponent } from './dialog.component';\n\n/**\n * A wrapper around `<sp-dialog>` which gives you a simple way of creating a\n * danger dialog which is aligned with Sapphire design vision.\n */\n@Component({\n selector: 'sp-danger-dialog',\n templateUrl: './danger-dialog.component.html',\n exportAs: 'spDangerDialog',\n standalone: false,\n})\nexport class DangerDialogComponent {\n /**\n * Dialog heading text. Passed to the wrapped `sp-dialog`\n */\n @Input()\n heading: string = '';\n\n /**\n * The label of the primary action button in the dialog footer.\n */\n @Input()\n primaryActionLabel: string = '';\n\n /**\n * The label of the secondary action button in the dialog footer.\n */\n @Input()\n secondaryActionLabel: string = '';\n\n /**\n * Emitted when the primary action is triggered. Use `$event.dialog` to access\n * the wrapped dialog in the event handler, and close the dialog by calling\n * `$event.dialog.close()`\n */\n @Output()\n primaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Emitted when the secondary action is triggered. Use `$event.dialog` to\n * access the wrapped dialog in the event handler, and close the dialog by\n * calling\n * `$event.dialog.close()`\n */\n @Output()\n secondaryActionSelected = new EventEmitter<{ dialog: DialogComponent }>();\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\">\n <sp-modal-layout>\n <sp-modal-header *ngIf=\"heading\" hideCloseButton>{{\n heading\n }}</sp-modal-header>\n <sp-modal-body><ng-content></ng-content></sp-modal-body>\n <sp-modal-footer>\n <sp-button-group>\n <button\n sp-button\n variant=\"secondary\"\n (click)=\"dialog && secondaryActionSelected.emit({dialog})\"\n >\n {{ secondaryActionLabel }}\n </button>\n <button\n sp-button\n variant=\"danger\"\n (click)=\"dialog && primaryActionSelected.emit({dialog})\"\n >\n {{ primaryActionLabel }}\n </button>\n </sp-button-group>\n </sp-modal-footer>\n </sp-modal-layout>\n</sp-dialog>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ICON_SIZE_PROVIDER } from '../../../icon/public_api';\nimport { DialogComponent } from './dialog.component';\n\ntype AlertDialogVariant =\n | 'success'\n | 'error'\n | 'warning'\n | 'informative'\n | 'neutral';\n\n@Directive({\n selector: '[spAlertDialogIcon]',\n})\nexport class AlertDialogIcon {}\n\n@Directive({\n selector: '[spAlertDialogHeading]',\n})\nexport class AlertDialogHeading {}\n\n@Directive({\n selector: '[spAlertDialogBody]',\n})\nexport class AlertDialogBody {}\n\n@Directive({\n selector: '[spAlertDialogActions]',\n})\nexport class AlertDialogActions {}\n\n/**\n * Implements layout and style of the alert dialog\n */\n@Component({\n selector: 'sp-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n providers: [\n {\n provide: ICON_SIZE_PROVIDER,\n useValue: { size: 'xl' },\n },\n ],\n standalone: false,\n})\nexport class AlertDialogComponent implements AfterContentInit {\n @Input()\n variant?: AlertDialogVariant;\n\n @Input()\n /**\n * @default \"horizontal\"\n */\n actionsOrientation?: 'vertical' | 'horizontal' = 'horizontal';\n\n @ContentChild(AlertDialogIcon)\n icon?: AlertDialogIcon;\n\n @ContentChild(AlertDialogHeading)\n heading?: AlertDialogHeading;\n\n @ContentChild(AlertDialogBody)\n body?: AlertDialogBody;\n\n @ContentChildren(AlertDialogActions)\n actions?: AlertDialogActions;\n\n ngAfterContentInit(): void {\n if (!this.heading) {\n throw new Error(\n 'Missing heading for sp-alert-dialog. Render <sp-alert-dialog-heading>...</sp-alert-dialog-heading> inside sp-alert-dialog'\n );\n }\n\n if (!this.body) {\n throw new Error(\n 'Missing body for sp-alert-dialog. Render <sp-alert-dialog-body>...</sp-alert-dialog-body> inside sp-alert-dialog'\n );\n }\n\n if (!this.actions) {\n throw new Error(\n 'Missing actions for sp-alert-dialog. Render <sp-alert-dialog-actions>...</sp-alert-dialog-actions> inside sp-alert-dialog'\n );\n }\n }\n\n /**\n * Reference to the wrapped `sp-dialog` component.\n */\n @ViewChild(DialogComponent)\n dialog?: DialogComponent;\n}\n","<sp-dialog role=\"alertdialog\" size=\"xs\" padded>\n <sp-feedback-message [variant]=\"variant\" style=\"width: 100%\">\n <ng-container *ngIf=\"icon !== undefined\" spFeedbackMessageIcon>\n <ng-content select=\"[spAlertDialogIcon]\"></ng-content>\n </ng-container>\n <sp-feedback-message-heading spModalHeader>\n <ng-content select=\"[spAlertDialogHeading]\"></ng-content>\n </sp-feedback-message-heading>\n <sp-feedback-message-body>\n <ng-content select=\"[spAlertDialogBody]\"></ng-content>\n </sp-feedback-message-body>\n <sp-feedback-message-actions style=\"width: 100%\">\n <sp-button-group\n stretch=\"autoVertical\"\n [orientation]=\"actionsOrientation\"\n >\n <ng-content select=\"[spAlertDialogActions]\"></ng-content>\n </sp-button-group>\n </sp-feedback-message-actions>\n </sp-feedback-message>\n</sp-dialog>\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { Component, Input } from '@angular/core';\nimport { ModalBaseComponent } from '../modal-base.component';\nimport { UseComponentStylesOnHost } from '../../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-panel',\n template: '<ng-content></ng-content>',\n host: {\n class: 'sapphire-panel',\n '[class.sapphire-panel--sm]': 'size === \"sm\"',\n '[class.sapphire-panel--visible]': '!dialogRef.closing',\n },\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./panel.component.scss'],\n standalone: false,\n})\nexport class PanelComponent extends ModalBaseComponent {\n /**\n * Panel size, constraining the width of the panel.\n * @default 'lg'\n */\n @Input()\n size: 'sm' | 'lg' = 'lg';\n\n constructor(protected dialogRef: DialogRef) {\n super(dialogRef);\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ModalTriggerDirective } from '../modal-trigger.directive';\n\n/**\n * Makes a clickable element a trigger for a panel.\n */\n@Directive({\n selector: '[spPanelTriggerFor]',\n inputs: [\n 'dismissable: spPanelDismissable',\n 'keyboardDismissDisabled: spPanelDisableKeyboardDismissable',\n 'templateRef: spPanelTriggerFor',\n ],\n exportAs: 'spPanelTrigger',\n standalone: false,\n})\nexport class PanelTriggerDirective extends ModalTriggerDirective {\n @HostListener('click')\n open() {\n if (!this.templateRef) {\n throw new Error('Template referenced by modal trigger not found.');\n }\n this.dialogRef = this.modalService.openPanel(this.templateRef, this);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[spModalBackButton]',\n standalone: false,\n})\nexport class ModalBackButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SapphireThemeModule } from '../../theme/public_api';\nimport { SapphireTypographyModule } from '../../typography/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireButtonModule } from '../../button/public_api';\nimport { ScrollMonitorDirective } from '../../common/scroll-monitor.directive';\nimport { DialogComponent } from './dialog/dialog.component';\nimport {\n ModalHeaderComponent,\n ModalHeaderDirective,\n} from './layout/modal-header.component';\nimport { ModalBodyComponent } from './layout/modal-body.component';\nimport {\n ModalFooterComponent,\n ModalFooterDirective,\n} from './layout/modal-footer.component';\nimport { DialogTriggerDirective } from './dialog/dialog-trigger.directive';\nimport { ConfirmationDialogComponent } from './dialog/confirmation-dialog.component';\nimport { DangerDialogComponent } from './dialog/danger-dialog.component';\nimport {\n AlertDialogActions,\n AlertDialogBody,\n AlertDialogComponent,\n AlertDialogHeading,\n AlertDialogIcon,\n} from './dialog/alert-dialog.component';\nimport { PanelComponent } from './panel/panel.component';\nimport { PanelTriggerDirective } from './panel/panel-trigger.directive';\nimport { ModalLayoutComponent } from './layout/modal-layout.component';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { ModalBackButtonDirective } from './layout/modal-back-button.directive';\nimport { ModalCloseButtonDirective } from './layout/modal-close-button.directive';\nimport { SapphireFeedbackMessageModule } from '../../feedback-message/public_api';\n\n@NgModule({\n declarations: [\n ModalLayoutComponent,\n ModalHeaderComponent,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseButtonDirective,\n ModalBackButtonDirective,\n DialogComponent,\n DialogTriggerDirective,\n ConfirmationDialogComponent,\n DangerDialogComponent,\n AlertDialogComponent,\n AlertDialogIcon,\n AlertDialogBody,\n AlertDialogHeading,\n AlertDialogActions,\n PanelComponent,\n PanelTriggerDirective,\n ],\n imports: [\n CommonModule,\n DialogModule,\n SapphireThemeModule,\n SapphireTypographyModule,\n SapphireIconModule,\n SapphireButtonModule,\n SapphireFeedbackMessageModule,\n ScrollMonitorDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n UseComponentStyles,\n ],\n exports: [\n ModalLayoutComponent,\n ModalHeaderComponent,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalHeaderDirective,\n ModalFooterDirective,\n ModalBackButtonDirective,\n ModalCloseButtonDirective,\n DialogComponent,\n DialogTriggerDirective,\n ConfirmationDialogComponent,\n DangerDialogComponent,\n AlertDialogComponent,\n AlertDialogIcon,\n AlertDialogBody,\n AlertDialogHeading,\n AlertDialogActions,\n PanelComponent,\n PanelTriggerDirective,\n ],\n})\nexport class SapphireModalModule {}\n","import { AfterContentInit, Directive, Input } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-text',\n host: {\n class: 'sapphire-skeleton--text',\n '[style.width]': '_calculatedWidth',\n },\n standalone: false,\n})\nexport class SkeletonTextDirective implements AfterContentInit {\n @Input()\n width?: string;\n\n @Input()\n minWidth?: number = 50;\n\n @Input()\n maxWidth?: number = 100;\n\n @Input()\n widthType?: 'randomPct' | 'randomPx' | 'fixed' = 'randomPct';\n\n _calculatedWidth = '0';\n\n private calculateWidth() {\n if (this.widthType === 'fixed') {\n return this.width || '0';\n }\n if (!this.minWidth || !this.maxWidth) return '0';\n const calculatedWidth =\n Math.random() * (this.maxWidth - this.minWidth) + this.minWidth;\n return `${calculatedWidth}${this.widthType === 'randomPct' ? '%' : 'px'}`;\n }\n\n ngAfterContentInit(): void {\n this._calculatedWidth = this.calculateWidth();\n }\n}\n","export const getAnimationDelay = (order?: number) =>\n order ? `${order * 80}ms` : undefined;\n","import { Component, Input } from '@angular/core';\nimport { ThemeCheckDirective } from '../../theme/src/theme-check.directive';\nimport { getAnimationDelay as utilGetAnimationDelay } from './util';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-skeleton-block, sp-skeleton-circle, sp-skeleton-text',\n template: '',\n styleUrls: ['./skeleton.component.scss'],\n host: {\n class: 'sapphire-skeleton',\n '[style.animation-delay]': '_getAnimationDelay(index)',\n },\n hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost],\n standalone: false,\n})\nexport class SkeletonComponent {\n /**\n * The index of this element in the container that renders skeleton pieces.\n * Used to harmonize the background animation across the skeleton pieces.\n */\n @Input()\n index?: number = 0;\n\n _getAnimationDelay = utilGetAnimationDelay;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-circle',\n host: {\n class: 'sapphire-skeleton--circle',\n },\n standalone: false,\n})\nexport class SkeletonCircleDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'sp-skeleton-block',\n host: {\n class: 'sapphire-skeleton--block',\n },\n standalone: false,\n})\nexport class SkeletonBlockDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonTextDirective } from './skeleton-text.directive';\nimport { SkeletonComponent } from './skeleton.component';\nimport { SkeletonCircleDirective } from './skeleton-circle.directive';\nimport { SkeletonBlockDirective } from './skeleton-block.directive';\n\n@NgModule({\n declarations: [\n SkeletonComponent,\n SkeletonTextDirective,\n SkeletonCircleDirective,\n SkeletonBlockDirective,\n ],\n imports: [CommonModule],\n exports: [\n SkeletonComponent,\n SkeletonTextDirective,\n SkeletonCircleDirective,\n SkeletonBlockDirective,\n ],\n})\nexport class SapphireSkeletonModule {}\n","import { MessageDictionary } from '@internationalized/message';\nimport da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nconst translations = new MessageDictionary(\n {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n },\n 'en-US'\n);\n\nexport default translations;\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport translations from '../i18n';\nimport { TranslateService } from '../../common/translate.service';\n\ntype PageSlot = { type: 'ellipsis' } | { type: 'page'; page: number };\n\ninterface PageSelectionOptions {\n currentPage: number;\n totalPageCount: number;\n siblingCount?: number;\n boundaryCount?: number;\n}\n\n@Component({\n selector: 'sp-page-selection-row',\n templateUrl: './page-selection-row.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false,\n})\nexport class PageSelectionRowComponent implements OnChanges {\n t: TranslateService;\n\n constructor(t: TranslateService) {\n this.t = t;\n }\n\n @Input() currentPage: number = 0;\n @Input() totalPageCount: number = 0;\n @Input() siblingCount: number = 1;\n @Input() boundaryCount: number = 1;\n @Output() pageChange = new EventEmitter<number>();\n\n slots: PageSlot[] = [];\n\n onPageSelect(page: number) {\n this.pageChange.emit(page);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.currentPage ||\n changes.totalPageCount ||\n changes.siblingCount ||\n changes.boundaryCount\n ) {\n this.slots = this.pageSlots({\n currentPage: this.currentPage,\n totalPageCount: this.totalPageCount,\n siblingCount: this.siblingCount,\n boundaryCount: this.boundaryCount,\n });\n }\n }\n\n getAriaLabel(slot: PageSlot): string {\n if (slot.type === 'ellipsis') {\n return 'ellipsis';\n } else {\n return this.t\n .stringFormatter(translations)\n .format(slot.page === this.currentPage ? 'page-number' : 'go-to-page', {\n value: (slot.page + 1).toString(),\n }) as string;\n }\n }\n\n // Common code with React\n pageSlots = (params: PageSelectionOptions): Array<PageSlot> =>\n this.intersperse<Array<PageSlot>>(\n this.visiblePages(params).map((pageGroup) =>\n pageGroup.map((page) => ({ type: 'page', page }))\n ),\n [{ type: 'ellipsis' }]\n ).flatMap((pageSlot) => pageSlot);\n\n visiblePages = (params: PageSelectionOptions): Array<Array<number>> => {\n const { currentPage, totalPageCount, siblingCount, boundaryCount } =\n this.normalizePageValues(params);\n\n /**\n * NOTE for maintainers.\n *\n * Below could be written as \"boundaryCount * 2 + siblingCount * 2 + 3)\"\n * but I wanted to better show what each number represents.\n *\n * Example where boundary is 1 and sibling is 1:\n *\n * 1 ... 5 6 7 ... 10\n * boundary ellipsis sibling selectedPage sibling ellipsis boundary\n */\n const maxPageSlots =\n boundaryCount +\n 1 /* ellipsis */ +\n (siblingCount + 1 + siblingCount) /* visible middle range */ +\n 1 /* ellipsis */ +\n boundaryCount;\n\n const pages = this.arrayOfNumbers({ from: 0, count: totalPageCount });\n\n if (pages.length <= maxPageSlots) {\n return [pages]; // eg: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]\n } else {\n const halfSlotsCount = Math.ceil(maxPageSlots / 2);\n const currentPageIndex = pages.findIndex((page) => page === currentPage);\n\n if (pages.slice(0, halfSlotsCount).includes(currentPage)) {\n return [\n pages.slice(0, halfSlotsCount + siblingCount),\n boundaryCount === 0 ? [] : pages.slice(-boundaryCount),\n ].slice(0, maxPageSlots); // eg: [[1, 2, 3, 4, 5], [10]]\n } else if (pages.slice(-halfSlotsCount).includes(currentPage)) {\n return [\n pages.slice(0, boundaryCount),\n pages.slice(-halfSlotsCount - siblingCount),\n ].slice(0, maxPageSlots); // eg: [[1], [6, 7, 8, 9, 10]]\n } else {\n return [\n pages.slice(0, boundaryCount),\n pages.slice(\n currentPageIndex - siblingCount,\n currentPageIndex + siblingCount + 1\n ),\n boundaryCount === 0 ? [] : pages.slice(-boundaryCount),\n ].slice(0, maxPageSlots); // eg: [[1], [4, 5, 6], [10]]\n }\n }\n };\n\n normalizePageValues = ({\n currentPage,\n totalPageCount,\n siblingCount = 1,\n boundaryCount = 1,\n }: PageSelectionOptions): Required<PageSelectionOptions> => ({\n totalPageCount: Math.max(totalPageCount, 1),\n currentPage: Math.min(Math.max(currentPage, 0), totalPageCount - 1),\n boundaryCount: Math.max(boundaryCount, 0),\n siblingCount: Math.max(siblingCount, 0),\n });\n\n arrayOfNumbers = ({\n from,\n count,\n }: {\n from: number;\n count: number;\n }): Array<number> =>\n Array.from(new Array(count)).map((_, index) => from + index);\n\n intersperse = <T>(array: T[], separator: T): T[] =>\n array.reduce((a: T[], v: T) => [...a, v, separator], []).slice(0, -1);\n}\n","<sp-button-group orientation=\"horizontal\" spacing=\"xs\">\n <ng-container *ngFor=\"let slot of slots\">\n <div *ngIf=\"slot.type === 'ellipsis'\" class=\"sapphire-pagination__ellipsis\">\n ...\n </div>\n <button\n *ngIf=\"slot.type === 'page'\"\n sp-icon-button\n [variant]=\"slot.page === currentPage ? 'secondary' : 'tertiary'\"\n size=\"md\"\n (click)=\"onPageSelect(slot.page)\"\n [attr.aria-label]=\"getAriaLabel(slot)\"\n [ngStyle]=\"{ 'z-index': slot.page !== currentPage ? 1 : null }\"\n >\n {{ slot.page + 1 }}\n </button>\n </ng-container>\n</sp-button-group>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { iconChevronLeft, iconChevronRight } from '@danske/sapphire-icons/js';\nimport { IconRegistry } from '../../icon/public_api';\n\nexport class SapphirePaginationChange {\n constructor(\n /** The new page index */\n public readonly page: number,\n /** The new page size */\n public readonly pageSize: number\n ) {}\n}\n\n@Component({\n selector: 'sp-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false,\n})\nexport class PaginationComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([iconChevronLeft, iconChevronRight]);\n }\n\n @Input()\n pageSize: number = 10;\n\n @Input()\n itemCount: number = 0;\n\n @Input()\n page: number = 0;\n\n @Input()\n pageSizeOptions?: number[];\n\n /**\n * Allow selection of individual pages\n * @default false\n */\n @Input()\n allowPageSelection: boolean = false;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean = false;\n\n get startItemIndex(): number {\n return this.page * this.pageSize + 1;\n }\n\n get endItemIndex(): number {\n return Math.min(this.page * this.pageSize + this.pageSize, this.itemCount);\n }\n\n @Output() readonly valueChange = new EventEmitter<SapphirePaginationChange>();\n\n _onPageSizeChange(value: string) {\n const newPageSize = parseInt(value, 10);\n\n /**\n * Avoid going to invalid page when switching\n * to a different page size\n */\n const firstItemIndex = this.pageSize * this.page + 1;\n const newPage = Math.ceil(firstItemIndex / newPageSize) - 1;\n\n this.page = newPage;\n this.pageSize = newPageSize;\n this.valueChange.emit({ page: newPage, pageSize: newPageSize });\n }\n\n _onPageChange(direction: 'previous' | 'next') {\n const newPage = this.page + (direction === 'previous' ? -1 : 1);\n this.page = newPage;\n this.valueChange.emit({\n page: newPage,\n pageSize: this.pageSize,\n });\n }\n\n _onPageSelect(index: number) {\n this.page = index;\n this.valueChange.emit({\n page: this.page,\n pageSize: this.pageSize,\n });\n }\n\n _isNextPageButtonDisabled() {\n return this.itemCount <= this.page * this.pageSize + this.pageSize;\n }\n\n _isPreviousPageButtonDisabled() {\n return this.page === 0;\n }\n\n protected readonly Math = Math;\n}\n","<div class=\"sapphire-pagination\">\n <sp-select-button\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary\"\n size=\"md\"\n >\n <sp-option\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n [value]=\"'' + pageSizeOption\"\n >{{ 'items-per-page' | t : { value: pageSizeOption } }}</sp-option\n >\n </sp-select-button>\n <span class=\"sapphire-pagination__controls\">\n <span\n *ngIf=\"!allowPageSelection\"\n class=\"sapphire-pagination__text sapphire-pagination__text--emphasized\"\n >\n {{ startItemIndex }} -\n {{ endItemIndex }}\n <span class=\"sapphire-pagination__text\"> {{ 'of' | t }} </span>\n {{ itemCount }}\n </span>\n <button\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"_onPageChange('previous')\"\n [disabled]=\"_isPreviousPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'previous' | t\"\n >\n <sp-icon name=\"chevronLeft\"></sp-icon>\n </button>\n\n <sp-page-selection-row\n *ngIf=\"allowPageSelection\"\n [currentPage]=\"page\"\n [totalPageCount]=\"Math.ceil(itemCount / pageSize)\"\n [siblingCount]=\"1\"\n [boundaryCount]=\"1\"\n (pageChange)=\"_onPageSelect($event)\"\n />\n\n <button\n sp-icon-button\n variant=\"tertiary\"\n size=\"md\"\n (click)=\"_onPageChange('next')\"\n [disabled]=\"_isNextPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'next' | t\"\n >\n <sp-icon name=\"chevronRight\"></sp-icon>\n </button>\n </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { PaginationComponent } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SapphireSelectModule } from '../../select/public_api';\nimport { SapphireIconModule } from '../../icon/public_api';\nimport { SapphireButtonModule } from '../../button/public_api';\nimport { TranslatePipe } from '../../common/translate.pipe';\nimport { MessageDictionary } from '@internationalized/message';\nimport translations from '../i18n';\nimport { PageSelectionRowComponent } from './page-selection-row.component';\n\n@NgModule({\n declarations: [PaginationComponent, PageSelectionRowComponent],\n imports: [\n CommonModule,\n TranslatePipe,\n A11yModule,\n SapphireSelectModule,\n SapphireButtonModule,\n SapphireIconModule,\n ],\n exports: [PaginationComponent],\n providers: [{ provide: MessageDictionary, useValue: translations }],\n})\nexport class SapphirePaginationModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { SapphireButtonModule } from '../../button/src/button.module';\nimport { SapphireIconModule } from '../../icon/src/icon.module';\nimport { SapphirePopoverModule } from '../../popover/src/popover.module';\nimport { PopoverTriggerDirective } from '../../popover/src/popover-trigger.directive';\nimport { SapphireTypographyModule } from '../../typography/src/typography.module';\nimport { Placement } from '../../common/placement';\nimport { IconRegistry } from '../../icon/public_api';\nimport { iconHelp, iconInformation } from '@danske/sapphire-icons/js';\n\n@Directive({\n selector: 'sp-help-button-header',\n standalone: true,\n})\nexport class HelpButtonHeaderDirective {}\n@Directive({\n selector: 'sp-help-button-content',\n standalone: true,\n})\nexport class HelpButtonContentDirective {}\n\n@Directive({\n selector: 'sp-help-button-footer',\n standalone: true,\n})\nexport class HelpButtonFooterDirective {}\n\n@Component({\n selector: 'sp-help-button',\n templateUrl: './help-button.component.html',\n styleUrls: ['./help-button.component.scss'],\n standalone: true,\n imports: [\n NgIf,\n SapphireTypographyModule,\n SapphireButtonModule,\n SapphireIconModule,\n SapphirePopoverModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n },\n})\nexport class HelpButtonComponent {\n constructor(iconRegistry: IconRegistry) {\n iconRegistry.registerIcons([iconInformation, iconHelp]);\n }\n /**\n *\n * The type of help button which determines the icon shown.\n *\n * Use \"info\" for brief, contextual supplemental information. The content\n * inside should have an instructive tone.\n *\n * Use \"help\" variant to signal more in-depth guidance about a task or UI,\n * this may include links or images or other helpful media. The content\n * inside should have a helpful tone.\n *\n * @default 'info'\n */\n @Input()\n variant: 'info' | 'help' = 'info';\n\n /**\n * Placement of popover relative to the icon that triggers it.\n */\n @Input()\n placement: Placement = 'top';\n\n /**\n * The label for the trigger of the help dialog.\n * This will NOT be rendered on the screen, but it is required\n * for accessibility reasons.\n */\n @Input('aria-label')\n ariaLabel!: string;\n\n @ViewChild(PopoverTriggerDirective)\n _trigger?: PopoverTriggerDirective;\n\n @ContentChild(HelpButtonFooterDirective)\n _footer?: HelpButtonFooterDirective;\n\n @ContentChild(HelpButtonHeaderDirective)\n _header?: HelpButtonHeaderDirective;\n\n isOpen() {\n return this._trigger?.isOpen();\n }\n\n toggle() {\n return this._trigger?.toggle();\n }\n open() {\n return this._trigger?.open();\n }\n close() {\n return this._trigger?.close();\n }\n}\n","<button\n sp-icon-button\n size=\"xs\"\n variant=\"tertiary\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverPlacement]=\"placement\"\n [attr.aria-label]=\"ariaLabel\"\n>\n <sp-icon\n *ngIf=\"variant === 'help'; else defaultIcon\"\n size=\"sm\"\n name=\"help\"\n ></sp-icon>\n <ng-template #defaultIcon>\n <sp-icon name=\"information\" size=\"sm\"></sp-icon>\n </ng-template>\n</button>\n\n<ng-template #popover>\n <sp-popover noPadding>\n <div class=\"sapphire-contextual-help\">\n <div *ngIf=\"_header\" class=\"sapphire-contextual-help__header\">\n <h6 sp-heading spPopoverTitle>\n <ng-content select=\"sp-help-button-header\"></ng-content>\n </h6>\n </div>\n <ng-content select=\"sp-help-button-content\"></ng-content>\n <div *ngIf=\"_footer\" class=\"sapphire-contextual-help__footer\">\n <ng-content select=\"sp-help-button-footer\"></ng-content>\n </div>\n </div>\n </sp-popover>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport {\n HelpButtonComponent,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n HelpButtonHeaderDirective,\n} from './help-button.component';\n\n@NgModule({\n declarations: [],\n imports: [\n HelpButtonComponent,\n HelpButtonHeaderDirective,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n ],\n exports: [\n HelpButtonComponent,\n HelpButtonHeaderDirective,\n HelpButtonContentDirective,\n HelpButtonFooterDirective,\n ],\n})\nexport class SapphireHelpButtonModule {}\n","import { Component, Input } from '@angular/core';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\n/**\n * This is a container for all other components which comes with the theme's\n * primary surface background color, text color and font family.\n */\n@Component({\n selector: 'sp-surface',\n styleUrls: ['./surface.component.scss'],\n standalone: true,\n template: `<ng-content></ng-content>`,\n host: {\n class: 'sapphire-surface',\n '[class.sapphire-theme--secondary]': 'variant === \"secondary\"',\n '[class.sapphire-theme--tertiary]': 'variant === \"tertiary\"',\n '[class.sapphire-theme--contrast]': 'variant === \"contrast\"',\n },\n hostDirectives: [UseComponentStylesOnHost],\n})\nexport class SurfaceComponent {\n @Input()\n variant?: 'primary' | 'secondary' | 'tertiary' | 'contrast' = 'primary';\n}\n","import { NgModule } from '@angular/core';\nimport { SurfaceComponent } from './surface.component';\n\n@NgModule({\n imports: [SurfaceComponent],\n exports: [SurfaceComponent],\n})\nexport class SapphireSurfaceModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/surface.component';\nexport * from './src/surface.module';\n","// Exported just for the issue with vscode\nexport { ScrollMonitorDirective } from './scroll-monitor.directive';\nexport {\n UseComponentStyles,\n UseComponentStylesOnHost,\n ViewEncapsulationProvider,\n} from './sapphire-view-encapsulation';\nexport { PressedDirective } from './pressed.directive';\nexport { FocusedDirective } from './focused.directive';\nexport { TranslateService } from './translate.service';\nexport { TranslatePipe } from './translate.pipe';\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { AutoId } from '../../common/auto-id.decorator';\nimport { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';\n\ntype Color =\n | 'positive'\n | 'negative'\n | 'warning'\n | 'informative'\n | 'neutral'\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n | 15\n | 16;\n\ntype Variant = 'primary' | 'secondary';\n\ntype Size = 'sm' | 'md';\n\n@Component({\n selector: 'sp-badge',\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStylesOnHost],\n styleUrls: ['./badge.component.scss'],\n standalone: false,\n})\nexport class BadgeComponent {\n @HostBinding('role') role = 'presentation';\n\n /**\n * A unique id for the host DOM element.\n * If none is supplied, it will be auto-generated.\n */\n @HostBinding()\n @Input()\n @AutoId()\n id = '';\n\n /**\n * @default 'md'\n */\n @Input()\n size?: Size = 'md';\n\n /**\n * Whether the badge has a saturated or faint background.\n *\n * @default 'primary'\n */\n @Input()\n variant?: Variant = 'primary';\n\n /**\n * The background color of the badge.\n * Can either be semantic or one of the named decorative color.\n *\n * @default 'neutral'\n */\n @Input()\n color?: Color = 'neutral';\n\n @HostBinding('class')\n private get classNames() {\n return [\n 'sapphire-badge',\n this.size === 'sm' && 'sapphire-badge--sm',\n typeof this.color === 'string' &&\n this.color !== 'neutral' &&\n `sapphire-badge--${this.variant}-${this.color}`,\n typeof Number(this.color) === 'number' &&\n `sapphire-badge--decorative-${this.color}`,\n ].join(' ');\n }\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BadgeComponent } from './badge.component';\n\n@NgModule({\n declarations: [BadgeComponent],\n imports: [CommonModule],\n exports: [BadgeComponent],\n})\nexport class SapphireBadgeModule {}\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { Component, ElementRef, forwardRef, Inject } from '@angular/core';\nimport { FocusedDirective } from '../../common/focused.directive';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\nimport { ListComponent } from './list.component';\n\n@Component({\n selector: '[sp-list-item], [sp-list-item-interactive]',\n standalone: true,\n templateUrl: './list-item.component.html',\n host: {\n class: 'sapphire-list__item',\n '[class.sapphire-list__item--interactive]': '_isInteractive',\n '[class.sapphire-list__item--without-divider]': '_isLastItem',\n '[attr.role]': `_role`,\n },\n hostDirectives: [\n UseComponentStyles,\n {\n directive: FocusedDirective,\n },\n ],\n imports: [NgIf, NgTemplateOutlet, FocusedDirective],\n})\nexport class ListItemComponent {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n @Inject(forwardRef(() => ListComponent))\n public list: ListComponent\n ) {}\n\n get _isInteractive(): boolean {\n const hostElement = this.elementRef.nativeElement;\n return (\n hostElement.hasAttribute('sp-list-item-interactive') ||\n hostElement.tagName === 'A' ||\n hostElement.tagName === 'BUTTON'\n );\n }\n\n get _role(): string | undefined {\n const hostElement = this.elementRef.nativeElement;\n\n if (['BUTTON', 'A', 'LI'].includes(hostElement.tagName)) {\n return undefined;\n }\n\n if (\n hostElement.hasAttribute('sp-list-item-interactive') &&\n hostElement.tagName !== 'A' &&\n hostElement.tagName !== 'BUTTON'\n ) {\n return 'button';\n }\n return 'listitem';\n }\n\n get _isLastItem(): boolean {\n // Only apply if hideLastDivider is true\n if (!this.list.hideLastDivider) return false;\n\n return this.list.listItems.last === this;\n }\n}\n","<ng-content></ng-content>\n<ng-content select=\"sp-list-item-content-left\"></ng-content>\n<ng-content select=\"sp-list-item-content-right\"></ng-content>\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n Input,\n QueryList,\n} from '@angular/core';\nimport { CoerceBoolean } from '../../common/coerce-boolean.decorator';\nimport {\n UseComponentStylesOnHost,\n ViewEncapsulationProvider,\n} from '../../common/sapphire-view-encapsulation';\nimport { ListItemComponent } from './list-item.component';\n\n@Component({\n selector: '[sp-list]',\n standalone: true,\n template: `<ng-content></ng-content>`,\n styleUrls: ['./list.component.scss'],\n host: {\n class: 'sapphire-list',\n '[class.sapphire-list--without-last-divider]': 'hideLastDivider',\n '[attr.role]': `!isListElement ? \"list\" : undefined`,\n },\n hostDirectives: [UseComponentStylesOnHost],\n providers: [ViewEncapsulationProvider],\n imports: [UseComponentStylesOnHost],\n})\nexport class ListComponent {\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n get isListElement(): boolean {\n const hostElement = this.elementRef.nativeElement;\n return hostElement.tagName === 'UL' || hostElement.tagName === 'OL';\n }\n\n @Input()\n @CoerceBoolean\n hideLastDivider: BooleanInput = false;\n\n @ContentChildren(forwardRef(() => ListItemComponent), { descendants: true })\n readonly listItems: QueryList<ListItemComponent> = new QueryList();\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-content-right, sp-list-item-content-left',\n standalone: true,\n template: '<ng-content></ng-content>',\n host: {\n '[class.sapphire-list__item-content-right]': '_variant === \"right\"',\n '[class.sapphire-list__item-content-left]': '_variant === \"left\"',\n },\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemContentComponent {\n _variant: 'right' | 'left';\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n this._variant =\n this.elementRef.nativeElement.tagName === 'SP-LIST-ITEM-CONTENT-RIGHT'\n ? 'right'\n : 'left';\n }\n}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text-primary',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text-primary',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextPrimaryComponent {}\n","import { Component } from '@angular/core';\nimport { UseComponentStyles } from '../../common/sapphire-view-encapsulation';\n\n@Component({\n selector: 'sp-list-item-text-secondary',\n standalone: true,\n host: {\n class: 'sapphire-list__item-text-secondary',\n },\n template: '<ng-content></ng-content>',\n hostDirectives: [UseComponentStyles],\n imports: [UseComponentStyles],\n})\nexport class ListItemTextSecondaryComponent {}\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { ListItemComponent } from './list-item.component';\nimport { ListItemContentComponent } from './list-item-content.component';\nimport { ListItemTextComponent } from './list-item-text.component';\nimport { ListItemTextPrimaryComponent } from './list-item-text-primary.component';\nimport { ListItemTextSecondaryComponent } from './list-item-text-secondary.component';\n@NgModule({\n declarations: [],\n imports: [\n ListComponent,\n ListItemComponent,\n ListItemContentComponent,\n ListItemTextComponent,\n ListItemTextPrimaryComponent,\n ListItemTextSecondaryComponent,\n ],\n exports: [\n ListComponent,\n ListItemComponent,\n ListItemContentComponent,\n ListItemTextComponent,\n ListItemTextPrimaryComponent,\n ListItemTextSecondaryComponent,\n ],\n})\nexport class SapphireListModule {}\n","// We have separate public_api.ts file for each angular module, to have them\n// exposed as separate entry points. The build is still not emitting separate\n// entry points, which will be addressed in this task:\n// WCCJ-838\nexport * from './src/list.component';\nexport * from './src/list-item.component';\nexport * from './src/list-item-content.component';\nexport * from './src/list-item-text.component';\nexport * from './src/list-item-text-primary.component';\nexport * from './src/list-item-text-secondary.component';\n\nexport * from './src/list.module';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SapphireSpinnerModule } from './spinner/src/spinner.module';\nimport { SapphireButtonModule } from './button/public_api';\nimport { SapphireIconModule } from './icon/src/icon.module';\nimport { SapphireTypographyModule } from './typography/src/typography.module';\nimport { SapphireAvatarModule } from './avatar/src/avatar.module';\nimport { SapphireFeedbackMessageModule } from './feedback-message/src/feedback-message.module';\nimport { SapphireCheckboxModule } from './checkbox/src/checkbox.module';\nimport { SapphireMenuModule } from './menu/public_api';\nimport { SapphirePopoverModule } from './popover/src/popover.module';\nimport { SapphireTableModule } from './table/src/table.module';\nimport { SapphireTextFieldModule } from './text-field/public_api';\nimport { SapphireSelectModule } from './select/public_api';\nimport { SapphireLinkModule } from './link/src/link.module';\nimport { SapphireSegmentedTabsModule } from './segmented-tabs/public_api';\nimport { SapphireThemeModule } from './theme/public_api';\nimport { SapphireNotificationBadgeModule } from './notification-badge/public_api';\nimport { SapphireSwitchModule } from './switch/public_api';\nimport { SapphireRadioModule } from './radio/public_api';\nimport { SapphireTooltipModule } from './tooltip/public_api';\nimport { SapphireListboxModule } from './listbox/public_api';\nimport { SapphireModalModule } from './modal/public_api';\nimport { SapphireSkeletonModule } from './skeleton/public_api';\nimport { SapphirePaginationModule } from './pagination/public_api';\nimport { SapphireHelpButtonModule } from './help-button/public_api';\nimport { SapphireSurfaceModule } from './surface/public_api';\nimport { SapphireBadgeModule } from './badge/public_api';\nimport { SapphireListModule } from './list/public_api';\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n SapphireThemeModule,\n SapphireButtonModule,\n SapphireCheckboxModule,\n SapphireIconModule,\n SapphireTypographyModule,\n SapphireFeedbackMessageModule,\n SapphireSpinnerModule,\n SapphireMenuModule,\n SapphirePopoverModule,\n SapphireTextFieldModule,\n SapphireSelectModule,\n SapphireTableModule,\n SapphireLinkModule,\n SapphireAvatarModule,\n SapphireSegmentedTabsModule,\n SapphireNotificationBadgeModule,\n SapphireSwitchModule,\n SapphireRadioModule,\n SapphireTooltipModule,\n SapphireListboxModule,\n SapphireModalModule,\n SapphireSkeletonModule,\n SapphirePaginationModule,\n SapphireHelpButtonModule,\n SapphireSurfaceModule,\n SapphireBadgeModule,\n SapphireListModule,\n ],\n exports: [\n SapphireButtonModule,\n SapphireIconModule,\n SapphireTypographyModule,\n SapphireSpinnerModule,\n SapphireCheckboxModule,\n SapphireMenuModule,\n SapphireAvatarModule,\n SapphirePopoverModule,\n SapphireFeedbackMessageModule,\n SapphireTextFieldModule,\n SapphireTableModule,\n SapphireLinkModule,\n SapphireSegmentedTabsModule,\n SapphireThemeModule,\n SapphireSelectModule,\n SapphireNotificationBadgeModule,\n SapphireSwitchModule,\n SapphireRadioModule,\n SapphireTooltipModule,\n SapphireListboxModule,\n SapphireModalModule,\n SapphireSkeletonModule,\n SapphirePaginationModule,\n SapphireHelpButtonModule,\n SapphireSurfaceModule,\n SapphireBadgeModule,\n SapphireListModule,\n ],\n})\nexport class SapphireCoreModule {}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/typography/public_api';\nexport * from './lib/button/public_api';\nexport * from './lib/checkbox/public_api';\nexport * from './lib/icon/public_api';\nexport * from './lib/menu/public_api';\nexport * from './lib/popover/public_api';\nexport * from './lib/text-field/public_api';\nexport * from './lib/select/public_api';\nexport * from './lib/listbox/public_api';\nexport * from './lib/link/public_api';\nexport * from './lib/segmented-tabs/public_api';\nexport * from './lib/spinner/public_api';\nexport * from './lib/avatar/public_api';\nexport * from './lib/feedback-message/public_api';\nexport * from './lib/table/public_api';\nexport * from './lib/notification-badge/public_api';\nexport * from './lib/switch/public_api';\nexport * from './lib/theme/public_api';\nexport * from './lib/radio/public_api';\nexport * from './lib/tooltip/public_api';\nexport * from './lib/modal/public_api';\nexport * from './lib/skeleton/public_api';\nexport * from './lib/pagination/public_api';\nexport * from './lib/help-button/public_api';\nexport * from './lib/field/public_api';\nexport * from './lib/surface/public_api';\nexport * from './lib/common/public_api';\nexport * from './lib/core.module';\nexport * from './lib/badge/public_api';\nexport * from './lib/list/public_api';\n\n/* Exports only for lab */\n\nexport * from './lib/label/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TopLevelThemeRef","i1.ThemeBaseDirective","i1","i1.ThemeCheckDirective","i2.UseComponentStylesOnHost","i3","i1.UseComponentStylesOnHost","translations","da","en","de","fi","no","pl","se","i1.TranslateService","i2","i1.FieldComponent","i1.IconRegistry","i4","i5.LabelComponent","i6.IconComponent","i2.ThemeCheckDirective","i4.TranslatePipe","i3.UseComponentStylesOnHost","i2.UseComponentStyles","i1.SapphireOverlay","i5.FieldNoteSuffixDirective","i1.UseComponentStyles","i1.PressedDirective","i2.IconRegistry","i5","i7","i3.UseComponentStyles","i3.CdkOptionScrollIssuePatch","i4.ListboxItemComponent","i1.SelectValueHolder","i1.SelectComponentBase","i4.VisuallyHiddenDirective","i5.UseComponentStyles","i4.FieldComponent","i5.SearchableSelectDirective","i8.IconComponent","i9.ListboxComponent","i10.ListboxInputDirective","i11.PopoverComponent","i12.PopoverTriggerDirective","i13.VisuallyHiddenDirective","i14.HiddenSelectComponent","i3.IconRegistry","i5.IconComponent","i6.ListboxComponent","i7.PopoverComponent","i8.PopoverTriggerDirective","i9.ButtonComponent","i10.ButtonIconDirective","i11.HiddenSelectComponent","i3.BodyComponent","i4.IconComponent","i1.TableSortDirective","i2.ThemeBaseDirective","i1.TooltipDirective","i2.TableSortHeaderDirective","i6.TruncatedWithTooltipDirective","i1.TruncatedWithTooltipDirective","i2.TruncatedWithTooltipDirective","i1.TableFooterDirective","i1.TableComponent","i2.SapphireOverlay","i4.HeadingComponent","i6.IconButtonComponent","i7.ModalCloseButtonDirective","i1.ScrollMonitorDirective","i2.ButtonComponent","i3.ButtonGroupComponent","i4.ModalLayoutComponent","i5.ModalHeaderComponent","i6.ModalBodyComponent","i7.ModalFooterComponent","i8.DialogComponent","i2.ButtonGroupComponent","i3.FeedbackMessageComponent","i3.FeedbackMessageIcon","i3.FeedbackMessageHeading","i3.FeedbackMessageBody","i3.FeedbackMessageActions","i4.ModalHeaderDirective","i5.DialogComponent","utilGetAnimationDelay","i3.IconButtonComponent","i4.ButtonGroupComponent","i3.OptionComponent","i4.SelectButtonComponent","i4.SelectButtonSingleSelectDirective","i5.IconButtonComponent","i7.PageSelectionRowComponent","i8.TranslatePipe","i2.HeadingComponent","i5.PopoverComponent","i6.PopoverTriggerDirective","i7.PopoverTitleDirective"],"mappings":"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"}
|