igniteui-angular 21.0.3 → 21.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +5 -6
  3. package/fesm2022/igniteui-angular-action-strip.mjs +39 -34
  4. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-banner.mjs +64 -59
  6. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-calendar.mjs +182 -161
  8. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-carousel.mjs +7 -3
  10. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-chips.mjs +140 -136
  12. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-combo.mjs +360 -356
  14. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-core.mjs +420 -618
  16. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-date-picker.mjs +124 -32
  18. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-directives.mjs +15 -10
  20. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-grids-core.mjs +75 -57
  22. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-grids-grid.mjs +71 -62
  24. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +51 -6
  26. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +6 -1
  28. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  29. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +8 -8
  30. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  31. package/fesm2022/igniteui-angular-input-group.mjs +8 -4
  32. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-list.mjs +24 -19
  34. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-paginator.mjs +71 -66
  36. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-query-builder.mjs +51 -36
  38. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-time-picker.mjs +50 -8
  40. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-tree.mjs +64 -61
  42. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  43. package/lib/core/styles/components/calendar/_calendar-theme.scss +2 -0
  44. package/lib/core/styles/components/grid/_grid-theme.scss +2 -1
  45. package/lib/core/styles/components/slider/_slider-theme.scss +0 -1
  46. package/lib/core/styles/components/tabs/_tabs-theme.scss +2 -1
  47. package/package.json +3 -2
  48. package/schematics/tsconfig.tsbuildinfo +1 -1
  49. package/schematics/utils/dependency-handler.js +1 -0
  50. package/styles/igniteui-angular-dark.css +1 -1
  51. package/styles/igniteui-angular.css +1 -1
  52. package/styles/igniteui-bootstrap-dark.css +1 -1
  53. package/styles/igniteui-bootstrap-light.css +1 -1
  54. package/styles/igniteui-dark-green.css +1 -1
  55. package/styles/igniteui-fluent-dark-excel.css +1 -1
  56. package/styles/igniteui-fluent-dark-word.css +1 -1
  57. package/styles/igniteui-fluent-dark.css +1 -1
  58. package/styles/igniteui-fluent-light-excel.css +1 -1
  59. package/styles/igniteui-fluent-light-word.css +1 -1
  60. package/styles/igniteui-fluent-light.css +1 -1
  61. package/styles/igniteui-indigo-dark.css +1 -1
  62. package/styles/igniteui-indigo-light.css +1 -1
  63. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  64. package/styles/maps/igniteui-angular.css.map +1 -1
  65. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  66. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  67. package/styles/maps/igniteui-dark-green.css.map +1 -1
  68. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  69. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  70. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  71. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  72. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  73. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  74. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  75. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  76. package/types/igniteui-angular-action-strip.d.ts +3 -0
  77. package/types/igniteui-angular-banner.d.ts +3 -0
  78. package/types/igniteui-angular-calendar.d.ts +37 -47
  79. package/types/igniteui-angular-carousel.d.ts +1 -0
  80. package/types/igniteui-angular-chips.d.ts +2 -0
  81. package/types/igniteui-angular-combo.d.ts +4 -2
  82. package/types/igniteui-angular-core.d.ts +152 -397
  83. package/types/igniteui-angular-date-picker.d.ts +22 -4
  84. package/types/igniteui-angular-directives.d.ts +8 -4
  85. package/types/igniteui-angular-grids-core.d.ts +18 -8
  86. package/types/igniteui-angular-grids-grid.d.ts +9 -7
  87. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +20 -3
  88. package/types/igniteui-angular-input-group.d.ts +1 -0
  89. package/types/igniteui-angular-list.d.ts +3 -0
  90. package/types/igniteui-angular-paginator.d.ts +3 -0
  91. package/types/igniteui-angular-query-builder.d.ts +8 -0
  92. package/types/igniteui-angular-time-picker.d.ts +7 -2
  93. package/types/igniteui-angular-tree.d.ts +2 -1
package/LICENSE CHANGED
@@ -27,6 +27,7 @@ The MIT License applies exclusively to the components (encompassing all related
27
27
  - `igx-button`
28
28
  - `igx-card`
29
29
  - `igx-carousel`
30
+ - `igx-chat`
30
31
  - `igx-checkbox`
31
32
  - `igx-chip`
32
33
  - `igx-circular-bar`
package/README.md CHANGED
@@ -77,7 +77,7 @@ Some of the Angular chart types included are: [Polar chart](https://www.infragis
77
77
  |calendar|:white_check_mark:|[Readme](projects/igniteui-angular/calendar/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/calendar)|5.1.0|[MIT](/LICENSE)|focus-trap|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/focus-trap/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/dialog)|13.0.0|[MIT](/LICENSE)
78
78
  |card|:white_check_mark:|[Readme](projects/igniteui-angular/card/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/card)|5.1.0|[MIT](/LICENSE)|forOf|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/for-of/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/for-of)|5.2.0|[MIT](/LICENSE)
79
79
  |carousel|:white_check_mark:|[Readme](projects/igniteui-angular/carousel/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/carousel)|2.0.0|[MIT](/LICENSE)|hint|:white_check_mark:|[Readme](projects/igniteui-angular/input-group/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/input-group)|5.3.0|[MIT](/LICENSE)
80
- |checkbox|:white_check_mark:|[Readme](projects/igniteui-angular/checkbox/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/checkbox)|2.0.0|[MIT](/LICENSE)|input|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/input/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/input-group)|2.0.0|[MIT](/LICENSE)|
80
+ |chat|:white_check_mark:|[Readme]()|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/chat)|21.0.0|[MIT](/LICENSE)|checkbox|:white_check_mark:|[Readme](projects/igniteui-angular/checkbox/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/checkbox)|2.0.0|[MIT](/LICENSE)|input|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/input/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/input-group)|2.0.0|[MIT](/LICENSE)|
81
81
  |chips|:white_check_mark:|[Readme](projects/igniteui-angular/chips/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/chip)|6.1.0|[MIT](/LICENSE)|label|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/label/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/label-input)|2.0.0|[MIT](/LICENSE)
82
82
  |circular progress|:white_check_mark:|[Readme](projects/igniteui-angular/progressbar/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/circular-progress)|5.1.0|[MIT](/LICENSE)|layout|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/layout/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/layout)|2.0.0|[MIT](/LICENSE)
83
83
  |combo|:white_check_mark:|[Readme](projects/igniteui-angular/combo/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/combo)|6.1.0|[MIT](/LICENSE)|mask|:white_check_mark:|[Readme](projects/igniteui-angular/directives/src/directives/mask/README.md)|[Docs](https://www.infragistics.com/products/ignite-ui-angular/angular/components/mask)|5.3.0|[MIT](/LICENSE)
@@ -168,6 +168,7 @@ Some of the Angular chart types included are: [Polar chart](https://www.infragis
168
168
  |19.2.0|16-Apr-25|[Milestone #37](https://github.com/IgniteUI/igniteui-angular/blob/master/ROADMAP.md#milestone-37--version-192-released-apr-16th-2025-release-blog-192)|
169
169
  |20.0.0|09-Jun-25|[Milestone #38](https://github.com/IgniteUI/igniteui-angular/blob/master/ROADMAP.md#milestone-38-version-200-released-jun-09th-2025)|
170
170
  |20.1.0|25-Sep-25|[Milestone #39](https://github.com/IgniteUI/igniteui-angular/blob/master/ROADMAP.md#milestone-39-version-201-released-sep--25th-2025)|
171
+ |21.0.0|03-Dec-25|[Milestone #40]()|
171
172
 
172
173
 
173
174
  ### Components available in [igniteui-angular-charts](https://www.npmjs.com/package/igniteui-angular-charts)
@@ -334,15 +335,13 @@ Developer support is provided as part of the commercial, paid-for license via [I
334
335
  Community support for open source usage of this product is available at [StackOverflow](https://stackoverflow.com/questions/tagged/ignite-ui-angular).
335
336
 
336
337
  ## License
337
- This is a commercial product, requiring a valid paid-for license for commercial use.
338
- This product is free to use for non-commercial educational use for students in K through 12 grades or University programs, and for educators to use in a classroom setting as examples / tools in their curriculum.
339
- In order for us to verify your eligibility for free usage, please [register for trial](https://Infragistics.com/Angular) and open a support ticket with a request for free license.
338
+ This software package is offered under a dual-license model, which allows for both commercial and permissive open-source use, depending on the components, modules, directives, and services being used.
340
339
 
341
- To acquire a license for commercial usage, please [register for trial](https://Infragistics.com/Angular) and refer to the purchasing options in the pricing section on the product page.
340
+ It is crucial to understand which license applies to which part of the package.
342
341
 
343
342
  © Copyright 2025 INFRAGISTICS. All Rights Reserved.
344
343
  The Infragistics Ultimate license & copyright applies to this distribution.
345
- For information on that license, please go to our website [https://www.infragistics.com/legal/license](https://www.infragistics.com/legal/license).
344
+ For information on that license, please go to [LICENSE](LICENSE).
346
345
 
347
346
 
348
347
 
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, ViewContainerRef, Renderer2, ElementRef, ChangeDetectorRef, booleanAttribute, HostBinding, ViewChild, Input, ContentChildren, Component, NgModule } from '@angular/core';
3
- import { CloseScrollStrategy, getCurrentResourceStrings, ActionStripResourceStringsEN, trackByIdentity, IgxActionStripActionsToken, IgxActionStripToken } from 'igniteui-angular/core';
2
+ import { inject, TemplateRef, Directive, ViewContainerRef, Renderer2, ElementRef, ChangeDetectorRef, DestroyRef, booleanAttribute, HostBinding, ViewChild, Input, ContentChildren, Component, NgModule } from '@angular/core';
3
+ import { CloseScrollStrategy, getCurrentResourceStrings, ActionStripResourceStringsEN, trackByIdentity, onResourceChangeHandle, IgxActionStripActionsToken, IgxActionStripToken } from 'igniteui-angular/core';
4
4
  import { IgxIconComponent } from 'igniteui-angular/icon';
5
5
  import { IgxIconButtonDirective, IgxRippleDirective, IgxToggleActionDirective } from 'igniteui-angular/directives';
6
6
  import { NgTemplateOutlet } from '@angular/common';
@@ -53,36 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
53
53
  * </igx-action-strip>
54
54
  */
55
55
  class IgxActionStripComponent {
56
- constructor() {
57
- this._viewContainer = inject(ViewContainerRef);
58
- this.renderer = inject(Renderer2);
59
- this.el = inject(ElementRef);
60
- this.cdr = inject(ChangeDetectorRef);
61
- /**
62
- * Gets/Sets the visibility of the Action Strip.
63
- * Could be used to set if the Action Strip will be initially hidden.
64
- *
65
- * @example
66
- * ```html
67
- * <igx-action-strip [hidden]="false">
68
- * ```
69
- */
70
- this.hidden = true;
71
- /**
72
- * Getter for menu overlay settings
73
- *
74
- * @hidden
75
- * @internal
76
- */
77
- this.menuOverlaySettings = { scrollStrategy: new CloseScrollStrategy() };
78
- this._resourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN);
79
- /**
80
- * Host `attr.class` binding.
81
- */
82
- this.hostClass = 'igx-action-strip';
83
- /** pin swapping w/ unpin resets the menuItems collection */
84
- this.trackMenuItem = trackByIdentity;
85
- }
86
56
  /**
87
57
  * Gets/Sets the resource strings.
88
58
  *
@@ -93,7 +63,7 @@ class IgxActionStripComponent {
93
63
  this._resourceStrings = Object.assign({}, this._resourceStrings, value);
94
64
  }
95
65
  get resourceStrings() {
96
- return this._resourceStrings;
66
+ return this._resourceStrings || this._defaultResourceStrings;
97
67
  }
98
68
  /**
99
69
  * Hide or not the Action Strip based on if it is a menu.
@@ -114,6 +84,41 @@ class IgxActionStripComponent {
114
84
  }
115
85
  }
116
86
  }
87
+ constructor() {
88
+ this._viewContainer = inject(ViewContainerRef);
89
+ this.renderer = inject(Renderer2);
90
+ this.el = inject(ElementRef);
91
+ this.cdr = inject(ChangeDetectorRef);
92
+ /**
93
+ * Gets/Sets the visibility of the Action Strip.
94
+ * Could be used to set if the Action Strip will be initially hidden.
95
+ *
96
+ * @example
97
+ * ```html
98
+ * <igx-action-strip [hidden]="false">
99
+ * ```
100
+ */
101
+ this.hidden = true;
102
+ /**
103
+ * Getter for menu overlay settings
104
+ *
105
+ * @hidden
106
+ * @internal
107
+ */
108
+ this.menuOverlaySettings = { scrollStrategy: new CloseScrollStrategy() };
109
+ this._destroyRef = inject(DestroyRef);
110
+ this._resourceStrings = null;
111
+ this._defaultResourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN);
112
+ /**
113
+ * Host `attr.class` binding.
114
+ */
115
+ this.hostClass = 'igx-action-strip';
116
+ /** pin swapping w/ unpin resets the menuItems collection */
117
+ this.trackMenuItem = trackByIdentity;
118
+ onResourceChangeHandle(this._destroyRef, () => {
119
+ this._defaultResourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN, false);
120
+ }, this);
121
+ }
117
122
  /**
118
123
  * Menu Items list.
119
124
  *
@@ -241,7 +246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
241
246
  IgxDropDownComponent,
242
247
  IgxDropDownItemComponent
243
248
  ], providers: [{ provide: IgxActionStripToken, useExisting: IgxActionStripComponent }], template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n @if (menuItems.length > 0) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon family=\"default\" name=\"more_vert\"></igx-icon>\n </button>\n }\n <igx-drop-down #dropdown>\n @for (item of menuItems; track trackMenuItem(item)) {\n <igx-drop-down-item\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n }\n </igx-drop-down>\n</div>\n" }]
244
- }], propDecorators: { context: [{
249
+ }], ctorParameters: () => [], propDecorators: { context: [{
245
250
  type: Input
246
251
  }], _menuItems: [{
247
252
  type: ContentChildren,
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-action-strip.mjs","sources":["../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.ts","../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.html","../../../projects/igniteui-angular/action-strip/src/action-strip/public_api.ts","../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.module.ts","../../../projects/igniteui-angular/action-strip/src/igniteui-angular-action-strip.ts"],"sourcesContent":["import {\n Component,\n Directive,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n ContentChildren,\n QueryList,\n ViewChild,\n TemplateRef,\n ChangeDetectorRef,\n AfterViewInit,\n ElementRef,\n booleanAttribute,\n AfterContentInit,\n inject\n} from '@angular/core';\n\n\nimport { ActionStripResourceStringsEN, CloseScrollStrategy, getCurrentResourceStrings, IActionStripResourceStrings, IgxActionStripActionsToken, IgxActionStripToken, OverlaySettings } from 'igniteui-angular/core';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxToggleActionDirective } from 'igniteui-angular/directives';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgxIconButtonDirective } from 'igniteui-angular/directives';\nimport { trackByIdentity } from 'igniteui-angular/core';\nimport { IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective } from 'igniteui-angular/drop-down';\n\n@Directive({\n selector: '[igxActionStripMenuItem]',\n standalone: true\n})\nexport class IgxActionStripMenuItemDirective {\n public templateRef = inject<TemplateRef<any>>(TemplateRef);\n}\n\n/* blazorElement */\n/* jsonAPIManageItemInMarkup */\n/* jsonAPIManageCollectionInMarkup */\n/* wcElementTag: igc-action-strip */\n/* blazorIndirectRender */\n/* singleInstanceIdentifier */\n/* contentParent: GridBaseDirective */\n/* contentParent: RowIsland */\n/* contentParent: HierarchicalGrid */\n/**\n * Action Strip provides templatable area for one or more actions.\n *\n * @igxModule IgxActionStripModule\n *\n * @igxTheme igx-action-strip-theme\n *\n * @igxKeywords action, strip, actionStrip, pinning, editing\n *\n * @igxGroup Data Entry & Display\n *\n * @igxParent IgxGridComponent, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, *\n *\n * @remarks\n * The Ignite UI Action Strip is a container, overlaying its parent container,\n * and displaying action buttons with action applicable to the parent component the strip is instantiated or shown for.\n *\n * @example\n * ```html\n * <igx-action-strip #actionStrip>\n * <igx-icon (click)=\"doSomeAction()\"></igx-icon>\n * </igx-action-strip>\n */\n@Component({\n selector: 'igx-action-strip',\n templateUrl: 'action-strip.component.html',\n imports: [\n NgTemplateOutlet,\n IgxIconButtonDirective,\n IgxRippleDirective,\n IgxToggleActionDirective,\n IgxDropDownItemNavigationDirective,\n IgxIconComponent,\n IgxDropDownComponent,\n IgxDropDownItemComponent\n ],\n providers: [{ provide: IgxActionStripToken, useExisting: IgxActionStripComponent }]\n})\nexport class IgxActionStripComponent implements IgxActionStripToken, AfterViewInit, AfterContentInit {\n private _viewContainer = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n protected el = inject(ElementRef);\n public cdr = inject(ChangeDetectorRef);\n\n\n /* blazorSuppress */\n /**\n * Sets the context of an action strip.\n * The context should be an instance of a @Component, that has element property.\n * This element will be the placeholder of the action strip.\n *\n * @example\n * ```html\n * <igx-action-strip [context]=\"cell\"></igx-action-strip>\n * ```\n */\n @Input()\n public context: any;\n\n /**\n * Menu Items ContentChildren inside the Action Strip\n *\n * @hidden\n * @internal\n */\n @ContentChildren(IgxActionStripMenuItemDirective)\n public _menuItems: QueryList<IgxActionStripMenuItemDirective>;\n\n\n /* blazorInclude */\n /* contentChildren */\n /* blazorTreatAsCollection */\n /* blazorCollectionName: GridActionsBaseDirectiveCollection */\n /**\n * ActionButton as ContentChildren inside the Action Strip\n *\n * @hidden\n * @internal\n */\n @ContentChildren(IgxActionStripActionsToken as any)\n public actionButtons: QueryList<IgxActionStripActionsToken>;\n\n /**\n * Gets/Sets the visibility of the Action Strip.\n * Could be used to set if the Action Strip will be initially hidden.\n *\n * @example\n * ```html\n * <igx-action-strip [hidden]=\"false\">\n * ```\n */\n @Input({ transform: booleanAttribute })\n public hidden = true;\n\n\n /**\n * Gets/Sets the resource strings.\n *\n * @remarks\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IActionStripResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n public get resourceStrings(): IActionStripResourceStrings {\n return this._resourceStrings;\n }\n\n /**\n * Hide or not the Action Strip based on if it is a menu.\n *\n * @hidden\n * @internal\n */\n public get hideOnRowLeave(): boolean {\n if (this.menu.items.length === 0) {\n return true;\n } else if (this.menu.items.length > 0) {\n if (this.menu.collapsed) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n /**\n * Reference to the menu\n *\n * @hidden\n * @internal\n */\n @ViewChild('dropdown')\n public menu: IgxDropDownComponent;\n\n /**\n * Getter for menu overlay settings\n *\n * @hidden\n * @internal\n */\n public menuOverlaySettings: OverlaySettings = { scrollStrategy: new CloseScrollStrategy() };\n\n private _resourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN);\n private _originalParent!: HTMLElement;\n\n /**\n * Menu Items list.\n *\n * @hidden\n * @internal\n */\n public get menuItems() {\n const actions = [];\n this.actionButtons.forEach(button => {\n if (button.asMenuItems) {\n const children = button.buttons;\n if (children) {\n children.toArray().forEach(x => actions.push(x));\n }\n }\n });\n return [... this._menuItems.toArray(), ...actions];\n }\n\n\n /**\n * Getter for the 'display' property of the current `IgxActionStrip`\n */\n @HostBinding('style.display')\n private get display(): string {\n return this.hidden ? 'none' : 'flex';\n }\n\n /**\n * Host `attr.class` binding.\n */\n @HostBinding('class.igx-action-strip')\n protected hostClass = 'igx-action-strip';\n\n /**\n * @hidden\n * @internal\n */\n public ngAfterContentInit() {\n this.actionButtons.forEach(button => {\n button.strip = this;\n });\n this.actionButtons.changes.subscribe(() => {\n this.actionButtons.forEach(button => {\n button.strip = this;\n });\n });\n }\n\n /**\n * @hidden\n * @internal\n */\n public ngAfterViewInit() {\n this.menu.selectionChanging.subscribe(($event) => {\n const newSelection = ($event.newSelection as any).elementRef.nativeElement;\n let allButtons = [];\n this.actionButtons.forEach(actionButtons => {\n if (actionButtons.asMenuItems) {\n allButtons = [...allButtons, ...actionButtons.buttons.toArray()];\n }\n });\n const button = allButtons.find(x => newSelection.contains(x.container.nativeElement));\n if (button) {\n button.actionClick.emit();\n }\n });\n this._originalParent = this._viewContainer.element.nativeElement?.parentElement;\n }\n\n /**\n * Showing the Action Strip and appending it the specified context element.\n *\n * @param context\n * @example\n * ```typescript\n * this.actionStrip.show(row);\n * ```\n */\n public show(context?: any): void {\n this.hidden = false;\n if (!context) {\n return;\n }\n // when shown for different context make sure the menu won't stay opened\n if (this.context !== context) {\n this.closeMenu();\n }\n this.context = context;\n if (this.context && this.context.element) {\n this.renderer.appendChild(context.element.nativeElement, this._viewContainer.element.nativeElement);\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Hiding the Action Strip and removing it from its current context element.\n *\n * @example\n * ```typescript\n * this.actionStrip.hide();\n * ```\n */\n public hide(): void {\n this.hidden = true;\n this.closeMenu();\n if (this._originalParent) {\n // D.P. fix(elements) don't detach native DOM, instead move back. Might not matter for Angular, but Elements will destroy\n this.renderer.appendChild(this._originalParent, this._viewContainer.element.nativeElement);\n } else if (this.context && this.context.element) {\n this.renderer.removeChild(this.context.element.nativeElement, this._viewContainer.element.nativeElement);\n }\n }\n\n /** pin swapping w/ unpin resets the menuItems collection */\n protected trackMenuItem = trackByIdentity;\n\n /**\n * Close the menu if opened\n *\n * @hidden\n * @internal\n */\n private closeMenu(): void {\n if (this.menu && !this.menu.collapsed) {\n this.menu.close();\n }\n }\n}\n","<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n @if (menuItems.length > 0) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon family=\"default\" name=\"more_vert\"></igx-icon>\n </button>\n }\n <igx-drop-down #dropdown>\n @for (item of menuItems; track trackMenuItem(item)) {\n <igx-drop-down-item\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n }\n </igx-drop-down>\n</div>\n","import { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component';\n\nexport { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component';\n\n/* Action-strip outside of grid directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_ACTION_STRIP_DIRECTIVES = [\n IgxActionStripComponent,\n IgxActionStripMenuItemDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_ACTION_STRIP_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_ACTION_STRIP_DIRECTIVES\n ],\n exports: [\n ...IGX_ACTION_STRIP_DIRECTIVES\n ],\n})\nexport class IgxActionStripModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxActionStripComponent","i1.IgxActionStripMenuItemDirective"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-action-strip.mjs","sources":["../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.ts","../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.component.html","../../../projects/igniteui-angular/action-strip/src/action-strip/public_api.ts","../../../projects/igniteui-angular/action-strip/src/action-strip/action-strip.module.ts","../../../projects/igniteui-angular/action-strip/src/igniteui-angular-action-strip.ts"],"sourcesContent":["import {\n Component,\n Directive,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n ContentChildren,\n QueryList,\n ViewChild,\n TemplateRef,\n ChangeDetectorRef,\n AfterViewInit,\n ElementRef,\n booleanAttribute,\n inject,\n DestroyRef,\n AfterContentInit\n} from '@angular/core';\n\n\nimport {\n ActionStripResourceStringsEN,\n CloseScrollStrategy,\n getCurrentResourceStrings,\n onResourceChangeHandle,\n IActionStripResourceStrings,\n IgxActionStripActionsToken,\n IgxActionStripToken,\n OverlaySettings\n} from 'igniteui-angular/core';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxToggleActionDirective } from 'igniteui-angular/directives';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IgxIconButtonDirective } from 'igniteui-angular/directives';\nimport { trackByIdentity } from 'igniteui-angular/core';\nimport { IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective } from 'igniteui-angular/drop-down';\n\n@Directive({\n selector: '[igxActionStripMenuItem]',\n standalone: true\n})\nexport class IgxActionStripMenuItemDirective {\n public templateRef = inject<TemplateRef<any>>(TemplateRef);\n}\n\n/* blazorElement */\n/* jsonAPIManageItemInMarkup */\n/* jsonAPIManageCollectionInMarkup */\n/* wcElementTag: igc-action-strip */\n/* blazorIndirectRender */\n/* singleInstanceIdentifier */\n/* contentParent: GridBaseDirective */\n/* contentParent: RowIsland */\n/* contentParent: HierarchicalGrid */\n/**\n * Action Strip provides templatable area for one or more actions.\n *\n * @igxModule IgxActionStripModule\n *\n * @igxTheme igx-action-strip-theme\n *\n * @igxKeywords action, strip, actionStrip, pinning, editing\n *\n * @igxGroup Data Entry & Display\n *\n * @igxParent IgxGridComponent, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxRowIslandComponent, *\n *\n * @remarks\n * The Ignite UI Action Strip is a container, overlaying its parent container,\n * and displaying action buttons with action applicable to the parent component the strip is instantiated or shown for.\n *\n * @example\n * ```html\n * <igx-action-strip #actionStrip>\n * <igx-icon (click)=\"doSomeAction()\"></igx-icon>\n * </igx-action-strip>\n */\n@Component({\n selector: 'igx-action-strip',\n templateUrl: 'action-strip.component.html',\n imports: [\n NgTemplateOutlet,\n IgxIconButtonDirective,\n IgxRippleDirective,\n IgxToggleActionDirective,\n IgxDropDownItemNavigationDirective,\n IgxIconComponent,\n IgxDropDownComponent,\n IgxDropDownItemComponent\n ],\n providers: [{ provide: IgxActionStripToken, useExisting: IgxActionStripComponent }]\n})\nexport class IgxActionStripComponent implements IgxActionStripToken, AfterViewInit, AfterContentInit {\n private _viewContainer = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n protected el = inject(ElementRef);\n public cdr = inject(ChangeDetectorRef);\n\n\n /* blazorSuppress */\n /**\n * Sets the context of an action strip.\n * The context should be an instance of a @Component, that has element property.\n * This element will be the placeholder of the action strip.\n *\n * @example\n * ```html\n * <igx-action-strip [context]=\"cell\"></igx-action-strip>\n * ```\n */\n @Input()\n public context: any;\n\n /**\n * Menu Items ContentChildren inside the Action Strip\n *\n * @hidden\n * @internal\n */\n @ContentChildren(IgxActionStripMenuItemDirective)\n public _menuItems: QueryList<IgxActionStripMenuItemDirective>;\n\n\n /* blazorInclude */\n /* contentChildren */\n /* blazorTreatAsCollection */\n /* blazorCollectionName: GridActionsBaseDirectiveCollection */\n /**\n * ActionButton as ContentChildren inside the Action Strip\n *\n * @hidden\n * @internal\n */\n @ContentChildren(IgxActionStripActionsToken as any)\n public actionButtons: QueryList<IgxActionStripActionsToken>;\n\n /**\n * Gets/Sets the visibility of the Action Strip.\n * Could be used to set if the Action Strip will be initially hidden.\n *\n * @example\n * ```html\n * <igx-action-strip [hidden]=\"false\">\n * ```\n */\n @Input({ transform: booleanAttribute })\n public hidden = true;\n\n\n /**\n * Gets/Sets the resource strings.\n *\n * @remarks\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IActionStripResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n public get resourceStrings(): IActionStripResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /**\n * Hide or not the Action Strip based on if it is a menu.\n *\n * @hidden\n * @internal\n */\n public get hideOnRowLeave(): boolean {\n if (this.menu.items.length === 0) {\n return true;\n } else if (this.menu.items.length > 0) {\n if (this.menu.collapsed) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n /**\n * Reference to the menu\n *\n * @hidden\n * @internal\n */\n @ViewChild('dropdown')\n public menu: IgxDropDownComponent;\n\n /**\n * Getter for menu overlay settings\n *\n * @hidden\n * @internal\n */\n public menuOverlaySettings: OverlaySettings = { scrollStrategy: new CloseScrollStrategy() };\n\n private _destroyRef = inject(DestroyRef);\n private _resourceStrings: IActionStripResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN);\n private _originalParent!: HTMLElement;\n\n constructor() {\n onResourceChangeHandle(this._destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(ActionStripResourceStringsEN, false);\n }, this);\n }\n\n /**\n * Menu Items list.\n *\n * @hidden\n * @internal\n */\n public get menuItems() {\n const actions = [];\n this.actionButtons.forEach(button => {\n if (button.asMenuItems) {\n const children = button.buttons;\n if (children) {\n children.toArray().forEach(x => actions.push(x));\n }\n }\n });\n return [... this._menuItems.toArray(), ...actions];\n }\n\n\n /**\n * Getter for the 'display' property of the current `IgxActionStrip`\n */\n @HostBinding('style.display')\n private get display(): string {\n return this.hidden ? 'none' : 'flex';\n }\n\n /**\n * Host `attr.class` binding.\n */\n @HostBinding('class.igx-action-strip')\n protected hostClass = 'igx-action-strip';\n\n /**\n * @hidden\n * @internal\n */\n public ngAfterContentInit() {\n this.actionButtons.forEach(button => {\n button.strip = this;\n });\n this.actionButtons.changes.subscribe(() => {\n this.actionButtons.forEach(button => {\n button.strip = this;\n });\n });\n }\n\n /**\n * @hidden\n * @internal\n */\n public ngAfterViewInit() {\n this.menu.selectionChanging.subscribe(($event) => {\n const newSelection = ($event.newSelection as any).elementRef.nativeElement;\n let allButtons = [];\n this.actionButtons.forEach(actionButtons => {\n if (actionButtons.asMenuItems) {\n allButtons = [...allButtons, ...actionButtons.buttons.toArray()];\n }\n });\n const button = allButtons.find(x => newSelection.contains(x.container.nativeElement));\n if (button) {\n button.actionClick.emit();\n }\n });\n this._originalParent = this._viewContainer.element.nativeElement?.parentElement;\n }\n\n /**\n * Showing the Action Strip and appending it the specified context element.\n *\n * @param context\n * @example\n * ```typescript\n * this.actionStrip.show(row);\n * ```\n */\n public show(context?: any): void {\n this.hidden = false;\n if (!context) {\n return;\n }\n // when shown for different context make sure the menu won't stay opened\n if (this.context !== context) {\n this.closeMenu();\n }\n this.context = context;\n if (this.context && this.context.element) {\n this.renderer.appendChild(context.element.nativeElement, this._viewContainer.element.nativeElement);\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Hiding the Action Strip and removing it from its current context element.\n *\n * @example\n * ```typescript\n * this.actionStrip.hide();\n * ```\n */\n public hide(): void {\n this.hidden = true;\n this.closeMenu();\n if (this._originalParent) {\n // D.P. fix(elements) don't detach native DOM, instead move back. Might not matter for Angular, but Elements will destroy\n this.renderer.appendChild(this._originalParent, this._viewContainer.element.nativeElement);\n } else if (this.context && this.context.element) {\n this.renderer.removeChild(this.context.element.nativeElement, this._viewContainer.element.nativeElement);\n }\n }\n\n /** pin swapping w/ unpin resets the menuItems collection */\n protected trackMenuItem = trackByIdentity;\n\n /**\n * Close the menu if opened\n *\n * @hidden\n * @internal\n */\n private closeMenu(): void {\n if (this.menu && !this.menu.collapsed) {\n this.menu.close();\n }\n }\n}\n","<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n @if (menuItems.length > 0) {\n <button\n type=\"button\"\n igxIconButton=\"flat\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon family=\"default\" name=\"more_vert\"></igx-icon>\n </button>\n }\n <igx-drop-down #dropdown>\n @for (item of menuItems; track trackMenuItem(item)) {\n <igx-drop-down-item\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n }\n </igx-drop-down>\n</div>\n","import { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component';\n\nexport { IgxActionStripComponent, IgxActionStripMenuItemDirective } from './action-strip.component';\n\n/* Action-strip outside of grid directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_ACTION_STRIP_DIRECTIVES = [\n IgxActionStripComponent,\n IgxActionStripMenuItemDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_ACTION_STRIP_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_ACTION_STRIP_DIRECTIVES\n ],\n exports: [\n ...IGX_ACTION_STRIP_DIRECTIVES\n ],\n})\nexport class IgxActionStripModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxActionStripComponent","i1.IgxActionStripMenuItemDirective"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, inject, ElementRef, EventEmitter, ContentChild, ViewChild, HostBinding, Input, Output, Component, NgModule } from '@angular/core';
2
+ import { Directive, inject, ElementRef, EventEmitter, DestroyRef, ContentChild, ViewChild, HostBinding, Input, Output, Component, NgModule } from '@angular/core';
3
3
  import { IgxIconComponent } from 'igniteui-angular/icon';
4
4
  import { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';
5
- import { getCurrentResourceStrings, BannerResourceStringsEN } from 'igniteui-angular/core';
5
+ import { getCurrentResourceStrings, BannerResourceStringsEN, onResourceChangeHandle } from 'igniteui-angular/core';
6
6
  import { IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent } from 'igniteui-angular/expansion-panel';
7
7
 
8
8
  class IgxBannerActionsDirective {
@@ -36,61 +36,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
36
36
  * ```
37
37
  */
38
38
  class IgxBannerComponent {
39
- constructor() {
40
- this.elementRef = inject(ElementRef);
41
- /**
42
- * Fires after the banner shows up
43
- * ```typescript
44
- * public handleOpened(event) {
45
- * ...
46
- * }
47
- * ```
48
- * ```html
49
- * <igx-banner (opened)="handleOpened($event)"></igx-banner>
50
- * ```
51
- */
52
- this.opened = new EventEmitter();
53
- /**
54
- * Fires before the banner shows up
55
- * ```typescript
56
- * public handleOpening(event) {
57
- * ...
58
- * }
59
- * ```
60
- * ```html
61
- * <igx-banner (opening)="handleOpening($event)"></igx-banner>
62
- * ```
63
- */
64
- this.opening = new EventEmitter();
65
- /**
66
- * Fires after the banner hides
67
- * ```typescript
68
- * public handleClosed(event) {
69
- * ...
70
- * }
71
- * ```
72
- * ```html
73
- * <igx-banner (closed)="handleClosed($event)"></igx-banner>
74
- * ```
75
- */
76
- this.closed = new EventEmitter();
77
- /**
78
- * Fires before the banner hides
79
- * ```typescript
80
- * public handleClosing(event) {
81
- * ...
82
- * }
83
- * ```
84
- * ```html
85
- * <igx-banner (closing)="handleClosing($event)"></igx-banner>
86
- * ```
87
- */
88
- this.closing = new EventEmitter();
89
- this.cssClass = 'igx-banner-host';
90
- this._expanded = false;
91
- this._shouldFireEvent = false;
92
- this._resourceStrings = getCurrentResourceStrings(BannerResourceStringsEN);
93
- }
94
39
  /** @hidden */
95
40
  get useDefaultTemplate() {
96
41
  return !this._bannerActionTemplate;
@@ -125,7 +70,7 @@ class IgxBannerComponent {
125
70
  this._resourceStrings = Object.assign({}, this._resourceStrings, value);
126
71
  }
127
72
  get resourceStrings() {
128
- return this._resourceStrings;
73
+ return this._resourceStrings || this._defaultResourceStrings;
129
74
  }
130
75
  /**
131
76
  * Gets/Sets whether the banner is expanded (visible) or collapsed (hidden).
@@ -185,6 +130,66 @@ class IgxBannerComponent {
185
130
  get displayStyle() {
186
131
  return this.collapsed ? '' : 'block';
187
132
  }
133
+ constructor() {
134
+ this.elementRef = inject(ElementRef);
135
+ /**
136
+ * Fires after the banner shows up
137
+ * ```typescript
138
+ * public handleOpened(event) {
139
+ * ...
140
+ * }
141
+ * ```
142
+ * ```html
143
+ * <igx-banner (opened)="handleOpened($event)"></igx-banner>
144
+ * ```
145
+ */
146
+ this.opened = new EventEmitter();
147
+ /**
148
+ * Fires before the banner shows up
149
+ * ```typescript
150
+ * public handleOpening(event) {
151
+ * ...
152
+ * }
153
+ * ```
154
+ * ```html
155
+ * <igx-banner (opening)="handleOpening($event)"></igx-banner>
156
+ * ```
157
+ */
158
+ this.opening = new EventEmitter();
159
+ /**
160
+ * Fires after the banner hides
161
+ * ```typescript
162
+ * public handleClosed(event) {
163
+ * ...
164
+ * }
165
+ * ```
166
+ * ```html
167
+ * <igx-banner (closed)="handleClosed($event)"></igx-banner>
168
+ * ```
169
+ */
170
+ this.closed = new EventEmitter();
171
+ /**
172
+ * Fires before the banner hides
173
+ * ```typescript
174
+ * public handleClosing(event) {
175
+ * ...
176
+ * }
177
+ * ```
178
+ * ```html
179
+ * <igx-banner (closing)="handleClosing($event)"></igx-banner>
180
+ * ```
181
+ */
182
+ this.closing = new EventEmitter();
183
+ this.cssClass = 'igx-banner-host';
184
+ this._destroyRef = inject(DestroyRef);
185
+ this._expanded = false;
186
+ this._shouldFireEvent = false;
187
+ this._resourceStrings = null;
188
+ this._defaultResourceStrings = getCurrentResourceStrings(BannerResourceStringsEN);
189
+ onResourceChangeHandle(this._destroyRef, () => {
190
+ this._defaultResourceStrings = getCurrentResourceStrings(BannerResourceStringsEN, false);
191
+ }, this);
192
+ }
188
193
  /**
189
194
  * Opens the banner
190
195
  *
@@ -285,7 +290,7 @@ class IgxBannerComponent {
285
290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: IgxBannerComponent, decorators: [{
286
291
  type: Component,
287
292
  args: [{ selector: 'igx-banner', imports: [IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, IgxButtonDirective, IgxRippleDirective], template: "<igx-expansion-panel #expansionPanel [animationSettings]=\"animationSettings\" (contentCollapsed)=\"onExpansionPanelClose()\" (contentExpanded)=\"onExpansionPanelOpen()\"\n [collapsed]=\"collapsed\" role=\"status\" aria-live=\"polite\" [attr.aria-hidden]=\"collapsed\">\n <igx-expansion-panel-body>\n <div class=\"igx-banner\">\n <div class=\"igx-banner__message\">\n @if (bannerIcon) {\n <div class=\"igx-banner__illustration\">\n <ng-content select=\"igx-icon\"></ng-content>\n </div>\n }\n <span class=\"igx-banner__text\">\n <ng-content></ng-content>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n @if (useDefaultTemplate) {\n <button type=\"button\" igxButton=\"flat\" igxRipple (click)=\"close()\">\n {{ resourceStrings.igx_banner_button_dismiss }}\n </button>\n } @else {\n <ng-content select=\"igx-banner-actions\"></ng-content>\n }\n </div>\n </div>\n </igx-expansion-panel-body>\n</igx-expansion-panel>\n" }]
288
- }], propDecorators: { bannerIcon: [{
293
+ }], ctorParameters: () => [], propDecorators: { bannerIcon: [{
289
294
  type: ContentChild,
290
295
  args: [IgxIconComponent]
291
296
  }], opened: [{
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-banner.mjs","sources":["../../../projects/igniteui-angular/banner/src/banner/banner.directives.ts","../../../projects/igniteui-angular/banner/src/banner/banner.component.ts","../../../projects/igniteui-angular/banner/src/banner/banner.component.html","../../../projects/igniteui-angular/banner/src/banner/public_api.ts","../../../projects/igniteui-angular/banner/src/banner/banner.module.ts","../../../projects/igniteui-angular/banner/src/igniteui-angular-banner.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'igx-banner-actions',\n standalone: true\n})\nexport class IgxBannerActionsDirective { }\n","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, inject } from '@angular/core';\n\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxBannerActionsDirective } from './banner.directives';\nimport {\n CancelableEventArgs,\n IBaseEventArgs,\n BannerResourceStringsEN,\n IBannerResourceStrings,\n getCurrentResourceStrings,\n IToggleView\n} from 'igniteui-angular/core';\nimport { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\nexport interface BannerEventArgs extends IBaseEventArgs {\n event?: Event;\n}\n\nexport interface BannerCancelEventArgs extends BannerEventArgs, CancelableEventArgs {\n}\n/**\n * **Ignite UI for Angular Banner** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/banner.html)\n *\n * The Ignite UI Banner provides a highly template-able and easy to use banner that can be shown in your application.\n *\n * Usage:\n *\n * ```html\n * <igx-banner #banner>\n * Our privacy settings have changed.\n * <igx-banner-actions>\n * <button type=\"button\" igxButton=\"contained\">Read More</button>\n * <button type=\"button\" igxButton=\"contained\">Accept and Continue</button>\n * </igx-banner-actions>\n * </igx-banner>\n * ```\n */\n@Component({\n selector: 'igx-banner',\n templateUrl: 'banner.component.html',\n imports: [IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, IgxButtonDirective, IgxRippleDirective]\n})\nexport class IgxBannerComponent implements IToggleView {\n public elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * @hidden\n */\n @ContentChild(IgxIconComponent)\n public bannerIcon: IgxIconComponent;\n\n /**\n * Fires after the banner shows up\n * ```typescript\n * public handleOpened(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (opened)=\"handleOpened($event)\"></igx-banner>\n * ```\n */\n @Output()\n public opened = new EventEmitter<BannerEventArgs>();\n\n /**\n * Fires before the banner shows up\n * ```typescript\n * public handleOpening(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (opening)=\"handleOpening($event)\"></igx-banner>\n * ```\n */\n @Output()\n public opening = new EventEmitter<BannerCancelEventArgs>();\n\n /**\n * Fires after the banner hides\n * ```typescript\n * public handleClosed(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (closed)=\"handleClosed($event)\"></igx-banner>\n * ```\n */\n @Output()\n public closed = new EventEmitter<BannerEventArgs>();\n\n /**\n * Fires before the banner hides\n * ```typescript\n * public handleClosing(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (closing)=\"handleClosing($event)\"></igx-banner>\n * ```\n */\n @Output()\n public closing = new EventEmitter<BannerCancelEventArgs>();\n\n /** @hidden */\n public get useDefaultTemplate(): boolean {\n return !this._bannerActionTemplate;\n }\n\n /**\n * Set the animation settings used by the banner open/close methods\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * banner.animationSettings: ToggleAnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight };\n * ```\n */\n public set animationSettings(settings: ToggleAnimationSettings) {\n this._animationSettings = settings;\n }\n\n /**\n * Get the animation settings used by the banner open/close methods\n * ```typescript\n * let currentAnimations: ToggleAnimationSettings = banner.animationSettings\n * ```\n */\n @Input()\n public get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings ? this._animationSettings : this._expansionPanel.animationSettings;\n }\n\n /**\n * Gets/Sets the resource strings.\n *\n * @remarks\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IBannerResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n public get resourceStrings(): IBannerResourceStrings {\n return this._resourceStrings;\n }\n\n /**\n * Gets/Sets whether the banner is expanded (visible) or collapsed (hidden).\n * Defaults to `false`.\n * Setting to `true` opens the banner, while `false` closes it.\n *\n * @example\n * // Expand the banner\n * banner.expanded = true;\n *\n * @example\n * // Collapse the banner\n * banner.expanded = false;\n *\n * @example\n * // Check if the banner is expanded\n * const isExpanded = banner.expanded;\n */\n @Input()\n public get expanded(): boolean {\n return this._expanded;\n }\n\n public set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n\n this._expanded = value;\n this._shouldFireEvent = true;\n\n if (value) {\n this._expansionPanel.open();\n } else {\n this._expansionPanel.close();\n }\n }\n\n /**\n * Gets whether the banner is collapsed.\n *\n * ```typescript\n * const isCollapsed: boolean = banner.collapsed;\n * ```\n */\n public get collapsed(): boolean {\n return this._expansionPanel.collapsed;\n }\n\n /**\n * Returns the native element of the banner component\n * ```typescript\n * const myBannerElement: HTMLElement = banner.element;\n * ```\n */\n public get element() {\n return this.elementRef.nativeElement;\n }\n\n @HostBinding('class')\n public cssClass = 'igx-banner-host';\n\n /**\n * @hidden\n */\n @HostBinding('style.display')\n public get displayStyle(): string {\n return this.collapsed ? '' : 'block';\n }\n\n @ViewChild('expansionPanel', { static: true })\n private _expansionPanel: IgxExpansionPanelComponent;\n\n @ContentChild(IgxBannerActionsDirective)\n private _bannerActionTemplate: IgxBannerActionsDirective;\n\n private _expanded: boolean = false;\n private _shouldFireEvent: boolean = false;\n private _bannerEvent: BannerEventArgs;\n private _animationSettings: ToggleAnimationSettings;\n private _resourceStrings = getCurrentResourceStrings(BannerResourceStringsEN);\n\n /**\n * Opens the banner\n *\n * ```typescript\n * myBanner.open();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.open()\">Open Banner</button>\n * ```\n */\n public open(event?: Event) {\n this._bannerEvent = { owner: this, event };\n const openingArgs: BannerCancelEventArgs = {\n owner: this,\n event,\n cancel: false\n };\n this.opening.emit(openingArgs);\n if (openingArgs.cancel) {\n return;\n }\n this._expansionPanel.open(event);\n this._expanded = true;\n this._shouldFireEvent = false;\n }\n\n /**\n * Closes the banner\n *\n * ```typescript\n * myBanner.close();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.close()\">Close Banner</button>\n * ```\n */\n public close(event?: Event) {\n this._bannerEvent = { owner: this, event};\n const closingArgs: BannerCancelEventArgs = {\n owner: this,\n event,\n cancel: false\n };\n this.closing.emit(closingArgs);\n if (closingArgs.cancel) {\n return;\n }\n this._expansionPanel.close(event);\n this._expanded = false;\n this._shouldFireEvent = false;\n }\n\n /**\n * Toggles the banner\n *\n * ```typescript\n * myBanner.toggle();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.toggle()\">Toggle Banner</button>\n * ```\n */\n public toggle(event?: Event) {\n if (this.collapsed) {\n this.open(event);\n } else {\n this.close(event);\n }\n }\n\n /** @hidden */\n public onExpansionPanelOpen() {\n if (this._shouldFireEvent) {\n return;\n }\n this.opened.emit(this._bannerEvent);\n }\n\n /** @hidden */\n public onExpansionPanelClose() {\n if (this._shouldFireEvent) {\n return;\n }\n this.closed.emit(this._bannerEvent);\n }\n}\n","<igx-expansion-panel #expansionPanel [animationSettings]=\"animationSettings\" (contentCollapsed)=\"onExpansionPanelClose()\" (contentExpanded)=\"onExpansionPanelOpen()\"\n [collapsed]=\"collapsed\" role=\"status\" aria-live=\"polite\" [attr.aria-hidden]=\"collapsed\">\n <igx-expansion-panel-body>\n <div class=\"igx-banner\">\n <div class=\"igx-banner__message\">\n @if (bannerIcon) {\n <div class=\"igx-banner__illustration\">\n <ng-content select=\"igx-icon\"></ng-content>\n </div>\n }\n <span class=\"igx-banner__text\">\n <ng-content></ng-content>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n @if (useDefaultTemplate) {\n <button type=\"button\" igxButton=\"flat\" igxRipple (click)=\"close()\">\n {{ resourceStrings.igx_banner_button_dismiss }}\n </button>\n } @else {\n <ng-content select=\"igx-banner-actions\"></ng-content>\n }\n </div>\n </div>\n </igx-expansion-panel-body>\n</igx-expansion-panel>\n","import { IgxBannerComponent } from './banner.component';\nimport { IgxBannerActionsDirective } from './banner.directives';\n\nexport * from './banner.component';\nexport * from './banner.directives';\n\n/* Banner directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_BANNER_DIRECTIVES = [\n IgxBannerComponent,\n IgxBannerActionsDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_BANNER_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: [...IGX_BANNER_DIRECTIVES],\n exports: [...IGX_BANNER_DIRECTIVES]\n})\nexport class IgxBannerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxBannerComponent","i2.IgxBannerActionsDirective"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-banner.mjs","sources":["../../../projects/igniteui-angular/banner/src/banner/banner.directives.ts","../../../projects/igniteui-angular/banner/src/banner/banner.component.ts","../../../projects/igniteui-angular/banner/src/banner/banner.component.html","../../../projects/igniteui-angular/banner/src/banner/public_api.ts","../../../projects/igniteui-angular/banner/src/banner/banner.module.ts","../../../projects/igniteui-angular/banner/src/igniteui-angular-banner.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'igx-banner-actions',\n standalone: true\n})\nexport class IgxBannerActionsDirective { }\n","import {\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewChild\n} from '@angular/core';\n\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxBannerActionsDirective } from './banner.directives';\nimport {\n CancelableEventArgs,\n IBaseEventArgs,\n BannerResourceStringsEN,\n IBannerResourceStrings,\n getCurrentResourceStrings,\n onResourceChangeHandle,\n IToggleView\n} from 'igniteui-angular/core';\nimport { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\nexport interface BannerEventArgs extends IBaseEventArgs {\n event?: Event;\n}\n\nexport interface BannerCancelEventArgs extends BannerEventArgs, CancelableEventArgs {\n}\n/**\n * **Ignite UI for Angular Banner** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/banner.html)\n *\n * The Ignite UI Banner provides a highly template-able and easy to use banner that can be shown in your application.\n *\n * Usage:\n *\n * ```html\n * <igx-banner #banner>\n * Our privacy settings have changed.\n * <igx-banner-actions>\n * <button type=\"button\" igxButton=\"contained\">Read More</button>\n * <button type=\"button\" igxButton=\"contained\">Accept and Continue</button>\n * </igx-banner-actions>\n * </igx-banner>\n * ```\n */\n@Component({\n selector: 'igx-banner',\n templateUrl: 'banner.component.html',\n imports: [IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, IgxButtonDirective, IgxRippleDirective]\n})\nexport class IgxBannerComponent implements IToggleView {\n public elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * @hidden\n */\n @ContentChild(IgxIconComponent)\n public bannerIcon: IgxIconComponent;\n\n /**\n * Fires after the banner shows up\n * ```typescript\n * public handleOpened(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (opened)=\"handleOpened($event)\"></igx-banner>\n * ```\n */\n @Output()\n public opened = new EventEmitter<BannerEventArgs>();\n\n /**\n * Fires before the banner shows up\n * ```typescript\n * public handleOpening(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (opening)=\"handleOpening($event)\"></igx-banner>\n * ```\n */\n @Output()\n public opening = new EventEmitter<BannerCancelEventArgs>();\n\n /**\n * Fires after the banner hides\n * ```typescript\n * public handleClosed(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (closed)=\"handleClosed($event)\"></igx-banner>\n * ```\n */\n @Output()\n public closed = new EventEmitter<BannerEventArgs>();\n\n /**\n * Fires before the banner hides\n * ```typescript\n * public handleClosing(event) {\n * ...\n * }\n * ```\n * ```html\n * <igx-banner (closing)=\"handleClosing($event)\"></igx-banner>\n * ```\n */\n @Output()\n public closing = new EventEmitter<BannerCancelEventArgs>();\n\n /** @hidden */\n public get useDefaultTemplate(): boolean {\n return !this._bannerActionTemplate;\n }\n\n /**\n * Set the animation settings used by the banner open/close methods\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * banner.animationSettings: ToggleAnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight };\n * ```\n */\n public set animationSettings(settings: ToggleAnimationSettings) {\n this._animationSettings = settings;\n }\n\n /**\n * Get the animation settings used by the banner open/close methods\n * ```typescript\n * let currentAnimations: ToggleAnimationSettings = banner.animationSettings\n * ```\n */\n @Input()\n public get animationSettings(): ToggleAnimationSettings {\n return this._animationSettings ? this._animationSettings : this._expansionPanel.animationSettings;\n }\n\n /**\n * Gets/Sets the resource strings.\n *\n * @remarks\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IBannerResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n public get resourceStrings(): IBannerResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /**\n * Gets/Sets whether the banner is expanded (visible) or collapsed (hidden).\n * Defaults to `false`.\n * Setting to `true` opens the banner, while `false` closes it.\n *\n * @example\n * // Expand the banner\n * banner.expanded = true;\n *\n * @example\n * // Collapse the banner\n * banner.expanded = false;\n *\n * @example\n * // Check if the banner is expanded\n * const isExpanded = banner.expanded;\n */\n @Input()\n public get expanded(): boolean {\n return this._expanded;\n }\n\n public set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n\n this._expanded = value;\n this._shouldFireEvent = true;\n\n if (value) {\n this._expansionPanel.open();\n } else {\n this._expansionPanel.close();\n }\n }\n\n /**\n * Gets whether the banner is collapsed.\n *\n * ```typescript\n * const isCollapsed: boolean = banner.collapsed;\n * ```\n */\n public get collapsed(): boolean {\n return this._expansionPanel.collapsed;\n }\n\n /**\n * Returns the native element of the banner component\n * ```typescript\n * const myBannerElement: HTMLElement = banner.element;\n * ```\n */\n public get element() {\n return this.elementRef.nativeElement;\n }\n\n @HostBinding('class')\n public cssClass = 'igx-banner-host';\n\n /**\n * @hidden\n */\n @HostBinding('style.display')\n public get displayStyle(): string {\n return this.collapsed ? '' : 'block';\n }\n\n @ViewChild('expansionPanel', { static: true })\n private _expansionPanel: IgxExpansionPanelComponent;\n\n @ContentChild(IgxBannerActionsDirective)\n private _bannerActionTemplate: IgxBannerActionsDirective;\n\n private _destroyRef = inject(DestroyRef);\n private _expanded: boolean = false;\n private _shouldFireEvent: boolean = false;\n private _bannerEvent: BannerEventArgs;\n private _animationSettings: ToggleAnimationSettings;\n private _resourceStrings: IBannerResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(BannerResourceStringsEN);\n\n constructor() {\n onResourceChangeHandle(this._destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(BannerResourceStringsEN, false);\n }, this);\n }\n\n /**\n * Opens the banner\n *\n * ```typescript\n * myBanner.open();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.open()\">Open Banner</button>\n * ```\n */\n public open(event?: Event) {\n this._bannerEvent = { owner: this, event };\n const openingArgs: BannerCancelEventArgs = {\n owner: this,\n event,\n cancel: false\n };\n this.opening.emit(openingArgs);\n if (openingArgs.cancel) {\n return;\n }\n this._expansionPanel.open(event);\n this._expanded = true;\n this._shouldFireEvent = false;\n }\n\n /**\n * Closes the banner\n *\n * ```typescript\n * myBanner.close();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.close()\">Close Banner</button>\n * ```\n */\n public close(event?: Event) {\n this._bannerEvent = { owner: this, event};\n const closingArgs: BannerCancelEventArgs = {\n owner: this,\n event,\n cancel: false\n };\n this.closing.emit(closingArgs);\n if (closingArgs.cancel) {\n return;\n }\n this._expansionPanel.close(event);\n this._expanded = false;\n this._shouldFireEvent = false;\n }\n\n /**\n * Toggles the banner\n *\n * ```typescript\n * myBanner.toggle();\n * ```\n *\n * ```html\n * <igx-banner #banner>\n * ...\n * </igx-banner>\n * <button type=\"button\" (click)=\"banner.toggle()\">Toggle Banner</button>\n * ```\n */\n public toggle(event?: Event) {\n if (this.collapsed) {\n this.open(event);\n } else {\n this.close(event);\n }\n }\n\n /** @hidden */\n public onExpansionPanelOpen() {\n if (this._shouldFireEvent) {\n return;\n }\n this.opened.emit(this._bannerEvent);\n }\n\n /** @hidden */\n public onExpansionPanelClose() {\n if (this._shouldFireEvent) {\n return;\n }\n this.closed.emit(this._bannerEvent);\n }\n}\n","<igx-expansion-panel #expansionPanel [animationSettings]=\"animationSettings\" (contentCollapsed)=\"onExpansionPanelClose()\" (contentExpanded)=\"onExpansionPanelOpen()\"\n [collapsed]=\"collapsed\" role=\"status\" aria-live=\"polite\" [attr.aria-hidden]=\"collapsed\">\n <igx-expansion-panel-body>\n <div class=\"igx-banner\">\n <div class=\"igx-banner__message\">\n @if (bannerIcon) {\n <div class=\"igx-banner__illustration\">\n <ng-content select=\"igx-icon\"></ng-content>\n </div>\n }\n <span class=\"igx-banner__text\">\n <ng-content></ng-content>\n </span>\n </div>\n <div class=\"igx-banner__actions\">\n @if (useDefaultTemplate) {\n <button type=\"button\" igxButton=\"flat\" igxRipple (click)=\"close()\">\n {{ resourceStrings.igx_banner_button_dismiss }}\n </button>\n } @else {\n <ng-content select=\"igx-banner-actions\"></ng-content>\n }\n </div>\n </div>\n </igx-expansion-panel-body>\n</igx-expansion-panel>\n","import { IgxBannerComponent } from './banner.component';\nimport { IgxBannerActionsDirective } from './banner.directives';\n\nexport * from './banner.component';\nexport * from './banner.directives';\n\n/* Banner directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_BANNER_DIRECTIVES = [\n IgxBannerComponent,\n IgxBannerActionsDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_BANNER_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: [...IGX_BANNER_DIRECTIVES],\n exports: [...IGX_BANNER_DIRECTIVES]\n})\nexport class IgxBannerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxBannerComponent","i2.IgxBannerActionsDirective"],"mappings":"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"}