@clr/angular 17.0.0-beta.1 → 17.0.0-beta.3

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 (37) hide show
  1. package/clarity.api.md +15 -27
  2. package/data/datagrid/datagrid-if-expanded.service.d.ts +1 -1
  3. package/data/datagrid/datagrid.module.d.ts +36 -37
  4. package/data/datagrid/index.d.ts +0 -1
  5. package/data/datagrid/providers/items.d.ts +2 -11
  6. package/esm2020/button/button-group/button-group.mjs +9 -11
  7. package/esm2020/button/button-loading/loading-button.mjs +15 -5
  8. package/esm2020/data/datagrid/datagrid-column-toggle.mjs +3 -4
  9. package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +1 -1
  10. package/esm2020/data/datagrid/datagrid-items.mjs +1 -2
  11. package/esm2020/data/datagrid/datagrid.mjs +3 -5
  12. package/esm2020/data/datagrid/datagrid.module.mjs +1 -5
  13. package/esm2020/data/datagrid/index.mjs +1 -2
  14. package/esm2020/data/datagrid/providers/items.mjs +3 -21
  15. package/esm2020/data/datagrid/providers/selection.mjs +16 -22
  16. package/esm2020/emphasis/alert/alert.mjs +2 -2
  17. package/esm2020/forms/common/wrapped-control.mjs +6 -4
  18. package/esm2020/forms/datepicker/date-input.mjs +10 -1
  19. package/esm2020/forms/datepicker/providers/date-io.service.mjs +2 -2
  20. package/esm2020/utils/chocolate/willy-wonka.mjs +1 -1
  21. package/esm2020/utils/focus/key-focus/key-focus.mjs +2 -2
  22. package/esm2020/utils/popover/providers/popover-position.service.mjs +11 -3
  23. package/esm2020/wizard/providers/button-hub.service.mjs +1 -1
  24. package/esm2020/wizard/providers/wizard-navigation.service.mjs +1 -1
  25. package/esm2020/wizard/wizard.mjs +2 -2
  26. package/fesm2015/clr-angular.mjs +73 -116
  27. package/fesm2015/clr-angular.mjs.map +1 -1
  28. package/fesm2020/clr-angular.mjs +71 -113
  29. package/fesm2020/clr-angular.mjs.map +1 -1
  30. package/forms/common/wrapped-control.d.ts +1 -1
  31. package/forms/datepicker/date-input.d.ts +1 -0
  32. package/package.json +2 -2
  33. package/utils/chocolate/willy-wonka.d.ts +1 -1
  34. package/wizard/providers/button-hub.service.d.ts +6 -6
  35. package/wizard/providers/wizard-navigation.service.d.ts +1 -1
  36. package/data/datagrid/datagrid-items-trackby.d.ts +0 -10
  37. package/esm2020/data/datagrid/datagrid-items-trackby.mjs +0 -43
@@ -1942,12 +1942,12 @@ class ClrPopoverPositionService {
1942
1942
  *
1943
1943
  * Note, more than 3 viewport violations and there isn't anything we can do to help. Also when there are two
1944
1944
  * violations, we can't help if the violations are TOP+BOTTOM || LEFT+RIGHT => There is no transformation we
1945
- * can make to the postion that will help.
1945
+ * can make to the position that will help.
1946
1946
  *
1947
1947
  * Some examples:
1948
1948
  * There is only one error and Primary axis is VERTICAL
1949
1949
  * - this.handleVerticalAxisOneViolation has a switch that will use the error sum to apply the correct
1950
- * transform to the postion based on the reduction of visibilityViolations.
1950
+ * transform to the position based on the reduction of visibilityViolations.
1951
1951
  *
1952
1952
  * There are two errors and Primary axis is HORIZONTAL
1953
1953
  * - handleHorizontalAxisTwoViolations has a switch that uses the error sum to apply both transforms needed to
@@ -1979,6 +1979,14 @@ class ClrPopoverPositionService {
1979
1979
  if (this.currentContentCoords.top < 0) {
1980
1980
  this.contentOffsets.yOffset += Math.abs(this.currentContentCoords.top);
1981
1981
  }
1982
+ /**
1983
+ * This detects the condition where the popover is flipped because it would violate the bottom of the viewport, but flipping it results in the
1984
+ * popover rendering above the top of the body (y coordinate outside the body). In that event, it should be rendered within the body
1985
+ * as much as possible, so this logic sets the top of popover to render touching the top of the body.
1986
+ */
1987
+ if (this.contentOffsets.yOffset + this.currentAnchorCoords.y < 0) {
1988
+ this.contentOffsets.yOffset = 0 - this.currentContentCoords.top;
1989
+ }
1982
1990
  return this.contentOffsets;
1983
1991
  }
1984
1992
  handleVerticalAxisOneViolation(errorSum) {
@@ -3804,16 +3812,14 @@ class ClrButtonGroup {
3804
3812
  this.menuButtons = tempInMenuButtons;
3805
3813
  }
3806
3814
  handleFocusOnMenuOpen() {
3807
- if (this.menuButtons.length) {
3808
- this.toggleService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {
3809
- if (visible) {
3810
- this.focusHandler.initialize({
3811
- menu: this.menu.nativeElement,
3812
- menuToggle: this.menuToggle.nativeElement,
3813
- });
3814
- }
3815
- });
3816
- }
3815
+ this.toggleService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {
3816
+ if (visible) {
3817
+ this.focusHandler.initialize({
3818
+ menu: this.menu.nativeElement,
3819
+ menuToggle: this.menuToggle.nativeElement,
3820
+ });
3821
+ }
3822
+ });
3817
3823
  }
3818
3824
  }
3819
3825
  ClrButtonGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrButtonGroup, deps: [{ token: ButtonInGroupService }, { token: ClrPopoverToggleService }, { token: ClrCommonStringsService }, { token: ClrDestroyService }, { token: ButtonGroupFocusHandler }], target: i0.ɵɵFactoryTarget.Component });
@@ -3912,7 +3918,7 @@ class ClrLoadingButton {
3912
3918
  }
3913
3919
  ClrLoadingButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrLoadingButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
3914
3920
  ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrLoadingButton, selector: "button[clrLoading]", inputs: { disabled: "disabled" }, outputs: { clrLoadingChange: "clrLoadingChange" }, host: { properties: { "attr.disabled": "disabled? '' : null" } }, providers: [{ provide: LoadingListener, useExisting: ClrLoadingButton }], ngImport: i0, template: `
3915
- <ng-container [ngSwitch]="state">
3921
+ <span @parent [ngSwitch]="state">
3916
3922
  <span *ngSwitchCase="buttonState.LOADING">
3917
3923
  <span @spinner class="spinner spinner-inline"></span>
3918
3924
  </span>
@@ -3926,8 +3932,13 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
3926
3932
  <span *ngSwitchCase="buttonState.DEFAULT" @defaultButton>
3927
3933
  <ng-content></ng-content>
3928
3934
  </span>
3929
- </ng-container>
3935
+ </span>
3930
3936
  `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
3937
+ trigger('parent', [
3938
+ // Skip :enter animation on first render.
3939
+ // The button text/content should only be faded when transitioning to or from a non-default state.
3940
+ transition(':enter', []),
3941
+ ]),
3931
3942
  trigger('defaultButton', [
3932
3943
  transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
3933
3944
  // TODO: see if we can get leave animation to work before spinner's enter animation
@@ -3955,7 +3966,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
3955
3966
  args: [{
3956
3967
  selector: 'button[clrLoading]',
3957
3968
  template: `
3958
- <ng-container [ngSwitch]="state">
3969
+ <span @parent [ngSwitch]="state">
3959
3970
  <span *ngSwitchCase="buttonState.LOADING">
3960
3971
  <span @spinner class="spinner spinner-inline"></span>
3961
3972
  </span>
@@ -3969,10 +3980,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
3969
3980
  <span *ngSwitchCase="buttonState.DEFAULT" @defaultButton>
3970
3981
  <ng-content></ng-content>
3971
3982
  </span>
3972
- </ng-container>
3983
+ </span>
3973
3984
  `,
3974
3985
  providers: [{ provide: LoadingListener, useExisting: ClrLoadingButton }],
3975
3986
  animations: [
3987
+ trigger('parent', [
3988
+ // Skip :enter animation on first render.
3989
+ // The button text/content should only be faded when transitioning to or from a non-default state.
3990
+ transition(':enter', []),
3991
+ ]),
3976
3992
  trigger('defaultButton', [
3977
3993
  transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
3978
3994
  // TODO: see if we can get leave animation to work before spinner's enter animation
@@ -4850,7 +4866,7 @@ class WrappedFormControl {
4850
4866
  else {
4851
4867
  this._id = this.controlIdService.id;
4852
4868
  }
4853
- if (this.ngControlService) {
4869
+ if (this.ngControlService && this.ngControl) {
4854
4870
  this.ngControlService.setControl(this.ngControl);
4855
4871
  }
4856
4872
  }
@@ -4888,8 +4904,10 @@ class WrappedFormControl {
4888
4904
  }
4889
4905
  }
4890
4906
  markAsTouched() {
4891
- this.ngControl.control.markAsTouched();
4892
- this.ngControl.control.updateValueAndValidity();
4907
+ if (this.ngControl) {
4908
+ this.ngControl.control.markAsTouched();
4909
+ this.ngControl.control.updateValueAndValidity();
4910
+ }
4893
4911
  }
4894
4912
  setAriaDescribedBy(helpers) {
4895
4913
  if (helpers.show) {
@@ -5763,7 +5781,7 @@ class ClrKeyFocus {
5763
5781
  }
5764
5782
  if (this.focusOnLoad) {
5765
5783
  this.currentItem.focus();
5766
- this.focusChange.next();
5784
+ this.focusChange.emit();
5767
5785
  }
5768
5786
  }
5769
5787
  }
@@ -8391,7 +8409,7 @@ class DateIOService {
8391
8409
  return '';
8392
8410
  }
8393
8411
  getDateValueFromDateString(date) {
8394
- if (!date) {
8412
+ if (!date || typeof date !== 'string') {
8395
8413
  return null;
8396
8414
  }
8397
8415
  const dateParts = date.match(USER_INPUT_REGEX);
@@ -9597,9 +9615,11 @@ class ClrDateInput extends WrappedFormControl {
9597
9615
  }
9598
9616
  set min(dateString) {
9599
9617
  this.dateIOService.setMinDate(dateString);
9618
+ this.triggerControlValidation();
9600
9619
  }
9601
9620
  set max(dateString) {
9602
9621
  this.dateIOService.setMaxDate(dateString);
9622
+ this.triggerControlValidation();
9603
9623
  }
9604
9624
  get disabled() {
9605
9625
  if (this.dateFormControlService) {
@@ -9664,6 +9684,13 @@ class ClrDateInput extends WrappedFormControl {
9664
9684
  this.focusService.focused = focus;
9665
9685
  }
9666
9686
  }
9687
+ triggerControlValidation() {
9688
+ if (this.datepickerHasFormControl()) {
9689
+ // Set `emitEvent` to false to prevent unnecessary value change event. Status change event will be emitted by `setErrors` below.
9690
+ this.control.control?.updateValueAndValidity({ emitEvent: false });
9691
+ this.control.control?.setErrors(this.control.control.errors);
9692
+ }
9693
+ }
9667
9694
  populateServicesFromContainerComponent() {
9668
9695
  if (!this.container) {
9669
9696
  this.dateIOService = this.getProviderFromContainer(DateIOService);
@@ -13218,11 +13245,9 @@ class Items {
13218
13245
  this._change = new Subject();
13219
13246
  this._allChanges = new Subject();
13220
13247
  /**
13221
- * Tracking function to identify objects. Default is reference equality.
13222
- *
13223
- * @deprecated in v15 and scheduled for removal in v17 (CDE-71)
13248
+ * Tracking function to identify objects.
13224
13249
  */
13225
- this.iteratorTrackBy = (_index, item) => item;
13250
+ this.trackBy = item => item;
13226
13251
  }
13227
13252
  get smart() {
13228
13253
  return this._smart;
@@ -13299,22 +13324,6 @@ class Items {
13299
13324
  this._filterItems();
13300
13325
  }
13301
13326
  }
13302
- canTrackBy() {
13303
- // all items are needed unless `datagridTrackBy` is set because `iteratorTrackBy` requires the item's index
13304
- return !!this.datagridTrackBy || Array.isArray(this.all);
13305
- }
13306
- trackBy(item, index) {
13307
- if (this.datagridTrackBy) {
13308
- return this.datagridTrackBy(item);
13309
- }
13310
- else if (Array.isArray(this.all)) {
13311
- index = index ?? this.all.indexOf(item);
13312
- return this.iteratorTrackBy(index, item);
13313
- }
13314
- else {
13315
- throw new Error('improper call to Items#trackBy');
13316
- }
13317
- }
13318
13327
  emitChange() {
13319
13328
  this._change.next(this.displayed);
13320
13329
  }
@@ -13397,7 +13406,6 @@ class ClrDatagridItems {
13397
13406
  this._rawItems = items ? items : []; // local copy for ngOnChange diffing
13398
13407
  }
13399
13408
  set trackBy(value) {
13400
- this.items.iteratorTrackBy = value;
13401
13409
  this.iterableProxy.ngForTrackBy = value;
13402
13410
  }
13403
13411
  /**
@@ -13912,12 +13920,10 @@ class Selection {
13912
13920
  let selectionUpdated = false;
13913
13921
  // if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
13914
13922
  if (this.currentSingle && !this.prevSingleSelectionRef) {
13915
- if (this._items.canTrackBy()) {
13916
- this.prevSingleSelectionRef = this._items.trackBy(this.currentSingle);
13917
- }
13923
+ this.prevSingleSelectionRef = this._items.trackBy(this.currentSingle);
13918
13924
  }
13919
- updatedItems.forEach((item, index) => {
13920
- const ref = this._items.trackBy(item, index);
13925
+ updatedItems.forEach(item => {
13926
+ const ref = this._items.trackBy(item);
13921
13927
  // If one of the updated items is the previously selectedSingle, set it as the new one
13922
13928
  if (this.prevSingleSelectionRef === ref) {
13923
13929
  newSingle = item;
@@ -13950,20 +13956,18 @@ class Selection {
13950
13956
  let selectionUpdated = false;
13951
13957
  // if the current has been set before data was loaded, we look up and save the ref from current data set
13952
13958
  if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
13953
- if (this._items.canTrackBy()) {
13954
- this.prevSelectionRefs = [];
13955
- this.current.forEach(item => {
13956
- this.prevSelectionRefs.push(this._items.trackBy(item));
13957
- });
13958
- }
13959
+ this.prevSelectionRefs = [];
13960
+ this.current.forEach(item => {
13961
+ this.prevSelectionRefs.push(this._items.trackBy(item));
13962
+ });
13959
13963
  }
13960
13964
  // Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
13961
13965
  // we need to go over every updated item and check to see if there are valid to be
13962
13966
  // locked or not and update it. When only add items that are found in the lockedRefs back.
13963
13967
  //
13964
13968
  // The both loops below that goes over updatedItems could be combined into one.
13965
- updatedItems.forEach((item, index) => {
13966
- const ref = this._items.trackBy(item, index);
13969
+ updatedItems.forEach(item => {
13970
+ const ref = this._items.trackBy(item);
13967
13971
  if (this.lockedRefs.indexOf(ref) > -1) {
13968
13972
  updateLockedRef.push(ref);
13969
13973
  }
@@ -13972,8 +13976,8 @@ class Selection {
13972
13976
  // currently, the selection is cleared when filter is applied, so the logic inside
13973
13977
  // the if statement below results in broken behavior.
13974
13978
  if (leftOver.length > 0) {
13975
- updatedItems.forEach((item, index) => {
13976
- const ref = this._items.trackBy(item, index);
13979
+ updatedItems.forEach(item => {
13980
+ const ref = this._items.trackBy(item);
13977
13981
  // Look in current selected refs array if item is selected, and update actual value
13978
13982
  const selectedIndex = this.prevSelectionRefs.indexOf(ref);
13979
13983
  if (selectedIndex > -1) {
@@ -14039,7 +14043,7 @@ class Selection {
14039
14043
  return;
14040
14044
  }
14041
14045
  this._currentSingle = value;
14042
- if (this._items.canTrackBy() && value) {
14046
+ if (value) {
14043
14047
  this.prevSingleSelectionRef = this._items.trackBy(value);
14044
14048
  }
14045
14049
  this.emitChange();
@@ -14185,10 +14189,8 @@ class Selection {
14185
14189
  */
14186
14190
  selectItem(item) {
14187
14191
  this.current = this.current.concat(item);
14188
- if (this._items.canTrackBy()) {
14189
- // Push selected ref onto array
14190
- this.prevSelectionRefs.push(this._items.trackBy(item));
14191
- }
14192
+ // Push selected ref onto array
14193
+ this.prevSelectionRefs.push(this._items.trackBy(item));
14192
14194
  }
14193
14195
  /**
14194
14196
  * Deselects an item
@@ -14206,7 +14208,7 @@ class Selection {
14206
14208
  * Make sure that it could be locked
14207
14209
  */
14208
14210
  canItBeLocked() {
14209
- return this._selectionType !== SelectionType.None && this._items.canTrackBy();
14211
+ return this._selectionType !== SelectionType.None;
14210
14212
  }
14211
14213
  emitChange() {
14212
14214
  if (this._selectionType === SelectionType.Single) {
@@ -14988,7 +14990,7 @@ class ClrDatagrid {
14988
14990
  this.selection.rowSelectionMode = value;
14989
14991
  }
14990
14992
  set trackBy(value) {
14991
- this.items.datagridTrackBy = value;
14993
+ this.items.trackBy = value;
14992
14994
  }
14993
14995
  /**
14994
14996
  * Indicates if all currently displayed items are selected
@@ -15030,9 +15032,7 @@ class ClrDatagrid {
15030
15032
  });
15031
15033
  // Try to update only when there is something cached and its open.
15032
15034
  if (this.detailService.state && this.detailService.isOpen) {
15033
- const row = this.items.canTrackBy()
15034
- ? this.rows.find(row => this.items.trackBy(row.item) === this.items.trackBy(this.detailService.state))
15035
- : undefined;
15035
+ const row = this.rows.find(row => this.items.trackBy(row.item) === this.items.trackBy(this.detailService.state));
15036
15036
  /**
15037
15037
  * Reopen updated row or close it
15038
15038
  */
@@ -15415,45 +15415,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
15415
15415
  */
15416
15416
  const columnToggleTrackByFn = index => index;
15417
15417
 
15418
- /*
15419
- * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
15420
- * This software is released under MIT license.
15421
- * The full license information can be found in LICENSE in the root directory of this project.
15422
- */
15423
- class ClrDatagridItemsTrackBy {
15424
- constructor(_items) {
15425
- this._items = _items;
15426
- }
15427
- set trackBy(value) {
15428
- /**
15429
- * This is a workaround to prevent the items `trackBy` function from
15430
- * being replaced when the "manage columns" button is clicked. This is
15431
- * not a complete solution. If there is another `ngForTrackBy` function
15432
- * within the datagrid in application code, it could sill replace the
15433
- * items `trackBy` function whether it is the row iterator or not.
15434
- */
15435
- if (value === columnToggleTrackByFn) {
15436
- return;
15437
- }
15438
- if (this._items) {
15439
- this._items.iteratorTrackBy = value;
15440
- }
15441
- }
15442
- }
15443
- ClrDatagridItemsTrackBy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, deps: [{ token: Items, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
15444
- ClrDatagridItemsTrackBy.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: { trackBy: ["ngForTrackBy", "trackBy"] }, ngImport: i0 });
15445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, decorators: [{
15446
- type: Directive,
15447
- args: [{
15448
- selector: '[ngForTrackBy]',
15449
- }]
15450
- }], ctorParameters: function () { return [{ type: Items, decorators: [{
15451
- type: Optional
15452
- }] }]; }, propDecorators: { trackBy: [{
15453
- type: Input,
15454
- args: ['ngForTrackBy']
15455
- }] } });
15456
-
15457
15418
  /*
15458
15419
  * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
15459
15420
  * This software is released under MIT license.
@@ -15622,7 +15583,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
15622
15583
  <clr-dg-column-toggle-button (clrAllSelected)="allColumnsSelected()"></clr-dg-column-toggle-button>
15623
15584
  </div>
15624
15585
  </div>
15625
- `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "directive", type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "component", type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }] });
15586
+ `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "component", type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }] });
15626
15587
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
15627
15588
  type: Component,
15628
15589
  args: [{
@@ -17139,7 +17100,6 @@ const CLR_DATAGRID_DIRECTIVES = [
17139
17100
  ClrDatagridFooter,
17140
17101
  ClrDatagridHideableColumn,
17141
17102
  ClrDatagridItems,
17142
- ClrDatagridItemsTrackBy,
17143
17103
  ClrDatagridPageSize,
17144
17104
  ClrDatagridPagination,
17145
17105
  ClrDatagridPlaceholder,
@@ -17186,7 +17146,6 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
17186
17146
  ClrDatagridFooter,
17187
17147
  ClrDatagridHideableColumn,
17188
17148
  ClrDatagridItems,
17189
- ClrDatagridItemsTrackBy,
17190
17149
  ClrDatagridPageSize,
17191
17150
  ClrDatagridPagination,
17192
17151
  ClrDatagridPlaceholder,
@@ -17236,7 +17195,6 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
17236
17195
  ClrDatagridFooter,
17237
17196
  ClrDatagridHideableColumn,
17238
17197
  ClrDatagridItems,
17239
- ClrDatagridItemsTrackBy,
17240
17198
  ClrDatagridPageSize,
17241
17199
  ClrDatagridPagination,
17242
17200
  ClrDatagridPlaceholder,
@@ -19979,7 +19937,7 @@ class ClrAlert {
19979
19937
  }
19980
19938
  const isCurrentAlert = this.multiAlertService?.currentAlert === this;
19981
19939
  this._closed = true;
19982
- if (this.multiAlertService) {
19940
+ if (this.multiAlertService?.activeAlerts) {
19983
19941
  this.multiAlertService.close(isCurrentAlert);
19984
19942
  }
19985
19943
  this._closedChanged.emit(true);
@@ -25687,7 +25645,7 @@ class ClrWizard {
25687
25645
  */
25688
25646
  reset() {
25689
25647
  this.pageCollection.reset();
25690
- this.onReset.next();
25648
+ this.onReset.emit();
25691
25649
  }
25692
25650
  listenForNextPageChanges() {
25693
25651
  return this.navService.movedToNextPage.pipe(filter(() => isPlatformBrowser(this.platformId))).subscribe(() => {
@@ -26401,5 +26359,5 @@ const CLR_MENU_POSITIONS = [
26401
26359
  * Generated bundle index. Do not edit.
26402
26360
  */
26403
26361
 
26404
- export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
26362
+ export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
26405
26363
  //# sourceMappingURL=clr-angular.mjs.map