@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 () { return [{ type: LoadingListener, decorators: [{
113
123
  type: Optional
114
124
  }] }]; }, propDecorators: { loadingState: [{
@@ -775,7 +785,9 @@ AccordionWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
775
785
  AccordionWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AccordionWillyWonka, selector: "clr-accordion", usesInheritance: true, ngImport: i0 });
776
786
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AccordionWillyWonka, decorators: [{
777
787
  type: Directive,
778
- args: [{ selector: 'clr-accordion' }]
788
+ args: [{
789
+ selector: 'clr-accordion',
790
+ }]
779
791
  }] });
780
792
 
781
793
  /*
@@ -799,7 +811,9 @@ AccordionOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
799
811
  AccordionOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: AccordionOompaLoompa, selector: "clr-accordion-panel", usesInheritance: true, ngImport: i0 });
800
812
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AccordionOompaLoompa, decorators: [{
801
813
  type: Directive,
802
- args: [{ selector: 'clr-accordion-panel' }]
814
+ args: [{
815
+ selector: 'clr-accordion-panel',
816
+ }]
803
817
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: AccordionWillyWonka, decorators: [{
804
818
  type: Optional
805
819
  }] }, { type: IfExpandService }]; } });
@@ -1182,9 +1196,7 @@ class ClrStepper {
1182
1196
  this.subscriptions.forEach(s => s.unsubscribe());
1183
1197
  }
1184
1198
  listenForFormResetChanges() {
1185
- return this.form.statusChanges
1186
- .pipe(filter(() => this.form.pristine)) // https://github.com/angular/angular/issues/10887
1187
- .subscribe(() => this.stepperService.resetPanels());
1199
+ return fromControlReset(this.form.form).subscribe(() => this.stepperService.resetPanels());
1188
1200
  }
1189
1201
  listenForPanelsCompleted() {
1190
1202
  return this.stepperService.panelsCompleted.subscribe(panelsCompleted => {
@@ -1234,6 +1246,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1234
1246
  type: ContentChildren,
1235
1247
  args: [ClrStepperPanel, { descendants: true }]
1236
1248
  }] } });
1249
+ function fromControlReset(control) {
1250
+ return new Observable(observer => {
1251
+ const unpatchedControlReset = control.reset;
1252
+ control.reset = () => {
1253
+ observer.next();
1254
+ unpatchedControlReset.apply(control);
1255
+ };
1256
+ return () => {
1257
+ control.reset = unpatchedControlReset;
1258
+ };
1259
+ });
1260
+ }
1237
1261
 
1238
1262
  /*
1239
1263
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
@@ -1246,7 +1270,9 @@ StepperWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
1246
1270
  StepperWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StepperWillyWonka, selector: "form[clrStepper]", usesInheritance: true, ngImport: i0 });
1247
1271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StepperWillyWonka, decorators: [{
1248
1272
  type: Directive,
1249
- args: [{ selector: 'form[clrStepper]' }]
1273
+ args: [{
1274
+ selector: 'form[clrStepper]',
1275
+ }]
1250
1276
  }] });
1251
1277
 
1252
1278
  /*
@@ -1270,7 +1296,9 @@ StepperOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
1270
1296
  StepperOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StepperOompaLoompa, selector: "clr-stepper-panel, [clrStepButton]", usesInheritance: true, ngImport: i0 });
1271
1297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StepperOompaLoompa, decorators: [{
1272
1298
  type: Directive,
1273
- args: [{ selector: 'clr-stepper-panel, [clrStepButton]' }]
1299
+ args: [{
1300
+ selector: 'clr-stepper-panel, [clrStepButton]',
1301
+ }]
1274
1302
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: StepperWillyWonka, decorators: [{
1275
1303
  type: Optional
1276
1304
  }] }, { type: IfExpandService }]; } });
@@ -2217,7 +2245,9 @@ ClrPopoverContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
2217
2245
  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 });
2218
2246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverContent, decorators: [{
2219
2247
  type: Directive,
2220
- args: [{ selector: '[clrPopoverContent]' }]
2248
+ args: [{
2249
+ selector: '[clrPopoverContent]',
2250
+ }]
2221
2251
  }], ctorParameters: function () { return [{ type: Document, decorators: [{
2222
2252
  type: Inject,
2223
2253
  args: [DOCUMENT]
@@ -2946,7 +2976,10 @@ ClrHostWrappingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
2946
2976
  ClrHostWrappingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHostWrappingModule });
2947
2977
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHostWrappingModule, decorators: [{
2948
2978
  type: NgModule,
2949
- args: [{ declarations: [EmptyAnchor], exports: [EmptyAnchor], entryComponents: [EmptyAnchor] }]
2979
+ args: [{
2980
+ declarations: [EmptyAnchor],
2981
+ exports: [EmptyAnchor],
2982
+ }]
2950
2983
  }] });
2951
2984
 
2952
2985
  /*
@@ -3072,12 +3105,12 @@ class ClrControlError extends ClrAbstractControl {
3072
3105
  }
3073
3106
  }
3074
3107
  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 });
3075
- 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 });
3108
+ 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 });
3076
3109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlError, decorators: [{
3077
3110
  type: Component,
3078
3111
  args: [{
3079
3112
  selector: 'clr-control-error',
3080
- template: ` <ng-content></ng-content> `,
3113
+ template: `<ng-content></ng-content>`,
3081
3114
  host: {
3082
3115
  '[class.clr-subtext]': 'true',
3083
3116
  '[attr.id]': 'id',
@@ -3103,12 +3136,12 @@ class ClrControlHelper extends ClrAbstractControl {
3103
3136
  }
3104
3137
  }
3105
3138
  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 });
3106
- 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 });
3139
+ 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 });
3107
3140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlHelper, decorators: [{
3108
3141
  type: Component,
3109
3142
  args: [{
3110
3143
  selector: 'clr-control-helper',
3111
- template: ` <ng-content></ng-content> `,
3144
+ template: `<ng-content></ng-content>`,
3112
3145
  host: {
3113
3146
  '[class.clr-subtext]': 'true',
3114
3147
  '[attr.id]': 'id',
@@ -3304,7 +3337,9 @@ ClrLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
3304
3337
  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 });
3305
3338
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLabel, decorators: [{
3306
3339
  type: Directive,
3307
- args: [{ selector: 'label' }]
3340
+ args: [{
3341
+ selector: 'label',
3342
+ }]
3308
3343
  }], ctorParameters: function () { return [{ type: ControlIdService, decorators: [{
3309
3344
  type: Optional
3310
3345
  }] }, { type: LayoutService, decorators: [{
@@ -3333,12 +3368,12 @@ class ClrControlSuccess extends ClrAbstractControl {
3333
3368
  }
3334
3369
  }
3335
3370
  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 });
3336
- 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 });
3371
+ 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 });
3337
3372
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlSuccess, decorators: [{
3338
3373
  type: Component,
3339
3374
  args: [{
3340
3375
  selector: 'clr-control-success',
3341
- template: ` <ng-content></ng-content> `,
3376
+ template: `<ng-content></ng-content>`,
3342
3377
  host: {
3343
3378
  '[class.clr-subtext]': 'true',
3344
3379
  '[attr.id]': 'id',
@@ -3802,7 +3837,10 @@ ClrControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
3802
3837
  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 });
3803
3838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControl, decorators: [{
3804
3839
  type: Directive,
3805
- args: [{ selector: '[clrControl]', host: { '[class.clr-input]': 'true' } }]
3840
+ args: [{
3841
+ selector: '[clrControl]',
3842
+ host: { '[class.clr-input]': 'true' },
3843
+ }]
3806
3844
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
3807
3845
  type: Self
3808
3846
  }, {
@@ -3947,7 +3985,9 @@ ClrIfError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
3947
3985
  ClrIfError.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfError, selector: "[clrIfError]", inputs: { error: ["clrIfError", "error"] }, usesInheritance: true, ngImport: i0 });
3948
3986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfError, decorators: [{
3949
3987
  type: Directive,
3950
- args: [{ selector: '[clrIfError]' }]
3988
+ args: [{
3989
+ selector: '[clrIfError]',
3990
+ }]
3951
3991
  }], ctorParameters: function () { return [{ type: IfControlStateService, decorators: [{
3952
3992
  type: Optional
3953
3993
  }] }, { type: NgControlService, decorators: [{
@@ -3989,7 +4029,9 @@ ClrIfSuccess.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
3989
4029
  ClrIfSuccess.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfSuccess, selector: "[clrIfSuccess]", usesInheritance: true, ngImport: i0 });
3990
4030
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfSuccess, decorators: [{
3991
4031
  type: Directive,
3992
- args: [{ selector: '[clrIfSuccess]' }]
4032
+ args: [{
4033
+ selector: '[clrIfSuccess]',
4034
+ }]
3993
4035
  }], ctorParameters: function () { return [{ type: IfControlStateService, decorators: [{
3994
4036
  type: Optional
3995
4037
  }] }, { type: NgControlService, decorators: [{
@@ -4083,7 +4125,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4083
4125
  ClrControlContainer,
4084
4126
  ClrControl,
4085
4127
  ],
4086
- entryComponents: [ClrControlContainer],
4087
4128
  }]
4088
4129
  }], ctorParameters: function () { return []; } });
4089
4130
 
@@ -4175,7 +4216,9 @@ ClrCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
4175
4216
  ClrCheckbox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]", usesInheritance: true, ngImport: i0 });
4176
4217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckbox, decorators: [{
4177
4218
  type: Directive,
4178
- args: [{ selector: '[clrCheckbox],[clrToggle]' }]
4219
+ args: [{
4220
+ selector: '[clrCheckbox],[clrToggle]',
4221
+ }]
4179
4222
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
4180
4223
  type: Self
4181
4224
  }, {
@@ -4316,7 +4359,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4316
4359
  imports: [CommonModule, ClrIconModule, ClrCommonFormsModule, ClrHostWrappingModule],
4317
4360
  declarations: [ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],
4318
4361
  exports: [ClrCommonFormsModule, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxWrapper],
4319
- entryComponents: [ClrCheckboxWrapper],
4320
4362
  }]
4321
4363
  }], ctorParameters: function () { return []; } });
4322
4364
 
@@ -4379,12 +4421,12 @@ class ClrSpinner {
4379
4421
  }
4380
4422
  }
4381
4423
  ClrSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
4382
- 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
+ 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 });
4383
4425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSpinner, decorators: [{
4384
4426
  type: Component,
4385
4427
  args: [{
4386
4428
  selector: 'clr-spinner',
4387
- template: ` <ng-content></ng-content> `,
4429
+ template: `<ng-content></ng-content>`,
4388
4430
  host: {
4389
4431
  '[attr.aria-busy]': 'true',
4390
4432
  },
@@ -4600,7 +4642,9 @@ ClrIfActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
4600
4642
  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 });
4601
4643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfActive, decorators: [{
4602
4644
  type: Directive,
4603
- args: [{ selector: '[clrIfActive]' }]
4645
+ args: [{
4646
+ selector: '[clrIfActive]',
4647
+ }]
4604
4648
  }], ctorParameters: function () { return [{ type: IfActiveService }, { type: undefined, decorators: [{
4605
4649
  type: Inject,
4606
4650
  args: [IF_ACTIVE_ID]
@@ -4690,7 +4734,9 @@ ClrIfExpanded.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
4690
4734
  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 });
4691
4735
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfExpanded, decorators: [{
4692
4736
  type: Directive,
4693
- args: [{ selector: '[clrIfExpanded]' }]
4737
+ args: [{
4738
+ selector: '[clrIfExpanded]',
4739
+ }]
4694
4740
  }], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
4695
4741
  type: Optional
4696
4742
  }] }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: IfExpandService }]; }, propDecorators: { expanded: [{
@@ -4776,7 +4822,9 @@ ClrIfOpen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0
4776
4822
  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 });
4777
4823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfOpen, decorators: [{
4778
4824
  type: Directive,
4779
- args: [{ selector: '[clrIfOpen]' }]
4825
+ args: [{
4826
+ selector: '[clrIfOpen]',
4827
+ }]
4780
4828
  }], ctorParameters: function () { return [{ type: ClrPopoverToggleService }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { open: [{
4781
4829
  type: Input,
4782
4830
  args: ['clrIfOpen']
@@ -4798,7 +4846,11 @@ ClrConditionalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
4798
4846
  ClrConditionalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrConditionalModule, imports: [[CommonModule]] });
4799
4847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrConditionalModule, decorators: [{
4800
4848
  type: NgModule,
4801
- args: [{ imports: [CommonModule], declarations: [CONDITIONAL_DIRECTIVES], exports: [CONDITIONAL_DIRECTIVES] }]
4849
+ args: [{
4850
+ imports: [CommonModule],
4851
+ declarations: [CONDITIONAL_DIRECTIVES],
4852
+ exports: [CONDITIONAL_DIRECTIVES],
4853
+ }]
4802
4854
  }] });
4803
4855
 
4804
4856
  /*
@@ -5531,7 +5583,9 @@ ClrOptionSelected.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
5531
5583
  ClrOptionSelected.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrOptionSelected, selector: "[clrOptionSelected]", inputs: { selected: ["clrOptionSelected", "selected"] }, ngImport: i0 });
5532
5584
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOptionSelected, decorators: [{
5533
5585
  type: Directive,
5534
- args: [{ selector: '[clrOptionSelected]' }]
5586
+ args: [{
5587
+ selector: '[clrOptionSelected]',
5588
+ }]
5535
5589
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { selected: [{
5536
5590
  type: Input,
5537
5591
  args: ['clrOptionSelected']
@@ -6129,7 +6183,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
6129
6183
  ClrPopoverToggleService,
6130
6184
  ClrPopoverEventsService,
6131
6185
  ClrPopoverPositionService,
6132
- ], 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"] }] });
6186
+ ], 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"] }] });
6133
6187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCombobox, decorators: [{
6134
6188
  type: Component,
6135
6189
  args: [{ selector: 'clr-combobox', providers: [
@@ -6148,7 +6202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
6148
6202
  '[class.aria-required]': 'true',
6149
6203
  '[class.clr-combobox]': 'true',
6150
6204
  '[class.clr-combobox-disabled]': 'control?.disabled',
6151
- }, 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" }]
6205
+ }, 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" }]
6152
6206
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
6153
6207
  type: Self
6154
6208
  }, {
@@ -6246,14 +6300,18 @@ class ClrOption {
6246
6300
  }
6247
6301
  }
6248
6302
  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 });
6249
- 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>
6250
- <span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6303
+ 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: `
6304
+ <ng-content></ng-content>
6305
+ <span *ngIf="selected" class="clr-sr-only">{{ commonStrings.keys.comboboxSelected }}</span>
6306
+ `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6251
6307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, decorators: [{
6252
6308
  type: Component,
6253
6309
  args: [{
6254
6310
  selector: 'clr-option',
6255
- template: `<ng-content></ng-content>
6256
- <span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `,
6311
+ template: `
6312
+ <ng-content></ng-content>
6313
+ <span *ngIf="selected" class="clr-sr-only">{{ commonStrings.keys.comboboxSelected }}</span>
6314
+ `,
6257
6315
  providers: [UNIQUE_ID_PROVIDER],
6258
6316
  host: {
6259
6317
  '[class.clr-combobox-option]': 'true',
@@ -6665,7 +6723,10 @@ ClrInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
6665
6723
  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 });
6666
6724
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrInput, decorators: [{
6667
6725
  type: Directive,
6668
- args: [{ selector: '[clrInput]', host: { '[class.clr-input]': 'true' } }]
6726
+ args: [{
6727
+ selector: '[clrInput]',
6728
+ host: { '[class.clr-input]': 'true' },
6729
+ }]
6669
6730
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
6670
6731
  type: Self
6671
6732
  }, {
@@ -6692,7 +6753,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
6692
6753
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
6693
6754
  declarations: [ClrInput, ClrInputContainer],
6694
6755
  exports: [ClrCommonFormsModule, ClrInput, ClrInputContainer],
6695
- entryComponents: [ClrInputContainer],
6696
6756
  }]
6697
6757
  }], ctorParameters: function () { return []; } });
6698
6758
 
@@ -7142,7 +7202,9 @@ FocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
7142
7202
  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 });
7143
7203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrapDirective, decorators: [{
7144
7204
  type: Directive,
7145
- args: [{ selector: '[clrFocusTrap]' }]
7205
+ args: [{
7206
+ selector: '[clrFocusTrap]',
7207
+ }]
7146
7208
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: FocusTrapTracker }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
7147
7209
  type: Inject,
7148
7210
  args: [PLATFORM_ID]
@@ -9389,7 +9451,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9389
9451
  ],
9390
9452
  declarations: [CLR_DATEPICKER_DIRECTIVES],
9391
9453
  exports: [CLR_DATEPICKER_DIRECTIVES],
9392
- entryComponents: [ClrDateContainer],
9393
9454
  }]
9394
9455
  }], ctorParameters: function () { return []; } });
9395
9456
 
@@ -9454,9 +9515,9 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
9454
9515
  type="button"
9455
9516
  >
9456
9517
  <cds-icon status="info" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
9457
- <span class="clr-sr-only">{{
9458
- show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
9459
- }}</span>
9518
+ <span class="clr-sr-only">
9519
+ {{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
9520
+ </span>
9460
9521
  </button>
9461
9522
  </div>
9462
9523
  <cds-icon
@@ -9498,9 +9559,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9498
9559
  type="button"
9499
9560
  >
9500
9561
  <cds-icon status="info" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
9501
- <span class="clr-sr-only">{{
9502
- show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
9503
- }}</span>
9562
+ <span class="clr-sr-only">
9563
+ {{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
9564
+ </span>
9504
9565
  </button>
9505
9566
  </div>
9506
9567
  <cds-icon
@@ -9581,7 +9642,10 @@ ClrPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
9581
9642
  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 });
9582
9643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPassword, decorators: [{
9583
9644
  type: Directive,
9584
- args: [{ selector: '[clrPassword]', host: { '[class.clr-input]': 'true' } }]
9645
+ args: [{
9646
+ selector: '[clrPassword]',
9647
+ host: { '[class.clr-input]': 'true' },
9648
+ }]
9585
9649
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
9586
9650
  type: Self
9587
9651
  }, {
@@ -9620,7 +9684,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9620
9684
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
9621
9685
  declarations: [ClrPassword, ClrPasswordContainer],
9622
9686
  exports: [ClrCommonFormsModule, ClrPassword, ClrPasswordContainer],
9623
- entryComponents: [ClrPasswordContainer],
9624
9687
  }]
9625
9688
  }], ctorParameters: function () { return []; } });
9626
9689
 
@@ -9681,7 +9744,9 @@ ClrRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
9681
9744
  ClrRadio.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrRadio, selector: "[clrRadio]", usesInheritance: true, ngImport: i0 });
9682
9745
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadio, decorators: [{
9683
9746
  type: Directive,
9684
- args: [{ selector: '[clrRadio]' }]
9747
+ args: [{
9748
+ selector: '[clrRadio]',
9749
+ }]
9685
9750
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
9686
9751
  type: Self
9687
9752
  }, {
@@ -9819,7 +9884,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9819
9884
  imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIconModule],
9820
9885
  declarations: [ClrRadio, ClrRadioContainer, ClrRadioWrapper],
9821
9886
  exports: [ClrCommonFormsModule, ClrRadio, ClrRadioContainer, ClrRadioWrapper],
9822
- entryComponents: [ClrRadioWrapper],
9823
9887
  }]
9824
9888
  }], ctorParameters: function () { return []; } });
9825
9889
 
@@ -9946,7 +10010,10 @@ ClrRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
9946
10010
  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 });
9947
10011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRange, decorators: [{
9948
10012
  type: Directive,
9949
- args: [{ selector: '[clrRange]', host: { '[class.clr-range]': 'true' } }]
10013
+ args: [{
10014
+ selector: '[clrRange]',
10015
+ host: { '[class.clr-range]': 'true' },
10016
+ }]
9950
10017
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
9951
10018
  type: Self
9952
10019
  }, {
@@ -9972,7 +10039,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
9972
10039
  imports: [CommonModule, ClrCommonFormsModule, ClrHostWrappingModule, ClrIconModule],
9973
10040
  declarations: [ClrRange, ClrRangeContainer],
9974
10041
  exports: [ClrCommonFormsModule, ClrRange, ClrRangeContainer],
9975
- entryComponents: [ClrRangeContainer],
9976
10042
  }]
9977
10043
  }], ctorParameters: function () { return []; } });
9978
10044
 
@@ -10089,7 +10155,10 @@ ClrSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0
10089
10155
  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 });
10090
10156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSelect, decorators: [{
10091
10157
  type: Directive,
10092
- args: [{ selector: '[clrSelect]', host: { '[class.clr-select]': 'true' } }]
10158
+ args: [{
10159
+ selector: '[clrSelect]',
10160
+ host: { '[class.clr-select]': 'true' },
10161
+ }]
10093
10162
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
10094
10163
  type: Self
10095
10164
  }, {
@@ -10115,7 +10184,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10115
10184
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
10116
10185
  declarations: [ClrSelect, ClrSelectContainer],
10117
10186
  exports: [ClrCommonFormsModule, ClrSelect, ClrSelectContainer],
10118
- entryComponents: [ClrSelectContainer],
10119
10187
  }]
10120
10188
  }], ctorParameters: function () { return []; } });
10121
10189
 
@@ -10207,7 +10275,10 @@ ClrTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
10207
10275
  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 });
10208
10276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTextarea, decorators: [{
10209
10277
  type: Directive,
10210
- args: [{ selector: '[clrTextarea]', host: { '[class.clr-textarea]': 'true' } }]
10278
+ args: [{
10279
+ selector: '[clrTextarea]',
10280
+ host: { '[class.clr-textarea]': 'true' },
10281
+ }]
10211
10282
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i1.NgControl, decorators: [{
10212
10283
  type: Self
10213
10284
  }, {
@@ -10233,7 +10304,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10233
10304
  imports: [CommonModule, FormsModule, ClrIconModule, ClrCommonFormsModule],
10234
10305
  declarations: [ClrTextarea, ClrTextareaContainer],
10235
10306
  exports: [ClrCommonFormsModule, ClrTextarea, ClrTextareaContainer],
10236
- entryComponents: [ClrTextareaContainer],
10237
10307
  }]
10238
10308
  }], ctorParameters: function () { return []; } });
10239
10309
 
@@ -10357,7 +10427,7 @@ class ClrExpandableAnimation {
10357
10427
  }
10358
10428
  }
10359
10429
  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 });
10360
- 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: [
10430
+ 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: [
10361
10431
  trigger('expandAnimation', [
10362
10432
  transition('true <=> false', [
10363
10433
  style({ height: '{{startHeight}}px', overflow: 'hidden' }),
@@ -10369,7 +10439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
10369
10439
  type: Component,
10370
10440
  args: [{
10371
10441
  selector: 'clr-expandable-animation',
10372
- template: ` <ng-content></ng-content> `,
10442
+ template: `<ng-content></ng-content>`,
10373
10443
  styles: [
10374
10444
  `
10375
10445
  :host {
@@ -10743,7 +10813,10 @@ ClrDragHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
10743
10813
  ClrDragHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrDragHandle, selector: "[clrDragHandle]", host: { properties: { "class.drag-handle": "true" } }, ngImport: i0 });
10744
10814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDragHandle, decorators: [{
10745
10815
  type: Directive,
10746
- args: [{ selector: '[clrDragHandle]', host: { '[class.drag-handle]': 'true' } }]
10816
+ args: [{
10817
+ selector: '[clrDragHandle]',
10818
+ host: { '[class.drag-handle]': 'true' },
10819
+ }]
10747
10820
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DragHandleRegistrarService, decorators: [{
10748
10821
  type: Optional
10749
10822
  }] }]; } });
@@ -10951,7 +11024,9 @@ ClrIfDragged.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
10951
11024
  ClrIfDragged.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrIfDragged, selector: "[clrIfDragged]", ngImport: i0 });
10952
11025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrIfDragged, decorators: [{
10953
11026
  type: Directive,
10954
- args: [{ selector: '[clrIfDragged]' }]
11027
+ args: [{
11028
+ selector: '[clrIfDragged]',
11029
+ }]
10955
11030
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef, decorators: [{
10956
11031
  type: Optional
10957
11032
  }, {
@@ -11349,7 +11424,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
11349
11424
  args: [{
11350
11425
  imports: [CommonModule],
11351
11426
  declarations: [CLR_DRAG_AND_DROP_DIRECTIVES],
11352
- entryComponents: [ClrDraggableGhost],
11353
11427
  exports: [CLR_DRAG_AND_DROP_DIRECTIVES],
11354
11428
  }]
11355
11429
  }] });
@@ -11484,7 +11558,11 @@ ClrLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
11484
11558
  ClrLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLoadingModule, imports: [[CommonModule]] });
11485
11559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLoadingModule, decorators: [{
11486
11560
  type: NgModule,
11487
- args: [{ imports: [CommonModule], declarations: [CLR_LOADING_DIRECTIVES], exports: [CLR_LOADING_DIRECTIVES] }]
11561
+ args: [{
11562
+ imports: [CommonModule],
11563
+ declarations: [CLR_LOADING_DIRECTIVES],
11564
+ exports: [CLR_LOADING_DIRECTIVES],
11565
+ }]
11488
11566
  }] });
11489
11567
 
11490
11568
  /*
@@ -11522,7 +11600,9 @@ OutsideClick.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
11522
11600
  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 });
11523
11601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: OutsideClick, decorators: [{
11524
11602
  type: Directive,
11525
- args: [{ selector: '[clrOutsideClick]' }]
11603
+ args: [{
11604
+ selector: '[clrOutsideClick]',
11605
+ }]
11526
11606
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { strict: [{
11527
11607
  type: Input,
11528
11608
  args: ['clrStrict']
@@ -11550,7 +11630,11 @@ ClrOutsideClickModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
11550
11630
  ClrOutsideClickModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOutsideClickModule, imports: [[CommonModule]] });
11551
11631
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOutsideClickModule, decorators: [{
11552
11632
  type: NgModule,
11553
- args: [{ imports: [CommonModule], declarations: [OUSTIDE_CLICK_DIRECTIVES], exports: [OUSTIDE_CLICK_DIRECTIVES] }]
11633
+ args: [{
11634
+ imports: [CommonModule],
11635
+ declarations: [OUSTIDE_CLICK_DIRECTIVES],
11636
+ exports: [OUSTIDE_CLICK_DIRECTIVES],
11637
+ }]
11554
11638
  }] });
11555
11639
 
11556
11640
  /*
@@ -12671,7 +12755,9 @@ DatagridWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
12671
12755
  DatagridWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridWillyWonka, selector: "clr-datagrid", usesInheritance: true, ngImport: i0 });
12672
12756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridWillyWonka, decorators: [{
12673
12757
  type: Directive,
12674
- args: [{ selector: 'clr-datagrid' }]
12758
+ args: [{
12759
+ selector: 'clr-datagrid',
12760
+ }]
12675
12761
  }] });
12676
12762
 
12677
12763
  /*
@@ -12723,7 +12809,9 @@ ActionableOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
12723
12809
  ActionableOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ActionableOompaLoompa, selector: "clr-datagrid, clr-dg-row", usesInheritance: true, ngImport: i0 });
12724
12810
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ActionableOompaLoompa, decorators: [{
12725
12811
  type: Directive,
12726
- args: [{ selector: 'clr-datagrid, clr-dg-row' }]
12812
+ args: [{
12813
+ selector: 'clr-datagrid, clr-dg-row',
12814
+ }]
12727
12815
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: DatagridWillyWonka, decorators: [{
12728
12816
  type: Optional
12729
12817
  }] }, { type: RowActionService }]; } });
@@ -12837,7 +12925,9 @@ ExpandableOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
12837
12925
  ExpandableOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ExpandableOompaLoompa, selector: "clr-datagrid, clr-dg-row", usesInheritance: true, ngImport: i0 });
12838
12926
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ExpandableOompaLoompa, decorators: [{
12839
12927
  type: Directive,
12840
- args: [{ selector: 'clr-datagrid, clr-dg-row' }]
12928
+ args: [{
12929
+ selector: 'clr-datagrid, clr-dg-row',
12930
+ }]
12841
12931
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: DatagridWillyWonka, decorators: [{
12842
12932
  type: Optional
12843
12933
  }] }, { type: ExpandableRowsCount }]; } });
@@ -14286,12 +14376,12 @@ class ClrDatagridCell {
14286
14376
  }
14287
14377
  }
14288
14378
  ClrDatagridCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridCell, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
14289
- 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 });
14379
+ 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 });
14290
14380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridCell, decorators: [{
14291
14381
  type: Component,
14292
14382
  args: [{
14293
14383
  selector: 'clr-dg-cell',
14294
- template: ` <ng-content></ng-content> `,
14384
+ template: `<ng-content></ng-content>`,
14295
14385
  host: {
14296
14386
  '[class.datagrid-cell]': 'true',
14297
14387
  '[class.datagrid-signpost-trigger]': 'signpost.length > 0',
@@ -14434,6 +14524,10 @@ class Selection {
14434
14524
  * Subscriptions to the other providers changes.
14435
14525
  */
14436
14526
  this.subscriptions = [];
14527
+ /**
14528
+ * Shift key state, for use in range selection.
14529
+ */
14530
+ this.shiftPressed = false;
14437
14531
  this.valueCollector = new Subject();
14438
14532
  /**
14439
14533
  * The Observable that lets other classes subscribe to selection changes
@@ -14816,7 +14910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
14816
14910
  */
14817
14911
  let nbRow = 0;
14818
14912
  class ClrDatagridRow {
14819
- constructor(selection, rowActionService, globalExpandable, expand, detailService, displayMode, vcr, renderer, el, commonStrings) {
14913
+ constructor(selection, rowActionService, globalExpandable, expand, detailService, displayMode, vcr, renderer, el, commonStrings, items, document) {
14820
14914
  this.selection = selection;
14821
14915
  this.rowActionService = rowActionService;
14822
14916
  this.globalExpandable = globalExpandable;
@@ -14827,6 +14921,8 @@ class ClrDatagridRow {
14827
14921
  this.renderer = renderer;
14828
14922
  this.el = el;
14829
14923
  this.commonStrings = commonStrings;
14924
+ this.items = items;
14925
+ this.document = document;
14830
14926
  /* reference to the enum so that template can access */
14831
14927
  this.SELECTION_TYPE = SelectionType;
14832
14928
  this.expandAnimationTrigger = false;
@@ -14857,6 +14953,24 @@ class ClrDatagridRow {
14857
14953
  }
14858
14954
  }));
14859
14955
  }
14956
+ /**
14957
+ * The default behavior in Chrome and Firefox for shift-clicking on a label is to perform text-selection.
14958
+ * This prevents our intended range-selection, because this text-selection overrides our shift-click event.
14959
+ * We need to clear the stored selection range when shift-clicking. This will override the mostly unused shift-click
14960
+ * selection browser functionality, which is inconsistently implemented in browsers anyway.
14961
+ */
14962
+ clearRanges(event) {
14963
+ if (event.shiftKey) {
14964
+ this.document.getSelection().removeAllRanges();
14965
+ // Firefox is too persistent about its text-selection behaviour. So we need to add a preventDefault();
14966
+ // We should not try to enforce this on the other browsers, though, because their toggle cycle does not get canceled by
14967
+ // the preventDefault() and they toggle the checkbox second time, effectively retrurning it to not-selected.
14968
+ if (window.navigator.userAgent.indexOf('Firefox') !== -1) {
14969
+ event.preventDefault();
14970
+ this.toggle(true);
14971
+ }
14972
+ }
14973
+ }
14860
14974
  /**
14861
14975
  * Indicates if the row is selected
14862
14976
  */
@@ -14873,6 +14987,12 @@ class ClrDatagridRow {
14873
14987
  this._selected = value;
14874
14988
  }
14875
14989
  else {
14990
+ if (value && this.selection.selectionType === SelectionType.Multi) {
14991
+ this.rangeSelect();
14992
+ }
14993
+ else {
14994
+ this.selection.rangeStart = null;
14995
+ }
14876
14996
  this.selection.setSelected(this.item, value);
14877
14997
  }
14878
14998
  }
@@ -14960,6 +15080,29 @@ class ClrDatagridRow {
14960
15080
  this.expandAnimationTrigger = !this.expandAnimationTrigger;
14961
15081
  }));
14962
15082
  }
15083
+ rangeSelect() {
15084
+ const items = this.items.displayed;
15085
+ if (!items) {
15086
+ return;
15087
+ }
15088
+ const startIx = items.indexOf(this.selection.rangeStart);
15089
+ if (this.selection.rangeStart &&
15090
+ this.selection.current.includes(this.selection.rangeStart) &&
15091
+ this.selection.shiftPressed &&
15092
+ startIx !== -1) {
15093
+ const endIx = items.indexOf(this.item);
15094
+ // Using Set to remove duplicates
15095
+ const newSelection = new Set(this.selection.current.concat(items.slice(Math.min(startIx, endIx), Math.max(startIx, endIx) + 1)));
15096
+ this.selection.clearSelection();
15097
+ this.selection.current.push(...newSelection);
15098
+ }
15099
+ else {
15100
+ // page number has changed or
15101
+ // no Shift was pressed or
15102
+ // rangeStart not yet set
15103
+ this.selection.rangeStart = this.item;
15104
+ }
15105
+ }
14963
15106
  ngOnDestroy() {
14964
15107
  this.subscriptions.forEach((sub) => sub.unsubscribe());
14965
15108
  }
@@ -14971,12 +15114,12 @@ class ClrDatagridRow {
14971
15114
  return this.wrappedInjector.get(WrappedRow, this.vcr).rowView;
14972
15115
  }
14973
15116
  }
14974
- 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 });
15117
+ 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 });
14975
15118
  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: [
14976
15119
  DatagridIfExpandService,
14977
15120
  { provide: IfExpandService, useExisting: DatagridIfExpandService },
14978
15121
  { provide: LoadingListener, useExisting: DatagridIfExpandService },
14979
- ], 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" }] });
15122
+ ], 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" }] });
14980
15123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, decorators: [{
14981
15124
  type: Component,
14982
15125
  args: [{ selector: 'clr-dg-row', host: {
@@ -14988,8 +15131,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
14988
15131
  DatagridIfExpandService,
14989
15132
  { provide: IfExpandService, useExisting: DatagridIfExpandService },
14990
15133
  { provide: LoadingListener, useExisting: DatagridIfExpandService },
14991
- ], 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" }]
14992
- }], 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: [{
15134
+ ], 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" }]
15135
+ }], 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 }, { type: Items }, { type: undefined, decorators: [{
15136
+ type: Inject,
15137
+ args: [DOCUMENT]
15138
+ }] }]; }, propDecorators: { expandAnimation: [{
14993
15139
  type: ViewChild,
14994
15140
  args: [ClrExpandableAnimation]
14995
15141
  }], item: [{
@@ -15337,7 +15483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15337
15483
  * The full license information can be found in LICENSE in the root directory of this project.
15338
15484
  */
15339
15485
  class ClrDatagrid {
15340
- constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, el, page, commonStrings, columnsService, keyNavigation) {
15486
+ constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, document, el, page, commonStrings, columnsService, keyNavigation, zone) {
15341
15487
  this.organizer = organizer;
15342
15488
  this.items = items;
15343
15489
  this.expandableRows = expandableRows;
@@ -15347,11 +15493,13 @@ class ClrDatagrid {
15347
15493
  this.displayMode = displayMode;
15348
15494
  this.renderer = renderer;
15349
15495
  this.detailService = detailService;
15496
+ this.document = document;
15350
15497
  this.el = el;
15351
15498
  this.page = page;
15352
15499
  this.commonStrings = commonStrings;
15353
15500
  this.columnsService = columnsService;
15354
15501
  this.keyNavigation = keyNavigation;
15502
+ this.zone = zone;
15355
15503
  /* reference to the enum so that template can access */
15356
15504
  this.SELECTION_TYPE = SelectionType;
15357
15505
  /**
@@ -15536,6 +15684,19 @@ class ClrDatagrid {
15536
15684
  });
15537
15685
  }
15538
15686
  }));
15687
+ // We need to preserve shift state, so it can be used on selection change, regardless of the input event
15688
+ // that triggered the change. This helps us to easily resolve the k/b only case together with the mouse selection case.
15689
+ this.zone.runOutsideAngular(() => {
15690
+ this._subscriptions.push(fromEvent(this.document.body, 'keydown').subscribe((event) => {
15691
+ if (event.key === 'Shift') {
15692
+ this.selection.shiftPressed = true;
15693
+ }
15694
+ }), fromEvent(this.document.body, 'keyup').subscribe((event) => {
15695
+ if (event.key === 'Shift') {
15696
+ this.selection.shiftPressed = false;
15697
+ }
15698
+ }));
15699
+ });
15539
15700
  }
15540
15701
  ngOnDestroy() {
15541
15702
  this._subscriptions.forEach((sub) => sub.unsubscribe());
@@ -15544,7 +15705,7 @@ class ClrDatagrid {
15544
15705
  this.organizer.resize();
15545
15706
  }
15546
15707
  }
15547
- 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 });
15708
+ 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 });
15548
15709
  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: [
15549
15710
  Selection,
15550
15711
  Sort,
@@ -15589,7 +15750,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15589
15750
  }], ctorParameters: function () { return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
15590
15751
  type: Inject,
15591
15752
  args: [UNIQUE_ID]
15592
- }] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: ColumnsService }, { type: KeyNavigationGridController }]; }, propDecorators: { loading: [{
15753
+ }] }, { type: undefined, decorators: [{
15754
+ type: Inject,
15755
+ args: [DOCUMENT]
15756
+ }] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: ColumnsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }]; }, propDecorators: { loading: [{
15593
15757
  type: Input,
15594
15758
  args: ['clrDgLoading']
15595
15759
  }], refresh: [{
@@ -15660,16 +15824,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15660
15824
  class ClrDatagridActionBar {
15661
15825
  }
15662
15826
  ClrDatagridActionBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
15663
- 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 });
15827
+ 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 });
15664
15828
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionBar, decorators: [{
15665
15829
  type: Component,
15666
15830
  args: [{
15667
15831
  selector: 'clr-dg-action-bar',
15668
- template: ` <ng-content></ng-content> `,
15832
+ template: `<ng-content></ng-content>`,
15669
15833
  host: { '[class.datagrid-action-bar]': 'true' },
15670
15834
  }]
15671
15835
  }] });
15672
15836
 
15837
+ /*
15838
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
15839
+ * This software is released under MIT license.
15840
+ * The full license information can be found in LICENSE in the root directory of this project.
15841
+ */
15842
+
15673
15843
  /*
15674
15844
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
15675
15845
  * This software is released under MIT license.
@@ -15697,7 +15867,7 @@ class ClrDatagridActionOverflow {
15697
15867
  this.subscriptions.push(this.smartToggleService.openChange.subscribe(openState => {
15698
15868
  this.open = openState;
15699
15869
  if (openState) {
15700
- this.focusFirstButton();
15870
+ this.initializeFocus();
15701
15871
  }
15702
15872
  }));
15703
15873
  this.popoverId = 'clr-action-menu' + clrDgActionId++;
@@ -15709,13 +15879,15 @@ class ClrDatagridActionOverflow {
15709
15879
  closeOverflowContent(event) {
15710
15880
  this.smartToggleService.toggleWithEvent(event);
15711
15881
  }
15712
- focusFirstButton() {
15882
+ initializeFocus() {
15713
15883
  if (isPlatformBrowser(this.platformId)) {
15714
15884
  this.zone.runOutsideAngular(() => {
15715
15885
  setTimeout(() => {
15716
- const firstButton = document.querySelector('button.action-item');
15717
- if (firstButton) {
15718
- firstButton.focus();
15886
+ const buttons = Array.from(document.querySelectorAll('button.action-item'));
15887
+ if (buttons.length) {
15888
+ this.keyFocus.current = 0;
15889
+ this.keyFocus.focusableItems = buttons;
15890
+ this.keyFocus.focusCurrent();
15719
15891
  }
15720
15892
  });
15721
15893
  });
@@ -15735,7 +15907,7 @@ class ClrDatagridActionOverflow {
15735
15907
  }
15736
15908
  }
15737
15909
  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 });
15738
- 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: `
15910
+ 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: `
15739
15911
  <button
15740
15912
  class="datagrid-action-toggle"
15741
15913
  type="button"
@@ -15756,13 +15928,14 @@ ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
15756
15928
  [id]="popoverId"
15757
15929
  [attr.aria-hidden]="!open"
15758
15930
  [attr.id]="popoverId"
15931
+ clrKeyFocus
15759
15932
  clrFocusTrap
15760
15933
  (click)="closeOverflowContent($event)"
15761
15934
  *clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
15762
15935
  >
15763
15936
  <ng-content></ng-content>
15764
15937
  </div>
15765
- `, 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"] }] });
15938
+ `, 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"] }] });
15766
15939
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridActionOverflow, decorators: [{
15767
15940
  type: Component,
15768
15941
  args: [{
@@ -15789,6 +15962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15789
15962
  [id]="popoverId"
15790
15963
  [attr.aria-hidden]="!open"
15791
15964
  [attr.id]="popoverId"
15965
+ clrKeyFocus
15792
15966
  clrFocusTrap
15793
15967
  (click)="closeOverflowContent($event)"
15794
15968
  *clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
@@ -15803,7 +15977,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
15803
15977
  }] }, { type: i0.NgZone }, { type: ClrPopoverToggleService }, { type: undefined, decorators: [{
15804
15978
  type: Inject,
15805
15979
  args: [UNIQUE_ID]
15806
- }] }]; }, propDecorators: { open: [{
15980
+ }] }]; }, propDecorators: { keyFocus: [{
15981
+ type: ViewChild,
15982
+ args: [ClrKeyFocus]
15983
+ }], open: [{
15807
15984
  type: Input,
15808
15985
  args: ['clrDgActionOverflowOpen']
15809
15986
  }], openChange: [{
@@ -16302,7 +16479,9 @@ DatagridDetailRegisterer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
16302
16479
  DatagridDetailRegisterer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridDetailRegisterer, selector: "[clrIfExpanded]", ngImport: i0 });
16303
16480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridDetailRegisterer, decorators: [{
16304
16481
  type: Directive,
16305
- args: [{ selector: '[clrIfExpanded]' }]
16482
+ args: [{
16483
+ selector: '[clrIfExpanded]',
16484
+ }]
16306
16485
  }], ctorParameters: function () { return [{ type: ExpandableRowsCount, decorators: [{
16307
16486
  type: Optional
16308
16487
  }] }]; } });
@@ -16750,232 +16929,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
16750
16929
  * The full license information can be found in LICENSE in the root directory of this project.
16751
16930
  */
16752
16931
 
16753
- /*
16754
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16755
- * This software is released under MIT license.
16756
- * The full license information can be found in LICENSE in the root directory of this project.
16757
- */
16758
- const FOCUSABLE_ELEMENT_SELECTORS = new InjectionToken('FocusableElements');
16759
- const FOCUSABLE_ELEMENT_SELECTORS_PROVIDER = {
16760
- provide: FOCUSABLE_ELEMENT_SELECTORS,
16761
- useValue: [
16762
- 'a[href]',
16763
- 'area[href]',
16764
- 'input:not([disabled])',
16765
- 'button:not([disabled])',
16766
- 'select:not([disabled])',
16767
- 'textarea:not([disabled])',
16768
- 'iframe',
16769
- 'object',
16770
- 'embed',
16771
- '*[tabindex]',
16772
- '*[contenteditable=true]',
16773
- '[role=button]:not([disabled])',
16774
- ],
16775
- };
16776
-
16777
- /*
16778
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16779
- * This software is released under MIT license.
16780
- * The full license information can be found in LICENSE in the root directory of this project.
16781
- */
16782
- const CLR_LIST_KEY_NAVIGATION_CONFIG = new InjectionToken('ClrListKeyNavigationConfig');
16783
- const CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER = {
16784
- provide: CLR_LIST_KEY_NAVIGATION_CONFIG,
16785
- useValue: {
16786
- keyListItems: 'keyListItems',
16787
- layout: 'vertical',
16788
- manageFocus: true,
16789
- manageTabindex: true,
16790
- loop: false,
16791
- dir: null,
16792
- },
16793
- };
16794
-
16795
- /*
16796
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16797
- * This software is released under MIT license.
16798
- * The full license information can be found in LICENSE in the root directory of this project.
16799
- */
16800
- function getNextKeyListItem(item, items, config) {
16801
- const { code, layout, loop, dir } = config;
16802
- let i = items.indexOf(item);
16803
- const previous = i;
16804
- const inlineStart = dir === 'rtl' ? KeyNavigationCode.ArrowRight : KeyNavigationCode.ArrowLeft;
16805
- const inlineEnd = dir === 'rtl' ? KeyNavigationCode.ArrowLeft : KeyNavigationCode.ArrowRight;
16806
- const numOfItems = items.length - 1;
16807
- if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i !== 0) {
16808
- i = i - 1;
16809
- }
16810
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i === 0 && loop) {
16811
- i = numOfItems;
16812
- }
16813
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i < numOfItems) {
16814
- i = i + 1;
16815
- }
16816
- else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i === numOfItems && loop) {
16817
- i = 0;
16818
- }
16819
- else if (layout !== 'vertical' && code === inlineStart && i !== 0) {
16820
- i = i - 1;
16821
- }
16822
- else if (layout !== 'vertical' && code === inlineEnd && i < numOfItems) {
16823
- i = i + 1;
16824
- }
16825
- else if (code === KeyNavigationCode.End) {
16826
- i = numOfItems;
16827
- }
16828
- else if (code === KeyNavigationCode.Home) {
16829
- i = 0;
16830
- }
16831
- else if (code === KeyNavigationCode.PageUp) {
16832
- i = i - 4 > 0 ? i - 4 : 0;
16833
- }
16834
- else if (code === KeyNavigationCode.PageDown) {
16835
- i = i + 4 < numOfItems ? i + 4 : numOfItems;
16836
- }
16837
- return { next: i, previous };
16838
- }
16839
-
16840
- /*
16841
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16842
- * This software is released under MIT license.
16843
- * The full license information can be found in LICENSE in the root directory of this project.
16844
- */
16845
- class ClrKeyNavigationList {
16846
- constructor(host, defaultConfig, focusableElementSelectors) {
16847
- this.host = host;
16848
- this.defaultConfig = defaultConfig;
16849
- this.focusableElementSelectors = focusableElementSelectors;
16850
- this.config = {
16851
- ...this.defaultConfig,
16852
- dir: this.getClosestDirAttribute(),
16853
- };
16854
- }
16855
- set configuration(config) {
16856
- this.config = {
16857
- ...this.defaultConfig,
16858
- dir: this.getClosestDirAttribute(),
16859
- ...config,
16860
- };
16861
- }
16862
- ngAfterViewInit() {
16863
- this.initializeTabIndex();
16864
- }
16865
- onClick(e) {
16866
- this.clickItem(e);
16867
- }
16868
- onKeyDown(e) {
16869
- this.focusItem(e);
16870
- }
16871
- initializeTabIndex() {
16872
- if (this.config.manageFocus && this.config.manageTabindex) {
16873
- initializeKeyListItems(this.getListItems());
16874
- }
16875
- }
16876
- clickItem(e) {
16877
- const activeItem = this.getActiveItem(e);
16878
- if (activeItem) {
16879
- this.setActiveItem(e, activeItem);
16880
- }
16881
- }
16882
- focusItem(e) {
16883
- if (validKeyNavigationCode(e)) {
16884
- const activeItem = this.getActiveItem(e);
16885
- if (activeItem) {
16886
- const listItems = this.getListItems();
16887
- const { next, previous } = getNextKeyListItem(activeItem, Array.from(listItems), {
16888
- ...this.config,
16889
- dir: this.getClosestDirAttribute(),
16890
- code: e.code,
16891
- });
16892
- if (next !== previous) {
16893
- this.setActiveItem(e, listItems[next], listItems[previous]);
16894
- }
16895
- }
16896
- }
16897
- }
16898
- getActiveItem(e) {
16899
- const listItems = this.getListItems();
16900
- return Array.from(listItems).find(c => c === e.target.closest(listItems[0].tagName.toLocaleLowerCase()) ?? c === e.target);
16901
- }
16902
- setActiveItem(e, activeItem, previousItem) {
16903
- if (this.config.manageFocus) {
16904
- if (this.config.manageTabindex) {
16905
- setActiveKeyListItem(this.getListItems(), activeItem);
16906
- }
16907
- const items = getFlattenedFocusableItems(activeItem);
16908
- const item = items[0] ?? activeItem;
16909
- focusElement(item);
16910
- e.preventDefault();
16911
- }
16912
- activeItem.dispatchEvent(new CustomEvent('cdsKeyChange', {
16913
- bubbles: true,
16914
- detail: {
16915
- activeItem,
16916
- previousItem,
16917
- code: e.code,
16918
- metaKey: e.ctrlKey || e.metaKey,
16919
- keyListItems: this.config.keyListItems,
16920
- },
16921
- }));
16922
- }
16923
- getListItems() {
16924
- return this.host.nativeElement.querySelectorAll(this.focusableElementSelectors.join(','));
16925
- }
16926
- getClosestDirAttribute() {
16927
- const el = this.host.nativeElement.closest('[dir]');
16928
- return el ? el.getAttribute('dir') : null;
16929
- }
16930
- }
16931
- 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 });
16932
- 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 });
16933
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationList, decorators: [{
16934
- type: Directive,
16935
- args: [{
16936
- selector: '[clrKeyNavigationList]',
16937
- }]
16938
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
16939
- type: Inject,
16940
- args: [CLR_LIST_KEY_NAVIGATION_CONFIG]
16941
- }] }, { type: undefined, decorators: [{
16942
- type: Inject,
16943
- args: [FOCUSABLE_ELEMENT_SELECTORS]
16944
- }] }]; }, propDecorators: { configuration: [{
16945
- type: Input
16946
- }], onClick: [{
16947
- type: HostListener,
16948
- args: ['click', ['$event']]
16949
- }], onKeyDown: [{
16950
- type: HostListener,
16951
- args: ['keydown', ['$event']]
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 ClrKeyNavigationListModule {
16960
- }
16961
- ClrKeyNavigationListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16962
- ClrKeyNavigationListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, declarations: [ClrKeyNavigationList], exports: [ClrKeyNavigationList] });
16963
- 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] });
16964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrKeyNavigationListModule, decorators: [{
16965
- type: NgModule,
16966
- args: [{
16967
- declarations: [ClrKeyNavigationList],
16968
- exports: [ClrKeyNavigationList],
16969
- providers: [CLR_LIST_KEY_NAVIGATION_COFNIG_PROVIDER, FOCUSABLE_ELEMENT_SELECTORS_PROVIDER],
16970
- }]
16971
- }] });
16972
-
16973
- /*
16974
- * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16975
- * This software is released under MIT license.
16976
- * The full license information can be found in LICENSE in the root directory of this project.
16977
- */
16978
-
16979
16932
  /*
16980
16933
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
16981
16934
  * This software is released under MIT license.
@@ -17149,7 +17102,9 @@ ClrDatagridHideableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
17149
17102
  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 });
17150
17103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridHideableColumn, decorators: [{
17151
17104
  type: Directive,
17152
- args: [{ selector: '[clrDgHideableColumn]' }]
17105
+ args: [{
17106
+ selector: '[clrDgHideableColumn]',
17107
+ }]
17153
17108
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
17154
17109
  type: Optional
17155
17110
  }, {
@@ -17805,7 +17760,9 @@ DatagridCellRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
17805
17760
  DatagridCellRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridCellRenderer, selector: "clr-dg-cell", ngImport: i0 });
17806
17761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridCellRenderer, decorators: [{
17807
17762
  type: Directive,
17808
- args: [{ selector: 'clr-dg-cell' }]
17763
+ args: [{
17764
+ selector: 'clr-dg-cell',
17765
+ }]
17809
17766
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }]; } });
17810
17767
 
17811
17768
  /*
@@ -17919,7 +17876,10 @@ DatagridHeaderRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
17919
17876
  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 });
17920
17877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridHeaderRenderer, decorators: [{
17921
17878
  type: Directive,
17922
- args: [{ selector: 'clr-dg-column', providers: [ColumnResizerService, COLUMN_STATE_PROVIDER] }]
17879
+ args: [{
17880
+ selector: 'clr-dg-column',
17881
+ providers: [ColumnResizerService, COLUMN_STATE_PROVIDER],
17882
+ }]
17923
17883
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
17924
17884
  type: Inject,
17925
17885
  args: [COLUMN_STATE]
@@ -18024,7 +17984,9 @@ DatagridRowRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
18024
17984
  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 });
18025
17985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridRowRenderer, decorators: [{
18026
17986
  type: Directive,
18027
- args: [{ selector: 'clr-dg-row, clr-dg-row-detail' }]
17987
+ args: [{
17988
+ selector: 'clr-dg-row, clr-dg-row-detail',
17989
+ }]
18028
17990
  }], ctorParameters: function () { return [{ type: ColumnsService }]; }, propDecorators: { cells: [{
18029
17991
  type: ContentChildren,
18030
17992
  args: [DatagridCellRenderer]
@@ -18319,6 +18281,7 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
18319
18281
  ClrDragAndDropModule,
18320
18282
  ClrSpinnerModule,
18321
18283
  ClrPopoverModuleNext,
18284
+ ClrKeyFocusModule,
18322
18285
  ClrFocusTrapModule,
18323
18286
  ClrFocusOnViewInitModule], exports: [
18324
18287
  // Core
@@ -18373,6 +18336,7 @@ ClrDatagridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
18373
18336
  ClrDragAndDropModule,
18374
18337
  ClrSpinnerModule,
18375
18338
  ClrPopoverModuleNext,
18339
+ ClrKeyFocusModule,
18376
18340
  ClrFocusTrapModule,
18377
18341
  ClrFocusOnViewInitModule,
18378
18342
  ]] });
@@ -18391,12 +18355,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
18391
18355
  ClrDragAndDropModule,
18392
18356
  ClrSpinnerModule,
18393
18357
  ClrPopoverModuleNext,
18358
+ ClrKeyFocusModule,
18394
18359
  ClrFocusTrapModule,
18395
18360
  ClrFocusOnViewInitModule,
18396
18361
  ],
18397
18362
  declarations: [CLR_DATAGRID_DIRECTIVES],
18398
18363
  exports: [CLR_DATAGRID_DIRECTIVES],
18399
- entryComponents: [WrappedCell, WrappedColumn, WrappedRow],
18400
18364
  }]
18401
18365
  }], ctorParameters: function () { return []; } });
18402
18366
 
@@ -18411,7 +18375,9 @@ ClrStackViewCustomTags.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
18411
18375
  ClrStackViewCustomTags.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrStackViewCustomTags, selector: "clr-stack-content", ngImport: i0 });
18412
18376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackViewCustomTags, decorators: [{
18413
18377
  type: Directive,
18414
- args: [{ selector: 'clr-stack-content' }]
18378
+ args: [{
18379
+ selector: 'clr-stack-content',
18380
+ }]
18415
18381
  }] });
18416
18382
  class ClrStackViewLabel {
18417
18383
  constructor(uniqueId) {
@@ -19328,7 +19294,9 @@ ClrRecursiveForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
19328
19294
  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 });
19329
19295
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRecursiveForOf, decorators: [{
19330
19296
  type: Directive,
19331
- args: [{ selector: '[clrRecursiveFor][clrRecursiveForOf]' }]
19297
+ args: [{
19298
+ selector: '[clrRecursiveFor][clrRecursiveForOf]',
19299
+ }]
19332
19300
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: TreeFeaturesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { nodes: [{
19333
19301
  type: Input,
19334
19302
  args: ['clrRecursiveForOf']
@@ -19823,7 +19791,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
19823
19791
  TREE_FEATURES_PROVIDER,
19824
19792
  IfExpandService,
19825
19793
  { provide: LoadingListener, useExisting: IfExpandService },
19826
- ], 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: [
19794
+ ], 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: [
19827
19795
  trigger('toggleChildrenAnim', [
19828
19796
  transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
19829
19797
  transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
@@ -19847,7 +19815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
19847
19815
  ]),
19848
19816
  ], host: {
19849
19817
  '[class.clr-tree-node]': 'true',
19850
- }, 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" }]
19818
+ }, 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" }]
19851
19819
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
19852
19820
  type: Inject,
19853
19821
  args: [UNIQUE_ID]
@@ -19998,7 +19966,9 @@ ClrDataModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
19998
19966
  ClrDataModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDataModule, imports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule] });
19999
19967
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDataModule, decorators: [{
20000
19968
  type: NgModule,
20001
- args: [{ exports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule] }]
19969
+ args: [{
19970
+ exports: [ClrDatagridModule, ClrStackViewModule, ClrTreeViewModule],
19971
+ }]
20002
19972
  }] });
20003
19973
 
20004
19974
  /*
@@ -20919,12 +20889,12 @@ class ClrDropdownMenu extends AbstractPopover {
20919
20889
  }
20920
20890
  }
20921
20891
  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 });
20922
- 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 });
20892
+ 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 });
20923
20893
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDropdownMenu, decorators: [{
20924
20894
  type: Component,
20925
20895
  args: [{
20926
20896
  selector: 'clr-dropdown-menu',
20927
- template: ` <ng-content></ng-content> `,
20897
+ template: `<ng-content></ng-content>`,
20928
20898
  host: {
20929
20899
  '[class.dropdown-menu]': 'true',
20930
20900
  '[attr.role]': '"menu"',
@@ -21485,7 +21455,7 @@ class ClrAlerts {
21485
21455
  }
21486
21456
  }
21487
21457
  ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
21488
- 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"] }] });
21458
+ 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"] }] });
21489
21459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, decorators: [{
21490
21460
  type: Component,
21491
21461
  args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
@@ -21494,7 +21464,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
21494
21464
  '[class.alert-info]': "this.currentAlertType == 'info'",
21495
21465
  '[class.alert-success]': "this.currentAlertType == 'success'",
21496
21466
  '[class.alert-warning]': "this.currentAlertType == 'warning'",
21497
- }, 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" }]
21467
+ }, 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" }]
21498
21468
  }], ctorParameters: function () { return [{ type: MultiAlertService }]; }, propDecorators: { allAlerts: [{
21499
21469
  type: ContentChildren,
21500
21470
  args: [ClrAlert]
@@ -21547,7 +21517,9 @@ ClrEmphasisModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
21547
21517
  ClrEmphasisModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrEmphasisModule, imports: [ClrAlertModule] });
21548
21518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrEmphasisModule, decorators: [{
21549
21519
  type: NgModule,
21550
- args: [{ exports: [ClrAlertModule] }]
21520
+ args: [{
21521
+ exports: [ClrAlertModule],
21522
+ }]
21551
21523
  }] });
21552
21524
 
21553
21525
  /*
@@ -21694,7 +21666,10 @@ ClrMainContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
21694
21666
  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 });
21695
21667
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrMainContainer, decorators: [{
21696
21668
  type: Directive,
21697
- args: [{ selector: 'clr-main-container', host: { '[class.main-container]': 'true' } }]
21669
+ args: [{
21670
+ selector: 'clr-main-container',
21671
+ host: { '[class.main-container]': 'true' },
21672
+ }]
21698
21673
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ResponsiveNavigationService }]; } });
21699
21674
 
21700
21675
  /*
@@ -21739,7 +21714,10 @@ ClrAriaCurrentLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
21739
21714
  ClrAriaCurrentLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrAriaCurrentLink, selector: "[clrAriaCurrentLink]", host: { properties: { "attr.aria-current": "ariaCurrent" } }, ngImport: i0 });
21740
21715
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAriaCurrentLink, decorators: [{
21741
21716
  type: Directive,
21742
- args: [{ selector: '[clrAriaCurrentLink]', host: { '[attr.aria-current]': 'ariaCurrent' } }]
21717
+ args: [{
21718
+ selector: '[clrAriaCurrentLink]',
21719
+ host: { '[attr.aria-current]': 'ariaCurrent' },
21720
+ }]
21743
21721
  }], ctorParameters: function () { return [{ type: i1$1.RouterLinkActive }]; } });
21744
21722
 
21745
21723
  /*
@@ -21753,7 +21731,9 @@ MainContainerWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
21753
21731
  MainContainerWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: MainContainerWillyWonka, selector: "clr-main-container", usesInheritance: true, ngImport: i0 });
21754
21732
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MainContainerWillyWonka, decorators: [{
21755
21733
  type: Directive,
21756
- args: [{ selector: 'clr-main-container' }]
21734
+ args: [{
21735
+ selector: 'clr-main-container',
21736
+ }]
21757
21737
  }] });
21758
21738
 
21759
21739
  /*
@@ -21779,7 +21759,9 @@ NavDetectionOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0",
21779
21759
  NavDetectionOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: NavDetectionOompaLoompa, selector: "clr-header", usesInheritance: true, ngImport: i0 });
21780
21760
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NavDetectionOompaLoompa, decorators: [{
21781
21761
  type: Directive,
21782
- args: [{ selector: 'clr-header' }]
21762
+ args: [{
21763
+ selector: 'clr-header',
21764
+ }]
21783
21765
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: MainContainerWillyWonka, decorators: [{
21784
21766
  type: Optional
21785
21767
  }] }, { type: ResponsiveNavigationService }]; } });
@@ -22220,7 +22202,9 @@ ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13
22220
22202
  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 });
22221
22203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, decorators: [{
22222
22204
  type: Directive,
22223
- args: [{ selector: '[clr-nav-level]' }]
22205
+ args: [{
22206
+ selector: '[clr-nav-level]',
22207
+ }]
22224
22208
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
22225
22209
  type: Inject,
22226
22210
  args: [PLATFORM_ID]
@@ -22321,7 +22305,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
22321
22305
  args: [{
22322
22306
  imports: [CommonModule],
22323
22307
  declarations: [TEMPLATE_REF_DIRECTIVES],
22324
- entryComponents: [TEMPLATE_REF_DIRECTIVES],
22325
22308
  exports: [TEMPLATE_REF_DIRECTIVES],
22326
22309
  }]
22327
22310
  }] });
@@ -22337,7 +22320,9 @@ TabsWillyWonka.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
22337
22320
  TabsWillyWonka.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: TabsWillyWonka, selector: "clr-tabs", usesInheritance: true, ngImport: i0 });
22338
22321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TabsWillyWonka, decorators: [{
22339
22322
  type: Directive,
22340
- args: [{ selector: 'clr-tabs' }]
22323
+ args: [{
22324
+ selector: 'clr-tabs',
22325
+ }]
22341
22326
  }] });
22342
22327
 
22343
22328
  /*
@@ -22362,7 +22347,9 @@ ActiveOompaLoompa.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versio
22362
22347
  ActiveOompaLoompa.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ActiveOompaLoompa, selector: "[clrTabLink], clr-tab-content", usesInheritance: true, ngImport: i0 });
22363
22348
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ActiveOompaLoompa, decorators: [{
22364
22349
  type: Directive,
22365
- args: [{ selector: '[clrTabLink], clr-tab-content' }]
22350
+ args: [{
22351
+ selector: '[clrTabLink], clr-tab-content',
22352
+ }]
22366
22353
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: TabsWillyWonka, decorators: [{
22367
22354
  type: Optional
22368
22355
  }] }, { type: undefined, decorators: [{
@@ -22651,12 +22638,12 @@ class ClrTab {
22651
22638
  }
22652
22639
  }
22653
22640
  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 });
22654
- 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 });
22641
+ 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 });
22655
22642
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTab, decorators: [{
22656
22643
  type: Component,
22657
22644
  args: [{
22658
22645
  selector: 'clr-tab',
22659
- template: ` <ng-content></ng-content> `,
22646
+ template: `<ng-content></ng-content>`,
22660
22647
  providers: [IF_ACTIVE_ID_PROVIDER, AriaService],
22661
22648
  }]
22662
22649
  }], ctorParameters: function () { return [{ type: IfActiveService }, { type: undefined, decorators: [{
@@ -22678,12 +22665,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
22678
22665
  class ClrTabOverflowContent {
22679
22666
  }
22680
22667
  ClrTabOverflowContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabOverflowContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22681
- 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 });
22668
+ 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 });
22682
22669
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabOverflowContent, decorators: [{
22683
22670
  type: Component,
22684
22671
  args: [{
22685
22672
  selector: 'clr-tab-overflow-content',
22686
- template: ` <ng-content></ng-content> `,
22673
+ template: `<ng-content></ng-content>`,
22687
22674
  host: {
22688
22675
  '[class.dropdown-menu]': 'true',
22689
22676
  },
@@ -22884,8 +22871,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
22884
22871
  <ng-container
22885
22872
  *ngIf="link.tabsId === tabsId && link.inOverflow"
22886
22873
  [ngTemplateOutlet]="link.templateRefContainer.template"
22887
- >
22888
- </ng-container>
22874
+ ></ng-container>
22889
22875
  </ng-container>
22890
22876
  </clr-tab-overflow-content>
22891
22877
  </div>
@@ -22949,8 +22935,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
22949
22935
  <ng-container
22950
22936
  *ngIf="link.tabsId === tabsId && link.inOverflow"
22951
22937
  [ngTemplateOutlet]="link.templateRefContainer.template"
22952
- >
22953
- </ng-container>
22938
+ ></ng-container>
22954
22939
  </ng-container>
22955
22940
  </clr-tab-overflow-content>
22956
22941
  </div>
@@ -23339,7 +23324,7 @@ class ClrVerticalNavGroup {
23339
23324
  }
23340
23325
  }
23341
23326
  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 });
23342
- 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: [
23327
+ 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: [
23343
23328
  trigger('clrExpand', [
23344
23329
  state(EXPANDED_STATE, style({ height: '*' })),
23345
23330
  state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
@@ -23354,7 +23339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
23354
23339
  state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
23355
23340
  transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
23356
23341
  ]),
23357
- ], 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" }]
23342
+ ], 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" }]
23358
23343
  }], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
23359
23344
  type: HostBinding,
23360
23345
  args: ['class.is-expanded']
@@ -23377,12 +23362,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
23377
23362
  class ClrVerticalNavGroupChildren {
23378
23363
  }
23379
23364
  ClrVerticalNavGroupChildren.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroupChildren, deps: [], target: i0.ɵɵFactoryTarget.Component });
23380
- 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 });
23365
+ 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 });
23381
23366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroupChildren, decorators: [{
23382
23367
  type: Component,
23383
23368
  args: [{
23384
23369
  selector: 'clr-vertical-nav-group-children',
23385
- template: ` <ng-content></ng-content> `,
23370
+ template: `<ng-content></ng-content>`,
23386
23371
  }]
23387
23372
  }] });
23388
23373
 
@@ -23404,7 +23389,10 @@ ClrVerticalNavIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
23404
23389
  ClrVerticalNavIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavIcon, selector: "[clrVerticalNavIcon]", host: { classAttribute: "nav-icon" }, ngImport: i0 });
23405
23390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavIcon, decorators: [{
23406
23391
  type: Directive,
23407
- args: [{ selector: '[clrVerticalNavIcon]', host: { class: 'nav-icon' } }]
23392
+ args: [{
23393
+ selector: '[clrVerticalNavIcon]',
23394
+ host: { class: 'nav-icon' },
23395
+ }]
23408
23396
  }], ctorParameters: function () { return [{ type: VerticalNavIconService }]; } });
23409
23397
 
23410
23398
  /*
@@ -23504,7 +23492,9 @@ ClrLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
23504
23492
  ClrLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLayoutModule, imports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule] });
23505
23493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrLayoutModule, decorators: [{
23506
23494
  type: NgModule,
23507
- args: [{ exports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule] }]
23495
+ args: [{
23496
+ exports: [ClrMainContainerModule, ClrNavigationModule, ClrTabsModule, ClrVerticalNavModule],
23497
+ }]
23508
23498
  }] });
23509
23499
 
23510
23500
  /*
@@ -23728,7 +23718,9 @@ ClrModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
23728
23718
  ClrModalBody.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrModalBody, selector: ".modal-body", ngImport: i0 });
23729
23719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrModalBody, decorators: [{
23730
23720
  type: Directive,
23731
- args: [{ selector: '.modal-body' }]
23721
+ args: [{
23722
+ selector: '.modal-body',
23723
+ }]
23732
23724
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
23733
23725
 
23734
23726
  /*
@@ -24002,12 +23994,12 @@ ClrTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
24002
23994
  // AriaService in layout/tabs/providers might be a good starting point.
24003
23995
  UNIQUE_ID_PROVIDER,
24004
23996
  TooltipIdService,
24005
- ], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
23997
+ ], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
24006
23998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTooltip, decorators: [{
24007
23999
  type: Component,
24008
24000
  args: [{
24009
24001
  selector: 'clr-tooltip',
24010
- template: ` <ng-content></ng-content> `,
24002
+ template: `<ng-content></ng-content>`,
24011
24003
  host: {
24012
24004
  '[class.tooltip]': 'true',
24013
24005
  },
@@ -24022,6 +24014,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24022
24014
  }]
24023
24015
  }] });
24024
24016
 
24017
+ /*
24018
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
24019
+ * This software is released under MIT license.
24020
+ * The full license information can be found in LICENSE in the root directory of this project.
24021
+ */
24022
+ function assertNever(value) {
24023
+ throw new Error(`Unhandled value: ${value}`);
24024
+ }
24025
+
24025
24026
  /*
24026
24027
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
24027
24028
  * This software is released under MIT license.
@@ -24029,46 +24030,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24029
24030
  */
24030
24031
  const POSITIONS = ['bottom-left', 'bottom-right', 'top-left', 'top-right', 'right', 'left'];
24031
24032
  const SIZES = ['xs', 'sm', 'md', 'lg'];
24033
+ const defaultPosition = 'right';
24034
+ const defaultSize = 'sm';
24032
24035
  class ClrTooltipContent extends AbstractPopover {
24033
24036
  constructor(injector, parentHost, uniqueId, tooltipIdService) {
24034
24037
  super(injector, parentHost);
24035
24038
  this.uniqueId = uniqueId;
24036
24039
  this.tooltipIdService = tooltipIdService;
24040
+ this._position = defaultPosition;
24041
+ this._size = defaultSize;
24037
24042
  if (!parentHost) {
24038
24043
  throw new Error('clr-tooltip-content should only be used inside of a clr-tooltip');
24039
24044
  }
24040
- // Defaults
24041
- this.position = 'right';
24042
- this.size = 'sm';
24043
24045
  // Set the default id in case consumer does not supply a custom id.
24044
- this.updateId(uniqueId);
24046
+ this.id = uniqueId;
24045
24047
  }
24046
24048
  get id() {
24047
24049
  return this._id;
24048
24050
  }
24049
24051
  set id(value) {
24050
- this.updateId(value || '');
24051
- }
24052
- updateId(id) {
24052
+ const id = value || '';
24053
24053
  this._id = id;
24054
24054
  this.tooltipIdService.updateId(id);
24055
24055
  }
24056
24056
  get position() {
24057
24057
  return this._position;
24058
24058
  }
24059
- set position(position) {
24060
- // Ugh
24061
- this.renderer.removeClass(this.el.nativeElement, 'tooltip-' + this.position);
24062
- if (position && POSITIONS.indexOf(position) > -1) {
24063
- this._position = position;
24064
- }
24065
- else {
24066
- this._position = 'right';
24067
- }
24068
- // Ugh
24069
- this.renderer.addClass(this.el.nativeElement, 'tooltip-' + this.position);
24059
+ set position(value) {
24060
+ const oldPosition = this._position;
24061
+ const newPosition = POSITIONS.includes(value) ? value : defaultPosition;
24062
+ this._position = newPosition;
24063
+ this.updateCssClass({ oldClass: `tooltip-${oldPosition}`, newClass: `tooltip-${newPosition}` });
24070
24064
  // set the popover values based on direction
24071
- switch (position) {
24065
+ switch (newPosition) {
24072
24066
  case 'top-right':
24073
24067
  this.anchorPoint = Point.TOP_CENTER;
24074
24068
  this.popoverPoint = Point.LEFT_BOTTOM;
@@ -24094,34 +24088,30 @@ class ClrTooltipContent extends AbstractPopover {
24094
24088
  this.popoverPoint = Point.RIGHT_TOP;
24095
24089
  break;
24096
24090
  default:
24097
- this.anchorPoint = Point.RIGHT_CENTER;
24098
- this.popoverPoint = Point.LEFT_TOP;
24099
- break;
24091
+ assertNever(newPosition);
24100
24092
  }
24101
24093
  }
24102
24094
  get size() {
24103
24095
  return this._size;
24104
24096
  }
24105
- set size(size) {
24106
- // Ugh
24107
- this.renderer.removeClass(this.el.nativeElement, 'tooltip-' + this.size);
24108
- if (size && SIZES.indexOf(size) > -1) {
24109
- this._size = size;
24110
- }
24111
- else {
24112
- this._size = 'sm';
24113
- }
24114
- // Ugh
24115
- this.renderer.addClass(this.el.nativeElement, 'tooltip-' + this.size);
24097
+ set size(value) {
24098
+ const oldSize = this._size;
24099
+ const newSize = SIZES.includes(value) ? value : defaultSize;
24100
+ this._size = newSize;
24101
+ this.updateCssClass({ oldClass: `tooltip-${oldSize}`, newClass: `tooltip-${newSize}` });
24102
+ }
24103
+ updateCssClass({ oldClass, newClass }) {
24104
+ this.renderer.removeClass(this.el.nativeElement, oldClass);
24105
+ this.renderer.addClass(this.el.nativeElement, newClass);
24116
24106
  }
24117
24107
  }
24118
24108
  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 });
24119
- 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 });
24109
+ 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 });
24120
24110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTooltipContent, decorators: [{
24121
24111
  type: Component,
24122
24112
  args: [{
24123
24113
  selector: 'clr-tooltip-content',
24124
- template: ` <ng-content></ng-content> `,
24114
+ template: `<ng-content></ng-content>`,
24125
24115
  host: {
24126
24116
  '[class.tooltip-content]': 'true',
24127
24117
  '[style.opacity]': '1',
@@ -24229,7 +24219,9 @@ ClrPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
24229
24219
  ClrPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverModule, imports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule] });
24230
24220
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverModule, decorators: [{
24231
24221
  type: NgModule,
24232
- args: [{ exports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule] }]
24222
+ args: [{
24223
+ exports: [ClrDropdownModule, ClrSignpostModule, ClrTooltipModule],
24224
+ }]
24233
24225
  }] });
24234
24226
 
24235
24227
  /*
@@ -24514,12 +24506,12 @@ class ClrTimeline {
24514
24506
  }
24515
24507
  }
24516
24508
  ClrTimeline.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimeline, deps: [], target: i0.ɵɵFactoryTarget.Component });
24517
- 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 });
24509
+ 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 });
24518
24510
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimeline, decorators: [{
24519
24511
  type: Component,
24520
24512
  args: [{
24521
24513
  selector: 'clr-timeline',
24522
- template: ` <ng-content></ng-content> `,
24514
+ template: `<ng-content></ng-content>`,
24523
24515
  host: { '[class.clr-timeline]': 'true' },
24524
24516
  providers: [TimelineIconAttributeService],
24525
24517
  }]
@@ -24549,12 +24541,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24549
24541
  class ClrTimelineStepTitle {
24550
24542
  }
24551
24543
  ClrTimelineStepTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
24552
- 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 });
24544
+ 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 });
24553
24545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepTitle, decorators: [{
24554
24546
  type: Component,
24555
24547
  args: [{
24556
24548
  selector: 'clr-timeline-step-title',
24557
- template: ` <ng-content></ng-content> `,
24549
+ template: `<ng-content></ng-content>`,
24558
24550
  host: { '[class.clr-timeline-step-title]': 'true', '[attr.aria-hidden]': 'true' },
24559
24551
  }]
24560
24552
  }] });
@@ -24596,7 +24588,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
24596
24588
  <ng-content select="clr-timeline-step-header"></ng-content>
24597
24589
  <span class="clr-sr-only">{{ stepTitleText }}</span>
24598
24590
  <ng-container *ngIf="!isProcessing; else processing">
24599
- <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"> </cds-icon>
24591
+ <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"></cds-icon>
24600
24592
  </ng-container>
24601
24593
  <div class="clr-timeline-step-body">
24602
24594
  <ng-content select="clr-timeline-step-title"></ng-content>
@@ -24615,7 +24607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24615
24607
  <ng-content select="clr-timeline-step-header"></ng-content>
24616
24608
  <span class="clr-sr-only">{{ stepTitleText }}</span>
24617
24609
  <ng-container *ngIf="!isProcessing; else processing">
24618
- <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"> </cds-icon>
24610
+ <cds-icon [attr.status]="iconStatus" [attr.shape]="iconShape" [attr.aria-label]="iconAriaLabel"></cds-icon>
24619
24611
  </ng-container>
24620
24612
  <div class="clr-timeline-step-body">
24621
24613
  <ng-content select="clr-timeline-step-title"></ng-content>
@@ -24647,12 +24639,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24647
24639
  class ClrTimelineStepDescription {
24648
24640
  }
24649
24641
  ClrTimelineStepDescription.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepDescription, deps: [], target: i0.ɵɵFactoryTarget.Component });
24650
- 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 });
24642
+ 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 });
24651
24643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepDescription, decorators: [{
24652
24644
  type: Component,
24653
24645
  args: [{
24654
24646
  selector: 'clr-timeline-step-description',
24655
- template: ` <ng-content></ng-content> `,
24647
+ template: `<ng-content></ng-content>`,
24656
24648
  host: { '[class.clr-timeline-step-description]': 'true' },
24657
24649
  }]
24658
24650
  }] });
@@ -24665,12 +24657,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
24665
24657
  class ClrTimelineStepHeader {
24666
24658
  }
24667
24659
  ClrTimelineStepHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
24668
- 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 });
24660
+ 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 });
24669
24661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStepHeader, decorators: [{
24670
24662
  type: Component,
24671
24663
  args: [{
24672
24664
  selector: 'clr-timeline-step-header',
24673
- template: ` <ng-content></ng-content> `,
24665
+ template: `<ng-content></ng-content>`,
24674
24666
  host: { '[class.clr-timeline-step-header]': 'true' },
24675
24667
  }]
24676
24668
  }] });
@@ -25821,7 +25813,9 @@ ClrWizardPageButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ver
25821
25813
  ClrWizardPageButtons.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageButtons, selector: "[clrPageButtons]", ngImport: i0 });
25822
25814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageButtons, decorators: [{
25823
25815
  type: Directive,
25824
- args: [{ selector: '[clrPageButtons]' }]
25816
+ args: [{
25817
+ selector: '[clrPageButtons]',
25818
+ }]
25825
25819
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
25826
25820
 
25827
25821
  /*
@@ -25838,7 +25832,9 @@ ClrWizardPageHeaderActions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0
25838
25832
  ClrWizardPageHeaderActions.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageHeaderActions, selector: "[clrPageHeaderActions]", ngImport: i0 });
25839
25833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageHeaderActions, decorators: [{
25840
25834
  type: Directive,
25841
- args: [{ selector: '[clrPageHeaderActions]' }]
25835
+ args: [{
25836
+ selector: '[clrPageHeaderActions]',
25837
+ }]
25842
25838
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
25843
25839
 
25844
25840
  /*
@@ -25855,7 +25851,9 @@ ClrWizardPageNavTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", ve
25855
25851
  ClrWizardPageNavTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageNavTitle, selector: "[clrPageNavTitle]", ngImport: i0 });
25856
25852
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageNavTitle, decorators: [{
25857
25853
  type: Directive,
25858
- args: [{ selector: '[clrPageNavTitle]' }]
25854
+ args: [{
25855
+ selector: '[clrPageNavTitle]',
25856
+ }]
25859
25857
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
25860
25858
 
25861
25859
  /*
@@ -25872,7 +25870,9 @@ ClrWizardPageTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", versi
25872
25870
  ClrWizardPageTitle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardPageTitle, selector: "[clrPageTitle]", ngImport: i0 });
25873
25871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardPageTitle, decorators: [{
25874
25872
  type: Directive,
25875
- args: [{ selector: '[clrPageTitle]' }]
25873
+ args: [{
25874
+ selector: '[clrPageTitle]',
25875
+ }]
25876
25876
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
25877
25877
 
25878
25878
  /*
@@ -27384,7 +27384,9 @@ ClrWizardCustomTags.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", vers
27384
27384
  ClrWizardCustomTags.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrWizardCustomTags, selector: "clr-wizard-title, clr-wizard-pagetitle", ngImport: i0 });
27385
27385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardCustomTags, decorators: [{
27386
27386
  type: Directive,
27387
- args: [{ selector: 'clr-wizard-title, clr-wizard-pagetitle' }]
27387
+ args: [{
27388
+ selector: 'clr-wizard-title, clr-wizard-pagetitle',
27389
+ }]
27388
27390
  }] });
27389
27391
 
27390
27392
  /*
@@ -27814,5 +27816,5 @@ const CLR_MENU_POSITIONS = [
27814
27816
  * Generated bundle index. Do not edit.
27815
27817
  */
27816
27818
 
27817
- 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 };
27819
+ 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 };
27818
27820
  //# sourceMappingURL=clr-angular.mjs.map