@bcgov/nr-ngx-component-lib 0.0.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/components/button/button.component.d.ts +22 -0
- package/components/cell-content/cell-content.component.d.ts +12 -0
- package/components/device-view/device-view.component.d.ts +12 -0
- package/components/expansion-panel/expansion-panel.component.d.ts +26 -0
- package/components/filter-container/filter-container.component.d.ts +7 -0
- package/components/filter-date/filter-date.component.d.ts +12 -0
- package/components/filter-search/filter-search.component.d.ts +18 -0
- package/components/filter-select/filter-select.component.d.ts +63 -0
- package/components/filters-panel/filters-panel.component.d.ts +13 -0
- package/components/form-field/form-field.component.d.ts +13 -0
- package/components/form-layout/form-layout.component.d.ts +5 -0
- package/components/gap/gap.component.d.ts +9 -0
- package/components/page-container/page-container.component.d.ts +5 -0
- package/components/page-header/page-header.component.d.ts +6 -0
- package/components/row-list-desktop/row-list-desktop.component.d.ts +5 -0
- package/components/row-list-mobile/row-list-mobile.component.d.ts +5 -0
- package/components/row-list-pagination/row-list-pagination.component.d.ts +31 -0
- package/components/row-list-sorting/row-list-sorting.component.d.ts +18 -0
- package/components/snackbar/snackbar.component.d.ts +15 -0
- package/directives/configuration-subscriber.base.d.ts +14 -0
- package/directives/row-list.base.d.ts +55 -0
- package/esm2022/bcgov-nr-ngx-component-lib.mjs +5 -0
- package/esm2022/components/button/button.component.mjs +69 -0
- package/esm2022/components/cell-content/cell-content.component.mjs +34 -0
- package/esm2022/components/device-view/device-view.component.mjs +34 -0
- package/esm2022/components/expansion-panel/expansion-panel.component.mjs +144 -0
- package/esm2022/components/filter-container/filter-container.component.mjs +20 -0
- package/esm2022/components/filter-date/filter-date.component.mjs +43 -0
- package/esm2022/components/filter-search/filter-search.component.mjs +52 -0
- package/esm2022/components/filter-select/filter-select.component.mjs +269 -0
- package/esm2022/components/filters-panel/filters-panel.component.mjs +39 -0
- package/esm2022/components/form-field/form-field.component.mjs +103 -0
- package/esm2022/components/form-layout/form-layout.component.mjs +11 -0
- package/esm2022/components/gap/gap.component.mjs +21 -0
- package/esm2022/components/page-container/page-container.component.mjs +11 -0
- package/esm2022/components/page-header/page-header.component.mjs +19 -0
- package/esm2022/components/row-list-desktop/row-list-desktop.component.mjs +11 -0
- package/esm2022/components/row-list-mobile/row-list-mobile.component.mjs +11 -0
- package/esm2022/components/row-list-pagination/row-list-pagination.component.mjs +106 -0
- package/esm2022/components/row-list-sorting/row-list-sorting.component.mjs +44 -0
- package/esm2022/components/snackbar/snackbar.component.mjs +26 -0
- package/esm2022/directives/configuration-subscriber.base.mjs +28 -0
- package/esm2022/directives/row-list.base.mjs +150 -0
- package/esm2022/nr-ngx-component-lib.module.mjs +227 -0
- package/esm2022/public-api.mjs +33 -0
- package/esm2022/services/configuration.service.mjs +38 -0
- package/esm2022/services/page-state.service.mjs +28 -0
- package/esm2022/services/snackbar-util.service.mjs +69 -0
- package/esm2022/utils/code-table.util.mjs +23 -0
- package/esm2022/utils/date.util.mjs +15 -0
- package/esm2022/utils/filter.util.mjs +25 -0
- package/esm2022/utils/row-list.util.mjs +44 -0
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs +1617 -0
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/nr-ngx-component-lib.module.d.ts +46 -0
- package/package.json +22 -0
- package/public-api.d.ts +29 -0
- package/services/configuration.service.d.ts +16 -0
- package/services/page-state.service.d.ts +9 -0
- package/services/snackbar-util.service.d.ts +16 -0
- package/styles/bc-sans/FONTLOG_README.txt +30 -0
- package/styles/bc-sans/LICENSE_OFL.txt +94 -0
- package/styles/bc-sans/css/BCSans.css +28 -0
- package/styles/bc-sans/fonts/BCSans-Bold.woff +0 -0
- package/styles/bc-sans/fonts/BCSans-Bold.woff2 +0 -0
- package/styles/bc-sans/fonts/BCSans-BoldItalic.woff +0 -0
- package/styles/bc-sans/fonts/BCSans-BoldItalic.woff2 +0 -0
- package/styles/bc-sans/fonts/BCSans-Italic.woff +0 -0
- package/styles/bc-sans/fonts/BCSans-Italic.woff2 +0 -0
- package/styles/bc-sans/fonts/BCSans-Regular.woff +0 -0
- package/styles/bc-sans/fonts/BCSans-Regular.woff2 +0 -0
- package/styles/global.scss +34 -0
- package/styles/include/mat-button.scss +71 -0
- package/styles/include/mat-checkbox.scss +44 -0
- package/styles/include/mat-icon.scss +30 -0
- package/styles/include/mat-radio-button.scss +19 -0
- package/styles/material.scss +40 -0
- package/utils/code-table.util.d.ts +12 -0
- package/utils/date.util.d.ts +14 -0
- package/utils/filter.util.d.ts +4 -0
- package/utils/row-list.util.d.ts +16 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/progress-spinner";
|
|
4
|
+
export class PageHeaderComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.isLoading = false;
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PageHeaderComponent, selector: "nrcl-page-header", inputs: { isLoading: "isLoading" }, host: { properties: { "class.isLoading": "isLoading" } }, ngImport: i0, template: "<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n", styles: [":host{display:flex;gap:var(--nrcl-gutter-space);position:relative;padding-top:var(--nrcl-gutter-space);font-family:var(--nrcl-font-family)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host .left-side{display:flex;flex-direction:column}:host .left-side ::ng-deep h1{font-size:var(--nrcl-font-size-h1);font-weight:200;padding:0;margin:0}:host .left-side ::ng-deep h2{font-size:var(--nrcl-font-size-h2);font-weight:200;padding:0;margin:0}:host .right-side{flex-grow:1;display:flex;justify-content:flex-end;align-items:center}:host .loading{position:absolute;top:var(--nrcl-gutter-space);right:0;display:none}:host.isLoading .loading{display:block}:host.isLoading .right-side{visibility:hidden}\n"], dependencies: [{ kind: "component", type: i1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageHeaderComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: "nrcl-page-header", changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
14
|
+
'[class.isLoading]': 'isLoading',
|
|
15
|
+
}, template: "<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n", styles: [":host{display:flex;gap:var(--nrcl-gutter-space);position:relative;padding-top:var(--nrcl-gutter-space);font-family:var(--nrcl-font-family)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host .left-side{display:flex;flex-direction:column}:host .left-side ::ng-deep h1{font-size:var(--nrcl-font-size-h1);font-weight:200;padding:0;margin:0}:host .left-side ::ng-deep h2{font-size:var(--nrcl-font-size-h2);font-weight:200;padding:0;margin:0}:host .right-side{flex-grow:1;display:flex;justify-content:flex-end;align-items:center}:host .loading{position:absolute;top:var(--nrcl-gutter-space);right:0;display:none}:host.isLoading .loading{display:block}:host.isLoading .right-side{visibility:hidden}\n"] }]
|
|
16
|
+
}], propDecorators: { isLoading: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDOzs7QUFXdkIsTUFBTSxPQUFPLG1CQUFtQjtJQVRoQztRQVVhLGNBQVMsR0FBRyxLQUFLLENBQUE7S0FDN0I7K0dBRlksbUJBQW1CO21HQUFuQixtQkFBbUIsc0pDZmhDLGdTQVVBOzs0RkRLYSxtQkFBbUI7a0JBVC9CLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsbUJBQW1CLEVBQUUsV0FBVztxQkFDbkM7OEJBR1EsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtcGFnZS1oZWFkZXJcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmw6IFwiLi9wYWdlLWhlYWRlci5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5pc0xvYWRpbmddJzogJ2lzTG9hZGluZycsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZVxufVxuIiwiPGRpdiBjbGFzcz1cImxlZnQtc2lkZVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LXNpZGVdLGgxLGgyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJyaWdodC1zaWRlXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0LXNpZGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48bWF0LXNwaW5uZXIgY2xhc3M9XCJsb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class RowListDesktopComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListDesktopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RowListDesktopComponent, selector: "nrcl-row-list-desktop", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #c6c8cb}:host ::ng-deep .mat-mdc-table{width:100%}:host ::ng-deep .mat-mdc-table .mat-mdc-row{background-color:#fff;cursor:pointer}:host ::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell{padding:5px;color:#000;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}:host ::ng-deep .mat-mdc-table .mat-mdc-row:hover{background-color:#d7d7d7}:host ::ng-deep .mat-mdc-table .mat-mdc-row:nth-child(odd):not(:hover){background-color:#f2f2f2}:host ::ng-deep .mat-mdc-table .mat-mdc-row:nth-child(2n):not(:hover){background-color:#fff}:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell{padding:5px;color:#000}:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-content{text-align:left;align-items:flex-end;font-size:15px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListDesktopComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{ selector: "nrcl-row-list-desktop", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:block;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid #c6c8cb}:host ::ng-deep .mat-mdc-table{width:100%}:host ::ng-deep .mat-mdc-table .mat-mdc-row{background-color:#fff;cursor:pointer}:host ::ng-deep .mat-mdc-table .mat-mdc-row .mat-mdc-cell{padding:5px;color:#000;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}:host ::ng-deep .mat-mdc-table .mat-mdc-row:hover{background-color:#d7d7d7}:host ::ng-deep .mat-mdc-table .mat-mdc-row:nth-child(odd):not(:hover){background-color:#f2f2f2}:host ::ng-deep .mat-mdc-table .mat-mdc-row:nth-child(2n):not(:hover){background-color:#fff}:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell{padding:5px;color:#000}:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell .mat-sort-header-content{text-align:left;align-items:flex-end;font-size:15px}\n"] }]
|
|
10
|
+
}] });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QtZGVza3RvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9yb3ctbGlzdC1kZXNrdG9wL3Jvdy1saXN0LWRlc2t0b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcm93LWxpc3QtZGVza3RvcC9yb3ctbGlzdC1kZXNrdG9wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDOztBQVF2QixNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7bUdBQXZCLHVCQUF1Qiw2RENYcEMsNkJBQ0E7OzRGRFVhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJucmNsLXJvdy1saXN0LWRlc2t0b3BcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3Jvdy1saXN0LWRlc2t0b3AuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybDogXCIuL3Jvdy1saXN0LWRlc2t0b3AuY29tcG9uZW50LnNjc3NcIixcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSb3dMaXN0RGVza3RvcENvbXBvbmVudCB7XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class RowListMobileComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RowListMobileComponent, selector: "nrcl-row-list-mobile", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{width:100%;display:flex;flex-direction:column;gap:var(--nrcl-gutter-space)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep mat-card.mat-mdc-card{margin:0;box-shadow:none;border:2px solid #bebebe;padding:0;font-family:var(--nrcl-font-family)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title{padding:var(--nrcl-gutter-space);border-bottom:#f2f2f2 1px solid;background-color:#f2f2f2;gap:var(--nrcl-gutter-space);display:flex;justify-content:space-between;align-items:stretch;margin:0}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title]{flex-direction:column;align-items:flex-start;text-overflow:ellipsis;overflow:hidden;display:flex;flex:1}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h2,:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0;line-height:normal}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h2{font-size:18px;font-weight:400}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h3{font-size:14px;font-weight:400}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[actions]{display:flex;gap:var(--nrcl-gutter-space)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[actions] button[icon]{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;padding:0;justify-content:center;line-height:20px}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:var(--nrcl-gutter-space);margin:0;gap:var(--nrcl-gutter-space)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content section{display:flex;flex-direction:column}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content section cell-content{font-weight:700}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListMobileComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{ selector: "nrcl-row-list-mobile", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{width:100%;display:flex;flex-direction:column;gap:var(--nrcl-gutter-space)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep mat-card.mat-mdc-card{margin:0;box-shadow:none;border:2px solid #bebebe;padding:0;font-family:var(--nrcl-font-family)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title{padding:var(--nrcl-gutter-space);border-bottom:#f2f2f2 1px solid;background-color:#f2f2f2;gap:var(--nrcl-gutter-space);display:flex;justify-content:space-between;align-items:stretch;margin:0}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title]{flex-direction:column;align-items:flex-start;text-overflow:ellipsis;overflow:hidden;display:flex;flex:1}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h2,:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h3{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0;line-height:normal}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h2{font-size:18px;font-weight:400}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[title] h3{font-size:14px;font-weight:400}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[actions]{display:flex;gap:var(--nrcl-gutter-space)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-title section[actions] button[icon]{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;padding:0;justify-content:center;line-height:20px}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:var(--nrcl-gutter-space);margin:0;gap:var(--nrcl-gutter-space)}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content section{display:flex;flex-direction:column}:host ::ng-deep mat-card.mat-mdc-card .mat-mdc-card-content section cell-content{font-weight:700}\n"] }]
|
|
10
|
+
}] });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QtbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9jb21wb25lbnRzL3Jvdy1saXN0LW1vYmlsZS9yb3ctbGlzdC1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcm93LWxpc3QtbW9iaWxlL3Jvdy1saXN0LW1vYmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQzs7QUFRdkIsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO21HQUF0QixzQkFBc0IsNERDWG5DLDZCQUNBOzs0RkRVYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJucmNsLXJvdy1saXN0LW1vYmlsZVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcm93LWxpc3QtbW9iaWxlLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmw6IFwiLi9yb3ctbGlzdC1tb2JpbGUuY29tcG9uZW50LnNjc3NcIixcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSb3dMaXN0TW9iaWxlQ29tcG9uZW50IHtcbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-pagination";
|
|
4
|
+
import * as i2 from "../filter-container/filter-container.component";
|
|
5
|
+
import * as i3 from "../filter-select/filter-select.component";
|
|
6
|
+
export class RowListPaginationComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.paginationId = '1';
|
|
9
|
+
this.pageSizeOptions = [
|
|
10
|
+
{ code: 5, description: '5 Rows' },
|
|
11
|
+
{ code: 10, description: '10 Rows' },
|
|
12
|
+
{ code: 20, description: '20 Rows' },
|
|
13
|
+
{ code: 50, description: '50 Rows' },
|
|
14
|
+
{ code: 100, description: '100 Rows' },
|
|
15
|
+
];
|
|
16
|
+
this.pageSize = 20;
|
|
17
|
+
this.showPageSize = true;
|
|
18
|
+
this.pageSizeChange = new EventEmitter();
|
|
19
|
+
this.pageNumberChange = new EventEmitter();
|
|
20
|
+
this.componentWidth = 'sufficient';
|
|
21
|
+
this.paginationMaxSize = 5;
|
|
22
|
+
this.elementRef = inject(ElementRef);
|
|
23
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
24
|
+
}
|
|
25
|
+
ngAfterViewInit() {
|
|
26
|
+
this.checkWidth();
|
|
27
|
+
}
|
|
28
|
+
onPageSizeChange(ev) {
|
|
29
|
+
this.pageSizeChange.emit(Number(ev));
|
|
30
|
+
}
|
|
31
|
+
onPageNumberChange(ev) {
|
|
32
|
+
this.pageNumberChange.emit(Number(ev));
|
|
33
|
+
}
|
|
34
|
+
onResize(event) {
|
|
35
|
+
this.checkWidth();
|
|
36
|
+
}
|
|
37
|
+
checkWidth() {
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
let w = this.elementRef?.nativeElement.offsetWidth;
|
|
40
|
+
if (!w)
|
|
41
|
+
return;
|
|
42
|
+
switch (true) {
|
|
43
|
+
case w > 600:
|
|
44
|
+
this.componentWidth = 'sufficient';
|
|
45
|
+
this.paginationMaxSize = 5;
|
|
46
|
+
break;
|
|
47
|
+
case w > 500:
|
|
48
|
+
this.componentWidth = 'tight';
|
|
49
|
+
this.paginationMaxSize = 3;
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
this.componentWidth = 'restrictive';
|
|
53
|
+
this.paginationMaxSize = 4;
|
|
54
|
+
}
|
|
55
|
+
this.changeDetectorRef.detectChanges();
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
get pageCount() {
|
|
59
|
+
if (!this.hasRows)
|
|
60
|
+
return 0;
|
|
61
|
+
return Math.ceil(this.rowCount / this.pageSize);
|
|
62
|
+
}
|
|
63
|
+
get firstRow() {
|
|
64
|
+
if (!this.hasRows)
|
|
65
|
+
return 0;
|
|
66
|
+
return (Math.min(this.pageCount, this.pageNumber) - 1) * this.pageSize + 1;
|
|
67
|
+
}
|
|
68
|
+
get lastRow() {
|
|
69
|
+
if (!this.hasRows)
|
|
70
|
+
return 0;
|
|
71
|
+
return Math.min(this.firstRow + this.pageSize - 1, this.rowCount);
|
|
72
|
+
}
|
|
73
|
+
get hasRows() {
|
|
74
|
+
return this.rowCount && this.pageSize;
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowListPaginationComponent, selector: "nrcl-row-list-pagination", inputs: { paginationId: "paginationId", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", pageNumber: "pageNumber", rowCount: "rowCount", showPageSize: "showPageSize" }, outputs: { pageSizeChange: "pageSizeChange", pageNumberChange: "pageNumberChange" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class.width-sufficient": "componentWidth == 'sufficient'", "class.width-tight": "componentWidth == 'tight'", "class.width-restrictive": "componentWidth == 'restrictive'" } }, ngImport: i0, template: "@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">No records to display.</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n ></nrcl-filter-select>\n}\n", styles: [":host{display:block;font-family:var(--nrcl-font-family);position:relative;min-height:40px}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host .summary{--nrcl-filter-container-width: min-content;position:absolute;top:0;left:0;bottom:0;white-space:nowrap}:host .pagination{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}:host .pagination ::ng-deep .ngx-pagination{text-align:center;padding-inline-start:0;margin:0}:host .pagination ::ng-deep .ngx-pagination li{border-left:#c6c8cb solid 1px;border-top:#c6c8cb solid 1px;border-bottom:#c6c8cb solid 1px;border-right:none;vertical-align:middle;margin:0;height:35px;padding:0}:host .pagination ::ng-deep .ngx-pagination li a{padding:0;line-height:35px;text-decoration:none}:host .pagination ::ng-deep .ngx-pagination li>*>span{padding:0 15px;line-height:35px}:host .pagination ::ng-deep .ngx-pagination li.current{color:#036;font-weight:700;background:#fff;border:2px solid #003366;border-radius:2px}:host .pagination ::ng-deep .ngx-pagination li.disabled span{display:none}:host .pagination ::ng-deep .ngx-pagination li:first-child{border-left:none;border-top:none;border-bottom:none}:host .pagination ::ng-deep .ngx-pagination li:last-child{border-top:none;border-bottom:none}:host .pagination ::ng-deep .ngx-pagination a:hover,:host .pagination ::ng-deep .ngx-pagination button:hover{color:#131313;background-color:#ffd3a0}:host .pagination ::ng-deep .ngx-pagination .pagination-next a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:after,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{font-family:Material Symbols Outlined;vertical-align:middle;display:inline;font-size:25px;margin:0;line-height:40px;padding:0 10px}:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{content:\"arrow_back\"}:host .pagination ::ng-deep .ngx-pagination .pagination-next a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after{content:\"arrow_forward\"}:host .page-size{--nrcl-filter-select-width: 140px;position:absolute;top:0;right:0;bottom:0;display:flex;gap:8px;align-items:center;pointer-events:auto}:host.width-restrictive{display:grid;grid-template-columns:1fr 1fr;gap:var(--nrcl-gutter-space)}:host.width-restrictive .summary{--nrcl-filter-container-width: auto;position:static;grid-column:1;grid-row:1}:host.width-restrictive .page-size{--nrcl-filter-select-width: auto;position:static;grid-column:2;grid-row:1}:host.width-restrictive .pagination{position:static;grid-column:1/span 2;grid-row:2}\n"], dependencies: [{ kind: "component", type: i1.PaginationControlsComponent, selector: "pagination-controls", inputs: ["id", "maxSize", "directionLinks", "autoHide", "responsive", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], outputs: ["pageChange", "pageBoundsCorrection"] }, { kind: "component", type: i2.FilterContainerComponent, selector: "nrcl-filter-container", inputs: ["label", "hint"] }, { kind: "component", type: i3.FilterSelectComponent, selector: "nrcl-filter-select", inputs: ["label", "placeholder", "hint", "options", "value", "selectMax", "tooltips", "summary", "clear"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListPaginationComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{ selector: "nrcl-row-list-pagination", changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
82
|
+
'[class.width-sufficient]': "componentWidth == 'sufficient'",
|
|
83
|
+
'[class.width-tight]': "componentWidth == 'tight'",
|
|
84
|
+
'[class.width-restrictive]': "componentWidth == 'restrictive'",
|
|
85
|
+
}, template: "@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">No records to display.</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n ></nrcl-filter-select>\n}\n", styles: [":host{display:block;font-family:var(--nrcl-font-family);position:relative;min-height:40px}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host .summary{--nrcl-filter-container-width: min-content;position:absolute;top:0;left:0;bottom:0;white-space:nowrap}:host .pagination{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}:host .pagination ::ng-deep .ngx-pagination{text-align:center;padding-inline-start:0;margin:0}:host .pagination ::ng-deep .ngx-pagination li{border-left:#c6c8cb solid 1px;border-top:#c6c8cb solid 1px;border-bottom:#c6c8cb solid 1px;border-right:none;vertical-align:middle;margin:0;height:35px;padding:0}:host .pagination ::ng-deep .ngx-pagination li a{padding:0;line-height:35px;text-decoration:none}:host .pagination ::ng-deep .ngx-pagination li>*>span{padding:0 15px;line-height:35px}:host .pagination ::ng-deep .ngx-pagination li.current{color:#036;font-weight:700;background:#fff;border:2px solid #003366;border-radius:2px}:host .pagination ::ng-deep .ngx-pagination li.disabled span{display:none}:host .pagination ::ng-deep .ngx-pagination li:first-child{border-left:none;border-top:none;border-bottom:none}:host .pagination ::ng-deep .ngx-pagination li:last-child{border-top:none;border-bottom:none}:host .pagination ::ng-deep .ngx-pagination a:hover,:host .pagination ::ng-deep .ngx-pagination button:hover{color:#131313;background-color:#ffd3a0}:host .pagination ::ng-deep .ngx-pagination .pagination-next a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:after,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{font-family:Material Symbols Outlined;vertical-align:middle;display:inline;font-size:25px;margin:0;line-height:40px;padding:0 10px}:host .pagination ::ng-deep .ngx-pagination .pagination-previous a:before,:host .pagination ::ng-deep .ngx-pagination .pagination-previous.disabled:before{content:\"arrow_back\"}:host .pagination ::ng-deep .ngx-pagination .pagination-next a:after,:host .pagination ::ng-deep .ngx-pagination .pagination-next.disabled:after{content:\"arrow_forward\"}:host .page-size{--nrcl-filter-select-width: 140px;position:absolute;top:0;right:0;bottom:0;display:flex;gap:8px;align-items:center;pointer-events:auto}:host.width-restrictive{display:grid;grid-template-columns:1fr 1fr;gap:var(--nrcl-gutter-space)}:host.width-restrictive .summary{--nrcl-filter-container-width: auto;position:static;grid-column:1;grid-row:1}:host.width-restrictive .page-size{--nrcl-filter-select-width: auto;position:static;grid-column:2;grid-row:1}:host.width-restrictive .pagination{position:static;grid-column:1/span 2;grid-row:2}\n"] }]
|
|
86
|
+
}], propDecorators: { paginationId: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], pageSizeOptions: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], pageSize: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], pageNumber: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], rowCount: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], showPageSize: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], pageSizeChange: [{
|
|
99
|
+
type: Output
|
|
100
|
+
}], pageNumberChange: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], onResize: [{
|
|
103
|
+
type: HostListener,
|
|
104
|
+
args: ["window:resize", ["$event"]]
|
|
105
|
+
}] } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9yb3ctbGlzdC1wYWdpbmF0aW9uL3Jvdy1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcm93LWxpc3QtcGFnaW5hdGlvbi9yb3ctbGlzdC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFldkIsTUFBTSxPQUFPLDBCQUEwQjtJQVh2QztRQVlhLGlCQUFZLEdBQUcsR0FBRyxDQUFBO1FBQ2xCLG9CQUFlLEdBQUc7WUFDdkIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFJLFdBQVcsRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLFdBQVcsRUFBRSxTQUFTLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLFdBQVcsRUFBRSxTQUFTLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFHLFdBQVcsRUFBRSxTQUFTLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7U0FDekMsQ0FBQTtRQUNRLGFBQVEsR0FBRyxFQUFFLENBQUE7UUFHYixpQkFBWSxHQUFHLElBQUksQ0FBQTtRQUVsQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMs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cUIsRUFBRSwyQkFBMkI7d0JBQ2xELDJCQUEyQixFQUFFLGlDQUFpQztxQkFDakU7OEJBR1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBcUJQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFJvd0xpc3RQYWdpbmF0aW9uV2lkdGggPSAnc3VmZmljaWVudCd8J3RpZ2h0J3wncmVzdHJpY3RpdmUnXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtcm93LWxpc3QtcGFnaW5hdGlvblwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcm93LWxpc3QtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsOiBcIi4vcm93LWxpc3QtcGFnaW5hdGlvbi5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy53aWR0aC1zdWZmaWNpZW50XSc6IFwiY29tcG9uZW50V2lkdGggPT0gJ3N1ZmZpY2llbnQnXCIsXG4gICAgICAgICdbY2xhc3Mud2lkdGgtdGlnaHRdJzogXCJjb21wb25lbnRXaWR0aCA9PSAndGlnaHQnXCIsXG4gICAgICAgICdbY2xhc3Mud2lkdGgtcmVzdHJpY3RpdmVdJzogXCJjb21wb25lbnRXaWR0aCA9PSAncmVzdHJpY3RpdmUnXCIsXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSb3dMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIHBhZ2luYXRpb25JZCA9ICcxJ1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplT3B0aW9ucyA9IFsgXG4gICAgICAgIHsgY29kZTogNSwgICBkZXNjcmlwdGlvbjogJzUgUm93cycgfSxcbiAgICAgICAgeyBjb2RlOiAxMCwgIGRlc2NyaXB0aW9uOiAnMTAgUm93cycgfSxcbiAgICAgICAgeyBjb2RlOiAyMCwgIGRlc2NyaXB0aW9uOiAnMjAgUm93cycgfSxcbiAgICAgICAgeyBjb2RlOiA1MCwgIGRlc2NyaXB0aW9uOiAnNTAgUm93cycgfSxcbiAgICAgICAgeyBjb2RlOiAxMDAsIGRlc2NyaXB0aW9uOiAnMTAwIFJvd3MnIH0sXG4gICAgXVxuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMjBcbiAgICBASW5wdXQoKSBwYWdlTnVtYmVyXG4gICAgQElucHV0KCkgcm93Q291bnRcbiAgICBASW5wdXQoKSBzaG93UGFnZVNpemUgPSB0cnVlIFxuXG4gICAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHBhZ2VOdW1iZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGNvbXBvbmVudFdpZHRoOiBSb3dMaXN0UGFnaW5hdGlvbldpZHRoID0gJ3N1ZmZpY2llbnQnXG4gICAgcGFnaW5hdGlvbk1heFNpemUgPSA1XG5cbiAgICBlbGVtZW50UmVmID0gaW5qZWN0KCBFbGVtZW50UmVmIClcbiAgICBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdCggQ2hhbmdlRGV0ZWN0b3JSZWYgKVxuICAgIFxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja1dpZHRoKClcbiAgICB9XG4gICAgXG4gICAgb25QYWdlU2l6ZUNoYW5nZSggZXYgKSB7ICAgICAgICBcbiAgICAgICAgdGhpcy5wYWdlU2l6ZUNoYW5nZS5lbWl0KCBOdW1iZXIoIGV2ICkgKVxuICAgIH1cblxuICAgIG9uUGFnZU51bWJlckNoYW5nZSggZXYgKSB7XG4gICAgICAgIHRoaXMucGFnZU51bWJlckNoYW5nZS5lbWl0KCBOdW1iZXIoIGV2ICkgKVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFtcIiRldmVudFwiXSlcbiAgICBvblJlc2l6ZShldmVudCkge1xuICAgICAgICB0aGlzLmNoZWNrV2lkdGgoKVxuICAgIH1cblxuICAgIGNoZWNrV2lkdGgoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoICgpID0+IHtcbiAgICAgICAgICAgIGxldCB3ID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoICF3ICkgcmV0dXJuXG5cbiAgICAgICAgICAgIHN3aXRjaCAoIHRydWUgKSB7XG4gICAgICAgICAgICAgICAgY2FzZSB3ID4gNjAwOiBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRXaWR0aCA9ICdzdWZmaWNpZW50J1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25NYXhTaXplID0gNVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgY2FzZSB3ID4gNTAwOiBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRXaWR0aCA9ICd0aWdodCc7IFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25NYXhTaXplID0gM1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50V2lkdGggPSAncmVzdHJpY3RpdmUnXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbk1heFNpemUgPSA0XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH0gKVxuICAgIH1cblxuICAgIGdldCBwYWdlQ291bnQoKSB7XG4gICAgICAgIGlmICggIXRoaXMuaGFzUm93cyApIHJldHVybiAwXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoIHRoaXMucm93Q291bnQgLyB0aGlzLnBhZ2VTaXplIClcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RSb3coKSB7XG4gICAgICAgIGlmICggIXRoaXMuaGFzUm93cyApIHJldHVybiAwXG4gICAgICAgIHJldHVybiAoIE1hdGgubWluKCB0aGlzLnBhZ2VDb3VudCwgdGhpcy5wYWdlTnVtYmVyICkgLSAxICkgKiB0aGlzLnBhZ2VTaXplICsgMVxuICAgIH1cblxuICAgIGdldCBsYXN0Um93KCkge1xuICAgICAgICBpZiAoICF0aGlzLmhhc1Jvd3MgKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gTWF0aC5taW4oIHRoaXMuZmlyc3RSb3cgKyB0aGlzLnBhZ2VTaXplIC0gMSwgdGhpcy5yb3dDb3VudCApXG4gICAgfVxuXG4gICAgZ2V0IGhhc1Jvd3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0NvdW50ICYmIHRoaXMucGFnZVNpemVcbiAgICB9XG59XG4iLCJAaWYgKCBoYXNSb3dzICkge1xuICAgIDxucmNsLWZpbHRlci1jb250YWluZXIgY2xhc3M9XCJzdW1tYXJ5XCJcbiAgICAgICAgbGFiZWw9XCJTaG93aW5nIFJvd3NcIlxuICAgID5cbiAgICAgICAgPHNwYW4+e3sgZmlyc3RSb3cgfX0gdG8ge3sgbGFzdFJvdyB9fSA8c21hbGw+KG9mIHt7IHJvd0NvdW50IH19KTwvc21hbGw+PC9zcGFuPlxuICAgIDwvbnJjbC1maWx0ZXItY29udGFpbmVyPlxufVxuQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJuby1yb3dzXCI+Tm8gcmVjb3JkcyB0byBkaXNwbGF5LjwvZGl2PlxufVxuXG5AaWYgKCBoYXNSb3dzICkge1xuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgIDxwYWdpbmF0aW9uLWNvbnRyb2xzIFxuICAgICAgICAgICAgW2lkXT1cInBhZ2luYXRpb25JZFwiIFxuICAgICAgICAgICAgW21heFNpemVdPVwicGFnaW5hdGlvbk1heFNpemVcIlxuICAgICAgICAgICAgW3Jlc3BvbnNpdmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2RpcmVjdGlvbkxpbmtzXT1cInRydWVcIlxuICAgICAgICAgICAgcHJldmlvdXNMYWJlbD1cIlwiXG4gICAgICAgICAgICBuZXh0TGFiZWw9XCJcIlxuICAgICAgICAgICAgW2F1dG9IaWRlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZU51bWJlckNoYW5nZSggJGV2ZW50IClcIlxuICAgICAgICA+PC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxuICAgIDwvZGl2PlxufVxuXG5AaWYgKCBoYXNSb3dzICYmIHNob3dQYWdlU2l6ZSApIHtcbiAgICA8bnJjbC1maWx0ZXItc2VsZWN0IGNsYXNzPVwicGFnZS1zaXplXCJcbiAgICAgICAgbGFiZWw9XCJQYWdlIFNpemVcIlxuICAgICAgICBbdmFsdWVdPVwiWyBwYWdlU2l6ZSBdXCJcbiAgICAgICAgW29wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoICRldmVudFsgMCBdIClcIlxuICAgICAgICBzZWxlY3RNYXg9XCIxXCJcbiAgICAgICAgW2NsZWFyXT1cImZhbHNlXCJcbiAgICA+PC9ucmNsLWZpbHRlci1zZWxlY3Q+XG59XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { unwrapFilterValue, wrapFilterValue } from "../../utils/filter.util";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "@angular/material/radio";
|
|
6
|
+
import * as i3 from "../filter-container/filter-container.component";
|
|
7
|
+
import * as i4 from "../filter-select/filter-select.component";
|
|
8
|
+
export class RowListSortingComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.sortColumnOptions = [];
|
|
11
|
+
this.sortDirection = 'asc';
|
|
12
|
+
this.sortChange = new EventEmitter();
|
|
13
|
+
this.wrapFilterValue = wrapFilterValue;
|
|
14
|
+
this.unwrapFilterValue = unwrapFilterValue;
|
|
15
|
+
}
|
|
16
|
+
onSortColumnChange(ev) {
|
|
17
|
+
this.sortColumn = ev;
|
|
18
|
+
this.emitSortChange();
|
|
19
|
+
}
|
|
20
|
+
onSortDirectionChange() {
|
|
21
|
+
this.emitSortChange();
|
|
22
|
+
}
|
|
23
|
+
emitSortChange() {
|
|
24
|
+
this.sortChange.emit({
|
|
25
|
+
active: this.sortColumn,
|
|
26
|
+
direction: this.sortDirection
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListSortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RowListSortingComponent, selector: "nrcl-row-list-sorting", inputs: { sortColumn: "sortColumn", sortColumnOptions: "sortColumnOptions", sortDirection: "sortDirection" }, outputs: { sortChange: "sortChange" }, ngImport: i0, template: "<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A → Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z → A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n", styles: [":host{gap:8px;width:100%;display:grid;grid-template-columns:1fr 1fr}:host .sort-order{--nrcl-filter-select-width: auto;grid-column:1}:host .sort-direction{--nrcl-filter-container-width: auto;grid-column:2}:host .sort-direction ::ng-deep .content .mat-mdc-radio-group{justify-content:space-evenly;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3.FilterContainerComponent, selector: "nrcl-filter-container", inputs: ["label", "hint"] }, { kind: "component", type: i4.FilterSelectComponent, selector: "nrcl-filter-select", inputs: ["label", "placeholder", "hint", "options", "value", "selectMax", "tooltips", "summary", "clear"], outputs: ["valueChange"] }] }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListSortingComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: "nrcl-row-list-sorting", template: "<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A → Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z → A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n", styles: [":host{gap:8px;width:100%;display:grid;grid-template-columns:1fr 1fr}:host .sort-order{--nrcl-filter-select-width: auto;grid-column:1}:host .sort-direction{--nrcl-filter-container-width: auto;grid-column:2}:host .sort-direction ::ng-deep .content .mat-mdc-radio-group{justify-content:space-evenly;width:100%}\n"] }]
|
|
35
|
+
}], propDecorators: { sortColumn: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], sortColumnOptions: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], sortDirection: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], sortChange: [{
|
|
42
|
+
type: Output
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3Qtc29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvY29tcG9uZW50cy9yb3ctbGlzdC1zb3J0aW5nL3Jvdy1saXN0LXNvcnRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvcm93LWxpc3Qtc29ydGluZy9yb3ctbGlzdC1zb3J0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFPN0UsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU9hLHNCQUFpQixHQUFzQixFQUFFLENBQUE7UUFDekMsa0JBQWEsR0FBa0IsS0FBSyxDQUFBO1FBRW5DLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWhELG9CQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ2pDLHNCQUFpQixHQUFHLGlCQUFpQixDQUFBO0tBaUJ4QztJQWZHLGtCQUFrQixDQUFFLEVBQUU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUU7WUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNoQyxDQUFFLENBQUE7SUFDUCxDQUFDOytHQXhCUSx1QkFBdUI7bUdBQXZCLHVCQUF1QixrTkNmcEMsNHZCQW9CQTs7NEZETGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNJLHVCQUF1Qjs4QkFLeEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29kZURlc2NyaXB0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvZGUtdGFibGUudXRpbFwiO1xuaW1wb3J0IHsgU29ydCwgU29ydERpcmVjdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyB1bndyYXBGaWx0ZXJWYWx1ZSwgd3JhcEZpbHRlclZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2ZpbHRlci51dGlsXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5yY2wtcm93LWxpc3Qtc29ydGluZ1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcm93LWxpc3Qtc29ydGluZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsOiBcIi4vcm93LWxpc3Qtc29ydGluZy5jb21wb25lbnQuc2Nzc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dMaXN0U29ydGluZ0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgc29ydENvbHVtbjogc3RyaW5nXG4gICAgQElucHV0KCkgc29ydENvbHVtbk9wdGlvbnM6IENvZGVEZXNjcmlwdGlvbltdID0gW11cbiAgICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2FzYydcblxuICAgIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0PigpO1xuXG4gICAgd3JhcEZpbHRlclZhbHVlID0gd3JhcEZpbHRlclZhbHVlIFxuICAgIHVud3JhcEZpbHRlclZhbHVlID0gdW53cmFwRmlsdGVyVmFsdWVcbiAgICBcbiAgICBvblNvcnRDb2x1bW5DaGFuZ2UoIGV2ICkge1xuICAgICAgICB0aGlzLnNvcnRDb2x1bW4gPSBldlxuICAgICAgICB0aGlzLmVtaXRTb3J0Q2hhbmdlKClcbiAgICB9XG5cbiAgICBvblNvcnREaXJlY3Rpb25DaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZW1pdFNvcnRDaGFuZ2UoKVxuICAgIH1cblxuICAgIGVtaXRTb3J0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCggeyBcbiAgICAgICAgICAgIGFjdGl2ZTogdGhpcy5zb3J0Q29sdW1uLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb25cbiAgICAgICAgfSApXG4gICAgfVxufVxuIiwiPG5yY2wtZmlsdGVyLXNlbGVjdCBjbGFzcz1cInNvcnQtb3JkZXJcIiBcbiAgICBsYWJlbD1cIlNvcnQgQnlcIlxuICAgIFt2YWx1ZV09XCJ3cmFwRmlsdGVyVmFsdWUoIHNvcnRDb2x1bW4gKVwiXG4gICAgW29wdGlvbnNdPVwic29ydENvbHVtbk9wdGlvbnNcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblNvcnRDb2x1bW5DaGFuZ2UoIHVud3JhcEZpbHRlclZhbHVlKCAkZXZlbnQgKSApXCJcbiAgICBzZWxlY3RNYXg9XCIxXCIgICAgICAgIFxuPjwvbnJjbC1maWx0ZXItc2VsZWN0PlxuXG48bnJjbC1maWx0ZXItY29udGFpbmVyIGNsYXNzPVwic29ydC1kaXJlY3Rpb25cIiBcbiAgICBsYWJlbD1cIlNvcnQgT3JkZXJcIlxuPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzb3J0RGlyZWN0aW9uXCIgXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU29ydERpcmVjdGlvbkNoYW5nZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFzb3J0Q29sdW1uXCJcbiAgICA+XG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGFyaWEtbGFiZWw9XCJTb3J0IEEgdG8gWlwiIHZhbHVlPVwiYXNjXCI+QSAmcmFycjsgWjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gYXJpYS1sYWJlbD1cIlNvcnQgWiB0byBBXCIgdmFsdWU9XCJkZXNjXCI+WiAmcmFycjsgQTwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICA8L21hdC1yYWRpby1ncm91cD5cbjwvbnJjbC1maWx0ZXItY29udGFpbmVyPlxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Component, Inject } from "@angular/core";
|
|
2
|
+
import { MAT_SNACK_BAR_DATA } from "@angular/material/snack-bar";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/snack-bar";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
export class SnackbarComponent {
|
|
7
|
+
constructor(snackBarRef, config) {
|
|
8
|
+
this.snackBarRef = snackBarRef;
|
|
9
|
+
this.config = config;
|
|
10
|
+
}
|
|
11
|
+
get className() {
|
|
12
|
+
return 'snackbar-type-' + this.config.type;
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SnackbarComponent, deps: [{ token: i1.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SnackbarComponent, selector: "nrcl-snackbar", host: { properties: { "class": "className" } }, ngImport: i0, template: "<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <mat-icon>check_circle</mat-icon>\n }\n @case ( 'error' ) {\n <mat-icon>cancel</mat-icon>\n }\n @case ( 'info' ) {\n <mat-icon>info</mat-icon>\n }\n @case ( 'update' ) {\n <mat-icon>error</mat-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n", styles: ["::ng-deep :root{--nrcl-snackbar-success-background-color: #2E7940;--nrcl-snackbar-error-background-color: #D8292F;--nrcl-snackbar-info-background-color: #37474f;--nrcl-snackbar-update-background-color: #37474f;--nrcl-snackbar-update-button-color: #f9ca81}:host{display:flex;align-items:stretch;height:100%;color:#fff;font-family:var(--nrcl-font-family);font-size:var(--nrcl-font-size);word-break:break-word;background-color:var(--snackbar-background-color)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host.snackbar-type-success{--snackbar-background-color: var(--nrcl-snackbar-success-background-color )}:host.snackbar-type-error{--snackbar-background-color: var(--nrcl-snackbar-error-background-color )}:host.snackbar-type-info{--snackbar-background-color: var( --nrcl-snackbar-info-background-color )}:host.snackbar-type-update{--snackbar-background-color: var( --nrcl-snackbar-update-background-color );--snackbar-button-color: var( --nrcl-snackbar-update-button-color )}:host .icon{display:flex;background-color:#f2f2f2;align-items:center;justify-content:center;pointer-events:none}:host .icon mat-icon{padding:var(--nrcl-gutter-space);color:var(--snackbar-background-color)}:host .message{padding:var(--nrcl-gutter-space);flex:1;cursor:default;pointer-events:none}:host .button{padding-right:8px;display:flex;align-items:center;justify-content:center}:host .button button{padding:calc(var(--nrcl-gutter-space) / 2);border:1px white solid;border-radius:5px;color:#fff;cursor:pointer;font-family:var(--nrcl-font-family);background-color:var(--snackbar-button-color, --snackbar-background-color)}::ng-deep .mat-mdc-snack-bar-container{color:#fff;font-family:var(--nrcl-font-family);font-size:var(--nrcl-font-size);word-break:break-word}::ng-deep .mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{padding-right:0}::ng-deep .mat-mdc-snack-bar-container .mat-mdc-snackbar-surface .mat-mdc-snack-bar-label{padding:0}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SnackbarComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'nrcl-snackbar', host: {
|
|
20
|
+
'[class]': 'className'
|
|
21
|
+
}, template: "<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <mat-icon>check_circle</mat-icon>\n }\n @case ( 'error' ) {\n <mat-icon>cancel</mat-icon>\n }\n @case ( 'info' ) {\n <mat-icon>info</mat-icon>\n }\n @case ( 'update' ) {\n <mat-icon>error</mat-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n", styles: ["::ng-deep :root{--nrcl-snackbar-success-background-color: #2E7940;--nrcl-snackbar-error-background-color: #D8292F;--nrcl-snackbar-info-background-color: #37474f;--nrcl-snackbar-update-background-color: #37474f;--nrcl-snackbar-update-button-color: #f9ca81}:host{display:flex;align-items:stretch;height:100%;color:#fff;font-family:var(--nrcl-font-family);font-size:var(--nrcl-font-size);word-break:break-word;background-color:var(--snackbar-background-color)}:host ::ng-deep .material-icons{font-family:Material Symbols Outlined;font-feature-settings:\"liga\"}:host ::ng-deep .mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host ::ng-deep button.mat-mdc-fab>.mat-icon,:host ::ng-deep button.mat-mdc-raised-button>.mat-icon,:host ::ng-deep button.mat-mdc-button>.mat-icon,:host ::ng-deep button.mat-mdc-icon-button>.mat-icon,:host ::ng-deep button.mat-mdc-outlined-button>.mat-icon,:host ::ng-deep button.mat-mdc-unelevated-button>.mat-icon,:host ::ng-deep button.mat-mdc-mini-fab .mat-mdc-menu-item>.mat-icon{width:var(--nrcl-icon-size);height:var(--nrcl-icon-size);font-size:var(--nrcl-icon-size);line-height:var(--nrcl-icon-size)}:host.snackbar-type-success{--snackbar-background-color: var(--nrcl-snackbar-success-background-color )}:host.snackbar-type-error{--snackbar-background-color: var(--nrcl-snackbar-error-background-color )}:host.snackbar-type-info{--snackbar-background-color: var( --nrcl-snackbar-info-background-color )}:host.snackbar-type-update{--snackbar-background-color: var( --nrcl-snackbar-update-background-color );--snackbar-button-color: var( --nrcl-snackbar-update-button-color )}:host .icon{display:flex;background-color:#f2f2f2;align-items:center;justify-content:center;pointer-events:none}:host .icon mat-icon{padding:var(--nrcl-gutter-space);color:var(--snackbar-background-color)}:host .message{padding:var(--nrcl-gutter-space);flex:1;cursor:default;pointer-events:none}:host .button{padding-right:8px;display:flex;align-items:center;justify-content:center}:host .button button{padding:calc(var(--nrcl-gutter-space) / 2);border:1px white solid;border-radius:5px;color:#fff;cursor:pointer;font-family:var(--nrcl-font-family);background-color:var(--snackbar-button-color, --snackbar-background-color)}::ng-deep .mat-mdc-snack-bar-container{color:#fff;font-family:var(--nrcl-font-family);font-size:var(--nrcl-font-size);word-break:break-word}::ng-deep .mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{padding-right:0}::ng-deep .mat-mdc-snack-bar-container .mat-mdc-snackbar-surface .mat-mdc-snack-bar-label{padding:0}\n"] }]
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.MatSnackBarRef }, { type: undefined, decorators: [{
|
|
23
|
+
type: Inject,
|
|
24
|
+
args: [MAT_SNACK_BAR_DATA]
|
|
25
|
+
}] }] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnItbmd4LWNvbXBvbmVudC1saWIvc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixNQUFNLDZCQUE2QixDQUFDOzs7O0FBaUJqRixNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQ1csV0FBOEMsRUFDbEIsTUFBc0I7UUFEbEQsZ0JBQVcsR0FBWCxXQUFXLENBQW1DO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQ3pELENBQUM7SUFFTCxJQUFJLFNBQVM7UUFDVCxPQUFPLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQzlDLENBQUM7K0dBUlEsaUJBQWlCLGdEQUdkLGtCQUFrQjttR0FIckIsaUJBQWlCLHFHQ2xCOUIsbWtCQXdCQTs7NEZETmEsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNJLGVBQWUsUUFHbkI7d0JBQ0YsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCOzswQkFLSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1BVF9TTkFDS19CQVJfREFUQSwgTWF0U25hY2tCYXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XG5cbmV4cG9ydCB0eXBlIFNuYWNrYmFyVHlwZSA9ICdzdWNjZXNzJ3wnZXJyb3InfCdpbmZvJ3wndXBkYXRlJ1xuXG5leHBvcnQgdHlwZSBTbmFja2JhckNvbmZpZyA9IHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICB0eXBlOiBTbmFja2JhclR5cGVcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICducmNsLXNuYWNrYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmw6IFwiLi9zbmFja2Jhci5jb21wb25lbnQuc2Nzc1wiLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzc10nOiAnY2xhc3NOYW1lJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU25hY2tiYXJDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgc25hY2tCYXJSZWY6IE1hdFNuYWNrQmFyUmVmPFNuYWNrYmFyQ29tcG9uZW50PixcbiAgICAgICAgQEluamVjdChNQVRfU05BQ0tfQkFSX0RBVEEpIHB1YmxpYyBjb25maWc6IFNuYWNrYmFyQ29uZmlnXG4gICAgKSB7IH1cblxuICAgIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiAnc25hY2tiYXItdHlwZS0nICsgdGhpcy5jb25maWcudHlwZVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpY29uXCI+XG4gICAgQHN3aXRjaCAoIGNvbmZpZy50eXBlICkge1xuICAgICAgICBAY2FzZSAoICdzdWNjZXNzJyApIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICggJ2Vycm9yJyApIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICggJ2luZm8nICkge1xuICAgICAgICAgICAgPG1hdC1pY29uPmluZm88L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICggJ3VwZGF0ZScgKSB7XG4gICAgICAgICAgICA8bWF0LWljb24+ZXJyb3I8L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgfVxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XG4gICAgPHNwYW4+e3sgY29uZmlnLm1lc3NhZ2UgfX08L3NwYW4+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJ1dHRvblwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInNuYWNrQmFyUmVmLmRpc21pc3NXaXRoQWN0aW9uKClcIj5DbG9zZTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, inject } from "@angular/core";
|
|
2
|
+
import { ConfigurationService } from "../services/configuration.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ConfigurationSubscriberBase {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.configurationService = inject(ConfigurationService);
|
|
7
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.configurationSubscription = this.configurationService.configurationObservable.subscribe((c) => {
|
|
11
|
+
this.configuration = c;
|
|
12
|
+
this.onConfigurationChange();
|
|
13
|
+
this.changeDetectorRef.detectChanges();
|
|
14
|
+
});
|
|
15
|
+
this.configuration = this.configurationService.configuration;
|
|
16
|
+
}
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
if (this.configurationSubscription)
|
|
19
|
+
this.configurationSubscription.unsubscribe();
|
|
20
|
+
}
|
|
21
|
+
onConfigurationChange() { }
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationSubscriberBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ConfigurationSubscriberBase, ngImport: i0 }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationSubscriberBase, decorators: [{
|
|
26
|
+
type: Directive
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1zdWJzY3JpYmVyLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uci1uZ3gtY29tcG9uZW50LWxpYi9zcmMvZGlyZWN0aXZlcy9jb25maWd1cmF0aW9uLXN1YnNjcmliZXIuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBRWpCLFNBQVMsRUFDVCxNQUFNLEVBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUd4RixNQUFNLE9BQU8sMkJBQTJCO0lBRHhDO1FBS0kseUJBQW9CLEdBQUcsTUFBTSxDQUFFLG9CQUFvQixDQUFFLENBQUE7UUFDckQsc0JBQWlCLEdBQUcsTUFBTSxDQUFFLGlCQUFpQixDQUFFLENBQUE7S0FnQmxEO0lBZEcsUUFBUTtRQUNKLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFFLENBQUUsQ0FBQyxFQUFHLEVBQUU7WUFDbEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7WUFDdEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQzFDLENBQUMsQ0FBRSxDQUFBO1FBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFBO0lBQ2hFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSyxJQUFJLENBQUMseUJBQXlCO1lBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3RGLENBQUM7SUFFRCxxQkFBcUIsS0FBSSxDQUFDOytHQXBCakIsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24sIENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU3Vic2NyaWJlckJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7ICAgIFxuICAgIGNvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb25cbiAgICBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uXG5cbiAgICBjb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdCggQ29uZmlndXJhdGlvblNlcnZpY2UgKVxuICAgIGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KCBDaGFuZ2VEZXRlY3RvclJlZiApXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmF0aW9uT2JzZXJ2YWJsZS5zdWJzY3JpYmUoICggYyApID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNcbiAgICAgICAgICAgIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlKClcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH0gKVxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ3VyYXRpb25cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCB0aGlzLmNvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb24gKSB0aGlzLmNvbmZpZ3VyYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZSgpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, EventEmitter, inject, Output } from "@angular/core";
|
|
2
|
+
import { PageStateService } from "../services/page-state.service";
|
|
3
|
+
import { ObservableAborter, Aborted } from "../utils/row-list.util";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class RowListBase {
|
|
6
|
+
get isLoading() { return this._isLoading; }
|
|
7
|
+
set isLoading(v) {
|
|
8
|
+
if (v == this._isLoading)
|
|
9
|
+
return;
|
|
10
|
+
this._isLoading = v;
|
|
11
|
+
this.isLoadingChange.emit(v);
|
|
12
|
+
}
|
|
13
|
+
constructor() {
|
|
14
|
+
this.isLoadingChange = new EventEmitter();
|
|
15
|
+
this._isLoading = false;
|
|
16
|
+
this.rows = [];
|
|
17
|
+
this.pageStateService = inject(PageStateService);
|
|
18
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
19
|
+
this.initializeRowList();
|
|
20
|
+
}
|
|
21
|
+
initializeRowList() {
|
|
22
|
+
this.loadPageState();
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
this.refreshRowList();
|
|
26
|
+
}
|
|
27
|
+
refreshRowList() {
|
|
28
|
+
this.isLoading = true;
|
|
29
|
+
return Promise.resolve()
|
|
30
|
+
.then(() => {
|
|
31
|
+
return this.loadRowList();
|
|
32
|
+
})
|
|
33
|
+
.then(({ rows, totalRowCount }) => {
|
|
34
|
+
this.rows = rows;
|
|
35
|
+
this.totalRowCount = totalRowCount;
|
|
36
|
+
this.isLoading = false;
|
|
37
|
+
})
|
|
38
|
+
.catch((e) => {
|
|
39
|
+
if (e instanceof Aborted)
|
|
40
|
+
return;
|
|
41
|
+
this.loadRowListPageFailed(e);
|
|
42
|
+
this.isLoading = false;
|
|
43
|
+
})
|
|
44
|
+
.finally(() => {
|
|
45
|
+
this.updateSummaryMobile();
|
|
46
|
+
this.changeDetectorRef.detectChanges();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
loadRowList() {
|
|
50
|
+
if (this._loadRowListRequest)
|
|
51
|
+
this._loadRowListRequest.abort();
|
|
52
|
+
this._loadRowListRequest = new ObservableAborter(() => {
|
|
53
|
+
return this.fetchRowListPage();
|
|
54
|
+
});
|
|
55
|
+
return this._loadRowListRequest.promise
|
|
56
|
+
.then(res => {
|
|
57
|
+
return this.displayRowListPage(res);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
fetchRowListPage() {
|
|
61
|
+
throw 'unimplemented';
|
|
62
|
+
}
|
|
63
|
+
displayRowListPage(res) {
|
|
64
|
+
throw 'unimplemented';
|
|
65
|
+
}
|
|
66
|
+
loadRowListPageFailed(error) {
|
|
67
|
+
console.warn(error);
|
|
68
|
+
this.rows = [];
|
|
69
|
+
this.totalRowCount = 0;
|
|
70
|
+
}
|
|
71
|
+
onFilterChange(ev) {
|
|
72
|
+
this.filter = ev;
|
|
73
|
+
this.pageNumber = 1;
|
|
74
|
+
this.refreshRowList()
|
|
75
|
+
.then(() => {
|
|
76
|
+
this.savePageState();
|
|
77
|
+
this.updateSummaryMobile();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
onSortChange(ev) {
|
|
81
|
+
this.sortActive = ev.active;
|
|
82
|
+
this.sortDirection = ev.direction;
|
|
83
|
+
this.pageNumber = 1;
|
|
84
|
+
this.refreshRowList()
|
|
85
|
+
.then(() => {
|
|
86
|
+
this.savePageState();
|
|
87
|
+
this.updateSummaryMobile();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
onPageNumberChange(ev) {
|
|
91
|
+
this.pageNumber = ev;
|
|
92
|
+
this.refreshRowList()
|
|
93
|
+
.then(() => {
|
|
94
|
+
this.savePageState();
|
|
95
|
+
this.updateSummaryMobile();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
onPageSizeChange(ev) {
|
|
99
|
+
this.pageSize = ev;
|
|
100
|
+
this.pageNumber = 1;
|
|
101
|
+
this.refreshRowList()
|
|
102
|
+
.then(() => {
|
|
103
|
+
this.savePageState();
|
|
104
|
+
this.updateSummaryMobile();
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
updateSummaryMobile() {
|
|
108
|
+
[this.summaryMobile, this.showPagingMobile] = makeSummary(this.totalRowCount, this.pageNumber, this.pageSize);
|
|
109
|
+
}
|
|
110
|
+
get initialPageState() {
|
|
111
|
+
throw 'unimplemented';
|
|
112
|
+
}
|
|
113
|
+
loadPageState() {
|
|
114
|
+
let state = this.pageStateService.getPageState(this.constructor, this.initialPageState);
|
|
115
|
+
this.filter = state.filter;
|
|
116
|
+
this.pageSize = state.pageSize;
|
|
117
|
+
this.pageNumber = state.pageNumber;
|
|
118
|
+
this.sortActive = state.sortActive;
|
|
119
|
+
this.sortDirection = state.sortDirection;
|
|
120
|
+
}
|
|
121
|
+
savePageState() {
|
|
122
|
+
let state = JSON.parse(JSON.stringify({
|
|
123
|
+
filter: this.filter,
|
|
124
|
+
pageSize: this.pageSize,
|
|
125
|
+
pageNumber: this.pageNumber,
|
|
126
|
+
sortActive: this.sortActive,
|
|
127
|
+
sortDirection: this.sortDirection,
|
|
128
|
+
}));
|
|
129
|
+
this.pageStateService.setPageState(this.constructor, state);
|
|
130
|
+
}
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: RowListBase, outputs: { isLoadingChange: "isLoadingChange" }, ngImport: i0 }); }
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowListBase, decorators: [{
|
|
135
|
+
type: Directive
|
|
136
|
+
}], ctorParameters: () => [], propDecorators: { isLoadingChange: [{
|
|
137
|
+
type: Output
|
|
138
|
+
}] } });
|
|
139
|
+
export function makeSummary(rowCount, pageNumber, pageSize) {
|
|
140
|
+
if (rowCount && pageSize) {
|
|
141
|
+
let pageCount = Math.ceil(rowCount / pageSize);
|
|
142
|
+
let first = (Math.min(pageCount, pageNumber) - 1) * pageSize + 1;
|
|
143
|
+
let last = Math.min(first + pageSize - 1, rowCount);
|
|
144
|
+
return [`Showing ${first} to ${last} of ${rowCount}`, true];
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return ["No records to display.", false];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWxpc3QuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25yLW5neC1jb21wb25lbnQtbGliL3NyYy9kaXJlY3RpdmVzL3Jvdy1saXN0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWlCcEUsTUFBTSxPQUFPLFdBQVc7SUFJcEIsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQztJQUMxQyxJQUFJLFNBQVMsQ0FBRSxDQUFVO1FBQ3JCLElBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUcsT0FBTTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBRSxDQUFDLENBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBb0JEO1FBNUJVLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUUvQyxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBUTFCLFNBQUksR0FBUSxFQUFFLENBQUE7UUFhZCxxQkFBZ0IsR0FBRyxNQUFNLENBQUUsZ0JBQWdCLENBQUUsQ0FBQTtRQUM3QyxzQkFBaUIsR0FBRyxNQUFNLENBQUUsaUJBQWlCLENBQUUsQ0FBQTtRQUszQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFO2FBQ25CLElBQUksQ0FBRSxHQUFHLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUM3QixDQUFDLENBQUU7YUFDRixJQUFJLENBQUUsQ0FBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsRUFBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBQzFCLENBQUMsQ0FBRTthQUNGLEtBQUssQ0FBRSxDQUFFLENBQUMsRUFBRyxFQUFFO1lBQ1osSUFBSyxDQUFDLFlBQVksT0FBTztnQkFBRyxPQUFNO1lBRWxDLElBQUksQ0FBQyxxQkFBcUIsQ0FBRSxDQUFDLENBQUUsQ0FBQTtZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUMxQixDQUFDLENBQUU7YUFDRixPQUFPLENBQUUsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQzFDLENBQUMsQ0FBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFLLElBQUksQ0FBQyxtQkFBbUI7WUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBRXBDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLGlCQUFpQixDQUFLLEdBQUcsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ2xDLENBQUMsQ0FBRSxDQUFBO1FBRUgsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTzthQUNsQyxJQUFJLENBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBRSxHQUFHLENBQUUsQ0FBQTtRQUN6QyxDQUFDLENBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixNQUFNLGVBQWUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsa0JBQWtCLENBQUUsR0FBTTtRQUN0QixNQUFNLGVBQWUsQ0FBQTtJQUN6QixDQUFDO0lBRUQscUJBQXFCLENBQUUsS0FBSztRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBRSxFQUFFO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUE7UUFFbkIsSUFBSSxDQUFDLGNBQWMsRUFBRTthQUNoQixJQUFJLENBQUUsR0FBRyxFQUFFO1lBQ1IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBQzlCLENBQUMsQ0FBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBRSxFQUFFO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFBO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUVuQixJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ2hCLElBQUksQ0FBRSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUIsQ0FBQyxDQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsa0JBQWtCLENBQUUsRUFBRTtRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUVwQixJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ2hCLElBQUksQ0FBRSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUIsQ0FBQyxDQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsZ0JBQWdCLENBQUUsRUFBRTtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUVuQixJQUFJLENBQUMsY0FBYyxFQUFFO2FBQ2hCLElBQUksQ0FBRSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUIsQ0FBQyxDQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsQ0FBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxHQUFHLFdBQVcsQ0FBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBRSxDQUFBO0lBQ3JILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixNQUFNLGVBQWUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFFLENBQUE7UUFFMUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFBO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksS0FBSyxHQUFvQixJQUFJLENBQUMsS0FBSyxDQUFFLElBQUksQ0FBQyxTQUFTLENBQUU7WUFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNwQyxDQUFFLENBQUUsQ0FBQTtRQUVMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFFLENBQUE7SUFDbEYsQ0FBQzsrR0FyS1EsV0FBVzttR0FBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixTQUFTO3dEQUVJLGVBQWU7c0JBQXhCLE1BQU07O0FBdUtYLE1BQU0sVUFBVSxXQUFXLENBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO0lBQ3ZELElBQUssUUFBUSxJQUFJLFFBQVEsRUFBRyxDQUFDO1FBQ3pCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUUsUUFBUSxHQUFHLFFBQVEsQ0FBRSxDQUFBO1FBRWhELElBQUksS0FBSyxHQUFHLENBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBRSxTQUFTLEVBQUUsVUFBVSxDQUFFLEdBQUcsQ0FBQyxDQUFFLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQTtRQUNwRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFFLEtBQUssR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBRSxDQUFBO1FBRXJELE9BQU8sQ0FBRSxXQUFZLEtBQU0sT0FBUSxJQUFLLE9BQVEsUUFBUyxFQUFFLEVBQUUsSUFBSSxDQUFFLENBQUE7SUFDdkUsQ0FBQztTQUNJLENBQUM7UUFDRixPQUFPLENBQUUsd0JBQXdCLEVBQUUsS0FBSyxDQUFFLENBQUE7SUFDOUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQYWdlU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3BhZ2Utc3RhdGUuc2VydmljZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZUFib3J0ZXIsIEFib3J0ZWQgfSBmcm9tIFwiLi4vdXRpbHMvcm93LWxpc3QudXRpbFwiO1xuaW1wb3J0IHsgQ29kZURlc2NyaXB0aW9uIH0gZnJvbSBcIi4uL3B1YmxpYy1hcGlcIjtcblxuZXhwb3J0IHR5cGUgUm93TGlzdFN0YXRlPEY+ID0ge1xuICAgIGZpbHRlcjogRlxuICAgIHBhZ2VTaXplOiBudW1iZXJcbiAgICBwYWdlTnVtYmVyOiBudW1iZXJcbiAgICBzb3J0QWN0aXZlOiBzdHJpbmcgXG4gICAgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvblxufVxuXG5leHBvcnQgdHlwZSBMb2FkUm93TGlzdFJlc3VsdDxSPiA9IHsgXG4gICAgcm93czogUltdLCBcbiAgICB0b3RhbFJvd0NvdW50OiBudW1iZXIgXG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFJvd0xpc3RCYXNlPEYsUixMPWFueT4gaW1wbGVtZW50cyBSb3dMaXN0U3RhdGU8Rj4sIEFmdGVyVmlld0luaXQge1xuICAgIEBPdXRwdXQoKSBpc0xvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgICBcbiAgICBwcml2YXRlIF9pc0xvYWRpbmcgPSBmYWxzZVxuICAgIGdldCBpc0xvYWRpbmcoKSB7IHJldHVybiB0aGlzLl9pc0xvYWRpbmcgfVxuICAgIHNldCBpc0xvYWRpbmcoIHY6IGJvb2xlYW4gKSB7IFxuICAgICAgICBpZiAoIHYgPT0gdGhpcy5faXNMb2FkaW5nICkgcmV0dXJuICAgICAgICBcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdiBcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdDaGFuZ2UuZW1pdCggdiApXG4gICAgfSAgXG5cbiAgICByb3dzOiBSW10gPSBbXVxuICAgIHRvdGFsUm93Q291bnQ6IG51bWJlclxuXG4gICAgZmlsdGVyOiBGXG4gICAgcGFnZVNpemU6IG51bWJlclxuICAgIHBhZ2VOdW1iZXI6IG51bWJlclxuICAgIHNvcnRBY3RpdmU6IHN0cmluZyBcbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uXG5cbiAgICBzb3J0Q29sdW1uczogQ29kZURlc2NyaXB0aW9uW11cbiAgICBzdW1tYXJ5TW9iaWxlOiBzdHJpbmdcbiAgICBzaG93UGFnaW5nTW9iaWxlOiBib29sZWFuXG4gICAgXG4gICAgcGFnZVN0YXRlU2VydmljZSA9IGluamVjdCggUGFnZVN0YXRlU2VydmljZSApXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoIENoYW5nZURldGVjdG9yUmVmIClcblxuICAgIHByaXZhdGUgX2xvYWRSb3dMaXN0UmVxdWVzdDogT2JzZXJ2YWJsZUFib3J0ZXI8TD5cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVSb3dMaXN0KClcbiAgICB9XG5cbiAgICBpbml0aWFsaXplUm93TGlzdCgpIHtcbiAgICAgICAgdGhpcy5sb2FkUGFnZVN0YXRlKCkgICAgICAgIFxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoUm93TGlzdCgpXG4gICAgfVxuXG4gICAgcmVmcmVzaFJvd0xpc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkUm93TGlzdCgpXG4gICAgICAgICAgICB9IClcbiAgICAgICAgICAgIC50aGVuKCAoIHsgcm93cywgdG90YWxSb3dDb3VudCB9ICkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93cyA9IHJvd3NcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsUm93Q291bnQgPSB0b3RhbFJvd0NvdW50XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAuY2F0Y2goICggZSApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIGUgaW5zdGFuY2VvZiBBYm9ydGVkICkgcmV0dXJuXG5cbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRSb3dMaXN0UGFnZUZhaWxlZCggZSApXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgICAgfSApXG4gICAgICAgICAgICAuZmluYWxseSggKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3VtbWFyeU1vYmlsZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIH0gKVxuICAgIH1cblxuICAgIGxvYWRSb3dMaXN0KCk6IFByb21pc2U8TG9hZFJvd0xpc3RSZXN1bHQ8Uj4+IHtcbiAgICAgICAgaWYgKCB0aGlzLl9sb2FkUm93TGlzdFJlcXVlc3QgKVxuICAgICAgICAgICAgdGhpcy5fbG9hZFJvd0xpc3RSZXF1ZXN0LmFib3J0KClcblxuICAgICAgICB0aGlzLl9sb2FkUm93TGlzdFJlcXVlc3QgPSBuZXcgT2JzZXJ2YWJsZUFib3J0ZXI8TD4oICgpID0+IHsgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSb3dMaXN0UGFnZSgpXG4gICAgICAgIH0gKVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkUm93TGlzdFJlcXVlc3QucHJvbWlzZVxuICAgICAgICAgICAgLnRoZW4oIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheVJvd0xpc3RQYWdlKCByZXMgKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgZmV0Y2hSb3dMaXN0UGFnZSgpOiBPYnNlcnZhYmxlPEw+IHtcbiAgICAgICAgdGhyb3cgJ3VuaW1wbGVtZW50ZWQnXG4gICAgfVxuICAgIFxuICAgIGRpc3BsYXlSb3dMaXN0UGFnZSggcmVzOiBMICk6IExvYWRSb3dMaXN0UmVzdWx0PFI+IHtcbiAgICAgICAgdGhyb3cgJ3VuaW1wbGVtZW50ZWQnXG4gICAgfVxuXG4gICAgbG9hZFJvd0xpc3RQYWdlRmFpbGVkKCBlcnJvciApIHtcbiAgICAgICAgY29uc29sZS53YXJuKCBlcnJvciApXG4gICAgICAgIHRoaXMucm93cyA9IFtdXG4gICAgICAgIHRoaXMudG90YWxSb3dDb3VudCA9IDBcbiAgICB9XG5cbiAgICBvbkZpbHRlckNoYW5nZSggZXYgKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gZXZcbiAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMVxuXG4gICAgICAgIHRoaXMucmVmcmVzaFJvd0xpc3QoKVxuICAgICAgICAgICAgLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVQYWdlU3RhdGUoKVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3VtbWFyeU1vYmlsZSgpXG4gICAgICAgICAgICB9IClcbiAgICB9XG5cbiAgICBvblNvcnRDaGFuZ2UoIGV2ICkge1xuICAgICAgICB0aGlzLnNvcnRBY3RpdmUgPSBldi5hY3RpdmVcbiAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gZXYuZGlyZWN0aW9uXG4gICAgICAgIHRoaXMucGFnZU51bWJlciA9IDFcblxuICAgICAgICB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICAgICAgICAgIC50aGVuKCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlUGFnZVN0YXRlKClcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1bW1hcnlNb2JpbGUoKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgb25QYWdlTnVtYmVyQ2hhbmdlKCBldiApIHtcbiAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gZXZcblxuICAgICAgICB0aGlzLnJlZnJlc2hSb3dMaXN0KClcbiAgICAgICAgICAgIC50aGVuKCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlUGFnZVN0YXRlKClcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN1bW1hcnlNb2JpbGUoKVxuICAgICAgICAgICAgfSApXG4gICAgfVxuXG4gICAgb25QYWdlU2l6ZUNoYW5nZSggZXYgKSB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBldiBcbiAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gMVxuXG4gICAgICAgIHRoaXMucmVmcmVzaFJvd0xpc3QoKVxuICAgICAgICAgICAgLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVQYWdlU3RhdGUoKVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU3VtbWFyeU1vYmlsZSgpXG4gICAgICAgICAgICB9IClcbiAgICB9XG5cbiAgICB1cGRhdGVTdW1tYXJ5TW9iaWxlKCkge1xuICAgICAgICBbIHRoaXMuc3VtbWFyeU1vYmlsZSwgdGhpcy5zaG93UGFnaW5nTW9iaWxlIF0gPSBtYWtlU3VtbWFyeSggdGhpcy50b3RhbFJvd0NvdW50LCB0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUgKVxuICAgIH1cblxuICAgIGdldCBpbml0aWFsUGFnZVN0YXRlKCk6IFJvd0xpc3RTdGF0ZTxGPiB7XG4gICAgICAgIHRocm93ICd1bmltcGxlbWVudGVkJ1xuICAgIH1cblxuICAgIGxvYWRQYWdlU3RhdGUoKSB7XG4gICAgICAgIGxldCBzdGF0ZSA9IHRoaXMucGFnZVN0YXRlU2VydmljZS5nZXRQYWdlU3RhdGU8Um93TGlzdFN0YXRlPEY+PiggdGhpcy5jb25zdHJ1Y3RvciwgdGhpcy5pbml0aWFsUGFnZVN0YXRlIClcblxuICAgICAgICB0aGlzLmZpbHRlciA9IHN0YXRlLmZpbHRlclxuICAgICAgICB0aGlzLnBhZ2VTaXplID0gc3RhdGUucGFnZVNpemVcbiAgICAgICAgdGhpcy5wYWdlTnVtYmVyID0gc3RhdGUucGFnZU51bWJlclxuICAgICAgICB0aGlzLnNvcnRBY3RpdmUgPSBzdGF0ZS5zb3J0QWN0aXZlXG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHN0YXRlLnNvcnREaXJlY3Rpb25cbiAgICB9XG5cbiAgICBzYXZlUGFnZVN0YXRlKCkge1xuICAgICAgICBsZXQgc3RhdGU6IFJvd0xpc3RTdGF0ZTxGPiA9IEpTT04ucGFyc2UoIEpTT04uc3RyaW5naWZ5KCB7XG4gICAgICAgICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyLFxuICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICAgICAgICBwYWdlTnVtYmVyOiB0aGlzLnBhZ2VOdW1iZXIsXG4gICAgICAgICAgICBzb3J0QWN0aXZlOiB0aGlzLnNvcnRBY3RpdmUsXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb24sXG4gICAgICAgIH0gKSApXG4gICAgICAgIFxuICAgICAgICB0aGlzLnBhZ2VTdGF0ZVNlcnZpY2Uuc2V0UGFnZVN0YXRlPFJvd0xpc3RTdGF0ZTxGPj4oIHRoaXMuY29uc3RydWN0b3IsIHN0YXRlIClcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlU3VtbWFyeSggcm93Q291bnQsIHBhZ2VOdW1iZXIsIHBhZ2VTaXplICk6IFsgc3RyaW5nLCBib29sZWFuIF0ge1xuICAgIGlmICggcm93Q291bnQgJiYgcGFnZVNpemUgKSB7XG4gICAgICAgIGxldCBwYWdlQ291bnQgPSBNYXRoLmNlaWwoIHJvd0NvdW50IC8gcGFnZVNpemUgKVxuXG4gICAgICAgIGxldCBmaXJzdCA9ICggTWF0aC5taW4oIHBhZ2VDb3VudCwgcGFnZU51bWJlciApIC0gMSApICogcGFnZVNpemUgKyAxXG4gICAgICAgIGxldCBsYXN0ID0gTWF0aC5taW4oIGZpcnN0ICsgcGFnZVNpemUgLSAxLCByb3dDb3VudCApXG5cbiAgICAgICAgcmV0dXJuIFsgYFNob3dpbmcgJHsgZmlyc3QgfSB0byAkeyBsYXN0IH0gb2YgJHsgcm93Q291bnQgfWAsIHRydWUgXVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsgXCJObyByZWNvcmRzIHRvIGRpc3BsYXkuXCIsIGZhbHNlIF1cbiAgICB9XG59XG4iXX0=
|