@skyux/ag-grid 9.18.0 → 9.19.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.
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "@skyux/indicators";
9
9
  import * as i3 from "@skyux/theme";
10
+ import * as i4 from "@skyux/i18n";
10
11
  /**
11
12
  * @internal
12
13
  */
@@ -131,11 +132,11 @@ export class SkyAgGridHeaderComponent {
131
132
  }
132
133
  }
133
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyAgGridHeaderComponent, selector: "sky-ag-grid-header", host: { properties: { "attr.title": "this.columnLabel" } }, viewQueries: [{ propertyName: "inlineHelpContainer", first: true, predicate: ["inlineHelpContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <span *ngIf=\"params?.enableSorting\" class=\"ag-sort-indicator-container\">\n <ng-container *skyThemeIf=\"'default'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"caret-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"caret-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"chevron-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"chevron-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </span>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyAgGridHeaderComponent, selector: "sky-ag-grid-header", host: { properties: { "attr.title": "this.columnLabel" } }, viewQueries: [{ propertyName: "inlineHelpContainer", first: true, predicate: ["inlineHelpContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <button\n *ngIf=\"params?.enableSorting\"\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n <ng-container\n *ngIf=\"sortOrder$ | async as sortDirection; else notSorted\"\n >\n <ng-container *ngIf=\"sortDirection === 'desc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n <ng-container *ngIf=\"sortDirection === 'asc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n </ng-container>\n <ng-template #notSorted>\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-template>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </button>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--ag-header-foreground-color);width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
136
  }
136
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyAgGridHeaderComponent, decorators: [{
137
138
  type: Component,
138
- args: [{ selector: 'sky-ag-grid-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <span *ngIf=\"params?.enableSorting\" class=\"ag-sort-indicator-container\">\n <ng-container *skyThemeIf=\"'default'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"caret-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"caret-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"chevron-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"chevron-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </span>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"] }]
139
+ args: [{ selector: 'sky-ag-grid-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <button\n *ngIf=\"params?.enableSorting\"\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n <ng-container\n *ngIf=\"sortOrder$ | async as sortDirection; else notSorted\"\n >\n <ng-container *ngIf=\"sortDirection === 'desc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n <ng-container *ngIf=\"sortDirection === 'asc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n </ng-container>\n <ng-template #notSorted>\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-template>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </button>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--ag-header-foreground-color);width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"] }]
139
140
  }], propDecorators: { columnLabel: [{
140
141
  type: HostBinding,
141
142
  args: ['attr.title']
@@ -143,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
143
144
  type: ViewChild,
144
145
  args: ['inlineHelpContainer', { read: ElementRef, static: true }]
145
146
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixXQUFXLEVBRVgsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDBCQUEwQixHQUMzQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRzNEOztHQUVHO0FBT0gsTUFBTSxPQUFPLHdCQUF3QjtJQU5yQztRQWlCUyxXQUFNLEdBQXNDLFNBQVMsQ0FBQztRQUN0RCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ0gsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQzlDLFNBQVMsQ0FDVixDQUFDO1FBQ2Msc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFcEUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxD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TSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUztZQUM3QyxFQUFFLFVBQVUsRUFBRTtZQUNkLEVBQUUsSUFBSSxDQUNKLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQ3JCLENBQUM7UUFDSixJQUFJLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtZQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakQ7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDOzhHQS9LVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw2TkFRTyxVQUFVLDJDQzFDdEQsOHVFQWdFQTs7MkZEOUJhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTs4QkFReEMsV0FBVztzQkFEakIsV0FBVzt1QkFBQyxZQUFZO2dCQUlsQixtQkFBbUI7c0JBRHpCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBIb3N0QmluZGluZyxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24sXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBFdmVudHMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50UGF0dGVybiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJJbmZvIH0gZnJvbSAnLi4vdHlwZXMvaGVhZGVyLWluZm8nO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvaGVhZGVyLXBhcmFtcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZEhlYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIC8vIEZvciBhY2Nlc3NpYmlsaXR5LCB3ZSBuZWVkIHRvIHNldCB0aGUgdGl0bGUgYXR0cmlidXRlIG9uIHRoZSBoZWFkZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBub3QgYSBkaXNwbGF5IG5hbWUuXG4gIC8vIGh0dHBzOi8vZGVxdWV1bml2ZXJzaXR5LmNvbS9ydWxlcy9heGUvNC41L2VtcHR5LXRhYmxlLWhlYWRlcj9hcHBsaWNhdGlvbj1heGVBUElcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRpdGxlJylcbiAgcHVibGljIGNvbHVtbkxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5saW5lSGVscENvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBpbmxpbmVIZWxwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIHNvcnRlZCA9ICcnO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyRW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNvcnRPcmRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdhc2MnIHwgJ2Rlc2MnIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWQsXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBzb3J0SW5kZXhEaXNwbGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgI3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICNpbmxpbmVIZWxwQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICN2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2FnSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjZHluYW1pY0NvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpO1xuICByZWFkb25seSAjZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3ZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiNhZ0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKCFwYXJhbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2x1bW5MYWJlbCA9IHBhcmFtcy5kaXNwbGF5TmFtZVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogcGFyYW1zLmNvbHVtbi5nZXRDb2xEZWYoKS5maWVsZDtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIGlmIChwYXJhbXMuY29sdW1uLmlzRmlsdGVyQWxsb3dlZCgpKSB7XG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50UGF0dGVybihcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5jb2x1bW4uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgRXZlbnRzLkVWRU5UX0ZJTFRFUl9DSEFOR0VELFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5jb2x1bW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgRXZlbnRzLkVWRU5UX0ZJTFRFUl9DSEFOR0VELFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzRmlsdGVyQWN0aXZlID0gcGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFjdGl2ZSgpO1xuICAgICAgICAgIGlmIChpc0ZpbHRlckFjdGl2ZSAhPT0gdGhpcy5maWx0ZXJFbmFibGVkJC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckVuYWJsZWQkLm5leHQoaXNGaWx0ZXJBY3RpdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmVuYWJsZVNvcnRpbmcpIHtcbiAgICAgIC8vIENvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXNcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBmcm9tRXZlbnRQYXR0ZXJuKFxuICAgICAgICAgIChoYW5kbGVyKSA9PlxuICAgICAgICAgICAgcGFyYW1zLmNvbHVtbi5hZGRFdmVudExpc3RlbmVyKEV2ZW50cy5FVkVOVF9TT1JUX0NIQU5HRUQsIGhhbmRsZXIpLFxuICAgICAgICAgIChoYW5kbGVyKSA9PlxuICAgICAgICAgICAgcGFyYW1zLmNvbHVtbi5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICBFdmVudHMuRVZFTlRfU09SVF9DSEFOR0VELFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVNvcnQoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgLy8gT3RoZXIgY29sdW1uIHNvcnQgc3RhdGUgY2hhbmdlcywgZm9yIG11bHRpLWNvbHVtbiBzb3J0aW5nXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50UGF0dGVybihcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihFdmVudHMuRVZFTlRfU09SVF9DSEFOR0VELCBoYW5kbGVyKSxcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5hcGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihFdmVudHMuRVZFTlRfU09SVF9DSEFOR0VELCBoYW5kbGVyKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3VwZGF0ZVNvcnRJbmRleCgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlSW5saW5lSGVscCgpO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uTWVudUNsaWNrKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcz8uc2hvd0NvbHVtbk1lbnUoJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Tb3J0UmVxdWVzdGVkKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyYW1zPy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICB0aGlzLnBhcmFtcz8ucHJvZ3Jlc3NTb3J0KGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUFnR3JpZEhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3VwZGF0ZUlubGluZUhlbHAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgfHwgIXRoaXMuI2FnSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmxpbmVIZWxwQ29tcG9uZW50ID0gdGhpcy5wYXJhbXM/LmlubGluZUhlbHBDb21wb25lbnQ7XG5cbiAgICBpZiAoXG4gICAgICBpbmxpbmVIZWxwQ29tcG9uZW50ICYmXG4gICAgICAoIXRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgfHxcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZi5jb21wb25lbnRUeXBlICE9PSBpbmxpbmVIZWxwQ29tcG9uZW50KVxuICAgICkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGVhZGVySW5mbyA9IG5ldyBTa3lBZ0dyaWRIZWFkZXJJbmZvKCk7XG4gICAgICBoZWFkZXJJbmZvLmNvbHVtbiA9IHRoaXMucGFyYW1zPy5jb2x1bW47XG4gICAgICBoZWFkZXJJbmZvLmNvbnRleHQgPSB0aGlzLnBhcmFtcz8uY29udGV4dDtcbiAgICAgIGhlYWRlckluZm8uZGlzcGxheU5hbWUgPSB0aGlzLnBhcmFtcz8uZGlzcGxheU5hbWU7XG5cbiAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYgPVxuICAgICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoaW5saW5lSGVscENvbXBvbmVudCwge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm92aWRlOiBTa3lBZ0dyaWRIZWFkZXJJbmZvLFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogaGVhZGVySW5mbyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLiNlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLmlubGluZUhlbHBDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5FbGVtZW50Qm90dG9tLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFpbmxpbmVIZWxwQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoXG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVTb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE9yZGVyJC5uZXh0KHRoaXMucGFyYW1zPy5jb2x1bW4uZ2V0U29ydCgpIHx8IHVuZGVmaW5lZCk7XG4gIH1cblxuICAjdXBkYXRlU29ydEluZGV4KCk6IHZvaWQge1xuICAgIGNvbnN0IHNvcnRJbmRleCA9IHRoaXMucGFyYW1zPy5jb2x1bW4uZ2V0U29ydEluZGV4KCk7XG4gICAgY29uc3Qgb3RoZXJTb3J0Q29sdW1ucyA9IHRoaXMucGFyYW1zPy5jb2x1bW5BcGlcbiAgICAgID8uZ2V0Q29sdW1ucygpXG4gICAgICA/LnNvbWUoXG4gICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgY29sdW1uLmdldENvbElkKCkgIT09IHRoaXMucGFyYW1zPy5jb2x1bW4uZ2V0Q29sSWQoKSAmJlxuICAgICAgICAgICEhY29sdW1uLmdldFNvcnQoKSxcbiAgICAgICk7XG4gICAgaWYgKHNvcnRJbmRleCAhPT0gdW5kZWZpbmVkICYmIHNvcnRJbmRleCAhPT0gbnVsbCAmJiBvdGhlclNvcnRDb2x1bW5zKSB7XG4gICAgICB0aGlzLnNvcnRJbmRleERpc3BsYXkkLm5leHQoYCR7c29ydEluZGV4ICsgMX1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3J0SW5kZXhEaXNwbGF5JC5uZXh0KCcnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZy1jZWxsLWxhYmVsLWNvbnRhaW5lclwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgPHNwYW5cbiAgICAqbmdJZj1cInBhcmFtcz8uZW5hYmxlTWVudVwiXG4gICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAoY2xpY2spPVwib25NZW51Q2xpY2soJGV2ZW50KVwiXG4gID5cbiAgICA8c2t5LWljb24gaWNvbj1cImVsbGlwc2lzXCIgLz5cbiAgPC9zcGFuPlxuICA8bmctdGVtcGxhdGUgI25vdFNvcnRpbmdIZWFkZXI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZy1oZWFkZXItY2VsbC10ZXh0XCI+e3sgcGFyYW1zPy5kaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtbGFiZWwtYW5kLWljb25zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwicGFyYW1zPy5lbmFibGVTb3J0aW5nOyBlbHNlIG5vdFNvcnRpbmdIZWFkZXJcIlxuICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHQgYWctaGVhZGVyLWNlbGwtbGFiZWwtc29ydGFibGUgc2t5LWJ0bi1saW5rLWlubGluZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbaW5uZXJUZXh0XT1cInBhcmFtcz8uZGlzcGxheU5hbWVcIlxuICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJmaWx0ZXJFbmFibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvbiBhZy1maWx0ZXItaWNvblwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBpY29uPVwiZmlsdGVyXCIgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGFyYW1zPy5lbmFibGVTb3J0aW5nXCIgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiPlxuICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgKm5nSWY9XCIoc29ydE9yZGVyJCB8IGFzeW5jKSA9PT0gJ2Rlc2MnXCJcbiAgICAgICAgICAgIGljb249XCJjYXJldC1kb3duXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWxhYmVsLWljb25cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAqbmdJZj1cIihzb3J0T3JkZXIkIHwgYXN5bmMpID09PSAnYXNjJ1wiXG4gICAgICAgICAgICBpY29uPVwiY2FyZXQtdXBcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItbGFiZWwtaWNvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiPlxuICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgKm5nSWY9XCIoc29ydE9yZGVyJCB8IGFzeW5jKSA9PT0gJ2Rlc2MnXCJcbiAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWRvd25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItbGFiZWwtaWNvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiKHNvcnRPcmRlciQgfCBhc3luYykgPT09ICdhc2MnXCJcbiAgICAgICAgICAgIGljb249XCJjaGV2cm9uLXVwXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWxhYmVsLWljb25cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwic29ydEluZGV4RGlzcGxheSQgfCBhc3luYyBhcyBzb3J0SW5kZXhEaXNwbGF5XCJcbiAgICAgICAgICBjbGFzcz1cImFnLXNvcnQtaW5kaWNhdG9yLWljb24gYWctc29ydC1vcmRlclwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+e3sgc29ydEluZGV4RGlzcGxheSB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIiAjaW5saW5lSGVscENvbnRhaW5lcj48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixXQUFXLEVBRVgsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDBCQUEwQixHQUMzQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUczRDs7R0FFRztBQU9ILE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFpQlMsV0FBTSxHQUFzQyxTQUFTLENBQUM7UUFDdEQsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNILG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUM5QyxTQUFTLENBQ1YsQ0FBQztRQUNjLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXBFLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUs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QU0sRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVM7WUFDN0MsRUFBRSxVQUFVLEVBQUU7WUFDZCxFQUFFLElBQUksQ0FDSixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNwRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUNyQixDQUFDO1FBQ0osSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQUU7WUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs4R0EvS1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IsNk5BUU8sVUFBVSwyQ0MxQ3RELG0xRkF1RUE7OzJGRHJDYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07OEJBUXhDLFdBQVc7c0JBRGpCLFdBQVc7dUJBQUMsWUFBWTtnQkFJbEIsbUJBQW1CO3NCQUR6QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSG9zdEJpbmRpbmcsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBJSGVhZGVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgRXZlbnRzIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudFBhdHRlcm4gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVySW5mbyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1pbmZvJztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlclBhcmFtcyB9IGZyb20gJy4uL3R5cGVzL2hlYWRlci1wYXJhbXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICAvLyBGb3IgYWNjZXNzaWJpbGl0eSwgd2UgbmVlZCB0byBzZXQgdGhlIHRpdGxlIGF0dHJpYnV0ZSBvbiB0aGUgaGVhZGVyIGVsZW1lbnQgaWYgdGhlcmUgaXMgbm90IGEgZGlzcGxheSBuYW1lLlxuICAvLyBodHRwczovL2RlcXVldW5pdmVyc2l0eS5jb20vcnVsZXMvYXhlLzQuNS9lbXB0eS10YWJsZS1oZWFkZXI/YXBwbGljYXRpb249YXhlQVBJXG4gIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gIHB1YmxpYyBjb2x1bW5MYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2lubGluZUhlbHBDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgaW5saW5lSGVscENvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBzb3J0ZWQgPSAnJztcbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlckVuYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzb3J0T3JkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwnYXNjJyB8ICdkZXNjJyB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkLFxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgc29ydEluZGV4RGlzcGxheSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gICNzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAjaW5saW5lSGVscENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAjdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNhZ0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlID0gaW5qZWN0KFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN2aWV3SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWdJbml0KHBhcmFtczogU2t5QWdHcmlkSGVhZGVyUGFyYW1zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jYWdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIGlmICghcGFyYW1zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29sdW1uTGFiZWwgPSBwYXJhbXMuZGlzcGxheU5hbWVcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IHBhcmFtcy5jb2x1bW4uZ2V0Q29sRGVmKCkuZmllbGQ7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBpZiAocGFyYW1zLmNvbHVtbi5pc0ZpbHRlckFsbG93ZWQoKSkge1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudFBhdHRlcm4oXG4gICAgICAgICAgKGhhbmRsZXIpID0+XG4gICAgICAgICAgICBwYXJhbXMuY29sdW1uLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgIEV2ZW50cy5FVkVOVF9GSUxURVJfQ0hBTkdFRCxcbiAgICAgICAgICAgICAgaGFuZGxlcixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKGhhbmRsZXIpID0+XG4gICAgICAgICAgICBwYXJhbXMuY29sdW1uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgIEV2ZW50cy5FVkVOVF9GSUxURVJfQ0hBTkdFRCxcbiAgICAgICAgICAgICAgaGFuZGxlcixcbiAgICAgICAgICAgICksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0ZpbHRlckFjdGl2ZSA9IHBhcmFtcy5jb2x1bW4uaXNGaWx0ZXJBY3RpdmUoKTtcbiAgICAgICAgICBpZiAoaXNGaWx0ZXJBY3RpdmUgIT09IHRoaXMuZmlsdGVyRW5hYmxlZCQuZ2V0VmFsdWUoKSkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJFbmFibGVkJC5uZXh0KGlzRmlsdGVyQWN0aXZlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICAvLyBDb2x1bW4gc29ydCBzdGF0ZSBjaGFuZ2VzXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZnJvbUV2ZW50UGF0dGVybihcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5jb2x1bW4uYWRkRXZlbnRMaXN0ZW5lcihFdmVudHMuRVZFTlRfU09SVF9DSEFOR0VELCBoYW5kbGVyKSxcbiAgICAgICAgICAoaGFuZGxlcikgPT5cbiAgICAgICAgICAgIHBhcmFtcy5jb2x1bW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgRXZlbnRzLkVWRU5UX1NPUlRfQ0hBTkdFRCxcbiAgICAgICAgICAgICAgaGFuZGxlcixcbiAgICAgICAgICAgICksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0KCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIC8vIE90aGVyIGNvbHVtbiBzb3J0IHN0YXRlIGNoYW5nZXMsIGZvciBtdWx0aS1jb2x1bW4gc29ydGluZ1xuICAgICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGZyb21FdmVudFBhdHRlcm4oXG4gICAgICAgICAgKGhhbmRsZXIpID0+XG4gICAgICAgICAgICBwYXJhbXMuYXBpLmFkZEV2ZW50TGlzdGVuZXIoRXZlbnRzLkVWRU5UX1NPUlRfQ0hBTkdFRCwgaGFuZGxlciksXG4gICAgICAgICAgKGhhbmRsZXIpID0+XG4gICAgICAgICAgICBwYXJhbXMuYXBpLnJlbW92ZUV2ZW50TGlzdGVuZXIoRXZlbnRzLkVWRU5UX1NPUlRfQ0hBTkdFRCwgaGFuZGxlciksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVTb3J0SW5kZXgoKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgdGhpcy4jdXBkYXRlU29ydCgpO1xuICAgICAgdGhpcy4jdXBkYXRlU29ydEluZGV4KCk7XG4gICAgfVxuICAgIHRoaXMuI3VwZGF0ZUlubGluZUhlbHAoKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVDbGljaygkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXM/LnNob3dDb2x1bW5NZW51KCRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG9uU29ydFJlcXVlc3RlZChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmFtcz8uZW5hYmxlU29ydGluZykge1xuICAgICAgdGhpcy5wYXJhbXM/LnByb2dyZXNzU29ydChldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2gocGFyYW1zOiBTa3lBZ0dyaWRIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmFnSW5pdChwYXJhbXMpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICN1cGRhdGVJbmxpbmVIZWxwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdmlld0luaXRpYWxpemVkIHx8ICF0aGlzLiNhZ0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5saW5lSGVscENvbXBvbmVudCA9IHRoaXMucGFyYW1zPy5pbmxpbmVIZWxwQ29tcG9uZW50O1xuXG4gICAgaWYgKFxuICAgICAgaW5saW5lSGVscENvbXBvbmVudCAmJlxuICAgICAgKCF0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmIHx8XG4gICAgICAgIHRoaXMuI2lubGluZUhlbHBDb21wb25lbnRSZWYuY29tcG9uZW50VHlwZSAhPT0gaW5saW5lSGVscENvbXBvbmVudClcbiAgICApIHtcbiAgICAgIHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudChcbiAgICAgICAgdGhpcy4jaW5saW5lSGVscENvbXBvbmVudFJlZixcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGhlYWRlckluZm8gPSBuZXcgU2t5QWdHcmlkSGVhZGVySW5mbygpO1xuICAgICAgaGVhZGVySW5mby5jb2x1bW4gPSB0aGlzLnBhcmFtcz8uY29sdW1uO1xuICAgICAgaGVhZGVySW5mby5jb250ZXh0ID0gdGhpcy5wYXJhbXM/LmNvbnRleHQ7XG4gICAgICBoZWFkZXJJbmZvLmRpc3BsYXlOYW1lID0gdGhpcy5wYXJhbXM/LmRpc3BsYXlOYW1lO1xuXG4gICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmID1cbiAgICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KGlubGluZUhlbHBDb21wb25lbnQsIHtcbiAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogU2t5QWdHcmlkSGVhZGVySW5mbyxcbiAgICAgICAgICAgICAgdXNlVmFsdWU6IGhlYWRlckluZm8sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy4jZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgICByZWZlcmVuY2VFbDogdGhpcy5pbmxpbmVIZWxwQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIGxvY2F0aW9uOiBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghaW5saW5lSGVscENvbXBvbmVudCkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFxuICAgICAgICB0aGlzLiNpbmxpbmVIZWxwQ29tcG9uZW50UmVmLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlU29ydCgpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRPcmRlciQubmV4dCh0aGlzLnBhcmFtcz8uY29sdW1uLmdldFNvcnQoKSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgI3VwZGF0ZVNvcnRJbmRleCgpOiB2b2lkIHtcbiAgICBjb25zdCBzb3J0SW5kZXggPSB0aGlzLnBhcmFtcz8uY29sdW1uLmdldFNvcnRJbmRleCgpO1xuICAgIGNvbnN0IG90aGVyU29ydENvbHVtbnMgPSB0aGlzLnBhcmFtcz8uY29sdW1uQXBpXG4gICAgICA/LmdldENvbHVtbnMoKVxuICAgICAgPy5zb21lKFxuICAgICAgICAoY29sdW1uKSA9PlxuICAgICAgICAgIGNvbHVtbi5nZXRDb2xJZCgpICE9PSB0aGlzLnBhcmFtcz8uY29sdW1uLmdldENvbElkKCkgJiZcbiAgICAgICAgICAhIWNvbHVtbi5nZXRTb3J0KCksXG4gICAgICApO1xuICAgIGlmIChzb3J0SW5kZXggIT09IHVuZGVmaW5lZCAmJiBzb3J0SW5kZXggIT09IG51bGwgJiYgb3RoZXJTb3J0Q29sdW1ucykge1xuICAgICAgdGhpcy5zb3J0SW5kZXhEaXNwbGF5JC5uZXh0KGAke3NvcnRJbmRleCArIDF9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydEluZGV4RGlzcGxheSQubmV4dCgnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWctY2VsbC1sYWJlbC1jb250YWluZXJcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJwYXJhbXM/LmVuYWJsZU1lbnVcIlxuICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b25cIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKCRldmVudClcIlxuICA+XG4gICAgPHNreS1pY29uIGljb249XCJlbGxpcHNpc1wiIC8+XG4gIDwvc3Bhbj5cbiAgPG5nLXRlbXBsYXRlICNub3RTb3J0aW5nSGVhZGVyPlxuICAgIDxzcGFuIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiPnt7IHBhcmFtcz8uZGlzcGxheU5hbWUgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICA8c3BhbiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsLWFuZC1pY29uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInBhcmFtcz8uZW5hYmxlU29ydGluZzsgZWxzZSBub3RTb3J0aW5nSGVhZGVyXCJcbiAgICAgICAgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC10ZXh0IGFnLWhlYWRlci1jZWxsLWxhYmVsLXNvcnRhYmxlIHNreS1idG4tbGluay1pbmxpbmVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2lubmVyVGV4dF09XCJwYXJhbXM/LmRpc3BsYXlOYW1lXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU29ydFJlcXVlc3RlZCgkZXZlbnQpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiZmlsdGVyRW5hYmxlZCQgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb24gYWctZmlsdGVyLWljb25cIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cImZpbHRlclwiIC8+XG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwicGFyYW1zPy5lbmFibGVTb3J0aW5nXCJcbiAgICAgICAgY2xhc3M9XCJhZy1zb3J0LWluZGljYXRvci1jb250YWluZXIgc2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25Tb3J0UmVxdWVzdGVkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJzb3J0T3JkZXIkIHwgYXN5bmMgYXMgc29ydERpcmVjdGlvbjsgZWxzZSBub3RTb3J0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvcnREaXJlY3Rpb24gPT09ICdkZXNjJ1wiPlxuICAgICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCIgaWNvbj1cImNhcmV0LWRvd25cIiAvPlxuICAgICAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ21vZGVybidcIiBpY29uPVwiY2hldnJvbi1kb3duXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2Rlc2MnXG4gICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXMgOiBwYXJhbXM/LmRpc3BsYXlOYW1lXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic29ydERpcmVjdGlvbiA9PT0gJ2FzYydcIj5cbiAgICAgICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjYXJldC11cFwiIC8+XG4gICAgICAgICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJjaGV2cm9uLXVwXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2t5LXNjcmVlbi1yZWFkZXItb25seVwiPnt7XG4gICAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X2FzYydcbiAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcyA6IHBhcmFtcz8uZGlzcGxheU5hbWVcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTb3J0ZWQ+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3ktc2NyZWVuLXJlYWRlci1vbmx5XCI+e3tcbiAgICAgICAgICAgICdza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X25vdF9zb3J0ZWQnXG4gICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzIDogcGFyYW1zPy5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwic29ydEluZGV4RGlzcGxheSQgfCBhc3luYyBhcyBzb3J0SW5kZXhEaXNwbGF5XCJcbiAgICAgICAgICBjbGFzcz1cImFnLXNvcnQtaW5kaWNhdG9yLWljb24gYWctc29ydC1vcmRlclwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+e3sgc29ydEluZGV4RGlzcGxheSB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiICNpbmxpbmVIZWxwQ29udGFpbmVyPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -32,6 +32,15 @@ const RESOURCES = {
32
32
  sky_ag_grid_cell_editor_currency_aria_label: {
33
33
  message: 'Editable currency {0} for row {1}',
34
34
  },
35
+ sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {
36
+ message: 'Sort column {0}, currently ascending',
37
+ },
38
+ sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {
39
+ message: 'Sort column {0}, currently descending',
40
+ },
41
+ sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {
42
+ message: 'Sort column {0}, not currently sorted',
43
+ },
35
44
  sky_ag_grid_column_group_header_expand_aria_label: {
36
45
  message: 'Expand column group {0}',
37
46
  },
@@ -73,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
73
82
  ],
74
83
  }]
75
84
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0IsYUFBYSxFQUdiLHNCQUFzQixFQUN0QixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7O0FBRXJCLE1BQU0sU0FBUyxHQUEwQztJQUN2RCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsMEJBQTBCO1NBQ3BDO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLGlDQUFpQztTQUMzQztRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekM7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtRQUM5RCwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUsbUNBQW1DO1NBQzdDO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLHlCQUF5QjtTQUNuQztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxPQUFPLDBCQUEwQjtJQUM5QixTQUFTLENBQ2QsVUFBNEIsRUFDNUIsSUFBWTtRQUVaLE9BQU8scUJBQXFCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFXSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQVR6QixhQUFhOytHQVNaLHdCQUF3QixhQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixZQVBTLGFBQWE7OzJGQVNaLHdCQUF3QjtrQkFWcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5cbi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogeyBbbG9jYWxlOiBzdHJpbmddOiBTa3lMaWJSZXNvdXJjZXMgfSA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnUm93IHNlbGVjdG9yIGZvciByb3cgezB9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgbnVtYmVyIHswfSBmb3Igcm93IHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSB0ZXh0IHswfSBmb3Igcm93IHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGF1dG9jb21wbGV0ZSB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9udW1iZXJfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIG51bWJlci4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudGVyIGEgdmFsaWQgY3VycmVuY3kuJyxcbiAgICB9LFxuICAgIHNreXV4X2xvb2t1cF90b2tlbnNfc3VtbWFyeTogeyBtZXNzYWdlOiAnezB9IGl0ZW1zIHNlbGVjdGVkJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2N1cnJlbmN5X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBjdXJyZW5jeSB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2dyb3VwX2hlYWRlcl9leHBhbmRfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0V4cGFuZCBjb2x1bW4gZ3JvdXAgezB9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9ncm91cF9oZWFkZXJfY29sbGFwc2VfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0NvbGxhcHNlIGNvbHVtbiBncm91cCB7MH0nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzUHJvdmlkZXIgaW1wbGVtZW50cyBTa3lMaWJSZXNvdXJjZXNQcm92aWRlciB7XG4gIHB1YmxpYyBnZXRTdHJpbmcoXG4gICAgbG9jYWxlSW5mbzogU2t5QXBwTG9jYWxlSW5mbyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5QWdHcmlkUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFFMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCwyQkFBMkIsRUFFM0IsYUFBYSxFQUdiLHNCQUFzQixFQUN0QixxQkFBcUIsR0FDdEIsTUFBTSxhQUFhLENBQUM7O0FBRXJCLE1BQU0sU0FBUyxHQUEwQztJQUN2RCxPQUFPLEVBQUU7UUFDUCxtQ0FBbUMsRUFBRTtZQUNuQyxPQUFPLEVBQUUsMEJBQTBCO1NBQ3BDO1FBQ0QseUNBQXlDLEVBQUU7WUFDekMsT0FBTyxFQUFFLGlDQUFpQztTQUMzQztRQUNELHVDQUF1QyxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekM7UUFDRCwrQ0FBK0MsRUFBRTtZQUMvQyxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0Qsa0RBQWtELEVBQUU7WUFDbEQsT0FBTyxFQUFFLHVCQUF1QjtTQUNqQztRQUNELG9EQUFvRCxFQUFFO1lBQ3BELE9BQU8sRUFBRSx5QkFBeUI7U0FDbkM7UUFDRCwyQkFBMkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRTtRQUM5RCwyQ0FBMkMsRUFBRTtZQUMzQyxPQUFPLEVBQUUsbUNBQW1DO1NBQzdDO1FBQ0QsOERBQThELEVBQUU7WUFDOUQsT0FBTyxFQUFFLHNDQUFzQztTQUNoRDtRQUNELCtEQUErRCxFQUFFO1lBQy9ELE9BQU8sRUFBRSx1Q0FBdUM7U0FDakQ7UUFDRCxxRUFBcUUsRUFBRTtZQUNyRSxPQUFPLEVBQUUsdUNBQXVDO1NBQ2pEO1FBQ0QsaURBQWlELEVBQUU7WUFDakQsT0FBTyxFQUFFLHlCQUF5QjtTQUNuQztRQUNELG1EQUFtRCxFQUFFO1lBQ25ELE9BQU8sRUFBRSwyQkFBMkI7U0FDckM7S0FDRjtDQUNGLENBQUM7QUFFRixzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxPQUFPLDBCQUEwQjtJQUM5QixTQUFTLENBQ2QsVUFBNEIsRUFDNUIsSUFBWTtRQUVaLE9BQU8scUJBQXFCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFXSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7K0dBQXhCLHdCQUF3QixZQVR6QixhQUFhOytHQVNaLHdCQUF3QixhQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixZQVBTLGFBQWE7OzJGQVNaLHdCQUF3QjtrQkFWcEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUsMEJBQTBCOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5cbi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFnLWdyaWQnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogeyBbbG9jYWxlOiBzdHJpbmddOiBTa3lMaWJSZXNvdXJjZXMgfSA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreV9hZ19ncmlkX3Jvd19zZWxlY3Rvcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnUm93IHNlbGVjdG9yIGZvciByb3cgezB9JyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX251bWJlcl9hcmlhX2xhYmVsOiB7XG4gICAgICBtZXNzYWdlOiAnRWRpdGFibGUgbnVtYmVyIHswfSBmb3Igcm93IHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl90ZXh0X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSB0ZXh0IHswfSBmb3Igcm93IHsxfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0VkaXRhYmxlIGF1dG9jb21wbGV0ZSB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9udW1iZXJfdmFsaWRhdG9yX21lc3NhZ2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdFbnRlciBhIHZhbGlkIG51bWJlci4nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZToge1xuICAgICAgbWVzc2FnZTogJ0VudGVyIGEgdmFsaWQgY3VycmVuY3kuJyxcbiAgICB9LFxuICAgIHNreXV4X2xvb2t1cF90b2tlbnNfc3VtbWFyeTogeyBtZXNzYWdlOiAnezB9IGl0ZW1zIHNlbGVjdGVkJyB9LFxuICAgIHNreV9hZ19ncmlkX2NlbGxfZWRpdG9yX2N1cnJlbmN5X2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFZGl0YWJsZSBjdXJyZW5jeSB7MH0gZm9yIHJvdyB7MX0nLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9hc2M6IHtcbiAgICAgIG1lc3NhZ2U6ICdTb3J0IGNvbHVtbiB7MH0sIGN1cnJlbnRseSBhc2NlbmRpbmcnLFxuICAgIH0sXG4gICAgc2t5X2FnX2dyaWRfY29sdW1uX2hlYWRlcl9zb3J0X2J1dHRvbl9hcmlhX2xhYmVsX2N1cnJlbnRseV9kZXNjOiB7XG4gICAgICBtZXNzYWdlOiAnU29ydCBjb2x1bW4gezB9LCBjdXJyZW50bHkgZGVzY2VuZGluZycsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5faGVhZGVyX3NvcnRfYnV0dG9uX2FyaWFfbGFiZWxfY3VycmVudGx5X25vdF9zb3J0ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdTb3J0IGNvbHVtbiB7MH0sIG5vdCBjdXJyZW50bHkgc29ydGVkJyxcbiAgICB9LFxuICAgIHNreV9hZ19ncmlkX2NvbHVtbl9ncm91cF9oZWFkZXJfZXhwYW5kX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdFeHBhbmQgY29sdW1uIGdyb3VwIHswfScsXG4gICAgfSxcbiAgICBza3lfYWdfZ3JpZF9jb2x1bW5fZ3JvdXBfaGVhZGVyX2NvbGxhcHNlX2FyaWFfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICdDb2xsYXBzZSBjb2x1bW4gZ3JvdXAgezB9JyxcbiAgICB9LFxuICB9LFxufTtcblxuU2t5TGliUmVzb3VyY2VzU2VydmljZS5hZGRSZXNvdXJjZXMoUkVTT1VSQ0VTKTtcblxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFJlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreUFnR3JpZFJlc291cmNlc1Byb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
@@ -62,6 +62,15 @@ const RESOURCES = {
62
62
  sky_ag_grid_cell_editor_currency_aria_label: {
63
63
  message: 'Editable currency {0} for row {1}',
64
64
  },
65
+ sky_ag_grid_column_header_sort_button_aria_label_currently_asc: {
66
+ message: 'Sort column {0}, currently ascending',
67
+ },
68
+ sky_ag_grid_column_header_sort_button_aria_label_currently_desc: {
69
+ message: 'Sort column {0}, currently descending',
70
+ },
71
+ sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted: {
72
+ message: 'Sort column {0}, not currently sorted',
73
+ },
65
74
  sky_ag_grid_column_group_header_expand_aria_label: {
66
75
  message: 'Expand column group {0}',
67
76
  },
@@ -1394,11 +1403,11 @@ class SkyAgGridHeaderComponent {
1394
1403
  }
1395
1404
  }
1396
1405
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyAgGridHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1397
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyAgGridHeaderComponent, selector: "sky-ag-grid-header", host: { properties: { "attr.title": "this.columnLabel" } }, viewQueries: [{ propertyName: "inlineHelpContainer", first: true, predicate: ["inlineHelpContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <span *ngIf=\"params?.enableSorting\" class=\"ag-sort-indicator-container\">\n <ng-container *skyThemeIf=\"'default'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"caret-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"caret-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"chevron-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"chevron-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </span>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i2$3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1406
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyAgGridHeaderComponent, selector: "sky-ag-grid-header", host: { properties: { "attr.title": "this.columnLabel" } }, viewQueries: [{ propertyName: "inlineHelpContainer", first: true, predicate: ["inlineHelpContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <button\n *ngIf=\"params?.enableSorting\"\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n <ng-container\n *ngIf=\"sortOrder$ | async as sortDirection; else notSorted\"\n >\n <ng-container *ngIf=\"sortDirection === 'desc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n <ng-container *ngIf=\"sortDirection === 'asc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n </ng-container>\n <ng-template #notSorted>\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-template>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </button>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--ag-header-foreground-color);width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i2$3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1398
1407
  }
1399
1408
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyAgGridHeaderComponent, decorators: [{
1400
1409
  type: Component,
1401
- args: [{ selector: 'sky-ag-grid-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <span *ngIf=\"params?.enableSorting\" class=\"ag-sort-indicator-container\">\n <ng-container *skyThemeIf=\"'default'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"caret-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"caret-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <ng-container *skyThemeIf=\"'modern'\">\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'desc'\"\n icon=\"chevron-down\"\n class=\"ag-header-label-icon\"\n />\n <sky-icon\n *ngIf=\"(sortOrder$ | async) === 'asc'\"\n icon=\"chevron-up\"\n class=\"ag-header-label-icon\"\n />\n </ng-container>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </span>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"] }]
1410
+ args: [{ selector: 'sky-ag-grid-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span\n *ngIf=\"params?.enableMenu\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n aria-hidden=\"true\"\n (click)=\"onMenuClick($event)\"\n >\n <sky-icon icon=\"ellipsis\" />\n </span>\n <ng-template #notSortingHeader>\n <span class=\"ag-header-cell-text\">{{ params?.displayName }}</span>\n </ng-template>\n <div class=\"ag-header-cell-label\" role=\"presentation\">\n <span class=\"ag-header-cell-label-and-icons\">\n <button\n *ngIf=\"params?.enableSorting; else notSortingHeader\"\n class=\"ag-header-cell-text ag-header-cell-label-sortable sky-btn-link-inline\"\n type=\"button\"\n [innerText]=\"params?.displayName\"\n (click)=\"onSortRequested($event)\"\n ></button>\n <span\n *ngIf=\"filterEnabled$ | async\"\n class=\"ag-header-icon ag-header-label-icon ag-filter-icon\"\n aria-hidden=\"true\"\n >\n <sky-icon icon=\"filter\" />\n </span>\n <button\n *ngIf=\"params?.enableSorting\"\n class=\"ag-sort-indicator-container sky-btn sky-btn-icon-borderless\"\n type=\"button\"\n (click)=\"onSortRequested($event)\"\n >\n <ng-container\n *ngIf=\"sortOrder$ | async as sortDirection; else notSorted\"\n >\n <ng-container *ngIf=\"sortDirection === 'desc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-down\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-down\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_desc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n <ng-container *ngIf=\"sortDirection === 'asc'\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"caret-up\" />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"chevron-up\" />\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_asc'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-container>\n </ng-container>\n <ng-template #notSorted>\n <span class=\"sky-screen-reader-only\">{{\n 'sky_ag_grid_column_header_sort_button_aria_label_currently_not_sorted'\n | skyLibResources : params?.displayName\n }}</span>\n </ng-template>\n <span\n *ngIf=\"sortIndexDisplay$ | async as sortIndexDisplay\"\n class=\"ag-sort-indicator-icon ag-sort-order\"\n aria-hidden=\"true\"\n >{{ sortIndexDisplay }}</span\n >\n </button>\n </span>\n <span class=\"sky-control-help-container\" #inlineHelpContainer></span>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;max-width:100%;height:100%;align-items:center;align-content:center}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned){flex-direction:row-reverse}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .sky-control-help-container{order:0}:host-context(.ag-header-cell.ag-right-aligned-header,.ag-header-cell.sky-ag-grid-header-right-aligned) .ag-header-cell-label .ag-header-cell-label-and-icons{order:1}button.ag-header-cell-label{text-transform:inherit;max-width:100%}.ag-cell-label-container{padding:0;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label{padding-right:0;padding-left:0}.ag-header-cell-label .ag-header-cell-label-and-icons{display:flex;flex-wrap:nowrap;flex-direction:row;overflow:hidden;gap:var(--sky-margin-inline-xs)}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-header-cell-text{flex-grow:0;flex-shrink:1}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container{color:var(--ag-header-foreground-color);width:initial;height:initial}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:hover{border:none}.ag-header-cell-label .ag-header-cell-label-and-icons .ag-sort-indicator-container:empty{display:none}button{cursor:pointer;flex-grow:0;flex-shrink:1;text-transform:inherit}\n"] }]
1402
1411
  }], propDecorators: { columnLabel: [{
1403
1412
  type: HostBinding,
1404
1413
  args: ['attr.title']