@clr/angular 17.2.0 → 17.2.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.
Files changed (35) hide show
  1. package/clarity.api.md +26 -6
  2. package/data/datagrid/datagrid-detail-header.d.ts +4 -1
  3. package/data/datagrid/datagrid-detail.d.ts +5 -1
  4. package/data/datagrid/datagrid-filter.d.ts +4 -2
  5. package/data/datagrid/datagrid-if-detail.d.ts +9 -0
  6. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +5 -2
  7. package/data/datagrid/datagrid.d.ts +1 -0
  8. package/data/datagrid/enums/column-changes.enum.d.ts +2 -1
  9. package/data/datagrid/providers/columns.service.d.ts +1 -0
  10. package/data/datagrid/providers/detail.service.d.ts +3 -0
  11. package/data/datagrid/render/main-renderer.d.ts +1 -1
  12. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +1 -0
  13. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +3 -1
  14. package/esm2020/data/datagrid/datagrid-detail-header.mjs +12 -6
  15. package/esm2020/data/datagrid/datagrid-detail.mjs +36 -8
  16. package/esm2020/data/datagrid/datagrid-filter.mjs +22 -13
  17. package/esm2020/data/datagrid/datagrid-if-detail.mjs +30 -7
  18. package/esm2020/data/datagrid/datagrid-row.mjs +3 -3
  19. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +13 -5
  20. package/esm2020/data/datagrid/datagrid.mjs +17 -6
  21. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +3 -2
  22. package/esm2020/data/datagrid/providers/columns.service.mjs +9 -3
  23. package/esm2020/data/datagrid/providers/detail.service.mjs +10 -5
  24. package/esm2020/data/datagrid/render/cell-renderer.mjs +1 -3
  25. package/esm2020/data/datagrid/render/main-renderer.mjs +21 -16
  26. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +6 -3
  27. package/esm2020/forms/common/abstract-container.mjs +5 -2
  28. package/esm2020/timeline/timeline-step.mjs +3 -3
  29. package/esm2020/timeline/timeline.mjs +3 -3
  30. package/esm2020/utils/i18n/common-strings.default.mjs +2 -2
  31. package/fesm2015/clr-angular.mjs +354 -246
  32. package/fesm2015/clr-angular.mjs.map +1 -1
  33. package/fesm2020/clr-angular.mjs +348 -241
  34. package/fesm2020/clr-angular.mjs.map +1 -1
  35. package/package.json +2 -2
package/clarity.api.md CHANGED
@@ -1243,6 +1243,8 @@ export class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, On
1243
1243
  // (undocumented)
1244
1244
  singleSelectedChanged: EventEmitter<T>;
1245
1245
  // (undocumented)
1246
+ toggleAllSelected($event: any): void;
1247
+ // (undocumented)
1246
1248
  set trackBy(value: ClrDatagridItemsTrackByFunction<T>);
1247
1249
  // (undocumented)
1248
1250
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": "clrLoadingMoreItems"; "clrDgSingleSelectionAriaLabel": "clrDgSingleSelectionAriaLabel"; "clrDgSingleActionableAriaLabel": "clrDgSingleActionableAriaLabel"; "clrDetailExpandableAriaLabel": "clrDetailExpandableAriaLabel"; "clrDgDisablePageFocus": "clrDgDisablePageFocus"; "loading": "clrDgLoading"; "selected": "clrDgSelected"; "singleSelected": "clrDgSingleSelected"; "clrDgPreserveSelection": "clrDgPreserveSelection"; "rowSelectionMode": "clrDgRowSelection"; "trackBy": "clrDgItemsTrackBy"; }, { "selectedChanged": "clrDgSelectedChange"; "singleSelectedChanged": "clrDgSingleSelectedChange"; "refresh": "clrDgRefresh"; }, ["iterator", "placeholder", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
@@ -1446,6 +1448,10 @@ export interface ClrDatagridComparatorInterface<T> {
1446
1448
  export class ClrDatagridDetail {
1447
1449
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
1448
1450
  // (undocumented)
1451
+ ariaLabel: string;
1452
+ // (undocumented)
1453
+ ariaLabelledBy: string;
1454
+ // (undocumented)
1449
1455
  close(): void;
1450
1456
  // (undocumented)
1451
1457
  commonStrings: ClrCommonStringsService;
@@ -1454,7 +1460,11 @@ export class ClrDatagridDetail {
1454
1460
  // (undocumented)
1455
1461
  header: ClrDatagridDetailHeader;
1456
1462
  // (undocumented)
1457
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, {}, {}, ["header"], ["*"], false, never>;
1463
+ get label(): string;
1464
+ // (undocumented)
1465
+ get labelledBy(): string;
1466
+ // (undocumented)
1467
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, { "ariaLabelledBy": "clrDetailAriaLabelledBy"; "ariaLabel": "clrDetailAriaLabel"; }, {}, ["header"], ["*"], false, never>;
1458
1468
  // (undocumented)
1459
1469
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetail, never>;
1460
1470
  }
@@ -1468,13 +1478,17 @@ export class ClrDatagridDetailBody {
1468
1478
  }
1469
1479
 
1470
1480
  // @public (undocumented)
1471
- export class ClrDatagridDetailHeader {
1481
+ export class ClrDatagridDetailHeader implements AfterViewInit {
1472
1482
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
1473
1483
  // (undocumented)
1474
1484
  commonStrings: ClrCommonStringsService;
1475
1485
  // (undocumented)
1476
1486
  detailService: DetailService;
1477
1487
  // (undocumented)
1488
+ ngAfterViewInit(): void;
1489
+ // (undocumented)
1490
+ title: ElementRef;
1491
+ // (undocumented)
1478
1492
  get titleId(): string;
1479
1493
  // (undocumented)
1480
1494
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetailHeader, "clr-dg-detail-header", never, {}, {}, never, ["*"], false, never>;
@@ -1486,7 +1500,7 @@ export class ClrDatagridDetailHeader {
1486
1500
  //
1487
1501
  // @public
1488
1502
  export class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<T, ClrDatagridFilterInterface<T>> implements CustomFilter, OnChanges, OnDestroy {
1489
- constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>);
1503
+ constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>, keyNavigation: KeyNavigationGridController);
1490
1504
  get active(): boolean;
1491
1505
  // (undocumented)
1492
1506
  anchor: ElementRef;
@@ -1516,7 +1530,7 @@ export class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<T, ClrDa
1516
1530
  // (undocumented)
1517
1531
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridFilter<any>, "clr-dg-filter", never, { "open": "clrDgFilterOpen"; "customFilter": "clrDgFilter"; }, { "openChange": "clrDgFilterOpenChange"; }, never, ["*"], false, never>;
1518
1532
  // (undocumented)
1519
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, never>;
1533
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, [null, null, null, null, null, { optional: true; }]>;
1520
1534
  }
1521
1535
 
1522
1536
  // @public (undocumented)
@@ -2526,6 +2540,10 @@ export class ClrIfDetail implements OnInit, OnDestroy {
2526
2540
  // (undocumented)
2527
2541
  stateChange: EventEmitter<any>;
2528
2542
  // (undocumented)
2543
+ get viewContext(): {
2544
+ $implicit: any;
2545
+ };
2546
+ // (undocumented)
2529
2547
  static ɵdir: i0.ɵɵDirectiveDeclaration<ClrIfDetail, "[clrIfDetail]", never, { "state": "clrIfDetail"; }, { "stateChange": "clrIfDetailChange"; }, never, never, false, never>;
2530
2548
  // (undocumented)
2531
2549
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrIfDetail, never>;
@@ -5225,6 +5243,8 @@ export class ÇlrDatagridMainRenderer implements AfterContentInit, AfterViewInit
5225
5243
  // (undocumented)
5226
5244
  ngOnDestroy(): void;
5227
5245
  // (undocumented)
5246
+ ngOnInit(): void;
5247
+ // (undocumented)
5228
5248
  toggleDetailPane(state: boolean): void;
5229
5249
  // (undocumented)
5230
5250
  static ɵdir: i0.ɵɵDirectiveDeclaration<ÇlrDatagridMainRenderer, "clr-datagrid", never, {}, {}, ["headers", "rows"], never, false, never>;
@@ -5260,7 +5280,7 @@ export class ÇlrDatagridSelectionCellDirective {
5260
5280
 
5261
5281
  // @public (undocumented)
5262
5282
  export class ÇlrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoCheck, OnDestroy {
5263
- constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, injector: EnvironmentInjector);
5283
+ constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, columnsService: ColumnsService, injector: EnvironmentInjector);
5264
5284
  // Warning: (ae-forgotten-export) The symbol "CdkVirtualForInputs" needs to be exported by the entry point index.d.ts
5265
5285
  //
5266
5286
  // (undocumented)
@@ -5297,7 +5317,7 @@ export class ÇlrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoC
5297
5317
  // (undocumented)
5298
5318
  static ɵdir: i0.ɵɵDirectiveDeclaration<ÇlrDatagridVirtualScrollDirective<any>, "[ClrVirtualScroll]", never, { "cdkVirtualForOf": "clrVirtualRowsOf"; "cdkVirtualForTrackBy": "clrVirtualRowsTrackBy"; "cdkVirtualForTemplate": "clrVirtualRowsTemplate"; "cdkVirtualForTemplateCacheSize": "clrVirtualRowsTemplateCacheSize"; "itemSize": "clrVirtualRowsItemSize"; "minBufferPx": "clrVirtualRowsMinBufferPx"; "maxBufferPx": "clrVirtualRowsMaxBufferPx"; }, { "renderedRangeChange": "renderedRangeChange"; }, never, never, false, never>;
5299
5319
  // (undocumented)
5300
- static ɵfac: i0.ɵɵFactoryDeclaration<ÇlrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null]>;
5320
+ static ɵfac: i0.ɵɵFactoryDeclaration<ÇlrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null, null]>;
5301
5321
  }
5302
5322
 
5303
5323
  // @public (undocumented)
@@ -1,11 +1,14 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
1
2
  import { ClrCommonStringsService } from '../../utils/i18n/common-strings.service';
2
3
  import { DetailService } from './providers/detail.service';
3
4
  import * as i0 from "@angular/core";
4
- export declare class ClrDatagridDetailHeader {
5
+ export declare class ClrDatagridDetailHeader implements AfterViewInit {
5
6
  detailService: DetailService;
6
7
  commonStrings: ClrCommonStringsService;
8
+ title: ElementRef;
7
9
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
8
10
  get titleId(): string;
11
+ ngAfterViewInit(): void;
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetailHeader, never>;
10
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetailHeader, "clr-dg-detail-header", never, {}, {}, never, ["*"], false, never>;
11
14
  }
@@ -5,9 +5,13 @@ import * as i0 from "@angular/core";
5
5
  export declare class ClrDatagridDetail {
6
6
  detailService: DetailService;
7
7
  commonStrings: ClrCommonStringsService;
8
+ ariaLabelledBy: string;
9
+ ariaLabel: string;
8
10
  header: ClrDatagridDetailHeader;
9
11
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
12
+ get labelledBy(): string;
13
+ get label(): string;
10
14
  close(): void;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetail, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, {}, {}, ["header"], ["*"], false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, { "ariaLabelledBy": "clrDetailAriaLabelledBy"; "ariaLabel": "clrDetailAriaLabel"; }, {}, ["header"], ["*"], false, never>;
13
17
  }
@@ -6,6 +6,7 @@ import { ClrDatagridFilterInterface } from './interfaces/filter.interface';
6
6
  import { CustomFilter } from './providers/custom-filter';
7
7
  import { FiltersProvider, RegisteredFilter } from './providers/filters';
8
8
  import { DatagridFilterRegistrar } from './utils/datagrid-filter-registrar';
9
+ import { KeyNavigationGridController } from './utils/key-navigation-grid.controller';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Custom filter that can be added in any column to override the default object property string filter.
@@ -17,6 +18,7 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
17
18
  private smartToggleService;
18
19
  private platformId;
19
20
  private elementRef;
21
+ private keyNavigation;
20
22
  openChange: EventEmitter<boolean>;
21
23
  ariaExpanded: boolean;
22
24
  popoverId: string;
@@ -25,7 +27,7 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
25
27
  anchor: ElementRef;
26
28
  private _open;
27
29
  private subs;
28
- constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>);
30
+ constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>, keyNavigation: KeyNavigationGridController);
29
31
  get open(): boolean;
30
32
  set open(open: boolean);
31
33
  set customFilter(filter: ClrDatagridFilterInterface<T> | RegisteredFilter<T, ClrDatagridFilterInterface<T>>);
@@ -40,6 +42,6 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
40
42
  * And it's more performant this way since it only runs on change.
41
43
  */
42
44
  private setToggleButtonAriaLabel;
43
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, never>;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, [null, null, null, null, null, { optional: true; }]>;
44
46
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridFilter<any>, "clr-dg-filter", never, { "open": "clrDgFilterOpen"; "customFilter": "clrDgFilter"; }, { "openChange": "clrDgFilterOpenChange"; }, never, ["*"], false, never>;
45
47
  }
@@ -11,9 +11,18 @@ export declare class ClrIfDetail implements OnInit, OnDestroy {
11
11
  private embeddedViewRef;
12
12
  constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, detailService: DetailService);
13
13
  set state(model: any);
14
+ get viewContext(): {
15
+ $implicit: any;
16
+ };
14
17
  ngOnInit(): void;
15
18
  ngOnDestroy(): void;
16
19
  private togglePanel;
20
+ /**
21
+ * For a given outlet instance, we create a proxy object that delegates
22
+ * to the user-specified context. This allows changing, or swapping out
23
+ * the context object completely without having to destroy/re-create the view.
24
+ */
25
+ private _createContextForwardProxy;
17
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrIfDetail, never>;
18
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<ClrIfDetail, "[clrIfDetail]", never, { "state": "clrIfDetail"; }, { "stateChange": "clrIfDetailChange"; }, never, never, false, never>;
19
28
  }
@@ -3,6 +3,7 @@ import { ListRange } from '@angular/cdk/collections';
3
3
  import { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualForOfContext, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';
4
4
  import { AfterViewInit, ChangeDetectorRef, DoCheck, EnvironmentInjector, EventEmitter, IterableDiffers, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
5
5
  import { ClrDatagrid } from './datagrid';
6
+ import { ColumnsService } from './providers/columns.service';
6
7
  import { Items } from './providers/items';
7
8
  import * as i0 from "@angular/core";
8
9
  declare type CdkVirtualForInputKey = 'cdkVirtualForOf' | 'cdkVirtualForTrackBy' | 'cdkVirtualForTemplate' | 'cdkVirtualForTemplateCacheSize';
@@ -19,6 +20,7 @@ export declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewIn
19
20
  private readonly scrollDispatcher;
20
21
  private readonly viewportRuler;
21
22
  private readonly datagrid;
23
+ private columnsService;
22
24
  private readonly injector;
23
25
  renderedRangeChange: EventEmitter<ListRange>;
24
26
  private _cdkFixedSizeVirtualScrollInputs;
@@ -29,8 +31,9 @@ export declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewIn
29
31
  private cdkVirtualFor;
30
32
  private subscriptions;
31
33
  private mutationChanges;
34
+ private viewRepeater;
32
35
  private cdkVirtualForInputs;
33
- constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, injector: EnvironmentInjector);
36
+ constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, columnsService: ColumnsService, injector: EnvironmentInjector);
34
37
  get cdkVirtualForOf(): CdkVirtualForInputs<T>['cdkVirtualForOf'];
35
38
  set cdkVirtualForOf(value: CdkVirtualForInputs<T>['cdkVirtualForOf']);
36
39
  get cdkVirtualForTrackBy(): CdkVirtualForInputs<T>['cdkVirtualForTrackBy'];
@@ -53,7 +56,7 @@ export declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewIn
53
56
  private updateAriaRowCount;
54
57
  private updateAriaRowIndexes;
55
58
  private createVirtualScrollViewportForDatagrid;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null]>;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null, null]>;
57
60
  static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDatagridVirtualScrollDirective<any>, "[ClrVirtualScroll]", never, { "cdkVirtualForOf": "clrVirtualRowsOf"; "cdkVirtualForTrackBy": "clrVirtualRowsTrackBy"; "cdkVirtualForTemplate": "clrVirtualRowsTemplate"; "cdkVirtualForTemplateCacheSize": "clrVirtualRowsTemplateCacheSize"; "itemSize": "clrVirtualRowsItemSize"; "minBufferPx": "clrVirtualRowsMinBufferPx"; "maxBufferPx": "clrVirtualRowsMaxBufferPx"; }, { "renderedRangeChange": "renderedRangeChange"; }, never, never, false, never>;
58
61
  }
59
62
  export {};
@@ -111,6 +111,7 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
111
111
  */
112
112
  ngAfterViewInit(): void;
113
113
  ngOnDestroy(): void;
114
+ toggleAllSelected($event: any): void;
114
115
  resize(): void;
115
116
  /**
116
117
  * Public method to re-trigger the computation of displayed items manually
@@ -1,5 +1,6 @@
1
1
  export declare enum DatagridColumnChanges {
2
2
  WIDTH = 0,
3
- HIDDEN = 1
3
+ HIDDEN = 1,
4
+ INITIALIZE = 2
4
5
  }
5
6
  export declare const ALL_COLUMN_CHANGES: DatagridColumnChanges[];
@@ -3,6 +3,7 @@ import { ColumnState, ColumnStateDiff } from '../interfaces/column-state.interfa
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ColumnsService {
5
5
  columns: BehaviorSubject<ColumnState>[];
6
+ columnsStateChange: BehaviorSubject<ColumnState>;
6
7
  private _cache;
7
8
  get columnStates(): ColumnState[];
8
9
  get hasHideableColumns(): boolean;
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class DetailService {
5
5
  private readonly modalStackService;
6
6
  id: string;
7
+ private preventScroll;
7
8
  private toggleState;
8
9
  private cache;
9
10
  private button;
@@ -12,6 +13,8 @@ export declare class DetailService {
12
13
  constructor(modalStackService: ModalStackService);
13
14
  get enabled(): boolean;
14
15
  set enabled(state: boolean);
16
+ get preventFocusScroll(): boolean;
17
+ set preventFocusScroll(preventScroll: boolean);
15
18
  get state(): any;
16
19
  get stateChange(): Observable<boolean | null>;
17
20
  get isOpen(): boolean;
@@ -34,6 +34,7 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
34
34
  */
35
35
  private columnsSizesStable;
36
36
  constructor(organizer: DatagridRenderOrganizer, items: Items, page: Page, domAdapter: DomAdapter, el: ElementRef, renderer: Renderer2, detailService: DetailService, tableSizeService: TableSizeService, columnsService: ColumnsService, ngZone: NgZone, keyNavigation: KeyNavigationGridController);
37
+ ngOnInit(): void;
37
38
  ngAfterContentInit(): void;
38
39
  ngAfterViewInit(): void;
39
40
  ngAfterViewChecked(): void;
@@ -58,7 +59,6 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
58
59
  */
59
60
  private computeHeadersWidth;
60
61
  private columnStateChanged;
61
- private listenForColumnChanges;
62
62
  /**
63
63
  * Triggers a whole re-rendring cycle to set column sizes, if needed.
64
64
  */
@@ -8,6 +8,7 @@ export interface KeyNavigationGridConfig {
8
8
  }
9
9
  export declare class KeyNavigationGridController implements OnDestroy {
10
10
  private zone;
11
+ skipItemFocus: boolean;
11
12
  private host;
12
13
  private config;
13
14
  private listenersAdded;
@@ -84,6 +84,7 @@ export class ClrDatagridActionOverflow {
84
84
  ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: i1.RowActionService }, { token: i2.ClrCommonStringsService }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i3.ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
85
85
  ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { buttonLabel: ["clrDgActionOverflowButtonLabel", "buttonLabel"], open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true }], hostDirectives: [{ directive: i4.ClrPopoverHostDirective }], ngImport: i0, template: `
86
86
  <button
87
+ tabindex="-1"
87
88
  class="datagrid-action-toggle"
88
89
  type="button"
89
90
  role="button"
@@ -118,6 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
118
119
  hostDirectives: [ClrPopoverHostDirective],
119
120
  template: `
120
121
  <button
122
+ tabindex="-1"
121
123
  class="datagrid-action-toggle"
122
124
  type="button"
123
125
  role="button"
@@ -162,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
162
164
  type: Input,
163
165
  args: ['clrDgActionOverflowOpen']
164
166
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7OztBQUlyRixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFtQ3RCLE1BQU0sT0FBTyx5QkFBeUI7SUFtQnBDLFlBQ1UsZ0JBQWtDLEVBQ25DLGFBQXNDLEVBQ2hCLFVBQWUsRUFDcEMsSUFBWSxFQUNaLGtCQUEyQztRQUozQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBckJaLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV2RixjQUFTLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFOUIsa0JBQWEsR0FBdUI7WUFDbEMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSztZQUNuQixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLFlBQVksQ0FBQyxNQUFNO1NBQzdCLENBQUM7UUFJTSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2Qsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBU3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDeEIsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBYTtRQUNwQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzdCLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVk7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBb0Isb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBRS9GLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7Z0JBRXZDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7O3NIQTFFVSx5QkFBeUIseUZBc0IxQixXQUFXOzBHQXRCVix5QkFBeUIseVJBY3pCLFdBQVcsNkdBNUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJUOzJGQUVVLHlCQUF5QjtrQkFqQ3JDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsY0FBYyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVDtpQkFDRjs7MEJBdUJJLE1BQU07MkJBQUMsV0FBVzt1R0FyQm9CLFdBQVc7c0JBQW5ELEtBQUs7dUJBQUMsZ0NBQWdDO2dCQUVFLFVBQVU7c0JBQWxELE1BQU07dUJBQUMsK0JBQStCO2dCQVdFLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsV0FBVztnQkEyQmxCLElBQUk7c0JBRFAsS0FBSzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGUgdGVybSBcIkJyb2FkY29tXCIgcmVmZXJzIHRvIEJyb2FkY29tIEluYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJLZXlGb2N1cyB9IGZyb20gJy4uLy4uL3V0aWxzL2ZvY3VzL2tleS1mb2N1cyc7XG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyB1bmlxdWVJZEZhY3RvcnkgfSBmcm9tICcuLi8uLi91dGlscy9pZC1nZW5lcmF0b3IvaWQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9lbnVtcy9hbGlnbm1lbnQuZW51bSc7XG5pbXBvcnQgeyBDbHJBeGlzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9lbnVtcy9heGlzLmVudW0nO1xuaW1wb3J0IHsgQ2xyU2lkZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvZW51bXMvc2lkZS5lbnVtJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvaW50ZXJmYWNlcy9wb3BvdmVyLXBvc2l0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVySG9zdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcG9wb3Zlci1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm93QWN0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL3Jvdy1hY3Rpb24tc2VydmljZSc7XG5cbmxldCBjbHJEZ0FjdGlvbklkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWFjdGlvbi1vdmVyZmxvdycsXG4gIGhvc3REaXJlY3RpdmVzOiBbQ2xyUG9wb3Zlckhvc3REaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgI2FuY2hvclxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJwb3BvdmVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnV0dG9uTGFiZWwgfHwgY29tbW9uU3RyaW5ncy5rZXlzLnJvd0FjdGlvbnNcIlxuICAgICAgY2xyUG9wb3ZlckFuY2hvclxuICAgICAgY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvblxuICAgID5cbiAgICAgIDxjZHMtaWNvbiBzaGFwZT1cImVsbGlwc2lzLXZlcnRpY2FsXCIgW2F0dHIudGl0bGVdPVwiYnV0dG9uTGFiZWwgfHwgY29tbW9uU3RyaW5ncy5rZXlzLnJvd0FjdGlvbnNcIj48L2Nkcy1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3dcIlxuICAgICAgW2lkXT1cInBvcG92ZXJJZFwiXG4gICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhb3BlblwiXG4gICAgICBbYXR0ci5pZF09XCJwb3BvdmVySWRcIlxuICAgICAgY2xyS2V5Rm9jdXNcbiAgICAgIGNka1RyYXBGb2N1c1xuICAgICAgKGNsaWNrKT1cImNsb3NlT3ZlcmZsb3dDb250ZW50KCRldmVudClcIlxuICAgICAgKmNsclBvcG92ZXJDb250ZW50PVwib3BlbjsgYXQ6IHNtYXJ0UG9zaXRpb247IG91dHNpZGVDbGlja1RvQ2xvc2U6IHRydWU7IHNjcm9sbFRvQ2xvc2U6IHRydWVcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWRBY3Rpb25PdmVyZmxvdyBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyRGdBY3Rpb25PdmVyZmxvd0J1dHRvbkxhYmVsJykgYnV0dG9uTGFiZWw6IHN0cmluZztcblxuICBAT3V0cHV0KCdjbHJEZ0FjdGlvbk92ZXJmbG93T3BlbkNoYW5nZScpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KGZhbHNlKTtcblxuICBwb3BvdmVySWQgPSB1bmlxdWVJZEZhY3RvcnkoKTtcblxuICBzbWFydFBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24gPSB7XG4gICAgYXhpczogQ2xyQXhpcy5IT1JJWk9OVEFMLFxuICAgIHNpZGU6IENsclNpZGUuQUZURVIsXG4gICAgYW5jaG9yOiBDbHJBbGlnbm1lbnQuQ0VOVEVSLFxuICAgIGNvbnRlbnQ6IENsckFsaWdubWVudC5DRU5URVIsXG4gIH07XG5cbiAgQFZpZXdDaGlsZChDbHJLZXlGb2N1cykgcHJpdmF0ZSByZWFkb25seSBrZXlGb2N1czogQ2xyS2V5Rm9jdXM7XG5cbiAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3dBY3Rpb25TZXJ2aWNlOiBSb3dBY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHNtYXJ0VG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yb3dBY3Rpb25TZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShvcGVuU3RhdGUgPT4ge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLnBvcG92ZXJWaXNpYmxlLnN1YnNjcmliZSh2aXNpYmxlID0+IHtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5wb3BvdmVySWQgPSAnY2xyLWFjdGlvbi1tZW51JyArIGNsckRnQWN0aW9uSWQrKztcbiAgfVxuXG4gIEBJbnB1dCgnY2xyRGdBY3Rpb25PdmVyZmxvd09wZW4nKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuICBzZXQgb3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgY29uc3Qgb3BlblN0YXRlID0gISFvcGVuO1xuICAgIGlmICghIW9wZW5TdGF0ZSAhPT0gdGhpcy5vcGVuKSB7XG4gICAgICAvLyBwcmV2ZW50cyBjaG9jb2xhdGUgbWVzc1xuICAgICAgdGhpcy5zbWFydFRvZ2dsZVNlcnZpY2Uub3BlbiA9IG9wZW5TdGF0ZTtcbiAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG9wZW5TdGF0ZSk7XG4gICAgICB0aGlzLl9vcGVuID0gb3BlblN0YXRlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucm93QWN0aW9uU2VydmljZS51bnJlZ2lzdGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGNsb3NlT3ZlcmZsb3dDb250ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3QgYnV0dG9ucyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MQnV0dG9uRWxlbWVudD4oJ2J1dHRvbi5hY3Rpb24taXRlbScpKTtcblxuICAgICAgaWYgKGJ1dHRvbnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMua2V5Rm9jdXMuY3VycmVudCA9IDA7XG4gICAgICAgIHRoaXMua2V5Rm9jdXMuZm9jdXNhYmxlSXRlbXMgPSBidXR0b25zO1xuXG4gICAgICAgIHRoaXMua2V5Rm9jdXMuZm9jdXNDdXJyZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7OztBQUlyRixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7QUFvQ3RCLE1BQU0sT0FBTyx5QkFBeUI7SUFtQnBDLFlBQ1UsZ0JBQWtDLEVBQ25DLGFBQXNDLEVBQ2hCLFVBQWUsRUFDcEMsSUFBWSxFQUNaLGtCQUEyQztRQUozQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBckJaLGVBQVUsR0FBRyxJQUFJLFlBQVks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QkF1QkksTUFBTTsyQkFBQyxXQUFXO3VHQXJCb0IsV0FBVztzQkFBbkQsS0FBSzt1QkFBQyxnQ0FBZ0M7Z0JBRUUsVUFBVTtzQkFBbEQsTUFBTTt1QkFBQywrQkFBK0I7Z0JBV0UsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxXQUFXO2dCQTJCbEIsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNCBCcm9hZGNvbS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENscktleUZvY3VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZm9jdXMva2V5LWZvY3VzJztcbmltcG9ydCB7IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaTE4bi9jb21tb24tc3RyaW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXF1ZUlkRmFjdG9yeSB9IGZyb20gJy4uLy4uL3V0aWxzL2lkLWdlbmVyYXRvci9pZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2FsaWdubWVudC5lbnVtJztcbmltcG9ydCB7IENsckF4aXMgfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyL2VudW1zL2F4aXMuZW51bSc7XG5pbXBvcnQgeyBDbHJTaWRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9lbnVtcy9zaWRlLmVudW0nO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wb3BvdmVyLWhvc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBSb3dBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcm93LWFjdGlvbi1zZXJ2aWNlJztcblxubGV0IGNsckRnQWN0aW9uSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctYWN0aW9uLW92ZXJmbG93JyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbHJQb3BvdmVySG9zdERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBjbGFzcz1cImRhdGFncmlkLWFjdGlvbi10b2dnbGVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICNhbmNob3JcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwicG9wb3ZlcklkXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbkxhYmVsIHx8IGNvbW1vblN0cmluZ3Mua2V5cy5yb3dBY3Rpb25zXCJcbiAgICAgIGNsclBvcG92ZXJBbmNob3JcbiAgICAgIGNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b25cbiAgICA+XG4gICAgICA8Y2RzLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiIFthdHRyLnRpdGxlXT1cImJ1dHRvbkxhYmVsIHx8IGNvbW1vblN0cmluZ3Mua2V5cy5yb3dBY3Rpb25zXCI+PC9jZHMtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93XCJcbiAgICAgIFtpZF09XCJwb3BvdmVySWRcIlxuICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIW9wZW5cIlxuICAgICAgW2F0dHIuaWRdPVwicG9wb3ZlcklkXCJcbiAgICAgIGNscktleUZvY3VzXG4gICAgICBjZGtUcmFwRm9jdXNcbiAgICAgIChjbGljayk9XCJjbG9zZU92ZXJmbG93Q29udGVudCgkZXZlbnQpXCJcbiAgICAgICpjbHJQb3BvdmVyQ29udGVudD1cIm9wZW47IGF0OiBzbWFydFBvc2l0aW9uOyBvdXRzaWRlQ2xpY2tUb0Nsb3NlOiB0cnVlOyBzY3JvbGxUb0Nsb3NlOiB0cnVlXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkQWN0aW9uT3ZlcmZsb3cgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ2NsckRnQWN0aW9uT3ZlcmZsb3dCdXR0b25MYWJlbCcpIGJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgnY2xyRGdBY3Rpb25PdmVyZmxvd09wZW5DaGFuZ2UnKSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgcG9wb3ZlcklkID0gdW5pcXVlSWRGYWN0b3J5KCk7XG5cbiAgc21hcnRQb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uID0ge1xuICAgIGF4aXM6IENsckF4aXMuSE9SSVpPTlRBTCxcbiAgICBzaWRlOiBDbHJTaWRlLkFGVEVSLFxuICAgIGFuY2hvcjogQ2xyQWxpZ25tZW50LkNFTlRFUixcbiAgICBjb250ZW50OiBDbHJBbGlnbm1lbnQuQ0VOVEVSLFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoQ2xyS2V5Rm9jdXMpIHByaXZhdGUgcmVhZG9ubHkga2V5Rm9jdXM6IENscktleUZvY3VzO1xuXG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm93QWN0aW9uU2VydmljZTogUm93QWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBzbWFydFRvZ2dsZVNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucm93QWN0aW9uU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zbWFydFRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUob3BlblN0YXRlID0+IHtcbiAgICAgICAgdGhpcy5vcGVuID0gb3BlblN0YXRlO1xuICAgICAgfSksXG4gICAgICB0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5wb3BvdmVyVmlzaWJsZS5zdWJzY3JpYmUodmlzaWJsZSA9PiB7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMucG9wb3ZlcklkID0gJ2Nsci1hY3Rpb24tbWVudScgKyBjbHJEZ0FjdGlvbklkKys7XG4gIH1cblxuICBASW5wdXQoJ2NsckRnQWN0aW9uT3ZlcmZsb3dPcGVuJylcbiAgZ2V0IG9wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW47XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGNvbnN0IG9wZW5TdGF0ZSA9ICEhb3BlbjtcbiAgICBpZiAoISFvcGVuU3RhdGUgIT09IHRoaXMub3Blbikge1xuICAgICAgLy8gcHJldmVudHMgY2hvY29sYXRlIG1lc3NcbiAgICAgIHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLm9wZW4gPSBvcGVuU3RhdGU7XG4gICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChvcGVuU3RhdGUpO1xuICAgICAgdGhpcy5fb3BlbiA9IG9wZW5TdGF0ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJvd0FjdGlvblNlcnZpY2UudW5yZWdpc3RlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBjbG9zZU92ZXJmbG93Q29udGVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEJ1dHRvbkVsZW1lbnQ+KCdidXR0b24uYWN0aW9uLWl0ZW0nKSk7XG5cbiAgICAgIGlmIChidXR0b25zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmtleUZvY3VzLmN1cnJlbnQgPSAwO1xuICAgICAgICB0aGlzLmtleUZvY3VzLmZvY3VzYWJsZUl0ZW1zID0gYnV0dG9ucztcblxuICAgICAgICB0aGlzLmtleUZvY3VzLmZvY3VzQ3VycmVudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -4,7 +4,7 @@
4
4
  * This software is released under MIT license.
5
5
  * The full license information can be found in LICENSE in the root directory of this project.
6
6
  */
7
- import { Component } from '@angular/core';
7
+ import { Component, ViewChild } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "./providers/detail.service";
10
10
  import * as i2 from "../../utils/i18n/common-strings.service";
@@ -17,10 +17,13 @@ export class ClrDatagridDetailHeader {
17
17
  get titleId() {
18
18
  return `${this.detailService.id}-title`;
19
19
  }
20
+ ngAfterViewInit() {
21
+ this.title.nativeElement.focus();
22
+ }
20
23
  }
21
24
  ClrDatagridDetailHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridDetailHeader, deps: [{ token: i1.DetailService }, { token: i2.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
22
- ClrDatagridDetailHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridDetailHeader, selector: "clr-dg-detail-header", host: { properties: { "class.datagrid-detail-header": "true" } }, ngImport: i0, template: `
23
- <div class="datagrid-detail-header-title" cdkFocusInitial tabindex="-1" [id]="titleId">
25
+ ClrDatagridDetailHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridDetailHeader, selector: "clr-dg-detail-header", host: { properties: { "class.datagrid-detail-header": "true" } }, viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true }], ngImport: i0, template: `
26
+ <div #title class="datagrid-detail-header-title" tabindex="-1" [id]="titleId">
24
27
  <ng-content></ng-content>
25
28
  </div>
26
29
  <div class="datagrid-detail-pane-close">
@@ -42,7 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
42
45
  '[class.datagrid-detail-header]': 'true',
43
46
  },
44
47
  template: `
45
- <div class="datagrid-detail-header-title" cdkFocusInitial tabindex="-1" [id]="titleId">
48
+ <div #title class="datagrid-detail-header-title" tabindex="-1" [id]="titleId">
46
49
  <ng-content></ng-content>
47
50
  </div>
48
51
  <div class="datagrid-detail-pane-close">
@@ -57,5 +60,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
57
60
  </div>
58
61
  `,
59
62
  }]
60
- }], ctorParameters: function () { return [{ type: i1.DetailService }, { type: i2.ClrCommonStringsService }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtZGV0YWlsLWhlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBMEIxQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW1CLGFBQTRCLEVBQVMsYUFBc0M7UUFBM0Usa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRWxHLElBQUksT0FBTztRQUNULE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDO0lBQzFDLENBQUM7O29IQUxVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDhIQWhCeEI7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7MkZBRVUsdUJBQXVCO2tCQXJCbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxJQUFJLEVBQUU7d0JBQ0osZ0NBQWdDLEVBQUUsTUFBTTtxQkFDekM7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV0YWlsU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RldGFpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWRldGFpbC1oZWFkZXInLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyXSc6ICd0cnVlJyxcbiAgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGF0YWdyaWQtZGV0YWlsLWhlYWRlci10aXRsZVwiIGNka0ZvY3VzSW5pdGlhbCB0YWJpbmRleD1cIi0xXCIgW2lkXT1cInRpdGxlSWRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0YWdyaWQtZGV0YWlsLXBhbmUtY2xvc2VcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cImRldGFpbFNlcnZpY2UuY2xvc2UoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwidGltZXNcIj48L2Nkcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGFncmlkRGV0YWlsSGVhZGVyIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRldGFpbFNlcnZpY2U6IERldGFpbFNlcnZpY2UsIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICBnZXQgdGl0bGVJZCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5kZXRhaWxTZXJ2aWNlLmlkfS10aXRsZWA7XG4gIH1cbn1cbiJdfQ==
63
+ }], ctorParameters: function () { return [{ type: i1.DetailService }, { type: i2.ClrCommonStringsService }]; }, propDecorators: { title: [{
64
+ type: ViewChild,
65
+ args: ['title']
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2RhdGEvZGF0YWdyaWQvZGF0YWdyaWQtZGV0YWlsLWhlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE9BQU8sRUFBaUIsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUEwQmhGLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsYUFBNEIsRUFBUyxhQUFzQztRQUEzRSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtJQUFHLENBQUM7SUFFbEcsSUFBSSxPQUFPO1FBQ1QsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDOztvSEFYVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw4TkFoQnhCOzs7Ozs7Ozs7Ozs7OztHQWNUOzJGQUVVLHVCQUF1QjtrQkFyQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsSUFBSSxFQUFFO3dCQUNKLGdDQUFnQyxFQUFFLE1BQU07cUJBQ3pDO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtpQkFDRjswSUFFcUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBEZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGV0YWlsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctZGV0YWlsLWhlYWRlcicsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLWRldGFpbC1oZWFkZXJdJzogJ3RydWUnLFxuICB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI3RpdGxlIGNsYXNzPVwiZGF0YWdyaWQtZGV0YWlsLWhlYWRlci10aXRsZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwidGl0bGVJZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgICAoY2xpY2spPVwiZGV0YWlsU2VydmljZS5jbG9zZSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb21tb25TdHJpbmdzLmtleXMuY2xvc2VcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWljb24gc2hhcGU9XCJ0aW1lc1wiPjwvY2RzLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndGl0bGUnKSB0aXRsZTogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV0YWlsU2VydmljZTogRGV0YWlsU2VydmljZSwgcHVibGljIGNvbW1vblN0cmluZ3M6IENsckNvbW1vblN0cmluZ3NTZXJ2aWNlKSB7fVxuXG4gIGdldCB0aXRsZUlkKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmRldGFpbFNlcnZpY2UuaWR9LXRpdGxlYDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRpdGxlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIl19
@@ -4,7 +4,7 @@
4
4
  * This software is released under MIT license.
5
5
  * The full license information can be found in LICENSE in the root directory of this project.
6
6
  */
7
- import { Component, ContentChild } from '@angular/core';
7
+ import { Component, ContentChild, Input } from '@angular/core';
8
8
  import { ClrDatagridDetailHeader } from './datagrid-detail-header';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "./providers/detail.service";
@@ -16,21 +16,42 @@ export class ClrDatagridDetail {
16
16
  this.detailService = detailService;
17
17
  this.commonStrings = commonStrings;
18
18
  }
19
+ get labelledBy() {
20
+ if (this.ariaLabelledBy) {
21
+ return this.header ? `${this.header.titleId} ${this.ariaLabelledBy}` : this.ariaLabelledBy;
22
+ }
23
+ else if (this.ariaLabel) {
24
+ // If aria-label is set by the end user, do not set aria-labelledby
25
+ return null;
26
+ }
27
+ else {
28
+ return this.header?.titleId || '';
29
+ }
30
+ }
31
+ get label() {
32
+ if (!this.ariaLabelledBy) {
33
+ return this.ariaLabel || null;
34
+ }
35
+ else {
36
+ return null;
37
+ }
38
+ }
19
39
  close() {
20
40
  this.detailService.close();
21
41
  }
22
42
  }
23
43
  ClrDatagridDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridDetail, deps: [{ token: i1.DetailService }, { token: i2.ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
24
- ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridDetail, selector: "clr-dg-detail", host: { properties: { "class.datagrid-detail-pane": "true" } }, queries: [{ propertyName: "header", first: true, predicate: ClrDatagridDetailHeader, descendants: true }], ngImport: i0, template: `
44
+ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridDetail, selector: "clr-dg-detail", inputs: { ariaLabelledBy: ["clrDetailAriaLabelledBy", "ariaLabelledBy"], ariaLabel: ["clrDetailAriaLabel", "ariaLabel"] }, host: { properties: { "class.datagrid-detail-pane": "true" } }, queries: [{ propertyName: "header", first: true, predicate: ClrDatagridDetailHeader, descendants: true }], ngImport: i0, template: `
25
45
  <div
26
46
  cdkTrapFocus
27
- [cdkTrapFocusAutoCapture]="true"
47
+ [cdkTrapFocusAutoCapture]="!header"
28
48
  class="datagrid-detail-pane-content"
29
49
  *ngIf="detailService.isOpen"
30
50
  role="dialog"
31
51
  [id]="detailService.id"
32
52
  aria-modal="true"
33
- [attr.aria-describedby]="header ? header.titleId : ''"
53
+ [attr.aria-labelledby]="labelledBy"
54
+ [attr.aria-label]="label"
34
55
  >
35
56
  <div class="clr-sr-only">{{ commonStrings.keys.detailPaneStart }}</div>
36
57
  <ng-content></ng-content>
@@ -49,13 +70,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
49
70
  template: `
50
71
  <div
51
72
  cdkTrapFocus
52
- [cdkTrapFocusAutoCapture]="true"
73
+ [cdkTrapFocusAutoCapture]="!header"
53
74
  class="datagrid-detail-pane-content"
54
75
  *ngIf="detailService.isOpen"
55
76
  role="dialog"
56
77
  [id]="detailService.id"
57
78
  aria-modal="true"
58
- [attr.aria-describedby]="header ? header.titleId : ''"
79
+ [attr.aria-labelledby]="labelledBy"
80
+ [attr.aria-label]="label"
59
81
  >
60
82
  <div class="clr-sr-only">{{ commonStrings.keys.detailPaneStart }}</div>
61
83
  <ng-content></ng-content>
@@ -63,8 +85,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
63
85
  </div>
64
86
  `,
65
87
  }]
66
- }], ctorParameters: function () { return [{ type: i1.DetailService }, { type: i2.ClrCommonStringsService }]; }, propDecorators: { header: [{
88
+ }], ctorParameters: function () { return [{ type: i1.DetailService }, { type: i2.ClrCommonStringsService }]; }, propDecorators: { ariaLabelledBy: [{
89
+ type: Input,
90
+ args: ['clrDetailAriaLabelledBy']
91
+ }], ariaLabel: [{
92
+ type: Input,
93
+ args: ['clrDetailAriaLabel']
94
+ }], header: [{
67
95
  type: ContentChild,
68
96
  args: [ClrDatagridDetailHeader]
69
97
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1kZXRhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBMkJuRSxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQW1CLGFBQTRCLEVBQVMsYUFBc0M7UUFBM0Usa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRWxHLEtBQUs7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7OzhHQVBVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlKQUNkLHVCQUF1QixnREFsQjNCOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDsyRkFFVSxpQkFBaUI7a0JBeEI3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osOEJBQThCLEVBQUUsTUFBTTtxQkFDdkM7b0JBQ0QsOEVBQThFO29CQUM5RSxzR0FBc0c7b0JBQ3RHLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7aUJBQ0Y7MElBRXdDLE1BQU07c0JBQTVDLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJDb21tb25TdHJpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4vY29tbW9uLXN0cmluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDbHJEYXRhZ3JpZERldGFpbEhlYWRlciB9IGZyb20gJy4vZGF0YWdyaWQtZGV0YWlsLWhlYWRlcic7XG5pbXBvcnQgeyBEZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZGV0YWlsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItZGctZGV0YWlsJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZGF0YWdyaWQtZGV0YWlsLXBhbmVdJzogJ3RydWUnLFxuICB9LFxuICAvLyBXZSBwdXQgdGhlICpuZ0lmIG9uIHRoZSBjZGtUcmFwRm9jdXMgc28gaXQgZG9lc24ndCBhbHdheXMgZXhpc3Qgb24gdGhlIHBhZ2VcbiAgLy8gaGF2ZSB0byB0ZXN0IGZvciBwcmVzZW5jZSBvZiBoZWFkZXIgZm9yIGFyaWEtZGVzY3JpYmVkYnkgYmVjYXVzZSBpdCB3YXMgY2F1c2luZyB1bml0IHRlc3RzIHRvIGNyYXNoXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cImRhdGFncmlkLWRldGFpbC1wYW5lLWNvbnRlbnRcIlxuICAgICAgKm5nSWY9XCJkZXRhaWxTZXJ2aWNlLmlzT3BlblwiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIFtpZF09XCJkZXRhaWxTZXJ2aWNlLmlkXCJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGVhZGVyID8gaGVhZGVyLnRpdGxlSWQgOiAnJ1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zci1vbmx5XCI+e3sgY29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbFBhbmVTdGFydCB9fTwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImNsci1zci1vbmx5XCI+e3sgY29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbFBhbmVFbmQgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRGF0YWdyaWREZXRhaWwge1xuICBAQ29udGVudENoaWxkKENsckRhdGFncmlkRGV0YWlsSGVhZGVyKSBoZWFkZXI6IENsckRhdGFncmlkRGV0YWlsSGVhZGVyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXRhaWxTZXJ2aWNlOiBEZXRhaWxTZXJ2aWNlLCBwdWJsaWMgY29tbW9uU3RyaW5nczogQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UpIHt9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWxTZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvZGF0YS9kYXRhZ3JpZC9kYXRhZ3JpZC1kZXRhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQTRCbkUsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUFtQixhQUE0QixFQUFTLGFBQXNDO1FBQTNFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQXlCO0lBQUcsQ0FBQztJQUVsRyxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1RjthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6QixtRUFBbUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztTQUMvQjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs4R0E3QlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsb1JBSWQsdUJBQXVCLGdEQXRCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7MkZBRVUsaUJBQWlCO2tCQXpCN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsSUFBSSxFQUFFO3dCQUNKLDhCQUE4QixFQUFFLE1BQU07cUJBQ3ZDO29CQUNELDhFQUE4RTtvQkFDOUUsc0dBQXNHO29CQUN0RyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7aUJBQ0Y7MElBRW1DLGNBQWM7c0JBQS9DLEtBQUs7dUJBQUMseUJBQXlCO2dCQUNILFNBQVM7c0JBQXJDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUVZLE1BQU07c0JBQTVDLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDI0IEJyb2FkY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhlIHRlcm0gXCJCcm9hZGNvbVwiIHJlZmVycyB0byBCcm9hZGNvbSBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2xyQ29tbW9uU3RyaW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy9pMThuL2NvbW1vbi1zdHJpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXIgfSBmcm9tICcuL2RhdGFncmlkLWRldGFpbC1oZWFkZXInO1xuaW1wb3J0IHsgRGV0YWlsU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RldGFpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRnLWRldGFpbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmRhdGFncmlkLWRldGFpbC1wYW5lXSc6ICd0cnVlJyxcbiAgfSxcbiAgLy8gV2UgcHV0IHRoZSAqbmdJZiBvbiB0aGUgY2RrVHJhcEZvY3VzIHNvIGl0IGRvZXNuJ3QgYWx3YXlzIGV4aXN0IG9uIHRoZSBwYWdlXG4gIC8vIGhhdmUgdG8gdGVzdCBmb3IgcHJlc2VuY2Ugb2YgaGVhZGVyIGZvciBhcmlhLWRlc2NyaWJlZGJ5IGJlY2F1c2UgaXQgd2FzIGNhdXNpbmcgdW5pdCB0ZXN0cyB0byBjcmFzaFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNka1RyYXBGb2N1c1xuICAgICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cIiFoZWFkZXJcIlxuICAgICAgY2xhc3M9XCJkYXRhZ3JpZC1kZXRhaWwtcGFuZS1jb250ZW50XCJcbiAgICAgICpuZ0lmPVwiZGV0YWlsU2VydmljZS5pc09wZW5cIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBbaWRdPVwiZGV0YWlsU2VydmljZS5pZFwiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxsZWRCeVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIj57eyBjb21tb25TdHJpbmdzLmtleXMuZGV0YWlsUGFuZVN0YXJ0IH19PC9kaXY+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xyLXNyLW9ubHlcIj57eyBjb21tb25TdHJpbmdzLmtleXMuZGV0YWlsUGFuZUVuZCB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEYXRhZ3JpZERldGFpbCB7XG4gIEBJbnB1dCgnY2xyRGV0YWlsQXJpYUxhYmVsbGVkQnknKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckRldGFpbEFyaWFMYWJlbCcpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGQoQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXIpIGhlYWRlcjogQ2xyRGF0YWdyaWREZXRhaWxIZWFkZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRldGFpbFNlcnZpY2U6IERldGFpbFNlcnZpY2UsIHB1YmxpYyBjb21tb25TdHJpbmdzOiBDbHJDb21tb25TdHJpbmdzU2VydmljZSkge31cblxuICBnZXQgbGFiZWxsZWRCeSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmFyaWFMYWJlbGxlZEJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5oZWFkZXIgPyBgJHt0aGlzLmhlYWRlci50aXRsZUlkfSAke3RoaXMuYXJpYUxhYmVsbGVkQnl9YCA6IHRoaXMuYXJpYUxhYmVsbGVkQnk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFyaWFMYWJlbCkge1xuICAgICAgLy8gSWYgYXJpYS1sYWJlbCBpcyBzZXQgYnkgdGhlIGVuZCB1c2VyLCBkbyBub3Qgc2V0IGFyaWEtbGFiZWxsZWRieVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhlYWRlcj8udGl0bGVJZCB8fCAnJztcbiAgICB9XG4gIH1cblxuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbCB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFpbFNlcnZpY2UuY2xvc2UoKTtcbiAgfVxufVxuIl19