@clr/angular 12.0.8 → 12.0.12

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.
@@ -1424,10 +1424,10 @@
1424
1424
  comboboxNoResults: 'No results',
1425
1425
  comboboxOpen: 'Show options',
1426
1426
  // Datagrid expandable rows
1427
- dategridExpandableBeginningOf: 'Beginning of',
1428
- dategridExpandableEndOf: 'End of',
1429
- dategridExpandableRowContent: 'Expandable row content',
1430
- dategridExpandableRowsHelperText: "Screen reader table commands may not work for viewing expanded content, please use your screen reader's browse mode to read the content exposed by this button",
1427
+ datagridExpandableBeginningOf: 'Beginning of',
1428
+ datagridExpandableEndOf: 'End of',
1429
+ datagridExpandableRowContent: 'Expandable row content',
1430
+ datagridExpandableRowsHelperText: "Screen reader table commands may not work for viewing expanded content, please use your screen reader's browse mode to read the content exposed by this button",
1431
1431
  };
1432
1432
 
1433
1433
  /*
@@ -15169,7 +15169,7 @@
15169
15169
  };
15170
15170
 
15171
15171
  /*
15172
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
15172
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
15173
15173
  * This software is released under MIT license.
15174
15174
  * The full license information can be found in LICENSE in the root directory of this project.
15175
15175
  */
@@ -15208,7 +15208,7 @@
15208
15208
  Object.defineProperty(ClrDatagridRowDetail.prototype, "beginningOfExpandableContentAriaText", {
15209
15209
  get: function () {
15210
15210
  return (this._beginningOfExpandableContentAriaText ||
15211
- this.commonStrings.keys.dategridExpandableBeginningOf + " " + this.commonStrings.keys.dategridExpandableRowContent);
15211
+ (this.commonStrings.keys.dategridExpandableBeginningOf || this.commonStrings.keys.datagridExpandableBeginningOf) + " \n " + (this.commonStrings.keys.dategridExpandableRowContent || this.commonStrings.keys.datagridExpandableRowContent));
15212
15212
  },
15213
15213
  enumerable: false,
15214
15214
  configurable: true
@@ -15216,7 +15216,7 @@
15216
15216
  Object.defineProperty(ClrDatagridRowDetail.prototype, "endOfExpandableContentAriaText", {
15217
15217
  get: function () {
15218
15218
  return (this._endOfExpandableContentAriaText ||
15219
- this.commonStrings.keys.dategridExpandableEndOf + " " + this.commonStrings.keys.dategridExpandableRowContent);
15219
+ (this.commonStrings.keys.dategridExpandableEndOf || this.commonStrings.keys.datagridExpandableEndOf) + " \n " + (this.commonStrings.keys.dategridExpandableRowContent || this.commonStrings.keys.datagridExpandableRowContent));
15220
15220
  },
15221
15221
  enumerable: false,
15222
15222
  configurable: true
@@ -15226,7 +15226,8 @@
15226
15226
  ClrDatagridRowDetail.decorators = [
15227
15227
  { type: i0.Component, args: [{
15228
15228
  selector: 'clr-dg-row-detail',
15229
- template: "\n <div class=\"clr-sr-only\">\n {{ beginningOfExpandableContentAriaText }} {{ commonStrings.keys.dategridExpandableRowsHelperText }}\n </div>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\">{{ endOfExpandableContentAriaText }}</div>\n ",
15229
+ // TODO: @deprecated - dategrid* keys are deprecated. Remove in v14.
15230
+ template: "\n <div class=\"clr-sr-only\">\n {{ beginningOfExpandableContentAriaText }}\n {{ commonStrings.keys.dategridExpandableRowsHelperText || commonStrings.keys.datagridExpandableRowsHelperText }}\n </div>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\">{{ endOfExpandableContentAriaText }}</div>\n ",
15230
15231
  host: {
15231
15232
  '[class.datagrid-row-flex]': 'true',
15232
15233
  '[class.datagrid-row-detail]': 'true',
@@ -16527,7 +16528,7 @@
16527
16528
  ]; };
16528
16529
 
16529
16530
  /*
16530
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
16531
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16531
16532
  * This software is released under MIT license.
16532
16533
  * The full license information can be found in LICENSE in the root directory of this project.
16533
16534
  */
@@ -16756,7 +16757,6 @@
16756
16757
  ]),
16757
16758
  ],
16758
16759
  host: {
16759
- '[attr.role]': '"treeitem"',
16760
16760
  '[class.clr-tree-node]': 'true',
16761
16761
  }
16762
16762
  },] }
@@ -17849,6 +17849,7 @@
17849
17849
  var _this = this;
17850
17850
  this.parentHost = parentHost;
17851
17851
  this.updateAnchor = false;
17852
+ this.recentlyOpened = false;
17852
17853
  this.popoverOptions = {};
17853
17854
  /*
17854
17855
  * Until https://github.com/angular/angular/issues/8785 is supported, we don't have any way to instantiate
@@ -17865,6 +17866,7 @@
17865
17866
  if (change) {
17866
17867
  _this.anchor();
17867
17868
  _this.attachESCListener();
17869
+ _this.setRecentlyOpened();
17868
17870
  }
17869
17871
  else {
17870
17872
  _this.release();
@@ -17874,6 +17876,7 @@
17874
17876
  if (this.toggleService.open) {
17875
17877
  this.anchor();
17876
17878
  this.attachESCListener();
17879
+ this.setRecentlyOpened();
17877
17880
  }
17878
17881
  }
17879
17882
  AbstractPopover.prototype.anchor = function () {
@@ -17939,7 +17942,7 @@
17939
17942
  this.ignoredElementClickListener = this.renderer.listen(this.ignoredElement, 'click', function (event) { return (_this.ignore = event); });
17940
17943
  }
17941
17944
  this.documentClickListener = this.renderer.listen('document', 'click', function (event) {
17942
- if (event === _this.ignore) {
17945
+ if (event === _this.ignore || _this.recentlyOpened) {
17943
17946
  delete _this.ignore;
17944
17947
  }
17945
17948
  else {
@@ -17964,6 +17967,13 @@
17964
17967
  }
17965
17968
  }
17966
17969
  };
17970
+ AbstractPopover.prototype.setRecentlyOpened = function () {
17971
+ var _this = this;
17972
+ this.recentlyOpened = true;
17973
+ setTimeout(function () {
17974
+ _this.recentlyOpened = false;
17975
+ });
17976
+ };
17967
17977
  return AbstractPopover;
17968
17978
  }());
17969
17979
  AbstractPopover.decorators = [
@@ -18448,7 +18458,7 @@
18448
18458
  };
18449
18459
 
18450
18460
  /*
18451
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
18461
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
18452
18462
  * This software is released under MIT license.
18453
18463
  * The full license information can be found in LICENSE in the root directory of this project.
18454
18464
  */
@@ -18461,7 +18471,7 @@
18461
18471
  ClrAlertItem.decorators = [
18462
18472
  { type: i0.Component, args: [{
18463
18473
  selector: 'clr-alert-item',
18464
- template: "\n <div class=\"alert-icon-wrapper\">\n <cds-icon\n class=\"alert-icon\"\n [attr.shape]=\"iconService.alertIconShape\"\n [attr.title]=\"iconService.alertIconTitle\"\n ></cds-icon>\n </div>\n <ng-content></ng-content>\n ",
18474
+ template: "\n <div class=\"alert-icon-wrapper\">\n <cds-icon\n class=\"alert-icon\"\n role=\"img\"\n [attr.shape]=\"iconService.alertIconShape\"\n [attr.aria-label]=\"iconService.alertIconTitle\"\n ></cds-icon>\n </div>\n <ng-content></ng-content>\n ",
18465
18475
  host: { class: 'alert-item' }
18466
18476
  },] }
18467
18477
  ];
@@ -20368,7 +20378,7 @@
20368
20378
  { type: i0.Component, args: [{
20369
20379
  selector: 'clr-modal',
20370
20380
  viewProviders: [ScrollingService],
20371
- template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div clrFocusTrap class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <ng-content select=\".modal-body\"></ng-content>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n",
20381
+ template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div clrFocusTrap class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <div class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n",
20372
20382
  animations: [
20373
20383
  animations.trigger('fadeDown', [
20374
20384
  animations.transition('* => false', [animations.style({ opacity: 0, transform: 'translate(0, -25%)' }), animations.animate('0.2s ease-in-out')]),
@@ -20403,7 +20413,7 @@
20403
20413
  };
20404
20414
 
20405
20415
  /*
20406
- * Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
20416
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
20407
20417
  * This software is released under MIT license.
20408
20418
  * The full license information can be found in LICENSE in the root directory of this project.
20409
20419
  */
@@ -20414,19 +20424,21 @@
20414
20424
  * the overflow scroll being focused.
20415
20425
  */
20416
20426
  var ClrModalBody = /** @class */ (function () {
20417
- function ClrModalBody(ngZone, renderer, host) {
20427
+ function ClrModalBody(renderer, host, ngZone) {
20418
20428
  var _this = this;
20429
+ this.renderer = renderer;
20430
+ this.host = host;
20419
20431
  this.tabindex = '0';
20420
20432
  this.unlisteners = [];
20421
- renderer.setAttribute(host.nativeElement, 'tabindex', this.tabindex);
20422
20433
  ngZone.runOutsideAngular(function () {
20423
- _this.unlisteners.push(renderer.listen(host.nativeElement, 'mouseup', function () {
20434
+ new ResizeObserver(function () { return _this.addOrRemoveTabIndex(); }).observe(_this.host.nativeElement);
20435
+ _this.unlisteners.push(_this.renderer.listen(_this.host.nativeElement, 'mouseup', function () {
20424
20436
  // set the tabindex binding back when click is completed with mouseup
20425
- renderer.setAttribute(host.nativeElement, 'tabindex', _this.tabindex);
20426
- }), renderer.listen(host.nativeElement, 'mousedown', function () {
20437
+ _this.addOrRemoveTabIndex();
20438
+ }), _this.renderer.listen(_this.host.nativeElement, 'mousedown', function () {
20427
20439
  // tabindex = 0 binding should be removed
20428
20440
  // so it won't be focused when click starts with mousedown
20429
- renderer.removeAttribute(host.nativeElement, 'tabindex');
20441
+ _this.removeTabIndex();
20430
20442
  }));
20431
20443
  });
20432
20444
  }
@@ -20435,15 +20447,30 @@
20435
20447
  this.unlisteners.pop()();
20436
20448
  }
20437
20449
  };
20450
+ ClrModalBody.prototype.addTabIndex = function () {
20451
+ this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);
20452
+ };
20453
+ ClrModalBody.prototype.removeTabIndex = function () {
20454
+ this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');
20455
+ };
20456
+ ClrModalBody.prototype.addOrRemoveTabIndex = function () {
20457
+ var modalBody = this.host.nativeElement.parentElement;
20458
+ if (modalBody.clientHeight < modalBody.scrollHeight) {
20459
+ this.addTabIndex();
20460
+ }
20461
+ else {
20462
+ this.removeTabIndex();
20463
+ }
20464
+ };
20438
20465
  return ClrModalBody;
20439
20466
  }());
20440
20467
  ClrModalBody.decorators = [
20441
20468
  { type: i0.Directive, args: [{ selector: '.modal-body' },] }
20442
20469
  ];
20443
20470
  ClrModalBody.ctorParameters = function () { return [
20444
- { type: i0.NgZone },
20445
20471
  { type: i0.Renderer2 },
20446
- { type: i0.ElementRef }
20472
+ { type: i0.ElementRef },
20473
+ { type: i0.NgZone }
20447
20474
  ]; };
20448
20475
 
20449
20476
  /*
@@ -23752,10 +23779,11 @@
23752
23779
  };
23753
23780
  AccordionModel.prototype.togglePanel = function (panelId, open) {
23754
23781
  var panelIsOpen = this._panels[panelId].open;
23755
- if (this.strategy === AccordionStrategy.Default) {
23782
+ var newOpenState = open !== undefined ? open : !panelIsOpen;
23783
+ if (newOpenState && this.strategy === AccordionStrategy.Default) {
23756
23784
  this.closeAllPanels();
23757
23785
  }
23758
- this._panels[panelId].open = open !== undefined ? open : !panelIsOpen;
23786
+ this._panels[panelId].open = newOpenState;
23759
23787
  };
23760
23788
  AccordionModel.prototype.disablePanel = function (panelId, disabled) {
23761
23789
  this._panels[panelId].disabled = disabled;
@@ -23951,7 +23979,7 @@
23951
23979
  ClrAccordionPanel.decorators = [
23952
23980
  { type: i0.Component, args: [{
23953
23981
  selector: 'clr-accordion-panel',
23954
- template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div role=\"group\" [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
23982
+ template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
23955
23983
  host: { '[class.clr-accordion-panel]': 'true' },
23956
23984
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
23957
23985
  animations: panelAnimation,
@@ -24381,7 +24409,7 @@
24381
24409
  ClrStepperPanel.decorators = [
24382
24410
  { type: i0.Component, args: [{
24383
24411
  selector: 'clr-stepper-panel',
24384
- template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div role=\"group\" [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
24412
+ template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n",
24385
24413
  host: { '[class.clr-accordion-panel]': 'true' },
24386
24414
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
24387
24415
  animations: stepAnimation,