@clr/angular 12.0.14 → 12.1.1

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.
@@ -4,7 +4,7 @@ import { ClarityIcons, ellipsisHorizontalIcon, exclamationCircleIcon, checkCircl
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule, DOCUMENT, isPlatformBrowser, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth, NgForOf } from '@angular/common';
6
6
  import { Subject, fromEvent, BehaviorSubject, of, ReplaySubject, isObservable, combineLatest, Observable } from 'rxjs';
7
- import { filter, debounceTime, first, startWith, switchMap, take, map, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
7
+ import { filter, debounceTime, first, startWith, switchMap, take, map, takeUntil, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
8
8
  import { trigger, transition, style, animate, keyframes, state } from '@angular/animations';
9
9
  import { NgControl, FormsModule, SelectMultipleControlValueAccessor, FormControl, FormGroup, FormGroupName, NgModelGroup, FormGroupDirective, NgForm } from '@angular/forms';
10
10
  import { FocusTrapTrackerService, createId, isFocusable, isHTMLElement } from '@cds/core/internal';
@@ -5852,11 +5852,7 @@ ClrPasswordContainer.decorators = [
5852
5852
  class="clr-input-group-icon-action"
5853
5853
  type="button"
5854
5854
  >
5855
- <cds-icon
5856
- status="info"
5857
- [attr.shape]="show ? 'eye-hide' : 'eye'"
5858
- [attr.title]="show ? commonStrings.keys.hide : commonStrings.keys.show"
5859
- ></cds-icon>
5855
+ <cds-icon status="info" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
5860
5856
  <span class="clr-sr-only">{{
5861
5857
  show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
5862
5858
  }}</span>
@@ -7802,7 +7798,7 @@ class ClrCombobox extends WrappedFormControl {
7802
7798
  ClrCombobox.decorators = [
7803
7799
  { type: Component, args: [{
7804
7800
  selector: 'clr-combobox',
7805
- 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\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n role=\"combobox\"\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 aria-multiline=\"false\"\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",
7801
+ 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",
7806
7802
  providers: [
7807
7803
  ClrPopoverToggleService,
7808
7804
  { provide: POPOVER_HOST_ANCHOR, useExisting: ElementRef },
@@ -11607,7 +11603,7 @@ ClrDatagridPlaceholder.decorators = [
11607
11603
  template: `
11608
11604
  <div class="datagrid-placeholder" [class.datagrid-empty]="emptyDatagrid" role="row">
11609
11605
  <div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
11610
- <span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
11606
+ <span role="gridcell" class="datagrid-placeholder-content"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
11611
11607
  </div>
11612
11608
  `,
11613
11609
  host: { '[class.datagrid-placeholder-container]': 'true' }
@@ -12794,13 +12790,187 @@ ColumnsService.decorators = [
12794
12790
  { type: Injectable }
12795
12791
  ];
12796
12792
 
12793
+ /*
12794
+ * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
12795
+ * This software is released under MIT license.
12796
+ * The full license information can be found in LICENSE in the root directory of this project.
12797
+ */
12798
+ function getTabableItems(el) {
12799
+ const tabableSelector = [
12800
+ 'a[href]',
12801
+ 'area[href]',
12802
+ 'input:not([disabled])',
12803
+ 'button:not([disabled])',
12804
+ 'select:not([disabled])',
12805
+ 'textarea:not([disabled])',
12806
+ 'iframe',
12807
+ 'object',
12808
+ 'embed',
12809
+ '*[tabindex]',
12810
+ '*[contenteditable=true]',
12811
+ '[role=button]:not([disabled])',
12812
+ ].join(',');
12813
+ return Array.from(el.querySelectorAll(tabableSelector));
12814
+ }
12815
+ class KeyNavigationGridController {
12816
+ constructor(zone) {
12817
+ this.zone = zone;
12818
+ this.listenersAdded = false;
12819
+ this.destroy$ = new Subject();
12820
+ this.config = {
12821
+ keyGridRows: '[role=row]:not(.datagrid-placeholder)',
12822
+ keyGridCells: '[role=gridcell]:not(.datagrid-hidden-column):not(.datagrid-placeholder-content), [role=columnheader]:not(.datagrid-hidden-column):not(.datagrid-placeholder-content), .datagrid-detail-caret',
12823
+ keyGrid: '[role=grid]',
12824
+ };
12825
+ }
12826
+ get grid() {
12827
+ var _a;
12828
+ return (_a = this.host) === null || _a === void 0 ? void 0 : _a.querySelector(this.config.keyGrid);
12829
+ }
12830
+ get rows() {
12831
+ var _a;
12832
+ return (_a = this.host) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.config.keyGridRows);
12833
+ }
12834
+ get cells() {
12835
+ var _a;
12836
+ return (_a = this.host) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.config.keyGridCells);
12837
+ }
12838
+ ngOnDestroy() {
12839
+ this.destroy$.next();
12840
+ this.destroy$.complete();
12841
+ }
12842
+ addListeners() {
12843
+ if (this.listenersAdded) {
12844
+ return;
12845
+ }
12846
+ this.zone.runOutsideAngular(() => {
12847
+ fromEvent(this.grid, 'mousedown')
12848
+ .pipe(takeUntil(this.destroy$))
12849
+ .subscribe((e) => {
12850
+ // preserve right click for context menus & keyboard mouse control https://apple.stackexchange.com/questions/32715/how-do-i-open-the-context-menu-from-a-mac-keyboard
12851
+ if (e.buttons === 1 && !e.ctrlKey) {
12852
+ const activeCell = this.cells
12853
+ ? Array.from(this.cells).find(c => c === e.target || c === e.target.closest(this.config.keyGridCells))
12854
+ : null;
12855
+ if (activeCell) {
12856
+ this.setActiveCell(activeCell);
12857
+ }
12858
+ }
12859
+ });
12860
+ fromEvent(this.grid, 'keydown')
12861
+ .pipe(takeUntil(this.destroy$))
12862
+ .subscribe((e) => {
12863
+ // Skip column resize events
12864
+ if (e.target.classList.contains('drag-handle') &&
12865
+ (e.code === 'ArrowLeft' || e.code === 'ArrowRight')) {
12866
+ return;
12867
+ }
12868
+ if (e.code === 'ArrowUp' ||
12869
+ e.code === 'ArrowDown' ||
12870
+ e.code === 'ArrowLeft' ||
12871
+ e.code === 'ArrowRight' ||
12872
+ e.code === 'End' ||
12873
+ e.code === 'Home' ||
12874
+ e.code === 'PageUp' ||
12875
+ e.code === 'PageDown') {
12876
+ const { x, y } = this.getNextItemCoordinate(e);
12877
+ const activeItem = this.rows
12878
+ ? Array.from(this.rows[y].querySelectorAll(this.config.keyGridCells))[x]
12879
+ : null;
12880
+ if (activeItem) {
12881
+ this.setActiveCell(activeItem);
12882
+ }
12883
+ e.preventDefault();
12884
+ }
12885
+ });
12886
+ });
12887
+ this.listenersAdded = true;
12888
+ }
12889
+ initializeKeyGrid(host) {
12890
+ this.host = host;
12891
+ this.addListeners();
12892
+ this.resetKeyGrid();
12893
+ }
12894
+ resetKeyGrid() {
12895
+ var _a;
12896
+ (_a = this.cells) === null || _a === void 0 ? void 0 : _a.forEach((i) => i.setAttribute('tabindex', '-1'));
12897
+ const firstCell = this.cells ? this.cells[0] : null;
12898
+ firstCell === null || firstCell === void 0 ? void 0 : firstCell.setAttribute('tabindex', '0');
12899
+ }
12900
+ setActiveCell(activeCell) {
12901
+ const prior = this.cells ? Array.from(this.cells).find(c => c.getAttribute('tabindex') === '0') : null;
12902
+ if (prior) {
12903
+ prior.setAttribute('tabindex', '-1');
12904
+ }
12905
+ activeCell.setAttribute('tabindex', '0');
12906
+ const items = getTabableItems(activeCell);
12907
+ const item = activeCell.getAttribute('role') !== 'columnheader' && items[0] ? items[0] : activeCell;
12908
+ item.focus();
12909
+ }
12910
+ getNextItemCoordinate(e) {
12911
+ var _a;
12912
+ let currentCell = this.cells ? Array.from(this.cells).find(i => i.getAttribute('tabindex') === '0') : null;
12913
+ if (e.code === 'Tab') {
12914
+ currentCell = document.activeElement;
12915
+ }
12916
+ const currentRow = this.rows && currentCell ? Array.from(this.rows).find(r => r.contains(currentCell)) : null;
12917
+ const numOfRows = this.rows ? this.rows.length - 1 : 0;
12918
+ const numOfColumns = this.cells ? this.cells.length / this.rows.length - 1 : 0;
12919
+ let x = currentRow && currentCell
12920
+ ? Array.from(currentRow.querySelectorAll(this.config.keyGridCells)).indexOf(currentCell)
12921
+ : 0;
12922
+ let y = currentRow && currentCell && this.rows ? Array.from(this.rows).indexOf(currentRow) : 0;
12923
+ const dir = this.host.dir;
12924
+ const inlineStart = dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';
12925
+ const inlineEnd = dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';
12926
+ const itemsPerPage = Math.floor(((_a = this.host) === null || _a === void 0 ? void 0 : _a.querySelector('.datagrid').clientHeight) / this.rows[0].clientHeight) - 1 || 0;
12927
+ if (e.code === 'ArrowUp' && y !== 0) {
12928
+ y = y - 1;
12929
+ }
12930
+ else if (e.code === 'ArrowDown' && y < numOfRows) {
12931
+ y = y + 1;
12932
+ }
12933
+ else if (e.code === inlineStart && x !== 0) {
12934
+ x = x - 1;
12935
+ }
12936
+ else if (e.code === inlineEnd && x < numOfColumns) {
12937
+ x = x + 1;
12938
+ }
12939
+ else if (e.code === 'End') {
12940
+ x = numOfColumns;
12941
+ if (e.ctrlKey) {
12942
+ y = numOfRows;
12943
+ }
12944
+ }
12945
+ else if (e.code === 'Home') {
12946
+ x = 0;
12947
+ if (e.ctrlKey) {
12948
+ y = 0;
12949
+ }
12950
+ }
12951
+ else if (e.code === 'PageUp') {
12952
+ y = y - itemsPerPage > 0 ? y - itemsPerPage : 0;
12953
+ }
12954
+ else if (e.code === 'PageDown') {
12955
+ y = y + itemsPerPage < numOfRows ? y + itemsPerPage : numOfRows;
12956
+ }
12957
+ return { x, y };
12958
+ }
12959
+ }
12960
+ KeyNavigationGridController.decorators = [
12961
+ { type: Injectable }
12962
+ ];
12963
+ KeyNavigationGridController.ctorParameters = () => [
12964
+ { type: NgZone }
12965
+ ];
12966
+
12797
12967
  /*
12798
12968
  * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
12799
12969
  * This software is released under MIT license.
12800
12970
  * The full license information can be found in LICENSE in the root directory of this project.
12801
12971
  */
12802
12972
  class ClrDatagrid {
12803
- constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, el, page, commonStrings) {
12973
+ constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, datagridId, el, page, commonStrings, columnsService, keyNavigation) {
12804
12974
  this.organizer = organizer;
12805
12975
  this.items = items;
12806
12976
  this.expandableRows = expandableRows;
@@ -12813,6 +12983,8 @@ class ClrDatagrid {
12813
12983
  this.el = el;
12814
12984
  this.page = page;
12815
12985
  this.commonStrings = commonStrings;
12986
+ this.columnsService = columnsService;
12987
+ this.keyNavigation = keyNavigation;
12816
12988
  /* reference to the enum so that template can access */
12817
12989
  this.SELECTION_TYPE = SelectionType;
12818
12990
  /**
@@ -12938,6 +13110,7 @@ class ClrDatagrid {
12938
13110
  * Our setup happens in the view of some of our components, so we wait for it to be done before starting
12939
13111
  */
12940
13112
  ngAfterViewInit() {
13113
+ this.keyNavigation.initializeKeyGrid(this.el.nativeElement);
12941
13114
  // TODO: determine if we can get rid of provider wiring in view init so that subscriptions can be done earlier
12942
13115
  this.refresh.emit(this.stateProvider.state);
12943
13116
  this._subscriptions.push(this.stateProvider.change.subscribe(state => this.refresh.emit(state)), this.selection.change.subscribe(s => {
@@ -12947,11 +13120,16 @@ class ClrDatagrid {
12947
13120
  else if (this.selection.selectionType === SelectionType.Multi) {
12948
13121
  this.selectedChanged.emit(s);
12949
13122
  }
12950
- }), this.page.change.subscribe(() => {
13123
+ }),
13124
+ // Reinitialize arrow key navigation on page changes
13125
+ this.page.change.subscribe(() => {
13126
+ this.keyNavigation.resetKeyGrid();
12951
13127
  if (!this.clrDgDisablePageFocus) {
12952
13128
  this.datagridTable.nativeElement.focus();
12953
13129
  }
12954
13130
  }),
13131
+ // Reinitialize arrow key navigation on hide/unhide columns
13132
+ combineLatest(this.columnsService.columns).subscribe(() => { var _a; return (_a = this.keyNavigation) === null || _a === void 0 ? void 0 : _a.resetKeyGrid(); }),
12955
13133
  // A subscription that listens for displayMode changes on the datagrid
12956
13134
  this.displayMode.view.subscribe(viewChange => {
12957
13135
  // Remove any projected columns from the projectedDisplayColumns container
@@ -13002,7 +13180,7 @@ class ClrDatagrid {
13002
13180
  ClrDatagrid.decorators = [
13003
13181
  { type: Component, args: [{
13004
13182
  selector: 'clr-datagrid',
13005
- 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<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\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]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n",
13183
+ 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<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n (keydown.space)=\"allSelected = !allSelected; $event.preventDefault()\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <!-- We need to move focus and space-key handling to the parent because of keyboard arrow key navigation,\n which is not able to transfer focus directly on the input when focused with the tab key -->\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n tabindex=\"-1\"\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]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n",
13006
13184
  providers: [
13007
13185
  Selection,
13008
13186
  Sort,
@@ -13019,6 +13197,7 @@ ClrDatagrid.decorators = [
13019
13197
  TableSizeService,
13020
13198
  ColumnsService,
13021
13199
  DisplayModeService,
13200
+ KeyNavigationGridController,
13022
13201
  ],
13023
13202
  host: {
13024
13203
  '[class.datagrid-host]': 'true',
@@ -13039,7 +13218,9 @@ ClrDatagrid.ctorParameters = () => [
13039
13218
  { type: String, decorators: [{ type: Inject, args: [UNIQUE_ID,] }] },
13040
13219
  { type: ElementRef },
13041
13220
  { type: Page },
13042
- { type: ClrCommonStringsService }
13221
+ { type: ClrCommonStringsService },
13222
+ { type: ColumnsService },
13223
+ { type: KeyNavigationGridController }
13043
13224
  ];
13044
13225
  ClrDatagrid.propDecorators = {
13045
13226
  loading: [{ type: Input, args: ['clrDgLoading',] }],
@@ -18498,7 +18679,6 @@ ClrAriaLiveService.ctorParameters = () => [
18498
18679
  const createCdsCloseButton = (document, ariaLabel) => {
18499
18680
  const cdsCloseButton = document.createElement('cds-internal-close-button');
18500
18681
  cdsCloseButton.setAttribute('icon-size', '32');
18501
- console.log(ariaLabel);
18502
18682
  cdsCloseButton.setAttribute('aria-label', ariaLabel);
18503
18683
  cdsCloseButton.setAttribute('aria-hidden', 'true');
18504
18684
  cdsCloseButton.setAttribute('type', 'button');
@@ -18615,7 +18795,7 @@ class ClrNavLevel extends FocusTrap {
18615
18795
  if (current === navHost) {
18616
18796
  return;
18617
18797
  }
18618
- else if (current.classList.contains('nav-link')) {
18798
+ else if (current.classList.contains('nav-link') && this._document.body.clientWidth < LARGE_BREAKPOINT) {
18619
18799
  this.close();
18620
18800
  return;
18621
18801
  }
@@ -24467,5 +24647,5 @@ const CLR_MENU_POSITIONS = [
24467
24647
  * Generated bundle index. Do not edit.
24468
24648
  */
24469
24649
 
24470
- 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, 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, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, 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, ɵ0, domAdapterFactory as ɵa, LayoutService as ɵb, AlertIconAndTypesService as ɵba, MultiAlertService as ɵbb, ControlIdService as ɵbc, NgControlService as ɵbd, ClrAbstractControl as ɵbe, ContainerIdService as ɵbf, AbstractIfState as ɵbg, IfControlStateService as ɵbh, MarkControlService as ɵbi, ControlClassService as ɵbj, ClrHostWrappingModule as ɵbk, EmptyAnchor as ɵbl, ClrKeyFocusModule as ɵbm, ClrKeyFocus as ɵbn, ClrKeyFocusItem as ɵbo, ClrRovingTabindex as ɵbp, OptionSelectionService as ɵbq, AriaService as ɵbr, ComboboxFocusHandler as ɵbs, COMBOBOX_FOCUS_HANDLER_PROVIDER as ɵbt, ComboboxContainerService as ɵbu, DateNavigationService as ɵbv, DateFormControlService as ɵbw, LocaleHelperService as ɵbx, FocusService$1 as ɵby, DateIOService as ɵbz, FOCUS_ON_VIEW_INIT_PROVIDER as ɵc, DatepickerEnabledService as ɵca, ViewManagerService as ɵcb, DatepickerFocusService as ɵcc, DatalistIdService as ɵcd, ClrOutsideClickModule as ɵce, OUSTIDE_CLICK_DIRECTIVES as ɵcf, OutsideClick as ɵcg, ClrExpandableAnimationModule as ɵch, DomAdapter as ɵci, DragEventListenerService as ɵcj, DragAndDropEventBusService as ɵck, DragHandleRegistrarService as ɵcl, DraggableSnapshotService as ɵcm, GlobalDragModeService as ɵcn, Selection as ɵco, Items as ɵcp, FiltersProvider as ɵcq, Page as ɵcr, StateDebouncer as ɵcs, Sort as ɵct, DatagridRenderOrganizer as ɵcu, RowActionService as ɵcv, ExpandableRowsCount as ɵcw, DetailService as ɵcx, StateProvider as ɵcy, TableSizeService as ɵcz, FOCUS_TRAP_DIRECTIVES as ɵd, ColumnsService as ɵda, DisplayModeService as ɵdb, DatagridFilterRegistrar as ɵdc, CustomFilter as ɵdd, DatagridIfExpandService as ɵde, SignpostFocusManager as ɵdf, SignpostIdService as ɵdg, ColumnResizerService as ɵdh, COLUMN_STATE as ɵdi, columnStateFactory as ɵdj, COLUMN_STATE_PROVIDER as ɵdk, WillyWonka as ɵdm, OompaLoompa as ɵdn, StackControl as ɵdo, TreeFeaturesService as ɵdp, treeFeaturesFactory as ɵdq, TREE_FEATURES_PROVIDER as ɵdr, TreeFocusManagerService as ɵds, RecursiveChildren as ɵdt, ScrollingService as ɵdu, ButtonInGroupService as ɵdv, ResponsiveNavigationService as ɵdw, FocusTrap as ɵdy, ClrTemplateRefModule as ɵdz, RootDropdownService as ɵe, TEMPLATE_REF_DIRECTIVES as ɵea, TemplateRefContainer as ɵeb, TabsService as ɵec, TABS_ID as ɵed, tokenFactory as ɵee, TABS_ID_PROVIDER as ɵef, VerticalNavService as ɵeg, VerticalNavIconService as ɵeh, VerticalNavGroupRegistrationService as ɵei, VerticalNavGroupService as ɵej, TooltipIdService as ɵek, WizardNavigationService as ɵel, PageCollectionService as ɵem, ButtonHubService as ɵen, HeaderActionService as ɵeo, AccordionService as ɵep, panelAnimation as ɵeq, stepAnimation as ɵer, defaultAnimationTiming as ɵes, StepperService as ɵet, TimelineIconAttributeService as ɵeu, clrRootDropdownFactory as ɵf, ROOT_DROPDOWN_PROVIDER as ɵg, POPOVER_HOST_ANCHOR as ɵh, FocusService as ɵi, clrFocusServiceFactory as ɵj, FOCUS_SERVICE_PROVIDER as ɵk, DropdownFocusHandler as ɵl, DROPDOWN_FOCUS_HANDLER_PROVIDER as ɵm, customFocusableItemProvider as ɵn, UNIQUE_ID as ɵo, uniqueIdFactory as ɵp, UNIQUE_ID_PROVIDER as ɵq, FocusableItem as ɵr, AbstractPopover as ɵs, BasicFocusableItem as ɵt, BASIC_FOCUSABLE_ITEM_PROVIDER as ɵu, IF_ACTIVE_ID as ɵv, tokenFactory$1 as ɵw, IF_ACTIVE_ID_PROVIDER as ɵx, IfActiveService as ɵy, IfExpandService as ɵz };
24650
+ 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, 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, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, 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, ɵ0, domAdapterFactory as ɵa, LayoutService as ɵb, AlertIconAndTypesService as ɵba, MultiAlertService as ɵbb, ControlIdService as ɵbc, NgControlService as ɵbd, ClrAbstractControl as ɵbe, ContainerIdService as ɵbf, AbstractIfState as ɵbg, IfControlStateService as ɵbh, MarkControlService as ɵbi, ControlClassService as ɵbj, ClrHostWrappingModule as ɵbk, EmptyAnchor as ɵbl, ClrKeyFocusModule as ɵbm, ClrKeyFocus as ɵbn, ClrKeyFocusItem as ɵbo, ClrRovingTabindex as ɵbp, OptionSelectionService as ɵbq, AriaService as ɵbr, ComboboxFocusHandler as ɵbs, COMBOBOX_FOCUS_HANDLER_PROVIDER as ɵbt, ComboboxContainerService as ɵbu, DateNavigationService as ɵbv, DateFormControlService as ɵbw, LocaleHelperService as ɵbx, FocusService$1 as ɵby, DateIOService as ɵbz, FOCUS_ON_VIEW_INIT_PROVIDER as ɵc, DatepickerEnabledService as ɵca, ViewManagerService as ɵcb, DatepickerFocusService as ɵcc, DatalistIdService as ɵcd, ClrOutsideClickModule as ɵce, OUSTIDE_CLICK_DIRECTIVES as ɵcf, OutsideClick as ɵcg, ClrExpandableAnimationModule as ɵch, DomAdapter as ɵci, DragEventListenerService as ɵcj, DragAndDropEventBusService as ɵck, DragHandleRegistrarService as ɵcl, DraggableSnapshotService as ɵcm, GlobalDragModeService as ɵcn, Selection as ɵco, Items as ɵcp, FiltersProvider as ɵcq, Page as ɵcr, StateDebouncer as ɵcs, Sort as ɵct, DatagridRenderOrganizer as ɵcu, RowActionService as ɵcv, ExpandableRowsCount as ɵcw, DetailService as ɵcx, StateProvider as ɵcy, TableSizeService as ɵcz, FOCUS_TRAP_DIRECTIVES as ɵd, ColumnsService as ɵda, DisplayModeService as ɵdb, KeyNavigationGridController as ɵdc, DatagridFilterRegistrar as ɵdd, CustomFilter as ɵde, DatagridIfExpandService as ɵdf, SignpostFocusManager as ɵdg, SignpostIdService as ɵdh, ColumnResizerService as ɵdi, COLUMN_STATE as ɵdj, columnStateFactory as ɵdk, COLUMN_STATE_PROVIDER as ɵdl, WillyWonka as ɵdn, OompaLoompa as ɵdo, StackControl as ɵdp, TreeFeaturesService as ɵdq, treeFeaturesFactory as ɵdr, TREE_FEATURES_PROVIDER as ɵds, TreeFocusManagerService as ɵdt, RecursiveChildren as ɵdu, ScrollingService as ɵdv, ButtonInGroupService as ɵdw, ResponsiveNavigationService as ɵdx, FocusTrap as ɵdz, RootDropdownService as ɵe, ClrTemplateRefModule as ɵea, TEMPLATE_REF_DIRECTIVES as ɵeb, TemplateRefContainer as ɵec, TabsService as ɵed, TABS_ID as ɵee, tokenFactory as ɵef, TABS_ID_PROVIDER as ɵeg, VerticalNavService as ɵeh, VerticalNavIconService as ɵei, VerticalNavGroupRegistrationService as ɵej, VerticalNavGroupService as ɵek, TooltipIdService as ɵel, WizardNavigationService as ɵem, PageCollectionService as ɵen, ButtonHubService as ɵeo, HeaderActionService as ɵep, AccordionService as ɵeq, panelAnimation as ɵer, stepAnimation as ɵes, defaultAnimationTiming as ɵet, StepperService as ɵeu, TimelineIconAttributeService as ɵev, clrRootDropdownFactory as ɵf, ROOT_DROPDOWN_PROVIDER as ɵg, POPOVER_HOST_ANCHOR as ɵh, FocusService as ɵi, clrFocusServiceFactory as ɵj, FOCUS_SERVICE_PROVIDER as ɵk, DropdownFocusHandler as ɵl, DROPDOWN_FOCUS_HANDLER_PROVIDER as ɵm, customFocusableItemProvider as ɵn, UNIQUE_ID as ɵo, uniqueIdFactory as ɵp, UNIQUE_ID_PROVIDER as ɵq, FocusableItem as ɵr, AbstractPopover as ɵs, BasicFocusableItem as ɵt, BASIC_FOCUSABLE_ITEM_PROVIDER as ɵu, IF_ACTIVE_ID as ɵv, tokenFactory$1 as ɵw, IF_ACTIVE_ID_PROVIDER as ɵx, IfActiveService as ɵy, IfExpandService as ɵz };
24471
24651
  //# sourceMappingURL=clr-angular.js.map