@i-cell/ids-angular 0.2.20 → 0.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/datepicker/index.d.ts +1 -1
  2. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +1 -1
  3. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -1
  4. package/fesm2022/i-cell-ids-angular-chip.mjs +1 -1
  5. package/fesm2022/i-cell-ids-angular-chip.mjs.map +1 -1
  6. package/fesm2022/i-cell-ids-angular-datepicker.mjs +3 -3
  7. package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
  8. package/fesm2022/i-cell-ids-angular-dialog.mjs +1 -1
  9. package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
  10. package/fesm2022/i-cell-ids-angular-forms.mjs +7 -8
  11. package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
  12. package/fesm2022/i-cell-ids-angular-icon-button.mjs +3 -2
  13. package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -1
  14. package/fesm2022/i-cell-ids-angular-notification.mjs +1 -1
  15. package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -1
  16. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +6 -6
  17. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -1
  18. package/fesm2022/i-cell-ids-angular-radio.mjs +19 -3
  19. package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -1
  20. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +8 -4
  21. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -1
  22. package/fesm2022/i-cell-ids-angular-segmented-control.mjs +8 -4
  23. package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -1
  24. package/fesm2022/i-cell-ids-angular-side-nav.mjs +1 -1
  25. package/fesm2022/i-cell-ids-angular-side-nav.mjs.map +1 -1
  26. package/fesm2022/i-cell-ids-angular-side-sheet.mjs +2 -2
  27. package/fesm2022/i-cell-ids-angular-side-sheet.mjs.map +1 -1
  28. package/fesm2022/i-cell-ids-angular-snackbar.mjs +1 -1
  29. package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -1
  30. package/fesm2022/i-cell-ids-angular-table.mjs +50 -4
  31. package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -1
  32. package/icon-button/index.d.ts +2 -1
  33. package/overlay-panel/index.d.ts +2 -2
  34. package/package.json +21 -21
  35. package/radio/index.d.ts +1 -0
  36. package/table/index.d.ts +21 -2
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-side-sheet.mjs","sources":["../../../projects/widgets/side-sheet/types/side-sheet.type.ts","../../../projects/widgets/side-sheet/side-sheet-defaults.ts","../../../projects/widgets/side-sheet/side-sheet-header/side-sheet-header.component.ts","../../../projects/widgets/side-sheet/side-sheet-header/side-sheet-header.component.html","../../../projects/widgets/side-sheet/side-sheet.component.ts","../../../projects/widgets/side-sheet/side-sheet.component.html","../../../projects/widgets/side-sheet/i-cell-ids-angular-side-sheet.ts"],"sourcesContent":["export const IdsSideSheetType = {\n OVERLAY: 'overlay',\n INLINE: 'inline',\n} as const;\n\nexport type IdsSideSheetTypeType = (typeof IdsSideSheetType)[keyof typeof IdsSideSheetType];\n\nexport const IdsSideSheetPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsSideSheetPositionType = (typeof IdsSideSheetPosition)[keyof typeof IdsSideSheetPosition];\n\nexport const IdsSideSheetHeader = {\n DEFAULT: 'default',\n CUSTOM: 'custom',\n} as const;\n\nexport const IdsBackdropType = {\n DEFAULT: 'default',\n TRANSPARENT: 'transparent',\n} as const;\n\nexport type IdsBackdropTypeType = (typeof IdsBackdropType)[keyof typeof IdsBackdropType];\n\nexport type IdsSideSheetHeaderType = (typeof IdsSideSheetHeader)[keyof typeof IdsSideSheetHeader];\n","import {\n IdsBackdropType,\n IdsBackdropTypeType,\n IdsSideSheetHeader,\n IdsSideSheetHeaderType, IdsSideSheetPosition,\n IdsSideSheetPositionType, IdsSideSheetType,\n IdsSideSheetTypeType,\n} from './types/side-sheet.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSideSheetDefaultConfig {\n type: IdsSideSheetTypeType\n position: IdsSideSheetPositionType\n header: IdsSideSheetHeaderType\n isScrollable: boolean\n isBackdrop: boolean\n backdropType: IdsBackdropTypeType\n backdropOpacity: IdsSizeType\n isClosable: boolean\n isShowFooter: boolean\n isShowHeader: boolean\n isStatic: boolean\n closeTooltipText: string\n size: IdsSizeType\n}\n\nexport const IDS_SIDE_SHEET_DEFAULT_CONFIG = new InjectionToken<IdsSideSheetDefaultConfig>(\n 'IDS_SIDE_SHEET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY(): Required<IdsSideSheetDefaultConfig> {\n return {\n type: IdsSideSheetType.INLINE,\n position: IdsSideSheetPosition.LEFT,\n header: IdsSideSheetHeader.DEFAULT,\n isScrollable: false,\n isBackdrop: true,\n backdropType: IdsBackdropType.DEFAULT,\n backdropOpacity: IdsSize.COMPACT,\n isClosable: true,\n isShowFooter: true,\n isShowHeader: true,\n isStatic: false,\n closeTooltipText: '',\n size: IdsSize.COMPACT,\n };\n};\n","import { IdsSideSheetHeader } from '../types/side-sheet.type';\n\nimport { Component, input, output } from '@angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\nimport { IdsTooltipDirective } from '@i-cell/ids-angular/tooltip';\n\n@Component({\n selector: 'app-side-sheet-header',\n standalone: true,\n templateUrl: './side-sheet-header.component.html',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsTooltipDirective,\n ],\n})\nexport class SideSheetHeaderComponent {\n protected _idsSideSheetHeaderType = IdsSideSheetHeader;\n public closed = output();\n public backClicked = output();\n\n public title = input<string>();\n public header = input();\n public backButton = input();\n public isClosable = input();\n public isShowHeader = input<boolean>(false);\n public closeTooltipText = input<string>('');\n\n protected _onClose(): void {\n this.closed.emit();\n }\n\n protected _onBack(): void {\n this.backClicked.emit();\n }\n\n}\n","@if (header() === _idsSideSheetHeaderType.DEFAULT && isShowHeader()) {\n <div class=\"ids-side-sheet__header-left-content\">\n @if (backButton()) {\n <button class=\"back-btn\" type=\"button\" idsIconButton variant=\"surface\" appearance=\"standard\" (click)=\"_onBack()\">\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"arrow-left\" />\n </button>\n }\n <h2 id=\"side-sheet-title\" class=\"ids-side-sheet__title\">{{ title() }}</h2>\n </div>\n @if (isClosable()) {\n <button\n class=\"ids-side-sheet__header-close-btn\"\n type=\"button\"\n idsIconButton\n variant=\"surface\"\n appearance=\"standard\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_onClose()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n}\n\n@else if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-content/>\n}\n","import {\n IDS_SIDE_SHEET_DEFAULT_CONFIG,\n IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY,\n IdsSideSheetDefaultConfig,\n} from './side-sheet-defaults';\nimport { SideSheetHeaderComponent } from './side-sheet-header/side-sheet-header.component';\nimport {\n IdsBackdropTypeType,\n IdsSideSheetPosition, IdsSideSheetPositionType,\n IdsSideSheetType,\n IdsSideSheetTypeType,\n IdsSideSheetHeader } from './types/side-sheet.type';\n\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n input,\n output,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\nimport { IdsTooltipDirective } from '@i-cell/ids-angular/tooltip';\n\nconst defaultConfig = IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-side-sheet',\n standalone: true,\n templateUrl: './side-sheet.component.html',\n animations: [\n trigger('slideInOut', [\n transition('void => left', [\n style({ transform: 'translateX(-100%)' }),\n animate('300ms ease-out', style({ transform: 'translateX(0)' })),\n ]),\n transition('left => void', [animate('300ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n transition('void => right', [\n style({ transform: 'translateX(100%)' }),\n animate('300ms ease-out', style({ transform: 'translateX(0)' })),\n ]),\n transition('right => void', [animate('300ms ease-in', style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n host: {\n '[class.open]': 'open()',\n },\n imports: [\n IdsIconButtonComponent,\n IdsIconComponent,\n NgTemplateOutlet,\n SideSheetHeaderComponent,\n IdsTooltipDirective,\n NgClass,\n A11yModule,\n CdkTrapFocus,\n ],\n})\nexport class IdsSideSheetComponent extends ComponentBaseWithDefaults<IdsSideSheetDefaultConfig> {\n protected override get _hostName(): string {\n return 'side-sheet';\n }\n\n protected _idsSideSheetType = IdsSideSheetType;\n protected _idsSideSheetHeaderType = IdsSideSheetHeader;\n protected _idsSideSheetPositionType = IdsSideSheetPosition;\n public open = input(false);\n public closed = output();\n public backClicked = output();\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_SHEET_DEFAULT_CONFIG);\n\n public title = input<string>('');\n public type = input<IdsSideSheetTypeType | string>(this._defaultConfig.type);\n public position = input<IdsSideSheetPositionType | string>(this._defaultConfig.position);\n public header = input(this._defaultConfig.header);\n public backButton = input(false);\n public isBackdrop = input(this._defaultConfig.isBackdrop);\n public backdropType = input<IdsBackdropTypeType | string>(this._defaultConfig.backdropType);\n public backdropOpacity = input<IdsSizeType | string>(this._defaultConfig.backdropOpacity);\n public isScrollable = input(this._defaultConfig.isScrollable);\n public isClosable = input(this._defaultConfig.isClosable);\n public isShowHeader = input(this._defaultConfig.isShowHeader);\n public closeTooltipText = input<string>('');\n public size = input<IdsSideSheetTypeType | string>(this._defaultConfig.size);\n\n protected _close(): void {\n this.closed.emit();\n }\n\n protected _onBack(): void {\n this.backClicked.emit();\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.type(),\n this.size(),\n [\n `${this.position()}`,\n this.size(),\n ],\n [\n `${this.position()}-opacity`,\n this.backdropOpacity(),\n ],\n this.backdropType(),\n ]));\n\n}\n","<ng-template #content>\n <ng-content/>\n</ng-template>\n\n<ng-template #customHeader>\n <ng-content select=\"[slot='customHeader']\"/>\n</ng-template>\n\n<ng-template #footer>\n <ng-content select=\"[slot='footer']\"/>\n</ng-template>\n\n@if (open() && type() === _idsSideSheetType.OVERLAY) {\n @if(isBackdrop()) {\n <div class=\"ids-side-sheet__backdrop\" (click)=\"_close()\"></div>\n }\n <div\n class=\"ids-side-sheet__container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"side-sheet-title\"\n [class.right]=\"position() === _idsSideSheetPositionType.RIGHT\"\n [@slideInOut]=\"position()\">\n @if(isClosable() && header() === _idsSideSheetHeaderType.CUSTOM) {\n <div class=\"ids-side-sheet__header-custom-top-row\">\n <button\n class=\"ids-side-sheet__close-btn\"\n type=\"button\" idsIconButton\n [variant]=\"'surface'\" [appearance]=\"'standard'\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n </div>\n }\n <app-side-sheet-header\n [ngClass]=\"{\n 'ids-side-sheet__header--custom': header() === _idsSideSheetHeaderType.CUSTOM,\n 'ids-side-sheet__header--default': header() !== _idsSideSheetHeaderType.CUSTOM\n }\"\n [header]=\"header()\"\n [isShowHeader]=\"isShowHeader()\"\n [title]=\"title()\"\n [backButton]=\"backButton()\"\n [isClosable]=\"isClosable()\"\n [closeTooltipText]=\"closeTooltipText()\"\n (closed)=\"_close()\"\n (backClicked)=\"_onBack()\"\n >\n @if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-container *ngTemplateOutlet=\"customHeader\"/>\n }\n </app-side-sheet-header>\n <div class=\"ids-side-sheet__content\" [ngClass]=\"{ 'ids-side-sheet__content--scrollable': isScrollable() }\">\n <ng-container *ngTemplateOutlet=\"content\"/>\n </div>\n <div class=\"ids-side-sheet__footer\">\n <ng-container *ngTemplateOutlet=\"footer\"/>\n </div>\n </div>\n}\n@if (open() && type() === _idsSideSheetType.INLINE) {\n <div\n class=\"ids-side-sheet__container--inline\"\n role=\"region\"\n aria-labelledby=\"side-sheet-title\"\n cdkTrapFocus\n [class.right]=\"position() === _idsSideSheetPositionType.RIGHT\"\n [@slideInOut]=\"position()\">\n @if(isClosable() && header() === _idsSideSheetHeaderType.CUSTOM) {\n <div class=\"ids-side-sheet__header-custom-top-row\">\n\n <button\n class=\"ids-side-sheet__close-btn\"\n type=\"button\"\n idsIconButton\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n </div>\n }\n\n <app-side-sheet-header\n [ngClass]=\"{\n 'ids-side-sheet__header--custom': header() === _idsSideSheetHeaderType.CUSTOM,\n 'ids-side-sheet__header--default': header() !== _idsSideSheetHeaderType.CUSTOM\n }\"\n [header]=\"header()\"\n [isShowHeader]=\"isShowHeader()\"\n [title]=\"title()\"\n [backButton]=\"backButton()\"\n [isClosable]=\"isClosable()\"\n [closeTooltipText]=\"closeTooltipText()\"\n (closed)=\"_close()\"\n (backClicked)=\"_onBack()\"\n >\n @if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-container *ngTemplateOutlet=\"customHeader\"/>\n }\n </app-side-sheet-header>\n <div class=\"ids-side-sheet__content\" [ngClass]=\"{ 'ids-side-sheet__content--scrollable': isScrollable() }\">\n <ng-container *ngTemplateOutlet=\"content\"/>\n </div>\n <div class=\"ids-side-sheet__footer\">\n <ng-container *ngTemplateOutlet=\"footer\"/>\n </div>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-side-sheet.mjs","sources":["../../../projects/widgets/side-sheet/types/side-sheet.type.ts","../../../projects/widgets/side-sheet/side-sheet-defaults.ts","../../../projects/widgets/side-sheet/side-sheet-header/side-sheet-header.component.ts","../../../projects/widgets/side-sheet/side-sheet-header/side-sheet-header.component.html","../../../projects/widgets/side-sheet/side-sheet.component.ts","../../../projects/widgets/side-sheet/side-sheet.component.html","../../../projects/widgets/side-sheet/i-cell-ids-angular-side-sheet.ts"],"sourcesContent":["export const IdsSideSheetType = {\n OVERLAY: 'overlay',\n INLINE: 'inline',\n} as const;\n\nexport type IdsSideSheetTypeType = (typeof IdsSideSheetType)[keyof typeof IdsSideSheetType];\n\nexport const IdsSideSheetPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsSideSheetPositionType = (typeof IdsSideSheetPosition)[keyof typeof IdsSideSheetPosition];\n\nexport const IdsSideSheetHeader = {\n DEFAULT: 'default',\n CUSTOM: 'custom',\n} as const;\n\nexport const IdsBackdropType = {\n DEFAULT: 'default',\n TRANSPARENT: 'transparent',\n} as const;\n\nexport type IdsBackdropTypeType = (typeof IdsBackdropType)[keyof typeof IdsBackdropType];\n\nexport type IdsSideSheetHeaderType = (typeof IdsSideSheetHeader)[keyof typeof IdsSideSheetHeader];\n","import {\n IdsBackdropType,\n IdsBackdropTypeType,\n IdsSideSheetHeader,\n IdsSideSheetHeaderType, IdsSideSheetPosition,\n IdsSideSheetPositionType, IdsSideSheetType,\n IdsSideSheetTypeType,\n} from './types/side-sheet.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsSideSheetDefaultConfig {\n type: IdsSideSheetTypeType\n position: IdsSideSheetPositionType\n header: IdsSideSheetHeaderType\n isScrollable: boolean\n isBackdrop: boolean\n backdropType: IdsBackdropTypeType\n backdropOpacity: IdsSizeType\n isClosable: boolean\n isShowFooter: boolean\n isShowHeader: boolean\n isStatic: boolean\n closeTooltipText: string\n size: IdsSizeType\n}\n\nexport const IDS_SIDE_SHEET_DEFAULT_CONFIG = new InjectionToken<IdsSideSheetDefaultConfig>(\n 'IDS_SIDE_SHEET_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY(): Required<IdsSideSheetDefaultConfig> {\n return {\n type: IdsSideSheetType.INLINE,\n position: IdsSideSheetPosition.LEFT,\n header: IdsSideSheetHeader.DEFAULT,\n isScrollable: false,\n isBackdrop: true,\n backdropType: IdsBackdropType.DEFAULT,\n backdropOpacity: IdsSize.COMPACT,\n isClosable: true,\n isShowFooter: true,\n isShowHeader: true,\n isStatic: false,\n closeTooltipText: '',\n size: IdsSize.COMPACT,\n };\n};\n","import { IdsSideSheetHeader } from '../types/side-sheet.type';\n\nimport { Component, input, output } from '@angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\nimport { IdsTooltipDirective } from '@i-cell/ids-angular/tooltip';\n\n@Component({\n selector: 'app-side-sheet-header',\n standalone: true,\n templateUrl: './side-sheet-header.component.html',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsTooltipDirective,\n ],\n})\nexport class SideSheetHeaderComponent {\n protected _idsSideSheetHeaderType = IdsSideSheetHeader;\n public closed = output();\n public backClicked = output();\n\n public title = input<string>();\n public header = input();\n public backButton = input();\n public isClosable = input();\n public isShowHeader = input<boolean>(false);\n public closeTooltipText = input<string>('');\n\n protected _onClose(): void {\n this.closed.emit();\n }\n\n protected _onBack(): void {\n this.backClicked.emit();\n }\n\n}\n","@if (header() === _idsSideSheetHeaderType.DEFAULT && isShowHeader()) {\n <div class=\"ids-side-sheet__header-left-content\">\n @if (backButton()) {\n <button class=\"back-btn\" type=\"button\" idsIconButton variant=\"surface\" appearance=\"standard\" (click)=\"_onBack()\">\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"arrow-left\" />\n </button>\n }\n <h2 id=\"side-sheet-title\" class=\"ids-side-sheet__title\">{{ title() }}</h2>\n </div>\n @if (isClosable()) {\n <button\n class=\"ids-side-sheet__header-close-btn\"\n type=\"button\"\n idsIconButton\n variant=\"surface\"\n appearance=\"standard\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_onClose()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n}\n\n@else if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-content/>\n}\n","import {\n IDS_SIDE_SHEET_DEFAULT_CONFIG,\n IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY,\n IdsSideSheetDefaultConfig,\n} from './side-sheet-defaults';\nimport { SideSheetHeaderComponent } from './side-sheet-header/side-sheet-header.component';\nimport {\n IdsBackdropTypeType,\n IdsSideSheetPosition, IdsSideSheetPositionType,\n IdsSideSheetType,\n IdsSideSheetTypeType,\n IdsSideSheetHeader } from './types/side-sheet.type';\n\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n computed,\n input,\n output,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\nimport { IdsTooltipDirective } from '@i-cell/ids-angular/tooltip';\n\nconst defaultConfig = IDS_SIDE_SHEET_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-side-sheet',\n standalone: true,\n templateUrl: './side-sheet.component.html',\n animations: [\n trigger('slideInOut', [\n transition('void => left', [\n style({ transform: 'translateX(-100%)' }),\n animate('300ms ease-out', style({ transform: 'translateX(0)' })),\n ]),\n transition('left => void', [animate('300ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n transition('void => right', [\n style({ transform: 'translateX(100%)' }),\n animate('300ms ease-out', style({ transform: 'translateX(0)' })),\n ]),\n transition('right => void', [animate('300ms ease-in', style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n host: {\n '[class.open]': 'open()',\n },\n imports: [\n IdsIconButtonComponent,\n IdsIconComponent,\n NgTemplateOutlet,\n SideSheetHeaderComponent,\n IdsTooltipDirective,\n NgClass,\n A11yModule,\n CdkTrapFocus,\n ],\n})\nexport class IdsSideSheetComponent extends ComponentBaseWithDefaults<IdsSideSheetDefaultConfig> {\n protected override get _hostName(): string {\n return 'side-sheet';\n }\n\n protected _idsSideSheetType = IdsSideSheetType;\n protected _idsSideSheetHeaderType = IdsSideSheetHeader;\n protected _idsSideSheetPositionType = IdsSideSheetPosition;\n public open = input(false);\n public closed = output();\n public backClicked = output();\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SIDE_SHEET_DEFAULT_CONFIG);\n\n public title = input<string>('');\n public type = input<IdsSideSheetTypeType | string>(this._defaultConfig.type);\n public position = input<IdsSideSheetPositionType | string>(this._defaultConfig.position);\n public header = input(this._defaultConfig.header);\n public backButton = input(false);\n public isBackdrop = input(this._defaultConfig.isBackdrop);\n public backdropType = input<IdsBackdropTypeType | string>(this._defaultConfig.backdropType);\n public backdropOpacity = input<IdsSizeType | string>(this._defaultConfig.backdropOpacity);\n public isScrollable = input(this._defaultConfig.isScrollable);\n public isClosable = input(this._defaultConfig.isClosable);\n public isShowHeader = input(this._defaultConfig.isShowHeader);\n public closeTooltipText = input<string>('');\n public size = input<IdsSideSheetTypeType | string>(this._defaultConfig.size);\n\n protected _close(): void {\n this.closed.emit();\n }\n\n protected _onBack(): void {\n this.backClicked.emit();\n }\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.type(),\n this.size(),\n [\n `${this.position()}`,\n this.size(),\n ],\n [\n `${this.position()}-opacity`,\n this.backdropOpacity(),\n ],\n this.backdropType(),\n ]));\n\n}\n","<ng-template #content>\n <ng-content/>\n</ng-template>\n\n<ng-template #customHeader>\n <ng-content select=\"[slot='customHeader']\"/>\n</ng-template>\n\n<ng-template #footer>\n <ng-content select=\"[slot='footer']\"/>\n</ng-template>\n\n@if (open() && type() === _idsSideSheetType.OVERLAY) {\n @if(isBackdrop()) {\n <div class=\"ids-side-sheet__backdrop\" (click)=\"_close()\"></div>\n }\n <div\n class=\"ids-side-sheet__container\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"side-sheet-title\"\n [class.right]=\"position() === _idsSideSheetPositionType.RIGHT\"\n [@slideInOut]=\"position()\">\n @if(isClosable() && header() === _idsSideSheetHeaderType.CUSTOM) {\n <div class=\"ids-side-sheet__header-custom-top-row\">\n <button\n class=\"ids-side-sheet__close-btn\"\n type=\"button\" idsIconButton\n [variant]=\"'surface'\" [appearance]=\"'standard'\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n </div>\n }\n <app-side-sheet-header\n [ngClass]=\"{\n 'ids-side-sheet__header--custom': header() === _idsSideSheetHeaderType.CUSTOM,\n 'ids-side-sheet__header--default': header() !== _idsSideSheetHeaderType.CUSTOM\n }\"\n [header]=\"header()\"\n [isShowHeader]=\"isShowHeader()\"\n [title]=\"title()\"\n [backButton]=\"backButton()\"\n [isClosable]=\"isClosable()\"\n [closeTooltipText]=\"closeTooltipText()\"\n (closed)=\"_close()\"\n (backClicked)=\"_onBack()\"\n >\n @if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-container *ngTemplateOutlet=\"customHeader\"/>\n }\n </app-side-sheet-header>\n <div class=\"ids-side-sheet__content\" [ngClass]=\"{ 'ids-side-sheet__content--scrollable': isScrollable() }\">\n <ng-container *ngTemplateOutlet=\"content\"/>\n </div>\n <div class=\"ids-side-sheet__footer\">\n <ng-container *ngTemplateOutlet=\"footer\"/>\n </div>\n </div>\n}\n@if (open() && type() === _idsSideSheetType.INLINE) {\n <div\n class=\"ids-side-sheet__container--inline\"\n role=\"region\"\n aria-labelledby=\"side-sheet-title\"\n cdkTrapFocus\n [class.right]=\"position() === _idsSideSheetPositionType.RIGHT\"\n [@slideInOut]=\"position()\">\n @if(isClosable() && header() === _idsSideSheetHeaderType.CUSTOM) {\n <div class=\"ids-side-sheet__header-custom-top-row\">\n\n <button\n class=\"ids-side-sheet__close-btn\"\n type=\"button\"\n idsIconButton\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [idsTooltip]=\"closeTooltipText()\"\n [idsTooltipIgnoreClipped]=\"true\"\n (click)=\"_close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n </div>\n }\n\n <app-side-sheet-header\n [ngClass]=\"{\n 'ids-side-sheet__header--custom': header() === _idsSideSheetHeaderType.CUSTOM,\n 'ids-side-sheet__header--default': header() !== _idsSideSheetHeaderType.CUSTOM\n }\"\n [header]=\"header()\"\n [isShowHeader]=\"isShowHeader()\"\n [title]=\"title()\"\n [backButton]=\"backButton()\"\n [isClosable]=\"isClosable()\"\n [closeTooltipText]=\"closeTooltipText()\"\n (closed)=\"_close()\"\n (backClicked)=\"_onBack()\"\n >\n @if (header() === _idsSideSheetHeaderType.CUSTOM) {\n <ng-container *ngTemplateOutlet=\"customHeader\"/>\n }\n </app-side-sheet-header>\n <div class=\"ids-side-sheet__content\" [ngClass]=\"{ 'ids-side-sheet__content--scrollable': isScrollable() }\">\n <ng-container *ngTemplateOutlet=\"content\"/>\n </div>\n <div class=\"ids-side-sheet__footer\">\n <ng-container *ngTemplateOutlet=\"footer\"/>\n </div>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -160,7 +160,7 @@ class IdsSnackbarComponent extends ComponentBase {
160
160
  clearTimeout(this._timer);
161
161
  }
162
162
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSnackbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSnackbarComponent, isStandalone: true, selector: "ids-snackbar", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, allowDismiss: { classPropertyName: "allowDismiss", publicName: "allowDismiss", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, urgent: { classPropertyName: "urgent", publicName: "urgent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { listeners: { "mouseenter": "_onMouseEnter()", "mouseleave": "_onMouseLeave()" }, properties: { "role": "_role()" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ids-snackbar__content-wrapper\" cdkTrapFocus cdkTrapFocusAutoCapture=\"true\">\n @let safeIcon = _safeIcon();\n @if (safeIcon) {\n <div class=\"ids-snackbar__leading-element\">\n <ids-icon [fontIcon]=\"safeIcon\" />\n </div>\n }\n\n <div class=\"ids-snackbar__message-action-container\">\n <div class=\"ids-snackbar__message\">{{ message() }}</div>\n <div class=\"ids-snackbar__action\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"callAction(action.action)\"\n >\n {{ action.label }}\n </button>\n }\n @let safeCloseButtonLabel = allowDismiss() && closeButtonLabel();\n @if (safeCloseButtonLabel) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n {{ safeCloseButtonLabel }}\n </button>\n }\n </div>\n </div>\n\n @if (allowDismiss() && !closeButtonLabel()) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsIconButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_iconButtonAppearance.STANDARD\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsButtonComponent, selector: "button[idsButton], a[idsButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSnackbarComponent, isStandalone: true, selector: "ids-snackbar", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, allowDismiss: { classPropertyName: "allowDismiss", publicName: "allowDismiss", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, urgent: { classPropertyName: "urgent", publicName: "urgent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, host: { listeners: { "mouseenter": "_onMouseEnter()", "mouseleave": "_onMouseLeave()" }, properties: { "role": "_role()" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ids-snackbar__content-wrapper\" cdkTrapFocus cdkTrapFocusAutoCapture=\"true\">\n @let safeIcon = _safeIcon();\n @if (safeIcon) {\n <div class=\"ids-snackbar__leading-element\">\n <ids-icon [fontIcon]=\"safeIcon\" />\n </div>\n }\n\n <div class=\"ids-snackbar__message-action-container\">\n <div class=\"ids-snackbar__message\">{{ message() }}</div>\n <div class=\"ids-snackbar__action\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"callAction(action.action)\"\n >\n {{ action.label }}\n </button>\n }\n @let safeCloseButtonLabel = allowDismiss() && closeButtonLabel();\n @if (safeCloseButtonLabel) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n {{ safeCloseButtonLabel }}\n </button>\n }\n </div>\n </div>\n\n @if (allowDismiss() && !closeButtonLabel()) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsIconButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_iconButtonAppearance.STANDARD\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n</div>\n", dependencies: [{ kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsButtonComponent, selector: "button[idsButton], a[idsButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
164
164
  }
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSnackbarComponent, decorators: [{
166
166
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-snackbar.mjs","sources":["../../../projects/widgets/snackbar/types/snackbar-position.type.ts","../../../projects/widgets/snackbar/types/snackbar-variant.type.ts","../../../projects/widgets/snackbar/snackbar-defaults.ts","../../../projects/widgets/snackbar/animations.ts","../../../projects/widgets/snackbar/snackbar.component.ts","../../../projects/widgets/snackbar/snackbar.component.html","../../../projects/widgets/snackbar/snackbar-group.component.ts","../../../projects/widgets/snackbar/snackbar-group.component.html","../../../projects/widgets/snackbar/snackbar-position-strategies.ts","../../../projects/widgets/snackbar/services/snackbar.service.ts","../../../projects/widgets/snackbar/i-cell-ids-angular-snackbar.ts"],"sourcesContent":["export const IdsSnackbarPosition = {\n BOTTOM_CENTER: 'bottom-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_CENTER: 'top-center',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n} as const;\n\nexport type IdsSnackbarPositionType = (typeof IdsSnackbarPosition)[keyof typeof IdsSnackbarPosition];\n","export const IdsSnackbarVariant = {\n DARK: 'dark',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsSnackbarVariantType = (typeof IdsSnackbarVariant)[keyof typeof IdsSnackbarVariant];\n","import { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\nimport { IdsSnackbarVariant, IdsSnackbarVariantType } from './types/snackbar-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport const READ_SPEED_PER_CHAR = 50;\nexport const MIN_DURATION = 2_000;\nexport const READ_SPEED_PER_ACTION = 2_000;\n\nexport interface IdsSnackbarDefaultConfig {\n size?: IdsSizeType\n variant?: IdsSnackbarVariantType\n position?: IdsSnackbarPositionType\n newestAtStartPosition?: boolean\n viewportMargin?: number\n}\n\nexport const IDS_SNACKBAR_DEFAULT_CONFIG = new InjectionToken<IdsSnackbarDefaultConfig>(\n 'IDS_SNACKBAR_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY(): (Required<IdsSnackbarDefaultConfig>) {\n return {\n size: IdsSize.COMFORTABLE,\n variant: IdsSnackbarVariant.DARK,\n position: IdsSnackbarPosition.BOTTOM_CENTER,\n newestAtStartPosition: false,\n viewportMargin: 16,\n };\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const snackbarAnimation: AnimationTriggerMetadata = trigger('snackbarAnimation', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'translate({{ translateX }}px, {{ translateY }}px)',\n height: '{{ height }}',\n }),\n animate(\n '0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n style({\n opacity: 1,\n transform: 'translate(0px, 0px)',\n height: '*',\n })),\n ], {\n params: {\n translateY: 0,\n translateX: 0,\n height: '0',\n },\n }),\n transition(':leave', [\n animate('1s ease-out', style({\n opacity: '0',\n transform: 'translate({{ translateX }}px, {{ translateY }}px)',\n height: '{{ height }}',\n })),\n ], {\n params: {\n translateY: 0,\n translateX: 0,\n height: '0',\n },\n }),\n]);\n","import { MIN_DURATION, READ_SPEED_PER_ACTION, READ_SPEED_PER_CHAR } from './snackbar-defaults';\nimport { IdsSnackbarAction } from './types/snackbar-data.type';\nimport { IdsSnackbarVariant, IdsSnackbarVariantType } from './types/snackbar-variant.type';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, computed, input, OnDestroy, output, ViewEncapsulation } from '@angular/core';\nimport { IdsButtonAppearance, IdsButtonComponent, IdsButtonVariant } from '@i-cell/ids-angular/button';\nimport { coerceBooleanAttribute, ComponentBase, IdsSize } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonAppearance, IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-snackbar',\n imports: [\n IdsIconButtonComponent,\n IdsIconComponent,\n IdsButtonComponent,\n A11yModule,\n ],\n templateUrl: './snackbar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[role]': '_role()',\n '(mouseenter)': '_onMouseEnter()',\n '(mouseleave)': '_onMouseLeave()',\n },\n})\nexport class IdsSnackbarComponent extends ComponentBase implements AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'snackbar';\n }\n\n private _timer?: ReturnType<typeof setTimeout>;\n\n protected readonly _size = IdsSize;\n protected readonly _iconButtonAppearance = IdsIconButtonAppearance;\n protected readonly _buttonAppearance = IdsButtonAppearance;\n\n public message = input.required<string>();\n public variant = input<IdsSnackbarVariantType | undefined>();\n public icon = input<string | undefined>();\n public actions = input<IdsSnackbarAction[] | undefined>([]);\n public allowDismiss = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n public closeButtonLabel = input<string | undefined>();\n public autoClose = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n public urgent = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n\n public closed = output<void>();\n\n private _canAutoClose = computed(() => !this.allowDismiss() && this.autoClose());\n private _duration = computed(() => {\n const actionReadDuration = (this.actions()?.length ?? 0) * READ_SPEED_PER_ACTION;\n return Math.max(this.message().length * READ_SPEED_PER_CHAR + actionReadDuration, MIN_DURATION);\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.variant(),\n this.allowDismiss() && !this.closeButtonLabel() ? 'width-close-x-button' : null,\n ]));\n\n private _role = computed(() => (this.urgent() ? 'alert' : 'status'));\n protected _buttonVariant = computed(() =>\n (this.variant() === IdsSnackbarVariant.DARK ? IdsButtonVariant.LIGHT : IdsButtonVariant.SURFACE));\n\n private _defaultIcon = computed<string | null>(() => {\n switch (this.variant()) {\n case IdsSnackbarVariant.DARK:\n return null;\n case IdsSnackbarVariant.INFO:\n return 'exclamation-circle';\n case IdsSnackbarVariant.SUCCESS:\n return 'check-circle';\n case IdsSnackbarVariant.WARNING:\n return 'exclamation-triangle';\n case IdsSnackbarVariant.ERROR:\n return 'exclamation-circle';\n\n default:\n return null;\n }\n });\n\n protected _safeIcon = computed(() => this.icon() ?? this._defaultIcon());\n\n private _onMouseEnter(): void {\n this._stopTimer();\n }\n\n private _onMouseLeave(): void {\n this._startTimer();\n }\n\n private _startTimer(): void {\n if (this._canAutoClose()) {\n this._timer = setTimeout(() => {\n this.close();\n }, this._duration());\n }\n }\n\n private _stopTimer(): void {\n if (this._canAutoClose()) {\n clearTimeout(this._timer);\n }\n }\n\n public ngAfterViewInit(): void {\n this._startTimer();\n }\n\n public close(): void {\n this._stopTimer();\n this.closed.emit();\n }\n\n public callAction(action: () => void): void {\n action();\n this.close();\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this._timer);\n }\n}\n","<div class=\"ids-snackbar__content-wrapper\" cdkTrapFocus cdkTrapFocusAutoCapture=\"true\">\n @let safeIcon = _safeIcon();\n @if (safeIcon) {\n <div class=\"ids-snackbar__leading-element\">\n <ids-icon [fontIcon]=\"safeIcon\" />\n </div>\n }\n\n <div class=\"ids-snackbar__message-action-container\">\n <div class=\"ids-snackbar__message\">{{ message() }}</div>\n <div class=\"ids-snackbar__action\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"callAction(action.action)\"\n >\n {{ action.label }}\n </button>\n }\n @let safeCloseButtonLabel = allowDismiss() && closeButtonLabel();\n @if (safeCloseButtonLabel) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n {{ safeCloseButtonLabel }}\n </button>\n }\n </div>\n </div>\n\n @if (allowDismiss() && !closeButtonLabel()) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsIconButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_iconButtonAppearance.STANDARD\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n</div>\n","import { snackbarAnimation } from './animations';\nimport { IdsSnackbarService } from './services/snackbar.service';\nimport { IDS_SNACKBAR_DEFAULT_CONFIG, IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY, IdsSnackbarDefaultConfig } from './snackbar-defaults';\nimport { IdsSnackbarComponent } from './snackbar.component';\nimport { IdsSnackbarInnerData } from './types/snackbar-inner-data.type';\nimport { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, Signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-snackbar-group',\n imports: [IdsSnackbarComponent],\n templateUrl: './snackbar-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [snackbarAnimation],\n})\nexport class IdsSnackbarGroupComponent extends ComponentBaseWithDefaults<IdsSnackbarDefaultConfig> {\n protected override get _hostName(): string {\n return 'snackbar-group';\n }\n\n private readonly _snackbarService = inject(IdsSnackbarService);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SNACKBAR_DEFAULT_CONFIG);\n\n public position = signal<IdsSnackbarPositionType>(this._defaultConfig.position);\n public snackbars: Signal<IdsSnackbarInnerData[]> = this._snackbarService.snackbars;\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._defaultConfig.size,\n [\n 'position',\n this.position(),\n ],\n this._defaultConfig.newestAtStartPosition ? 'newest-at-start' : null,\n ]));\n\n protected _animationParams = computed<{ translateY: number, translateX: number, height: string }>(() => {\n switch (this.position()) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return {\n translateY: 100,\n translateX: 0,\n height: '0',\n };\n case IdsSnackbarPosition.TOP_CENTER:\n return {\n translateY: -100,\n translateX: 0,\n height: '0',\n };\n case IdsSnackbarPosition.TOP_LEFT:\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return {\n translateY: 0,\n translateX: -100,\n height: '*',\n };\n case IdsSnackbarPosition.TOP_RIGHT:\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return {\n translateY: 0,\n translateX: 100,\n height: '*',\n };\n }\n });\n\n public closeSnackbar(id: number): void {\n this._snackbarService.remove(id);\n }\n\n protected _onAnimateStart(): void {\n this._updatePosition();\n }\n\n protected _onAnimateDone(): void {\n this._updatePosition();\n if (this._snackbarService.snackbars().length === 0) {\n this._snackbarService.clear();\n }\n }\n\n protected _updatePosition(): void {\n this._snackbarService.update();\n }\n}\n","@for (snackbar of snackbars(); track snackbar.id) {\n <ids-snackbar\n [@snackbarAnimation]=\"{\n value: 'open',\n params: _animationParams(),\n }\"\n [message]=\"snackbar.message\"\n [variant]=\"snackbar.variant\"\n [icon]=\"snackbar.icon\"\n [actions]=\"snackbar.actions\"\n [allowDismiss]=\"snackbar.allowDismiss\"\n [closeButtonLabel]=\"snackbar.closeButtonLabel\"\n [autoClose]=\"snackbar.autoClose\"\n [urgent]=\"snackbar.urgent\"\n (@snackbarAnimation.start)=\"_onAnimateStart()\"\n (@snackbarAnimation.done)=\"_onAnimateDone()\"\n (closed)=\"closeSnackbar(snackbar.id)\"\n />\n}\n","import { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\n\nimport { FlexibleConnectedPositionStrategy, GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport function getSnackbarFlexibleConnectedPositionStrategy(\n connectedTo: FlexibleConnectedPositionStrategy,\n snackbarPosition: IdsSnackbarPositionType,\n margin: number,\n): FlexibleConnectedPositionStrategy {\n switch (snackbarPosition) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return connectedTo.withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: 0 - margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_CENTER:\n return connectedTo.withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_LEFT:\n return connectedTo.withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: margin,\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_RIGHT:\n return connectedTo.withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0 - margin,\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return connectedTo.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: margin,\n offsetY: 0 - margin,\n },\n ]);\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return connectedTo.withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0 - margin,\n offsetY: 0 - margin,\n },\n ]);\n }\n}\n\nexport function getSnackbarGlobalPositionStrategy(\n globalPosition: GlobalPositionStrategy,\n position: IdsSnackbarPositionType,\n margin = 0,\n): GlobalPositionStrategy {\n const marginPx = `${margin}px`;\n switch (position) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return globalPosition.bottom(marginPx).centerHorizontally();\n case IdsSnackbarPosition.TOP_CENTER:\n return globalPosition.top(marginPx).centerHorizontally();\n case IdsSnackbarPosition.TOP_LEFT:\n return globalPosition.top(marginPx).left(marginPx);\n case IdsSnackbarPosition.TOP_RIGHT:\n return globalPosition.top(marginPx).right(marginPx);\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return globalPosition.bottom(marginPx).left(marginPx);\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return globalPosition.bottom(marginPx).right(marginPx);\n }\n}\n","import { IDS_SNACKBAR_DEFAULT_CONFIG, IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY } from '../snackbar-defaults';\nimport { IdsSnackbarGroupComponent } from '../snackbar-group.component';\nimport { getSnackbarFlexibleConnectedPositionStrategy, getSnackbarGlobalPositionStrategy } from '../snackbar-position-strategies';\nimport { IdsSnackbarData } from '../types/snackbar-data.type';\nimport { IdsSnackbarInnerData } from '../types/snackbar-inner-data.type';\n\nimport { Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable, signal, ViewContainerRef } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\n\nconst defaultConfig = IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY();\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdsSnackbarService {\n private readonly _router = inject(Router);\n private readonly _overlay = inject(Overlay);\n private readonly _defaultConfig = {\n ...defaultConfig,\n ...inject(IDS_SNACKBAR_DEFAULT_CONFIG, { optional: true }),\n };\n\n private _overlayRef?: OverlayRef;\n private _snackbarGroupPortal = new ComponentPortal(IdsSnackbarGroupComponent, null);\n private _viewContainerRef?: ViewContainerRef;\n private _snackbarNextUniqueId = 0;\n private _snackbars = signal<IdsSnackbarInnerData[]>([]);\n\n public snackbars = this._snackbars.asReadonly();\n\n constructor() {\n this._router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\n this.clear();\n });\n }\n\n private _attachGroup(): void {\n if (!this._overlayRef?.hasAttached()) {\n this._overlayRef = this._createOverlay();\n this._overlayRef.attach(this._snackbarGroupPortal);\n }\n }\n\n private _createOverlay(): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._getPositionStrategy(),\n hasBackdrop: false,\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n });\n return this._overlay.create(overlayConfig);\n }\n\n private _getPositionStrategy(): PositionStrategy {\n const position = this._overlay.position();\n const margin = this._defaultConfig.viewportMargin;\n if (this._viewContainerRef) {\n const connectedTo = position\n .flexibleConnectedTo(this._viewContainerRef.element);\n return getSnackbarFlexibleConnectedPositionStrategy(connectedTo, this._defaultConfig.position, margin);\n } else {\n const globalPosition = position.global();\n return getSnackbarGlobalPositionStrategy(globalPosition, this._defaultConfig.position, margin);\n }\n }\n\n private _detachGroup(): void {\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n\n public add(snackbar: IdsSnackbarData): void {\n if (this.snackbars().length === 0) {\n this._attachGroup();\n }\n this._snackbars.update((snackbars) => {\n const id = ++this._snackbarNextUniqueId;\n return [\n ...snackbars,\n {\n id,\n ...snackbar,\n },\n ];\n });\n }\n\n public remove(id: number): void {\n this._snackbars.update((snackbars) => {\n const index = snackbars.findIndex((snackbar) => snackbar.id === id);\n if (index !== -1) {\n const restSnackbars = [...snackbars];\n restSnackbars.splice(index, 1);\n return restSnackbars;\n }\n return snackbars;\n });\n }\n\n public clear(): void {\n this._snackbars.set([]);\n this._detachGroup();\n }\n\n public setViewContainerRef(viewContainerRef: ViewContainerRef): void {\n this._viewContainerRef = viewContainerRef;\n }\n\n public clearViewContainerRef(): void {\n this._viewContainerRef = undefined;\n }\n\n public update(): void {\n this._overlayRef?.updatePosition();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-snackbar.mjs","sources":["../../../projects/widgets/snackbar/types/snackbar-position.type.ts","../../../projects/widgets/snackbar/types/snackbar-variant.type.ts","../../../projects/widgets/snackbar/snackbar-defaults.ts","../../../projects/widgets/snackbar/animations.ts","../../../projects/widgets/snackbar/snackbar.component.ts","../../../projects/widgets/snackbar/snackbar.component.html","../../../projects/widgets/snackbar/snackbar-group.component.ts","../../../projects/widgets/snackbar/snackbar-group.component.html","../../../projects/widgets/snackbar/snackbar-position-strategies.ts","../../../projects/widgets/snackbar/services/snackbar.service.ts","../../../projects/widgets/snackbar/i-cell-ids-angular-snackbar.ts"],"sourcesContent":["export const IdsSnackbarPosition = {\n BOTTOM_CENTER: 'bottom-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_CENTER: 'top-center',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n} as const;\n\nexport type IdsSnackbarPositionType = (typeof IdsSnackbarPosition)[keyof typeof IdsSnackbarPosition];\n","export const IdsSnackbarVariant = {\n DARK: 'dark',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type IdsSnackbarVariantType = (typeof IdsSnackbarVariant)[keyof typeof IdsSnackbarVariant];\n","import { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\nimport { IdsSnackbarVariant, IdsSnackbarVariantType } from './types/snackbar-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport const READ_SPEED_PER_CHAR = 50;\nexport const MIN_DURATION = 2_000;\nexport const READ_SPEED_PER_ACTION = 2_000;\n\nexport interface IdsSnackbarDefaultConfig {\n size?: IdsSizeType\n variant?: IdsSnackbarVariantType\n position?: IdsSnackbarPositionType\n newestAtStartPosition?: boolean\n viewportMargin?: number\n}\n\nexport const IDS_SNACKBAR_DEFAULT_CONFIG = new InjectionToken<IdsSnackbarDefaultConfig>(\n 'IDS_SNACKBAR_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY(): (Required<IdsSnackbarDefaultConfig>) {\n return {\n size: IdsSize.COMFORTABLE,\n variant: IdsSnackbarVariant.DARK,\n position: IdsSnackbarPosition.BOTTOM_CENTER,\n newestAtStartPosition: false,\n viewportMargin: 16,\n };\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const snackbarAnimation: AnimationTriggerMetadata = trigger('snackbarAnimation', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'translate({{ translateX }}px, {{ translateY }}px)',\n height: '{{ height }}',\n }),\n animate(\n '0.7s cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n style({\n opacity: 1,\n transform: 'translate(0px, 0px)',\n height: '*',\n })),\n ], {\n params: {\n translateY: 0,\n translateX: 0,\n height: '0',\n },\n }),\n transition(':leave', [\n animate('1s ease-out', style({\n opacity: '0',\n transform: 'translate({{ translateX }}px, {{ translateY }}px)',\n height: '{{ height }}',\n })),\n ], {\n params: {\n translateY: 0,\n translateX: 0,\n height: '0',\n },\n }),\n]);\n","import { MIN_DURATION, READ_SPEED_PER_ACTION, READ_SPEED_PER_CHAR } from './snackbar-defaults';\nimport { IdsSnackbarAction } from './types/snackbar-data.type';\nimport { IdsSnackbarVariant, IdsSnackbarVariantType } from './types/snackbar-variant.type';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, computed, input, OnDestroy, output, ViewEncapsulation } from '@angular/core';\nimport { IdsButtonAppearance, IdsButtonComponent, IdsButtonVariant } from '@i-cell/ids-angular/button';\nimport { coerceBooleanAttribute, ComponentBase, IdsSize } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonAppearance, IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-snackbar',\n imports: [\n IdsIconButtonComponent,\n IdsIconComponent,\n IdsButtonComponent,\n A11yModule,\n ],\n templateUrl: './snackbar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[role]': '_role()',\n '(mouseenter)': '_onMouseEnter()',\n '(mouseleave)': '_onMouseLeave()',\n },\n})\nexport class IdsSnackbarComponent extends ComponentBase implements AfterViewInit, OnDestroy {\n protected override get _hostName(): string {\n return 'snackbar';\n }\n\n private _timer?: ReturnType<typeof setTimeout>;\n\n protected readonly _size = IdsSize;\n protected readonly _iconButtonAppearance = IdsIconButtonAppearance;\n protected readonly _buttonAppearance = IdsButtonAppearance;\n\n public message = input.required<string>();\n public variant = input<IdsSnackbarVariantType | undefined>();\n public icon = input<string | undefined>();\n public actions = input<IdsSnackbarAction[] | undefined>([]);\n public allowDismiss = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n public closeButtonLabel = input<string | undefined>();\n public autoClose = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n public urgent = input<boolean, boolean | undefined>(false, { transform: coerceBooleanAttribute });\n\n public closed = output<void>();\n\n private _canAutoClose = computed(() => !this.allowDismiss() && this.autoClose());\n private _duration = computed(() => {\n const actionReadDuration = (this.actions()?.length ?? 0) * READ_SPEED_PER_ACTION;\n return Math.max(this.message().length * READ_SPEED_PER_CHAR + actionReadDuration, MIN_DURATION);\n });\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.variant(),\n this.allowDismiss() && !this.closeButtonLabel() ? 'width-close-x-button' : null,\n ]));\n\n private _role = computed(() => (this.urgent() ? 'alert' : 'status'));\n protected _buttonVariant = computed(() =>\n (this.variant() === IdsSnackbarVariant.DARK ? IdsButtonVariant.LIGHT : IdsButtonVariant.SURFACE));\n\n private _defaultIcon = computed<string | null>(() => {\n switch (this.variant()) {\n case IdsSnackbarVariant.DARK:\n return null;\n case IdsSnackbarVariant.INFO:\n return 'exclamation-circle';\n case IdsSnackbarVariant.SUCCESS:\n return 'check-circle';\n case IdsSnackbarVariant.WARNING:\n return 'exclamation-triangle';\n case IdsSnackbarVariant.ERROR:\n return 'exclamation-circle';\n\n default:\n return null;\n }\n });\n\n protected _safeIcon = computed(() => this.icon() ?? this._defaultIcon());\n\n private _onMouseEnter(): void {\n this._stopTimer();\n }\n\n private _onMouseLeave(): void {\n this._startTimer();\n }\n\n private _startTimer(): void {\n if (this._canAutoClose()) {\n this._timer = setTimeout(() => {\n this.close();\n }, this._duration());\n }\n }\n\n private _stopTimer(): void {\n if (this._canAutoClose()) {\n clearTimeout(this._timer);\n }\n }\n\n public ngAfterViewInit(): void {\n this._startTimer();\n }\n\n public close(): void {\n this._stopTimer();\n this.closed.emit();\n }\n\n public callAction(action: () => void): void {\n action();\n this.close();\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this._timer);\n }\n}\n","<div class=\"ids-snackbar__content-wrapper\" cdkTrapFocus cdkTrapFocusAutoCapture=\"true\">\n @let safeIcon = _safeIcon();\n @if (safeIcon) {\n <div class=\"ids-snackbar__leading-element\">\n <ids-icon [fontIcon]=\"safeIcon\" />\n </div>\n }\n\n <div class=\"ids-snackbar__message-action-container\">\n <div class=\"ids-snackbar__message\">{{ message() }}</div>\n <div class=\"ids-snackbar__action\">\n @for (action of actions(); track $index) {\n <button\n type=\"button\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"callAction(action.action)\"\n >\n {{ action.label }}\n </button>\n }\n @let safeCloseButtonLabel = allowDismiss() && closeButtonLabel();\n @if (safeCloseButtonLabel) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_buttonAppearance.OUTLINED\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n {{ safeCloseButtonLabel }}\n </button>\n }\n </div>\n </div>\n\n @if (allowDismiss() && !closeButtonLabel()) {\n <button\n type=\"button\"\n role=\"button\"\n aria-label=\"Close notification\"\n idsIconButton\n [size]=\"_size.COMPACT\"\n [appearance]=\"_iconButtonAppearance.STANDARD\"\n [variant]=\"_buttonVariant()\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n</div>\n","import { snackbarAnimation } from './animations';\nimport { IdsSnackbarService } from './services/snackbar.service';\nimport { IDS_SNACKBAR_DEFAULT_CONFIG, IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY, IdsSnackbarDefaultConfig } from './snackbar-defaults';\nimport { IdsSnackbarComponent } from './snackbar.component';\nimport { IdsSnackbarInnerData } from './types/snackbar-inner-data.type';\nimport { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\n\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, Signal, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-snackbar-group',\n imports: [IdsSnackbarComponent],\n templateUrl: './snackbar-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [snackbarAnimation],\n})\nexport class IdsSnackbarGroupComponent extends ComponentBaseWithDefaults<IdsSnackbarDefaultConfig> {\n protected override get _hostName(): string {\n return 'snackbar-group';\n }\n\n private readonly _snackbarService = inject(IdsSnackbarService);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_SNACKBAR_DEFAULT_CONFIG);\n\n public position = signal<IdsSnackbarPositionType>(this._defaultConfig.position);\n public snackbars: Signal<IdsSnackbarInnerData[]> = this._snackbarService.snackbars;\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this._defaultConfig.size,\n [\n 'position',\n this.position(),\n ],\n this._defaultConfig.newestAtStartPosition ? 'newest-at-start' : null,\n ]));\n\n protected _animationParams = computed<{ translateY: number, translateX: number, height: string }>(() => {\n switch (this.position()) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return {\n translateY: 100,\n translateX: 0,\n height: '0',\n };\n case IdsSnackbarPosition.TOP_CENTER:\n return {\n translateY: -100,\n translateX: 0,\n height: '0',\n };\n case IdsSnackbarPosition.TOP_LEFT:\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return {\n translateY: 0,\n translateX: -100,\n height: '*',\n };\n case IdsSnackbarPosition.TOP_RIGHT:\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return {\n translateY: 0,\n translateX: 100,\n height: '*',\n };\n }\n });\n\n public closeSnackbar(id: number): void {\n this._snackbarService.remove(id);\n }\n\n protected _onAnimateStart(): void {\n this._updatePosition();\n }\n\n protected _onAnimateDone(): void {\n this._updatePosition();\n if (this._snackbarService.snackbars().length === 0) {\n this._snackbarService.clear();\n }\n }\n\n protected _updatePosition(): void {\n this._snackbarService.update();\n }\n}\n","@for (snackbar of snackbars(); track snackbar.id) {\n <ids-snackbar\n [@snackbarAnimation]=\"{\n value: 'open',\n params: _animationParams(),\n }\"\n [message]=\"snackbar.message\"\n [variant]=\"snackbar.variant\"\n [icon]=\"snackbar.icon\"\n [actions]=\"snackbar.actions\"\n [allowDismiss]=\"snackbar.allowDismiss\"\n [closeButtonLabel]=\"snackbar.closeButtonLabel\"\n [autoClose]=\"snackbar.autoClose\"\n [urgent]=\"snackbar.urgent\"\n (@snackbarAnimation.start)=\"_onAnimateStart()\"\n (@snackbarAnimation.done)=\"_onAnimateDone()\"\n (closed)=\"closeSnackbar(snackbar.id)\"\n />\n}\n","import { IdsSnackbarPosition, IdsSnackbarPositionType } from './types/snackbar-position.type';\n\nimport { FlexibleConnectedPositionStrategy, GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport function getSnackbarFlexibleConnectedPositionStrategy(\n connectedTo: FlexibleConnectedPositionStrategy,\n snackbarPosition: IdsSnackbarPositionType,\n margin: number,\n): FlexibleConnectedPositionStrategy {\n switch (snackbarPosition) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return connectedTo.withPositions([\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: 0 - margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_CENTER:\n return connectedTo.withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_LEFT:\n return connectedTo.withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: margin,\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.TOP_RIGHT:\n return connectedTo.withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0 - margin,\n offsetY: margin,\n },\n ]);\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return connectedTo.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: margin,\n offsetY: 0 - margin,\n },\n ]);\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return connectedTo.withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: 0 - margin,\n offsetY: 0 - margin,\n },\n ]);\n }\n}\n\nexport function getSnackbarGlobalPositionStrategy(\n globalPosition: GlobalPositionStrategy,\n position: IdsSnackbarPositionType,\n margin = 0,\n): GlobalPositionStrategy {\n const marginPx = `${margin}px`;\n switch (position) {\n case IdsSnackbarPosition.BOTTOM_CENTER:\n return globalPosition.bottom(marginPx).centerHorizontally();\n case IdsSnackbarPosition.TOP_CENTER:\n return globalPosition.top(marginPx).centerHorizontally();\n case IdsSnackbarPosition.TOP_LEFT:\n return globalPosition.top(marginPx).left(marginPx);\n case IdsSnackbarPosition.TOP_RIGHT:\n return globalPosition.top(marginPx).right(marginPx);\n case IdsSnackbarPosition.BOTTOM_LEFT:\n return globalPosition.bottom(marginPx).left(marginPx);\n case IdsSnackbarPosition.BOTTOM_RIGHT:\n return globalPosition.bottom(marginPx).right(marginPx);\n }\n}\n","import { IDS_SNACKBAR_DEFAULT_CONFIG, IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY } from '../snackbar-defaults';\nimport { IdsSnackbarGroupComponent } from '../snackbar-group.component';\nimport { getSnackbarFlexibleConnectedPositionStrategy, getSnackbarGlobalPositionStrategy } from '../snackbar-position-strategies';\nimport { IdsSnackbarData } from '../types/snackbar-data.type';\nimport { IdsSnackbarInnerData } from '../types/snackbar-inner-data.type';\n\nimport { Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable, signal, ViewContainerRef } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\n\nconst defaultConfig = IDS_SNACKBAR_DEFAULT_CONFIG_FACTORY();\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IdsSnackbarService {\n private readonly _router = inject(Router);\n private readonly _overlay = inject(Overlay);\n private readonly _defaultConfig = {\n ...defaultConfig,\n ...inject(IDS_SNACKBAR_DEFAULT_CONFIG, { optional: true }),\n };\n\n private _overlayRef?: OverlayRef;\n private _snackbarGroupPortal = new ComponentPortal(IdsSnackbarGroupComponent, null);\n private _viewContainerRef?: ViewContainerRef;\n private _snackbarNextUniqueId = 0;\n private _snackbars = signal<IdsSnackbarInnerData[]>([]);\n\n public snackbars = this._snackbars.asReadonly();\n\n constructor() {\n this._router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\n this.clear();\n });\n }\n\n private _attachGroup(): void {\n if (!this._overlayRef?.hasAttached()) {\n this._overlayRef = this._createOverlay();\n this._overlayRef.attach(this._snackbarGroupPortal);\n }\n }\n\n private _createOverlay(): OverlayRef {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this._getPositionStrategy(),\n hasBackdrop: false,\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n });\n return this._overlay.create(overlayConfig);\n }\n\n private _getPositionStrategy(): PositionStrategy {\n const position = this._overlay.position();\n const margin = this._defaultConfig.viewportMargin;\n if (this._viewContainerRef) {\n const connectedTo = position\n .flexibleConnectedTo(this._viewContainerRef.element);\n return getSnackbarFlexibleConnectedPositionStrategy(connectedTo, this._defaultConfig.position, margin);\n } else {\n const globalPosition = position.global();\n return getSnackbarGlobalPositionStrategy(globalPosition, this._defaultConfig.position, margin);\n }\n }\n\n private _detachGroup(): void {\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n\n public add(snackbar: IdsSnackbarData): void {\n if (this.snackbars().length === 0) {\n this._attachGroup();\n }\n this._snackbars.update((snackbars) => {\n const id = ++this._snackbarNextUniqueId;\n return [\n ...snackbars,\n {\n id,\n ...snackbar,\n },\n ];\n });\n }\n\n public remove(id: number): void {\n this._snackbars.update((snackbars) => {\n const index = snackbars.findIndex((snackbar) => snackbar.id === id);\n if (index !== -1) {\n const restSnackbars = [...snackbars];\n restSnackbars.splice(index, 1);\n return restSnackbars;\n }\n return snackbars;\n });\n }\n\n public clear(): void {\n this._snackbars.set([]);\n this._detachGroup();\n }\n\n public setViewContainerRef(viewContainerRef: ViewContainerRef): void {\n this._viewContainerRef = viewContainerRef;\n }\n\n public clearViewContainerRef(): void {\n this._viewContainerRef = undefined;\n }\n\n public update(): void {\n this._overlayRef?.updatePosition();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":";;;;;;;;;;;;;;AAAO,MAAM,mBAAmB,GAAG;AACjC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,SAAS,EAAE,WAAW;;;ACNjB,MAAM,kBAAkB,GAAG;AAChC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;;;ACCT,MAAM,mBAAmB,GAAG;AAC5B,MAAM,YAAY,GAAG;AACrB,MAAM,qBAAqB,GAAG;MAUxB,2BAA2B,GAAG,IAAI,cAAc,CAC3D,6BAA6B,EAC7B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,mCAAmC;AAC7C,CAAA;SAGa,mCAAmC,GAAA;IACjD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,WAAW;QACzB,OAAO,EAAE,kBAAkB,CAAC,IAAI;QAChC,QAAQ,EAAE,mBAAmB,CAAC,aAAa;AAC3C,QAAA,qBAAqB,EAAE,KAAK;AAC5B,QAAA,cAAc,EAAE,EAAE;KACnB;AACH;;AChCO,MAAM,iBAAiB,GAA6B,OAAO,CAAC,mBAAmB,EAAE;IACtF,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,KAAK,CAAC;AACJ,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,mDAAmD;AAC9D,YAAA,MAAM,EAAE,cAAc;SACvB,CAAC;AACF,QAAA,OAAO,CACL,+CAA+C,EAC/C,KAAK,CAAC;AACJ,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,SAAS,EAAE,qBAAqB;AAChC,YAAA,MAAM,EAAE,GAAG;AACZ,SAAA,CAAC,CAAC;KACN,EAAE;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,MAAM,EAAE,GAAG;AACZ,SAAA;KACF,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE;AACnB,QAAA,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;AAC3B,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,SAAS,EAAE,mDAAmD;AAC9D,YAAA,MAAM,EAAE,cAAc;AACvB,SAAA,CAAC,CAAC;KACJ,EAAE;AACD,QAAA,MAAM,EAAE;AACN,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,MAAM,EAAE,GAAG;AACZ,SAAA;KACF,CAAC;AACH,CAAA,CAAC;;ACRI,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAjBvD,IAAA,WAAA,GAAA;;QAwBqB,IAAA,CAAA,KAAK,GAAG,OAAO;QACf,IAAA,CAAA,qBAAqB,GAAG,uBAAuB;QAC/C,IAAA,CAAA,iBAAiB,GAAG,mBAAmB;AAEnD,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,kDAAU;QAClC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsC;QACrD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAClC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkC,EAAE,mDAAC;AACpD,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAA+B,KAAK,gDAAI,SAAS,EAAE,sBAAsB,EAAA,CAAA,GAAA,CAAnC,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAC;QAChG,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAA+B,KAAK,6CAAI,SAAS,EAAE,sBAAsB,EAAA,CAAA,GAAA,CAAnC,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAC;AAC7F,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA+B,KAAK,0CAAI,SAAS,EAAE,sBAAsB,EAAA,CAAA,GAAA,CAAnC,EAAE,SAAS,EAAE,sBAAsB,EAAE,GAAC;QAE1F,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;AAEtB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,yDAAC;AACxE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,IAAI,CAAC,IAAI,qBAAqB;AAChF,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,mBAAmB,GAAG,kBAAkB,EAAE,YAAY,CAAC;AACjG,QAAA,CAAC,qDAAC;QAEQ,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,sBAAsB,GAAG,IAAI;AAChF,SAAA,CAAC,wDAAC;QAEK,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,GAAG,QAAQ,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC1D,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,OACjC,IAAI,CAAC,OAAO,EAAE,KAAK,kBAAkB,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,0DAAC;AAE3F,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAgB,MAAK;AAClD,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;gBACpB,KAAK,kBAAkB,CAAC,IAAI;AAC1B,oBAAA,OAAO,IAAI;gBACb,KAAK,kBAAkB,CAAC,IAAI;AAC1B,oBAAA,OAAO,oBAAoB;gBAC7B,KAAK,kBAAkB,CAAC,OAAO;AAC7B,oBAAA,OAAO,cAAc;gBACvB,KAAK,kBAAkB,CAAC,OAAO;AAC7B,oBAAA,OAAO,sBAAsB;gBAC/B,KAAK,kBAAkB,CAAC,KAAK;AAC3B,oBAAA,OAAO,oBAAoB;AAE7B,gBAAA;AACE,oBAAA,OAAO,IAAI;;AAEjB,QAAA,CAAC,wDAAC;AAEQ,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,qDAAC;AAyCzE,IAAA;AA/FC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,UAAU;IACnB;IAsDQ,aAAa,GAAA;QACnB,IAAI,CAAC,UAAU,EAAE;IACnB;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAK;gBAC5B,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B;IACF;IAEO,eAAe,GAAA;QACpB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;AAEO,IAAA,UAAU,CAAC,MAAkB,EAAA;AAClC,QAAA,MAAM,EAAE;QACR,IAAI,CAAC,KAAK,EAAE;IACd;IAEO,WAAW,GAAA;AAChB,QAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B;8GA/FW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BjC,gsDAwDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1CI,sBAAsB,iKACtB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,kBAAkB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAWD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,OAAA,EACf;wBACP,sBAAsB;wBACtB,gBAAgB;wBAChB,kBAAkB;wBAClB,UAAU;AACX,qBAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,cAAc,EAAE,iBAAiB;AACjC,wBAAA,cAAc,EAAE,iBAAiB;AAClC,qBAAA,EAAA,QAAA,EAAA,gsDAAA,EAAA;;;AEhBH,MAAMA,eAAa,GAAG,mCAAmC,EAAE;AAUrD,MAAO,yBAA0B,SAAQ,yBAAmD,CAAA;AARlG,IAAA,WAAA,GAAA;;AAamB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC3C,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAACA,eAAa,EAAE,2BAA2B,CAAC;QAE/F,IAAA,CAAA,QAAQ,GAAG,MAAM,CAA0B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACxE,QAAA,IAAA,CAAA,SAAS,GAAmC,IAAI,CAAC,gBAAgB,CAAC,SAAS;QAExE,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAO,IAAI,CAAC,eAAe,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,IAAI;AACxB,YAAA;gBACE,UAAU;gBACV,IAAI,CAAC,QAAQ,EAAE;AAChB,aAAA;YACD,IAAI,CAAC,cAAc,CAAC,qBAAqB,GAAG,iBAAiB,GAAG,IAAI;AACrE,SAAA,CAAC,wDAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAA6D,MAAK;AACrG,YAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACrB,KAAK,mBAAmB,CAAC,aAAa;oBACpC,OAAO;AACL,wBAAA,UAAU,EAAE,GAAG;AACf,wBAAA,UAAU,EAAE,CAAC;AACb,wBAAA,MAAM,EAAE,GAAG;qBACZ;gBACH,KAAK,mBAAmB,CAAC,UAAU;oBACjC,OAAO;wBACL,UAAU,EAAE,CAAC,GAAG;AAChB,wBAAA,UAAU,EAAE,CAAC;AACb,wBAAA,MAAM,EAAE,GAAG;qBACZ;gBACH,KAAK,mBAAmB,CAAC,QAAQ;gBACjC,KAAK,mBAAmB,CAAC,WAAW;oBAClC,OAAO;AACL,wBAAA,UAAU,EAAE,CAAC;wBACb,UAAU,EAAE,CAAC,GAAG;AAChB,wBAAA,MAAM,EAAE,GAAG;qBACZ;gBACH,KAAK,mBAAmB,CAAC,SAAS;gBAClC,KAAK,mBAAmB,CAAC,YAAY;oBACnC,OAAO;AACL,wBAAA,UAAU,EAAE,CAAC;AACb,wBAAA,UAAU,EAAE,GAAG;AACf,wBAAA,MAAM,EAAE,GAAG;qBACZ;;AAEP,QAAA,CAAC,4DAAC;AAoBH,IAAA;AApEC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,gBAAgB;IACzB;AAgDO,IAAA,aAAa,CAAC,EAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC;IAEU,eAAe,GAAA;QACvB,IAAI,CAAC,eAAe,EAAE;IACxB;IAEU,cAAc,GAAA;QACtB,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC/B;IACF;IAEU,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;IAChC;8GApEW,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,qGCpBtC,goBAmBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAIlB,CAAC,iBAAiB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEpB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB,CAAC,oBAAoB,CAAC,iBAEhB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,goBAAA,EAAA;;;SEdjB,4CAA4C,CAC1D,WAA8C,EAC9C,gBAAyC,EACzC,MAAc,EAAA;IAEd,QAAQ,gBAAgB;QACtB,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC,GAAG,MAAM;AACpB,iBAAA;AACF,aAAA,CAAC;QACJ,KAAK,mBAAmB,CAAC,UAAU;YACjC,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,OAAO,EAAE,MAAM;AAChB,iBAAA;AACF,aAAA,CAAC;QACJ,KAAK,mBAAmB,CAAC,QAAQ;YAC/B,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,OAAO,EAAE,MAAM;AAChB,iBAAA;AACF,aAAA,CAAC;QACJ,KAAK,mBAAmB,CAAC,SAAS;YAChC,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,CAAC,GAAG,MAAM;AACnB,oBAAA,OAAO,EAAE,MAAM;AAChB,iBAAA;AACF,aAAA,CAAC;QACJ,KAAK,mBAAmB,CAAC,WAAW;YAClC,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,OAAO,EAAE,MAAM;oBACf,OAAO,EAAE,CAAC,GAAG,MAAM;AACpB,iBAAA;AACF,aAAA,CAAC;QACJ,KAAK,mBAAmB,CAAC,YAAY;YACnC,OAAO,WAAW,CAAC,aAAa,CAAC;AAC/B,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC,GAAG,MAAM;oBACnB,OAAO,EAAE,CAAC,GAAG,MAAM;AACpB,iBAAA;AACF,aAAA,CAAC;;AAER;AAEM,SAAU,iCAAiC,CAC/C,cAAsC,EACtC,QAAiC,EACjC,MAAM,GAAG,CAAC,EAAA;AAEV,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,MAAM,IAAI;IAC9B,QAAQ,QAAQ;QACd,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE;QAC7D,KAAK,mBAAmB,CAAC,UAAU;YACjC,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE;QAC1D,KAAK,mBAAmB,CAAC,QAAQ;YAC/B,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpD,KAAK,mBAAmB,CAAC,SAAS;YAChC,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrD,KAAK,mBAAmB,CAAC,WAAW;YAClC,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvD,KAAK,mBAAmB,CAAC,YAAY;YACnC,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE5D;;ACrFA,MAAM,aAAa,GAAG,mCAAmC,EAAE;MAK9C,kBAAkB,CAAA;AAgB7B,IAAA,WAAA,GAAA;AAfiB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAG;AAChC,YAAA,GAAG,aAAa;YAChB,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC3D;QAGO,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAC,yBAAyB,EAAE,IAAI,CAAC;QAE3E,IAAA,CAAA,qBAAqB,GAAG,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAyB,EAAE,sDAAC;AAEhD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;QAG7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACzF,IAAI,CAAC,KAAK,EAAE;AACd,QAAA,CAAC,CAAC;IACJ;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACpD;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;AACtC,YAAA,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,EAAE;AAC7C,YAAA,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACtD,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;IAC5C;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACzC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;AACjD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,MAAM,WAAW,GAAG;AACjB,iBAAA,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;AACtD,YAAA,OAAO,4CAA4C,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxG;aAAO;AACL,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE;AACxC,YAAA,OAAO,iCAAiC,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;QAChG;IACF;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;IAC7B;AAEO,IAAA,GAAG,CAAC,QAAyB,EAAA;QAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,EAAE;QACrB;QACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAAI;AACnC,YAAA,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,qBAAqB;YACvC,OAAO;AACL,gBAAA,GAAG,SAAS;AACZ,gBAAA;oBACE,EAAE;AACF,oBAAA,GAAG,QAAQ;AACZ,iBAAA;aACF;AACH,QAAA,CAAC,CAAC;IACJ;AAEO,IAAA,MAAM,CAAC,EAAU,EAAA;QACtB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAAI;AACnC,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;AACnE,YAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,gBAAA,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC;AACpC,gBAAA,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9B,gBAAA,OAAO,aAAa;YACtB;AACA,YAAA,OAAO,SAAS;AAClB,QAAA,CAAC,CAAC;IACJ;IAEO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE;IACrB;AAEO,IAAA,mBAAmB,CAAC,gBAAkC,EAAA;AAC3D,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;IAC3C;IAEO,qBAAqB,GAAA;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;IACpC;IAEO,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE;IACpC;8GAnGW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AChBD;;AAEG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { DEFAULT_PAGE_SIZE } from '@i-cell/ids-angular/paginator';
2
2
  import { BehaviorSubject, Subject, map, merge, debounceTime, switchMap, Observable, catchError, of, tap, finalize, startWith } from 'rxjs';
3
3
  import * as i0 from '@angular/core';
4
- import { input, Directive, inject, TemplateRef, InjectionToken, Injectable, Optional, SkipSelf, ElementRef, computed, signal, Component, ChangeDetectorRef, viewChildren, contentChildren, output, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
4
+ import { input, Directive, inject, TemplateRef, InjectionToken, Injectable, Optional, SkipSelf, ElementRef, computed, signal, Component, ChangeDetectorRef, viewChildren, contentChildren, contentChild, output, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
5
5
  import { isTypeDerivedFrom, isString, IdsSize, ComponentBaseWithDefaults, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
6
6
  import { NgComponentOutlet, NgTemplateOutlet, NgClass } from '@angular/common';
7
7
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -144,6 +144,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
144
144
  }]
145
145
  }] });
146
146
 
147
+ class IdsTableSortAscIconDirective {
148
+ constructor() {
149
+ this.templateRef = inject((TemplateRef));
150
+ }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortAscIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
152
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: IdsTableSortAscIconDirective, isStandalone: true, selector: "ng-template[idsTableSortAscIcon]", ngImport: i0 }); }
153
+ }
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortAscIconDirective, decorators: [{
155
+ type: Directive,
156
+ args: [{
157
+ selector: 'ng-template[idsTableSortAscIcon]',
158
+ standalone: true,
159
+ }]
160
+ }] });
161
+ class IdsTableSortDescIconDirective {
162
+ constructor() {
163
+ this.templateRef = inject((TemplateRef));
164
+ }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortDescIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
166
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: IdsTableSortDescIconDirective, isStandalone: true, selector: "ng-template[idsTableSortDescIcon]", ngImport: i0 }); }
167
+ }
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortDescIconDirective, decorators: [{
169
+ type: Directive,
170
+ args: [{
171
+ selector: 'ng-template[idsTableSortDescIcon]',
172
+ standalone: true,
173
+ }]
174
+ }] });
175
+ class IdsTableSortNoneIconDirective {
176
+ constructor() {
177
+ this.templateRef = inject((TemplateRef));
178
+ }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortNoneIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
180
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: IdsTableSortNoneIconDirective, isStandalone: true, selector: "ng-template[idsTableSortNoneIcon]", ngImport: i0 }); }
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableSortNoneIconDirective, decorators: [{
183
+ type: Directive,
184
+ args: [{
185
+ selector: 'ng-template[idsTableSortNoneIcon]',
186
+ standalone: true,
187
+ }]
188
+ }] });
189
+
147
190
  const IdsTableAppearance = {
148
191
  PLAIN: 'plain',
149
192
  LINE_DIVISION: 'line-division',
@@ -346,6 +389,9 @@ class IdsTableComponent extends ComponentBaseWithDefaults {
346
389
  this._selectorCheckboxes = viewChildren(IdsCheckboxComponent, ...(ngDevMode ? [{ debugName: "_selectorCheckboxes" }] : []));
347
390
  this._cellContentRenderers = viewChildren((IdsCellContentComponent), ...(ngDevMode ? [{ debugName: "_cellContentRenderers" }] : []));
348
391
  this._contentCellTemplates = contentChildren(IdsTableCellTemplateDirective, ...(ngDevMode ? [{ debugName: "_contentCellTemplates" }] : []));
392
+ this._sortAscIconTemplate = contentChild(IdsTableSortAscIconDirective, ...(ngDevMode ? [{ debugName: "_sortAscIconTemplate" }] : []));
393
+ this._sortDescIconTemplate = contentChild(IdsTableSortDescIconDirective, ...(ngDevMode ? [{ debugName: "_sortDescIconTemplate" }] : []));
394
+ this._sortNoneIconTemplate = contentChild(IdsTableSortNoneIconDirective, ...(ngDevMode ? [{ debugName: "_sortNoneIconTemplate" }] : []));
349
395
  this.columnDefs = input.required(...(ngDevMode ? [{ debugName: "columnDefs" }] : []));
350
396
  this.dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : []));
351
397
  /** Flag to have sticky header. */
@@ -601,7 +647,7 @@ class IdsTableComponent extends ComponentBaseWithDefaults {
601
647
  this.rowSelection.select(...data);
602
648
  }
603
649
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
604
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsTableComponent, isStandalone: true, selector: "ids-table", inputs: { columnDefs: { classPropertyName: "columnDefs", publicName: "columnDefs", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, fixedHeader: { classPropertyName: "fixedHeader", publicName: "fixedHeader", isSignal: true, isRequired: false, transformFunction: null }, enableSorting: { classPropertyName: "enableSorting", publicName: "enableSorting", isSignal: true, isRequired: false, transformFunction: null }, masterDetail: { classPropertyName: "masterDetail", publicName: "masterDetail", isSignal: true, isRequired: false, transformFunction: null }, detailTemplateName: { classPropertyName: "detailTemplateName", publicName: "detailTemplateName", isSignal: true, isRequired: false, transformFunction: null }, detailStickyColumns: { classPropertyName: "detailStickyColumns", publicName: "detailStickyColumns", isSignal: true, isRequired: false, transformFunction: null }, showDetailHeader: { classPropertyName: "showDetailHeader", publicName: "showDetailHeader", isSignal: true, isRequired: false, transformFunction: null }, hasDetailRow: { classPropertyName: "hasDetailRow", publicName: "hasDetailRow", isSignal: true, isRequired: false, transformFunction: null }, enableRowSelection: { classPropertyName: "enableRowSelection", publicName: "enableRowSelection", isSignal: true, isRequired: false, transformFunction: null }, clearSelectionOnChange: { classPropertyName: "clearSelectionOnChange", publicName: "clearSelectionOnChange", isSignal: true, isRequired: false, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, noRowsToShowOverlayBelow: { classPropertyName: "noRowsToShowOverlayBelow", publicName: "noRowsToShowOverlayBelow", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange", cellClick: "cellClick", rowClick: "rowClick", rowKeydown: "rowKeydown", contentChanged: "contentChanged" }, providers: [{ provide: IDS_ICON_BUTTON_PARENT, useExisting: IdsTableComponent }], queries: [{ propertyName: "_contentCellTemplates", predicate: IdsTableCellTemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "_viewCellTemplates", predicate: IdsTableCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "_rowDataHolders", predicate: (RowInfoHolderDirective), descendants: true, isSignal: true }, { propertyName: "_selectorCheckboxes", predicate: IdsCheckboxComponent, descendants: true, isSignal: true }, { propertyName: "_cellContentRenderers", predicate: (IdsCellContentComponent), descendants: true, isSignal: true }], exportAs: ["idsTable"], usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/prefer-self-closing-tags -->\n\n<!-- Empty table message template -->\n<ng-template #noRowsToShow>\n <div class=\"ids-table__no-rows-to-show\">\n <ng-content select=\"[idsNoRowsToShow]\">No rows to show</ng-content>\n </div>\n</ng-template>\n\n<!-- Default detail cell template (a table showing the non-visible columns) -->\n<ng-template #defaultDetail let-row let-cols=\"cols\" [idsCellTemplate]=\"_defaultMasterDetailTemplateName\">\n <ids-table appearance=\"zebra\" [dataSource]=\"[row]\" [columnDefs]=\"cols\"></ids-table>\n</ng-template>\n\n<!-- TODO: Loading spinner -->\n\n<div class=\"ids-table__horizontal-scroll\">\n <table\n cdk-table\n cdkDropListGroup\n multiTemplateDataRows\n [id]=\"id()\"\n [dataSource]=\"dataSource()\"\n (contentChanged)=\"_tableContentChanged()\"\n >\n <caption><ng-content select=\"[idsTableCaption]\"></ng-content></caption>\n\n <!-- Column and row definitions for row selection -->\n <ng-container cdkColumnDef=\"$selectBoxes\" sticky>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n role=\"cell\"\n class=\"ids-table__header-cell ids-table__header-cell--select-all-rows\"\n >\n @let isRowSelected = rowSelection.hasValue();\n @let isTableVariantPrimary = variant() === 'primary';\n <ids-checkbox\n [indeterminate]=\"isRowSelected && !_isAllSelected()\"\n [checked]=\"isRowSelected && _isAllSelected()\"\n [disabled]=\"_isSelectAllDisabled()\"\n [aria-label]=\"_intl.headerSelectorAriaLabel\"\n [variant]=\"isTableVariantPrimary && isRowSelected ? 'light' : 'surface'\"\n (change)=\"$event ? _masterToggle() : null\"\n >\n </ids-checkbox>\n </th>\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--row-select\"\n >\n <ids-checkbox\n class=\"ids-table__checkbox--row-selector\"\n [disabled]=\"_unselectableRows().has(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"row\"\n [aria-label]=\"_intl.rowSelectorAriaLabel\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? rowSelection.toggle(row) : null\"\n >\n </ids-checkbox>\n </td>\n </ng-container>\n\n <!-- Column and row definitions for the master-detail toggle feature -->\n <ng-container cdkColumnDef=\"$masterDetail\" stickyEnd>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n class=\"ids-table__header-cell ids-table__header-cell--master-detail-toggle\"\n [class.ids-table__header-cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @if (showDetailHeader()) {\n <span>{{ _intl.detailHeaderLabel }}</span>\n }\n </th>\n <td\n *cdkCellDef=\"let row; let idx = $index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--master-detail-toggle\"\n [class.ids-table__cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @let hasDetail = hasDetailRow()(idx, row);\n @let rowExpanded = _expandedRows.has(row);\n @if (hasDetail) {\n <button\n type=\"button\"\n idsIconButton\n class=\"ids-table__button--master-detail\"\n [attr.aria-expanded]=\"rowExpanded || false\"\n [attr.aria-label]=\"_intl.getDetailExpandButtonAriaLabel(row) || null\"\n (click)=\"_handleMasterDetailClick(row)\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"rowExpanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </td>\n </ng-container>\n <!-- Column definition for the detail cells -->\n <ng-container cdkColumnDef=\"$expandedDetail\">\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell ids-table__detail-cell\" [attr.colspan]=\"_detailColSpan()\">\n <div class=\"ids-table__detail-cell--content-wrapper\" [@detailExpand]=\"_expandedRows.has(row) ? 'expanded' : 'collapsed'\">\n @let isDefaultTemplate = _detailTemplate() === _defaulDetailTemplate();\n @let context = isDefaultTemplate ? { $implicit: row, cols: _hiddenColumns() } : { $implicit: row };\n <ng-container *ngTemplateOutlet=\"_detailTemplate() ?? defaultDetail; context: context\"></ng-container>\n </div>\n </td>\n </ng-container>\n\n <!-- Column definitions for sticky empty cells -->\n <ng-container cdkColumnDef=\"$empty\" sticky>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n <ng-container cdkColumnDef=\"$emptyEnd\" stickyEnd>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n\n <!-- Column and row definitions for the actual data -->\n @for (col of columnDefs(); track col.id; let colIndex = $index; let isLast = $last ) {\n <ng-container\n [cdkColumnDef]=\"col.id\"\n [sticky]=\"col.sticky && !col.stickyEnd\"\n [stickyEnd]=\"col.stickyEnd && !col.sticky\"\n >\n @let colSortable = col.sortable && enableSorting();\n @let colNumeric = col.cellRenderer === 'numeric';\n @let orderName = col.orderName || col.field || col.id;\n @let sortDirection = colSortable && _sortState()?.sortBy === orderName ? _sortState()?.direction : null;\n @let nextSortDirection = _getNextSortDirectionFor(orderName);\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n class=\"ids-table__header-cell\"\n idsHeaderCellContent\n scope=\"col\"\n [class.ids-table__header-cell--sortable]=\"colSortable\"\n [class.ids-table__header-cell--numeric]=\"colNumeric\"\n [class]=\"col.columnClasses || ''\"\n [colDef]=\"col\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n [id]=\"id() + '-header-' + col.id\"\n >\n @if (colSortable) {\n <button\n type=\"button\"\n idsIconButton\n colEnd\n class=\"ids-table__header-cell--sort-button\"\n [attr.aria-label]=\"_intl.getSortButtonAriaLabel(col, nextSortDirection)\"\n (click)=\"_handleSortClick(orderName)\"\n >\n @switch (sortDirection) {\n @case ('asc') {\n <ids-icon [fontIcon]=\"'chevron-up'\"></ids-icon>\n }\n @case ('desc') {\n <ids-icon [fontIcon]=\"'chevron-down'\"></ids-icon>\n }\n @default {\n <ids-icon [fontIcon]=\"'adjustments-horizontal'\"></ids-icon>\n }\n }\n </button>\n }\n </th>\n\n @if (col.identifier) {\n <th\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n idsCellContent\n class=\"ids-table__cell ids-table__cell--identifier\"\n role=\"gridcell\"\n scope=\"row\"\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></th>\n } @else {\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell\"\n idsCellContent\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></td>\n }\n </ng-container>\n }\n\n <!-- Header row render definition -->\n <tr *cdkHeaderRowDef=\"_actualColumns(); sticky: fixedHeader()\" cdk-header-row class=\"ids-table__header-row\"></tr>\n\n <!-- Row render definition -->\n <tr\n *cdkRowDef=\"let row; columns: _actualColumns(); let idx = dataIndex\"\n cdk-row\n class=\"ids-table__row\"\n [rowInfo]=\"{ rowData: row, index: idx }\"\n [ngClass]=\"(appearance() !== _appearanceZebra || idx % 2 === 0) ? 'ids-table__row--surface' : 'ids-table__row--secondary'\"\n (click)=\"_handleRowClick($event, row)\"\n (keydown)=\"_handleRowKeyDown($event, row)\"\n ></tr>\n\n <!-- Detail row render definition -->\n @if (masterDetail()) {\n <tr\n *cdkRowDef=\"let row; columns: _detailRowTemplates(); when: hasDetailRow()\"\n cdk-row\n class=\"ids-table__detail-row ids-table__row--surface\"\n [class.ids-table__detail-row--expanded]=\"_expandedRows.has(row) || _allRowsExpanded()\"\n ></tr>\n }\n\n <!-- Empty table message (inside the table) -->\n @if (!noRowsToShowOverlayBelow()) {\n <tr *cdkNoDataRow class=\"ids-table__row\">\n <td class=\"ids-table__cell\" [attr.colspan]=\"_actualColumns().length\">\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n </td>\n </tr>\n }\n </table>\n</div>\n<!-- Empty table message (outside the table) -->\n@if (noRowsToShowOverlayBelow() && _hasNoRows()) {\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n}\n", dependencies: [{ kind: "component", type: IdsTableComponent, selector: "ids-table", inputs: ["columnDefs", "dataSource", "fixedHeader", "enableSorting", "masterDetail", "detailTemplateName", "detailStickyColumns", "showDetailHeader", "hasDetailRow", "enableRowSelection", "clearSelectionOnChange", "isRowSelectable", "noRowsToShowOverlayBelow", "withBorder", "appearance", "size", "variant"], outputs: ["sortChange", "cellClick", "rowClick", "rowKeydown", "contentChanged"], exportAs: ["idsTable"] }, { kind: "component", type: IdsCellContentComponent, selector: "th[idsCellContent],td[idsCellContent],th[idsHeaderCellContent],td[idsHeaderCellContent]", inputs: ["externalCellTemplates"] }, { kind: "component", type: IdsCheckboxComponent, selector: "ids-checkbox", inputs: ["name", "required", "readonly", "size", "tabIndex", "value", "variant", "checked", "indeterminate", "aria-label", "aria-labelledby", "aria-describedby", "disabled"], outputs: ["disabledChange", "change", "indeterminateChange"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: IdsTableCellTemplateDirective, selector: "[idsCellTemplate]", inputs: ["idsCellTemplate"] }, { kind: "directive", type: CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "directive", type: CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "directive", type: CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "component", type: CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "directive", type: CdkNoDataRow, selector: "ng-template[cdkNoDataRow]" }, { kind: "component", type: CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "component", type: CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RowInfoHolderDirective, selector: "[rowInfo]", inputs: ["rowInfo"] }], animations: [
650
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsTableComponent, isStandalone: true, selector: "ids-table", inputs: { columnDefs: { classPropertyName: "columnDefs", publicName: "columnDefs", isSignal: true, isRequired: true, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, fixedHeader: { classPropertyName: "fixedHeader", publicName: "fixedHeader", isSignal: true, isRequired: false, transformFunction: null }, enableSorting: { classPropertyName: "enableSorting", publicName: "enableSorting", isSignal: true, isRequired: false, transformFunction: null }, masterDetail: { classPropertyName: "masterDetail", publicName: "masterDetail", isSignal: true, isRequired: false, transformFunction: null }, detailTemplateName: { classPropertyName: "detailTemplateName", publicName: "detailTemplateName", isSignal: true, isRequired: false, transformFunction: null }, detailStickyColumns: { classPropertyName: "detailStickyColumns", publicName: "detailStickyColumns", isSignal: true, isRequired: false, transformFunction: null }, showDetailHeader: { classPropertyName: "showDetailHeader", publicName: "showDetailHeader", isSignal: true, isRequired: false, transformFunction: null }, hasDetailRow: { classPropertyName: "hasDetailRow", publicName: "hasDetailRow", isSignal: true, isRequired: false, transformFunction: null }, enableRowSelection: { classPropertyName: "enableRowSelection", publicName: "enableRowSelection", isSignal: true, isRequired: false, transformFunction: null }, clearSelectionOnChange: { classPropertyName: "clearSelectionOnChange", publicName: "clearSelectionOnChange", isSignal: true, isRequired: false, transformFunction: null }, isRowSelectable: { classPropertyName: "isRowSelectable", publicName: "isRowSelectable", isSignal: true, isRequired: false, transformFunction: null }, noRowsToShowOverlayBelow: { classPropertyName: "noRowsToShowOverlayBelow", publicName: "noRowsToShowOverlayBelow", isSignal: true, isRequired: false, transformFunction: null }, withBorder: { classPropertyName: "withBorder", publicName: "withBorder", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange", cellClick: "cellClick", rowClick: "rowClick", rowKeydown: "rowKeydown", contentChanged: "contentChanged" }, providers: [{ provide: IDS_ICON_BUTTON_PARENT, useExisting: IdsTableComponent }], queries: [{ propertyName: "_contentCellTemplates", predicate: IdsTableCellTemplateDirective, isSignal: true }, { propertyName: "_sortAscIconTemplate", first: true, predicate: IdsTableSortAscIconDirective, descendants: true, isSignal: true }, { propertyName: "_sortDescIconTemplate", first: true, predicate: IdsTableSortDescIconDirective, descendants: true, isSignal: true }, { propertyName: "_sortNoneIconTemplate", first: true, predicate: IdsTableSortNoneIconDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_viewCellTemplates", predicate: IdsTableCellTemplateDirective, descendants: true, isSignal: true }, { propertyName: "_rowDataHolders", predicate: (RowInfoHolderDirective), descendants: true, isSignal: true }, { propertyName: "_selectorCheckboxes", predicate: IdsCheckboxComponent, descendants: true, isSignal: true }, { propertyName: "_cellContentRenderers", predicate: (IdsCellContentComponent), descendants: true, isSignal: true }], exportAs: ["idsTable"], usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/prefer-self-closing-tags -->\n\n<!-- Empty table message template -->\n<ng-template #noRowsToShow>\n <div class=\"ids-table__no-rows-to-show\">\n <ng-content select=\"[idsNoRowsToShow]\">No rows to show</ng-content>\n </div>\n</ng-template>\n\n<!-- Default detail cell template (a table showing the non-visible columns) -->\n<ng-template #defaultDetail let-row let-cols=\"cols\" [idsCellTemplate]=\"_defaultMasterDetailTemplateName\">\n <ids-table appearance=\"zebra\" [dataSource]=\"[row]\" [columnDefs]=\"cols\"></ids-table>\n</ng-template>\n\n<ng-template #defaultSortAscIcon>\n <ids-icon [fontIcon]=\"'chevron-up'\"></ids-icon>\n</ng-template>\n\n<ng-template #defaultSortDescIcon>\n <ids-icon [fontIcon]=\"'chevron-down'\"></ids-icon>\n</ng-template>\n\n<ng-template #defaultSortNoneIcon>\n <ids-icon [fontIcon]=\"'adjustments-horizontal'\"></ids-icon>\n</ng-template>\n\n<!-- TODO: Loading spinner -->\n\n<div class=\"ids-table__horizontal-scroll\">\n <table\n cdk-table\n cdkDropListGroup\n multiTemplateDataRows\n [id]=\"id()\"\n [dataSource]=\"dataSource()\"\n (contentChanged)=\"_tableContentChanged()\"\n >\n <caption><ng-content select=\"[idsTableCaption]\"></ng-content></caption>\n\n <!-- Column and row definitions for row selection -->\n <ng-container cdkColumnDef=\"$selectBoxes\" sticky>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n role=\"cell\"\n class=\"ids-table__header-cell ids-table__header-cell--select-all-rows\"\n >\n @let isRowSelected = rowSelection.hasValue();\n @let isTableVariantPrimary = variant() === 'primary';\n <ids-checkbox\n [indeterminate]=\"isRowSelected && !_isAllSelected()\"\n [checked]=\"isRowSelected && _isAllSelected()\"\n [disabled]=\"_isSelectAllDisabled()\"\n [aria-label]=\"_intl.headerSelectorAriaLabel\"\n [variant]=\"isTableVariantPrimary && isRowSelected ? 'light' : 'surface'\"\n (change)=\"$event ? _masterToggle() : null\"\n >\n </ids-checkbox>\n </th>\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--row-select\"\n >\n <ids-checkbox\n class=\"ids-table__checkbox--row-selector\"\n [disabled]=\"_unselectableRows().has(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"row\"\n [aria-label]=\"_intl.rowSelectorAriaLabel\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? rowSelection.toggle(row) : null\"\n >\n </ids-checkbox>\n </td>\n </ng-container>\n\n <!-- Column and row definitions for the master-detail toggle feature -->\n <ng-container cdkColumnDef=\"$masterDetail\" stickyEnd>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n class=\"ids-table__header-cell ids-table__header-cell--master-detail-toggle\"\n [class.ids-table__header-cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @if (showDetailHeader()) {\n <span>{{ _intl.detailHeaderLabel }}</span>\n }\n </th>\n <td\n *cdkCellDef=\"let row; let idx = $index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--master-detail-toggle\"\n [class.ids-table__cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @let hasDetail = hasDetailRow()(idx, row);\n @let rowExpanded = _expandedRows.has(row);\n @if (hasDetail) {\n <button\n type=\"button\"\n idsIconButton\n class=\"ids-table__button--master-detail\"\n [attr.aria-expanded]=\"rowExpanded || false\"\n [attr.aria-label]=\"_intl.getDetailExpandButtonAriaLabel(row) || null\"\n (click)=\"_handleMasterDetailClick(row)\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"rowExpanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </td>\n </ng-container>\n <!-- Column definition for the detail cells -->\n <ng-container cdkColumnDef=\"$expandedDetail\">\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell ids-table__detail-cell\" [attr.colspan]=\"_detailColSpan()\">\n <div class=\"ids-table__detail-cell--content-wrapper\" [@detailExpand]=\"_expandedRows.has(row) ? 'expanded' : 'collapsed'\">\n @let isDefaultTemplate = _detailTemplate() === _defaulDetailTemplate();\n @let context = isDefaultTemplate ? { $implicit: row, cols: _hiddenColumns() } : { $implicit: row };\n <ng-container *ngTemplateOutlet=\"_detailTemplate() ?? defaultDetail; context: context\"></ng-container>\n </div>\n </td>\n </ng-container>\n\n <!-- Column definitions for sticky empty cells -->\n <ng-container cdkColumnDef=\"$empty\" sticky>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n <ng-container cdkColumnDef=\"$emptyEnd\" stickyEnd>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n\n <!-- Column and row definitions for the actual data -->\n @for (col of columnDefs(); track col.id; let colIndex = $index; let isLast = $last ) {\n <ng-container\n [cdkColumnDef]=\"col.id\"\n [sticky]=\"col.sticky && !col.stickyEnd\"\n [stickyEnd]=\"col.stickyEnd && !col.sticky\"\n >\n @let colSortable = col.sortable && enableSorting();\n @let colNumeric = col.cellRenderer === 'numeric';\n @let orderName = col.orderName || col.field || col.id;\n @let sortDirection = colSortable && _sortState()?.sortBy === orderName ? _sortState()?.direction : null;\n @let nextSortDirection = _getNextSortDirectionFor(orderName);\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n class=\"ids-table__header-cell\"\n idsHeaderCellContent\n scope=\"col\"\n [class.ids-table__header-cell--sortable]=\"colSortable\"\n [class.ids-table__header-cell--numeric]=\"colNumeric\"\n [class]=\"col.columnClasses || ''\"\n [colDef]=\"col\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n [id]=\"id() + '-header-' + col.id\"\n >\n @if (colSortable) {\n <button\n type=\"button\"\n idsIconButton\n allowCustomContent\n colEnd\n class=\"ids-table__header-cell--sort-button\"\n [attr.aria-label]=\"_intl.getSortButtonAriaLabel(col, nextSortDirection)\"\n (click)=\"_handleSortClick(orderName)\"\n >\n @switch (sortDirection) {\n @case ('asc') {\n <ng-container *ngTemplateOutlet=\"_sortAscIconTemplate()?.templateRef ?? defaultSortAscIcon\"></ng-container> }\n @case ('desc') {\n <ng-container *ngTemplateOutlet=\"_sortDescIconTemplate()?.templateRef ?? defaultSortDescIcon\"></ng-container> }\n @default {\n <ng-container *ngTemplateOutlet=\"_sortNoneIconTemplate()?.templateRef ?? defaultSortNoneIcon\"></ng-container> }\n }\n </button>\n }\n </th>\n\n @if (col.identifier) {\n <th\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n idsCellContent\n class=\"ids-table__cell ids-table__cell--identifier\"\n role=\"gridcell\"\n scope=\"row\"\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></th>\n } @else {\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell\"\n idsCellContent\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></td>\n }\n </ng-container>\n }\n\n <!-- Header row render definition -->\n <tr *cdkHeaderRowDef=\"_actualColumns(); sticky: fixedHeader()\" cdk-header-row class=\"ids-table__header-row\"></tr>\n\n <!-- Row render definition -->\n <tr\n *cdkRowDef=\"let row; columns: _actualColumns(); let idx = dataIndex\"\n cdk-row\n class=\"ids-table__row\"\n [rowInfo]=\"{ rowData: row, index: idx }\"\n [ngClass]=\"(appearance() !== _appearanceZebra || idx % 2 === 0) ? 'ids-table__row--surface' : 'ids-table__row--secondary'\"\n (click)=\"_handleRowClick($event, row)\"\n (keydown)=\"_handleRowKeyDown($event, row)\"\n ></tr>\n\n <!-- Detail row render definition -->\n @if (masterDetail()) {\n <tr\n *cdkRowDef=\"let row; columns: _detailRowTemplates(); when: hasDetailRow()\"\n cdk-row\n class=\"ids-table__detail-row ids-table__row--surface\"\n [class.ids-table__detail-row--expanded]=\"_expandedRows.has(row) || _allRowsExpanded()\"\n ></tr>\n }\n\n <!-- Empty table message (inside the table) -->\n @if (!noRowsToShowOverlayBelow()) {\n <tr *cdkNoDataRow class=\"ids-table__row\">\n <td class=\"ids-table__cell\" [attr.colspan]=\"_actualColumns().length\">\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n </td>\n </tr>\n }\n </table>\n</div>\n<!-- Empty table message (outside the table) -->\n@if (noRowsToShowOverlayBelow() && _hasNoRows()) {\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n}\n", dependencies: [{ kind: "component", type: IdsTableComponent, selector: "ids-table", inputs: ["columnDefs", "dataSource", "fixedHeader", "enableSorting", "masterDetail", "detailTemplateName", "detailStickyColumns", "showDetailHeader", "hasDetailRow", "enableRowSelection", "clearSelectionOnChange", "isRowSelectable", "noRowsToShowOverlayBelow", "withBorder", "appearance", "size", "variant"], outputs: ["sortChange", "cellClick", "rowClick", "rowKeydown", "contentChanged"], exportAs: ["idsTable"] }, { kind: "component", type: IdsCellContentComponent, selector: "th[idsCellContent],td[idsCellContent],th[idsHeaderCellContent],td[idsHeaderCellContent]", inputs: ["externalCellTemplates"] }, { kind: "component", type: IdsCheckboxComponent, selector: "ids-checkbox", inputs: ["name", "required", "readonly", "size", "tabIndex", "value", "variant", "checked", "indeterminate", "aria-label", "aria-labelledby", "aria-describedby", "disabled"], outputs: ["disabledChange", "change", "indeterminateChange"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }, { kind: "directive", type: IdsTableCellTemplateDirective, selector: "[idsCellTemplate]", inputs: ["idsCellTemplate"] }, { kind: "directive", type: CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "directive", type: CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "directive", type: CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "component", type: CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "directive", type: CdkNoDataRow, selector: "ng-template[cdkNoDataRow]" }, { kind: "component", type: CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "component", type: CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RowInfoHolderDirective, selector: "[rowInfo]", inputs: ["rowInfo"] }], animations: [
605
651
  trigger('detailExpand', [
606
652
  state('collapsed', style({ height: '0px', minHeight: '0', visibility: 'hidden' })),
607
653
  state('expanded', style({ height: '*', visibility: 'visible' })),
@@ -637,12 +683,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
637
683
  state('expanded', style({ height: '*', visibility: 'visible' })),
638
684
  transition('expanded <=> collapsed', animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
639
685
  ]),
640
- ], providers: [{ provide: IDS_ICON_BUTTON_PARENT, useExisting: IdsTableComponent }], exportAs: 'idsTable', template: "<!-- eslint-disable @angular-eslint/template/prefer-self-closing-tags -->\n\n<!-- Empty table message template -->\n<ng-template #noRowsToShow>\n <div class=\"ids-table__no-rows-to-show\">\n <ng-content select=\"[idsNoRowsToShow]\">No rows to show</ng-content>\n </div>\n</ng-template>\n\n<!-- Default detail cell template (a table showing the non-visible columns) -->\n<ng-template #defaultDetail let-row let-cols=\"cols\" [idsCellTemplate]=\"_defaultMasterDetailTemplateName\">\n <ids-table appearance=\"zebra\" [dataSource]=\"[row]\" [columnDefs]=\"cols\"></ids-table>\n</ng-template>\n\n<!-- TODO: Loading spinner -->\n\n<div class=\"ids-table__horizontal-scroll\">\n <table\n cdk-table\n cdkDropListGroup\n multiTemplateDataRows\n [id]=\"id()\"\n [dataSource]=\"dataSource()\"\n (contentChanged)=\"_tableContentChanged()\"\n >\n <caption><ng-content select=\"[idsTableCaption]\"></ng-content></caption>\n\n <!-- Column and row definitions for row selection -->\n <ng-container cdkColumnDef=\"$selectBoxes\" sticky>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n role=\"cell\"\n class=\"ids-table__header-cell ids-table__header-cell--select-all-rows\"\n >\n @let isRowSelected = rowSelection.hasValue();\n @let isTableVariantPrimary = variant() === 'primary';\n <ids-checkbox\n [indeterminate]=\"isRowSelected && !_isAllSelected()\"\n [checked]=\"isRowSelected && _isAllSelected()\"\n [disabled]=\"_isSelectAllDisabled()\"\n [aria-label]=\"_intl.headerSelectorAriaLabel\"\n [variant]=\"isTableVariantPrimary && isRowSelected ? 'light' : 'surface'\"\n (change)=\"$event ? _masterToggle() : null\"\n >\n </ids-checkbox>\n </th>\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--row-select\"\n >\n <ids-checkbox\n class=\"ids-table__checkbox--row-selector\"\n [disabled]=\"_unselectableRows().has(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"row\"\n [aria-label]=\"_intl.rowSelectorAriaLabel\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? rowSelection.toggle(row) : null\"\n >\n </ids-checkbox>\n </td>\n </ng-container>\n\n <!-- Column and row definitions for the master-detail toggle feature -->\n <ng-container cdkColumnDef=\"$masterDetail\" stickyEnd>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n class=\"ids-table__header-cell ids-table__header-cell--master-detail-toggle\"\n [class.ids-table__header-cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @if (showDetailHeader()) {\n <span>{{ _intl.detailHeaderLabel }}</span>\n }\n </th>\n <td\n *cdkCellDef=\"let row; let idx = $index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--master-detail-toggle\"\n [class.ids-table__cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @let hasDetail = hasDetailRow()(idx, row);\n @let rowExpanded = _expandedRows.has(row);\n @if (hasDetail) {\n <button\n type=\"button\"\n idsIconButton\n class=\"ids-table__button--master-detail\"\n [attr.aria-expanded]=\"rowExpanded || false\"\n [attr.aria-label]=\"_intl.getDetailExpandButtonAriaLabel(row) || null\"\n (click)=\"_handleMasterDetailClick(row)\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"rowExpanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </td>\n </ng-container>\n <!-- Column definition for the detail cells -->\n <ng-container cdkColumnDef=\"$expandedDetail\">\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell ids-table__detail-cell\" [attr.colspan]=\"_detailColSpan()\">\n <div class=\"ids-table__detail-cell--content-wrapper\" [@detailExpand]=\"_expandedRows.has(row) ? 'expanded' : 'collapsed'\">\n @let isDefaultTemplate = _detailTemplate() === _defaulDetailTemplate();\n @let context = isDefaultTemplate ? { $implicit: row, cols: _hiddenColumns() } : { $implicit: row };\n <ng-container *ngTemplateOutlet=\"_detailTemplate() ?? defaultDetail; context: context\"></ng-container>\n </div>\n </td>\n </ng-container>\n\n <!-- Column definitions for sticky empty cells -->\n <ng-container cdkColumnDef=\"$empty\" sticky>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n <ng-container cdkColumnDef=\"$emptyEnd\" stickyEnd>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n\n <!-- Column and row definitions for the actual data -->\n @for (col of columnDefs(); track col.id; let colIndex = $index; let isLast = $last ) {\n <ng-container\n [cdkColumnDef]=\"col.id\"\n [sticky]=\"col.sticky && !col.stickyEnd\"\n [stickyEnd]=\"col.stickyEnd && !col.sticky\"\n >\n @let colSortable = col.sortable && enableSorting();\n @let colNumeric = col.cellRenderer === 'numeric';\n @let orderName = col.orderName || col.field || col.id;\n @let sortDirection = colSortable && _sortState()?.sortBy === orderName ? _sortState()?.direction : null;\n @let nextSortDirection = _getNextSortDirectionFor(orderName);\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n class=\"ids-table__header-cell\"\n idsHeaderCellContent\n scope=\"col\"\n [class.ids-table__header-cell--sortable]=\"colSortable\"\n [class.ids-table__header-cell--numeric]=\"colNumeric\"\n [class]=\"col.columnClasses || ''\"\n [colDef]=\"col\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n [id]=\"id() + '-header-' + col.id\"\n >\n @if (colSortable) {\n <button\n type=\"button\"\n idsIconButton\n colEnd\n class=\"ids-table__header-cell--sort-button\"\n [attr.aria-label]=\"_intl.getSortButtonAriaLabel(col, nextSortDirection)\"\n (click)=\"_handleSortClick(orderName)\"\n >\n @switch (sortDirection) {\n @case ('asc') {\n <ids-icon [fontIcon]=\"'chevron-up'\"></ids-icon>\n }\n @case ('desc') {\n <ids-icon [fontIcon]=\"'chevron-down'\"></ids-icon>\n }\n @default {\n <ids-icon [fontIcon]=\"'adjustments-horizontal'\"></ids-icon>\n }\n }\n </button>\n }\n </th>\n\n @if (col.identifier) {\n <th\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n idsCellContent\n class=\"ids-table__cell ids-table__cell--identifier\"\n role=\"gridcell\"\n scope=\"row\"\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></th>\n } @else {\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell\"\n idsCellContent\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></td>\n }\n </ng-container>\n }\n\n <!-- Header row render definition -->\n <tr *cdkHeaderRowDef=\"_actualColumns(); sticky: fixedHeader()\" cdk-header-row class=\"ids-table__header-row\"></tr>\n\n <!-- Row render definition -->\n <tr\n *cdkRowDef=\"let row; columns: _actualColumns(); let idx = dataIndex\"\n cdk-row\n class=\"ids-table__row\"\n [rowInfo]=\"{ rowData: row, index: idx }\"\n [ngClass]=\"(appearance() !== _appearanceZebra || idx % 2 === 0) ? 'ids-table__row--surface' : 'ids-table__row--secondary'\"\n (click)=\"_handleRowClick($event, row)\"\n (keydown)=\"_handleRowKeyDown($event, row)\"\n ></tr>\n\n <!-- Detail row render definition -->\n @if (masterDetail()) {\n <tr\n *cdkRowDef=\"let row; columns: _detailRowTemplates(); when: hasDetailRow()\"\n cdk-row\n class=\"ids-table__detail-row ids-table__row--surface\"\n [class.ids-table__detail-row--expanded]=\"_expandedRows.has(row) || _allRowsExpanded()\"\n ></tr>\n }\n\n <!-- Empty table message (inside the table) -->\n @if (!noRowsToShowOverlayBelow()) {\n <tr *cdkNoDataRow class=\"ids-table__row\">\n <td class=\"ids-table__cell\" [attr.colspan]=\"_actualColumns().length\">\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n </td>\n </tr>\n }\n </table>\n</div>\n<!-- Empty table message (outside the table) -->\n@if (noRowsToShowOverlayBelow() && _hasNoRows()) {\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n}\n" }]
686
+ ], providers: [{ provide: IDS_ICON_BUTTON_PARENT, useExisting: IdsTableComponent }], exportAs: 'idsTable', template: "<!-- eslint-disable @angular-eslint/template/prefer-self-closing-tags -->\n\n<!-- Empty table message template -->\n<ng-template #noRowsToShow>\n <div class=\"ids-table__no-rows-to-show\">\n <ng-content select=\"[idsNoRowsToShow]\">No rows to show</ng-content>\n </div>\n</ng-template>\n\n<!-- Default detail cell template (a table showing the non-visible columns) -->\n<ng-template #defaultDetail let-row let-cols=\"cols\" [idsCellTemplate]=\"_defaultMasterDetailTemplateName\">\n <ids-table appearance=\"zebra\" [dataSource]=\"[row]\" [columnDefs]=\"cols\"></ids-table>\n</ng-template>\n\n<ng-template #defaultSortAscIcon>\n <ids-icon [fontIcon]=\"'chevron-up'\"></ids-icon>\n</ng-template>\n\n<ng-template #defaultSortDescIcon>\n <ids-icon [fontIcon]=\"'chevron-down'\"></ids-icon>\n</ng-template>\n\n<ng-template #defaultSortNoneIcon>\n <ids-icon [fontIcon]=\"'adjustments-horizontal'\"></ids-icon>\n</ng-template>\n\n<!-- TODO: Loading spinner -->\n\n<div class=\"ids-table__horizontal-scroll\">\n <table\n cdk-table\n cdkDropListGroup\n multiTemplateDataRows\n [id]=\"id()\"\n [dataSource]=\"dataSource()\"\n (contentChanged)=\"_tableContentChanged()\"\n >\n <caption><ng-content select=\"[idsTableCaption]\"></ng-content></caption>\n\n <!-- Column and row definitions for row selection -->\n <ng-container cdkColumnDef=\"$selectBoxes\" sticky>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n role=\"cell\"\n class=\"ids-table__header-cell ids-table__header-cell--select-all-rows\"\n >\n @let isRowSelected = rowSelection.hasValue();\n @let isTableVariantPrimary = variant() === 'primary';\n <ids-checkbox\n [indeterminate]=\"isRowSelected && !_isAllSelected()\"\n [checked]=\"isRowSelected && _isAllSelected()\"\n [disabled]=\"_isSelectAllDisabled()\"\n [aria-label]=\"_intl.headerSelectorAriaLabel\"\n [variant]=\"isTableVariantPrimary && isRowSelected ? 'light' : 'surface'\"\n (change)=\"$event ? _masterToggle() : null\"\n >\n </ids-checkbox>\n </th>\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--row-select\"\n >\n <ids-checkbox\n class=\"ids-table__checkbox--row-selector\"\n [disabled]=\"_unselectableRows().has(row)\"\n [checked]=\"rowSelection.isSelected(row)\"\n [value]=\"row\"\n [aria-label]=\"_intl.rowSelectorAriaLabel\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? rowSelection.toggle(row) : null\"\n >\n </ids-checkbox>\n </td>\n </ng-container>\n\n <!-- Column and row definitions for the master-detail toggle feature -->\n <ng-container cdkColumnDef=\"$masterDetail\" stickyEnd>\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n scope=\"col\"\n class=\"ids-table__header-cell ids-table__header-cell--master-detail-toggle\"\n [class.ids-table__header-cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @if (showDetailHeader()) {\n <span>{{ _intl.detailHeaderLabel }}</span>\n }\n </th>\n <td\n *cdkCellDef=\"let row; let idx = $index\"\n cdk-cell\n class=\"ids-table__cell ids-table__cell--master-detail-toggle\"\n [class.ids-table__cell--master-detail-toggle-expand]=\"showDetailHeader()\"\n >\n @let hasDetail = hasDetailRow()(idx, row);\n @let rowExpanded = _expandedRows.has(row);\n @if (hasDetail) {\n <button\n type=\"button\"\n idsIconButton\n class=\"ids-table__button--master-detail\"\n [attr.aria-expanded]=\"rowExpanded || false\"\n [attr.aria-label]=\"_intl.getDetailExpandButtonAriaLabel(row) || null\"\n (click)=\"_handleMasterDetailClick(row)\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" [fontIcon]=\"rowExpanded ? 'chevron-up' : 'chevron-down'\" />\n </button>\n }\n </td>\n </ng-container>\n <!-- Column definition for the detail cells -->\n <ng-container cdkColumnDef=\"$expandedDetail\">\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell ids-table__detail-cell\" [attr.colspan]=\"_detailColSpan()\">\n <div class=\"ids-table__detail-cell--content-wrapper\" [@detailExpand]=\"_expandedRows.has(row) ? 'expanded' : 'collapsed'\">\n @let isDefaultTemplate = _detailTemplate() === _defaulDetailTemplate();\n @let context = isDefaultTemplate ? { $implicit: row, cols: _hiddenColumns() } : { $implicit: row };\n <ng-container *ngTemplateOutlet=\"_detailTemplate() ?? defaultDetail; context: context\"></ng-container>\n </div>\n </td>\n </ng-container>\n\n <!-- Column definitions for sticky empty cells -->\n <ng-container cdkColumnDef=\"$empty\" sticky>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n <ng-container cdkColumnDef=\"$emptyEnd\" stickyEnd>\n <td *cdkCellDef=\"let row; let idx = index\" cdk-cell class=\"ids-table__cell\"></td>\n </ng-container>\n\n <!-- Column and row definitions for the actual data -->\n @for (col of columnDefs(); track col.id; let colIndex = $index; let isLast = $last ) {\n <ng-container\n [cdkColumnDef]=\"col.id\"\n [sticky]=\"col.sticky && !col.stickyEnd\"\n [stickyEnd]=\"col.stickyEnd && !col.sticky\"\n >\n @let colSortable = col.sortable && enableSorting();\n @let colNumeric = col.cellRenderer === 'numeric';\n @let orderName = col.orderName || col.field || col.id;\n @let sortDirection = colSortable && _sortState()?.sortBy === orderName ? _sortState()?.direction : null;\n @let nextSortDirection = _getNextSortDirectionFor(orderName);\n <th\n *cdkHeaderCellDef\n cdk-header-cell\n class=\"ids-table__header-cell\"\n idsHeaderCellContent\n scope=\"col\"\n [class.ids-table__header-cell--sortable]=\"colSortable\"\n [class.ids-table__header-cell--numeric]=\"colNumeric\"\n [class]=\"col.columnClasses || ''\"\n [colDef]=\"col\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n [id]=\"id() + '-header-' + col.id\"\n >\n @if (colSortable) {\n <button\n type=\"button\"\n idsIconButton\n allowCustomContent\n colEnd\n class=\"ids-table__header-cell--sort-button\"\n [attr.aria-label]=\"_intl.getSortButtonAriaLabel(col, nextSortDirection)\"\n (click)=\"_handleSortClick(orderName)\"\n >\n @switch (sortDirection) {\n @case ('asc') {\n <ng-container *ngTemplateOutlet=\"_sortAscIconTemplate()?.templateRef ?? defaultSortAscIcon\"></ng-container> }\n @case ('desc') {\n <ng-container *ngTemplateOutlet=\"_sortDescIconTemplate()?.templateRef ?? defaultSortDescIcon\"></ng-container> }\n @default {\n <ng-container *ngTemplateOutlet=\"_sortNoneIconTemplate()?.templateRef ?? defaultSortNoneIcon\"></ng-container> }\n }\n </button>\n }\n </th>\n\n @if (col.identifier) {\n <th\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n idsCellContent\n class=\"ids-table__cell ids-table__cell--identifier\"\n role=\"gridcell\"\n scope=\"row\"\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></th>\n } @else {\n <td\n *cdkCellDef=\"let row; let idx = index\"\n cdk-cell\n class=\"ids-table__cell\"\n idsCellContent\n [class]=\"col.cellClasses || ''\"\n [colDef]=\"col\"\n [rowData]=\"row\"\n [externalCellTemplates]=\"_cellTemplatesByName()\"\n (click)=\"_handleCellClick($event, row, col)\"\n ></td>\n }\n </ng-container>\n }\n\n <!-- Header row render definition -->\n <tr *cdkHeaderRowDef=\"_actualColumns(); sticky: fixedHeader()\" cdk-header-row class=\"ids-table__header-row\"></tr>\n\n <!-- Row render definition -->\n <tr\n *cdkRowDef=\"let row; columns: _actualColumns(); let idx = dataIndex\"\n cdk-row\n class=\"ids-table__row\"\n [rowInfo]=\"{ rowData: row, index: idx }\"\n [ngClass]=\"(appearance() !== _appearanceZebra || idx % 2 === 0) ? 'ids-table__row--surface' : 'ids-table__row--secondary'\"\n (click)=\"_handleRowClick($event, row)\"\n (keydown)=\"_handleRowKeyDown($event, row)\"\n ></tr>\n\n <!-- Detail row render definition -->\n @if (masterDetail()) {\n <tr\n *cdkRowDef=\"let row; columns: _detailRowTemplates(); when: hasDetailRow()\"\n cdk-row\n class=\"ids-table__detail-row ids-table__row--surface\"\n [class.ids-table__detail-row--expanded]=\"_expandedRows.has(row) || _allRowsExpanded()\"\n ></tr>\n }\n\n <!-- Empty table message (inside the table) -->\n @if (!noRowsToShowOverlayBelow()) {\n <tr *cdkNoDataRow class=\"ids-table__row\">\n <td class=\"ids-table__cell\" [attr.colspan]=\"_actualColumns().length\">\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n </td>\n </tr>\n }\n </table>\n</div>\n<!-- Empty table message (outside the table) -->\n@if (noRowsToShowOverlayBelow() && _hasNoRows()) {\n <ng-container [ngTemplateOutlet]=\"noRowsToShow\"></ng-container>\n}\n" }]
641
687
  }] });
642
688
 
643
689
  /**
644
690
  * Generated bundle index. Do not edit.
645
691
  */
646
692
 
647
- export { DEFAULT_DATA_LOAD_DEBOUNCE_TIME, DEFAULT_MASTER_DETAIL_TEMPLATE_NAME, IDS_TABLE_DEFAULT_CONFIG, IDS_TABLE_DEFAULT_CONFIG_FACTORY, IDS_TABLE_INTL_PROVIDER, IDS_TABLE_INTL_PROVIDER_FACTORY, IdsTableAppearance, IdsTableCellRenderer, IdsTableCellTemplateDirective, IdsTableComponent, IdsTableIntl, IdsTableSortDirection, IdsTableSortInfo, IdsTableVariant, ServerSideDataSource };
693
+ export { DEFAULT_DATA_LOAD_DEBOUNCE_TIME, DEFAULT_MASTER_DETAIL_TEMPLATE_NAME, IDS_TABLE_DEFAULT_CONFIG, IDS_TABLE_DEFAULT_CONFIG_FACTORY, IDS_TABLE_INTL_PROVIDER, IDS_TABLE_INTL_PROVIDER_FACTORY, IdsTableAppearance, IdsTableCellRenderer, IdsTableCellTemplateDirective, IdsTableComponent, IdsTableIntl, IdsTableSortAscIconDirective, IdsTableSortDescIconDirective, IdsTableSortDirection, IdsTableSortInfo, IdsTableSortNoneIconDirective, IdsTableVariant, ServerSideDataSource };
648
694
  //# sourceMappingURL=i-cell-ids-angular-table.mjs.map