igniteui-angular 22.1.0-beta.6 → 22.1.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/igniteui-angular-accordion.mjs +4 -4
- package/fesm2022/igniteui-angular-accordion.mjs.map +1 -1
- package/fesm2022/igniteui-angular-action-strip.mjs +0 -1
- package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
- package/fesm2022/igniteui-angular-avatar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-badge.mjs +0 -1
- package/fesm2022/igniteui-angular-badge.mjs.map +1 -1
- package/fesm2022/igniteui-angular-banner.mjs +2 -2
- package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
- package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs +4 -5
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-card.mjs.map +1 -1
- package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
- package/fesm2022/igniteui-angular-combo.mjs +17 -6
- package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-core.mjs +16 -337
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +12 -14
- package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-dialog.mjs +1 -1
- package/fesm2022/igniteui-angular-dialog.mjs.map +1 -1
- package/fesm2022/igniteui-angular-directives.mjs +45 -47
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-drop-down.mjs +3 -2
- package/fesm2022/igniteui-angular-drop-down.mjs.map +1 -1
- package/fesm2022/igniteui-angular-expansion-panel.mjs +23 -12
- package/fesm2022/igniteui-angular-expansion-panel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +484 -202
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +115 -94
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +15 -19
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +75 -153
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +28 -35
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-icon.mjs.map +1 -1
- package/fesm2022/igniteui-angular-input-group.mjs +1 -1
- package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-list.mjs.map +1 -1
- package/fesm2022/igniteui-angular-navbar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-navigation-drawer.mjs +2 -3
- package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
- package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
- package/fesm2022/igniteui-angular-progressbar.mjs +5 -2
- package/fesm2022/igniteui-angular-progressbar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-query-builder.mjs +18 -19
- package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
- package/fesm2022/igniteui-angular-radio.mjs +1 -1
- package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
- package/fesm2022/igniteui-angular-select.mjs.map +1 -1
- package/fesm2022/igniteui-angular-simple-combo.mjs +10 -7
- package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-slider.mjs +3 -3
- package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
- package/fesm2022/igniteui-angular-splitter.mjs +1 -1
- package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
- package/fesm2022/igniteui-angular-stepper.mjs +1 -1
- package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
- package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
- package/fesm2022/igniteui-angular-time-picker.mjs +3 -6
- package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-tree.mjs +8 -10
- package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
- package/migrations/migration-collection.json +0 -7
- package/package.json +1 -1
- package/types/igniteui-angular-avatar.d.ts +1 -1
- package/types/igniteui-angular-banner.d.ts +3 -3
- package/types/igniteui-angular-calendar.d.ts +9 -9
- package/types/igniteui-angular-card.d.ts +1 -1
- package/types/igniteui-angular-carousel.d.ts +9 -9
- package/types/igniteui-angular-chat.d.ts +1 -1
- package/types/igniteui-angular-chips.d.ts +5 -5
- package/types/igniteui-angular-combo.d.ts +17 -13
- package/types/igniteui-angular-core.d.ts +200 -495
- package/types/igniteui-angular-date-picker.d.ts +3 -3
- package/types/igniteui-angular-dialog.d.ts +4 -4
- package/types/igniteui-angular-directives.d.ts +60 -59
- package/types/igniteui-angular-drop-down.d.ts +16 -16
- package/types/igniteui-angular-expansion-panel.d.ts +6 -6
- package/types/igniteui-angular-grids-core.d.ts +1053 -791
- package/types/igniteui-angular-grids-grid.d.ts +104 -267
- package/types/igniteui-angular-grids-hierarchical-grid.d.ts +68 -547
- package/types/igniteui-angular-grids-lite.d.ts +7 -7
- package/types/igniteui-angular-grids-pivot-grid.d.ts +94 -129
- package/types/igniteui-angular-grids-tree-grid.d.ts +5 -51
- package/types/igniteui-angular-icon.d.ts +2 -2
- package/types/igniteui-angular-input-group.d.ts +4 -4
- package/types/igniteui-angular-list.d.ts +4 -4
- package/types/igniteui-angular-navigation-drawer.d.ts +3 -3
- package/types/igniteui-angular-progressbar.d.ts +1 -0
- package/types/igniteui-angular-query-builder.d.ts +9 -9
- package/types/igniteui-angular-radio.d.ts +1 -1
- package/types/igniteui-angular-select.d.ts +5 -5
- package/types/igniteui-angular-simple-combo.d.ts +2 -2
- package/types/igniteui-angular-slider.d.ts +4 -4
- package/types/igniteui-angular-splitter.d.ts +3 -3
- package/types/igniteui-angular-time-picker.d.ts +8 -8
- package/types/igniteui-angular-tree.d.ts +8 -8
- package/migrations/update-22_1_0_import-migration/index.d.ts +0 -2
- package/migrations/update-22_1_0_import-migration/index.js +0 -228
- package/migrations/update-22_1_0_import-migration/index.spec.d.ts +0 -1
- package/migrations/update-22_1_0_import-migration/index.spec.js +0 -188
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, ElementRef, Directive, ChangeDetectorRef, Input, HostBinding, ChangeDetectionStrategy, Component, EventEmitter, booleanAttribute, ViewChild, ContentChild, Output, ViewEncapsulation, NgModule } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, ElementRef, Directive, ChangeDetectorRef, Input, HostBinding, ChangeDetectionStrategy, Component, EventEmitter, booleanAttribute, HostListener, ViewChild, ContentChild, Output, ViewEncapsulation, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from 'igniteui-angular/directives';
|
|
4
4
|
import { IgxNoTypographyDirective } from 'igniteui-angular/directives';
|
|
5
5
|
import { IgxIconComponent } from 'igniteui-angular/icon';
|
|
@@ -293,7 +293,7 @@ class IgxExpansionPanelHeaderComponent {
|
|
|
293
293
|
this._disabled = val;
|
|
294
294
|
if (val) {
|
|
295
295
|
// V.S. June 11th, 2021: #9696 TabIndex should be removed when panel is disabled
|
|
296
|
-
this.tabIndex
|
|
296
|
+
delete this.tabIndex;
|
|
297
297
|
}
|
|
298
298
|
else {
|
|
299
299
|
this.tabIndex = 0;
|
|
@@ -436,18 +436,11 @@ class IgxExpansionPanelHeaderComponent {
|
|
|
436
436
|
}
|
|
437
437
|
}
|
|
438
438
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExpansionPanelHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
439
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExpansionPanelHeaderComponent, isStandalone: true, selector: "igx-expansion-panel-header", inputs: { lv: "lv", role: "role", iconPosition: "iconPosition", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { interaction: "interaction" }, host: { listeners: { "keydown.Enter": "onAction($
|
|
439
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: IgxExpansionPanelHeaderComponent, isStandalone: true, selector: "igx-expansion-panel-header", inputs: { lv: "lv", role: "role", iconPosition: "iconPosition", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { interaction: "interaction" }, host: { listeners: { "keydown.Enter": "onAction($event)", "keydown.Space": "onAction($event)", "keydown.Spacebar": "onAction($event)", "click": "onAction($event)", "keydown.alt.arrowdown": "openPanel($event)", "keydown.alt.arrowup": "closePanel($event)" }, properties: { "attr.aria-level": "this.lv", "attr.role": "this.role", "class.igx-expansion-panel__header": "this.cssClass", "class.igx-expansion-panel__header--expanded": "this.isExpanded", "class.igx-expansion-panel--disabled": "this.disabled" } }, queries: [{ propertyName: "iconTemplate", first: true, predicate: IgxExpansionPanelIconDirective, descendants: true }, { propertyName: "customIconRef", first: true, predicate: IgxExpansionPanelIconDirective, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "defaultIconRef", first: true, predicate: IgxIconComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n <div class=\"igx-expansion-panel__title-wrapper\">\n <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div\n [class]=\"iconPositionClass\"\n [class.igx-expansion-panel__header-icon]=\"true\"\n >\n @if (iconTemplate) {\n <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n }\n @if (!iconTemplate) {\n <igx-icon\n family=\"default\"\n [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n </igx-icon>\n }\n </div>\n</div>\n", dependencies: [{ kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["ariaHidden", "family", "name", "active"] }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
440
440
|
}
|
|
441
441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: IgxExpansionPanelHeaderComponent, decorators: [{
|
|
442
442
|
type: Component,
|
|
443
|
-
args: [{ selector: 'igx-expansion-panel-header', changeDetection: ChangeDetectionStrategy.Eager,
|
|
444
|
-
'(keydown.Enter)': 'onAction($any($event))',
|
|
445
|
-
'(keydown.Space)': 'onAction($any($event))',
|
|
446
|
-
'(keydown.Spacebar)': 'onAction($any($event))',
|
|
447
|
-
'(click)': 'onAction($event)',
|
|
448
|
-
'(keydown.alt.arrowdown)': 'openPanel($event)',
|
|
449
|
-
'(keydown.alt.arrowup)': 'closePanel($event)'
|
|
450
|
-
}, imports: [IgxIconComponent], template: "<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n <div class=\"igx-expansion-panel__title-wrapper\">\n <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div\n [class]=\"iconPositionClass\"\n [class.igx-expansion-panel__header-icon]=\"true\"\n >\n @if (iconTemplate) {\n <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n }\n @if (!iconTemplate) {\n <igx-icon\n family=\"default\"\n [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n </igx-icon>\n }\n </div>\n</div>\n" }]
|
|
443
|
+
args: [{ selector: 'igx-expansion-panel-header', changeDetection: ChangeDetectionStrategy.Eager, imports: [IgxIconComponent], template: "<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n <div class=\"igx-expansion-panel__title-wrapper\">\n <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div\n [class]=\"iconPositionClass\"\n [class.igx-expansion-panel__header-icon]=\"true\"\n >\n @if (iconTemplate) {\n <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n }\n @if (!iconTemplate) {\n <igx-icon\n family=\"default\"\n [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n </igx-icon>\n }\n </div>\n</div>\n" }]
|
|
451
444
|
}], ctorParameters: () => [], propDecorators: { iconTemplate: [{
|
|
452
445
|
type: ContentChild,
|
|
453
446
|
args: [IgxExpansionPanelIconDirective]
|
|
@@ -483,6 +476,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
|
|
|
483
476
|
}], defaultIconRef: [{
|
|
484
477
|
type: ViewChild,
|
|
485
478
|
args: [IgxIconComponent, { read: ElementRef }]
|
|
479
|
+
}], onAction: [{
|
|
480
|
+
type: HostListener,
|
|
481
|
+
args: ['keydown.Enter', ['$event']]
|
|
482
|
+
}, {
|
|
483
|
+
type: HostListener,
|
|
484
|
+
args: ['keydown.Space', ['$event']]
|
|
485
|
+
}, {
|
|
486
|
+
type: HostListener,
|
|
487
|
+
args: ['keydown.Spacebar', ['$event']]
|
|
488
|
+
}, {
|
|
489
|
+
type: HostListener,
|
|
490
|
+
args: ['click', ['$event']]
|
|
491
|
+
}], openPanel: [{
|
|
492
|
+
type: HostListener,
|
|
493
|
+
args: ['keydown.alt.arrowdown', ['$event']]
|
|
494
|
+
}], closePanel: [{
|
|
495
|
+
type: HostListener,
|
|
496
|
+
args: ['keydown.alt.arrowup', ['$event']]
|
|
486
497
|
}] } });
|
|
487
498
|
|
|
488
499
|
/** @hidden @internal */
|
|
@@ -570,7 +581,7 @@ class ToggleAnimationPlayer {
|
|
|
570
581
|
const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;
|
|
571
582
|
targetEmitter.emit();
|
|
572
583
|
this.onDoneHandler(type);
|
|
573
|
-
return
|
|
584
|
+
return;
|
|
574
585
|
}
|
|
575
586
|
const opposite = this.getPlayer(oppositeType);
|
|
576
587
|
let oppositePosition = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igniteui-angular-expansion-panel.mjs","sources":["../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.common.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-body.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.directives.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/toggle-animation-component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/public_api.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.module.ts","../../../projects/igniteui-angular/expansion-panel/src/igniteui-angular-expansion-panel.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, inject, InjectionToken } from '@angular/core';\nimport { AnimationReferenceMetadata } from '@angular/animations';\nimport { CancelableEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\n\nexport interface IgxExpansionPanelBase {\n id: string;\n cssClass: string;\n /** @hidden @internal */\n headerId: string;\n collapsed: boolean;\n animationSettings: { openAnimation: AnimationReferenceMetadata; closeAnimation: AnimationReferenceMetadata };\n contentCollapsed: EventEmitter<any>;\n contentCollapsing: EventEmitter<any>;\n contentExpanded: EventEmitter<any>;\n contentExpanding: EventEmitter<any>;\n collapse(evt?: Event): any;\n expand(evt?: Event): any;\n toggle(evt?: Event): any;\n}\n\n/** @hidden */\nexport const IGX_EXPANSION_PANEL_COMPONENT = /*@__PURE__*/new InjectionToken<IgxExpansionPanelBase>('IgxExpansionPanelToken');\n\nexport interface IExpansionPanelEventArgs extends IBaseEventArgs {\n event: Event;\n}\n\nexport interface IExpansionPanelCancelableEventArgs extends IExpansionPanelEventArgs, CancelableEventArgs {}\n\n@Directive()\nexport abstract class HeaderContentBaseDirective {\n protected element = inject(ElementRef);\n\n /**\n * Returns the `textContent` of an element\n *\n * ```html\n * <igx-expansion-panel-title>\n * Tooltip content\n * </igx-expansion-panel-title>\n * ```\n *\n * or the `title` content\n *\n * ```html\n * <igx-expansion-panel-title [title]=\"'Tooltip content'\">\n * </igx-expansion-panel-title>\n * ```\n *\n * If both are provided, returns the `title` content.\n *\n * @param element\n * @returns tooltip content for an element\n */\n public getTooltipContent = (element: ElementRef): string => {\n if (element.nativeElement.title) {\n return element.nativeElement.title;\n }\n if (element.nativeElement.textContent) {\n return element.nativeElement.textContent.trim();\n }\n\n return null!;\n };\n}\n","import { Component, HostBinding, ElementRef, Input, ChangeDetectorRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxExpansionPanelBase, IGX_EXPANSION_PANEL_COMPONENT } from './expansion-panel.common';\n\n@Component({\n selector: 'igx-expansion-panel-body',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxExpansionPanelBodyComponent {\n public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT);\n public element = inject(ElementRef);\n public cdr = inject(ChangeDetectorRef);\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__body')\n public cssClass = `igx-expansion-panel__body`;\n\n /**\n * Gets/sets the `role` attribute of the panel body\n * Default is 'region';\n * Get\n * ```typescript\n * const currentRole = this.panel.body.role;\n * ```\n * Set\n * ```typescript\n * this.panel.body.role = 'content';\n * ```\n * ```html\n * <igx-expansion-panel-body [role]=\"'custom'\"></igx-expansion-panel-body>\n * ```\n */\n @Input()\n @HostBinding('attr.role')\n public role = 'region';\n\n private _labelledBy = '';\n private _label = '';\n\n /**\n * Gets the `aria-label` attribute of the panel body\n * Defaults to the panel id with '-region' in the end;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.label;\n * ```\n */\n @Input()\n @HostBinding('attr.aria-label')\n public get label(): string {\n return this._label || this.panel.id + '-region';\n }\n /**\n * Sets the `aria-label` attribute of the panel body\n * ```typescript\n * this.panel.body.label = 'my-custom-label';\n * ```\n * ```html\n * <igx-expansion-panel-body [label]=\"'my-custom-label'\"></igx-expansion-panel-body>\n * ```\n */\n public set label(val: string) {\n this._label = val;\n }\n\n /**\n * Gets the `aria-labelledby` attribute of the panel body\n * Defaults to the panel header id;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.labelledBy;\n * ```\n */\n @Input()\n @HostBinding('attr.aria-labelledby')\n public get labelledBy(): string {\n return this._labelledBy;\n }\n /**\n * Sets the `aria-labelledby` attribute of the panel body\n * ```typescript\n * this.panel.body.labelledBy = 'my-custom-id';\n * ```\n * ```html\n * <igx-expansion-panel-body [labelledBy]=\"'my-custom-id'\"></igx-expansion-panel-body>\n * ```\n */\n public set labelledBy(val: string) {\n this._labelledBy = val;\n }\n}\n","/* eslint-disable @angular-eslint/directive-selector */\nimport { Directive, HostBinding } from '@angular/core';\nimport { IgxNoTypographyDirective } from 'igniteui-angular/directives';\nimport { HeaderContentBaseDirective } from './expansion-panel.common';\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-title',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxExpansionPanelTitleDirective extends HeaderContentBaseDirective {\n @HostBinding('class.igx-expansion-panel__header-title')\n public cssClass = `igx-expansion-panel__header-title`;\n\n @HostBinding('attr.title')\n private get title(): string {\n return this.getTooltipContent(this.element);\n }\n}\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-description',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxExpansionPanelDescriptionDirective extends HeaderContentBaseDirective {\n @HostBinding('class.igx-expansion-panel__header-description')\n public cssClass = `igx-expansion-panel__header-description`;\n\n @HostBinding('attr.title')\n private get title(): string {\n return this.getTooltipContent(this.element);\n }\n}\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-icon',\n standalone: true\n})\nexport class IgxExpansionPanelIconDirective { }\n","import { Component, ChangeDetectorRef, ElementRef, HostBinding, Input, EventEmitter, Output, ContentChild, ViewChild, booleanAttribute, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxExpansionPanelIconDirective } from './expansion-panel.directives';\nimport { IGX_EXPANSION_PANEL_COMPONENT, IgxExpansionPanelBase, IExpansionPanelCancelableEventArgs } from './expansion-panel.common';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\n\n/**\n * @hidden\n */\nexport const ExpansionPanelHeaderIconPosition = {\n LEFT: 'left',\n NONE: 'none',\n RIGHT: 'right'\n} as const;\nexport type ExpansionPanelHeaderIconPosition = (typeof ExpansionPanelHeaderIconPosition)[keyof typeof ExpansionPanelHeaderIconPosition];\n\n\n@Component({\n selector: 'igx-expansion-panel-header',\n templateUrl: 'expansion-panel-header.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '(keydown.Enter)': 'onAction($any($event))',\n '(keydown.Space)': 'onAction($any($event))',\n '(keydown.Spacebar)': 'onAction($any($event))',\n '(click)': 'onAction($event)',\n '(keydown.alt.arrowdown)': 'openPanel($event)',\n '(keydown.alt.arrowup)': 'closePanel($event)'\n },\n imports: [IgxIconComponent]\n})\nexport class IgxExpansionPanelHeaderComponent {\n public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT, { host: true });\n public cdr = inject(ChangeDetectorRef);\n public elementRef = inject(ElementRef);\n\n /**\n * Returns a reference to the `igx-expansion-panel-icon` element;\n * If `iconPosition` is `NONE` - return null;\n */\n public get iconRef(): ElementRef {\n const renderedTemplate = this.customIconRef ?? this.defaultIconRef;\n return this.iconPosition !== ExpansionPanelHeaderIconPosition.NONE ? renderedTemplate : null!;\n }\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelIconDirective)\n public set iconTemplate(val: boolean) {\n this._iconTemplate = val;\n }\n\n /**\n * @hidden\n */\n public get iconTemplate(): boolean {\n return this._iconTemplate;\n }\n\n /**\n * Gets/sets the `aria-level` attribute of the header\n * Get\n * ```typescript\n * const currentAriaLevel = this.panel.header.lv;\n * ```\n * Set\n * ```typescript\n * this.panel.header.lv = '5';\n * ```\n * ```html\n * <igx-expansion-panel-header [lv]=\"myCustomLevel\"></igx-expansion-panel-header>\n * ```\n */\n @HostBinding('attr.aria-level')\n @Input()\n public lv = '3';\n\n /**\n * Gets/sets the `role` attribute of the header\n * Get\n * ```typescript\n * const currentRole = this.panel.header.role;\n * ```\n * Set\n * ```typescript\n * this.panel.header.role = '5';\n * ```\n * ```html\n * <igx-expansion-panel-header [role]=\"'custom'\"></igx-expansion-panel-header>\n * ```\n */\n @HostBinding('attr.role')\n @Input()\n public role = 'heading';\n\n /**\n * @hidden\n */\n public get controls(): string {\n return this.panel.id;\n }\n\n /**\n * @hidden @internal\n */\n public get innerElement() {\n return this.elementRef.nativeElement.children[0];\n }\n\n /**\n * Gets/sets the position of the expansion-panel-header expand/collapse icon\n * Accepts `left`, `right` or `none`\n * ```typescript\n * const currentIconPosition = this.panel.header.iconPosition;\n * ```\n * Set\n * ```typescript\n * this.panel.header.iconPosition = 'left';\n * ```\n * ```html\n * <igx-expansion-panel-header [iconPosition]=\"'right'\"></igx-expansion-panel-header>\n * ```\n */\n @Input()\n public iconPosition: ExpansionPanelHeaderIconPosition = ExpansionPanelHeaderIconPosition.LEFT;\n\n /**\n * Emitted whenever a user interacts with the header host\n * ```typescript\n * handleInteraction(event: IExpansionPanelCancelableEventArgs) {\n * ...\n * }\n * ```\n * ```html\n * <igx-expansion-panel-header (interaction)=\"handleInteraction($event)\">\n * ...\n * </igx-expansion-panel-header>\n * ```\n */\n @Output()\n public interaction = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__header')\n public cssClass = 'igx-expansion-panel__header';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__header--expanded')\n public get isExpanded() {\n return !this.panel.collapsed;\n }\n\n /**\n * Gets/sets the whether the header is disabled\n * When disabled, the header will not handle user events and will stop their propagation\n *\n * ```typescript\n * const isDisabled = this.panel.header.disabled;\n * ```\n * Set\n * ```typescript\n * this.panel.header.disabled = true;\n * ```\n * ```html\n * <igx-expansion-panel-header [disabled]=\"true\">\n * ...\n * </igx-expansion-panel-header>\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.igx-expansion-panel--disabled')\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(val: boolean) {\n this._disabled = val;\n if (val) {\n // V.S. June 11th, 2021: #9696 TabIndex should be removed when panel is disabled\n this.tabIndex = undefined;\n } else {\n this.tabIndex = 0;\n }\n }\n\n /** @hidden @internal */\n @ContentChild(IgxExpansionPanelIconDirective, { read: ElementRef })\n private customIconRef!: ElementRef;\n\n /** @hidden @internal */\n @ViewChild(IgxIconComponent, { read: ElementRef })\n private defaultIconRef!: ElementRef;\n\n /**\n * Sets/gets the `id` of the expansion panel header.\n * ```typescript\n * let panelHeaderId = this.panel.header.id;\n * ```\n *\n * @memberof IgxExpansionPanelComponent\n */\n public id = '';\n\n /** @hidden @internal */\n public tabIndex?: number = 0;\n\n // properties section\n private _iconTemplate = false;\n private _disabled = false;\n\n constructor() {\n this.id = `${this.panel.id}-header`;\n }\n\n /**\n * @hidden\n */\n public onAction(evt: KeyboardEvent | MouseEvent) {\n if (this.disabled) {\n evt!.stopPropagation();\n return;\n }\n const eventArgs: IExpansionPanelCancelableEventArgs = { event: evt!, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.toggle(evt);\n evt!.preventDefault();\n }\n\n /** @hidden @internal */\n public openPanel(event: KeyboardEvent) {\n if (event.altKey) {\n const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.expand(event);\n }\n }\n\n /** @hidden @internal */\n public closePanel(event: KeyboardEvent) {\n if (event.altKey) {\n const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.collapse(event);\n }\n }\n\n /**\n * @hidden\n */\n public get iconPositionClass(): string {\n switch (this.iconPosition) {\n case (ExpansionPanelHeaderIconPosition.LEFT):\n return `igx-expansion-panel__header-icon--start`;\n case (ExpansionPanelHeaderIconPosition.RIGHT):\n return `igx-expansion-panel__header-icon--end`;\n case (ExpansionPanelHeaderIconPosition.NONE):\n return `igx-expansion-panel__header-icon--none`;\n default:\n return '';\n }\n }\n}\n","<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n <div class=\"igx-expansion-panel__title-wrapper\">\n <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div\n [class]=\"iconPositionClass\"\n [class.igx-expansion-panel__header-icon]=\"true\"\n >\n @if (iconTemplate) {\n <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n }\n @if (!iconTemplate) {\n <igx-icon\n family=\"default\"\n [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n </igx-icon>\n }\n </div>\n</div>\n","import { AnimationReferenceMetadata } from '@angular/animations';\nimport { Directive, ElementRef, EventEmitter, inject, OnDestroy } from '@angular/core';\nimport { noop, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxAngularAnimationService } from 'igniteui-angular/core';\nimport { AnimationPlayer, AnimationService } from 'igniteui-angular/core';\nimport { growVerIn, growVerOut } from 'igniteui-angular/animations';\n\n/**@hidden @internal */\nexport interface ToggleAnimationSettings {\n openAnimation: AnimationReferenceMetadata;\n closeAnimation: AnimationReferenceMetadata;\n}\n\nexport interface ToggleAnimationOwner {\n animationSettings: ToggleAnimationSettings;\n openAnimationStart: EventEmitter<void>;\n openAnimationDone: EventEmitter<void>;\n closeAnimationStart: EventEmitter<void>;\n closeAnimationDone: EventEmitter<void>;\n openAnimationPlayer: AnimationPlayer;\n closeAnimationPlayer: AnimationPlayer;\n playOpenAnimation(element: ElementRef, onDone: () => void): void;\n playCloseAnimation(element: ElementRef, onDone: () => void): void;\n}\n\n/** @hidden @internal */\nexport enum ANIMATION_TYPE {\n OPEN = 'open',\n CLOSE = 'close',\n}\n\n/**@hidden @internal */\n@Directive()\nexport abstract class ToggleAnimationPlayer implements ToggleAnimationOwner, OnDestroy {\n protected animationService = inject<AnimationService>(IgxAngularAnimationService);\n\n /** @hidden @internal */\n public openAnimationDone: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public closeAnimationDone: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public openAnimationStart: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public closeAnimationStart: EventEmitter<void> = new EventEmitter();\n\n public get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings;\n }\n public set animationSettings(value: ToggleAnimationSettings) {\n this._animationSettings = value;\n }\n\n /** @hidden @internal */\n public openAnimationPlayer: AnimationPlayer = null!;\n\n /** @hidden @internal */\n public closeAnimationPlayer: AnimationPlayer = null!;\n\n protected destroy$: Subject<void> = new Subject();\n protected players: Map<string, AnimationPlayer> = new Map();\n protected _animationSettings: ToggleAnimationSettings = {\n openAnimation: growVerIn,\n closeAnimation: growVerOut\n };\n\n private closeInterrupted = false;\n private openInterrupted = false;\n\n private _defaultClosedCallback = noop;\n private _defaultOpenedCallback = noop;\n private onClosedCallback: () => any = this._defaultClosedCallback;\n private onOpenedCallback: () => any = this._defaultOpenedCallback;\n\n /** @hidden @internal */\n public playOpenAnimation(targetElement: ElementRef, onDone?: () => void): void {\n this.startPlayer(ANIMATION_TYPE.OPEN, targetElement, onDone || this._defaultOpenedCallback);\n }\n\n /** @hidden @internal */\n public playCloseAnimation(targetElement: ElementRef, onDone?: () => void): void {\n this.startPlayer(ANIMATION_TYPE.CLOSE, targetElement, onDone || this._defaultClosedCallback);\n }\n\n /** @hidden @internal */\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private startPlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): void {\n if (!targetElement) { // if no element is passed, there is nothing to animate\n return;\n }\n let target = this.getPlayer(type);\n if (!target) {\n target = this.initializePlayer(type, targetElement, callback);\n }\n // V.S. Jun 28th, 2021 #9783: player will NOT be initialized w/ null settings\n // events will already be emitted\n if (!target || target.hasStarted()) {\n return;\n }\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n targetEmitter.emit();\n if (target) {\n target.play();\n }\n }\n\n private initializePlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): AnimationPlayer {\n const oppositeType = type === ANIMATION_TYPE.OPEN ? ANIMATION_TYPE.CLOSE : ANIMATION_TYPE.OPEN;\n // V.S. Jun 28th, 2021 #9783: Treat falsy animation settings as disabled animations\n const targetAnimationSettings = this.animationSettings || { closeAnimation: null, openAnimation: null };\n const animationSettings = type === ANIMATION_TYPE.OPEN ?\n targetAnimationSettings.openAnimation : targetAnimationSettings.closeAnimation;\n // V.S. Jun 28th, 2021 #9783: When no animation in target direction, emit start and done events and return\n if (!animationSettings) {\n this.setCallback(type, callback);\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n targetEmitter.emit();\n this.onDoneHandler(type);\n return undefined!;\n }\n const opposite = this.getPlayer(oppositeType);\n let oppositePosition = 1;\n if (opposite) {\n oppositePosition = opposite.position;\n this.cleanUpPlayer(oppositeType);\n }\n if (type === ANIMATION_TYPE.OPEN) {\n this.openAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n } else if (type === ANIMATION_TYPE.CLOSE) {\n this.closeAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n }\n const target = this.getPlayer(type);\n target.init();\n this.getPlayer(type).position = 1 - oppositePosition;\n this.setCallback(type, callback);\n target.animationEnd.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onDoneHandler(type);\n });\n return target;\n }\n\n private onDoneHandler(type: ANIMATION_TYPE) {\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationDone : this.closeAnimationDone;\n const targetCallback = type === ANIMATION_TYPE.OPEN ? this.onOpenedCallback : this.onClosedCallback;\n targetCallback();\n if (!(type === ANIMATION_TYPE.OPEN ? this.openInterrupted : this.closeInterrupted)) {\n targetEmitter.emit();\n }\n this.cleanUpPlayer(type);\n }\n\n private setCallback(type: ANIMATION_TYPE, callback: () => void) {\n if (type === ANIMATION_TYPE.OPEN) {\n this.onOpenedCallback = callback;\n this.openInterrupted = false;\n } else if (type === ANIMATION_TYPE.CLOSE) {\n this.onClosedCallback = callback;\n this.closeInterrupted = false;\n }\n }\n\n private cleanUpPlayer(target: ANIMATION_TYPE) {\n switch (target) {\n case ANIMATION_TYPE.CLOSE:\n if (this.closeAnimationPlayer != null) {\n this.closeAnimationPlayer.reset();\n this.closeAnimationPlayer.destroy();\n this.closeAnimationPlayer = null!;\n }\n this.closeInterrupted = true;\n this.onClosedCallback = this._defaultClosedCallback;\n break;\n case ANIMATION_TYPE.OPEN:\n if (this.openAnimationPlayer != null) {\n this.openAnimationPlayer.reset();\n this.openAnimationPlayer.destroy();\n this.openAnimationPlayer = null!;\n }\n this.openInterrupted = true;\n this.onOpenedCallback = this._defaultOpenedCallback;\n break;\n default:\n break;\n }\n }\n\n private getPlayer(type: ANIMATION_TYPE): AnimationPlayer {\n switch (type) {\n case ANIMATION_TYPE.OPEN:\n return this.openAnimationPlayer;\n case ANIMATION_TYPE.CLOSE:\n return this.closeAnimationPlayer;\n default:\n return null!;\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewEncapsulation\n} from '@angular/core';\nimport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport {\n IExpansionPanelCancelableEventArgs,\n IExpansionPanelEventArgs,\n IgxExpansionPanelBase,\n IGX_EXPANSION_PANEL_COMPONENT\n} from './expansion-panel.common';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from './toggle-animation-component';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'igx-expansion-panel',\n templateUrl: 'expansion-panel.component.html',\n styleUrl: 'expansion-panel.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: []\n})\nexport class IgxExpansionPanelComponent extends ToggleAnimationPlayer implements IgxExpansionPanelBase, AfterContentInit {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n\n /**\n * Sets/gets the animation settings of the expansion panel component\n * Open and Close animation should be passed\n *\n * Get\n * ```typescript\n * const currentAnimations = this.panel.animationSettings;\n * ```\n * Set\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * this.panel.animationsSettings = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```\n * or via template\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * myCustomAnimationObject = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```html\n * <igx-expansion-panel [animationSettings]='myCustomAnimationObject'>\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Input()\n public override get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings;\n }\n public override set animationSettings(value: ToggleAnimationSettings) {\n this._animationSettings = value;\n }\n\n /**\n * Sets/gets the `id` of the expansion panel component.\n * If not set, `id` will have value `\"igx-expansion-panel-0\"`;\n * ```html\n * <igx-expansion-panel id = \"my-first-expansion-panel\"></igx-expansion-panel>\n * ```\n * ```typescript\n * let panelId = this.panel.id;\n * ```\n *\n * @memberof IgxExpansionPanelComponent\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-expansion-panel-${NEXT_ID++}`;\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel')\n public cssClass = 'igx-expansion-panel';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel--expanded')\n protected opened = false;\n\n /**\n * @hidden @internal\n */\n @HostBinding('attr.aria-expanded')\n public get panelExpanded() {\n return !this.collapsed;\n }\n\n /**\n * Gets/sets whether the component is collapsed (its content is hidden)\n * Get\n * ```typescript\n * const myPanelState: boolean = this.panel.collapsed;\n * ```\n * Set\n * ```html\n * this.panel.collapsed = true;\n * ```\n *\n * Two-way data binding:\n * ```html\n * <igx-expansion-panel [(collapsed)]=\"model.isCollapsed\"></igx-expansion-panel>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public collapsed = true;\n\n /**\n * @hidden\n */\n @Output()\n public collapsedChange = new EventEmitter<boolean>();\n\n /**\n * Emitted when the expansion panel starts collapsing\n * ```typescript\n * handleCollapsing(event: IExpansionPanelCancelableEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentCollapsing)=\"handleCollapsing($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentCollapsing = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * Emitted when the expansion panel finishes collapsing\n * ```typescript\n * handleCollapsed(event: IExpansionPanelEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentCollapsed)=\"handleCollapsed($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentCollapsed = new EventEmitter<IExpansionPanelEventArgs>();\n\n /**\n * Emitted when the expansion panel starts expanding\n * ```typescript\n * handleExpanding(event: IExpansionPanelCancelableEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentExpanding)=\"handleExpanding($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentExpanding = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * Emitted when the expansion panel finishes expanding\n * ```typescript\n * handleExpanded(event: IExpansionPanelEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentExpanded)=\"handleExpanded($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentExpanded = new EventEmitter<IExpansionPanelEventArgs>();\n\n /**\n * @hidden\n */\n public get headerId() {\n return this.header ? `${this.id}-header` : '';\n }\n\n /**\n * @hidden @internal\n */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelBodyComponent, { read: IgxExpansionPanelBodyComponent })\n public body!: IgxExpansionPanelBodyComponent;\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent })\n public header!: IgxExpansionPanelHeaderComponent;\n\n /** @hidden */\n public ngAfterContentInit(): void {\n if (this.body && this.header) {\n // schedule at end of turn:\n Promise.resolve().then(() => {\n this.body.labelledBy = this.body.labelledBy || this.headerId;\n this.body.label = this.body.label || this.id + '-region';\n });\n }\n }\n\n /**\n * Collapses the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.collapse($event)\">Collpase Panel</button>\n * ```\n */\n public collapse(evt?: MouseEvent | KeyboardEvent) {\n // If expansion panel is already collapsed or is collapsing, do nothing\n if (this.collapsed || this.closeAnimationPlayer) {\n return;\n }\n const args = { event: evt!, panel: this, owner: this, cancel: false };\n this.contentCollapsing.emit(args!);\n if (args.cancel === true) {\n return;\n }\n this.opened = false;\n this.playCloseAnimation(\n this.body?.element,\n () => {\n this.contentCollapsed.emit({ event: evt!, owner: this });\n this.collapsed = true;\n this.collapsedChange.emit(true);\n this.cdr.markForCheck();\n }\n );\n }\n\n /**\n * Expands the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.expand($event)\">Expand Panel</button>\n * ```\n */\n public expand(evt?: Event) {\n if (!this.collapsed && !this.closeAnimationPlayer) { // Check if the panel is currently collapsing or already expanded\n return;\n }\n const args = { event: evt!, panel: this, owner: this, cancel: false };\n this.contentExpanding.emit(args!);\n if (args.cancel === true) {\n return;\n }\n this.collapsed = false;\n this.opened = true;\n this.collapsedChange.emit(false);\n this.cdr.detectChanges();\n this.playOpenAnimation(\n this.body?.element,\n () => {\n this.contentExpanded.emit({ event: evt!, owner: this });\n }\n );\n }\n\n /**\n * Toggles the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.toggle($event)\">Expand Panel</button>\n * ```\n */\n public toggle(evt?: MouseEvent | KeyboardEvent) {\n if (this.collapsed) {\n this.open(evt);\n } else {\n this.close(evt);\n }\n }\n\n public open(evt?: MouseEvent | KeyboardEvent) {\n this.expand(evt);\n }\n\n public close(evt?: MouseEvent | KeyboardEvent) {\n this.collapse(evt);\n }\n}\n","<ng-content select=\"igx-expansion-panel-header\"></ng-content>\n@if (!collapsed) {\n <ng-content select=\"igx-expansion-panel-body\"></ng-content>\n}\n","import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { IgxExpansionPanelComponent } from './expansion-panel.component';\nimport { IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, IgxExpansionPanelTitleDirective } from './expansion-panel.directives';\n\nexport { IExpansionPanelEventArgs, IExpansionPanelCancelableEventArgs, IgxExpansionPanelBase } from './expansion-panel.common';\nexport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nexport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nexport { IgxExpansionPanelComponent } from './expansion-panel.component';\nexport {\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelIconDirective,\n IgxExpansionPanelTitleDirective\n} from './expansion-panel.directives';\nexport { ExpansionPanelHeaderIconPosition } from './expansion-panel-header.component';\nexport { ToggleAnimationSettings, ToggleAnimationPlayer } from './toggle-animation-component';\n\n/* NOTE: Expansion panel directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_EXPANSION_PANEL_DIRECTIVES = [\n IgxExpansionPanelComponent,\n IgxExpansionPanelHeaderComponent,\n IgxExpansionPanelBodyComponent,\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelTitleDirective,\n IgxExpansionPanelIconDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_EXPANSION_PANEL_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_EXPANSION_PANEL_DIRECTIVES\n ],\n exports: [\n ...IGX_EXPANSION_PANEL_DIRECTIVES\n ]\n})\nexport class IgxExpansionPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxExpansionPanelComponent","i2.IgxExpansionPanelHeaderComponent","i3.IgxExpansionPanelBodyComponent","i4.IgxExpansionPanelDescriptionDirective","i4.IgxExpansionPanelTitleDirective","i4.IgxExpansionPanelIconDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igniteui-angular-expansion-panel.mjs","sources":["../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.common.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-body.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.directives.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/toggle-animation-component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/public_api.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.module.ts","../../../projects/igniteui-angular/expansion-panel/src/igniteui-angular-expansion-panel.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, inject, InjectionToken } from '@angular/core';\nimport { AnimationReferenceMetadata } from '@angular/animations';\nimport { CancelableEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\n\nexport interface IgxExpansionPanelBase {\n id: string;\n cssClass: string;\n /** @hidden @internal */\n headerId: string;\n collapsed: boolean;\n animationSettings: { openAnimation: AnimationReferenceMetadata; closeAnimation: AnimationReferenceMetadata };\n contentCollapsed: EventEmitter<any>;\n contentCollapsing: EventEmitter<any>;\n contentExpanded: EventEmitter<any>;\n contentExpanding: EventEmitter<any>;\n collapse(evt?: Event);\n expand(evt?: Event);\n toggle(evt?: Event);\n}\n\n/** @hidden */\nexport const IGX_EXPANSION_PANEL_COMPONENT = /*@__PURE__*/new InjectionToken<IgxExpansionPanelBase>('IgxExpansionPanelToken');\n\nexport interface IExpansionPanelEventArgs extends IBaseEventArgs {\n event: Event;\n}\n\nexport interface IExpansionPanelCancelableEventArgs extends IExpansionPanelEventArgs, CancelableEventArgs {}\n\n@Directive()\nexport abstract class HeaderContentBaseDirective {\n protected element = inject(ElementRef);\n\n /**\n * Returns the `textContent` of an element\n *\n * ```html\n * <igx-expansion-panel-title>\n * Tooltip content\n * </igx-expansion-panel-title>\n * ```\n *\n * or the `title` content\n *\n * ```html\n * <igx-expansion-panel-title [title]=\"'Tooltip content'\">\n * </igx-expansion-panel-title>\n * ```\n *\n * If both are provided, returns the `title` content.\n *\n * @param element\n * @returns tooltip content for an element\n */\n public getTooltipContent = (element: ElementRef): string => {\n if (element.nativeElement.title) {\n return element.nativeElement.title;\n }\n if (element.nativeElement.textContent) {\n return element.nativeElement.textContent.trim();\n }\n\n return null;\n };\n}\n","import { Component, HostBinding, ElementRef, Input, ChangeDetectorRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxExpansionPanelBase, IGX_EXPANSION_PANEL_COMPONENT } from './expansion-panel.common';\n\n@Component({\n selector: 'igx-expansion-panel-body',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class IgxExpansionPanelBodyComponent {\n public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT);\n public element = inject(ElementRef);\n public cdr = inject(ChangeDetectorRef);\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__body')\n public cssClass = `igx-expansion-panel__body`;\n\n /**\n * Gets/sets the `role` attribute of the panel body\n * Default is 'region';\n * Get\n * ```typescript\n * const currentRole = this.panel.body.role;\n * ```\n * Set\n * ```typescript\n * this.panel.body.role = 'content';\n * ```\n * ```html\n * <igx-expansion-panel-body [role]=\"'custom'\"></igx-expansion-panel-body>\n * ```\n */\n @Input()\n @HostBinding('attr.role')\n public role = 'region';\n\n private _labelledBy = '';\n private _label = '';\n\n /**\n * Gets the `aria-label` attribute of the panel body\n * Defaults to the panel id with '-region' in the end;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.label;\n * ```\n */\n @Input()\n @HostBinding('attr.aria-label')\n public get label(): string {\n return this._label || this.panel.id + '-region';\n }\n /**\n * Sets the `aria-label` attribute of the panel body\n * ```typescript\n * this.panel.body.label = 'my-custom-label';\n * ```\n * ```html\n * <igx-expansion-panel-body [label]=\"'my-custom-label'\"></igx-expansion-panel-body>\n * ```\n */\n public set label(val: string) {\n this._label = val;\n }\n\n /**\n * Gets the `aria-labelledby` attribute of the panel body\n * Defaults to the panel header id;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.labelledBy;\n * ```\n */\n @Input()\n @HostBinding('attr.aria-labelledby')\n public get labelledBy(): string {\n return this._labelledBy;\n }\n /**\n * Sets the `aria-labelledby` attribute of the panel body\n * ```typescript\n * this.panel.body.labelledBy = 'my-custom-id';\n * ```\n * ```html\n * <igx-expansion-panel-body [labelledBy]=\"'my-custom-id'\"></igx-expansion-panel-body>\n * ```\n */\n public set labelledBy(val: string) {\n this._labelledBy = val;\n }\n}\n","/* eslint-disable @angular-eslint/directive-selector */\nimport { Directive, HostBinding } from '@angular/core';\nimport { IgxNoTypographyDirective } from 'igniteui-angular/directives';\nimport { HeaderContentBaseDirective } from './expansion-panel.common';\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-title',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxExpansionPanelTitleDirective extends HeaderContentBaseDirective {\n @HostBinding('class.igx-expansion-panel__header-title')\n public cssClass = `igx-expansion-panel__header-title`;\n\n @HostBinding('attr.title')\n private get title(): string {\n return this.getTooltipContent(this.element);\n }\n}\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-description',\n standalone: true,\n hostDirectives: [IgxNoTypographyDirective]\n})\nexport class IgxExpansionPanelDescriptionDirective extends HeaderContentBaseDirective {\n @HostBinding('class.igx-expansion-panel__header-description')\n public cssClass = `igx-expansion-panel__header-description`;\n\n @HostBinding('attr.title')\n private get title(): string {\n return this.getTooltipContent(this.element);\n }\n}\n\n/** @hidden @internal */\n@Directive({\n selector: 'igx-expansion-panel-icon',\n standalone: true\n})\nexport class IgxExpansionPanelIconDirective { }\n","import { Component, ChangeDetectorRef, ElementRef, HostBinding, HostListener, Input, EventEmitter, Output, ContentChild, ViewChild, booleanAttribute, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { IgxExpansionPanelIconDirective } from './expansion-panel.directives';\nimport { IGX_EXPANSION_PANEL_COMPONENT, IgxExpansionPanelBase, IExpansionPanelCancelableEventArgs } from './expansion-panel.common';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\n\n/**\n * @hidden\n */\nexport const ExpansionPanelHeaderIconPosition = {\n LEFT: 'left',\n NONE: 'none',\n RIGHT: 'right'\n} as const;\nexport type ExpansionPanelHeaderIconPosition = (typeof ExpansionPanelHeaderIconPosition)[keyof typeof ExpansionPanelHeaderIconPosition];\n\n\n@Component({\n selector: 'igx-expansion-panel-header',\n templateUrl: 'expansion-panel-header.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [IgxIconComponent]\n})\nexport class IgxExpansionPanelHeaderComponent {\n public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT, { host: true });\n public cdr = inject(ChangeDetectorRef);\n public elementRef = inject(ElementRef);\n\n /**\n * Returns a reference to the `igx-expansion-panel-icon` element;\n * If `iconPosition` is `NONE` - return null;\n */\n public get iconRef(): ElementRef {\n const renderedTemplate = this.customIconRef ?? this.defaultIconRef;\n return this.iconPosition !== ExpansionPanelHeaderIconPosition.NONE ? renderedTemplate : null;\n }\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelIconDirective)\n public set iconTemplate(val: boolean) {\n this._iconTemplate = val;\n }\n\n /**\n * @hidden\n */\n public get iconTemplate(): boolean {\n return this._iconTemplate;\n }\n\n /**\n * Gets/sets the `aria-level` attribute of the header\n * Get\n * ```typescript\n * const currentAriaLevel = this.panel.header.lv;\n * ```\n * Set\n * ```typescript\n * this.panel.header.lv = '5';\n * ```\n * ```html\n * <igx-expansion-panel-header [lv]=\"myCustomLevel\"></igx-expansion-panel-header>\n * ```\n */\n @HostBinding('attr.aria-level')\n @Input()\n public lv = '3';\n\n /**\n * Gets/sets the `role` attribute of the header\n * Get\n * ```typescript\n * const currentRole = this.panel.header.role;\n * ```\n * Set\n * ```typescript\n * this.panel.header.role = '5';\n * ```\n * ```html\n * <igx-expansion-panel-header [role]=\"'custom'\"></igx-expansion-panel-header>\n * ```\n */\n @HostBinding('attr.role')\n @Input()\n public role = 'heading';\n\n /**\n * @hidden\n */\n public get controls(): string {\n return this.panel.id;\n }\n\n /**\n * @hidden @internal\n */\n public get innerElement() {\n return this.elementRef.nativeElement.children[0];\n }\n\n /**\n * Gets/sets the position of the expansion-panel-header expand/collapse icon\n * Accepts `left`, `right` or `none`\n * ```typescript\n * const currentIconPosition = this.panel.header.iconPosition;\n * ```\n * Set\n * ```typescript\n * this.panel.header.iconPosition = 'left';\n * ```\n * ```html\n * <igx-expansion-panel-header [iconPosition]=\"'right'\"></igx-expansion-panel-header>\n * ```\n */\n @Input()\n public iconPosition: ExpansionPanelHeaderIconPosition = ExpansionPanelHeaderIconPosition.LEFT;\n\n /**\n * Emitted whenever a user interacts with the header host\n * ```typescript\n * handleInteraction(event: IExpansionPanelCancelableEventArgs) {\n * ...\n * }\n * ```\n * ```html\n * <igx-expansion-panel-header (interaction)=\"handleInteraction($event)\">\n * ...\n * </igx-expansion-panel-header>\n * ```\n */\n @Output()\n public interaction = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__header')\n public cssClass = 'igx-expansion-panel__header';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel__header--expanded')\n public get isExpanded() {\n return !this.panel.collapsed;\n }\n\n /**\n * Gets/sets the whether the header is disabled\n * When disabled, the header will not handle user events and will stop their propagation\n *\n * ```typescript\n * const isDisabled = this.panel.header.disabled;\n * ```\n * Set\n * ```typescript\n * this.panel.header.disabled = true;\n * ```\n * ```html\n * <igx-expansion-panel-header [disabled]=\"true\">\n * ...\n * </igx-expansion-panel-header>\n * ```\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.igx-expansion-panel--disabled')\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set disabled(val: boolean) {\n this._disabled = val;\n if (val) {\n // V.S. June 11th, 2021: #9696 TabIndex should be removed when panel is disabled\n delete this.tabIndex;\n } else {\n this.tabIndex = 0;\n }\n }\n\n /** @hidden @internal */\n @ContentChild(IgxExpansionPanelIconDirective, { read: ElementRef })\n private customIconRef: ElementRef;\n\n /** @hidden @internal */\n @ViewChild(IgxIconComponent, { read: ElementRef })\n private defaultIconRef: ElementRef;\n\n /**\n * Sets/gets the `id` of the expansion panel header.\n * ```typescript\n * let panelHeaderId = this.panel.header.id;\n * ```\n *\n * @memberof IgxExpansionPanelComponent\n */\n public id = '';\n\n /** @hidden @internal */\n public tabIndex = 0;\n\n // properties section\n private _iconTemplate = false;\n private _disabled = false;\n\n constructor() {\n this.id = `${this.panel.id}-header`;\n }\n\n /**\n * @hidden\n */\n @HostListener('keydown.Enter', ['$event'])\n @HostListener('keydown.Space', ['$event'])\n @HostListener('keydown.Spacebar', ['$event'])\n @HostListener('click', ['$event'])\n public onAction(evt?: Event) {\n if (this.disabled) {\n evt.stopPropagation();\n return;\n }\n const eventArgs: IExpansionPanelCancelableEventArgs = { event: evt, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.toggle(evt);\n evt.preventDefault();\n }\n\n /** @hidden @internal */\n @HostListener('keydown.alt.arrowdown', ['$event'])\n public openPanel(event: KeyboardEvent) {\n if (event.altKey) {\n const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.expand(event);\n }\n }\n\n /** @hidden @internal */\n @HostListener('keydown.alt.arrowup', ['$event'])\n public closePanel(event: KeyboardEvent) {\n if (event.altKey) {\n const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n this.interaction.emit(eventArgs);\n if (eventArgs.cancel === true) {\n return;\n }\n this.panel.collapse(event);\n }\n }\n\n /**\n * @hidden\n */\n public get iconPositionClass(): string {\n switch (this.iconPosition) {\n case (ExpansionPanelHeaderIconPosition.LEFT):\n return `igx-expansion-panel__header-icon--start`;\n case (ExpansionPanelHeaderIconPosition.RIGHT):\n return `igx-expansion-panel__header-icon--end`;\n case (ExpansionPanelHeaderIconPosition.NONE):\n return `igx-expansion-panel__header-icon--none`;\n default:\n return '';\n }\n }\n}\n","<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n <div class=\"igx-expansion-panel__title-wrapper\">\n <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div\n [class]=\"iconPositionClass\"\n [class.igx-expansion-panel__header-icon]=\"true\"\n >\n @if (iconTemplate) {\n <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n }\n @if (!iconTemplate) {\n <igx-icon\n family=\"default\"\n [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n </igx-icon>\n }\n </div>\n</div>\n","import { AnimationReferenceMetadata } from '@angular/animations';\nimport { Directive, ElementRef, EventEmitter, inject, OnDestroy } from '@angular/core';\nimport { noop, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxAngularAnimationService } from 'igniteui-angular/core';\nimport { AnimationPlayer, AnimationService } from 'igniteui-angular/core';\nimport { growVerIn, growVerOut } from 'igniteui-angular/animations';\n\n/**@hidden @internal */\nexport interface ToggleAnimationSettings {\n openAnimation: AnimationReferenceMetadata;\n closeAnimation: AnimationReferenceMetadata;\n}\n\nexport interface ToggleAnimationOwner {\n animationSettings: ToggleAnimationSettings;\n openAnimationStart: EventEmitter<void>;\n openAnimationDone: EventEmitter<void>;\n closeAnimationStart: EventEmitter<void>;\n closeAnimationDone: EventEmitter<void>;\n openAnimationPlayer: AnimationPlayer;\n closeAnimationPlayer: AnimationPlayer;\n playOpenAnimation(element: ElementRef, onDone: () => void): void;\n playCloseAnimation(element: ElementRef, onDone: () => void): void;\n}\n\n/** @hidden @internal */\nexport enum ANIMATION_TYPE {\n OPEN = 'open',\n CLOSE = 'close',\n}\n\n/**@hidden @internal */\n@Directive()\nexport abstract class ToggleAnimationPlayer implements ToggleAnimationOwner, OnDestroy {\n protected animationService = inject<AnimationService>(IgxAngularAnimationService);\n\n /** @hidden @internal */\n public openAnimationDone: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public closeAnimationDone: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public openAnimationStart: EventEmitter<void> = new EventEmitter();\n /** @hidden @internal */\n public closeAnimationStart: EventEmitter<void> = new EventEmitter();\n\n public get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings;\n }\n public set animationSettings(value: ToggleAnimationSettings) {\n this._animationSettings = value;\n }\n\n /** @hidden @internal */\n public openAnimationPlayer: AnimationPlayer = null;\n\n /** @hidden @internal */\n public closeAnimationPlayer: AnimationPlayer = null;\n\n protected destroy$: Subject<void> = new Subject();\n protected players: Map<string, AnimationPlayer> = new Map();\n protected _animationSettings: ToggleAnimationSettings = {\n openAnimation: growVerIn,\n closeAnimation: growVerOut\n };\n\n private closeInterrupted = false;\n private openInterrupted = false;\n\n private _defaultClosedCallback = noop;\n private _defaultOpenedCallback = noop;\n private onClosedCallback: () => any = this._defaultClosedCallback;\n private onOpenedCallback: () => any = this._defaultOpenedCallback;\n\n /** @hidden @internal */\n public playOpenAnimation(targetElement: ElementRef, onDone?: () => void): void {\n this.startPlayer(ANIMATION_TYPE.OPEN, targetElement, onDone || this._defaultOpenedCallback);\n }\n\n /** @hidden @internal */\n public playCloseAnimation(targetElement: ElementRef, onDone?: () => void): void {\n this.startPlayer(ANIMATION_TYPE.CLOSE, targetElement, onDone || this._defaultClosedCallback);\n }\n\n /** @hidden @internal */\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private startPlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): void {\n if (!targetElement) { // if no element is passed, there is nothing to animate\n return;\n }\n let target = this.getPlayer(type);\n if (!target) {\n target = this.initializePlayer(type, targetElement, callback);\n }\n // V.S. Jun 28th, 2021 #9783: player will NOT be initialized w/ null settings\n // events will already be emitted\n if (!target || target.hasStarted()) {\n return;\n }\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n targetEmitter.emit();\n if (target) {\n target.play();\n }\n }\n\n private initializePlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): AnimationPlayer {\n const oppositeType = type === ANIMATION_TYPE.OPEN ? ANIMATION_TYPE.CLOSE : ANIMATION_TYPE.OPEN;\n // V.S. Jun 28th, 2021 #9783: Treat falsy animation settings as disabled animations\n const targetAnimationSettings = this.animationSettings || { closeAnimation: null, openAnimation: null };\n const animationSettings = type === ANIMATION_TYPE.OPEN ?\n targetAnimationSettings.openAnimation : targetAnimationSettings.closeAnimation;\n // V.S. Jun 28th, 2021 #9783: When no animation in target direction, emit start and done events and return\n if (!animationSettings) {\n this.setCallback(type, callback);\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n targetEmitter.emit();\n this.onDoneHandler(type);\n return;\n }\n const opposite = this.getPlayer(oppositeType);\n let oppositePosition = 1;\n if (opposite) {\n oppositePosition = opposite.position;\n this.cleanUpPlayer(oppositeType);\n }\n if (type === ANIMATION_TYPE.OPEN) {\n this.openAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n } else if (type === ANIMATION_TYPE.CLOSE) {\n this.closeAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n }\n const target = this.getPlayer(type);\n target.init();\n this.getPlayer(type).position = 1 - oppositePosition;\n this.setCallback(type, callback);\n target.animationEnd.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onDoneHandler(type);\n });\n return target;\n }\n\n private onDoneHandler(type) {\n const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationDone : this.closeAnimationDone;\n const targetCallback = type === ANIMATION_TYPE.OPEN ? this.onOpenedCallback : this.onClosedCallback;\n targetCallback();\n if (!(type === ANIMATION_TYPE.OPEN ? this.openInterrupted : this.closeInterrupted)) {\n targetEmitter.emit();\n }\n this.cleanUpPlayer(type);\n }\n\n private setCallback(type: ANIMATION_TYPE, callback: () => void) {\n if (type === ANIMATION_TYPE.OPEN) {\n this.onOpenedCallback = callback;\n this.openInterrupted = false;\n } else if (type === ANIMATION_TYPE.CLOSE) {\n this.onClosedCallback = callback;\n this.closeInterrupted = false;\n }\n }\n\n private cleanUpPlayer(target: ANIMATION_TYPE) {\n switch (target) {\n case ANIMATION_TYPE.CLOSE:\n if (this.closeAnimationPlayer != null) {\n this.closeAnimationPlayer.reset();\n this.closeAnimationPlayer.destroy();\n this.closeAnimationPlayer = null;\n }\n this.closeInterrupted = true;\n this.onClosedCallback = this._defaultClosedCallback;\n break;\n case ANIMATION_TYPE.OPEN:\n if (this.openAnimationPlayer != null) {\n this.openAnimationPlayer.reset();\n this.openAnimationPlayer.destroy();\n this.openAnimationPlayer = null;\n }\n this.openInterrupted = true;\n this.onOpenedCallback = this._defaultOpenedCallback;\n break;\n default:\n break;\n }\n }\n\n private getPlayer(type: ANIMATION_TYPE): AnimationPlayer {\n switch (type) {\n case ANIMATION_TYPE.OPEN:\n return this.openAnimationPlayer;\n case ANIMATION_TYPE.CLOSE:\n return this.closeAnimationPlayer;\n default:\n return null;\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n booleanAttribute,\n ChangeDetectionStrategy,\n ViewEncapsulation\n} from '@angular/core';\nimport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport {\n IExpansionPanelCancelableEventArgs,\n IExpansionPanelEventArgs,\n IgxExpansionPanelBase,\n IGX_EXPANSION_PANEL_COMPONENT\n} from './expansion-panel.common';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from './toggle-animation-component';\n\nlet NEXT_ID = 0;\n\n@Component({\n selector: 'igx-expansion-panel',\n templateUrl: 'expansion-panel.component.html',\n styleUrl: 'expansion-panel.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: []\n})\nexport class IgxExpansionPanelComponent extends ToggleAnimationPlayer implements IgxExpansionPanelBase, AfterContentInit {\n private cdr = inject(ChangeDetectorRef);\n private elementRef = inject(ElementRef);\n\n /**\n * Sets/gets the animation settings of the expansion panel component\n * Open and Close animation should be passed\n *\n * Get\n * ```typescript\n * const currentAnimations = this.panel.animationSettings;\n * ```\n * Set\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * this.panel.animationsSettings = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```\n * or via template\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * myCustomAnimationObject = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```html\n * <igx-expansion-panel [animationSettings]='myCustomAnimationObject'>\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Input()\n public override get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings;\n }\n public override set animationSettings(value: ToggleAnimationSettings) {\n this._animationSettings = value;\n }\n\n /**\n * Sets/gets the `id` of the expansion panel component.\n * If not set, `id` will have value `\"igx-expansion-panel-0\"`;\n * ```html\n * <igx-expansion-panel id = \"my-first-expansion-panel\"></igx-expansion-panel>\n * ```\n * ```typescript\n * let panelId = this.panel.id;\n * ```\n *\n * @memberof IgxExpansionPanelComponent\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-expansion-panel-${NEXT_ID++}`;\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel')\n public cssClass = 'igx-expansion-panel';\n\n /**\n * @hidden\n */\n @HostBinding('class.igx-expansion-panel--expanded')\n protected opened = false;\n\n /**\n * @hidden @internal\n */\n @HostBinding('attr.aria-expanded')\n public get panelExpanded() {\n return !this.collapsed;\n }\n\n /**\n * Gets/sets whether the component is collapsed (its content is hidden)\n * Get\n * ```typescript\n * const myPanelState: boolean = this.panel.collapsed;\n * ```\n * Set\n * ```html\n * this.panel.collapsed = true;\n * ```\n *\n * Two-way data binding:\n * ```html\n * <igx-expansion-panel [(collapsed)]=\"model.isCollapsed\"></igx-expansion-panel>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public collapsed = true;\n\n /**\n * @hidden\n */\n @Output()\n public collapsedChange = new EventEmitter<boolean>();\n\n /**\n * Emitted when the expansion panel starts collapsing\n * ```typescript\n * handleCollapsing(event: IExpansionPanelCancelableEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentCollapsing)=\"handleCollapsing($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentCollapsing = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * Emitted when the expansion panel finishes collapsing\n * ```typescript\n * handleCollapsed(event: IExpansionPanelEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentCollapsed)=\"handleCollapsed($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentCollapsed = new EventEmitter<IExpansionPanelEventArgs>();\n\n /**\n * Emitted when the expansion panel starts expanding\n * ```typescript\n * handleExpanding(event: IExpansionPanelCancelableEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentExpanding)=\"handleExpanding($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentExpanding = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n /**\n * Emitted when the expansion panel finishes expanding\n * ```typescript\n * handleExpanded(event: IExpansionPanelEventArgs)\n * ```\n * ```html\n * <igx-expansion-panel (contentExpanded)=\"handleExpanded($event)\">\n * ...\n * </igx-expansion-panel>\n * ```\n */\n @Output()\n public contentExpanded = new EventEmitter<IExpansionPanelEventArgs>();\n\n /**\n * @hidden\n */\n public get headerId() {\n return this.header ? `${this.id}-header` : '';\n }\n\n /**\n * @hidden @internal\n */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelBodyComponent, { read: IgxExpansionPanelBodyComponent })\n public body: IgxExpansionPanelBodyComponent;\n\n /**\n * @hidden\n */\n @ContentChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent })\n public header: IgxExpansionPanelHeaderComponent;\n\n /** @hidden */\n public ngAfterContentInit(): void {\n if (this.body && this.header) {\n // schedule at end of turn:\n Promise.resolve().then(() => {\n this.body.labelledBy = this.body.labelledBy || this.headerId;\n this.body.label = this.body.label || this.id + '-region';\n });\n }\n }\n\n /**\n * Collapses the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.collapse($event)\">Collpase Panel</button>\n * ```\n */\n public collapse(evt?: Event) {\n // If expansion panel is already collapsed or is collapsing, do nothing\n if (this.collapsed || this.closeAnimationPlayer) {\n return;\n }\n const args = { event: evt, panel: this, owner: this, cancel: false };\n this.contentCollapsing.emit(args);\n if (args.cancel === true) {\n return;\n }\n this.opened = false;\n this.playCloseAnimation(\n this.body?.element,\n () => {\n this.contentCollapsed.emit({ event: evt, owner: this });\n this.collapsed = true;\n this.collapsedChange.emit(true);\n this.cdr.markForCheck();\n }\n );\n }\n\n /**\n * Expands the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.expand($event)\">Expand Panel</button>\n * ```\n */\n public expand(evt?: Event) {\n if (!this.collapsed && !this.closeAnimationPlayer) { // Check if the panel is currently collapsing or already expanded\n return;\n }\n const args = { event: evt, panel: this, owner: this, cancel: false };\n this.contentExpanding.emit(args);\n if (args.cancel === true) {\n return;\n }\n this.collapsed = false;\n this.opened = true;\n this.collapsedChange.emit(false);\n this.cdr.detectChanges();\n this.playOpenAnimation(\n this.body?.element,\n () => {\n this.contentExpanded.emit({ event: evt, owner: this });\n }\n );\n }\n\n /**\n * Toggles the panel\n *\n * ```html\n * <igx-expansion-panel #myPanel>\n * ...\n * </igx-expansion-panel>\n * <button type=\"button\" igxButton (click)=\"myPanel.toggle($event)\">Expand Panel</button>\n * ```\n */\n public toggle(evt?: Event) {\n if (this.collapsed) {\n this.open(evt);\n } else {\n this.close(evt);\n }\n }\n\n public open(evt?: Event) {\n this.expand(evt);\n }\n\n public close(evt?: Event) {\n this.collapse(evt);\n }\n}\n","<ng-content select=\"igx-expansion-panel-header\"></ng-content>\n@if (!collapsed) {\n <ng-content select=\"igx-expansion-panel-body\"></ng-content>\n}\n","import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { IgxExpansionPanelComponent } from './expansion-panel.component';\nimport { IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, IgxExpansionPanelTitleDirective } from './expansion-panel.directives';\n\nexport { IExpansionPanelEventArgs, IExpansionPanelCancelableEventArgs, IgxExpansionPanelBase } from './expansion-panel.common';\nexport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nexport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nexport { IgxExpansionPanelComponent } from './expansion-panel.component';\nexport {\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelIconDirective,\n IgxExpansionPanelTitleDirective\n} from './expansion-panel.directives';\nexport { ExpansionPanelHeaderIconPosition } from './expansion-panel-header.component';\nexport { ToggleAnimationSettings, ToggleAnimationPlayer } from './toggle-animation-component';\n\n/* NOTE: Expansion panel directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_EXPANSION_PANEL_DIRECTIVES = [\n IgxExpansionPanelComponent,\n IgxExpansionPanelHeaderComponent,\n IgxExpansionPanelBodyComponent,\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelTitleDirective,\n IgxExpansionPanelIconDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_EXPANSION_PANEL_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_EXPANSION_PANEL_DIRECTIVES\n ],\n exports: [\n ...IGX_EXPANSION_PANEL_DIRECTIVES\n ]\n})\nexport class IgxExpansionPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxExpansionPanelComponent","i2.IgxExpansionPanelHeaderComponent","i3.IgxExpansionPanelBodyComponent","i4.IgxExpansionPanelDescriptionDirective","i4.IgxExpansionPanelTitleDirective","i4.IgxExpansionPanelIconDirective"],"mappings":"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"}
|