mis-crystal-design-system 18.0.6 → 18.0.8-test-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.
- package/assets/icons/sort-asc.svg +5 -0
- package/assets/icons/sort-desc.svg +5 -0
- package/assets/icons/sprite.svg +12 -0
- package/assets/sort-asc.svg +5 -0
- package/assets/sort-desc.svg +5 -0
- package/dropdown/dropdown.module.d.ts +1 -1
- package/esm2022/dropdown/dropdown.module.mjs +2 -2
- package/esm2022/table/public_api.mjs +5 -3
- package/esm2022/table/sort-icons.directive.mjs +153 -0
- package/esm2022/table/table.component.mjs +89 -62
- package/esm2022/table/table.config.mjs +6 -0
- package/esm2022/table/table.module.mjs +25 -4
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +1 -2
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +268 -66
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +7 -7
- package/table/filter/filter.component.d.ts +1 -1
- package/table/public_api.d.ts +4 -2
- package/table/sort-icons.directive.d.ts +35 -0
- package/table/table.component.d.ts +11 -1
- package/table/table.config.d.ts +2 -0
- package/table/table.module.d.ts +5 -4
- package/button/button.directive.scss +0 -69
- package/drawer/drawer.scss +0 -20
- package/input/mis-input.component.scss +0 -180
- package/modal/modal.scss +0 -9
- package/styles/fonts/icomoon.eot +0 -0
- package/styles/fonts/icomoon.svg +0 -315
- package/styles/fonts/icomoon.ttf +0 -0
- package/styles/fonts/icomoon.woff +0 -0
- package/styles/mis-borders-backgrounds.scss +0 -764
- package/styles/mis-color-constants.scss +0 -149
- package/styles/mis-flex.scss +0 -321
- package/styles/mis-fonts.scss +0 -124
- package/styles/mis-icons.scss +0 -1054
- package/styles/mis-mixins.scss +0 -46
- package/styles/mis-old-icon-styles.scss +0 -498
- package/styles/mis-spacing-sizing.scss +0 -2590
- package/styles/mis-typography.scss +0 -462
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M4 6L8 2L12 6" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M8 2V14" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M4 10L8 14L12 10" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M8 14V2" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
|
3
|
+
<!-- Sort Ascending Icon -->
|
|
4
|
+
<symbol id="sort-asc" viewBox="0 0 24 24" fill="none">
|
|
5
|
+
<path d="M7 14l5-5 5 5z" fill="currentColor"/>
|
|
6
|
+
</symbol>
|
|
7
|
+
|
|
8
|
+
<!-- Sort Descending Icon -->
|
|
9
|
+
<symbol id="sort-desc" viewBox="0 0 24 24" fill="none">
|
|
10
|
+
<path d="M7 10l5 5 5-5z" fill="currentColor"/>
|
|
11
|
+
</symbol>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M4 6L8 2L12 6" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M8 2V14" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M4 10L8 14L12 10" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M8 14V2" stroke="#181F33" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -5,7 +5,7 @@ import * as i2 from "./calculate-container-height.directive";
|
|
|
5
5
|
import * as i3 from "@angular/common";
|
|
6
6
|
import * as i4 from "@angular/forms";
|
|
7
7
|
import * as i5 from "@angular/cdk/overlay";
|
|
8
|
-
import * as i6 from "@angular/cdk
|
|
8
|
+
import * as i6 from "@angular/cdk/scrolling";
|
|
9
9
|
import * as i7 from "mis-crystal-design-system/loader";
|
|
10
10
|
import * as i8 from "@angular/cdk/a11y";
|
|
11
11
|
export declare class DropdownModule {
|
|
@@ -3,7 +3,7 @@ import { FormsModule } from "@angular/forms";
|
|
|
3
3
|
import { NgModule } from "@angular/core";
|
|
4
4
|
import { DropdownComponent } from "./dropdown.component";
|
|
5
5
|
import { OverlayModule } from "@angular/cdk/overlay";
|
|
6
|
-
import { ScrollingModule } from "@angular/cdk
|
|
6
|
+
import { ScrollingModule } from "@angular/cdk/scrolling";
|
|
7
7
|
import { LoaderModule } from "mis-crystal-design-system/loader";
|
|
8
8
|
import { CalculateContainerHeightDirective } from './calculate-container-height.directive';
|
|
9
9
|
import { A11yModule } from "@angular/cdk/a11y";
|
|
@@ -25,4 +25,4 @@ export class DropdownModule {
|
|
|
25
25
|
}]
|
|
26
26
|
}], null, null); })();
|
|
27
27
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DropdownModule, { declarations: [DropdownComponent, CalculateContainerHeightDirective], imports: [CommonModule, FormsModule, OverlayModule, ScrollingModule, LoaderModule, A11yModule], exports: [DropdownComponent] }); })();
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU8vQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNyRCxDQUFDOytHQUhVLGNBQWM7bUVBQWQsY0FBYzt1RUFIZixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsWUFBWSxFQUFFLFVBQVU7O2lGQUdqRixjQUFjO2NBTDFCLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQ0FBaUMsQ0FBQztnQkFDcEUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7Z0JBQzdGLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQzdCOzt3RkFDWSxjQUFjLG1CQUpWLGlCQUFpQixFQUFFLGlDQUFpQyxhQUN6RCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUMsWUFBWSxFQUFFLFVBQVUsYUFDbEYsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xuaW1wb3J0IHsgTG9hZGVyTW9kdWxlIH0gZnJvbSBcIm1pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vbG9hZGVyXCI7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb250YWluZXJIZWlnaHREaXJlY3RpdmUgfSBmcm9tICcuL2NhbGN1bGF0ZS1jb250YWluZXItaGVpZ2h0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0Ryb3Bkb3duQ29tcG9uZW50LCBDYWxjdWxhdGVDb250YWluZXJIZWlnaHREaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgT3ZlcmxheU1vZHVsZSwgU2Nyb2xsaW5nTW9kdWxlLExvYWRlck1vZHVsZSwgQTExeU1vZHVsZV0sICBcbiAgZXhwb3J0czogW0Ryb3Bkb3duQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RHJvcGRvd25Nb2R1bGU+IHtcbiAgICByZXR1cm4geyBuZ01vZHVsZTogRHJvcGRvd25Nb2R1bGUsIHByb3ZpZGVyczogW10gfTtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './table.component';
|
|
2
|
+
export * from './table.module';
|
|
3
|
+
export * from './table.config';
|
|
4
|
+
export * from './sort-icons.directive';
|
|
2
5
|
export { SubTableComponent } from "./sub-table/sub-table.component";
|
|
3
6
|
export { CustomTableCellDirective } from "./custom-table-cell.directive";
|
|
4
|
-
export { TableModule } from "./table.module";
|
|
5
7
|
export { TableFilterComponent } from "./filter/filter.component";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1pY29ucy5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgU3ViVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9zdWItdGFibGUvc3ViLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgQ3VzdG9tVGFibGVDZWxsRGlyZWN0aXZlIH0gZnJvbSBcIi4vY3VzdG9tLXRhYmxlLWNlbGwuZGlyZWN0aXZlXCI7XG5leHBvcnQgeyBUYWJsZUNvbmZpZywgUGFnaW5hdGlvbkNvbmZpZywgUm93Q29uZmlnLCBDb2xIZWFkZXJDb25maWcsIENvbENvbmZpZyB9IGZyb20gXCIuL3RhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgU3ViVGFibGVDb25maWcsIFN1YlRhYmxlQ29sQ29uZmlnLCBTdWJUYWJsZUNvbEhlYWRlckNvbmZpZywgU3ViVGFibGVSb3dDb25maWcgfSBmcm9tIFwiLi9zdWItdGFibGUvc3ViLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnRcIjtcbiJdfQ==
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Directive, input, output, signal, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SortIconsDirective {
|
|
4
|
+
constructor(el, renderer) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.renderer = renderer;
|
|
7
|
+
// Convert inputs to signals
|
|
8
|
+
this.column = input('');
|
|
9
|
+
this.activeSort = input();
|
|
10
|
+
this.activeSorts = input();
|
|
11
|
+
this.multiColumnSort = input(false);
|
|
12
|
+
// Convert output to signal
|
|
13
|
+
this.sortChange = output();
|
|
14
|
+
this.multiSortChange = output();
|
|
15
|
+
// Internal state as signals
|
|
16
|
+
this.currentDirection = signal('');
|
|
17
|
+
this.columnNumber = signal(0);
|
|
18
|
+
// Assets
|
|
19
|
+
this.SORT_ASCENDING = 'assets/sort-asc.svg';
|
|
20
|
+
this.SORT_DESCENDING = 'assets/sort-desc.svg';
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
// Get column number from data-column attribute
|
|
24
|
+
const columnAttr = this.el.nativeElement.getAttribute('data-column');
|
|
25
|
+
if (columnAttr) {
|
|
26
|
+
this.columnNumber.set(parseInt(columnAttr, 10));
|
|
27
|
+
}
|
|
28
|
+
// Create a container for the icons
|
|
29
|
+
const container = this.renderer.createElement('div');
|
|
30
|
+
this.renderer?.setStyle(container, 'display', 'inline-flex');
|
|
31
|
+
this.renderer?.setStyle(container, 'align-items', 'center');
|
|
32
|
+
this.renderer?.setStyle(container, 'gap', '0.5rem');
|
|
33
|
+
const iconContainer = this.renderer.createElement('div');
|
|
34
|
+
this.renderer?.setStyle(iconContainer, 'display', 'inline-flex');
|
|
35
|
+
this.renderer?.setStyle(iconContainer, 'flex-direction', 'column');
|
|
36
|
+
this.renderer?.setStyle(iconContainer, 'align-items', 'center');
|
|
37
|
+
this.renderer?.setStyle(iconContainer, 'gap', '5px');
|
|
38
|
+
this.upIcon = this.renderer.createElement('img');
|
|
39
|
+
this.renderer?.setAttribute(this.upIcon, 'src', this.SORT_ASCENDING);
|
|
40
|
+
this.renderer?.setStyle(this.upIcon, 'opacity', '0.5');
|
|
41
|
+
this.renderer?.setStyle(this.upIcon, 'transition', 'opacity 0.3s ease');
|
|
42
|
+
this.renderer?.setStyle(this.upIcon, 'width', '9px');
|
|
43
|
+
this.renderer?.setStyle(this.upIcon, 'cursor', 'pointer');
|
|
44
|
+
this.renderer?.listen(this.upIcon, 'click', () => this.setSortDirection('ASC'));
|
|
45
|
+
this.downIcon = this.renderer.createElement('img');
|
|
46
|
+
this.renderer?.setAttribute(this.downIcon, 'src', this.SORT_DESCENDING);
|
|
47
|
+
this.renderer?.setStyle(this.downIcon, 'opacity', '0.5');
|
|
48
|
+
this.renderer?.setStyle(this.downIcon, 'transition', 'opacity 0.3s ease');
|
|
49
|
+
this.renderer?.setStyle(this.downIcon, 'width', '9px');
|
|
50
|
+
this.renderer?.setStyle(this.downIcon, 'cursor', 'pointer');
|
|
51
|
+
this.renderer?.listen(this.downIcon, 'click', () => this.setSortDirection('DESC'));
|
|
52
|
+
this.renderer?.appendChild(iconContainer, this.upIcon);
|
|
53
|
+
this.renderer?.appendChild(iconContainer, this.downIcon);
|
|
54
|
+
this.renderer?.appendChild(container, iconContainer);
|
|
55
|
+
if (this.multiColumnSort()) {
|
|
56
|
+
this.sortOrderElement = this.renderer.createElement('span');
|
|
57
|
+
this.renderer?.setStyle(this.sortOrderElement, 'font-size', '12px');
|
|
58
|
+
this.renderer?.setStyle(this.sortOrderElement, 'font-weight', 'bold');
|
|
59
|
+
this.renderer?.setStyle(this.sortOrderElement, 'color', '#000');
|
|
60
|
+
this.renderer?.appendChild(container, this.sortOrderElement);
|
|
61
|
+
}
|
|
62
|
+
this.renderer?.appendChild(this.el.nativeElement, container);
|
|
63
|
+
this.updateIconStyles();
|
|
64
|
+
}
|
|
65
|
+
ngOnChanges(changes) {
|
|
66
|
+
if (changes['activeSort'] || changes['activeSorts']) {
|
|
67
|
+
this.updateIconStyles();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
setSortDirection(direction) {
|
|
71
|
+
if (this.multiColumnSort()) {
|
|
72
|
+
this.handleMultiColumnSort(direction);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.handleSingleColumnSort(direction);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
handleSingleColumnSort(direction) {
|
|
79
|
+
if (this.currentDirection() === direction) {
|
|
80
|
+
this.currentDirection.set(''); // Reset sorting if the same direction is clicked
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.currentDirection.set(direction);
|
|
84
|
+
}
|
|
85
|
+
this.sortChange.emit({
|
|
86
|
+
column: this.column(),
|
|
87
|
+
direction: this.currentDirection(),
|
|
88
|
+
columnNumber: this.columnNumber()
|
|
89
|
+
});
|
|
90
|
+
this.updateIconStyles();
|
|
91
|
+
}
|
|
92
|
+
handleMultiColumnSort(direction) {
|
|
93
|
+
const existingSortIndex = this.activeSorts().findIndex(sort => sort.column === this.column());
|
|
94
|
+
if (existingSortIndex !== -1) {
|
|
95
|
+
if (this.activeSorts()[existingSortIndex].direction !== direction) {
|
|
96
|
+
this.activeSorts()[existingSortIndex].direction = direction;
|
|
97
|
+
this.activeSorts()[existingSortIndex].columnNumber = this.columnNumber();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.activeSorts().push({
|
|
105
|
+
column: this.column(),
|
|
106
|
+
direction,
|
|
107
|
+
columnNumber: this.columnNumber()
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
this.multiSortChange.emit([...this.activeSorts()]);
|
|
111
|
+
this.updateIconStyles();
|
|
112
|
+
}
|
|
113
|
+
updateIconStyles() {
|
|
114
|
+
if (this.multiColumnSort()) {
|
|
115
|
+
this.updateMultiColumnIconStyles();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.updateSingleColumnIconStyles();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
updateSingleColumnIconStyles() {
|
|
122
|
+
const isActiveColumn = this.activeSort()?.column === this.column();
|
|
123
|
+
setTimeout(() => {
|
|
124
|
+
this.renderer?.setStyle(this.upIcon, 'opacity', isActiveColumn && this.currentDirection() === 'ASC' ? '1' : '0.5');
|
|
125
|
+
this.renderer?.setStyle(this.downIcon, 'opacity', isActiveColumn && this.currentDirection() === 'DESC' ? '1' : '0.5');
|
|
126
|
+
}, 0);
|
|
127
|
+
}
|
|
128
|
+
updateMultiColumnIconStyles() {
|
|
129
|
+
const columnSort = this.activeSorts().find(sort => sort.column === this.column());
|
|
130
|
+
setTimeout(() => {
|
|
131
|
+
this.renderer?.setStyle(this.upIcon, 'opacity', columnSort?.direction === 'ASC' ? '1' : '0.5');
|
|
132
|
+
this.renderer?.setStyle(this.downIcon, 'opacity', columnSort?.direction === 'DESC' ? '1' : '0.5');
|
|
133
|
+
if (this.sortOrderElement) {
|
|
134
|
+
const sortIndex = this.activeSorts().findIndex(sort => sort.column === this.column());
|
|
135
|
+
if (sortIndex !== -1) {
|
|
136
|
+
this.renderer?.setProperty(this.sortOrderElement, 'textContent', (sortIndex + 1).toString());
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.renderer?.setProperty(this.sortOrderElement, 'textContent', '');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}, 0);
|
|
143
|
+
}
|
|
144
|
+
static { this.ɵfac = function SortIconsDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SortIconsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
|
|
145
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SortIconsDirective, selectors: [["", "appSortIcons", ""]], inputs: { column: [1, "column"], activeSort: [1, "activeSort"], activeSorts: [1, "activeSorts"], multiColumnSort: [1, "multiColumnSort"] }, outputs: { sortChange: "sortChange", multiSortChange: "multiSortChange" }, features: [i0.ɵɵNgOnChangesFeature] }); }
|
|
146
|
+
}
|
|
147
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SortIconsDirective, [{
|
|
148
|
+
type: Directive,
|
|
149
|
+
args: [{
|
|
150
|
+
selector: '[appSortIcons]',
|
|
151
|
+
}]
|
|
152
|
+
}], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pY29ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90YWJsZS9zb3J0LWljb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQVNULEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sa0JBQWtCO0lBdUI3QixZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF0Qi9ELDRCQUE0QjtRQUM1QixXQUFNLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssRUFBZSxDQUFDO1FBQ25DLG9CQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhDLDJCQUEyQjtRQUMzQixlQUFVLEdBQUcsTUFBTSxFQUFhLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLEVBQWUsQ0FBQztRQUV4Qyw0QkFBNEI7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUV6QyxTQUFTO1FBQ1EsbUJBQWMsR0FBRyxxQkFBcUIsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLHNCQUFzQixDQUFDO0lBTVEsQ0FBQztJQUVuRSxRQUFRO1FBQ04sK0NBQStDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFcEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuRixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFNBQXlCO1FBQ2hELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsU0FBeUI7UUFDdEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaURBQWlEO1FBQ2xGLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNsQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtTQUNsQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8scUJBQXFCLENBQUMsU0FBeUI7UUFDckQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUU5RixJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQzVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0UsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDO2dCQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsU0FBUztnQkFDVCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTthQUNsQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFbkUsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUNyQixJQUFJLENBQUMsTUFBTSxFQUNYLFNBQVMsRUFDVCxjQUFjLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDbEUsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUNyQixJQUFJLENBQUMsUUFBUSxFQUNiLFNBQVMsRUFDVCxjQUFjLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDbkUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTywyQkFBMkI7UUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUNyQixJQUFJLENBQUMsTUFBTSxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQUUsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQzlDLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FDckIsSUFBSSxDQUFDLFFBQVEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUFFLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUMvQyxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3RGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDL0YsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzttSEEvS1Usa0JBQWtCO29FQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FIOUIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdGUge1xuICBjb2x1bW46IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyB8ICcnO1xuICBjb2x1bW5OdW1iZXI/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBTb3J0SWNvbnNdJyxcbn0pXG5leHBvcnQgY2xhc3MgU29ydEljb25zRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBDb252ZXJ0IGlucHV0cyB0byBzaWduYWxzXG4gIGNvbHVtbiA9IGlucHV0PHN0cmluZz4oJycpO1xuICBhY3RpdmVTb3J0ID0gaW5wdXQ8U29ydFN0YXRlPigpO1xuICBhY3RpdmVTb3J0cyA9IGlucHV0PFNvcnRTdGF0ZVtdPigpO1xuICBtdWx0aUNvbHVtblNvcnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIFxuICAvLyBDb252ZXJ0IG91dHB1dCB0byBzaWduYWxcbiAgc29ydENoYW5nZSA9IG91dHB1dDxTb3J0U3RhdGU+KCk7XG4gIG11bHRpU29ydENoYW5nZSA9IG91dHB1dDxTb3J0U3RhdGVbXT4oKTtcblxuICAvLyBJbnRlcm5hbCBzdGF0ZSBhcyBzaWduYWxzXG4gIGN1cnJlbnREaXJlY3Rpb24gPSBzaWduYWw8J0FTQycgfCAnREVTQycgfCAnJz4oJycpO1xuICBwcml2YXRlIGNvbHVtbk51bWJlciA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8vIEFzc2V0c1xuICBwcml2YXRlIHJlYWRvbmx5IFNPUlRfQVNDRU5ESU5HID0gJ2Fzc2V0cy9zb3J0LWFzYy5zdmcnO1xuICBwcml2YXRlIHJlYWRvbmx5IFNPUlRfREVTQ0VORElORyA9ICdhc3NldHMvc29ydC1kZXNjLnN2Zyc7XG5cbiAgcHJpdmF0ZSB1cEljb24hOiBIVE1MSW1hZ2VFbGVtZW50O1xuICBwcml2YXRlIGRvd25JY29uITogSFRNTEltYWdlRWxlbWVudDtcbiAgcHJpdmF0ZSBzb3J0T3JkZXJFbGVtZW50PzogSFRNTFNwYW5FbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBHZXQgY29sdW1uIG51bWJlciBmcm9tIGRhdGEtY29sdW1uIGF0dHJpYnV0ZVxuICAgIGNvbnN0IGNvbHVtbkF0dHIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWNvbHVtbicpO1xuICAgIGlmIChjb2x1bW5BdHRyKSB7XG4gICAgICB0aGlzLmNvbHVtbk51bWJlci5zZXQocGFyc2VJbnQoY29sdW1uQXR0ciwgMTApKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBjb250YWluZXIgZm9yIHRoZSBpY29uc1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoY29udGFpbmVyLCAnZGlzcGxheScsICdpbmxpbmUtZmxleCcpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGNvbnRhaW5lciwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGNvbnRhaW5lciwgJ2dhcCcsICcwLjVyZW0nKTtcblxuICAgIGNvbnN0IGljb25Db250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGljb25Db250YWluZXIsICdkaXNwbGF5JywgJ2lubGluZS1mbGV4Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUoaWNvbkNvbnRhaW5lciwgJ2ZsZXgtZGlyZWN0aW9uJywgJ2NvbHVtbicpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGljb25Db250YWluZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShpY29uQ29udGFpbmVyLCAnZ2FwJywgJzVweCcpO1xuXG4gICAgdGhpcy51cEljb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldEF0dHJpYnV0ZSh0aGlzLnVwSWNvbiwgJ3NyYycsIHRoaXMuU09SVF9BU0NFTkRJTkcpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMudXBJY29uLCAnb3BhY2l0eScsICcwLjUnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLnVwSWNvbiwgJ3RyYW5zaXRpb24nLCAnb3BhY2l0eSAwLjNzIGVhc2UnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLnVwSWNvbiwgJ3dpZHRoJywgJzlweCcpO1xuICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMudXBJY29uLCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5saXN0ZW4odGhpcy51cEljb24sICdjbGljaycsICgpID0+IHRoaXMuc2V0U29ydERpcmVjdGlvbignQVNDJykpO1xuXG4gICAgdGhpcy5kb3duSWNvbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0QXR0cmlidXRlKHRoaXMuZG93bkljb24sICdzcmMnLCB0aGlzLlNPUlRfREVTQ0VORElORyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ29wYWNpdHknLCAnMC41Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ3RyYW5zaXRpb24nLCAnb3BhY2l0eSAwLjNzIGVhc2UnKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZSh0aGlzLmRvd25JY29uLCAnd2lkdGgnLCAnOXB4Jyk7XG4gICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5kb3duSWNvbiwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlcj8ubGlzdGVuKHRoaXMuZG93bkljb24sICdjbGljaycsICgpID0+IHRoaXMuc2V0U29ydERpcmVjdGlvbignREVTQycpKTtcblxuICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGljb25Db250YWluZXIsIHRoaXMudXBJY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZChpY29uQ29udGFpbmVyLCB0aGlzLmRvd25JY29uKTtcbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZChjb250YWluZXIsIGljb25Db250YWluZXIpO1xuXG4gICAgaWYgKHRoaXMubXVsdGlDb2x1bW5Tb3J0KCkpIHtcbiAgICAgIHRoaXMuc29ydE9yZGVyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0U3R5bGUodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAnZm9udC1zaXplJywgJzEycHgnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMuc29ydE9yZGVyRWxlbWVudCwgJ2ZvbnQtd2VpZ2h0JywgJ2JvbGQnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKHRoaXMuc29ydE9yZGVyRWxlbWVudCwgJ2NvbG9yJywgJyMwMDAnKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LmFwcGVuZENoaWxkKGNvbnRhaW5lciwgdGhpcy5zb3J0T3JkZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyPy5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNvbnRhaW5lcik7XG4gICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2FjdGl2ZVNvcnQnXSB8fCBjaGFuZ2VzWydhY3RpdmVTb3J0cyddKSB7XG4gICAgICB0aGlzLnVwZGF0ZUljb25TdHlsZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNvcnREaXJlY3Rpb24oZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpQ29sdW1uU29ydCgpKSB7XG4gICAgICB0aGlzLmhhbmRsZU11bHRpQ29sdW1uU29ydChkaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZVNpbmdsZUNvbHVtblNvcnQoZGlyZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNpbmdsZUNvbHVtblNvcnQoZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnREaXJlY3Rpb24oKSA9PT0gZGlyZWN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24uc2V0KCcnKTsgLy8gUmVzZXQgc29ydGluZyBpZiB0aGUgc2FtZSBkaXJlY3Rpb24gaXMgY2xpY2tlZFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24uc2V0KGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoeyBcbiAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4oKSwgXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudERpcmVjdGlvbigpLFxuICAgICAgY29sdW1uTnVtYmVyOiB0aGlzLmNvbHVtbk51bWJlcigpXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU11bHRpQ29sdW1uU29ydChkaXJlY3Rpb246ICdBU0MnIHwgJ0RFU0MnKTogdm9pZCB7XG4gICAgY29uc3QgZXhpc3RpbmdTb3J0SW5kZXggPSB0aGlzLmFjdGl2ZVNvcnRzKCkuZmluZEluZGV4KHNvcnQgPT4gc29ydC5jb2x1bW4gPT09IHRoaXMuY29sdW1uKCkpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ1NvcnRJbmRleCAhPT0gLTEpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVNvcnRzKClbZXhpc3RpbmdTb3J0SW5kZXhdLmRpcmVjdGlvbiAhPT0gZGlyZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlU29ydHMoKVtleGlzdGluZ1NvcnRJbmRleF0uZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICB0aGlzLmFjdGl2ZVNvcnRzKClbZXhpc3RpbmdTb3J0SW5kZXhdLmNvbHVtbk51bWJlciA9IHRoaXMuY29sdW1uTnVtYmVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlU29ydHMoKS5wdXNoKHsgXG4gICAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4oKSwgXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgY29sdW1uTnVtYmVyOiB0aGlzLmNvbHVtbk51bWJlcigpXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5tdWx0aVNvcnRDaGFuZ2UuZW1pdChbLi4udGhpcy5hY3RpdmVTb3J0cygpXSk7XG4gICAgdGhpcy51cGRhdGVJY29uU3R5bGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUljb25TdHlsZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlDb2x1bW5Tb3J0KCkpIHtcbiAgICAgIHRoaXMudXBkYXRlTXVsdGlDb2x1bW5JY29uU3R5bGVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlU2luZ2xlQ29sdW1uSWNvblN0eWxlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2luZ2xlQ29sdW1uSWNvblN0eWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBpc0FjdGl2ZUNvbHVtbiA9IHRoaXMuYWN0aXZlU29ydCgpPy5jb2x1bW4gPT09IHRoaXMuY29sdW1uKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKFxuICAgICAgICB0aGlzLnVwSWNvbixcbiAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICBpc0FjdGl2ZUNvbHVtbiAmJiB0aGlzLmN1cnJlbnREaXJlY3Rpb24oKSA9PT0gJ0FTQycgPyAnMScgOiAnMC41J1xuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKFxuICAgICAgICB0aGlzLmRvd25JY29uLFxuICAgICAgICAnb3BhY2l0eScsXG4gICAgICAgIGlzQWN0aXZlQ29sdW1uICYmIHRoaXMuY3VycmVudERpcmVjdGlvbigpID09PSAnREVTQycgPyAnMScgOiAnMC41J1xuICAgICAgKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTXVsdGlDb2x1bW5JY29uU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtblNvcnQgPSB0aGlzLmFjdGl2ZVNvcnRzKCkuZmluZChzb3J0ID0+IHNvcnQuY29sdW1uID09PSB0aGlzLmNvbHVtbigpKTtcbiAgICBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKFxuICAgICAgICB0aGlzLnVwSWNvbixcbiAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICBjb2x1bW5Tb3J0Py5kaXJlY3Rpb24gPT09ICdBU0MnID8gJzEnIDogJzAuNSdcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5kb3duSWNvbixcbiAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICBjb2x1bW5Tb3J0Py5kaXJlY3Rpb24gPT09ICdERVNDJyA/ICcxJyA6ICcwLjUnXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5zb3J0T3JkZXJFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHNvcnRJbmRleCA9IHRoaXMuYWN0aXZlU29ydHMoKS5maW5kSW5kZXgoc29ydCA9PiBzb3J0LmNvbHVtbiA9PT0gdGhpcy5jb2x1bW4oKSk7XG4gICAgICAgIGlmIChzb3J0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0UHJvcGVydHkodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAndGV4dENvbnRlbnQnLCAoc29ydEluZGV4ICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlcj8uc2V0UHJvcGVydHkodGhpcy5zb3J0T3JkZXJFbGVtZW50LCAndGV4dENvbnRlbnQnLCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxufSJdfQ==
|