@annalib/anna-core 33.0.2 → 33.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/annalib-anna-core.mjs +5 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +12 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-circular-progress/anna-circular-progress.component.mjs +52 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +11 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +11 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +49 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-licensing-table/anna-licensing-table.component.mjs +45 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +12 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +22 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +11 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +20 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +12 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-spinner-loader/anna-spinner-loader.component.mjs +26 -0
- package/esm2022/lib/anna-core-shared-lib/constants/anna-application.constants.mjs +5 -0
- package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +49 -0
- package/esm2022/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +271 -0
- package/esm2022/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +46 -0
- package/esm2022/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +41 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +2 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +2 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-licensing-table.model.mjs +26 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +67 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-sort.model.mjs +7 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +32 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +39 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +27 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +21 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +53 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +27 -0
- package/esm2022/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +17 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +240 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +1522 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +149 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-generic-tooltip-html.services.mjs +60 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +94 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +80 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +68 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-regex-patterns.service.mjs +20 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-sort.service.mjs +177 -0
- package/esm2022/lib/anna-core-shared-lib/services/anna-spinner-loader.service.mjs +24 -0
- package/esm2022/lib/anna-core-shared-lib/services/update-station-id.service.mjs +16 -0
- package/esm2022/lib/anna-core.module.mjs +221 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +160 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-single-select/anna-single-select.component.mjs +155 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-single-select/models/anna-single-select.model.mjs +12 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +359 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +264 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +189 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +319 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +302 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +1103 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +69 -0
- package/esm2022/lib/anna-generic-table-lib/services/gt-table-related-common-functions.service.mjs +99 -0
- package/esm2022/public-api.mjs +65 -0
- package/fesm2022/annalib-anna-core.mjs +419 -208
- package/fesm2022/annalib-anna-core.mjs.map +1 -1
- package/lib/anna-core-shared-lib/components/anna-licensing-table/anna-licensing-table.component.d.ts +15 -0
- package/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +1 -0
- package/lib/anna-core-shared-lib/models/anna-licensing-table.model.d.ts +18 -0
- package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +2 -2
- package/lib/anna-core-shared-lib/services/anna-number-format.service.d.ts +1 -0
- package/lib/anna-core-shared-lib/services/update-station-id.service.d.ts +6 -0
- package/lib/anna-core.module.d.ts +2 -1
- package/lib/anna-generic-table-lib/services/gt-table-related-common-functions.service.d.ts +11 -0
- package/package.json +9 -7
- package/public-api.d.ts +4 -0
- package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +0 -2
- package/src/lib/anna-common-scss/_button.scss +1 -1
- package/src/lib/anna-common-scss/_customDropdown.scss +1 -2
- package/src/lib/anna-common-scss/_date-picker-form.scss +1 -1
- package/src/lib/anna-common-scss/_filters.scss +1 -2
- package/src/lib/anna-common-scss/_gt-table.scss +3 -2
- package/src/lib/anna-common-scss/_mat-button-toggle.scss +1 -1
- package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +1 -1
- package/src/lib/anna-common-scss/_sort.scss +1 -1
- package/src/lib/anna-common-scss/style.scss +1 -7
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from "@angular/common";
|
|
2
|
+
import { ChangeDetectionStrategy, Component } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AnnaRejectedIconTemplateComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnaRejectedIconTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AnnaRejectedIconTemplateComponent, isStandalone: true, selector: "anna-core-rejected-icon-template", ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"rejectedIcon\"></ng-container>\r\n\r\n<ng-template #rejectedIcon>\r\n <svg\r\n width=\"15px\"\r\n height=\"15px\"\r\n viewBox=\"0 0 20 20\"\r\n >\r\n <g\r\n id=\"Buyer-rejected-icon\"\r\n stroke=\"none\"\r\n stroke-width=\"1\"\r\n fill=\"none\"\r\n fill-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M15.7822266,4.21777344 C14.3671875,2.80276367 12.4951465,2 10.5,2 C6.37918945,2 3,5.37253906 3,9.5 C3,13.6296289 6.37133789,17 10.5,17 C14.6105273,17 18,13.6429004 18,9.5 C18,7.50485352 17.1972656,5.6327832 15.7822266,4.21777344 Z M10.5,15.2128906 C7.34220703,15.2128906 4.78710938,12.664502 4.78710938,9.5 C4.78710938,8.26950195 5.17382812,7.10055664 5.88574219,6.13375977 L13.8662402,14.1054395 C12.8993848,14.8261719 11.730498,15.2128906 10.5,15.2128906 Z M15.1054688,12.8661816 L7.13375977,4.88574219 C8.10061523,4.17382813 9.26950195,3.78710938 10.5,3.78710938 C13.6578809,3.78710938 16.2128906,6.33549805 16.2128906,9.5 C16.2128906,10.7304395 15.8261719,11.8993848 15.1054688,12.8661816 Z\"\r\n id=\"Shape\"\r\n fill=\"#4A4A4A\"\r\n fill-rule=\"nonzero\"\r\n ></path>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnaRejectedIconTemplateComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: "anna-core-rejected-icon-template", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgTemplateOutlet], template: "<ng-container [ngTemplateOutlet]=\"rejectedIcon\"></ng-container>\r\n\r\n<ng-template #rejectedIcon>\r\n <svg\r\n width=\"15px\"\r\n height=\"15px\"\r\n viewBox=\"0 0 20 20\"\r\n >\r\n <g\r\n id=\"Buyer-rejected-icon\"\r\n stroke=\"none\"\r\n stroke-width=\"1\"\r\n fill=\"none\"\r\n fill-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M15.7822266,4.21777344 C14.3671875,2.80276367 12.4951465,2 10.5,2 C6.37918945,2 3,5.37253906 3,9.5 C3,13.6296289 6.37133789,17 10.5,17 C14.6105273,17 18,13.6429004 18,9.5 C18,7.50485352 17.1972656,5.6327832 15.7822266,4.21777344 Z M10.5,15.2128906 C7.34220703,15.2128906 4.78710938,12.664502 4.78710938,9.5 C4.78710938,8.26950195 5.17382812,7.10055664 5.88574219,6.13375977 L13.8662402,14.1054395 C12.8993848,14.8261719 11.730498,15.2128906 10.5,15.2128906 Z M15.1054688,12.8661816 L7.13375977,4.88574219 C8.10061523,4.17382813 9.26950195,3.78710938 10.5,3.78710938 C13.6578809,3.78710938 16.2128906,6.33549805 16.2128906,9.5 C16.2128906,10.7304395 15.8261719,11.8993848 15.1054688,12.8661816 Z\"\r\n id=\"Shape\"\r\n fill=\"#4A4A4A\"\r\n fill-rule=\"nonzero\"\r\n ></path>\r\n </g>\r\n </svg>\r\n</ng-template>\r\n" }]
|
|
11
|
+
}] });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1yZWplY3RlZC1pY29uLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS1zaGFyZWQtbGliL2NvbXBvbmVudHMvYW5uYS1yZWplY3RlZC1pY29uLXRlbXBsYXRlL2FubmEtcmVqZWN0ZWQtaWNvbi10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtcmVqZWN0ZWQtaWNvbi10ZW1wbGF0ZS9hbm5hLXJlamVjdGVkLWljb24tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVbkUsTUFBTSxPQUFPLGlDQUFpQzsrR0FBakMsaUNBQWlDO21HQUFqQyxpQ0FBaUMsNEZDWDlDLHV6Q0F3QkEsMEREZmMsZ0JBQWdCOzs0RkFFakIsaUNBQWlDO2tCQVI3QyxTQUFTOytCQUNJLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhbm5hLWNvcmUtcmVqZWN0ZWQtaWNvbi10ZW1wbGF0ZVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hbm5hLXJlamVjdGVkLWljb24tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9hbm5hLXJlamVjdGVkLWljb24tdGVtcGxhdGUuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hUmVqZWN0ZWRJY29uVGVtcGxhdGVDb21wb25lbnQge31cclxuIiwiPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWplY3RlZEljb25cIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVqZWN0ZWRJY29uPlxyXG4gICAgPHN2Z1xyXG4gICAgICAgIHdpZHRoPVwiMTVweFwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTVweFwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGdcclxuICAgICAgICAgICAgaWQ9XCJCdXllci1yZWplY3RlZC1pY29uXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwibm9uZVwiXHJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjFcIlxyXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTUuNzgyMjI2Niw0LjIxNzc3MzQ0IEMxNC4zNjcxODc1LDIuODAyNzYzNjcgMTIuNDk1MTQ2NSwyIDEwLjUsMiBDNi4zNzkxODk0NSwyIDMsNS4zNzI1MzkwNiAzLDkuNSBDMywxMy42Mjk2Mjg5IDYuMzcxMzM3ODksMTcgMTAuNSwxNyBDMTQuNjEwNTI3MywxNyAxOCwxMy42NDI5MDA0IDE4LDkuNSBDMTgsNy41MDQ4NTM1MiAxNy4xOTcyNjU2LDUuNjMyNzgzMiAxNS43ODIyMjY2LDQuMjE3NzczNDQgWiBNMTAuNSwxNS4yMTI4OTA2IEM3LjM0MjIwNzAzLDE1LjIxMjg5MDYgNC43ODcxMDkzOCwxMi42NjQ1MDIgNC43ODcxMDkzOCw5LjUgQzQuNzg3MTA5MzgsOC4yNjk1MDE5NSA1LjE3MzgyODEyLDcuMTAwNTU2NjQgNS44ODU3NDIxOSw2LjEzMzc1OTc3IEwxMy44NjYyNDAyLDE0LjEwNTQzOTUgQzEyLjg5OTM4NDgsMTQuODI2MTcxOSAxMS43MzA0OTgsMTUuMjEyODkwNiAxMC41LDE1LjIxMjg5MDYgWiBNMTUuMTA1NDY4OCwxMi44NjYxODE2IEw3LjEzMzc1OTc3LDQuODg1NzQyMTkgQzguMTAwNjE1MjMsNC4xNzM4MjgxMyA5LjI2OTUwMTk1LDMuNzg3MTA5MzggMTAuNSwzLjc4NzEwOTM4IEMxMy42NTc4ODA5LDMuNzg3MTA5MzggMTYuMjEyODkwNiw2LjMzNTQ5ODA1IDE2LjIxMjg5MDYsOS41IEMxNi4yMTI4OTA2LDEwLjczMDQzOTUgMTUuODI2MTcxOSwxMS44OTkzODQ4IDE1LjEwNTQ2ODgsMTIuODY2MTgxNiBaXCJcclxuICAgICAgICAgICAgICAgIGlkPVwiU2hhcGVcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiM0QTRBNEFcIlxyXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXHJcbiAgICAgICAgICAgID48L3BhdGg+XHJcbiAgICAgICAgPC9nPlxyXG4gICAgPC9zdmc+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from "@angular/core";
|
|
3
|
+
import { AnnaSpinnerLoaderService } from "../../services/anna-spinner-loader.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../services/anna-spinner-loader.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class AnnaSpinnerLoaderComponent {
|
|
8
|
+
constructor(loaderService, cdref) {
|
|
9
|
+
this.loaderService = loaderService;
|
|
10
|
+
this.cdref = cdref;
|
|
11
|
+
this.loading = false;
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.loaderService.loaderState.subscribe((state) => {
|
|
15
|
+
this.loading = state;
|
|
16
|
+
this.cdref.markForCheck();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnaSpinnerLoaderComponent, deps: [{ token: i1.AnnaSpinnerLoaderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AnnaSpinnerLoaderComponent, isStandalone: true, selector: "anna-core-spinner-loader", ngImport: i0, template: "<div\r\n *ngIf=\"loading\"\r\n class=\"loading\"\r\n>\r\n <div class=\"app-spinner-container\">\r\n <div class=\"ngx-foreground-spinner\">\r\n <div class=\"sk-three-strings\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".loading{z-index:99998!important;background-color:#282828cc;cursor:progress;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnnaSpinnerLoaderComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: "anna-core-spinner-loader", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngIf=\"loading\"\r\n class=\"loading\"\r\n>\r\n <div class=\"app-spinner-container\">\r\n <div class=\"ngx-foreground-spinner\">\r\n <div class=\"sk-three-strings\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".loading{z-index:99998!important;background-color:#282828cc;cursor:progress;opacity:1}\n"] }]
|
|
25
|
+
}], ctorParameters: () => [{ type: i1.AnnaSpinnerLoaderService }, { type: i0.ChangeDetectorRef }] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zcGlubmVyLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtc3Bpbm5lci1sb2FkZXIvYW5uYS1zcGlubmVyLWxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb21wb25lbnRzL2FubmEtc3Bpbm5lci1sb2FkZXIvYW5uYS1zcGlubmVyLWxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQVV0RixNQUFNLE9BQU8sMEJBQTBCO0lBR25DLFlBQ1ksYUFBdUMsRUFDdkMsS0FBd0I7UUFEeEIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBSnBDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFLYixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWJRLDBCQUEwQjttR0FBMUIsMEJBQTBCLG9GQ2J2Qyw2V0FjQSxpSkROYyxZQUFZOzs0RkFLYiwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0ksMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IEFubmFTcGlubmVyTG9hZGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hbm5hLXNwaW5uZXItbG9hZGVyLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5uYS1jb3JlLXNwaW5uZXItbG9hZGVyXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FubmEtc3Bpbm5lci1sb2FkZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9hbm5hLXNwaW5uZXItbG9hZGVyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hU3Bpbm5lckxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBBbm5hU3Bpbm5lckxvYWRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICApIHt9XHJcbiAgICBcclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5sb2FkZXJTdGF0ZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHN0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLmNkcmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgICpuZ0lmPVwibG9hZGluZ1wiXHJcbiAgICBjbGFzcz1cImxvYWRpbmdcIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXBwLXNwaW5uZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5neC1mb3JlZ3JvdW5kLXNwaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrLXRocmVlLXN0cmluZ3NcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export class AnnaApplicationConstants {
|
|
2
|
+
static { this.PayForPerformanceEasyFilter = "PoD"; }
|
|
3
|
+
static { this.AnnaOrderEntryEasyFilter = "ANNA ORDER ENTRY"; }
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1hcHBsaWNhdGlvbi5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9jb25zdGFudHMvYW5uYS1hcHBsaWNhdGlvbi5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHdCQUF3QjthQUNqQixnQ0FBMkIsR0FBRyxLQUFLLENBQUM7YUFDcEMsNkJBQXdCLEdBQUcsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQW5uYUFwcGxpY2F0aW9uQ29uc3RhbnRzIHtcclxuICAgIHN0YXRpYyByZWFkb25seSBQYXlGb3JQZXJmb3JtYW5jZUVhc3lGaWx0ZXIgPSBcIlBvRFwiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IEFubmFPcmRlckVudHJ5RWFzeUZpbHRlciA9IFwiQU5OQSBPUkRFUiBFTlRSWVwiO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export class Constants {
|
|
2
|
+
static { this.SUCCESS_STRING = "success"; }
|
|
3
|
+
static { this.BACKEND_SERVER_URL = "/server/public/index.php/api"; }
|
|
4
|
+
static { this.ERROR_MSG = "Error occurred please try again."; }
|
|
5
|
+
static { this.NO_DATA_MSG = "No data to display"; }
|
|
6
|
+
static { this.SERVER_ERROR = "Server error. Please try Again"; }
|
|
7
|
+
static { this.USER_ORIGIN = "ANNA"; }
|
|
8
|
+
static { this.ACTIVE_USER_STATUS = "active"; }
|
|
9
|
+
static { this.DELETED_USER_STATUS = "deleted"; }
|
|
10
|
+
static { this.INACTIVE_USER_STATUS = "inactive"; }
|
|
11
|
+
static { this.OGAdminRole = "Ownership Group Admin"; }
|
|
12
|
+
static { this.ASARole = "Anna Station Admin"; }
|
|
13
|
+
static { this.dollars = "$"; }
|
|
14
|
+
static { this.SERVER_ERROR_MSG = "Something went wrong! Please try again"; }
|
|
15
|
+
}
|
|
16
|
+
export class ErrorCodes {
|
|
17
|
+
static { this.BAD_REQUEST = 400; }
|
|
18
|
+
static { this.SERVER_ERROR = 500; }
|
|
19
|
+
static { this.SUCCESS_CODE = 200; }
|
|
20
|
+
static { this.SUCCESS_CODE_GET = 200; }
|
|
21
|
+
static { this.SUCCESS_CODE_POST = 201; }
|
|
22
|
+
static { this.SUCCESS_CODE_PATCH = 204; }
|
|
23
|
+
static { this.NO_CONTENT = 204; }
|
|
24
|
+
static { this.under_review = 409; }
|
|
25
|
+
static { this.UNAUTHORIZED_ACCESS = 401; }
|
|
26
|
+
}
|
|
27
|
+
export var Days;
|
|
28
|
+
(function (Days) {
|
|
29
|
+
Days[Days["M"] = 1] = "M";
|
|
30
|
+
Days[Days["Tu"] = 2] = "Tu";
|
|
31
|
+
Days[Days["We"] = 3] = "We";
|
|
32
|
+
Days[Days["Th"] = 4] = "Th";
|
|
33
|
+
Days[Days["F"] = 5] = "F";
|
|
34
|
+
Days[Days["Sa"] = 6] = "Sa";
|
|
35
|
+
Days[Days["Su"] = 7] = "Su";
|
|
36
|
+
})(Days || (Days = {}));
|
|
37
|
+
export class OrderSources {
|
|
38
|
+
static { this.Medialine = "Medialine"; }
|
|
39
|
+
static { this.Non_electronic = "Non electronic"; }
|
|
40
|
+
static { this.Others = "Others"; }
|
|
41
|
+
static { this.WOC_unlinked = "WOC Unlinked"; }
|
|
42
|
+
static { this.WOC_linked = "WOC Linked"; }
|
|
43
|
+
static { this.WOZ = "WOZ"; }
|
|
44
|
+
static { this.Darwin = "Darwin"; }
|
|
45
|
+
}
|
|
46
|
+
export class ANNAIconNames {
|
|
47
|
+
static { this.AutomationActivatedIconName = "anna-automation-activated-icon mdi mdi-cog-refresh"; }
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmNvbnN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvY29uc3RhbnRzL3NoYXJlZC5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUzthQUNGLG1CQUFjLEdBQUcsU0FBUyxDQUFDO2FBQzNCLHVCQUFrQixHQUFHLDhCQUE4QixDQUFDO2FBQ3BELGNBQVMsR0FBRyxrQ0FBa0MsQ0FBQzthQUMvQyxnQkFBVyxHQUFHLG9CQUFvQixDQUFDO2FBQ25DLGlCQUFZLEdBQUcsZ0NBQWdDLENBQUM7YUFDaEQsZ0JBQVcsR0FBRyxNQUFNLENBQUM7YUFDckIsdUJBQWtCLEdBQUcsUUFBUSxDQUFDO2FBQzlCLHdCQUFtQixHQUFHLFNBQVMsQ0FBQzthQUNoQyx5QkFBb0IsR0FBRyxVQUFVLENBQUM7YUFDbEMsZ0JBQVcsR0FBRyx1QkFBdUIsQ0FBQzthQUN0QyxZQUFPLEdBQUcsb0JBQW9CLENBQUM7YUFDL0IsWUFBTyxHQUFHLEdBQUcsQ0FBQzthQUNkLHFCQUFnQixHQUFHLHdDQUF3QyxDQUFDOztBQUdoRixNQUFNLE9BQU8sVUFBVTthQUNILGdCQUFXLEdBQUcsR0FBRyxDQUFDO2FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO2FBQ25CLGlCQUFZLEdBQUcsR0FBRyxDQUFDO2FBQ25CLHFCQUFnQixHQUFHLEdBQUcsQ0FBQzthQUN2QixzQkFBaUIsR0FBRyxHQUFHLENBQUM7YUFDeEIsdUJBQWtCLEdBQUcsR0FBRyxDQUFDO2FBQ3pCLGVBQVUsR0FBRyxHQUFHLENBQUM7YUFDakIsaUJBQVksR0FBRyxHQUFHLENBQUM7YUFDbkIsd0JBQW1CLEdBQUcsR0FBRyxDQUFDOztBQUc5QyxNQUFNLENBQU4sSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1oseUJBQUssQ0FBQTtJQUNMLDJCQUFNLENBQUE7SUFDTiwyQkFBTSxDQUFBO0lBQ04sMkJBQU0sQ0FBQTtJQUNOLHlCQUFLLENBQUE7SUFDTCwyQkFBTSxDQUFBO0lBQ04sMkJBQU0sQ0FBQTtBQUNWLENBQUMsRUFSVyxJQUFJLEtBQUosSUFBSSxRQVFmO0FBRUQsTUFBTSxPQUFPLFlBQVk7YUFDTCxjQUFTLEdBQUcsV0FBVyxDQUFDO2FBQ3hCLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUM7YUFDbEMsV0FBTSxHQUFHLFFBQVEsQ0FBQzthQUNsQixpQkFBWSxHQUFHLGNBQWMsQ0FBQzthQUM5QixlQUFVLEdBQUcsWUFBWSxDQUFDO2FBQzFCLFFBQUcsR0FBRyxLQUFLLENBQUM7YUFDWixXQUFNLEdBQUcsUUFBUSxDQUFDOztBQUd0QyxNQUFNLE9BQU8sYUFBYTthQUNOLGdDQUEyQixHQUFHLG9EQUFvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbnN0YW50cyB7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgU1VDQ0VTU19TVFJJTkcgPSBcInN1Y2Nlc3NcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBCQUNLRU5EX1NFUlZFUl9VUkwgPSBcIi9zZXJ2ZXIvcHVibGljL2luZGV4LnBocC9hcGlcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBFUlJPUl9NU0cgPSBcIkVycm9yIG9jY3VycmVkIHBsZWFzZSB0cnkgYWdhaW4uXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTk9fREFUQV9NU0cgPSBcIk5vIGRhdGEgdG8gZGlzcGxheVwiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFNFUlZFUl9FUlJPUiA9IFwiU2VydmVyIGVycm9yLiBQbGVhc2UgdHJ5IEFnYWluXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgVVNFUl9PUklHSU4gPSBcIkFOTkFcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBBQ1RJVkVfVVNFUl9TVEFUVVMgPSBcImFjdGl2ZVwiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IERFTEVURURfVVNFUl9TVEFUVVMgPSBcImRlbGV0ZWRcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBJTkFDVElWRV9VU0VSX1NUQVRVUyA9IFwiaW5hY3RpdmVcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBPR0FkbWluUm9sZSA9IFwiT3duZXJzaGlwIEdyb3VwIEFkbWluXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQVNBUm9sZSA9IFwiQW5uYSBTdGF0aW9uIEFkbWluXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgZG9sbGFycyA9IFwiJFwiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFNFUlZFUl9FUlJPUl9NU0cgPSBcIlNvbWV0aGluZyB3ZW50IHdyb25nISBQbGVhc2UgdHJ5IGFnYWluXCI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFcnJvckNvZGVzIHtcclxuICAgIHN0YXRpYyByZWFkb25seSBCQURfUkVRVUVTVCA9IDQwMDtcclxuICAgIHN0YXRpYyByZWFkb25seSBTRVJWRVJfRVJST1IgPSA1MDA7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgU1VDQ0VTU19DT0RFID0gMjAwO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFNVQ0NFU1NfQ09ERV9HRVQgPSAyMDA7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgU1VDQ0VTU19DT0RFX1BPU1QgPSAyMDE7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgU1VDQ0VTU19DT0RFX1BBVENIID0gMjA0O1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IE5PX0NPTlRFTlQgPSAyMDQ7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgdW5kZXJfcmV2aWV3ID0gNDA5O1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFVOQVVUSE9SSVpFRF9BQ0NFU1MgPSA0MDE7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERheXMge1xyXG4gICAgTSA9IDEsXHJcbiAgICBUdSA9IDIsXHJcbiAgICBXZSA9IDMsXHJcbiAgICBUaCA9IDQsXHJcbiAgICBGID0gNSxcclxuICAgIFNhID0gNixcclxuICAgIFN1ID0gNyxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9yZGVyU291cmNlcyB7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTWVkaWFsaW5lID0gXCJNZWRpYWxpbmVcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBOb25fZWxlY3Ryb25pYyA9IFwiTm9uIGVsZWN0cm9uaWNcIjtcclxuICAgIHN0YXRpYyByZWFkb25seSBPdGhlcnMgPSBcIk90aGVyc1wiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFdPQ191bmxpbmtlZCA9IFwiV09DIFVubGlua2VkXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgV09DX2xpbmtlZCA9IFwiV09DIExpbmtlZFwiO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IFdPWiA9IFwiV09aXCI7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgRGFyd2luID0gXCJEYXJ3aW5cIjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFOTkFJY29uTmFtZXMge1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IEF1dG9tYXRpb25BY3RpdmF0ZWRJY29uTmFtZSA9IFwiYW5uYS1hdXRvbWF0aW9uLWFjdGl2YXRlZC1pY29uIG1kaSBtZGktY29nLXJlZnJlc2hcIjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DigitOnlyDirective {
|
|
4
|
+
constructor(el) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.hasDecimalPoint = false;
|
|
7
|
+
this.hasNegativeSign = false;
|
|
8
|
+
this.navigationKeys = [
|
|
9
|
+
"Backspace",
|
|
10
|
+
"Delete",
|
|
11
|
+
"Tab",
|
|
12
|
+
"Escape",
|
|
13
|
+
"Enter",
|
|
14
|
+
"Home",
|
|
15
|
+
"End",
|
|
16
|
+
"ArrowLeft",
|
|
17
|
+
"ArrowRight",
|
|
18
|
+
"Clear",
|
|
19
|
+
"Copy",
|
|
20
|
+
"Paste",
|
|
21
|
+
];
|
|
22
|
+
this.decimal = false;
|
|
23
|
+
this.decimalSeparator = ".";
|
|
24
|
+
this.allowNegatives = false;
|
|
25
|
+
this.allowPaste = true;
|
|
26
|
+
this.negativeSign = "-";
|
|
27
|
+
this.min = -Infinity;
|
|
28
|
+
this.max = Infinity;
|
|
29
|
+
this.regex = null;
|
|
30
|
+
this.inputElement = el.nativeElement;
|
|
31
|
+
}
|
|
32
|
+
ngOnChanges(changes) {
|
|
33
|
+
if (changes.pattern) {
|
|
34
|
+
this.regex = this.pattern ? RegExp(this.pattern) : null;
|
|
35
|
+
}
|
|
36
|
+
if (changes.min) {
|
|
37
|
+
const maybeMin = Number(this.min);
|
|
38
|
+
this.min = Number.isNaN(maybeMin) ? -Infinity : maybeMin;
|
|
39
|
+
}
|
|
40
|
+
if (changes.max) {
|
|
41
|
+
const maybeMax = Number(this.max);
|
|
42
|
+
this.max = Number.isNaN(maybeMax) ? Infinity : maybeMax;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
onBeforeInput(e) {
|
|
46
|
+
if (Number.isNaN(Number(e.data))) {
|
|
47
|
+
if (e.data === this.decimalSeparator || (e.data === this.negativeSign && this.allowNegatives)) {
|
|
48
|
+
return; // go on
|
|
49
|
+
}
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
e.stopPropagation();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
onKeyDown(e) {
|
|
55
|
+
if (this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.
|
|
56
|
+
((e.key === "a" || e.code === "KeyA") && e.ctrlKey === true) || // Allow: Ctrl+A
|
|
57
|
+
((e.key === "c" || e.code === "KeyC") && e.ctrlKey === true) || // Allow: Ctrl+C
|
|
58
|
+
((e.key === "v" || e.code === "KeyV") && e.ctrlKey === true) || // Allow: Ctrl+V
|
|
59
|
+
((e.key === "x" || e.code === "KeyX") && e.ctrlKey === true) || // Allow: Ctrl+X
|
|
60
|
+
((e.key === "a" || e.code === "KeyA") && e.metaKey === true) || // Allow: Cmd+A (Mac)
|
|
61
|
+
((e.key === "c" || e.code === "KeyC") && e.metaKey === true) || // Allow: Cmd+C (Mac)
|
|
62
|
+
((e.key === "v" || e.code === "KeyV") && e.metaKey === true) || // Allow: Cmd+V (Mac)
|
|
63
|
+
((e.key === "x" || e.code === "KeyX") && e.metaKey === true) // Allow: Cmd+X (Mac)
|
|
64
|
+
) {
|
|
65
|
+
// let it happen, don't do anything
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let newValue = "";
|
|
69
|
+
if (this.decimal && e.key === this.decimalSeparator) {
|
|
70
|
+
newValue = this.forecastValue(e.key);
|
|
71
|
+
const onlyWhitespaceOrEmpty = newValue.trim() === this.decimalSeparator || newValue.trim() === "";
|
|
72
|
+
if (onlyWhitespaceOrEmpty || newValue.startsWith(this.decimalSeparator)) {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (newValue.split(this.decimalSeparator).length > 2) {
|
|
77
|
+
// has two or more decimal points
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;
|
|
82
|
+
return; // Allow: only one decimal point
|
|
83
|
+
}
|
|
84
|
+
if (e.key === this.negativeSign && this.allowNegatives) {
|
|
85
|
+
newValue = this.forecastValue(e.key);
|
|
86
|
+
if (newValue.charAt(0) !== this.negativeSign || newValue.split(this.negativeSign).length > 2) {
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.hasNegativeSign = newValue.split(this.negativeSign).length > -1;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Ensure that it is a number and stop the keypress
|
|
94
|
+
if (e.key === " " || Number.isNaN(Number(e.key))) {
|
|
95
|
+
e.preventDefault();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
newValue = newValue || this.forecastValue(e.key);
|
|
99
|
+
// check the input pattern RegExp
|
|
100
|
+
if (this.regex) {
|
|
101
|
+
if (!this.regex.test(newValue)) {
|
|
102
|
+
e.preventDefault();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const newNumber = Number(newValue);
|
|
107
|
+
if (newNumber > this.max || newNumber < this.min) {
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
onPaste(event) {
|
|
112
|
+
if (this.allowPaste === true) {
|
|
113
|
+
let pastedInput = "";
|
|
114
|
+
if (window.clipboardData) {
|
|
115
|
+
// Browser is IE
|
|
116
|
+
pastedInput = window.clipboardData.getData("text");
|
|
117
|
+
}
|
|
118
|
+
else if (event.clipboardData && event.clipboardData.getData) {
|
|
119
|
+
// Other browsers
|
|
120
|
+
pastedInput = event.clipboardData.getData("text/plain");
|
|
121
|
+
}
|
|
122
|
+
this.pasteData(pastedInput);
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// this prevents the paste
|
|
127
|
+
event.preventDefault();
|
|
128
|
+
event.stopPropagation();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
onDrop(event) {
|
|
132
|
+
const textData = event.dataTransfer?.getData("text") ?? "";
|
|
133
|
+
this.inputElement.focus();
|
|
134
|
+
this.pasteData(textData);
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
}
|
|
137
|
+
pasteData(pastedContent) {
|
|
138
|
+
const sanitizedContent = this.sanitizeInput(pastedContent);
|
|
139
|
+
if (sanitizedContent.includes(this.negativeSign) &&
|
|
140
|
+
this.hasNegativeSign &&
|
|
141
|
+
!this.getSelection().includes(this.negativeSign)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const pasted = document.execCommand("insertText", false, sanitizedContent);
|
|
145
|
+
if (!pasted) {
|
|
146
|
+
if (this.inputElement.setRangeText) {
|
|
147
|
+
const { selectionStart: start, selectionEnd: end } = this.inputElement;
|
|
148
|
+
this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, "end");
|
|
149
|
+
// Angular's Reactive Form relies on "input" event, but on Firefox,
|
|
150
|
+
// the setRangeText method doesn't trigger it
|
|
151
|
+
// so we have to trigger it ourself.
|
|
152
|
+
if (typeof window.InstallTrigger !== "undefined") {
|
|
153
|
+
this.inputElement.dispatchEvent(new Event("input", { cancelable: true }));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// Browser does not support setRangeText, e.g. IE
|
|
158
|
+
this.insertAtCursor(this.inputElement, sanitizedContent);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (this.decimal) {
|
|
162
|
+
this.hasDecimalPoint = this.inputElement.value.indexOf(this.decimalSeparator) > -1;
|
|
163
|
+
}
|
|
164
|
+
this.hasNegativeSign = this.inputElement.value.indexOf(this.negativeSign) > -1;
|
|
165
|
+
}
|
|
166
|
+
// The following 2 methods were added from the below article for browsers that do not support setRangeText
|
|
167
|
+
// https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position
|
|
168
|
+
insertAtCursor(myField, myValue) {
|
|
169
|
+
const startPos = myField.selectionStart ?? 0;
|
|
170
|
+
const endPos = myField.selectionEnd ?? 0;
|
|
171
|
+
myField.value =
|
|
172
|
+
myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
|
|
173
|
+
const pos = startPos + myValue.length;
|
|
174
|
+
myField.focus();
|
|
175
|
+
myField.setSelectionRange(pos, pos);
|
|
176
|
+
this.triggerEvent(myField, "input");
|
|
177
|
+
}
|
|
178
|
+
triggerEvent(el, type) {
|
|
179
|
+
if ("createEvent" in document) {
|
|
180
|
+
// modern browsers, IE9+
|
|
181
|
+
const e = document.createEvent("HTMLEvents");
|
|
182
|
+
e.initEvent(type, false, true);
|
|
183
|
+
el.dispatchEvent(e);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// end stack overflow code
|
|
187
|
+
sanitizeInput(input) {
|
|
188
|
+
let result = "";
|
|
189
|
+
let regex;
|
|
190
|
+
if (this.decimal && this.isValidDecimal(input)) {
|
|
191
|
+
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`, "g");
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9]`, "g");
|
|
195
|
+
}
|
|
196
|
+
result = input.replace(regex, "");
|
|
197
|
+
const { maxLength } = this.inputElement;
|
|
198
|
+
if (maxLength > 0) {
|
|
199
|
+
// the input element has maxLength limit
|
|
200
|
+
const allowedLength = maxLength - this.inputElement.value.length + (result.includes(`${this.negativeSign}`) ? 1 : 0);
|
|
201
|
+
result = allowedLength > 0 ? result.substring(0, allowedLength) : "";
|
|
202
|
+
}
|
|
203
|
+
return result;
|
|
204
|
+
}
|
|
205
|
+
getNegativeSignRegExp() {
|
|
206
|
+
return this.allowNegatives && (!this.hasNegativeSign || this.getSelection().includes(this.negativeSign))
|
|
207
|
+
? `(?!^${this.negativeSign})`
|
|
208
|
+
: "";
|
|
209
|
+
}
|
|
210
|
+
isValidDecimal(string) {
|
|
211
|
+
if (!this.hasDecimalPoint) {
|
|
212
|
+
return string.split(this.decimalSeparator).length <= 2;
|
|
213
|
+
}
|
|
214
|
+
// the input element already has a decimal separator
|
|
215
|
+
const selectedText = this.getSelection();
|
|
216
|
+
if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {
|
|
217
|
+
return string.split(this.decimalSeparator).length <= 2;
|
|
218
|
+
}
|
|
219
|
+
return string.indexOf(this.decimalSeparator) < 0;
|
|
220
|
+
}
|
|
221
|
+
getSelection() {
|
|
222
|
+
return this.inputElement.value.substring(this.inputElement.selectionStart ?? 0, this.inputElement.selectionEnd ?? 0);
|
|
223
|
+
}
|
|
224
|
+
forecastValue(key) {
|
|
225
|
+
const { selectionStart } = this.inputElement;
|
|
226
|
+
const { selectionEnd } = this.inputElement;
|
|
227
|
+
const oldValue = this.inputElement.value;
|
|
228
|
+
if (selectionStart == null && selectionEnd == null) {
|
|
229
|
+
return oldValue + key;
|
|
230
|
+
}
|
|
231
|
+
return oldValue.substring(0, selectionStart) + key + oldValue.substring(selectionEnd);
|
|
232
|
+
}
|
|
233
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DigitOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
234
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DigitOnlyDirective, isStandalone: true, selector: "[annaCoreDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
235
|
+
}
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DigitOnlyDirective, decorators: [{
|
|
237
|
+
type: Directive,
|
|
238
|
+
args: [{
|
|
239
|
+
selector: "[annaCoreDigitOnly]",
|
|
240
|
+
standalone: true,
|
|
241
|
+
}]
|
|
242
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimal: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], decimalSeparator: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], allowNegatives: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], allowPaste: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], negativeSign: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], min: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], max: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], pattern: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], onBeforeInput: [{
|
|
259
|
+
type: HostListener,
|
|
260
|
+
args: ["beforeinput", ["$event"]]
|
|
261
|
+
}], onKeyDown: [{
|
|
262
|
+
type: HostListener,
|
|
263
|
+
args: ["keydown", ["$event"]]
|
|
264
|
+
}], onPaste: [{
|
|
265
|
+
type: HostListener,
|
|
266
|
+
args: ["paste", ["$event"]]
|
|
267
|
+
}], onDrop: [{
|
|
268
|
+
type: HostListener,
|
|
269
|
+
args: ["drop", ["$event"]]
|
|
270
|
+
}] } });
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvZGlyZWN0aXZlcy9kaWdpdHMtb25seS9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7O0FBTXJHLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjNCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBNUJ6QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFHO1lBQ3JCLFdBQVc7WUFDWCxRQUFRO1lBQ1IsS0FBSztZQUNMLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLEtBQUs7WUFDTCxXQUFXO1lBQ1gsWUFBWTtZQUNaLE9BQU87WUFDUCxNQUFNO1lBQ04sT0FBTztTQUNWLENBQUM7UUFFTyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFFBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQixRQUFHLEdBQUcsUUFBUSxDQUFDO1FBRWhCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBSWhDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzdELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1RCxDQUFDO0lBQ0wsQ0FBQztJQUdELGFBQWEsQ0FBQyxDQUFhO1FBQ3ZCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUM1RixPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDO1lBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUdELFNBQVMsQ0FBQyxDQUFnQjtRQUN0QixJQUNJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5REFBeUQ7WUFDcEcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FB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QXNCakMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2FubmFDb3JlRGlnaXRPbmx5XVwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERpZ2l0T25seURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICBwcml2YXRlIGhhc0RlY2ltYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBoYXNOZWdhdGl2ZVNpZ24gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAgICAgXCJCYWNrc3BhY2VcIixcclxuICAgICAgICBcIkRlbGV0ZVwiLFxyXG4gICAgICAgIFwiVGFiXCIsXHJcbiAgICAgICAgXCJFc2NhcGVcIixcclxuICAgICAgICBcIkVudGVyXCIsXHJcbiAgICAgICAgXCJIb21lXCIsXHJcbiAgICAgICAgXCJFbmRcIixcclxuICAgICAgICBcIkFycm93TGVmdFwiLFxyXG4gICAgICAgIFwiQXJyb3dSaWdodFwiLFxyXG4gICAgICAgIFwiQ2xlYXJcIixcclxuICAgICAgICBcIkNvcHlcIixcclxuICAgICAgICBcIlBhc3RlXCIsXHJcbiAgICBdO1xyXG5cclxuICAgIEBJbnB1dCgpIGRlY2ltYWwgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3IgPSBcIi5cIjtcclxuICAgIEBJbnB1dCgpIGFsbG93TmVnYXRpdmVzID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhbGxvd1Bhc3RlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG5lZ2F0aXZlU2lnbiA9IFwiLVwiO1xyXG4gICAgQElucHV0KCkgbWluID0gLUluZmluaXR5O1xyXG4gICAgQElucHV0KCkgbWF4ID0gSW5maW5pdHk7XHJcbiAgICBASW5wdXQoKSBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xyXG4gICAgcHJpdmF0ZSByZWdleDogUmVnRXhwIHwgbnVsbCA9IG51bGw7XHJcbiAgICBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5wYXR0ZXJuKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVnZXggPSB0aGlzLnBhdHRlcm4gPyBSZWdFeHAodGhpcy5wYXR0ZXJuKSA6IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5taW4pIHtcclxuICAgICAgICAgICAgY29uc3QgbWF5YmVNaW4gPSBOdW1iZXIodGhpcy5taW4pO1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IE51bWJlci5pc05hTihtYXliZU1pbikgPyAtSW5maW5pdHkgOiBtYXliZU1pbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLm1heCkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXliZU1heCA9IE51bWJlcih0aGlzLm1heCk7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gTnVtYmVyLmlzTmFOKG1heWJlTWF4KSA/IEluZmluaXR5IDogbWF5YmVNYXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJiZWZvcmVpbnB1dFwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvbkJlZm9yZUlucHV0KGU6IElucHV0RXZlbnQpOiBhbnkge1xyXG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4oTnVtYmVyKGUuZGF0YSkpKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmRhdGEgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvciB8fCAoZS5kYXRhID09PSB0aGlzLm5lZ2F0aXZlU2lnbiAmJiB0aGlzLmFsbG93TmVnYXRpdmVzKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBnbyBvblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiBhbnkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcImFcIiB8fCBlLmNvZGUgPT09IFwiS2V5QVwiKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0FcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJjXCIgfHwgZS5jb2RlID09PSBcIktleUNcIikgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtDXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09IFwidlwiIHx8IGUuY29kZSA9PT0gXCJLZXlWXCIpICYmIGUuY3RybEtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSBcInhcIiB8fCBlLmNvZGUgPT09IFwiS2V5WFwiKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1hcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJhXCIgfHwgZS5jb2RlID09PSBcIktleUFcIikgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJjXCIgfHwgZS5jb2RlID09PSBcIktleUNcIikgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJ2XCIgfHwgZS5jb2RlID09PSBcIktleVZcIikgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gXCJ4XCIgfHwgZS5jb2RlID09PSBcIktleVhcIikgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSAvLyBBbGxvdzogQ21kK1ggKE1hYylcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gXCJcIjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG9ubHlXaGl0ZXNwYWNlT3JFbXB0eSA9IG5ld1ZhbHVlLnRyaW0oKSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yIHx8IG5ld1ZhbHVlLnRyaW0oKSA9PT0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKG9ubHlXaGl0ZXNwYWNlT3JFbXB0eSB8fCBuZXdWYWx1ZS5zdGFydHNXaXRoKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICAgICAgLy8gaGFzIHR3byBvciBtb3JlIGRlY2ltYWwgcG9pbnRzXHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5oYXNEZWNpbWFsUG9pbnQgPSBuZXdWYWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuOyAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGUua2V5ID09PSB0aGlzLm5lZ2F0aXZlU2lnbiAmJiB0aGlzLmFsbG93TmVnYXRpdmVzKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLmNoYXJBdCgwKSAhPT0gdGhpcy5uZWdhdGl2ZVNpZ24gfHwgbmV3VmFsdWUuc3BsaXQodGhpcy5uZWdhdGl2ZVNpZ24pLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhhc05lZ2F0aXZlU2lnbiA9IG5ld1ZhbHVlLnNwbGl0KHRoaXMubmVnYXRpdmVTaWduKS5sZW5ndGggPiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBudW1iZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzXHJcbiAgICAgICAgaWYgKGUua2V5ID09PSBcIiBcIiB8fCBOdW1iZXIuaXNOYU4oTnVtYmVyKGUua2V5KSkpIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlIHx8IHRoaXMuZm9yZWNhc3RWYWx1ZShlLmtleSk7XHJcbiAgICAgICAgLy8gY2hlY2sgdGhlIGlucHV0IHBhdHRlcm4gUmVnRXhwXHJcbiAgICAgICAgaWYgKHRoaXMucmVnZXgpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnJlZ2V4LnRlc3QobmV3VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IE51bWJlcihuZXdWYWx1ZSk7XHJcbiAgICAgICAgaWYgKG5ld051bWJlciA+IHRoaXMubWF4IHx8IG5ld051bWJlciA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcInBhc3RlXCIsIFtcIiRldmVudFwiXSlcclxuICAgIG9uUGFzdGUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFsbG93UGFzdGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgbGV0IHBhc3RlZElucHV0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAoKHdpbmRvdyBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KS5jbGlwYm9hcmREYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGlzIElFXHJcbiAgICAgICAgICAgICAgICBwYXN0ZWRJbnB1dCA9ICh3aW5kb3cgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSkuY2xpcGJvYXJkRGF0YS5nZXREYXRhKFwidGV4dFwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jbGlwYm9hcmREYXRhICYmIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSkge1xyXG4gICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnNcclxuICAgICAgICAgICAgICAgIHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKFwidGV4dC9wbGFpblwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wYXN0ZURhdGEocGFzdGVkSW5wdXQpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMgcHJldmVudHMgdGhlIHBhc3RlXHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiZHJvcFwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKFwidGV4dFwiKSA/PyBcIlwiO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgdGhpcy5wYXN0ZURhdGEodGV4dERhdGEpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IHRoaXMuc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pICYmXHJcbiAgICAgICAgICAgIHRoaXMuaGFzTmVnYXRpdmVTaWduICYmXHJcbiAgICAgICAgICAgICF0aGlzLmdldFNlbGVjdGlvbigpLmluY2x1ZGVzKHRoaXMubmVnYXRpdmVTaWduKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhc3RlZCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiaW5zZXJ0VGV4dFwiLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgXCJlbmRcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBBbmd1bGFyJ3MgUmVhY3RpdmUgRm9ybSByZWxpZXMgb24gXCJpbnB1dFwiIGV2ZW50LCBidXQgb24gRmlyZWZveCxcclxuICAgICAgICAgICAgICAgIC8vIHRoZSBzZXRSYW5nZVRleHQgbWV0aG9kIGRvZXNuJ3QgdHJpZ2dlciBpdFxyXG4gICAgICAgICAgICAgICAgLy8gc28gd2UgaGF2ZSB0byB0cmlnZ2VyIGl0IG91cnNlbGYuXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICh3aW5kb3cgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSkuSW5zdGFsbFRyaWdnZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImlucHV0XCIsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydEF0Q3Vyc29yKHRoaXMuaW5wdXRFbGVtZW50LCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5kZWNpbWFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzRGVjaW1hbFBvaW50ID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGFzTmVnYXRpdmVTaWduID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5kZXhPZih0aGlzLm5lZ2F0aXZlU2lnbikgPiAtMTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGUgZm9sbG93aW5nIDIgbWV0aG9kcyB3ZXJlIGFkZGVkIGZyb20gdGhlIGJlbG93IGFydGljbGUgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0XHJcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTA3Njk3NS9ob3ctdG8taW5zZXJ0LXRleHQtaW50by10aGUtdGV4dGFyZWEtYXQtdGhlLWN1cnJlbnQtY3Vyc29yLXBvc2l0aW9uXHJcbiAgICBwcml2YXRlIGluc2VydEF0Q3Vyc29yKG15RmllbGQ6IEhUTUxJbnB1dEVsZW1lbnQsIG15VmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0UG9zID0gbXlGaWVsZC5zZWxlY3Rpb25TdGFydCA/PyAwO1xyXG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XHJcblxyXG4gICAgICAgIG15RmllbGQudmFsdWUgPVxyXG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgKyBteVZhbHVlICsgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBvcyA9IHN0YXJ0UG9zICsgbXlWYWx1ZS5sZW5ndGg7XHJcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xyXG4gICAgICAgIG15RmllbGQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xyXG5cclxuICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChteUZpZWxkLCBcImlucHV0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdHJpZ2dlckV2ZW50KGVsOiBIVE1MSW5wdXRFbGVtZW50LCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXCJjcmVhdGVFdmVudFwiIGluIGRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIC8vIG1vZGVybiBicm93c2VycywgSUU5K1xyXG4gICAgICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJIVE1MRXZlbnRzXCIpO1xyXG4gICAgICAgICAgICBlLmluaXRFdmVudCh0eXBlLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gZW5kIHN0YWNrIG92ZXJmbG93IGNvZGVcclxuXHJcbiAgICBwcml2YXRlIHNhbml0aXplSW5wdXQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IHJlZ2V4O1xyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgICAgICAgcmVnZXggPSBuZXcgUmVnRXhwKGAke3RoaXMuZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCl9W14wLTkke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1dYCwgXCJnXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlZ2V4ID0gbmV3IFJlZ0V4cChgJHt0aGlzLmdldE5lZ2F0aXZlU2lnblJlZ0V4cCgpfVteMC05XWAsIFwiZ1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgXCJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IHsgbWF4TGVuZ3RoIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGUgaW5wdXQgZWxlbWVudCBoYXMgbWF4TGVuZ3RoIGxpbWl0XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPVxyXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoICsgKHJlc3VsdC5pbmNsdWRlcyhgJHt0aGlzLm5lZ2F0aXZlU2lnbn1gKSA/IDEgOiAwKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gYWxsb3dlZExlbmd0aCA+IDAgPyByZXN1bHQuc3Vic3RyaW5nKDAsIGFsbG93ZWRMZW5ndGgpIDogXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE5lZ2F0aXZlU2lnblJlZ0V4cCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFsbG93TmVnYXRpdmVzICYmICghdGhpcy5oYXNOZWdhdGl2ZVNpZ24gfHwgdGhpcy5nZXRTZWxlY3Rpb24oKS5pbmNsdWRlcyh0aGlzLm5lZ2F0aXZlU2lnbikpXHJcbiAgICAgICAgICAgID8gYCg/IV4ke3RoaXMubmVnYXRpdmVTaWdufSlgXHJcbiAgICAgICAgICAgIDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWREZWNpbWFsKHN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0RlY2ltYWxQb2ludCkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGFscmVhZHkgaGFzIGEgZGVjaW1hbCBzZXBhcmF0b3JcclxuICAgICAgICBjb25zdCBzZWxlY3RlZFRleHQgPSB0aGlzLmdldFNlbGVjdGlvbigpO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZFRleHQgJiYgc2VsZWN0ZWRUZXh0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggPD0gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0cmluZy5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VsZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPz8gMCxcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IDAsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZvcmVjYXN0VmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQgfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uRW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgPT0gbnVsbCAmJiBzZWxlY3Rpb25FbmQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2xkVmFsdWUgKyBrZXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2xkVmFsdWUuc3Vic3RyaW5nKDAsIHNlbGVjdGlvblN0YXJ0KSArIGtleSArIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25FbmQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input, Renderer2 } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class FixedRowsPopupTableDirective {
|
|
4
|
+
constructor(el, renderer) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.renderer = renderer;
|
|
7
|
+
this.popupRowHeight = 37.5;
|
|
8
|
+
this.popupHeaderHeight = 38;
|
|
9
|
+
this.maxRowsRenderedWithoutScrollForPopup = 10;
|
|
10
|
+
}
|
|
11
|
+
onWindowResize() {
|
|
12
|
+
this.setPopUpTableHeight();
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.setPopUpTableHeight();
|
|
16
|
+
}
|
|
17
|
+
setPopUpTableHeight() {
|
|
18
|
+
const viewportHeight = window.innerHeight;
|
|
19
|
+
const maxNoOfRowsToDisplay = viewportHeight < 740 ? 5 : 10;
|
|
20
|
+
this.maxRowsRenderedWithoutScrollForPopup = maxNoOfRowsToDisplay;
|
|
21
|
+
const totalPopupTableHeight = this.maxRowsRenderedWithoutScrollForPopup * this.popupRowHeight + this.popupHeaderHeight;
|
|
22
|
+
const tableHeightForPopup = this.tableDataLength < this.maxRowsRenderedWithoutScrollForPopup
|
|
23
|
+
? this.popupRowHeight * (this.tableDataLength ? this.tableDataLength : 1) + this.popupHeaderHeight
|
|
24
|
+
: totalPopupTableHeight;
|
|
25
|
+
this.renderer.setStyle(this.el.nativeElement, "max-height", `calc(${tableHeightForPopup}px)`);
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FixedRowsPopupTableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FixedRowsPopupTableDirective, isStandalone: true, selector: "[annaCoreFixedRowsInPopupTable]", inputs: { popupRowHeight: "popupRowHeight", popupHeaderHeight: "popupHeaderHeight", tableDataLength: "tableDataLength" }, host: { listeners: { "window:resize": "onWindowResize()" } }, ngImport: i0 }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FixedRowsPopupTableDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: "[annaCoreFixedRowsInPopupTable]",
|
|
34
|
+
standalone: true,
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { popupRowHeight: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], popupHeaderHeight: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], tableDataLength: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], onWindowResize: [{
|
|
43
|
+
type: HostListener,
|
|
44
|
+
args: ["window:resize"]
|
|
45
|
+
}] } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtcm93cy1wb3B1cC10YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9kaXJlY3RpdmVzL2ZpeGVkLXJvd3MtcG9wdXAtdGFibGUvZml4ZWQtcm93cy1wb3B1cC10YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTlGLE1BQU0sT0FBTyw0QkFBNEI7SUFNckMsWUFDWSxFQUFjLEVBQ2QsUUFBbUI7UUFEbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFQdEIsbUJBQWMsR0FBVyxJQUFJLENBQUM7UUFDOUIsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBRXhDLHlDQUFvQyxHQUFXLEVBQUUsQ0FBQztJQUsvQyxDQUFDO0lBR0osY0FBYztRQUNWLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDMUMsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsb0NBQW9DLEdBQUcsb0JBQW9CLENBQUM7UUFDakUsTUFBTSxxQkFBcUIsR0FDdkIsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBRTdGLE1BQU0sbUJBQW1CLEdBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9DQUFvQztZQUM1RCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUI7WUFDbEcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxRQUFRLG1CQUFtQixLQUFLLENBQUMsQ0FBQztJQUNsRyxDQUFDOytHQWpDUSw0QkFBNEI7bUdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUNBQWlDO29CQUMzQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7dUdBRVksY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFTTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYW5uYUNvcmVGaXhlZFJvd3NJblBvcHVwVGFibGVdXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRml4ZWRSb3dzUG9wdXBUYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBwb3B1cFJvd0hlaWdodDogbnVtYmVyID0gMzcuNTtcclxuICAgIEBJbnB1dCgpIHBvcHVwSGVhZGVySGVpZ2h0OiBudW1iZXIgPSAzODtcclxuICAgIEBJbnB1dCgpIHRhYmxlRGF0YUxlbmd0aDogbnVtYmVyO1xyXG4gICAgbWF4Um93c1JlbmRlcmVkV2l0aG91dFNjcm9sbEZvclBvcHVwOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICkge31cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxyXG4gICAgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQb3BVcFRhYmxlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQb3BVcFRhYmxlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UG9wVXBUYWJsZUhlaWdodCgpIHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICBjb25zdCBtYXhOb09mUm93c1RvRGlzcGxheSA9IHZpZXdwb3J0SGVpZ2h0IDwgNzQwID8gNSA6IDEwO1xyXG4gICAgICAgIHRoaXMubWF4Um93c1JlbmRlcmVkV2l0aG91dFNjcm9sbEZvclBvcHVwID0gbWF4Tm9PZlJvd3NUb0Rpc3BsYXk7XHJcbiAgICAgICAgY29uc3QgdG90YWxQb3B1cFRhYmxlSGVpZ2h0ID1cclxuICAgICAgICAgICAgdGhpcy5tYXhSb3dzUmVuZGVyZWRXaXRob3V0U2Nyb2xsRm9yUG9wdXAgKiB0aGlzLnBvcHVwUm93SGVpZ2h0ICsgdGhpcy5wb3B1cEhlYWRlckhlaWdodDtcclxuXHJcbiAgICAgICAgY29uc3QgdGFibGVIZWlnaHRGb3JQb3B1cCA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhTGVuZ3RoIDwgdGhpcy5tYXhSb3dzUmVuZGVyZWRXaXRob3V0U2Nyb2xsRm9yUG9wdXBcclxuICAgICAgICAgICAgICAgID8gdGhpcy5wb3B1cFJvd0hlaWdodCAqICh0aGlzLnRhYmxlRGF0YUxlbmd0aCA/IHRoaXMudGFibGVEYXRhTGVuZ3RoIDogMSkgKyB0aGlzLnBvcHVwSGVhZGVySGVpZ2h0XHJcbiAgICAgICAgICAgICAgICA6IHRvdGFsUG9wdXBUYWJsZUhlaWdodDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIFwibWF4LWhlaWdodFwiLCBgY2FsYygke3RhYmxlSGVpZ2h0Rm9yUG9wdXB9cHgpYCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ShowEllipsisTextOnHoverDirective {
|
|
4
|
+
constructor(elementRef) {
|
|
5
|
+
this.elementRef = elementRef;
|
|
6
|
+
}
|
|
7
|
+
onMouseEnter() {
|
|
8
|
+
const domElement = this.elementRef.nativeElement;
|
|
9
|
+
if (domElement.offsetWidth < domElement.scrollWidth || this.checkPositionsInDecimals(domElement)) {
|
|
10
|
+
domElement.title = domElement.textContent === "" ? domElement.value : domElement.textContent;
|
|
11
|
+
}
|
|
12
|
+
else if (domElement.title)
|
|
13
|
+
domElement.removeAttribute("title");
|
|
14
|
+
}
|
|
15
|
+
checkPositionsInDecimals(domElement) {
|
|
16
|
+
// if we don't have any children element Then we can't calculate
|
|
17
|
+
// and compare anything so we are returning false from here
|
|
18
|
+
if (!domElement.children || (domElement.children && domElement.children.length === 0))
|
|
19
|
+
return false;
|
|
20
|
+
const elementRect = domElement.getBoundingClientRect();
|
|
21
|
+
const childRect = domElement.children[0].getBoundingClientRect();
|
|
22
|
+
const paddingOnRight = window.getComputedStyle(domElement).paddingRight;
|
|
23
|
+
const padding = +(paddingOnRight.endsWith("px") ? paddingOnRight.slice(0, -2) : paddingOnRight);
|
|
24
|
+
// If overflow happens then Child element's right side position
|
|
25
|
+
// will be greater than container element's right side position.
|
|
26
|
+
return childRect.right + padding > elementRect.right;
|
|
27
|
+
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowEllipsisTextOnHoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ShowEllipsisTextOnHoverDirective, isStandalone: true, selector: "[annaCoreShowEllipsisTextOnHover]", host: { listeners: { "mouseenter": "onMouseEnter()" } }, ngImport: i0 }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowEllipsisTextOnHoverDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: "[annaCoreShowEllipsisTextOnHover]",
|
|
35
|
+
standalone: true,
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onMouseEnter: [{
|
|
38
|
+
type: HostListener,
|
|
39
|
+
args: ["mouseenter"]
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1lbGxpcHNpcy10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS1zaGFyZWQtbGliL2RpcmVjdGl2ZXMvc2hvdy1lbGxpcHNpcy10ZXh0L3Nob3ctZWxsaXBzaXMtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1wRSxNQUFNLE9BQU8sZ0NBQWdDO0lBQ3pDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRzlDLFlBQVk7UUFDUixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNqRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMvRixVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ2pHLENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLO1lBQUUsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBbUI7UUFDeEMsZ0VBQWdFO1FBQ2hFLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFcEcsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRWpFLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhHLCtEQUErRDtRQUMvRCxnRUFBZ0U7UUFDaEUsT0FBTyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ3pELENBQUM7K0dBekJRLGdDQUFnQzttR0FBaEMsZ0NBQWdDOzs0RkFBaEMsZ0NBQWdDO2tCQUo1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFLRyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2FubmFDb3JlU2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJdXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hvd0VsbGlwc2lzVGV4dE9uSG92ZXJEaXJlY3RpdmUge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIpXHJcbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGlmIChkb21FbGVtZW50Lm9mZnNldFdpZHRoIDwgZG9tRWxlbWVudC5zY3JvbGxXaWR0aCB8fCB0aGlzLmNoZWNrUG9zaXRpb25zSW5EZWNpbWFscyhkb21FbGVtZW50KSkge1xyXG4gICAgICAgICAgICBkb21FbGVtZW50LnRpdGxlID0gZG9tRWxlbWVudC50ZXh0Q29udGVudCA9PT0gXCJcIiA/IGRvbUVsZW1lbnQudmFsdWUgOiBkb21FbGVtZW50LnRleHRDb250ZW50O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZG9tRWxlbWVudC50aXRsZSkgZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJ0aXRsZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1Bvc2l0aW9uc0luRGVjaW1hbHMoZG9tRWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIGlmIHdlIGRvbid0IGhhdmUgYW55IGNoaWxkcmVuIGVsZW1lbnQgVGhlbiB3ZSBjYW4ndCBjYWxjdWxhdGVcclxuICAgICAgICAvLyBhbmQgY29tcGFyZSBhbnl0aGluZyBzbyB3ZSBhcmUgcmV0dXJuaW5nIGZhbHNlIGZyb20gaGVyZVxyXG4gICAgICAgIGlmICghZG9tRWxlbWVudC5jaGlsZHJlbiB8fCAoZG9tRWxlbWVudC5jaGlsZHJlbiAmJiBkb21FbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3QgPSBkb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IGNoaWxkUmVjdCA9IGRvbUVsZW1lbnQuY2hpbGRyZW5bMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhZGRpbmdPblJpZ2h0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9tRWxlbWVudCkucGFkZGluZ1JpZ2h0O1xyXG4gICAgICAgIGNvbnN0IHBhZGRpbmcgPSArKHBhZGRpbmdPblJpZ2h0LmVuZHNXaXRoKFwicHhcIikgPyBwYWRkaW5nT25SaWdodC5zbGljZSgwLCAtMikgOiBwYWRkaW5nT25SaWdodCk7XHJcblxyXG4gICAgICAgIC8vIElmIG92ZXJmbG93IGhhcHBlbnMgdGhlbiBDaGlsZCBlbGVtZW50J3MgcmlnaHQgc2lkZSBwb3NpdGlvblxyXG4gICAgICAgIC8vIHdpbGwgYmUgZ3JlYXRlciB0aGFuIGNvbnRhaW5lciBlbGVtZW50J3MgcmlnaHQgc2lkZSBwb3NpdGlvbi5cclxuICAgICAgICByZXR1cm4gY2hpbGRSZWN0LnJpZ2h0ICsgcGFkZGluZyA+IGVsZW1lbnRSZWN0LnJpZ2h0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nZW5lcmljLWRhdGEtdHlwZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29yZS9zcmMvbGliL2FubmEtY29yZS1zaGFyZWQtbGliL21vZGVscy9hbm5hLWdlbmVyaWMtZGF0YS10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFdlZWtPYmplY3Qge1xyXG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBlbmREYXRlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsbGVyR3JvdXBIaWVyYXJjaHkge1xyXG4gICAgaW52ZW50b3J5Q29kZTogc3RyaW5nO1xyXG4gICAgcHJvZ3JhbTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhdGluZ1NlbGxlckdyb3VwSGllcmFyY2h5IHtcclxuICAgIEludmVudG9yeUNvZGU6IHN0cmluZztcclxuICAgIFByb2dyYW06IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEd0Q29sdW1uSWNvbkVtaXR0ZWREYXRhIHtcclxuICAgIGRhdGE6IGFueTtcclxuICAgIGtleTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1nbG9iYWwtZHJvcGRvd24tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb3JlL3NyYy9saWIvYW5uYS1jb3JlLXNoYXJlZC1saWIvbW9kZWxzL2FubmEtZ2xvYmFsLWRyb3Bkb3duLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUmFkaW9CdXR0b24ge1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgY2xhc3M6IHN0cmluZztcclxuICAgIHRvb2x0aXA/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFuZ3VsYXIyTXVsdGlTZWxlY3RTZXR0aW5ncyB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBzZWxlY3RBbGxUZXh0OiBzdHJpbmc7XHJcbiAgICB1blNlbGVjdEFsbFRleHQ6IHN0cmluZztcclxuICAgIGJhZGdlU2hvd0xpbWl0OiBudW1iZXI7XHJcbiAgICBzaW5nbGVTZWxlY3Rpb246IGJvb2xlYW47XHJcbiAgICBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgICBlbmFibGVTZWFyY2hGaWx0ZXI6IGJvb2xlYW47XHJcbiAgICBlbmFibGVDaGVja0FsbDogYm9vbGVhbjtcclxuICAgIGF1dG9Qb3NpdGlvbjogYm9vbGVhbjtcclxuICAgIHBvc2l0aW9uOiBzdHJpbmc7XHJcbiAgICBsYXp5TG9hZGluZzogYm9vbGVhbjtcclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG4gICAgc2hvd0NoZWNrYm94OiBib29sZWFuO1xyXG4gICAgZW5hYmxlRmlsdGVyU2VsZWN0QWxsOiBib29sZWFuO1xyXG4gICAgbWF4SGVpZ2h0OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5neEFzaWRlU2V0dGluZ3Mge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGNhbmNlbEJ1dHRvblRpdGxlOiBzdHJpbmc7XHJcbiAgICBzdWJtaXRCdXR0b25UaXRsZTogc3RyaW5nO1xyXG4gICAgY2xvc2VPbkVzY2FwZTogYm9vbGVhbjtcclxuICAgIHNob3dPdmVybGF5OiBib29sZWFuO1xyXG4gICAgc2hvd0RlZmF1bHRGb290ZXI6IGJvb2xlYW47XHJcbiAgICBzaG93RGVmYXVsdEhlYWRlcjogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTmdiRGF0ZVBpY2tlclNldHRpbmdzIHtcclxuICAgIGF1dG9DbG9zZTogYm9vbGVhbjtcclxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5TW9udGhzOiBudW1iZXI7XHJcbiAgICBmaXJzdERheU9mV2VlazogbnVtYmVyO1xyXG4gICAgc2hvd1dlZWtOdW1iZXJzOiBib29sZWFuO1xyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5nU2VsZWN0U2V0dGluZ3Mge1xyXG4gICAgYWxsb3dDbGVhcjogYm9vbGVhbjtcclxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5neEluZmluaXRlU2Nyb2xsU2V0dGluZ3Mge1xyXG4gICAgaW5maW5pdGVTY3JvbGxEaXN0YW5jZTogbnVtYmVyO1xyXG4gICAgaW5maW5pdGVTY3JvbGxVcERpc3RhbmNlOiBudW1iZXI7XHJcbiAgICBpbmZpbml0ZVNjcm9sbFRocm90dGxlOiBudW1iZXI7XHJcbiAgICBzY3JvbGxXaW5kb3c6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5neFNrZWxldG9uTG9hZGVyU2V0dGluZ3Mge1xyXG4gICAgbnVtYmVyT2ZTa2VsZXRvblJvd3M6IG51bWJlcltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSYWRpb0J1dHRvbkNvbXBvbmVudENvbmZpZyB7XHJcbiAgICBoZWFkaW5nPzogc3RyaW5nO1xyXG4gICAgcmFkaW9CdXR0b25zOiBJUmFkaW9CdXR0b25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlybWF0aW9uUG9wdXBDb25maWcge1xyXG4gICAgc2hvd0NhbmNlbEJ1dHRvbjogYm9vbGVhbjtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBzdWJUaXRsZT86IHN0cmluZztcclxuICAgIHNob3dDb25maXJtQnV0dG9uOiBib29sZWFuO1xyXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw6IHN0cmluZztcclxuICAgIGNvbmZpcm1CdXR0b25MYWJlbDogc3RyaW5nO1xyXG4gICAgc2hvd0Nsb3NlSWNvbjogYm9vbGVhbjtcclxuICAgIHdpbmRvd0NsYXNzOiBzdHJpbmc7XHJcbiAgICBiYWNrZHJvcDogXCJzdGF0aWNcIiB8IGJvb2xlYW47XHJcbiAgICBzaXplOiBcInNtXCIgfCBcImxnXCI7XHJcbiAgICBrZXlib2FyZDogYm9vbGVhbjtcclxuICAgIGNlbnRlcmVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJV2Vla0NhbGVuZGFyIHtcclxuICAgIGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xyXG4gICAgbnVtYmVyT2ZNb250aHNUb0VuYWJsZUluUGFzdDogbnVtYmVyO1xyXG4gICAgc2VsZWN0TXVsdGlwbGVXZWVrczogYm9vbGVhbjtcclxuICAgIHNob3dXZWVrTnVtYmVycz86IGJvb2xlYW47XHJcbiAgICBkYXRlRm9ybWF0VG9EaXNwbGF5Pzogc3RyaW5nO1xyXG4gICAgbWF4V2Vla3NUb1Nob3dXaXRoUmVtYWluaW5nQ291bnQ/OiBudW1iZXI7XHJcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICAgIGVtaXRNdWx0aXBsZVdlZWtPYmplY3RzPzogYm9vbGVhbjtcclxuICAgIGVtaXRJbml0aWFsU2VsZWN0aW9uPzogYm9vbGVhbjtcclxuICAgIGRhdGVGb3JtYXRGb3JSZXF1ZXN0Pzogc3RyaW5nO1xyXG4gICAgbWF4V2Vla3NUb1NlbGVjdD86IG51bWJlcjtcclxuICAgIHNob3dBc0Ryb3Bkb3duOiBib29sZWFuO1xyXG4gICAgc2VsZWN0Q3VycmVudFdlZWs6IGJvb2xlYW47XHJcbiAgICBpc0NvbnRhaW5lckJvZHk/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDdXN0b21TaW5nbGVTZWxlY3Qge1xyXG4gICAgc2hvd1NlYXJjaEJhcjogYm9vbGVhbjtcclxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgICBwb3NpdGlvbjogUG9zaXRpb247XHJcbiAgICBtYXhIZWlnaHRPZkxpc3Q6IG51bWJlcjsgLy8gcHggdmFsdWVcclxuICAgIG1pbkhlaWdodE9mTGlzdD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ3VzdG9tTXVsdGlTZWxlY3QgZXh0ZW5kcyBJQ3VzdG9tU2luZ2xlU2VsZWN0IHtcclxuICAgIHNob3dFcnJvcldoZW5Ob09wdGlvblNlbGVjdGVkOiBib29sZWFuO1xyXG59XHJcblxyXG50eXBlIFBvc2l0aW9uID0gXCJUT1BcIiB8IFwiQk9UVE9NXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class LicensingPlan {
|
|
2
|
+
constructor(data) {
|
|
3
|
+
this.Id = data.Id;
|
|
4
|
+
this.PlanId = data.PlanId;
|
|
5
|
+
this.PlanName = data.PlanName;
|
|
6
|
+
this.PlanStartDate = data.PlanStartDate;
|
|
7
|
+
this.PlanEndDate = data.PlanEndDate;
|
|
8
|
+
this.PlanExpiryDays = data.DaysRemaining;
|
|
9
|
+
this.FeatureDetails = data.FeatureDetails.map((feature) => new FeatureDetails(feature));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class FeatureDetails {
|
|
13
|
+
constructor(data) {
|
|
14
|
+
this.FeatureId = data.FeatureId;
|
|
15
|
+
this.FeatureName = data.FeatureName;
|
|
16
|
+
this.FeatureDescription = data.FeatureDescription;
|
|
17
|
+
this.IsEnabled = data.IsEnabled;
|
|
18
|
+
this.Specification = data.Specification.map((spec) => ({
|
|
19
|
+
Json: JSON.parse(spec.Json),
|
|
20
|
+
JsonCloned: JSON.parse(spec.Json),
|
|
21
|
+
JsonType: spec.JsonType,
|
|
22
|
+
IsCustomized: spec.IsCustomized,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1saWNlbnNpbmctdGFibGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9tb2RlbHMvYW5uYS1saWNlbnNpbmctdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUFRdEIsWUFBWSxJQUFTO1FBQ2pCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBWSxJQUFTO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMaWNlbnNpbmdQbGFuIHtcclxuICAgIElkOiBudW1iZXI7XHJcbiAgICBQbGFuSWQ6IG51bWJlcjtcclxuICAgIFBsYW5OYW1lOiBzdHJpbmc7XHJcbiAgICBQbGFuU3RhcnREYXRlPzogc3RyaW5nO1xyXG4gICAgUGxhbkVuZERhdGU/OiBzdHJpbmc7XHJcbiAgICBQbGFuRXhwaXJ5RGF5cz86IG51bWJlcjtcclxuICAgIEZlYXR1cmVEZXRhaWxzOiBGZWF0dXJlRGV0YWlsc1tdO1xyXG4gICAgY29uc3RydWN0b3IoZGF0YTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5JZCA9IGRhdGEuSWQ7XHJcbiAgICAgICAgdGhpcy5QbGFuSWQgPSBkYXRhLlBsYW5JZDtcclxuICAgICAgICB0aGlzLlBsYW5OYW1lID0gZGF0YS5QbGFuTmFtZTtcclxuICAgICAgICB0aGlzLlBsYW5TdGFydERhdGUgPSBkYXRhLlBsYW5TdGFydERhdGU7XHJcbiAgICAgICAgdGhpcy5QbGFuRW5kRGF0ZSA9IGRhdGEuUGxhbkVuZERhdGU7XHJcbiAgICAgICAgdGhpcy5QbGFuRXhwaXJ5RGF5cyA9IGRhdGEuRGF5c1JlbWFpbmluZztcclxuICAgICAgICB0aGlzLkZlYXR1cmVEZXRhaWxzID0gZGF0YS5GZWF0dXJlRGV0YWlscy5tYXAoKGZlYXR1cmU6IGFueSkgPT4gbmV3IEZlYXR1cmVEZXRhaWxzKGZlYXR1cmUpKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVEZXRhaWxzIHtcclxuICAgIEZlYXR1cmVJZDogbnVtYmVyO1xyXG4gICAgRmVhdHVyZU5hbWU6IHN0cmluZztcclxuICAgIEZlYXR1cmVEZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgSXNFbmFibGVkOiBib29sZWFuO1xyXG4gICAgU3BlY2lmaWNhdGlvbjogYW55W107XHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLkZlYXR1cmVJZCA9IGRhdGEuRmVhdHVyZUlkO1xyXG4gICAgICAgIHRoaXMuRmVhdHVyZU5hbWUgPSBkYXRhLkZlYXR1cmVOYW1lO1xyXG4gICAgICAgIHRoaXMuRmVhdHVyZURlc2NyaXB0aW9uID0gZGF0YS5GZWF0dXJlRGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5Jc0VuYWJsZWQgPSBkYXRhLklzRW5hYmxlZDtcclxuICAgICAgICB0aGlzLlNwZWNpZmljYXRpb24gPSBkYXRhLlNwZWNpZmljYXRpb24ubWFwKChzcGVjOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgIEpzb246IEpTT04ucGFyc2Uoc3BlYy5Kc29uKSxcclxuICAgICAgICAgICAgSnNvbkNsb25lZDogSlNPTi5wYXJzZShzcGVjLkpzb24pLFxyXG4gICAgICAgICAgICBKc29uVHlwZTogc3BlYy5Kc29uVHlwZSxcclxuICAgICAgICAgICAgSXNDdXN0b21pemVkOiBzcGVjLklzQ3VzdG9taXplZCxcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|