@clr/angular 13.4.0 → 13.5.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 (132) hide show
  1. package/clarity.api.md +12 -69
  2. package/data/datagrid/datagrid-action-overflow.d.ts +2 -1
  3. package/data/datagrid/datagrid-row.d.ts +12 -1
  4. package/data/datagrid/datagrid.d.ts +4 -2
  5. package/data/datagrid/datagrid.module.d.ts +4 -3
  6. package/data/datagrid/providers/selection.d.ts +8 -0
  7. package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +4 -2
  8. package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +4 -2
  9. package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +4 -2
  10. package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +4 -2
  11. package/esm2020/accordion/stepper/stepper.mjs +16 -5
  12. package/esm2020/data/data.module.mjs +4 -2
  13. package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +4 -2
  14. package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +4 -2
  15. package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +4 -2
  16. package/esm2020/data/datagrid/datagrid-action-bar.mjs +3 -3
  17. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +24 -15
  18. package/esm2020/data/datagrid/datagrid-cell.mjs +3 -3
  19. package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +4 -2
  20. package/esm2020/data/datagrid/datagrid-hideable-column.mjs +4 -2
  21. package/esm2020/data/datagrid/datagrid-row.mjs +68 -14
  22. package/esm2020/data/datagrid/datagrid.mjs +24 -5
  23. package/esm2020/data/datagrid/datagrid.module.mjs +5 -2
  24. package/esm2020/data/datagrid/providers/selection.mjs +5 -1
  25. package/esm2020/data/datagrid/render/cell-renderer.mjs +4 -2
  26. package/esm2020/data/datagrid/render/header-renderer.mjs +5 -2
  27. package/esm2020/data/datagrid/render/row-renderer.mjs +4 -2
  28. package/esm2020/data/stack-view/stack-view-custom-tags.mjs +4 -2
  29. package/esm2020/data/tree-view/recursive-for-of.mjs +4 -2
  30. package/esm2020/data/tree-view/tree-node.mjs +3 -3
  31. package/esm2020/emphasis/alert/alerts.mjs +3 -3
  32. package/esm2020/emphasis/emphasis.module.mjs +4 -2
  33. package/esm2020/forms/checkbox/checkbox.mjs +4 -2
  34. package/esm2020/forms/checkbox/checkbox.module.mjs +1 -2
  35. package/esm2020/forms/combobox/combobox.mjs +3 -3
  36. package/esm2020/forms/combobox/option-selected.directive.mjs +4 -2
  37. package/esm2020/forms/combobox/option.mjs +9 -5
  38. package/esm2020/forms/common/common.module.mjs +1 -2
  39. package/esm2020/forms/common/control.mjs +5 -2
  40. package/esm2020/forms/common/error.mjs +3 -3
  41. package/esm2020/forms/common/helper.mjs +3 -3
  42. package/esm2020/forms/common/if-control-state/if-error.mjs +4 -2
  43. package/esm2020/forms/common/if-control-state/if-success.mjs +4 -2
  44. package/esm2020/forms/common/label.mjs +4 -2
  45. package/esm2020/forms/common/success.mjs +3 -3
  46. package/esm2020/forms/datepicker/calendar.mjs +1 -1
  47. package/esm2020/forms/datepicker/datepicker.module.mjs +1 -2
  48. package/esm2020/forms/input/input.mjs +5 -2
  49. package/esm2020/forms/input/input.module.mjs +1 -2
  50. package/esm2020/forms/password/password-container.mjs +7 -7
  51. package/esm2020/forms/password/password.mjs +5 -2
  52. package/esm2020/forms/password/password.module.mjs +1 -2
  53. package/esm2020/forms/radio/radio.mjs +4 -2
  54. package/esm2020/forms/radio/radio.module.mjs +1 -2
  55. package/esm2020/forms/range/range.mjs +5 -2
  56. package/esm2020/forms/range/range.module.mjs +1 -2
  57. package/esm2020/forms/select/select.mjs +5 -2
  58. package/esm2020/forms/select/select.module.mjs +1 -2
  59. package/esm2020/forms/textarea/textarea.mjs +5 -2
  60. package/esm2020/forms/textarea/textarea.module.mjs +1 -2
  61. package/esm2020/icon/icon.mjs +7 -3
  62. package/esm2020/icon/icon.module.mjs +6 -2
  63. package/esm2020/layout/layout.module.mjs +4 -2
  64. package/esm2020/layout/main-container/main-container.mjs +5 -2
  65. package/esm2020/layout/nav/aria-current-link.mjs +5 -2
  66. package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +4 -2
  67. package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +4 -2
  68. package/esm2020/layout/nav/nav-level.mjs +4 -2
  69. package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +4 -2
  70. package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +4 -2
  71. package/esm2020/layout/tabs/tab-overflow-content.mjs +3 -3
  72. package/esm2020/layout/tabs/tab.mjs +3 -3
  73. package/esm2020/layout/tabs/tabs.mjs +3 -5
  74. package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +3 -3
  75. package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -3
  76. package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +5 -2
  77. package/esm2020/modal/modal-body.mjs +4 -2
  78. package/esm2020/popover/dropdown/dropdown-menu.mjs +3 -3
  79. package/esm2020/popover/popover.module.mjs +4 -2
  80. package/esm2020/popover/tooltip/tooltip-content.mjs +26 -36
  81. package/esm2020/popover/tooltip/tooltip.mjs +3 -3
  82. package/esm2020/progress/spinner/spinner.mjs +3 -3
  83. package/esm2020/timeline/timeline-step-description.mjs +3 -3
  84. package/esm2020/timeline/timeline-step-header.mjs +3 -3
  85. package/esm2020/timeline/timeline-step-title.mjs +3 -3
  86. package/esm2020/timeline/timeline-step.mjs +3 -3
  87. package/esm2020/timeline/timeline.mjs +3 -3
  88. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +3 -3
  89. package/esm2020/utils/assert/assert.helpers.mjs +9 -0
  90. package/esm2020/utils/conditional/conditional.module.mjs +6 -2
  91. package/esm2020/utils/conditional/if-active.directive.mjs +4 -2
  92. package/esm2020/utils/conditional/if-expanded.directive.mjs +4 -2
  93. package/esm2020/utils/conditional/if-open.directive.mjs +4 -2
  94. package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +1 -2
  95. package/esm2020/utils/drag-and-drop/drag-handle.mjs +5 -2
  96. package/esm2020/utils/drag-and-drop/if-dragged.mjs +4 -2
  97. package/esm2020/utils/focus/key-focus/index.mjs +8 -0
  98. package/esm2020/utils/focus-trap/focus-trap.directive.mjs +4 -2
  99. package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +5 -2
  100. package/esm2020/utils/index.mjs +1 -2
  101. package/esm2020/utils/loading/loading.mjs +4 -2
  102. package/esm2020/utils/loading/loading.module.mjs +6 -2
  103. package/esm2020/utils/outside-click/outside-click.mjs +4 -2
  104. package/esm2020/utils/outside-click/outside-click.module.mjs +6 -2
  105. package/esm2020/utils/popover/popover-content.mjs +4 -2
  106. package/esm2020/utils/template-ref/template-ref.module.mjs +1 -2
  107. package/esm2020/wizard/wizard-custom-tags.mjs +4 -2
  108. package/esm2020/wizard/wizard-page-buttons.mjs +4 -2
  109. package/esm2020/wizard/wizard-page-header-actions.mjs +4 -2
  110. package/esm2020/wizard/wizard-page-navtitle.mjs +4 -2
  111. package/esm2020/wizard/wizard-page-title.mjs +4 -2
  112. package/fesm2015/clr-angular.mjs +415 -403
  113. package/fesm2015/clr-angular.mjs.map +1 -1
  114. package/fesm2020/clr-angular.mjs +413 -411
  115. package/fesm2020/clr-angular.mjs.map +1 -1
  116. package/package.json +3 -3
  117. package/popover/tooltip/tooltip-content.d.ts +3 -3
  118. package/utils/assert/assert.helpers.d.ts +1 -0
  119. package/utils/focus/key-focus/index.d.ts +2 -0
  120. package/utils/index.d.ts +0 -1
  121. package/esm2020/utils/list-key-navigation/index.mjs +0 -10
  122. package/esm2020/utils/list-key-navigation/key-navigation-list.mjs +0 -120
  123. package/esm2020/utils/list-key-navigation/key-navigation-list.module.mjs +0 -24
  124. package/esm2020/utils/list-key-navigation/providers/focusable-items.mjs +0 -25
  125. package/esm2020/utils/list-key-navigation/providers/key-navigation-list.config.mjs +0 -19
  126. package/esm2020/utils/list-key-navigation/utils.mjs +0 -46
  127. package/utils/list-key-navigation/index.d.ts +0 -4
  128. package/utils/list-key-navigation/key-navigation-list.d.ts +0 -30
  129. package/utils/list-key-navigation/key-navigation-list.module.d.ts +0 -7
  130. package/utils/list-key-navigation/providers/focusable-items.d.ts +0 -3
  131. package/utils/list-key-navigation/providers/key-navigation-list.config.d.ts +0 -3
  132. package/utils/list-key-navigation/utils.d.ts +0 -11
@@ -5,12 +5,12 @@ import { CommonModule, isPlatformBrowser, DOCUMENT, NgForOf, getLocaleDayNames,
5
5
  import { ClarityIcons, angleIcon, exclamationCircleIcon, checkCircleIcon, ellipsisHorizontalIcon, windowCloseIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, infoCircleIcon, exclamationTriangleIcon, circleIcon, dotCircleIcon, errorStandardIcon, successStandardIcon } from '@cds/core/icon';
6
6
  import { map, tap, startWith, distinctUntilChanged, pairwise, filter, debounceTime, takeUntil, take, first, switchMap } from 'rxjs/operators';
7
7
  import * as i3 from 'rxjs';
8
- import { Subject, BehaviorSubject, fromEvent, isObservable, of, ReplaySubject, combineLatest, Observable } from 'rxjs';
8
+ import { Subject, BehaviorSubject, Observable, fromEvent, isObservable, of, ReplaySubject, combineLatest } from 'rxjs';
9
9
  import { trigger, transition, style, animate, keyframes, state } from '@angular/animations';
10
10
  import * as i1 from '@angular/forms';
11
11
  import { FormControl, FormGroup, FormsModule, SelectMultipleControlValueAccessor } from '@angular/forms';
12
- import { KeyNavigationCode, initializeKeyListItems, validKeyNavigationCode, setActiveKeyListItem, getFlattenedFocusableItems, focusElement, FocusTrapTrackerService, createId, isFocusable, isHTMLElement } from '@cds/core/internal';
13
12
  import * as i1$1 from '@angular/router';
13
+ import { FocusTrapTrackerService, createId, isFocusable, isHTMLElement } from '@cds/core/internal';
14
14
  import '@cds/core/internal-components/close-button/register.js';
15
15
  import '@cds/core/icon/register';
16
16
 
@@ -25,7 +25,9 @@ ClrIconCustomTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
25
25
  ClrIconCustomTag.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIconCustomTag, selector: "clr-icon", ngImport: i0 });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIconCustomTag, decorators: [{
27
27
  type: Directive,
28
- args: [{ selector: 'clr-icon' }]
28
+ args: [{
29
+ selector: 'clr-icon',
30
+ }]
29
31
  }] });
30
32
  class CdsIconCustomTag {
31
33
  }
@@ -33,7 +35,9 @@ CdsIconCustomTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
33
35
  CdsIconCustomTag.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: CdsIconCustomTag, selector: "cds-icon", ngImport: i0 });
34
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CdsIconCustomTag, decorators: [{
35
37
  type: Directive,
36
- args: [{ selector: 'cds-icon' }]
38
+ args: [{
39
+ selector: 'cds-icon',
40
+ }]
37
41
  }] });
38
42
 
39
43
  /*
@@ -49,7 +53,11 @@ ClrIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
49
53
  ClrIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIconModule, imports: [[CommonModule]] });
50
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIconModule, decorators: [{
51
55
  type: NgModule,
52
- args: [{ imports: [CommonModule], declarations: [CLR_ICON_DIRECTIVES], exports: [CLR_ICON_DIRECTIVES] }]
56
+ args: [{
57
+ imports: [CommonModule],
58
+ declarations: [CLR_ICON_DIRECTIVES],
59
+ exports: [CLR_ICON_DIRECTIVES],
60
+ }]
53
61
  }] });
54
62
 
55
63
  /*
@@ -108,7 +116,9 @@ ClrLoading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
108
116
  ClrLoading.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrLoading, selector: "[clrLoading]", inputs: { loadingState: ["clrLoading", "loadingState"] }, ngImport: i0 });
109
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLoading, decorators: [{
110
118
  type: Directive,
111
- args: [{ selector: '[clrLoading]' }]
119
+ args: [{
120
+ selector: '[clrLoading]',
121
+ }]
112
122
  }], ctorParameters: function () {
113
123
  return [{ type: LoadingListener, decorators: [{
114
124
  type: Optional
@@ -779,7 +789,9 @@ AccordionWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
779
789
  AccordionWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AccordionWillyWonka, selector: "clr-accordion", usesInheritance: true, ngImport: i0 });
780
790
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AccordionWillyWonka, decorators: [{
781
791
  type: Directive,
782
- args: [{ selector: 'clr-accordion' }]
792
+ args: [{
793
+ selector: 'clr-accordion',
794
+ }]
783
795
  }] });
784
796
 
785
797
  /*
@@ -803,7 +815,9 @@ AccordionOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
803
815
  AccordionOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AccordionOompaLoompa, selector: "clr-accordion-panel", usesInheritance: true, ngImport: i0 });
804
816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AccordionOompaLoompa, decorators: [{
805
817
  type: Directive,
806
- args: [{ selector: 'clr-accordion-panel' }]
818
+ args: [{
819
+ selector: 'clr-accordion-panel',
820
+ }]
807
821
  }], ctorParameters: function () {
808
822
  return [{ type: i0.ChangeDetectorRef }, { type: AccordionWillyWonka, decorators: [{
809
823
  type: Optional
@@ -1190,9 +1204,7 @@ class ClrStepper {
1190
1204
  this.subscriptions.forEach(s => s.unsubscribe());
1191
1205
  }
1192
1206
  listenForFormResetChanges() {
1193
- return this.form.statusChanges
1194
- .pipe(filter(() => this.form.pristine)) // https://github.com/angular/angular/issues/10887
1195
- .subscribe(() => this.stepperService.resetPanels());
1207
+ return fromControlReset(this.form.form).subscribe(() => this.stepperService.resetPanels());
1196
1208
  }
1197
1209
  listenForPanelsCompleted() {
1198
1210
  return this.stepperService.panelsCompleted.subscribe(panelsCompleted => {
@@ -1244,6 +1256,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1244
1256
  type: ContentChildren,
1245
1257
  args: [ClrStepperPanel, { descendants: true }]
1246
1258
  }] } });
1259
+ function fromControlReset(control) {
1260
+ return new Observable(observer => {
1261
+ const unpatchedControlReset = control.reset;
1262
+ control.reset = () => {
1263
+ observer.next();
1264
+ unpatchedControlReset.apply(control);
1265
+ };
1266
+ return () => {
1267
+ control.reset = unpatchedControlReset;
1268
+ };
1269
+ });
1270
+ }
1247
1271
 
1248
1272
  /*
1249
1273
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
@@ -1256,7 +1280,9 @@ StepperWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
1256
1280
  StepperWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StepperWillyWonka, selector: "form[clrStepper]", usesInheritance: true, ngImport: i0 });
1257
1281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StepperWillyWonka, decorators: [{
1258
1282
  type: Directive,
1259
- args: [{ selector: 'form[clrStepper]' }]
1283
+ args: [{
1284
+ selector: 'form[clrStepper]',
1285
+ }]
1260
1286
  }] });
1261
1287
 
1262
1288
  /*
@@ -1280,7 +1306,9 @@ StepperOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
1280
1306
  StepperOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StepperOompaLoompa, selector: "clr-stepper-panel, [clrStepButton]", usesInheritance: true, ngImport: i0 });
1281
1307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StepperOompaLoompa, decorators: [{
1282
1308
  type: Directive,
1283
- args: [{ selector: 'clr-stepper-panel, [clrStepButton]' }]
1309
+ args: [{
1310
+ selector: 'clr-stepper-panel, [clrStepButton]',
1311
+ }]
1284
1312
  }], ctorParameters: function () {
1285
1313
  return [{ type: i0.ChangeDetectorRef }, { type: StepperWillyWonka, decorators: [{
1286
1314
  type: Optional
@@ -2224,7 +2252,9 @@ ClrPopoverContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
2224
2252
  ClrPopoverContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: { open: ["clrPopoverContent", "open"], contentAt: ["clrPopoverContentAt", "contentAt"], outsideClickClose: ["clrPopoverContentOutsideClickToClose", "outsideClickClose"], scrollToClose: ["clrPopoverContentScrollToClose", "scrollToClose"] }, ngImport: i0 });
2225
2253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverContent, decorators: [{
2226
2254
  type: Directive,
2227
- args: [{ selector: '[clrPopoverContent]' }]
2255
+ args: [{
2256
+ selector: '[clrPopoverContent]',
2257
+ }]
2228
2258
  }], ctorParameters: function () {
2229
2259
  return [{ type: Document, decorators: [{
2230
2260
  type: Inject,
@@ -2959,7 +2989,10 @@ ClrHostWrappingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
2959
2989
  ClrHostWrappingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHostWrappingModule });
2960
2990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHostWrappingModule, decorators: [{
2961
2991
  type: NgModule,
2962
- args: [{ declarations: [EmptyAnchor], exports: [EmptyAnchor], entryComponents: [EmptyAnchor] }]
2992
+ args: [{
2993
+ declarations: [EmptyAnchor],
2994
+ exports: [EmptyAnchor],
2995
+ }]
2963
2996
  }] });
2964
2997
 
2965
2998
  /*
@@ -3087,12 +3120,12 @@ class ClrControlError extends ClrAbstractControl {
3087
3120
  }
3088
3121
  }
3089
3122
  ClrControlError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlError, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3090
- ClrControlError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlError, selector: "clr-control-error", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
3123
+ ClrControlError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlError, selector: "clr-control-error", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
3091
3124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlError, decorators: [{
3092
3125
  type: Component,
3093
3126
  args: [{
3094
3127
  selector: 'clr-control-error',
3095
- template: ` <ng-content></ng-content> `,
3128
+ template: `<ng-content></ng-content>`,
3096
3129
  host: {
3097
3130
  '[class.clr-subtext]': 'true',
3098
3131
  '[attr.id]': 'id',
@@ -3120,12 +3153,12 @@ class ClrControlHelper extends ClrAbstractControl {
3120
3153
  }
3121
3154
  }
3122
3155
  ClrControlHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlHelper, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3123
- ClrControlHelper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlHelper, selector: "clr-control-helper", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
3156
+ ClrControlHelper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlHelper, selector: "clr-control-helper", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
3124
3157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlHelper, decorators: [{
3125
3158
  type: Component,
3126
3159
  args: [{
3127
3160
  selector: 'clr-control-helper',
3128
- template: ` <ng-content></ng-content> `,
3161
+ template: `<ng-content></ng-content>`,
3129
3162
  host: {
3130
3163
  '[class.clr-subtext]': 'true',
3131
3164
  '[attr.id]': 'id',
@@ -3323,7 +3356,9 @@ ClrLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
3323
3356
  ClrLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrLabel, selector: "label", inputs: { forAttr: ["for", "forAttr"] }, host: { properties: { "attr.for": "this.forAttr" } }, ngImport: i0 });
3324
3357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLabel, decorators: [{
3325
3358
  type: Directive,
3326
- args: [{ selector: 'label' }]
3359
+ args: [{
3360
+ selector: 'label',
3361
+ }]
3327
3362
  }], ctorParameters: function () {
3328
3363
  return [{ type: ControlIdService, decorators: [{
3329
3364
  type: Optional
@@ -3354,12 +3389,12 @@ class ClrControlSuccess extends ClrAbstractControl {
3354
3389
  }
3355
3390
  }
3356
3391
  ClrControlSuccess.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlSuccess, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3357
- ClrControlSuccess.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlSuccess, selector: "clr-control-success", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
3392
+ ClrControlSuccess.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrControlSuccess, selector: "clr-control-success", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
3358
3393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlSuccess, decorators: [{
3359
3394
  type: Component,
3360
3395
  args: [{
3361
3396
  selector: 'clr-control-success',
3362
- template: ` <ng-content></ng-content> `,
3397
+ template: `<ng-content></ng-content>`,
3363
3398
  host: {
3364
3399
  '[class.clr-subtext]': 'true',
3365
3400
  '[attr.id]': 'id',
@@ -3829,7 +3864,10 @@ ClrControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
3829
3864
  ClrControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrControl, selector: "[clrControl]", host: { properties: { "class.clr-input": "true" } }, usesInheritance: true, ngImport: i0 });
3830
3865
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControl, decorators: [{
3831
3866
  type: Directive,
3832
- args: [{ selector: '[clrControl]', host: { '[class.clr-input]': 'true' } }]
3867
+ args: [{
3868
+ selector: '[clrControl]',
3869
+ host: { '[class.clr-input]': 'true' },
3870
+ }]
3833
3871
  }], ctorParameters: function () {
3834
3872
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
3835
3873
  type: Self
@@ -3978,7 +4016,9 @@ ClrIfError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
3978
4016
  ClrIfError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfError, selector: "[clrIfError]", inputs: { error: ["clrIfError", "error"] }, usesInheritance: true, ngImport: i0 });
3979
4017
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfError, decorators: [{
3980
4018
  type: Directive,
3981
- args: [{ selector: '[clrIfError]' }]
4019
+ args: [{
4020
+ selector: '[clrIfError]',
4021
+ }]
3982
4022
  }], ctorParameters: function () {
3983
4023
  return [{ type: IfControlStateService, decorators: [{
3984
4024
  type: Optional
@@ -4022,7 +4062,9 @@ ClrIfSuccess.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
4022
4062
  ClrIfSuccess.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfSuccess, selector: "[clrIfSuccess]", usesInheritance: true, ngImport: i0 });
4023
4063
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfSuccess, decorators: [{
4024
4064
  type: Directive,
4025
- args: [{ selector: '[clrIfSuccess]' }]
4065
+ args: [{
4066
+ selector: '[clrIfSuccess]',
4067
+ }]
4026
4068
  }], ctorParameters: function () {
4027
4069
  return [{ type: IfControlStateService, decorators: [{
4028
4070
  type: Optional
@@ -4118,7 +4160,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4118
4160
  ClrControlContainer,
4119
4161
  ClrControl,
4120
4162
  ],
4121
- entryComponents: [ClrControlContainer],
4122
4163
  }]
4123
4164
  }], ctorParameters: function () { return []; } });
4124
4165
 
@@ -4212,7 +4253,9 @@ ClrCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
4212
4253
  ClrCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]", usesInheritance: true, ngImport: i0 });
4213
4254
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckbox, decorators: [{
4214
4255
  type: Directive,
4215
- args: [{ selector: '[clrCheckbox],[clrToggle]' }]
4256
+ args: [{
4257
+ selector: '[clrCheckbox],[clrToggle]',
4258
+ }]
4216
4259
  }], ctorParameters: function () {
4217
4260
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
4218
4261
  type: Self
@@ -4357,7 +4400,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4357
4400
  imports: [CommonModule, ClrIconModule, ClrCommonFormsModule, ClrHostWrappingModule],
4358
4401
  declarations: [ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],
4359
4402
  exports: [ClrCommonFormsModule, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],
4360
- entryComponents: [ClrCheckboxWrapper],
4361
4403
  }]
4362
4404
  }], ctorParameters: function () { return []; } });
4363
4405
 
@@ -4420,12 +4462,12 @@ class ClrSpinner {
4420
4462
  }
4421
4463
  }
4422
4464
  ClrSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
4423
- ClrSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrSpinner, selector: "clr-spinner", inputs: { clrInline: "clrInline", clrInverse: "clrInverse", clrSmall: "clrSmall", clrMedium: "clrMedium" }, host: { properties: { "attr.aria-busy": "true", "class.spinner": "this.spinnerClass", "class.spinner-inline": "this.inlineClass", "class.spinner-inverse": "this.inverseClass", "class.spinner-sm": "this.smallClass", "class.spinner-md": "this.mediumClass" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
4465
+ ClrSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrSpinner, selector: "clr-spinner", inputs: { clrInline: "clrInline", clrInverse: "clrInverse", clrSmall: "clrSmall", clrMedium: "clrMedium" }, host: { properties: { "attr.aria-busy": "true", "class.spinner": "this.spinnerClass", "class.spinner-inline": "this.inlineClass", "class.spinner-inverse": "this.inverseClass", "class.spinner-sm": "this.smallClass", "class.spinner-md": "this.mediumClass" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
4424
4466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSpinner, decorators: [{
4425
4467
  type: Component,
4426
4468
  args: [{
4427
4469
  selector: 'clr-spinner',
4428
- template: ` <ng-content></ng-content> `,
4470
+ template: `<ng-content></ng-content>`,
4429
4471
  host: {
4430
4472
  '[attr.aria-busy]': 'true',
4431
4473
  },
@@ -4641,7 +4683,9 @@ ClrIfActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
4641
4683
  ClrIfActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfActive, selector: "[clrIfActive]", inputs: { active: ["clrIfActive", "active"] }, outputs: { activeChange: "clrIfActiveChange" }, ngImport: i0 });
4642
4684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfActive, decorators: [{
4643
4685
  type: Directive,
4644
- args: [{ selector: '[clrIfActive]' }]
4686
+ args: [{
4687
+ selector: '[clrIfActive]',
4688
+ }]
4645
4689
  }], ctorParameters: function () {
4646
4690
  return [{ type: IfActiveService }, { type: undefined, decorators: [{
4647
4691
  type: Inject,
@@ -4733,7 +4777,9 @@ ClrIfExpanded.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
4733
4777
  ClrIfExpanded.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfExpanded, selector: "[clrIfExpanded]", inputs: { expanded: ["clrIfExpanded", "expanded"] }, outputs: { expandedChange: "clrIfExpandedChange" }, ngImport: i0 });
4734
4778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfExpanded, decorators: [{
4735
4779
  type: Directive,
4736
- args: [{ selector: '[clrIfExpanded]' }]
4780
+ args: [{
4781
+ selector: '[clrIfExpanded]',
4782
+ }]
4737
4783
  }], ctorParameters: function () {
4738
4784
  return [{ type: i0.TemplateRef, decorators: [{
4739
4785
  type: Optional
@@ -4821,7 +4867,9 @@ ClrIfOpen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0
4821
4867
  ClrIfOpen.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfOpen, selector: "[clrIfOpen]", inputs: { open: ["clrIfOpen", "open"] }, outputs: { openChange: "clrIfOpenChange" }, ngImport: i0 });
4822
4868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfOpen, decorators: [{
4823
4869
  type: Directive,
4824
- args: [{ selector: '[clrIfOpen]' }]
4870
+ args: [{
4871
+ selector: '[clrIfOpen]',
4872
+ }]
4825
4873
  }], ctorParameters: function () { return [{ type: ClrPopoverToggleService }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { open: [{
4826
4874
  type: Input,
4827
4875
  args: ['clrIfOpen']
@@ -4843,7 +4891,11 @@ ClrConditionalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
4843
4891
  ClrConditionalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrConditionalModule, imports: [[CommonModule]] });
4844
4892
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrConditionalModule, decorators: [{
4845
4893
  type: NgModule,
4846
- args: [{ imports: [CommonModule], declarations: [CONDITIONAL_DIRECTIVES], exports: [CONDITIONAL_DIRECTIVES] }]
4894
+ args: [{
4895
+ imports: [CommonModule],
4896
+ declarations: [CONDITIONAL_DIRECTIVES],
4897
+ exports: [CONDITIONAL_DIRECTIVES],
4898
+ }]
4847
4899
  }] });
4848
4900
 
4849
4901
  /*
@@ -5580,7 +5632,9 @@ ClrOptionSelected.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
5580
5632
  ClrOptionSelected.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrOptionSelected, selector: "[clrOptionSelected]", inputs: { selected: ["clrOptionSelected", "selected"] }, ngImport: i0 });
5581
5633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOptionSelected, decorators: [{
5582
5634
  type: Directive,
5583
- args: [{ selector: '[clrOptionSelected]' }]
5635
+ args: [{
5636
+ selector: '[clrOptionSelected]',
5637
+ }]
5584
5638
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { selected: [{
5585
5639
  type: Input,
5586
5640
  args: ['clrOptionSelected']
@@ -6180,7 +6234,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
6180
6234
  ClrPopoverToggleService,
6181
6235
  ClrPopoverEventsService,
6182
6236
  ClrPopoverPositionService,
6183
- ], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
6237
+ ], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
6184
6238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCombobox, decorators: [{
6185
6239
  type: Component,
6186
6240
  args: [{ selector: 'clr-combobox', providers: [
@@ -6199,7 +6253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
6199
6253
  '[class.aria-required]': 'true',
6200
6254
  '[class.clr-combobox]': 'true',
6201
6255
  '[class.clr-combobox-disabled]': 'control?.disabled',
6202
- }, 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n" }]
6256
+ }, 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n ></ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\" role=\"combobox\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n" }]
6203
6257
  }], ctorParameters: function () {
6204
6258
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
6205
6259
  type: Self
@@ -6299,14 +6353,18 @@ class ClrOption {
6299
6353
  }
6300
6354
  }
6301
6355
  ClrOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, deps: [{ token: i0.ElementRef }, { token: ClrCommonStringsService }, { token: ComboboxFocusHandler }, { token: OptionSelectionService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
6302
- ClrOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrOption, selector: "clr-option", inputs: { optionId: ["id", "optionId"], value: ["clrValue", "value"] }, host: { listeners: { "click": "onClick()" }, properties: { "class.clr-combobox-option": "true", "attr.role": "\"option\"", "attr.tabindex": "-1", "attr.id": "optionId", "class.active": "this.selected", "class.clr-focus": "this.focusClass" } }, providers: [UNIQUE_ID_PROVIDER], ngImport: i0, template: `<ng-content></ng-content>
6303
- <span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6356
+ ClrOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrOption, selector: "clr-option", inputs: { optionId: ["id", "optionId"], value: ["clrValue", "value"] }, host: { listeners: { "click": "onClick()" }, properties: { "class.clr-combobox-option": "true", "attr.role": "\"option\"", "attr.tabindex": "-1", "attr.id": "optionId", "class.active": "this.selected", "class.clr-focus": "this.focusClass" } }, providers: [UNIQUE_ID_PROVIDER], ngImport: i0, template: `
6357
+ <ng-content></ng-content>
6358
+ <span *ngIf="selected" class="clr-sr-only">{{ commonStrings.keys.comboboxSelected }}</span>
6359
+ `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6304
6360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, decorators: [{
6305
6361
  type: Component,
6306
6362
  args: [{
6307
6363
  selector: 'clr-option',
6308
- template: `<ng-content></ng-content>
6309
- <span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `,
6364
+ template: `
6365
+ <ng-content></ng-content>
6366
+ <span *ngIf="selected" class="clr-sr-only">{{ commonStrings.keys.comboboxSelected }}</span>
6367
+ `,
6310
6368
  providers: [UNIQUE_ID_PROVIDER],
6311
6369
  host: {
6312
6370
  '[class.clr-combobox-option]': 'true',
@@ -6722,7 +6780,10 @@ ClrInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
6722
6780
  ClrInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrInput, selector: "[clrInput]", host: { properties: { "class.clr-input": "true" } }, usesInheritance: true, ngImport: i0 });
6723
6781
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrInput, decorators: [{
6724
6782
  type: Directive,
6725
- args: [{ selector: '[clrInput]', host: { '[class.clr-input]': 'true' } }]
6783
+ args: [{
6784
+ selector: '[clrInput]',
6785
+ host: { '[class.clr-input]': 'true' },
6786
+ }]
6726
6787
  }], ctorParameters: function () {
6727
6788
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
6728
6789
  type: Self
@@ -6751,7 +6812,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
6751
6812
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
6752
6813
  declarations: [ClrInput, ClrInputContainer],
6753
6814
  exports: [ClrCommonFormsModule, ClrInput, ClrInputContainer],
6754
- entryComponents: [ClrInputContainer],
6755
6815
  }]
6756
6816
  }], ctorParameters: function () { return []; } });
6757
6817
 
@@ -7207,7 +7267,9 @@ FocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
7207
7267
  FocusTrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: { config: ["clrFocusTrap", "config"] }, host: { listeners: { "document:focusin": "onFocusIn($event)" } }, ngImport: i0 });
7208
7268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrapDirective, decorators: [{
7209
7269
  type: Directive,
7210
- args: [{ selector: '[clrFocusTrap]' }]
7270
+ args: [{
7271
+ selector: '[clrFocusTrap]',
7272
+ }]
7211
7273
  }], ctorParameters: function () {
7212
7274
  return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: FocusTrapTracker }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
7213
7275
  type: Inject,
@@ -9466,7 +9528,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9466
9528
  ],
9467
9529
  declarations: [CLR_DATEPICKER_DIRECTIVES],
9468
9530
  exports: [CLR_DATEPICKER_DIRECTIVES],
9469
- entryComponents: [ClrDateContainer],
9470
9531
  }]
9471
9532
  }], ctorParameters: function () { return []; } });
9472
9533
 
@@ -9531,9 +9592,9 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
9531
9592
  type="button"
9532
9593
  >
9533
9594
  <cds-icon status="info" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
9534
- <span class="clr-sr-only">{{
9535
- show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
9536
- }}</span>
9595
+ <span class="clr-sr-only">
9596
+ {{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
9597
+ </span>
9537
9598
  </button>
9538
9599
  </div>
9539
9600
  <cds-icon
@@ -9575,9 +9636,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9575
9636
  type="button"
9576
9637
  >
9577
9638
  <cds-icon status="info" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
9578
- <span class="clr-sr-only">{{
9579
- show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
9580
- }}</span>
9639
+ <span class="clr-sr-only">
9640
+ {{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
9641
+ </span>
9581
9642
  </button>
9582
9643
  </div>
9583
9644
  <cds-icon
@@ -9660,7 +9721,10 @@ ClrPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
9660
9721
  ClrPassword.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrPassword, selector: "[clrPassword]", host: { listeners: { "focus": "triggerFocus()", "blur": "triggerValidation()" }, properties: { "class.clr-input": "true" } }, usesInheritance: true, ngImport: i0 });
9661
9722
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPassword, decorators: [{
9662
9723
  type: Directive,
9663
- args: [{ selector: '[clrPassword]', host: { '[class.clr-input]': 'true' } }]
9724
+ args: [{
9725
+ selector: '[clrPassword]',
9726
+ host: { '[class.clr-input]': 'true' },
9727
+ }]
9664
9728
  }], ctorParameters: function () {
9665
9729
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
9666
9730
  type: Self
@@ -9701,7 +9765,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9701
9765
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
9702
9766
  declarations: [ClrPassword, ClrPasswordContainer],
9703
9767
  exports: [ClrCommonFormsModule, ClrPassword, ClrPasswordContainer],
9704
- entryComponents: [ClrPasswordContainer],
9705
9768
  }]
9706
9769
  }], ctorParameters: function () { return []; } });
9707
9770
 
@@ -9762,7 +9825,9 @@ ClrRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
9762
9825
  ClrRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrRadio, selector: "[clrRadio]", usesInheritance: true, ngImport: i0 });
9763
9826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadio, decorators: [{
9764
9827
  type: Directive,
9765
- args: [{ selector: '[clrRadio]' }]
9828
+ args: [{
9829
+ selector: '[clrRadio]',
9830
+ }]
9766
9831
  }], ctorParameters: function () {
9767
9832
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
9768
9833
  type: Self
@@ -9904,7 +9969,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9904
9969
  imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIconModule],
9905
9970
  declarations: [ClrRadio, ClrRadioContainer, ClrRadioWrapper],
9906
9971
  exports: [ClrCommonFormsModule, ClrRadio, ClrRadioContainer, ClrRadioWrapper],
9907
- entryComponents: [ClrRadioWrapper],
9908
9972
  }]
9909
9973
  }], ctorParameters: function () { return []; } });
9910
9974
 
@@ -10033,7 +10097,10 @@ ClrRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
10033
10097
  ClrRange.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrRange, selector: "[clrRange]", host: { properties: { "class.clr-range": "true" } }, usesInheritance: true, ngImport: i0 });
10034
10098
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRange, decorators: [{
10035
10099
  type: Directive,
10036
- args: [{ selector: '[clrRange]', host: { '[class.clr-range]': 'true' } }]
10100
+ args: [{
10101
+ selector: '[clrRange]',
10102
+ host: { '[class.clr-range]': 'true' },
10103
+ }]
10037
10104
  }], ctorParameters: function () {
10038
10105
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
10039
10106
  type: Self
@@ -10061,7 +10128,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10061
10128
  imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIconModule],
10062
10129
  declarations: [ClrRange, ClrRangeContainer],
10063
10130
  exports: [ClrCommonFormsModule, ClrRange, ClrRangeContainer],
10064
- entryComponents: [ClrRangeContainer],
10065
10131
  }]
10066
10132
  }], ctorParameters: function () { return []; } });
10067
10133
 
@@ -10180,7 +10246,10 @@ ClrSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0
10180
10246
  ClrSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrSelect, selector: "[clrSelect]", host: { properties: { "class.clr-select": "true" } }, usesInheritance: true, ngImport: i0 });
10181
10247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSelect, decorators: [{
10182
10248
  type: Directive,
10183
- args: [{ selector: '[clrSelect]', host: { '[class.clr-select]': 'true' } }]
10249
+ args: [{
10250
+ selector: '[clrSelect]',
10251
+ host: { '[class.clr-select]': 'true' },
10252
+ }]
10184
10253
  }], ctorParameters: function () {
10185
10254
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
10186
10255
  type: Self
@@ -10208,7 +10277,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10208
10277
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
10209
10278
  declarations: [ClrSelect, ClrSelectContainer],
10210
10279
  exports: [ClrCommonFormsModule, ClrSelect, ClrSelectContainer],
10211
- entryComponents: [ClrSelectContainer],
10212
10280
  }]
10213
10281
  }], ctorParameters: function () { return []; } });
10214
10282
 
@@ -10300,7 +10368,10 @@ ClrTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
10300
10368
  ClrTextarea.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrTextarea, selector: "[clrTextarea]", host: { properties: { "class.clr-textarea": "true" } }, usesInheritance: true, ngImport: i0 });
10301
10369
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTextarea, decorators: [{
10302
10370
  type: Directive,
10303
- args: [{ selector: '[clrTextarea]', host: { '[class.clr-textarea]': 'true' } }]
10371
+ args: [{
10372
+ selector: '[clrTextarea]',
10373
+ host: { '[class.clr-textarea]': 'true' },
10374
+ }]
10304
10375
  }], ctorParameters: function () {
10305
10376
  return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
10306
10377
  type: Self
@@ -10328,7 +10399,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10328
10399
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
10329
10400
  declarations: [ClrTextarea, ClrTextareaContainer],
10330
10401
  exports: [ClrCommonFormsModule, ClrTextarea, ClrTextareaContainer],
10331
- entryComponents: [ClrTextareaContainer],
10332
10402
  }]
10333
10403
  }], ctorParameters: function () { return []; } });
10334
10404
 
@@ -10452,7 +10522,7 @@ class ClrExpandableAnimation {
10452
10522
  }
10453
10523
  }
10454
10524
  ClrExpandableAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrExpandableAnimation, deps: [{ token: i0.ElementRef }, { token: DomAdapter }], target: i0.ɵɵFactoryTarget.Component });
10455
- ClrExpandableAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: { clrExpandTrigger: "clrExpandTrigger" }, host: { listeners: { "@expandAnimation.done": "animationDone()" }, properties: { "@expandAnimation": "this.expandAnimation" } }, providers: [DomAdapter], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, styles: [":host{display:block}\n"], animations: [
10525
+ ClrExpandableAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: { clrExpandTrigger: "clrExpandTrigger" }, host: { listeners: { "@expandAnimation.done": "animationDone()" }, properties: { "@expandAnimation": "this.expandAnimation" } }, providers: [DomAdapter], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], animations: [
10456
10526
  trigger('expandAnimation', [
10457
10527
  transition('true <=> false', [
10458
10528
  style({ height: '{{startHeight}}px', overflow: 'hidden' }),
@@ -10464,7 +10534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10464
10534
  type: Component,
10465
10535
  args: [{
10466
10536
  selector: 'clr-expandable-animation',
10467
- template: ` <ng-content></ng-content> `,
10537
+ template: `<ng-content></ng-content>`,
10468
10538
  styles: [
10469
10539
  `
10470
10540
  :host {
@@ -10838,7 +10908,10 @@ ClrDragHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
10838
10908
  ClrDragHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrDragHandle, selector: "[clrDragHandle]", host: { properties: { "class.drag-handle": "true" } }, ngImport: i0 });
10839
10909
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDragHandle, decorators: [{
10840
10910
  type: Directive,
10841
- args: [{ selector: '[clrDragHandle]', host: { '[class.drag-handle]': 'true' } }]
10911
+ args: [{
10912
+ selector: '[clrDragHandle]',
10913
+ host: { '[class.drag-handle]': 'true' },
10914
+ }]
10842
10915
  }], ctorParameters: function () {
10843
10916
  return [{ type: i0.ElementRef }, { type: DragHandleRegistrarService, decorators: [{
10844
10917
  type: Optional
@@ -11050,7 +11123,9 @@ ClrIfDragged.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
11050
11123
  ClrIfDragged.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfDragged, selector: "[clrIfDragged]", ngImport: i0 });
11051
11124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfDragged, decorators: [{
11052
11125
  type: Directive,
11053
- args: [{ selector: '[clrIfDragged]' }]
11126
+ args: [{
11127
+ selector: '[clrIfDragged]',
11128
+ }]
11054
11129
  }], ctorParameters: function () {
11055
11130
  return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef, decorators: [{
11056
11131
  type: Optional
@@ -11450,7 +11525,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
11450
11525
  args: [{
11451
11526
  imports: [CommonModule],
11452
11527
  declarations: [CLR_DRAG_AND_DROP_DIRECTIVES],
11453
- entryComponents: [ClrDraggableGhost],
11454
11528
  exports: [CLR_DRAG_AND_DROP_DIRECTIVES],
11455
11529
  }]
11456
11530
  }] });
@@ -11587,7 +11661,11 @@ ClrLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
11587
11661
  ClrLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLoadingModule, imports: [[CommonModule]] });
11588
11662
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLoadingModule, decorators: [{
11589
11663
  type: NgModule,
11590
- args: [{ imports: [CommonModule], declarations: [CLR_LOADING_DIRECTIVES], exports: [CLR_LOADING_DIRECTIVES] }]
11664
+ args: [{
11665
+ imports: [CommonModule],
11666
+ declarations: [CLR_LOADING_DIRECTIVES],
11667
+ exports: [CLR_LOADING_DIRECTIVES],
11668
+ }]
11591
11669
  }] });
11592
11670
 
11593
11671
  /*
@@ -11625,7 +11703,9 @@ OutsideClick.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
11625
11703
  OutsideClick.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: OutsideClick, selector: "[clrOutsideClick]", inputs: { strict: ["clrStrict", "strict"] }, outputs: { outsideClick: "clrOutsideClick" }, ngImport: i0 });
11626
11704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OutsideClick, decorators: [{
11627
11705
  type: Directive,
11628
- args: [{ selector: '[clrOutsideClick]' }]
11706
+ args: [{
11707
+ selector: '[clrOutsideClick]',
11708
+ }]
11629
11709
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { strict: [{
11630
11710
  type: Input,
11631
11711
  args: ['clrStrict']
@@ -11653,7 +11733,11 @@ ClrOutsideClickModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
11653
11733
  ClrOutsideClickModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOutsideClickModule, imports: [[CommonModule]] });
11654
11734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOutsideClickModule, decorators: [{
11655
11735
  type: NgModule,
11656
- args: [{ imports: [CommonModule], declarations: [OUSTIDE_CLICK_DIRECTIVES], exports: [OUSTIDE_CLICK_DIRECTIVES] }]
11736
+ args: [{
11737
+ imports: [CommonModule],
11738
+ declarations: [OUSTIDE_CLICK_DIRECTIVES],
11739
+ exports: [OUSTIDE_CLICK_DIRECTIVES],
11740
+ }]
11657
11741
  }] });
11658
11742
 
11659
11743
  /*
@@ -12776,7 +12860,9 @@ DatagridWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
12776
12860
  DatagridWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridWillyWonka, selector: "clr-datagrid", usesInheritance: true, ngImport: i0 });
12777
12861
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridWillyWonka, decorators: [{
12778
12862
  type: Directive,
12779
- args: [{ selector: 'clr-datagrid' }]
12863
+ args: [{
12864
+ selector: 'clr-datagrid',
12865
+ }]
12780
12866
  }] });
12781
12867
 
12782
12868
  /*
@@ -12828,7 +12914,9 @@ ActionableOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
12828
12914
  ActionableOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ActionableOompaLoompa, selector: "clr-datagrid, clr-dg-row", usesInheritance: true, ngImport: i0 });
12829
12915
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ActionableOompaLoompa, decorators: [{
12830
12916
  type: Directive,
12831
- args: [{ selector: 'clr-datagrid, clr-dg-row' }]
12917
+ args: [{
12918
+ selector: 'clr-datagrid, clr-dg-row',
12919
+ }]
12832
12920
  }], ctorParameters: function () {
12833
12921
  return [{ type: i0.ChangeDetectorRef }, { type: DatagridWillyWonka, decorators: [{
12834
12922
  type: Optional
@@ -12944,7 +13032,9 @@ ExpandableOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
12944
13032
  ExpandableOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ExpandableOompaLoompa, selector: "clr-datagrid, clr-dg-row", usesInheritance: true, ngImport: i0 });
12945
13033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ExpandableOompaLoompa, decorators: [{
12946
13034
  type: Directive,
12947
- args: [{ selector: 'clr-datagrid, clr-dg-row' }]
13035
+ args: [{
13036
+ selector: 'clr-datagrid, clr-dg-row',
13037
+ }]
12948
13038
  }], ctorParameters: function () {
12949
13039
  return [{ type: i0.ChangeDetectorRef }, { type: DatagridWillyWonka, decorators: [{
12950
13040
  type: Optional
@@ -14401,12 +14491,12 @@ class ClrDatagridCell {
14401
14491
  }
14402
14492
  }
14403
14493
  ClrDatagridCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridCell, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
14404
- ClrDatagridCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridCell, selector: "clr-dg-cell", host: { attributes: { "role": "gridcell" }, properties: { "class.datagrid-cell": "true", "class.datagrid-signpost-trigger": "signpost.length > 0" } }, queries: [{ propertyName: "signpost", predicate: ClrSignpost }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
14494
+ ClrDatagridCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridCell, selector: "clr-dg-cell", host: { attributes: { "role": "gridcell" }, properties: { "class.datagrid-cell": "true", "class.datagrid-signpost-trigger": "signpost.length > 0" } }, queries: [{ propertyName: "signpost", predicate: ClrSignpost }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
14405
14495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridCell, decorators: [{
14406
14496
  type: Component,
14407
14497
  args: [{
14408
14498
  selector: 'clr-dg-cell',
14409
- template: ` <ng-content></ng-content> `,
14499
+ template: `<ng-content></ng-content>`,
14410
14500
  host: {
14411
14501
  '[class.datagrid-cell]': 'true',
14412
14502
  '[class.datagrid-signpost-trigger]': 'signpost.length > 0',
@@ -14549,6 +14639,10 @@ class Selection {
14549
14639
  * Subscriptions to the other providers changes.
14550
14640
  */
14551
14641
  this.subscriptions = [];
14642
+ /**
14643
+ * Shift key state, for use in range selection.
14644
+ */
14645
+ this.shiftPressed = false;
14552
14646
  this.valueCollector = new Subject();
14553
14647
  /**
14554
14648
  * The Observable that lets other classes subscribe to selection changes
@@ -14931,7 +15025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
14931
15025
  */
14932
15026
  let nbRow = 0;
14933
15027
  class ClrDatagridRow {
14934
- constructor(selection, rowActionService, globalExpandable, expand, detailService, displayMode, vcr, renderer, el, commonStrings) {
15028
+ constructor(selection, rowActionService, globalExpandable, expand, detailService, displayMode, vcr, renderer, el, commonStrings, items, document) {
14935
15029
  this.selection = selection;
14936
15030
  this.rowActionService = rowActionService;
14937
15031
  this.globalExpandable = globalExpandable;
@@ -14942,6 +15036,8 @@ class ClrDatagridRow {
14942
15036
  this.renderer = renderer;
14943
15037
  this.el = el;
14944
15038
  this.commonStrings = commonStrings;
15039
+ this.items = items;
15040
+ this.document = document;
14945
15041
  /* reference to the enum so that template can access */
14946
15042
  this.SELECTION_TYPE = SelectionType;
14947
15043
  this.expandAnimationTrigger = false;
@@ -14972,6 +15068,24 @@ class ClrDatagridRow {
14972
15068
  }
14973
15069
  }));
14974
15070
  }
15071
+ /**
15072
+ * The default behavior in Chrome and Firefox for shift-clicking on a label is to perform text-selection.
15073
+ * This prevents our intended range-selection, because this text-selection overrides our shift-click event.
15074
+ * We need to clear the stored selection range when shift-clicking. This will override the mostly unused shift-click
15075
+ * selection browser functionality, which is inconsistently implemented in browsers anyway.
15076
+ */
15077
+ clearRanges(event) {
15078
+ if (event.shiftKey) {
15079
+ this.document.getSelection().removeAllRanges();
15080
+ // Firefox is too persistent about its text-selection behaviour. So we need to add a preventDefault();
15081
+ // We should not try to enforce this on the other browsers, though, because their toggle cycle does not get canceled by
15082
+ // the preventDefault() and they toggle the checkbox second time, effectively retrurning it to not-selected.
15083
+ if (window.navigator.userAgent.indexOf('Firefox') !== -1) {
15084
+ event.preventDefault();
15085
+ this.toggle(true);
15086
+ }
15087
+ }
15088
+ }
14975
15089
  /**
14976
15090
  * Indicates if the row is selected
14977
15091
  */
@@ -14988,6 +15102,12 @@ class ClrDatagridRow {
14988
15102
  this._selected = value;
14989
15103
  }
14990
15104
  else {
15105
+ if (value && this.selection.selectionType === SelectionType.Multi) {
15106
+ this.rangeSelect();
15107
+ }
15108
+ else {
15109
+ this.selection.rangeStart = null;
15110
+ }
14991
15111
  this.selection.setSelected(this.item, value);
14992
15112
  }
14993
15113
  }
@@ -15075,6 +15195,29 @@ class ClrDatagridRow {
15075
15195
  this.expandAnimationTrigger = !this.expandAnimationTrigger;
15076
15196
  }));
15077
15197
  }
15198
+ rangeSelect() {
15199
+ const items = this.items.displayed;
15200
+ if (!items) {
15201
+ return;
15202
+ }
15203
+ const startIx = items.indexOf(this.selection.rangeStart);
15204
+ if (this.selection.rangeStart &&
15205
+ this.selection.current.includes(this.selection.rangeStart) &&
15206
+ this.selection.shiftPressed &&
15207
+ startIx !== -1) {
15208
+ const endIx = items.indexOf(this.item);
15209
+ // Using Set to remove duplicates
15210
+ const newSelection = new Set(this.selection.current.concat(items.slice(Math.min(startIx, endIx), Math.max(startIx, endIx) + 1)));
15211
+ this.selection.clearSelection();
15212
+ this.selection.current.push(...newSelection);
15213
+ }
15214
+ else {
15215
+ // page number has changed or
15216
+ // no Shift was pressed or
15217
+ // rangeStart not yet set
15218
+ this.selection.rangeStart = this.item;
15219
+ }
15220
+ }
15078
15221
  ngOnDestroy() {
15079
15222
  this.subscriptions.forEach((sub) => sub.unsubscribe());
15080
15223
  }
@@ -15086,12 +15229,12 @@ class ClrDatagridRow {
15086
15229
  return this.wrappedInjector.get(WrappedRow, this.vcr).rowView;
15087
15230
  }
15088
15231
  }
15089
- ClrDatagridRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, deps: [{ token: Selection }, { token: RowActionService }, { token: ExpandableRowsCount }, { token: DatagridIfExpandService }, { token: DetailService }, { token: DisplayModeService }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
15232
+ ClrDatagridRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, deps: [{ token: Selection }, { token: RowActionService }, { token: ExpandableRowsCount }, { token: DatagridIfExpandService }, { token: DetailService }, { token: DisplayModeService }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: ClrCommonStringsService }, { token: Items }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
15090
15233
  ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridRow, selector: "clr-dg-row", inputs: { item: ["clrDgItem", "item"], selected: ["clrDgSelected", "selected"], clrDgSelectable: "clrDgSelectable", expanded: ["clrDgExpanded", "expanded"], clrDgDetailOpenLabel: "clrDgDetailOpenLabel", clrDgDetailCloseLabel: "clrDgDetailCloseLabel", clrDgRowAriaLabel: "clrDgRowAriaLabel" }, outputs: { selectedChanged: "clrDgSelectedChange", expandedChange: "clrDgExpandedChange" }, host: { attributes: { "role": "rowgroup" }, properties: { "class.datagrid-row": "true", "class.datagrid-selected": "selected", "attr.aria-owns": "id" } }, providers: [
15091
15234
  DatagridIfExpandService,
15092
15235
  { provide: IfExpandService, useExisting: DatagridIfExpandService },
15093
15236
  { provide: LoadingListener, useExisting: DatagridIfExpandService },
15094
- ], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isRowOpen(item) ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: ClrRadio, selector: "[clrRadio]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
15237
+ ], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\" (mousedown)=\"clearRanges($event)\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isRowOpen(item) ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: ClrRadio, selector: "[clrRadio]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
15095
15238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, decorators: [{
15096
15239
  type: Component,
15097
15240
  args: [{ selector: 'clr-dg-row', host: {
@@ -15103,8 +15246,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15103
15246
  DatagridIfExpandService,
15104
15247
  { provide: IfExpandService, useExisting: DatagridIfExpandService },
15105
15248
  { provide: LoadingListener, useExisting: DatagridIfExpandService },
15106
- ], template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isRowOpen(item) ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n" }]
15107
- }], ctorParameters: function () { return [{ type: Selection }, { type: RowActionService }, { type: ExpandableRowsCount }, { type: DatagridIfExpandService }, { type: DetailService }, { type: DisplayModeService }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: ClrCommonStringsService }]; }, propDecorators: { expandAnimation: [{
15249
+ ], template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\" (mousedown)=\"clearRanges($event)\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"clrDgRowAriaLabel\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isRowOpen(item) ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n" }]
15250
+ }], ctorParameters: function () {
15251
+ return [{ type: Selection }, { type: RowActionService }, { type: ExpandableRowsCount }, { type: DatagridIfExpandService }, { type: DetailService }, { type: DisplayModeService }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: ClrCommonStringsService }, { type: Items }, { type: undefined, decorators: [{
15252
+ type: Inject,
15253
+ args: [DOCUMENT]
15254
+ }] }];
15255
+ }, propDecorators: { expandAnimation: [{
15108
15256
  type: ViewChild,
15109
15257
  args: [ClrExpandableAnimation]
15110
15258
  }], item: [{
@@ -15457,7 +15605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15457
15605
  * The full license information can be found in LICENSE in the root directory of this project.
15458
15606
  */
15459
15607
  class ClrDatagrid {
15460
- constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, el, page, commonStrings, columnsService, keyNavigation) {
15608
+ constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, document, el, page, commonStrings, columnsService, keyNavigation, zone) {
15461
15609
  this.organizer = organizer;
15462
15610
  this.items = items;
15463
15611
  this.expandableRows = expandableRows;
@@ -15467,11 +15615,13 @@ class ClrDatagrid {
15467
15615
  this.displayMode = displayMode;
15468
15616
  this.renderer = renderer;
15469
15617
  this.detailService = detailService;
15618
+ this.document = document;
15470
15619
  this.el = el;
15471
15620
  this.page = page;
15472
15621
  this.commonStrings = commonStrings;
15473
15622
  this.columnsService = columnsService;
15474
15623
  this.keyNavigation = keyNavigation;
15624
+ this.zone = zone;
15475
15625
  /* reference to the enum so that template can access */
15476
15626
  this.SELECTION_TYPE = SelectionType;
15477
15627
  /**
@@ -15656,6 +15806,19 @@ class ClrDatagrid {
15656
15806
  });
15657
15807
  }
15658
15808
  }));
15809
+ // We need to preserve shift state, so it can be used on selection change, regardless of the input event
15810
+ // that triggered the change. This helps us to easily resolve the k/b only case together with the mouse selection case.
15811
+ this.zone.runOutsideAngular(() => {
15812
+ this._subscriptions.push(fromEvent(this.document.body, 'keydown').subscribe((event) => {
15813
+ if (event.key === 'Shift') {
15814
+ this.selection.shiftPressed = true;
15815
+ }
15816
+ }), fromEvent(this.document.body, 'keyup').subscribe((event) => {
15817
+ if (event.key === 'Shift') {
15818
+ this.selection.shiftPressed = false;
15819
+ }
15820
+ }));
15821
+ });
15659
15822
  }
15660
15823
  ngOnDestroy() {
15661
15824
  this._subscriptions.forEach((sub) => sub.unsubscribe());
@@ -15664,7 +15827,7 @@ class ClrDatagrid {
15664
15827
  this.organizer.resize();
15665
15828
  }
15666
15829
  }
15667
- ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: UNIQUE_ID }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token: ColumnsService }, { token: KeyNavigationGridController }], target: i0.ɵɵFactoryTarget.Component });
15830
+ ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: UNIQUE_ID }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token: ColumnsService }, { token: KeyNavigationGridController }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
15668
15831
  ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagrid, selector: "clr-datagrid", inputs: { loading: ["clrDgLoading", "loading"], selected: ["clrDgSelected", "selected"], singleSelected: ["clrDgSingleSelected", "singleSelected"], clrDgSingleSelectionAriaLabel: "clrDgSingleSelectionAriaLabel", clrDgSingleActionableAriaLabel: "clrDgSingleActionableAriaLabel", clrDetailExpandableAriaLabel: "clrDetailExpandableAriaLabel", clrDgDisablePageFocus: "clrDgDisablePageFocus", clrDgPreserveSelection: "clrDgPreserveSelection", rowSelectionMode: ["clrDgRowSelection", "rowSelectionMode"] }, outputs: { refresh: "clrDgRefresh", selectedChanged: "clrDgSelectedChange", singleSelectedChanged: "clrDgSingleSelectedChange" }, host: { properties: { "class.datagrid-host": "true", "class.datagrid-detail-open": "detailService.isOpen" } }, providers: [
15669
15832
  Selection,
15670
15833
  Sort,
@@ -15710,7 +15873,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15710
15873
  return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
15711
15874
  type: Inject,
15712
15875
  args: [UNIQUE_ID]
15713
- }] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: ColumnsService }, { type: KeyNavigationGridController }];
15876
+ }] }, { type: undefined, decorators: [{
15877
+ type: Inject,
15878
+ args: [DOCUMENT]
15879
+ }] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: ColumnsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }];
15714
15880
  }, propDecorators: { loading: [{
15715
15881
  type: Input,
15716
15882
  args: ['clrDgLoading']
@@ -15782,16 +15948,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15782
15948
  class ClrDatagridActionBar {
15783
15949
  }
15784
15950
  ClrDatagridActionBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
15785
- ClrDatagridActionBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridActionBar, selector: "clr-dg-action-bar", host: { properties: { "class.datagrid-action-bar": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
15951
+ ClrDatagridActionBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridActionBar, selector: "clr-dg-action-bar", host: { properties: { "class.datagrid-action-bar": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
15786
15952
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionBar, decorators: [{
15787
15953
  type: Component,
15788
15954
  args: [{
15789
15955
  selector: 'clr-dg-action-bar',
15790
- template: ` <ng-content></ng-content> `,
15956
+ template: `<ng-content></ng-content>`,
15791
15957
  host: { '[class.datagrid-action-bar]': 'true' },
15792
15958
  }]
15793
15959
  }] });
15794
15960
 
15961
+ /*
15962
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
15963
+ * This software is released under MIT license.
15964
+ * The full license information can be found in LICENSE in the root directory of this project.
15965
+ */
15966
+
15795
15967
  /*
15796
15968
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
15797
15969
  * This software is released under MIT license.
@@ -15819,7 +15991,7 @@ class ClrDatagridActionOverflow {
15819
15991
  this.subscriptions.push(this.smartToggleService.openChange.subscribe(openState => {
15820
15992
  this.open = openState;
15821
15993
  if (openState) {
15822
- this.focusFirstButton();
15994
+ this.initializeFocus();
15823
15995
  }
15824
15996
  }));
15825
15997
  this.popoverId = 'clr-action-menu' + clrDgActionId++;
@@ -15831,13 +16003,15 @@ class ClrDatagridActionOverflow {
15831
16003
  closeOverflowContent(event) {
15832
16004
  this.smartToggleService.toggleWithEvent(event);
15833
16005
  }
15834
- focusFirstButton() {
16006
+ initializeFocus() {
15835
16007
  if (isPlatformBrowser(this.platformId)) {
15836
16008
  this.zone.runOutsideAngular(() => {
15837
16009
  setTimeout(() => {
15838
- const firstButton = document.querySelector('button.action-item');
15839
- if (firstButton) {
15840
- firstButton.focus();
16010
+ const buttons = Array.from(document.querySelectorAll('button.action-item'));
16011
+ if (buttons.length) {
16012
+ this.keyFocus.current = 0;
16013
+ this.keyFocus.focusableItems = buttons;
16014
+ this.keyFocus.focusCurrent();
15841
16015
  }
15842
16016
  });
15843
16017
  });
@@ -15857,7 +16031,7 @@ class ClrDatagridActionOverflow {
15857
16031
  }
15858
16032
  }
15859
16033
  ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: ClrPopoverToggleService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
15860
- ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, providers: [UNIQUE_ID_PROVIDER, ClrPopoverToggleService, ClrPopoverEventsService, ClrPopoverPositionService], ngImport: i0, template: `
16034
+ ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, providers: [UNIQUE_ID_PROVIDER, ClrPopoverToggleService, ClrPopoverEventsService, ClrPopoverPositionService], viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true }], ngImport: i0, template: `
15861
16035
  <button
15862
16036
  class="datagrid-action-toggle"
15863
16037
  type="button"
@@ -15878,13 +16052,14 @@ ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
15878
16052
  [id]="popoverId"
15879
16053
  [attr.aria-hidden]="!open"
15880
16054
  [attr.id]="popoverId"
16055
+ clrKeyFocus
15881
16056
  clrFocusTrap
15882
16057
  (click)="closeOverflowContent($event)"
15883
16058
  *clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
15884
16059
  >
15885
16060
  <ng-content></ng-content>
15886
16061
  </div>
15887
- `, isInline: true, directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
16062
+ `, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
15888
16063
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionOverflow, decorators: [{
15889
16064
  type: Component,
15890
16065
  args: [{
@@ -15911,6 +16086,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15911
16086
  [id]="popoverId"
15912
16087
  [attr.aria-hidden]="!open"
15913
16088
  [attr.id]="popoverId"
16089
+ clrKeyFocus
15914
16090
  clrFocusTrap
15915
16091
  (click)="closeOverflowContent($event)"
15916
16092
  *clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
@@ -15927,7 +16103,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15927
16103
  type: Inject,
15928
16104
  args: [UNIQUE_ID]
15929
16105
  }] }];
15930
- }, propDecorators: { open: [{
16106
+ }, propDecorators: { keyFocus: [{
16107
+ type: ViewChild,
16108
+ args: [ClrKeyFocus]
16109
+ }], open: [{
15931
16110
  type: Input,
15932
16111
  args: ['clrDgActionOverflowOpen']
15933
16112
  }], openChange: [{
@@ -16430,7 +16609,9 @@ DatagridDetailRegisterer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
16430
16609
  DatagridDetailRegisterer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridDetailRegisterer, selector: "[clrIfExpanded]", ngImport: i0 });
16431
16610
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridDetailRegisterer, decorators: [{
16432
16611
  type: Directive,
16433
- args: [{ selector: '[clrIfExpanded]' }]
16612
+ args: [{
16613
+ selector: '[clrIfExpanded]',
16614
+ }]
16434
16615
  }], ctorParameters: function () {
16435
16616
  return [{ type: ExpandableRowsCount, decorators: [{
16436
16617
  type: Optional
@@ -16864,224 +17045,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
16864
17045
  * The full license information can be found in LICENSE in the root directory of this project.
16865
17046
  */
16866
17047
 
16867
- /*
16868
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16869
- * This software is released under MIT license.
16870
- * The full license information can be found in LICENSE in the root directory of this project.
16871
- */
16872
- const FOCUSABLE_ELEMENT_SELECTORS = new InjectionToken('FocusableElements');
16873
- const FOCUSABLE_ELEMENT_SELECTORS_PROVIDER = {
16874
- provide: FOCUSABLE_ELEMENT_SELECTORS,
16875
- useValue: [
16876
- 'a[href]',
16877
- 'area[href]',
16878
- 'input:not([disabled])',
16879
- 'button:not([disabled])',
16880
- 'select:not([disabled])',
16881
- 'textarea:not([disabled])',
16882
- 'iframe',
16883
- 'object',
16884
- 'embed',
16885
- '*[tabindex]',
16886
- '*[contenteditable=true]',
16887
- '[role=button]:not([disabled])',
16888
- ],
16889
- };
16890
-
16891
- /*
16892
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16893
- * This software is released under MIT license.
16894
- * The full license information can be found in LICENSE in the root directory of this project.
16895
- */
16896
- const CLR_LIST_KEY_NAVIGATION_CONFIG = new InjectionToken('ClrListKeyNavigationConfig');
16897
- const CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER = {
16898
- provide: CLR_LIST_KEY_NAVIGATION_CONFIG,
16899
- useValue: {
16900
- keyListItems: 'keyListItems',
16901
- layout: 'vertical',
16902
- manageFocus: true,
16903
- manageTabindex: true,
16904
- loop: false,
16905
- dir: null,
16906
- },
16907
- };
16908
-
16909
- /*
16910
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16911
- * This software is released under MIT license.
16912
- * The full license information can be found in LICENSE in the root directory of this project.
16913
- */
16914
- function getNextKeyListItem(item, items, config) {
16915
- const { code, layout, loop, dir } = config;
16916
- let i = items.indexOf(item);
16917
- const previous = i;
16918
- const inlineStart = dir === 'rtl' ? KeyNavigationCode.ArrowRight : KeyNavigationCode.ArrowLeft;
16919
- const inlineEnd = dir === 'rtl' ? KeyNavigationCode.ArrowLeft : KeyNavigationCode.ArrowRight;
16920
- const numOfItems = items.length - 1;
16921
- if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i !== 0) {
16922
- i = i - 1;
16923
- }
16924
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i === 0 && loop) {
16925
- i = numOfItems;
16926
- }
16927
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i < numOfItems) {
16928
- i = i + 1;
16929
- }
16930
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i === numOfItems && loop) {
16931
- i = 0;
16932
- }
16933
- else if (layout !== 'vertical' && code === inlineStart && i !== 0) {
16934
- i = i - 1;
16935
- }
16936
- else if (layout !== 'vertical' && code === inlineEnd && i < numOfItems) {
16937
- i = i + 1;
16938
- }
16939
- else if (code === KeyNavigationCode.End) {
16940
- i = numOfItems;
16941
- }
16942
- else if (code === KeyNavigationCode.Home) {
16943
- i = 0;
16944
- }
16945
- else if (code === KeyNavigationCode.PageUp) {
16946
- i = i - 4 > 0 ? i - 4 : 0;
16947
- }
16948
- else if (code === KeyNavigationCode.PageDown) {
16949
- i = i + 4 < numOfItems ? i + 4 : numOfItems;
16950
- }
16951
- return { next: i, previous };
16952
- }
16953
-
16954
- /*
16955
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16956
- * This software is released under MIT license.
16957
- * The full license information can be found in LICENSE in the root directory of this project.
16958
- */
16959
- class ClrKeyNavigationList {
16960
- constructor(host, defaultConfig, focusableElementSelectors) {
16961
- this.host = host;
16962
- this.defaultConfig = defaultConfig;
16963
- this.focusableElementSelectors = focusableElementSelectors;
16964
- this.config = Object.assign(Object.assign({}, this.defaultConfig), { dir: this.getClosestDirAttribute() });
16965
- }
16966
- set configuration(config) {
16967
- this.config = Object.assign(Object.assign(Object.assign({}, this.defaultConfig), { dir: this.getClosestDirAttribute() }), config);
16968
- }
16969
- ngAfterViewInit() {
16970
- this.initializeTabIndex();
16971
- }
16972
- onClick(e) {
16973
- this.clickItem(e);
16974
- }
16975
- onKeyDown(e) {
16976
- this.focusItem(e);
16977
- }
16978
- initializeTabIndex() {
16979
- if (this.config.manageFocus && this.config.manageTabindex) {
16980
- initializeKeyListItems(this.getListItems());
16981
- }
16982
- }
16983
- clickItem(e) {
16984
- const activeItem = this.getActiveItem(e);
16985
- if (activeItem) {
16986
- this.setActiveItem(e, activeItem);
16987
- }
16988
- }
16989
- focusItem(e) {
16990
- if (validKeyNavigationCode(e)) {
16991
- const activeItem = this.getActiveItem(e);
16992
- if (activeItem) {
16993
- const listItems = this.getListItems();
16994
- const { next, previous } = getNextKeyListItem(activeItem, Array.from(listItems), Object.assign(Object.assign({}, this.config), { dir: this.getClosestDirAttribute(), code: e.code }));
16995
- if (next !== previous) {
16996
- this.setActiveItem(e, listItems[next], listItems[previous]);
16997
- }
16998
- }
16999
- }
17000
- }
17001
- getActiveItem(e) {
17002
- const listItems = this.getListItems();
17003
- return Array.from(listItems).find(c => { var _a; return (_a = c === e.target.closest(listItems[0].tagName.toLocaleLowerCase())) !== null && _a !== void 0 ? _a : c === e.target; });
17004
- }
17005
- setActiveItem(e, activeItem, previousItem) {
17006
- var _a;
17007
- if (this.config.manageFocus) {
17008
- if (this.config.manageTabindex) {
17009
- setActiveKeyListItem(this.getListItems(), activeItem);
17010
- }
17011
- const items = getFlattenedFocusableItems(activeItem);
17012
- const item = (_a = items[0]) !== null && _a !== void 0 ? _a : activeItem;
17013
- focusElement(item);
17014
- e.preventDefault();
17015
- }
17016
- activeItem.dispatchEvent(new CustomEvent('cdsKeyChange', {
17017
- bubbles: true,
17018
- detail: {
17019
- activeItem,
17020
- previousItem,
17021
- code: e.code,
17022
- metaKey: e.ctrlKey || e.metaKey,
17023
- keyListItems: this.config.keyListItems,
17024
- },
17025
- }));
17026
- }
17027
- getListItems() {
17028
- return this.host.nativeElement.querySelectorAll(this.focusableElementSelectors.join(','));
17029
- }
17030
- getClosestDirAttribute() {
17031
- const el = this.host.nativeElement.closest('[dir]');
17032
- return el ? el.getAttribute('dir') : null;
17033
- }
17034
- }
17035
- ClrKeyNavigationList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationList, deps: [{ token: i0.ElementRef }, { token: CLR_LIST_KEY_NAVIGATION_CONFIG }, { token: FOCUSABLE_ELEMENT_SELECTORS }], target: i0.ɵɵFactoryTarget.Directive });
17036
- ClrKeyNavigationList.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrKeyNavigationList, selector: "[clrKeyNavigationList]", inputs: { configuration: "configuration" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 });
17037
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationList, decorators: [{
17038
- type: Directive,
17039
- args: [{
17040
- selector: '[clrKeyNavigationList]',
17041
- }]
17042
- }], ctorParameters: function () {
17043
- return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
17044
- type: Inject,
17045
- args: [CLR_LIST_KEY_NAVIGATION_CONFIG]
17046
- }] }, { type: undefined, decorators: [{
17047
- type: Inject,
17048
- args: [FOCUSABLE_ELEMENT_SELECTORS]
17049
- }] }];
17050
- }, propDecorators: { configuration: [{
17051
- type: Input
17052
- }], onClick: [{
17053
- type: HostListener,
17054
- args: ['click', ['$event']]
17055
- }], onKeyDown: [{
17056
- type: HostListener,
17057
- args: ['keydown', ['$event']]
17058
- }] } });
17059
-
17060
- /*
17061
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
17062
- * This software is released under MIT license.
17063
- * The full license information can be found in LICENSE in the root directory of this project.
17064
- */
17065
- class ClrKeyNavigationListModule {
17066
- }
17067
- ClrKeyNavigationListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17068
- ClrKeyNavigationListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, declarations: [ClrKeyNavigationList], exports: [ClrKeyNavigationList] });
17069
- ClrKeyNavigationListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, providers: [CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER, FOCUSABLE_ELEMENT_SELECTORS_PROVIDER] });
17070
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, decorators: [{
17071
- type: NgModule,
17072
- args: [{
17073
- declarations: [ClrKeyNavigationList],
17074
- exports: [ClrKeyNavigationList],
17075
- providers: [CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER, FOCUSABLE_ELEMENT_SELECTORS_PROVIDER],
17076
- }]
17077
- }] });
17078
-
17079
- /*
17080
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
17081
- * This software is released under MIT license.
17082
- * The full license information can be found in LICENSE in the root directory of this project.
17083
- */
17084
-
17085
17048
  /*
17086
17049
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
17087
17050
  * This software is released under MIT license.
@@ -17255,7 +17218,9 @@ ClrDatagridHideableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
17255
17218
  ClrDatagridHideableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridHideableColumn, selector: "[clrDgHideableColumn]", inputs: { clrDgHideableColumn: "clrDgHideableColumn", clrDgHidden: "clrDgHidden" }, outputs: { hiddenChange: "clrDgHiddenChange" }, ngImport: i0 });
17256
17219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridHideableColumn, decorators: [{
17257
17220
  type: Directive,
17258
- args: [{ selector: '[clrDgHideableColumn]' }]
17221
+ args: [{
17222
+ selector: '[clrDgHideableColumn]',
17223
+ }]
17259
17224
  }], ctorParameters: function () {
17260
17225
  return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
17261
17226
  type: Optional
@@ -17913,7 +17878,9 @@ DatagridCellRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
17913
17878
  DatagridCellRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridCellRenderer, selector: "clr-dg-cell", ngImport: i0 });
17914
17879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridCellRenderer, decorators: [{
17915
17880
  type: Directive,
17916
- args: [{ selector: 'clr-dg-cell' }]
17881
+ args: [{
17882
+ selector: 'clr-dg-cell',
17883
+ }]
17917
17884
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }]; } });
17918
17885
 
17919
17886
  /*
@@ -18027,7 +17994,10 @@ DatagridHeaderRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
18027
17994
  DatagridHeaderRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridHeaderRenderer, selector: "clr-dg-column", outputs: { resizeEmitter: "clrDgColumnResize" }, providers: [ColumnResizerService, COLUMN_STATE_PROVIDER], ngImport: i0 });
18028
17995
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridHeaderRenderer, decorators: [{
18029
17996
  type: Directive,
18030
- args: [{ selector: 'clr-dg-column', providers: [ColumnResizerService, COLUMN_STATE_PROVIDER] }]
17997
+ args: [{
17998
+ selector: 'clr-dg-column',
17999
+ providers: [ColumnResizerService, COLUMN_STATE_PROVIDER],
18000
+ }]
18031
18001
  }], ctorParameters: function () {
18032
18002
  return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
18033
18003
  type: Inject,
@@ -18134,7 +18104,9 @@ DatagridRowRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
18134
18104
  DatagridRowRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridRowRenderer, selector: "clr-dg-row, clr-dg-row-detail", queries: [{ propertyName: "cells", predicate: DatagridCellRenderer }], ngImport: i0 });
18135
18105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridRowRenderer, decorators: [{
18136
18106
  type: Directive,
18137
- args: [{ selector: 'clr-dg-row, clr-dg-row-detail' }]
18107
+ args: [{
18108
+ selector: 'clr-dg-row, clr-dg-row-detail',
18109
+ }]
18138
18110
  }], ctorParameters: function () { return [{ type: ColumnsService }]; }, propDecorators: { cells: [{
18139
18111
  type: ContentChildren,
18140
18112
  args: [DatagridCellRenderer]
@@ -18427,6 +18399,7 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
18427
18399
  ClrDragAndDropModule,
18428
18400
  ClrSpinnerModule,
18429
18401
  ClrPopoverModuleNext,
18402
+ ClrKeyFocusModule,
18430
18403
  ClrFocusTrapModule,
18431
18404
  ClrFocusOnViewInitModule], exports: [
18432
18405
  // Core
@@ -18482,6 +18455,7 @@ ClrDatagridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
18482
18455
  ClrDragAndDropModule,
18483
18456
  ClrSpinnerModule,
18484
18457
  ClrPopoverModuleNext,
18458
+ ClrKeyFocusModule,
18485
18459
  ClrFocusTrapModule,
18486
18460
  ClrFocusOnViewInitModule,
18487
18461
  ]] });
@@ -18500,12 +18474,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
18500
18474
  ClrDragAndDropModule,
18501
18475
  ClrSpinnerModule,
18502
18476
  ClrPopoverModuleNext,
18477
+ ClrKeyFocusModule,
18503
18478
  ClrFocusTrapModule,
18504
18479
  ClrFocusOnViewInitModule,
18505
18480
  ],
18506
18481
  declarations: [CLR_DATAGRID_DIRECTIVES],
18507
18482
  exports: [CLR_DATAGRID_DIRECTIVES],
18508
- entryComponents: [WrappedCell, WrappedColumn, WrappedRow],
18509
18483
  }]
18510
18484
  }], ctorParameters: function () { return []; } });
18511
18485
 
@@ -18520,7 +18494,9 @@ ClrStackViewCustomTags.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
18520
18494
  ClrStackViewCustomTags.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrStackViewCustomTags, selector: "clr-stack-content", ngImport: i0 });
18521
18495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackViewCustomTags, decorators: [{
18522
18496
  type: Directive,
18523
- args: [{ selector: 'clr-stack-content' }]
18497
+ args: [{
18498
+ selector: 'clr-stack-content',
18499
+ }]
18524
18500
  }] });
18525
18501
  class ClrStackViewLabel {
18526
18502
  constructor(uniqueId) {
@@ -19445,7 +19421,9 @@ ClrRecursiveForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
19445
19421
  ClrRecursiveForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrRecursiveForOf, selector: "[clrRecursiveFor][clrRecursiveForOf]", inputs: { nodes: ["clrRecursiveForOf", "nodes"], getChildren: ["clrRecursiveForGetChildren", "getChildren"] }, usesOnChanges: true, ngImport: i0 });
19446
19422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRecursiveForOf, decorators: [{
19447
19423
  type: Directive,
19448
- args: [{ selector: '[clrRecursiveFor][clrRecursiveForOf]' }]
19424
+ args: [{
19425
+ selector: '[clrRecursiveFor][clrRecursiveForOf]',
19426
+ }]
19449
19427
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: TreeFeaturesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { nodes: [{
19450
19428
  type: Input,
19451
19429
  args: ['clrRecursiveForOf']
@@ -19940,7 +19918,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
19940
19918
  TREE_FEATURES_PROVIDER,
19941
19919
  IfExpandService,
19942
19920
  { provide: LoadingListener, useExisting: IfExpandService },
19943
- ], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
19921
+ ], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\">selected</span>\n <span *ngIf=\"!ariaSelected\">unselected</span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
19944
19922
  trigger('toggleChildrenAnim', [
19945
19923
  transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
19946
19924
  transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
@@ -19964,7 +19942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
19964
19942
  ]),
19965
19943
  ], host: {
19966
19944
  '[class.clr-tree-node]': 'true',
19967
- }, 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
19945
+ }, 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\">selected</span>\n <span *ngIf=\"!ariaSelected\">unselected</span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
19968
19946
  }], ctorParameters: function () {
19969
19947
  return [{ type: undefined, decorators: [{
19970
19948
  type: Inject,
@@ -20117,7 +20095,9 @@ ClrDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
20117
20095
  ClrDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDataModule, imports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule] });
20118
20096
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDataModule, decorators: [{
20119
20097
  type: NgModule,
20120
- args: [{ exports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule] }]
20098
+ args: [{
20099
+ exports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule],
20100
+ }]
20121
20101
  }] });
20122
20102
 
20123
20103
  /*
@@ -21046,12 +21026,12 @@ class ClrDropdownMenu extends AbstractPopover {
21046
21026
  }
21047
21027
  }
21048
21028
  ClrDropdownMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDropdownMenu, deps: [{ token: i0.Injector }, { token: POPOVER_HOST_ANCHOR, optional: true }, { token: ClrDropdownMenu, optional: true, skipSelf: true }, { token: DropdownFocusHandler }], target: i0.ɵɵFactoryTarget.Component });
21049
- ClrDropdownMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: { position: ["clrPosition", "position"] }, host: { properties: { "class.dropdown-menu": "true", "attr.role": "\"menu\"" } }, queries: [{ propertyName: "items", predicate: FocusableItem }], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
21029
+ ClrDropdownMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: { position: ["clrPosition", "position"] }, host: { properties: { "class.dropdown-menu": "true", "attr.role": "\"menu\"" } }, queries: [{ propertyName: "items", predicate: FocusableItem }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
21050
21030
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDropdownMenu, decorators: [{
21051
21031
  type: Component,
21052
21032
  args: [{
21053
21033
  selector: 'clr-dropdown-menu',
21054
- template: ` <ng-content></ng-content> `,
21034
+ template: `<ng-content></ng-content>`,
21055
21035
  host: {
21056
21036
  '[class.dropdown-menu]': 'true',
21057
21037
  '[attr.role]': '"menu"',
@@ -21617,7 +21597,7 @@ class ClrAlerts {
21617
21597
  }
21618
21598
  }
21619
21599
  ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
21620
- ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertIndexChange: "clrCurrentAlertIndexChange", currentAlertChange: "clrCurrentAlertChange" }, host: { properties: { "class.alerts": "true", "class.alert-danger": "this.currentAlertType == 'danger'", "class.alert-info": "this.currentAlertType == 'info'", "class.alert-success": "this.currentAlertType == 'success'", "class.alert-warning": "this.currentAlertType == 'warning'" } }, providers: [MultiAlertService], queries: [{ propertyName: "allAlerts", predicate: ClrAlert }], ngImport: i0, 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"> </clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
21600
+ ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertIndexChange: "clrCurrentAlertIndexChange", currentAlertChange: "clrCurrentAlertChange" }, host: { properties: { "class.alerts": "true", "class.alert-danger": "this.currentAlertType == 'danger'", "class.alert-info": "this.currentAlertType == 'info'", "class.alert-success": "this.currentAlertType == 'success'", "class.alert-warning": "this.currentAlertType == 'warning'" } }, providers: [MultiAlertService], queries: [{ propertyName: "allAlerts", predicate: ClrAlert }], ngImport: i0, 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"></clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
21621
21601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, decorators: [{
21622
21602
  type: Component,
21623
21603
  args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
@@ -21626,7 +21606,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
21626
21606
  '[class.alert-info]': "this.currentAlertType == 'info'",
21627
21607
  '[class.alert-success]': "this.currentAlertType == 'success'",
21628
21608
  '[class.alert-warning]': "this.currentAlertType == 'warning'",
21629
- }, styles: [':host { display: block }'], 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"> </clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n" }]
21609
+ }, styles: [':host { display: block }'], 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"></clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n" }]
21630
21610
  }], ctorParameters: function () { return [{ type: MultiAlertService }]; }, propDecorators: { allAlerts: [{
21631
21611
  type: ContentChildren,
21632
21612
  args: [ClrAlert]
@@ -21679,7 +21659,9 @@ ClrEmphasisModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
21679
21659
  ClrEmphasisModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrEmphasisModule, imports: [ClrAlertModule] });
21680
21660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrEmphasisModule, decorators: [{
21681
21661
  type: NgModule,
21682
- args: [{ exports: [ClrAlertModule] }]
21662
+ args: [{
21663
+ exports: [ClrAlertModule],
21664
+ }]
21683
21665
  }] });
21684
21666
 
21685
21667
  /*
@@ -21826,7 +21808,10 @@ ClrMainContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
21826
21808
  ClrMainContainer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrMainContainer, selector: "clr-main-container", host: { properties: { "class.main-container": "true" } }, ngImport: i0 });
21827
21809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrMainContainer, decorators: [{
21828
21810
  type: Directive,
21829
- args: [{ selector: 'clr-main-container', host: { '[class.main-container]': 'true' } }]
21811
+ args: [{
21812
+ selector: 'clr-main-container',
21813
+ host: { '[class.main-container]': 'true' },
21814
+ }]
21830
21815
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ResponsiveNavigationService }]; } });
21831
21816
 
21832
21817
  /*
@@ -21871,7 +21856,10 @@ ClrAriaCurrentLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
21871
21856
  ClrAriaCurrentLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrAriaCurrentLink, selector: "[clrAriaCurrentLink]", host: { properties: { "attr.aria-current": "ariaCurrent" } }, ngImport: i0 });
21872
21857
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAriaCurrentLink, decorators: [{
21873
21858
  type: Directive,
21874
- args: [{ selector: '[clrAriaCurrentLink]', host: { '[attr.aria-current]': 'ariaCurrent' } }]
21859
+ args: [{
21860
+ selector: '[clrAriaCurrentLink]',
21861
+ host: { '[attr.aria-current]': 'ariaCurrent' },
21862
+ }]
21875
21863
  }], ctorParameters: function () { return [{ type: i1$1.RouterLinkActive }]; } });
21876
21864
 
21877
21865
  /*
@@ -21885,7 +21873,9 @@ MainContainerWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
21885
21873
  MainContainerWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: MainContainerWillyWonka, selector: "clr-main-container", usesInheritance: true, ngImport: i0 });
21886
21874
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MainContainerWillyWonka, decorators: [{
21887
21875
  type: Directive,
21888
- args: [{ selector: 'clr-main-container' }]
21876
+ args: [{
21877
+ selector: 'clr-main-container',
21878
+ }]
21889
21879
  }] });
21890
21880
 
21891
21881
  /*
@@ -21911,7 +21901,9 @@ NavDetectionOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
21911
21901
  NavDetectionOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: NavDetectionOompaLoompa, selector: "clr-header", usesInheritance: true, ngImport: i0 });
21912
21902
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NavDetectionOompaLoompa, decorators: [{
21913
21903
  type: Directive,
21914
- args: [{ selector: 'clr-header' }]
21904
+ args: [{
21905
+ selector: 'clr-header',
21906
+ }]
21915
21907
  }], ctorParameters: function () {
21916
21908
  return [{ type: i0.ChangeDetectorRef }, { type: MainContainerWillyWonka, decorators: [{
21917
21909
  type: Optional
@@ -22354,7 +22346,9 @@ ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
22354
22346
  ClrNavLevel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrNavLevel, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"], closeButtonAriaLabel: ["closeAriaLabel", "closeButtonAriaLabel"] }, host: { listeners: { "window:resize": "onResize($event)", "click": "onMouseClick($event.target)" } }, usesInheritance: true, ngImport: i0 });
22355
22347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, decorators: [{
22356
22348
  type: Directive,
22357
- args: [{ selector: '[clr-nav-level]' }]
22349
+ args: [{
22350
+ selector: '[clr-nav-level]',
22351
+ }]
22358
22352
  }], ctorParameters: function () {
22359
22353
  return [{ type: undefined, decorators: [{
22360
22354
  type: Inject,
@@ -22457,7 +22451,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
22457
22451
  args: [{
22458
22452
  imports: [CommonModule],
22459
22453
  declarations: [TEMPLATE_REF_DIRECTIVES],
22460
- entryComponents: [TEMPLATE_REF_DIRECTIVES],
22461
22454
  exports: [TEMPLATE_REF_DIRECTIVES],
22462
22455
  }]
22463
22456
  }] });
@@ -22473,7 +22466,9 @@ TabsWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
22473
22466
  TabsWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: TabsWillyWonka, selector: "clr-tabs", usesInheritance: true, ngImport: i0 });
22474
22467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TabsWillyWonka, decorators: [{
22475
22468
  type: Directive,
22476
- args: [{ selector: 'clr-tabs' }]
22469
+ args: [{
22470
+ selector: 'clr-tabs',
22471
+ }]
22477
22472
  }] });
22478
22473
 
22479
22474
  /*
@@ -22498,7 +22493,9 @@ ActiveOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
22498
22493
  ActiveOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ActiveOompaLoompa, selector: "[clrTabLink], clr-tab-content", usesInheritance: true, ngImport: i0 });
22499
22494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ActiveOompaLoompa, decorators: [{
22500
22495
  type: Directive,
22501
- args: [{ selector: '[clrTabLink], clr-tab-content' }]
22496
+ args: [{
22497
+ selector: '[clrTabLink], clr-tab-content',
22498
+ }]
22502
22499
  }], ctorParameters: function () {
22503
22500
  return [{ type: i0.ChangeDetectorRef }, { type: TabsWillyWonka, decorators: [{
22504
22501
  type: Optional
@@ -22793,12 +22790,12 @@ class ClrTab {
22793
22790
  }
22794
22791
  }
22795
22792
  ClrTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTab, deps: [{ token: IfActiveService }, { token: IF_ACTIVE_ID }, { token: TabsService }], target: i0.ɵɵFactoryTarget.Component });
22796
- ClrTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTab, selector: "clr-tab", providers: [IF_ACTIVE_ID_PROVIDER, AriaService], queries: [{ propertyName: "tabLink", first: true, predicate: ClrTabLink, descendants: true, static: true }, { propertyName: "tabContent", first: true, predicate: ClrTabContent, descendants: true, static: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
22793
+ ClrTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTab, selector: "clr-tab", providers: [IF_ACTIVE_ID_PROVIDER, AriaService], queries: [{ propertyName: "tabLink", first: true, predicate: ClrTabLink, descendants: true, static: true }, { propertyName: "tabContent", first: true, predicate: ClrTabContent, descendants: true, static: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
22797
22794
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTab, decorators: [{
22798
22795
  type: Component,
22799
22796
  args: [{
22800
22797
  selector: 'clr-tab',
22801
- template: ` <ng-content></ng-content> `,
22798
+ template: `<ng-content></ng-content>`,
22802
22799
  providers: [IF_ACTIVE_ID_PROVIDER, AriaService],
22803
22800
  }]
22804
22801
  }], ctorParameters: function () {
@@ -22822,12 +22819,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
22822
22819
  class ClrTabOverflowContent {
22823
22820
  }
22824
22821
  ClrTabOverflowContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22825
- ClrTabOverflowContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTabOverflowContent, selector: "clr-tab-overflow-content", host: { properties: { "class.dropdown-menu": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
22822
+ ClrTabOverflowContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTabOverflowContent, selector: "clr-tab-overflow-content", host: { properties: { "class.dropdown-menu": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
22826
22823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabOverflowContent, decorators: [{
22827
22824
  type: Component,
22828
22825
  args: [{
22829
22826
  selector: 'clr-tab-overflow-content',
22830
- template: ` <ng-content></ng-content> `,
22827
+ template: `<ng-content></ng-content>`,
22831
22828
  host: {
22832
22829
  '[class.dropdown-menu]': 'true',
22833
22830
  },
@@ -23028,8 +23025,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
23028
23025
  <ng-container
23029
23026
  *ngIf="link.tabsId === tabsId && link.inOverflow"
23030
23027
  [ngTemplateOutlet]="link.templateRefContainer.template"
23031
- >
23032
- </ng-container>
23028
+ ></ng-container>
23033
23029
  </ng-container>
23034
23030
  </clr-tab-overflow-content>
23035
23031
  </div>
@@ -23093,8 +23089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
23093
23089
  <ng-container
23094
23090
  *ngIf="link.tabsId === tabsId && link.inOverflow"
23095
23091
  [ngTemplateOutlet]="link.templateRefContainer.template"
23096
- >
23097
- </ng-container>
23092
+ ></ng-container>
23098
23093
  </ng-container>
23099
23094
  </clr-tab-overflow-content>
23100
23095
  </div>
@@ -23485,7 +23480,7 @@ class ClrVerticalNavGroup {
23485
23480
  }
23486
23481
  }
23487
23482
  ClrVerticalNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroup, deps: [{ token: IfExpandService }, { token: VerticalNavGroupRegistrationService }, { token: VerticalNavGroupService }, { token: VerticalNavService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
23488
- ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { groupLabel: ["clrVerticalNavGroupLabel", "groupLabel"], userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, 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 class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n", directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
23483
+ ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { groupLabel: ["clrVerticalNavGroupLabel", "groupLabel"], userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, 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 class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n", directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
23489
23484
  trigger('clrExpand', [
23490
23485
  state(EXPANDED_STATE, style({ height: '*' })),
23491
23486
  state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
@@ -23500,7 +23495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
23500
23495
  state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
23501
23496
  transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
23502
23497
  ]),
23503
- ], host: { class: 'nav-group' }, 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 class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n" }]
23498
+ ], host: { class: 'nav-group' }, 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 class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n" }]
23504
23499
  }], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
23505
23500
  type: HostBinding,
23506
23501
  args: ['class.is-expanded']
@@ -23523,12 +23518,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
23523
23518
  class ClrVerticalNavGroupChildren {
23524
23519
  }
23525
23520
  ClrVerticalNavGroupChildren.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroupChildren, deps: [], target: i0.ɵɵFactoryTarget.Component });
23526
- ClrVerticalNavGroupChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroupChildren, selector: "clr-vertical-nav-group-children", ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
23521
+ ClrVerticalNavGroupChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroupChildren, selector: "clr-vertical-nav-group-children", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
23527
23522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroupChildren, decorators: [{
23528
23523
  type: Component,
23529
23524
  args: [{
23530
23525
  selector: 'clr-vertical-nav-group-children',
23531
- template: ` <ng-content></ng-content> `,
23526
+ template: `<ng-content></ng-content>`,
23532
23527
  }]
23533
23528
  }] });
23534
23529
 
@@ -23550,7 +23545,10 @@ ClrVerticalNavIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
23550
23545
  ClrVerticalNavIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavIcon, selector: "[clrVerticalNavIcon]", host: { classAttribute: "nav-icon" }, ngImport: i0 });
23551
23546
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavIcon, decorators: [{
23552
23547
  type: Directive,
23553
- args: [{ selector: '[clrVerticalNavIcon]', host: { class: 'nav-icon' } }]
23548
+ args: [{
23549
+ selector: '[clrVerticalNavIcon]',
23550
+ host: { class: 'nav-icon' },
23551
+ }]
23554
23552
  }], ctorParameters: function () { return [{ type: VerticalNavIconService }]; } });
23555
23553
 
23556
23554
  /*
@@ -23652,7 +23650,9 @@ ClrLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
23652
23650
  ClrLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLayoutModule, imports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule] });
23653
23651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLayoutModule, decorators: [{
23654
23652
  type: NgModule,
23655
- args: [{ exports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule] }]
23653
+ args: [{
23654
+ exports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule],
23655
+ }]
23656
23656
  }] });
23657
23657
 
23658
23658
  /*
@@ -23880,7 +23880,9 @@ ClrModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
23880
23880
  ClrModalBody.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrModalBody, selector: ".modal-body", ngImport: i0 });
23881
23881
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrModalBody, decorators: [{
23882
23882
  type: Directive,
23883
- args: [{ selector: '.modal-body' }]
23883
+ args: [{
23884
+ selector: '.modal-body',
23885
+ }]
23884
23886
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
23885
23887
 
23886
23888
  /*
@@ -24156,12 +24158,12 @@ ClrTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
24156
24158
  // AriaService in layout/tabs/providers might be a good starting point.
24157
24159
  UNIQUE_ID_PROVIDER,
24158
24160
  TooltipIdService,
24159
- ], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24161
+ ], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24160
24162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTooltip, decorators: [{
24161
24163
  type: Component,
24162
24164
  args: [{
24163
24165
  selector: 'clr-tooltip',
24164
- template: ` <ng-content></ng-content> `,
24166
+ template: `<ng-content></ng-content>`,
24165
24167
  host: {
24166
24168
  '[class.tooltip]': 'true',
24167
24169
  },
@@ -24176,6 +24178,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24176
24178
  }]
24177
24179
  }] });
24178
24180
 
24181
+ /*
24182
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
24183
+ * This software is released under MIT license.
24184
+ * The full license information can be found in LICENSE in the root directory of this project.
24185
+ */
24186
+ function assertNever(value) {
24187
+ throw new Error(`Unhandled value: ${value}`);
24188
+ }
24189
+
24179
24190
  /*
24180
24191
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
24181
24192
  * This software is released under MIT license.
@@ -24183,46 +24194,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24183
24194
  */
24184
24195
  const POSITIONS = ['bottom-left', 'bottom-right', 'top-left', 'top-right', 'right', 'left'];
24185
24196
  const SIZES = ['xs', 'sm', 'md', 'lg'];
24197
+ const defaultPosition = 'right';
24198
+ const defaultSize = 'sm';
24186
24199
  class ClrTooltipContent extends AbstractPopover {
24187
24200
  constructor(injector, parentHost, uniqueId, tooltipIdService) {
24188
24201
  super(injector, parentHost);
24189
24202
  this.uniqueId = uniqueId;
24190
24203
  this.tooltipIdService = tooltipIdService;
24204
+ this._position = defaultPosition;
24205
+ this._size = defaultSize;
24191
24206
  if (!parentHost) {
24192
24207
  throw new Error('clr-tooltip-content should only be used inside of a clr-tooltip');
24193
24208
  }
24194
- // Defaults
24195
- this.position = 'right';
24196
- this.size = 'sm';
24197
24209
  // Set the default id in case consumer does not supply a custom id.
24198
- this.updateId(uniqueId);
24210
+ this.id = uniqueId;
24199
24211
  }
24200
24212
  get id() {
24201
24213
  return this._id;
24202
24214
  }
24203
24215
  set id(value) {
24204
- this.updateId(value || '');
24205
- }
24206
- updateId(id) {
24216
+ const id = value || '';
24207
24217
  this._id = id;
24208
24218
  this.tooltipIdService.updateId(id);
24209
24219
  }
24210
24220
  get position() {
24211
24221
  return this._position;
24212
24222
  }
24213
- set position(position) {
24214
- // Ugh
24215
- this.renderer.removeClass(this.el.nativeElement, 'tooltip-' + this.position);
24216
- if (position && POSITIONS.indexOf(position) > -1) {
24217
- this._position = position;
24218
- }
24219
- else {
24220
- this._position = 'right';
24221
- }
24222
- // Ugh
24223
- this.renderer.addClass(this.el.nativeElement, 'tooltip-' + this.position);
24223
+ set position(value) {
24224
+ const oldPosition = this._position;
24225
+ const newPosition = POSITIONS.includes(value) ? value : defaultPosition;
24226
+ this._position = newPosition;
24227
+ this.updateCssClass({ oldClass: `tooltip-${oldPosition}`, newClass: `tooltip-${newPosition}` });
24224
24228
  // set the popover values based on direction
24225
- switch (position) {
24229
+ switch (newPosition) {
24226
24230
  case 'top-right':
24227
24231
  this.anchorPoint = Point.TOP_CENTER;
24228
24232
  this.popoverPoint = Point.LEFT_BOTTOM;
@@ -24248,34 +24252,30 @@ class ClrTooltipContent extends AbstractPopover {
24248
24252
  this.popoverPoint = Point.RIGHT_TOP;
24249
24253
  break;
24250
24254
  default:
24251
- this.anchorPoint = Point.RIGHT_CENTER;
24252
- this.popoverPoint = Point.LEFT_TOP;
24253
- break;
24255
+ assertNever(newPosition);
24254
24256
  }
24255
24257
  }
24256
24258
  get size() {
24257
24259
  return this._size;
24258
24260
  }
24259
- set size(size) {
24260
- // Ugh
24261
- this.renderer.removeClass(this.el.nativeElement, 'tooltip-' + this.size);
24262
- if (size && SIZES.indexOf(size) > -1) {
24263
- this._size = size;
24264
- }
24265
- else {
24266
- this._size = 'sm';
24267
- }
24268
- // Ugh
24269
- this.renderer.addClass(this.el.nativeElement, 'tooltip-' + this.size);
24261
+ set size(value) {
24262
+ const oldSize = this._size;
24263
+ const newSize = SIZES.includes(value) ? value : defaultSize;
24264
+ this._size = newSize;
24265
+ this.updateCssClass({ oldClass: `tooltip-${oldSize}`, newClass: `tooltip-${newSize}` });
24266
+ }
24267
+ updateCssClass({ oldClass, newClass }) {
24268
+ this.renderer.removeClass(this.el.nativeElement, oldClass);
24269
+ this.renderer.addClass(this.el.nativeElement, newClass);
24270
24270
  }
24271
24271
  }
24272
24272
  ClrTooltipContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTooltipContent, deps: [{ token: i0.Injector }, { token: POPOVER_HOST_ANCHOR, optional: true }, { token: UNIQUE_ID }, { token: TooltipIdService }], target: i0.ɵɵFactoryTarget.Component });
24273
- ClrTooltipContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTooltipContent, selector: "clr-tooltip-content", inputs: { id: "id", position: ["clrPosition", "position"], size: ["clrSize", "size"] }, host: { properties: { "class.tooltip-content": "true", "style.opacity": "1", "attr.role": "\"tooltip\"", "id": "id" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24273
+ ClrTooltipContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTooltipContent, selector: "clr-tooltip-content", inputs: { id: "id", position: ["clrPosition", "position"], size: ["clrSize", "size"] }, host: { properties: { "class.tooltip-content": "true", "style.opacity": "1", "attr.role": "\"tooltip\"", "id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24274
24274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTooltipContent, decorators: [{
24275
24275
  type: Component,
24276
24276
  args: [{
24277
24277
  selector: 'clr-tooltip-content',
24278
- template: ` <ng-content></ng-content> `,
24278
+ template: `<ng-content></ng-content>`,
24279
24279
  host: {
24280
24280
  '[class.tooltip-content]': 'true',
24281
24281
  '[style.opacity]': '1',
@@ -24385,7 +24385,9 @@ ClrPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
24385
24385
  ClrPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverModule, imports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule] });
24386
24386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverModule, decorators: [{
24387
24387
  type: NgModule,
24388
- args: [{ exports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule] }]
24388
+ args: [{
24389
+ exports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule],
24390
+ }]
24389
24391
  }] });
24390
24392
 
24391
24393
  /*
@@ -24670,12 +24672,12 @@ class ClrTimeline {
24670
24672
  }
24671
24673
  }
24672
24674
  ClrTimeline.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimeline, deps: [], target: i0.ɵɵFactoryTarget.Component });
24673
- ClrTimeline.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimeline, selector: "clr-timeline", inputs: { layout: ["clrLayout", "layout"] }, host: { properties: { "class.clr-timeline": "true", "class.clr-timeline-vertical": "this.isVertical" } }, providers: [TimelineIconAttributeService], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24675
+ ClrTimeline.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimeline, selector: "clr-timeline", inputs: { layout: ["clrLayout", "layout"] }, host: { properties: { "class.clr-timeline": "true", "class.clr-timeline-vertical": "this.isVertical" } }, providers: [TimelineIconAttributeService], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24674
24676
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimeline, decorators: [{
24675
24677
  type: Component,
24676
24678
  args: [{
24677
24679
  selector: 'clr-timeline',
24678
- template: ` <ng-content></ng-content> `,
24680
+ template: `<ng-content></ng-content>`,
24679
24681
  host: { '[class.clr-timeline]': 'true' },
24680
24682
  providers: [TimelineIconAttributeService],
24681
24683
  }]
@@ -24705,12 +24707,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24705
24707
  class ClrTimelineStepTitle {
24706
24708
  }
24707
24709
  ClrTimelineStepTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
24708
- ClrTimelineStepTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepTitle, selector: "clr-timeline-step-title", host: { properties: { "class.clr-timeline-step-title": "true", "attr.aria-hidden": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24710
+ ClrTimelineStepTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepTitle, selector: "clr-timeline-step-title", host: { properties: { "class.clr-timeline-step-title": "true", "attr.aria-hidden": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24709
24711
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepTitle, decorators: [{
24710
24712
  type: Component,
24711
24713
  args: [{
24712
24714
  selector: 'clr-timeline-step-title',
24713
- template: ` <ng-content></ng-content> `,
24715
+ template: `<ng-content></ng-content>`,
24714
24716
  host: { '[class.clr-timeline-step-title]': 'true', '[attr.aria-hidden]': 'true' },
24715
24717
  }]
24716
24718
  }] });
@@ -24752,7 +24754,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
24752
24754
  <ng-content select="clr-timeline-step-header"></ng-content>
24753
24755
  <span class="clr-sr-only">{{ stepTitleText }}</span>
24754
24756
  <ng-container *ngIf="!isProcessing; else processing">
24755
- <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"> </cds-icon>
24757
+ <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"></cds-icon>
24756
24758
  </ng-container>
24757
24759
  <div class="clr-timeline-step-body">
24758
24760
  <ng-content select="clr-timeline-step-title"></ng-content>
@@ -24771,7 +24773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24771
24773
  <ng-content select="clr-timeline-step-header"></ng-content>
24772
24774
  <span class="clr-sr-only">{{ stepTitleText }}</span>
24773
24775
  <ng-container *ngIf="!isProcessing; else processing">
24774
- <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"> </cds-icon>
24776
+ <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"></cds-icon>
24775
24777
  </ng-container>
24776
24778
  <div class="clr-timeline-step-body">
24777
24779
  <ng-content select="clr-timeline-step-title"></ng-content>
@@ -24805,12 +24807,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24805
24807
  class ClrTimelineStepDescription {
24806
24808
  }
24807
24809
  ClrTimelineStepDescription.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepDescription, deps: [], target: i0.ɵɵFactoryTarget.Component });
24808
- ClrTimelineStepDescription.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepDescription, selector: "clr-timeline-step-description", host: { properties: { "class.clr-timeline-step-description": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24810
+ ClrTimelineStepDescription.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepDescription, selector: "clr-timeline-step-description", host: { properties: { "class.clr-timeline-step-description": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24809
24811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepDescription, decorators: [{
24810
24812
  type: Component,
24811
24813
  args: [{
24812
24814
  selector: 'clr-timeline-step-description',
24813
- template: ` <ng-content></ng-content> `,
24815
+ template: `<ng-content></ng-content>`,
24814
24816
  host: { '[class.clr-timeline-step-description]': 'true' },
24815
24817
  }]
24816
24818
  }] });
@@ -24823,12 +24825,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24823
24825
  class ClrTimelineStepHeader {
24824
24826
  }
24825
24827
  ClrTimelineStepHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
24826
- ClrTimelineStepHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepHeader, selector: "clr-timeline-step-header", host: { properties: { "class.clr-timeline-step-header": "true" } }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
24828
+ ClrTimelineStepHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrTimelineStepHeader, selector: "clr-timeline-step-header", host: { properties: { "class.clr-timeline-step-header": "true" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24827
24829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepHeader, decorators: [{
24828
24830
  type: Component,
24829
24831
  args: [{
24830
24832
  selector: 'clr-timeline-step-header',
24831
- template: ` <ng-content></ng-content> `,
24833
+ template: `<ng-content></ng-content>`,
24832
24834
  host: { '[class.clr-timeline-step-header]': 'true' },
24833
24835
  }]
24834
24836
  }] });
@@ -25979,7 +25981,9 @@ ClrWizardPageButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
25979
25981
  ClrWizardPageButtons.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageButtons, selector: "[clrPageButtons]", ngImport: i0 });
25980
25982
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageButtons, decorators: [{
25981
25983
  type: Directive,
25982
- args: [{ selector: '[clrPageButtons]' }]
25984
+ args: [{
25985
+ selector: '[clrPageButtons]',
25986
+ }]
25983
25987
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
25984
25988
 
25985
25989
  /*
@@ -25996,7 +26000,9 @@ ClrWizardPageHeaderActions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
25996
26000
  ClrWizardPageHeaderActions.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageHeaderActions, selector: "[clrPageHeaderActions]", ngImport: i0 });
25997
26001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageHeaderActions, decorators: [{
25998
26002
  type: Directive,
25999
- args: [{ selector: '[clrPageHeaderActions]' }]
26003
+ args: [{
26004
+ selector: '[clrPageHeaderActions]',
26005
+ }]
26000
26006
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
26001
26007
 
26002
26008
  /*
@@ -26013,7 +26019,9 @@ ClrWizardPageNavTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
26013
26019
  ClrWizardPageNavTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageNavTitle, selector: "[clrPageNavTitle]", ngImport: i0 });
26014
26020
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageNavTitle, decorators: [{
26015
26021
  type: Directive,
26016
- args: [{ selector: '[clrPageNavTitle]' }]
26022
+ args: [{
26023
+ selector: '[clrPageNavTitle]',
26024
+ }]
26017
26025
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
26018
26026
 
26019
26027
  /*
@@ -26030,7 +26038,9 @@ ClrWizardPageTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
26030
26038
  ClrWizardPageTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageTitle, selector: "[clrPageTitle]", ngImport: i0 });
26031
26039
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageTitle, decorators: [{
26032
26040
  type: Directive,
26033
- args: [{ selector: '[clrPageTitle]' }]
26041
+ args: [{
26042
+ selector: '[clrPageTitle]',
26043
+ }]
26034
26044
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
26035
26045
 
26036
26046
  /*
@@ -27547,7 +27557,9 @@ ClrWizardCustomTags.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
27547
27557
  ClrWizardCustomTags.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardCustomTags, selector: "clr-wizard-title, clr-wizard-pagetitle", ngImport: i0 });
27548
27558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardCustomTags, decorators: [{
27549
27559
  type: Directive,
27550
- args: [{ selector: 'clr-wizard-title, clr-wizard-pagetitle' }]
27560
+ args: [{
27561
+ selector: 'clr-wizard-title, clr-wizard-pagetitle',
27562
+ }]
27551
27563
  }] });
27552
27564
 
27553
27565
  /*
@@ -27947,5 +27959,5 @@ const CLR_MENU_POSITIONS = [
27947
27959
  * Generated bundle index. Do not edit.
27948
27960
  */
27949
27961
 
27950
- export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DRAG_AND_DROP_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER, CLR_LIST_KEY_NAVIGATION_CONFIG, 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, ClrAriaLivePoliteness, ClrAriaLiveService, 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, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForTypeAhead, ClrForTypeAheadModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfDragged, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrKeyNavigationList, ClrKeyNavigationListModule, 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, 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, ClrStackInput, ClrStackSelect, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, 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, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUSABLE_ELEMENT_SELECTORS, FOCUSABLE_ELEMENT_SELECTORS_PROVIDER, 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, ClrFocusTrapModule as ÇlrClrFocusTrapModule, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, FocusTrapDirective as ÇlrFocusTrapDirective, FocusTrapTracker as ÇlrFocusTrapTracker, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
27962
+ export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DRAG_AND_DROP_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, ClrAriaLivePoliteness, ClrAriaLiveService, 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, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForTypeAhead, ClrForTypeAheadModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfDragged, 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, 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, ClrStackInput, ClrStackSelect, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, 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, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, 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, ClrFocusTrapModule as ÇlrClrFocusTrapModule, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, FocusTrapDirective as ÇlrFocusTrapDirective, FocusTrapTracker as ÇlrFocusTrapTracker, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
27951
27963
  //# sourceMappingURL=clr-angular.mjs.map