@jooler/inputs 0.0.50 → 0.0.51
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/{esm2020 → esm2022}/inputs.mjs +4 -4
- package/esm2022/lib/add-asterisk.directive.mjs +42 -0
- package/esm2022/lib/choose-enum/choose-enum.component.mjs +190 -0
- package/esm2022/lib/choose-enum-renderer/choose-enum-renderer.component.mjs +31 -0
- package/esm2022/lib/choose-general-item/choose-general-item.component.mjs +149 -0
- package/esm2022/lib/choose-general-item/choose-general-item.service.mjs +45 -0
- package/esm2022/lib/choose-general-item-renderer/choose-general-item-renderer.component.mjs +37 -0
- package/esm2022/lib/choose-line-type/choose-line-type.component.mjs +53 -0
- package/esm2022/lib/choose-yes-or-no/choose-yes-or-no.component.mjs +69 -0
- package/esm2022/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.mjs +33 -0
- package/esm2022/lib/custom-theme.mjs +104 -0
- package/{esm2020 → esm2022}/lib/dropdown-actions/dropdown-action-type.model.mjs +5 -5
- package/esm2022/lib/dropdown-actions/dropdown-actions.component.mjs +75 -0
- package/{esm2020 → esm2022}/lib/dropdown-actions/label-and-route.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/editable-savable-input/dynamicPipe.mjs +20 -20
- package/{esm2020 → esm2022}/lib/editable-savable-input/dynamicPipeMapping.mjs +4 -4
- package/esm2022/lib/editable-savable-input/editable-savable-input.component.mjs +128 -0
- package/esm2022/lib/formcontrol-validation-msg.directive.mjs +150 -0
- package/esm2022/lib/general-input-renderer/custom-decimal-point-two-digits.directive.mjs +63 -0
- package/esm2022/lib/general-input-renderer/general-input-renderer.component.mjs +50 -0
- package/{esm2020 → esm2022}/lib/inputs.module.mjs +122 -122
- package/{esm2020 → esm2022}/lib/models/enum-helper-functions.mjs +56 -56
- package/{esm2020 → esm2022}/lib/models/enum-helper.model.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/label-and-field.model.mjs +5 -3
- package/esm2022/lib/models/line-type-model-helper.mjs +51 -0
- package/{esm2020 → esm2022}/lib/models/line-type.model.mjs +5 -5
- package/esm2022/lib/models/yes-or-no.model.mjs +6 -0
- package/esm2022/lib/primary-colors.mjs +12 -0
- package/esm2022/lib/services/validation-message.service.mjs +111 -0
- package/esm2022/lib/show-table-errors/show-table-errors.component.mjs +25 -0
- package/{esm2020 → esm2022}/public-api.mjs +23 -23
- package/{fesm2020 → fesm2022}/inputs.mjs +1481 -1397
- package/fesm2022/inputs.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/add-asterisk.directive.d.ts +12 -12
- package/lib/choose-enum/choose-enum.component.d.ts +52 -51
- package/lib/choose-enum-renderer/choose-enum-renderer.component.d.ts +15 -15
- package/lib/choose-general-item/choose-general-item.component.d.ts +49 -49
- package/lib/choose-general-item/choose-general-item.service.d.ts +18 -18
- package/lib/choose-general-item-renderer/choose-general-item-renderer.component.d.ts +15 -15
- package/lib/choose-line-type/choose-line-type.component.d.ts +19 -19
- package/lib/choose-yes-or-no/choose-yes-or-no.component.d.ts +24 -24
- package/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.d.ts +16 -16
- package/lib/custom-theme.d.ts +8 -8
- package/lib/dropdown-actions/dropdown-action-type.model.d.ts +4 -4
- package/lib/dropdown-actions/dropdown-actions.component.d.ts +22 -22
- package/lib/dropdown-actions/label-and-route.model.d.ts +4 -4
- package/lib/editable-savable-input/dynamicPipe.d.ts +7 -7
- package/lib/editable-savable-input/dynamicPipeMapping.d.ts +5 -5
- package/lib/editable-savable-input/editable-savable-input.component.d.ts +37 -37
- package/lib/formcontrol-validation-msg.directive.d.ts +25 -25
- package/lib/general-input-renderer/custom-decimal-point-two-digits.directive.d.ts +13 -13
- package/lib/general-input-renderer/general-input-renderer.component.d.ts +15 -15
- package/lib/inputs.module.d.ts +29 -29
- package/lib/models/enum-helper-functions.d.ts +5 -5
- package/lib/models/enum-helper.model.d.ts +6 -6
- package/lib/models/label-and-field.model.d.ts +4 -4
- package/lib/models/line-type-model-helper.d.ts +12 -12
- package/lib/models/line-type.model.d.ts +4 -4
- package/lib/models/yes-or-no.model.d.ts +5 -5
- package/lib/primary-colors.d.ts +11 -11
- package/lib/services/validation-message.service.d.ts +50 -50
- package/lib/show-table-errors/show-table-errors.component.d.ts +11 -11
- package/package.json +10 -16
- package/public-api.d.ts +20 -20
- package/esm2020/lib/add-asterisk.directive.mjs +0 -41
- package/esm2020/lib/choose-enum/choose-enum.component.mjs +0 -176
- package/esm2020/lib/choose-enum-renderer/choose-enum-renderer.component.mjs +0 -26
- package/esm2020/lib/choose-general-item/choose-general-item.component.mjs +0 -133
- package/esm2020/lib/choose-general-item/choose-general-item.service.mjs +0 -43
- package/esm2020/lib/choose-general-item-renderer/choose-general-item-renderer.component.mjs +0 -32
- package/esm2020/lib/choose-line-type/choose-line-type.component.mjs +0 -52
- package/esm2020/lib/choose-yes-or-no/choose-yes-or-no.component.mjs +0 -69
- package/esm2020/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.mjs +0 -27
- package/esm2020/lib/custom-theme.mjs +0 -104
- package/esm2020/lib/dropdown-actions/dropdown-actions.component.mjs +0 -72
- package/esm2020/lib/editable-savable-input/editable-savable-input.component.mjs +0 -123
- package/esm2020/lib/formcontrol-validation-msg.directive.mjs +0 -144
- package/esm2020/lib/general-input-renderer/custom-decimal-point-two-digits.directive.mjs +0 -61
- package/esm2020/lib/general-input-renderer/general-input-renderer.component.mjs +0 -45
- package/esm2020/lib/models/line-type-model-helper.mjs +0 -47
- package/esm2020/lib/models/yes-or-no.model.mjs +0 -3
- package/esm2020/lib/primary-colors.mjs +0 -12
- package/esm2020/lib/services/validation-message.service.mjs +0 -106
- package/esm2020/lib/show-table-errors/show-table-errors.component.mjs +0 -23
- package/fesm2015/inputs.mjs +0 -1475
- package/fesm2015/inputs.mjs.map +0 -1
- package/fesm2020/inputs.mjs.map +0 -1
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { DropdownActionType } from './dropdown-action-type.model';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/material/menu";
|
|
7
|
-
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
8
|
-
export class DropdownActionsComponent {
|
|
9
|
-
constructor(_Router) {
|
|
10
|
-
this._Router = _Router;
|
|
11
|
-
this.dropdownActionTypes = DropdownActionType;
|
|
12
|
-
this.canRoute = true;
|
|
13
|
-
this.labelsAndRoutes = [];
|
|
14
|
-
this.dropdownActionType = this.dropdownActionTypes.ADD;
|
|
15
|
-
this.addClicked = new EventEmitter();
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.validateActions();
|
|
19
|
-
}
|
|
20
|
-
validateActions() {
|
|
21
|
-
if (this.dropdownActionType == this.dropdownActionTypes.ADD) {
|
|
22
|
-
if (this.canRoute) {
|
|
23
|
-
if (this.route == "" || this.route == undefined || this.route == null) {
|
|
24
|
-
throw Error("Route needs to be provided.");
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
if (this.route) {
|
|
29
|
-
throw Error("Route shouldn't be provided since canRoute is false");
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (this.dropdownActionType == this.dropdownActionTypes.MENU) {
|
|
34
|
-
if (!this.labelsAndRoutes.length) {
|
|
35
|
-
throw Error("A list of labels & Routes need to be provided for the actions menu.");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
throw Error("Dropdown Action Type is not recognized.");
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
onClickAdd($event) {
|
|
43
|
-
$event.preventDefault();
|
|
44
|
-
if (this.canRoute && this.route) {
|
|
45
|
-
this._Router.navigate([this.route]);
|
|
46
|
-
}
|
|
47
|
-
this.addClicked.emit();
|
|
48
|
-
}
|
|
49
|
-
onClickLabel(route, $event) {
|
|
50
|
-
$event.preventDefault();
|
|
51
|
-
this._Router.navigate([route]);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
DropdownActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownActionsComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
DropdownActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DropdownActionsComponent, selector: "dropdown-actions", inputs: { canRoute: "canRoute", disabled: "disabled", labelsAndRoutes: "labelsAndRoutes", route: "route", dropdownActionType: "dropdownActionType" }, outputs: { addClicked: "addClicked" }, ngImport: i0, template: "<div [ngSwitch]=\"dropdownActionType\">\r\n <a *ngSwitchCase=\"dropdownActionTypes.ADD\" [href]=\"route\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n (click)=\"onClickAdd($event)\">\r\n <fa-icon icon=\"plus\"></fa-icon>\r\n </a>\r\n <fa-icon *ngSwitchCase=\"dropdownActionTypes.MENU\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n class=\"menu\" [matMenuTriggerFor]=\"menu\"\r\n icon=\"ellipsis-vertical\"></fa-icon>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let labelAndRoute of labelsAndRoutes\" mat-menu-item>\r\n <a [href]=\"labelAndRoute.route\"\r\n (click)=\"onClickLabel(labelAndRoute.route, $event)\">{{labelAndRoute.label}}</a>\r\n </button>\r\n </mat-menu>\r\n</div>", styles: [".action-enabled{cursor:pointer;color:#155ed4}.action-enabled:hover{color:#3178eb}.disabled{color:#676767;cursor:initial;pointer-events:none}.menu{font-size:1.8rem;display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DropdownActionsComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{ selector: 'dropdown-actions', template: "<div [ngSwitch]=\"dropdownActionType\">\r\n <a *ngSwitchCase=\"dropdownActionTypes.ADD\" [href]=\"route\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n (click)=\"onClickAdd($event)\">\r\n <fa-icon icon=\"plus\"></fa-icon>\r\n </a>\r\n <fa-icon *ngSwitchCase=\"dropdownActionTypes.MENU\"\r\n [ngClass]=\"{'action-enabled':!disabled, 'disabled': disabled}\"\r\n class=\"menu\" [matMenuTriggerFor]=\"menu\"\r\n icon=\"ellipsis-vertical\"></fa-icon>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let labelAndRoute of labelsAndRoutes\" mat-menu-item>\r\n <a [href]=\"labelAndRoute.route\"\r\n (click)=\"onClickLabel(labelAndRoute.route, $event)\">{{labelAndRoute.label}}</a>\r\n </button>\r\n </mat-menu>\r\n</div>", styles: [".action-enabled{cursor:pointer;color:#155ed4}.action-enabled:hover{color:#3178eb}.disabled{color:#676767;cursor:initial;pointer-events:none}.menu{font-size:1.8rem;display:flex;align-items:center}\n"] }]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { canRoute: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], disabled: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], labelsAndRoutes: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], route: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], dropdownActionType: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], addClicked: [{
|
|
70
|
-
type: Output
|
|
71
|
-
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9kcm9wZG93bi1hY3Rpb25zL2Ryb3Bkb3duLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZHJvcGRvd24tYWN0aW9ucy9kcm9wZG93bi1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQU9sRSxNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQW9CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBUm5DLHdCQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQ2hDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsb0JBQWUsR0FBb0IsRUFBRSxDQUFDO1FBRXRDLHVCQUFrQixHQUF1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDO1FBQ3JFLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRUgsQ0FBQztJQUV4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUMzRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ3JFLE1BQU0sS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7aUJBQzVDO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNkLE1BQU0sS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7aUJBQ3BFO2FBQ0Y7U0FDRjthQUNJLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO2dCQUNoQyxNQUFNLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7YUFDSTtZQUNILE1BQU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQU07UUFDZixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUN4QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O3FIQWpEVSx3QkFBd0I7eUdBQXhCLHdCQUF3QixxUENWckMsMjBCQWdCTTsyRkROTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usa0JBQWtCOzZGQU1uQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExhYmVsQW5kUm91dGUgfSBmcm9tICcuL2xhYmVsLWFuZC1yb3V0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQWN0aW9uVHlwZSB9IGZyb20gJy4vZHJvcGRvd24tYWN0aW9uLXR5cGUubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkcm9wZG93bi1hY3Rpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tYWN0aW9ucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkFjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRyb3Bkb3duQWN0aW9uVHlwZXMgPSBEcm9wZG93bkFjdGlvblR5cGU7XHJcbiAgQElucHV0KCkgY2FuUm91dGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGxhYmVsc0FuZFJvdXRlczogTGFiZWxBbmRSb3V0ZVtdID0gW107XHJcbiAgQElucHV0KCkgcm91dGU6IHN0cmluZztcclxuICBASW5wdXQoKSBkcm9wZG93bkFjdGlvblR5cGU6IERyb3Bkb3duQWN0aW9uVHlwZSA9IHRoaXMuZHJvcGRvd25BY3Rpb25UeXBlcy5BREQ7XHJcbiAgQE91dHB1dCgpIGFkZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX1JvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbGlkYXRlQWN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBY3Rpb25zKCkge1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25BY3Rpb25UeXBlID09IHRoaXMuZHJvcGRvd25BY3Rpb25UeXBlcy5BREQpIHtcclxuICAgICAgaWYgKHRoaXMuY2FuUm91dGUpIHtcclxuICAgICAgICBpZiAodGhpcy5yb3V0ZSA9PSBcIlwiIHx8IHRoaXMucm91dGUgPT0gdW5kZWZpbmVkIHx8IHRoaXMucm91dGUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJSb3V0ZSBuZWVkcyB0byBiZSBwcm92aWRlZC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnJvdXRlKSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcihcIlJvdXRlIHNob3VsZG4ndCBiZSBwcm92aWRlZCBzaW5jZSBjYW5Sb3V0ZSBpcyBmYWxzZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZHJvcGRvd25BY3Rpb25UeXBlID09IHRoaXMuZHJvcGRvd25BY3Rpb25UeXBlcy5NRU5VKSB7XHJcbiAgICAgIGlmICghdGhpcy5sYWJlbHNBbmRSb3V0ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJBIGxpc3Qgb2YgbGFiZWxzICYgUm91dGVzIG5lZWQgdG8gYmUgcHJvdmlkZWQgZm9yIHRoZSBhY3Rpb25zIG1lbnUuXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhyb3cgRXJyb3IoXCJEcm9wZG93biBBY3Rpb24gVHlwZSBpcyBub3QgcmVjb2duaXplZC5cIilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tBZGQoJGV2ZW50KSB7XHJcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICh0aGlzLmNhblJvdXRlICYmIHRoaXMucm91dGUpIHtcclxuICAgICAgdGhpcy5fUm91dGVyLm5hdmlnYXRlKFt0aGlzLnJvdXRlXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFkZENsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0xhYmVsKHJvdXRlLCAkZXZlbnQpIHtcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fUm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtuZ1N3aXRjaF09XCJkcm9wZG93bkFjdGlvblR5cGVcIj5cclxuICAgIDxhICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93bkFjdGlvblR5cGVzLkFERFwiIFtocmVmXT1cInJvdXRlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGlvbi1lbmFibGVkJzohZGlzYWJsZWQsICdkaXNhYmxlZCc6IGRpc2FibGVkfVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tBZGQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxmYS1pY29uIGljb249XCJwbHVzXCI+PC9mYS1pY29uPlxyXG4gICAgPC9hPlxyXG4gICAgPGZhLWljb24gKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duQWN0aW9uVHlwZXMuTUVOVVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydhY3Rpb24tZW5hYmxlZCc6IWRpc2FibGVkLCAnZGlzYWJsZWQnOiBkaXNhYmxlZH1cIlxyXG4gICAgICAgIGNsYXNzPVwibWVudVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgICAgICBpY29uPVwiZWxsaXBzaXMtdmVydGljYWxcIj48L2ZhLWljb24+XHJcbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgbGFiZWxBbmRSb3V0ZSBvZiBsYWJlbHNBbmRSb3V0ZXNcIiBtYXQtbWVudS1pdGVtPlxyXG4gICAgICAgICAgICA8YSBbaHJlZl09XCJsYWJlbEFuZFJvdXRlLnJvdXRlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrTGFiZWwobGFiZWxBbmRSb3V0ZS5yb3V0ZSwgJGV2ZW50KVwiPnt7bGFiZWxBbmRSb3V0ZS5sYWJlbH19PC9hPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtbWVudT5cclxuPC9kaXY+Il19
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { Component, Input, forwardRef, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { DynamicPipe } from './dynamicPipe';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/forms";
|
|
7
|
-
import * as i3 from "@angular/material/button";
|
|
8
|
-
import * as i4 from "./dynamicPipe";
|
|
9
|
-
export class EditableSavableInputComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.saveWasClicked = new EventEmitter();
|
|
12
|
-
this.showUnit = false;
|
|
13
|
-
this.isEditable = true;
|
|
14
|
-
this.showHeader = true;
|
|
15
|
-
this.value = "";
|
|
16
|
-
this.isAddClickedOn = false;
|
|
17
|
-
this.isUpdated = false;
|
|
18
|
-
this.showEdit = false;
|
|
19
|
-
// the method set in registerOnChange to emit changes back to the form
|
|
20
|
-
this.propagateChange = (_) => { };
|
|
21
|
-
this.propogateTouch = () => { };
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
this.initialize();
|
|
25
|
-
}
|
|
26
|
-
initialize() {
|
|
27
|
-
if (this.value == "") {
|
|
28
|
-
this.isUpdated = false;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.isUpdated = true;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
onClickAdd() {
|
|
35
|
-
this.isAddClickedOn = true;
|
|
36
|
-
}
|
|
37
|
-
onClickCancel() {
|
|
38
|
-
this.isAddClickedOn = false;
|
|
39
|
-
}
|
|
40
|
-
onClickSave(input) {
|
|
41
|
-
this.isAddClickedOn = false;
|
|
42
|
-
let value = input.value;
|
|
43
|
-
if (value.trim().length == 0) {
|
|
44
|
-
this.isUpdated = false;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.isUpdated = true;
|
|
48
|
-
}
|
|
49
|
-
this.value = value;
|
|
50
|
-
this.saveWasClicked.emit(value);
|
|
51
|
-
this.propagateChange(this.value);
|
|
52
|
-
}
|
|
53
|
-
onClickEdit() {
|
|
54
|
-
this.isAddClickedOn = true;
|
|
55
|
-
}
|
|
56
|
-
onMouseEnter() {
|
|
57
|
-
this.showEdit = true;
|
|
58
|
-
}
|
|
59
|
-
onMouseLeave() {
|
|
60
|
-
this.showEdit = false;
|
|
61
|
-
}
|
|
62
|
-
writeValue(value) {
|
|
63
|
-
if (value) {
|
|
64
|
-
this.value = value;
|
|
65
|
-
this.isUpdated = true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// registers 'fn' that will be fired wheb changes are made
|
|
69
|
-
// this is how we emit the changes back to the form
|
|
70
|
-
registerOnChange(fn) {
|
|
71
|
-
this.propagateChange = fn;
|
|
72
|
-
}
|
|
73
|
-
registerOnTouched(fn) {
|
|
74
|
-
this.propogateTouch = fn;
|
|
75
|
-
}
|
|
76
|
-
onChange($event) {
|
|
77
|
-
//this.propagateChange(this.value);
|
|
78
|
-
}
|
|
79
|
-
updateBlur() {
|
|
80
|
-
this.propogateTouch();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
EditableSavableInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditableSavableInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
EditableSavableInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EditableSavableInputComponent, selector: "editable-savable-input", inputs: { defaultvalue: "defaultvalue", inputType: "inputType", newLabel: "newLabel", headerLabel: "headerLabel", showUnit: "showUnit", unit: "unit", unitType: "unitType", isEditable: "isEditable", showHeader: "showHeader", value: "value" }, outputs: { saveWasClicked: "saveWasClicked" }, providers: [DynamicPipe,
|
|
85
|
-
{
|
|
86
|
-
provide: NG_VALUE_ACCESSOR,
|
|
87
|
-
useExisting: forwardRef(() => EditableSavableInputComponent),
|
|
88
|
-
multi: true
|
|
89
|
-
}
|
|
90
|
-
], ngImport: i0, template: "<div *ngIf=\"showHeader\" class=\"header\">\r\n {{headerLabel}}\r\n</div>\r\n<div class=\"container\" [ngClass]=\"{'closed':!isAddClickedOn, 'open': isAddClickedOn}\">\r\n <div class=\"content\">\r\n <div class=\"default-content\" *ngIf=\"!isAddClickedOn && !isUpdated && isEditable\">\r\n <div class=\"add\" (click)=\"onClickAdd()\">\r\n {{defaultvalue}} </div>\r\n </div>\r\n <div class=\"edit-content\" *ngIf=\"isAddClickedOn\">\r\n <label class=\"input-label\" for=\"input\">{{newLabel}}</label>\r\n <div class=\"input \" [ngClass]=\"{'input-with-appended-unit': showUnit}\">\r\n <span *ngIf=\"showUnit\">{{unit}}</span>\r\n <input (change)=\"onChange($event)\" (blur)=\"updateBlur()\" [ngModel]=\"value\" [value]=\"value\" id=\"input\" #input\r\n class=\"form-control\" [ngClass]=\"{'input-box': showUnit}\" [type]=\"inputType\">\r\n </div>\r\n <div class=\"edit-actions\">\r\n <button type=\"button\" class=\"btn cancel\" (click)=\"onClickCancel()\" mat-raised-button>Cancel</button>\r\n <button type=\"button\" class=\"save\" (click)=\"onClickSave(input)\" mat-raised-button color=\"primary\">Save</button>\r\n </div>\r\n </div>\r\n <div class=\"updated-content closed\" *ngIf=\"!isAddClickedOn && isUpdated\" (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"edit-icon-container\" *ngIf=\"showEdit && isEditable\" (click)=\"onClickEdit()\">\r\n <i class=\"fas fa-pencil-alt\"></i>\r\n </div>\r\n <div class=\"updated\">\r\n <span class=\"updated-label\">\r\n <label for=\"input\">{{newLabel}}</label>\r\n </span>\r\n <span *ngIf=\"!showUnit\">{{value}}</span>\r\n <span *ngIf=\"showUnit\" class=\"updated-value\">\r\n {{value | dynamicPipe: unitType}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".container{display:block;width:100%}.open{height:120px}.closed{height:40px}.edit-icon-container{position:absolute;right:0%;transform:translate(0);top:0;cursor:pointer}.edit-icon-container:hover{background-color:gray;color:#fff;padding:2px}label,.updated-label{color:gray;margin-right:5px}#input{display:inline}.cancel{grid-column:1;grid-row:2;height:80%;width:80px}.save{grid-column:2;grid-row:2;height:80%;width:80px}.default-content{position:absolute}.input{width:280px;grid-column:2;grid-row:1}.input-box{width:200px}.input-label{grid-column:1;grid-row:1}.updated{position:absolute}.add{color:#00f}.add:hover{text-decoration:underline;cursor:pointer}.content{position:relative}.btn:focus{outline:none!important}.edit-content{position:absolute;left:50%;transform:translate(-50%);display:grid;grid-template-columns:150px 200px;grid-template-rows:50px 50px}.updated-content{display:block}.header{color:gray;border-bottom:1px solid grey;height:30px;font-size:20px;margin-bottom:10px;margin-top:10px}.input-with-appended-unit input{padding-left:20px;text-align:left}.input-with-appended-unit span{position:relative;left:20px;color:gray}.edit-actions{grid-column:2;grid-row:2;display:grid;grid-template-columns:50% 50%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i4.DynamicPipe, name: "dynamicPipe" }] });
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditableSavableInputComponent, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{ selector: 'editable-savable-input', providers: [DynamicPipe,
|
|
94
|
-
{
|
|
95
|
-
provide: NG_VALUE_ACCESSOR,
|
|
96
|
-
useExisting: forwardRef(() => EditableSavableInputComponent),
|
|
97
|
-
multi: true
|
|
98
|
-
}
|
|
99
|
-
], template: "<div *ngIf=\"showHeader\" class=\"header\">\r\n {{headerLabel}}\r\n</div>\r\n<div class=\"container\" [ngClass]=\"{'closed':!isAddClickedOn, 'open': isAddClickedOn}\">\r\n <div class=\"content\">\r\n <div class=\"default-content\" *ngIf=\"!isAddClickedOn && !isUpdated && isEditable\">\r\n <div class=\"add\" (click)=\"onClickAdd()\">\r\n {{defaultvalue}} </div>\r\n </div>\r\n <div class=\"edit-content\" *ngIf=\"isAddClickedOn\">\r\n <label class=\"input-label\" for=\"input\">{{newLabel}}</label>\r\n <div class=\"input \" [ngClass]=\"{'input-with-appended-unit': showUnit}\">\r\n <span *ngIf=\"showUnit\">{{unit}}</span>\r\n <input (change)=\"onChange($event)\" (blur)=\"updateBlur()\" [ngModel]=\"value\" [value]=\"value\" id=\"input\" #input\r\n class=\"form-control\" [ngClass]=\"{'input-box': showUnit}\" [type]=\"inputType\">\r\n </div>\r\n <div class=\"edit-actions\">\r\n <button type=\"button\" class=\"btn cancel\" (click)=\"onClickCancel()\" mat-raised-button>Cancel</button>\r\n <button type=\"button\" class=\"save\" (click)=\"onClickSave(input)\" mat-raised-button color=\"primary\">Save</button>\r\n </div>\r\n </div>\r\n <div class=\"updated-content closed\" *ngIf=\"!isAddClickedOn && isUpdated\" (mouseenter)=\"onMouseEnter()\"\r\n (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"edit-icon-container\" *ngIf=\"showEdit && isEditable\" (click)=\"onClickEdit()\">\r\n <i class=\"fas fa-pencil-alt\"></i>\r\n </div>\r\n <div class=\"updated\">\r\n <span class=\"updated-label\">\r\n <label for=\"input\">{{newLabel}}</label>\r\n </span>\r\n <span *ngIf=\"!showUnit\">{{value}}</span>\r\n <span *ngIf=\"showUnit\" class=\"updated-value\">\r\n {{value | dynamicPipe: unitType}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".container{display:block;width:100%}.open{height:120px}.closed{height:40px}.edit-icon-container{position:absolute;right:0%;transform:translate(0);top:0;cursor:pointer}.edit-icon-container:hover{background-color:gray;color:#fff;padding:2px}label,.updated-label{color:gray;margin-right:5px}#input{display:inline}.cancel{grid-column:1;grid-row:2;height:80%;width:80px}.save{grid-column:2;grid-row:2;height:80%;width:80px}.default-content{position:absolute}.input{width:280px;grid-column:2;grid-row:1}.input-box{width:200px}.input-label{grid-column:1;grid-row:1}.updated{position:absolute}.add{color:#00f}.add:hover{text-decoration:underline;cursor:pointer}.content{position:relative}.btn:focus{outline:none!important}.edit-content{position:absolute;left:50%;transform:translate(-50%);display:grid;grid-template-columns:150px 200px;grid-template-rows:50px 50px}.updated-content{display:block}.header{color:gray;border-bottom:1px solid grey;height:30px;font-size:20px;margin-bottom:10px;margin-top:10px}.input-with-appended-unit input{padding-left:20px;text-align:left}.input-with-appended-unit span{position:relative;left:20px;color:gray}.edit-actions{grid-column:2;grid-row:2;display:grid;grid-template-columns:50% 50%}\n"] }]
|
|
100
|
-
}], ctorParameters: function () { return []; }, propDecorators: { saveWasClicked: [{
|
|
101
|
-
type: Output
|
|
102
|
-
}], defaultvalue: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], inputType: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], newLabel: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], headerLabel: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], showUnit: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], unit: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], unitType: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], isEditable: [{
|
|
117
|
-
type: Input
|
|
118
|
-
}], showHeader: [{
|
|
119
|
-
type: Input
|
|
120
|
-
}], value: [{
|
|
121
|
-
type: Input
|
|
122
|
-
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9lZGl0YWJsZS1zYXZhYmxlLWlucHV0L2VkaXRhYmxlLXNhdmFibGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZWRpdGFibGUtc2F2YWJsZS1pbnB1dC9lZGl0YWJsZS1zYXZhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFhNUMsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEM7UUFmVSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLckMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUM1QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFtRTFCLHNFQUFzRTtRQUM5RCxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFuRW5CLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRHluYW1pY1BpcGUgfSBmcm9tICcuL2R5bmFtaWNQaXBlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlZGl0YWJsZS1zYXZhYmxlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbRHluYW1pY1BpcGUsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0YWJsZVNhdmFibGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdGFibGVTYXZhYmxlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBAT3V0cHV0KCkgc2F2ZVdhc0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgZGVmYXVsdHZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW5wdXRUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmV3TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWFkZXJMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dVbml0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdW5pdDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVuaXRUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNFZGl0YWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNBZGRDbGlja2VkT246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1VwZGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RWRpdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5pc1VwZGF0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmlzVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQWRkKCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1NhdmUoaW5wdXQpIHtcclxuICAgIHRoaXMuaXNBZGRDbGlja2VkT24gPSBmYWxzZTtcclxuICAgIGxldCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlLnRyaW0oKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLmlzVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2F2ZVdhc0NsaWNrZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tFZGl0KCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlRW50ZXIoKSB7XHJcbiAgICB0aGlzLnNob3dFZGl0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgIHRoaXMuc2hvd0VkaXQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pc1VwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZWIgY2hhbmdlcyBhcmUgbWFkZVxyXG4gIC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wb2dhdGVUb3VjaCA9IGZuO1xyXG4gIH1cclxuICAvLyB0aGUgbWV0aG9kIHNldCBpbiByZWdpc3Rlck9uQ2hhbmdlIHRvIGVtaXQgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBwcm9wb2dhdGVUb3VjaCA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25DaGFuZ2UoJGV2ZW50KSB7XHJcbiAgICAvL3RoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmx1cigpIHtcclxuICAgIHRoaXMucHJvcG9nYXRlVG91Y2goKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInNob3dIZWFkZXJcIiBjbGFzcz1cImhlYWRlclwiPlxyXG4gIHt7aGVhZGVyTGFiZWx9fVxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnY2xvc2VkJzohaXNBZGRDbGlja2VkT24sICdvcGVuJzogaXNBZGRDbGlja2VkT259XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWNvbnRlbnRcIiAqbmdJZj1cIiFpc0FkZENsaWNrZWRPbiAmJiAhaXNVcGRhdGVkICYmIGlzRWRpdGFibGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFkZFwiIChjbGljayk9XCJvbkNsaWNrQWRkKClcIj5cclxuICAgICAgICB7e2RlZmF1bHR2YWx1ZX19IDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1jb250ZW50XCIgKm5nSWY9XCJpc0FkZENsaWNrZWRPblwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbFwiIGZvcj1cImlucHV0XCI+e3tuZXdMYWJlbH19PC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0IFwiIFtuZ0NsYXNzXT1cInsnaW5wdXQtd2l0aC1hcHBlbmRlZC11bml0Jzogc2hvd1VuaXR9XCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93VW5pdFwiPnt7dW5pdH19PC9zcGFuPlxyXG4gICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAoYmx1cik9XCJ1cGRhdGVCbHVyKClcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIGlkPVwiaW5wdXRcIiAjaW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpbnB1dC1ib3gnOiBzaG93VW5pdH1cIiBbdHlwZV09XCJpbnB1dFR5cGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlZGl0LWFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBjYW5jZWxcIiAoY2xpY2spPVwib25DbGlja0NhbmNlbCgpXCIgbWF0LXJhaXNlZC1idXR0b24+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzYXZlXCIgKGNsaWNrKT1cIm9uQ2xpY2tTYXZlKGlucHV0KVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlNhdmU8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGRhdGVkLWNvbnRlbnQgY2xvc2VkXCIgKm5nSWY9XCIhaXNBZGRDbGlja2VkT24gJiYgaXNVcGRhdGVkXCIgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1pY29uLWNvbnRhaW5lclwiICpuZ0lmPVwic2hvd0VkaXQgJiYgaXNFZGl0YWJsZVwiIChjbGljayk9XCJvbkNsaWNrRWRpdCgpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGVuY2lsLWFsdFwiPjwvaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1cGRhdGVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGRhdGVkLWxhYmVsXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIj57e25ld0xhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzaG93VW5pdFwiPnt7dmFsdWV9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dVbml0XCIgY2xhc3M9XCJ1cGRhdGVkLXZhbHVlXCI+XHJcbiAgICAgICAgICB7e3ZhbHVlIHwgZHluYW1pY1BpcGU6IHVuaXRUeXBlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
-
import { NgModel } from '@angular/forms';
|
|
3
|
-
import { ValidationError } from './services/validation-message.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
export class FormControlValidationMsgDirectiveForInput {
|
|
7
|
-
constructor(elRef, control) {
|
|
8
|
-
this.elRef = elRef;
|
|
9
|
-
this.control = control;
|
|
10
|
-
this.showBoxError = true;
|
|
11
|
-
this.beforeBegin = false;
|
|
12
|
-
this.afterEnd = false;
|
|
13
|
-
this.validationError = ValidationError;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.statusChangeSubscription = this.control.statusChanges.subscribe((status) => {
|
|
17
|
-
if (status == 'INVALID') {
|
|
18
|
-
this.showError();
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this.removeError();
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
this.control.valueChanges.subscribe({
|
|
25
|
-
next: (response) => {
|
|
26
|
-
if (this.control.errors) {
|
|
27
|
-
this.showError();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
ngOnDestroy() {
|
|
33
|
-
this.statusChangeSubscription.unsubscribe();
|
|
34
|
-
}
|
|
35
|
-
handleBlurEvent(event) {
|
|
36
|
-
if (this.control.errors) {
|
|
37
|
-
this.showError();
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.removeError();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
showError() {
|
|
44
|
-
this.removeError();
|
|
45
|
-
const valErrors = this.control.errors;
|
|
46
|
-
const keys = Object.keys(valErrors);
|
|
47
|
-
for (let i = 0; i < keys.length; i++) {
|
|
48
|
-
switch (keys[i]) {
|
|
49
|
-
case 'minlength': {
|
|
50
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);
|
|
51
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
case 'required': {
|
|
55
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
56
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
57
|
-
this.control.control.setErrors({ 'required': true, 'message': message }, { emitEvent: false });
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
case 'maxlength': {
|
|
61
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.maxlength.requiredLength);
|
|
62
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
63
|
-
this.control.control.setErrors({ 'maxlength': { 'requiredLength': valErrors.maxlength.requiredLength }, 'message': message }, { emitEvent: false });
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
case 'max': {
|
|
67
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.max.max);
|
|
68
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
69
|
-
this.control.control.setErrors({ 'message': message, 'max': { 'max': valErrors.max.max } }, { emitEvent: false });
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
case 'min': {
|
|
73
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.min.min);
|
|
74
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
case 'pattern': {
|
|
78
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors.pattern.requiredPattern);
|
|
79
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
case 'email': {
|
|
83
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
84
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case 'invalidIntegerNumber': {
|
|
88
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
89
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
case 'invalidPositiveInteger': {
|
|
93
|
-
let message = this.validationError.getRelevantError(keys[i], valErrors);
|
|
94
|
-
this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
|
|
95
|
-
this.control.control.setErrors({ 'invalidPositiveInteger': true, 'message': message }, { emitEvent: false });
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
if (this.showBoxError) {
|
|
101
|
-
const errDiv = '<div style="color:#C34243; width=100%; background-color: #FFDBDB; padding: 1rem; border-radius: .5rem; border: .1rem solid #A80002 ;border-left: .75rem solid #A80002; margin-top:.5rem; font-size: 1.2rem; " id="' + this.errorDivId + '">' + '<h3 style= " font-size: 1.3rem; margin-bottom:.5rem; margin:0; color: #A80002; font-weight: 700; line-height: 1.6rem;">' + 'Please Complete all details' + '</h3>' + this.errorMessage + '</div>';
|
|
102
|
-
if (!this.beforeBegin && !this.afterEnd)
|
|
103
|
-
this.elRef.nativeElement.parentElement.parentElement.parentElement.parentElement.insertAdjacentHTML('afterend', errDiv);
|
|
104
|
-
else if (this.beforeBegin)
|
|
105
|
-
this.elRef.nativeElement.insertAdjacentHTML('beforebegin', errDiv);
|
|
106
|
-
else if (this.afterEnd)
|
|
107
|
-
this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);
|
|
108
|
-
else
|
|
109
|
-
throw Error("Adjustment not specified ");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
removeError() {
|
|
113
|
-
this.errorMessage = "";
|
|
114
|
-
const errorElement = document.getElementById(this.errorDivId);
|
|
115
|
-
if (errorElement) {
|
|
116
|
-
errorElement.remove();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
FormControlValidationMsgDirectiveForInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
121
|
-
FormControlValidationMsgDirectiveForInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: { showBoxError: "showBoxError", errorDivId: "errorDivId", beforeBegin: "beforeBegin", afterEnd: "afterEnd" }, host: { listeners: { "blur": "handleBlurEvent($event)" } }, providers: [NgModel], ngImport: i0 });
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, decorators: [{
|
|
123
|
-
type: Directive,
|
|
124
|
-
args: [{
|
|
125
|
-
selector: '[appFormControlValidationMsgForInputs]',
|
|
126
|
-
providers: [NgModel],
|
|
127
|
-
}]
|
|
128
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl }]; }, propDecorators: { showBoxError: [{
|
|
129
|
-
type: Input,
|
|
130
|
-
args: ['showBoxError']
|
|
131
|
-
}], errorDivId: [{
|
|
132
|
-
type: Input,
|
|
133
|
-
args: ['errorDivId']
|
|
134
|
-
}], beforeBegin: [{
|
|
135
|
-
type: Input,
|
|
136
|
-
args: ['beforeBegin']
|
|
137
|
-
}], afterEnd: [{
|
|
138
|
-
type: Input,
|
|
139
|
-
args: ['afterEnd']
|
|
140
|
-
}], handleBlurEvent: [{
|
|
141
|
-
type: HostListener,
|
|
142
|
-
args: ['blur', ["$event"]]
|
|
143
|
-
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFhLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQU14RSxNQUFNLE9BQU8seUNBQXlDO0lBVXBELFlBQ1UsS0FBaUIsRUFDakIsT0FBa0I7UUFEbEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBVEwsaUJBQVksR0FBVSxJQUFJLENBQUM7UUFFNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDaEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUM3QyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztJQU05QixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ2xFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxJQUFJLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUVsQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQ0YsQ0FBQTtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2lCQUNsQjtZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBR0QsZUFBZSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7YUFDSTtZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFHTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNmLEtBQUssV0FBVyxDQUFDLENBQUM7b0JBQ2hCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ2pHLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUM7b0JBRWpGLE1BQU07aUJBQ1A7Z0JBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQztvQkFDZixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUMsRUFBRSxTQUFTLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtvQkFDM0YsTUFBTTtpQkFDUDtnQkFDRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO29CQUNoQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUNqRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO29CQUNsSixNQUFNO2lCQUNQO2dCQUNELEtBQUssS0FBSyxDQUFDLENBQUM7b0JBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQzdFLENBQUM7b0JBQ0YsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7b0JBQ2pILE1BQU07aUJBQ1A7Z0JBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQztvQkFDVixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDN0UsQ0FBQztvQkFDRixJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUNqRixNQUFNO2lCQUNQO2dCQUVELEtBQUssU0FBUyxDQUFDLENBQUM7b0JBQ2QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsTUFBTTtpQkFDUDtnQkFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDO29CQUNaLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUN4RSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUNqRixNQUFNO2lCQUNQO2dCQUNELEtBQUssc0JBQXNCLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3hFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUM7b0JBQ2pGLE1BQU07aUJBQ1A7Z0JBQ0QsS0FBSyx3QkFBd0IsQ0FBQyxDQUFDO29CQUM3QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsR0FBRyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO29CQUM1RyxNQUFNO2lCQUNQO2FBRUY7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBQztZQUN0QixNQUFNLE1BQU0sR0FBRyxzTkFBc04sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyw2SEFBNkgsR0FBRyw2QkFBNkIsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7WUFDeGMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDckgsSUFBSSxJQUFJLENBQUMsV0FBVztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUNoRSxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7O2dCQUVoRSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzVDO0lBQ0QsQ0FBQztJQUNPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7c0lBbElVLHlDQUF5QzswSEFBekMseUNBQXlDLG1QQUZ6QyxDQUFDLE9BQU8sQ0FBQzsyRkFFVCx5Q0FBeUM7a0JBSnJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNyQjt5SEFJd0IsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNBLFVBQVU7c0JBQTlCLEtBQUs7dUJBQUMsWUFBWTtnQkFDRyxXQUFXO3NCQUFoQyxLQUFLO3VCQUFDLGFBQWE7Z0JBQ0QsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQWtDakIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCwgTmdNb2RlbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vc2VydmljZXMvdmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwRm9ybUNvbnRyb2xWYWxpZGF0aW9uTXNnRm9ySW5wdXRzXScsXHJcbiAgcHJvdmlkZXJzOiBbTmdNb2RlbF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dEaXJlY3RpdmVGb3JJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgZXJyb3JNZXNzYWdlOiBhbnk7XHJcbiAgZXJyb3JOZ1NlbGVjdE1lc3NhZ2U6IGFueTtcclxuICBASW5wdXQoJ3Nob3dCb3hFcnJvcicpIHNob3dCb3hFcnJvcjogYm9vbGVhbj10cnVlO1xyXG4gIEBJbnB1dCgnZXJyb3JEaXZJZCcpIGVycm9yRGl2SWQ6IGFueTtcclxuICBASW5wdXQoJ2JlZm9yZUJlZ2luJykgYmVmb3JlQmVnaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoJ2FmdGVyRW5kJykgYWZ0ZXJFbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2YWxpZGF0aW9uRXJyb3IgPSBWYWxpZGF0aW9uRXJyb3I7XHJcbiAgc3RhdHVzQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChzdGF0dXMpID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09ICdJTlZBTElEJykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IoKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbXCIkZXZlbnRcIl0pXHJcbiAgaGFuZGxlQmx1ckV2ZW50KGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmVycm9ycykge1xyXG4gICAgICB0aGlzLnNob3dFcnJvcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRXJyb3IoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcigpIHtcclxuICAgIHRoaXMucmVtb3ZlRXJyb3IoKTtcclxuICAgIGNvbnN0IHZhbEVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMuY29udHJvbC5lcnJvcnM7XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsRXJyb3JzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBzd2l0Y2ggKGtleXNbaV0pIHtcclxuICAgICAgICBjYXNlICdtaW5sZW5ndGgnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aCk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdyZXF1aXJlZCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHsgJ3JlcXVpcmVkJzogdHJ1ZSwgJ21lc3NhZ2UnOiBtZXNzYWdlIH0seyBlbWl0RXZlbnQ6ZmFsc2V9KVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21heGxlbmd0aCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyh7ICdtYXhsZW5ndGgnOiB7ICdyZXF1aXJlZExlbmd0aCc6IHZhbEVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGggfSwgJ21lc3NhZ2UnOiBtZXNzYWdlfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbWF4Jzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycy5tYXgubWF4XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHsgJ21lc3NhZ2UnOiBtZXNzYWdlLCAnbWF4JzogeyAnbWF4JzogdmFsRXJyb3JzLm1heC5tYXggfSB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdtaW4nOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLm1pbi5taW5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhc2UgJ3BhdHRlcm4nOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLnBhdHRlcm4ucmVxdWlyZWRQYXR0ZXJuKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdlbWFpbCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2ludmFsaWRJbnRlZ2VyTnVtYmVyJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnaW52YWxpZFBvc2l0aXZlSW50ZWdlcic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHsgJ2ludmFsaWRQb3NpdGl2ZUludGVnZXInOiB0cnVlLCAnbWVzc2FnZSc6IG1lc3NhZ2UgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93Qm94RXJyb3Ipe1xyXG4gICAgY29uc3QgZXJyRGl2ID0gJzxkaXYgc3R5bGU9XCJjb2xvcjojQzM0MjQzOyB3aWR0aD0xMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZEQkRCOyBwYWRkaW5nOiAxcmVtOyBib3JkZXItcmFkaXVzOiAuNXJlbTsgYm9yZGVyOiAuMXJlbSBzb2xpZCAjQTgwMDAyIDtib3JkZXItbGVmdDogLjc1cmVtIHNvbGlkICNBODAwMDI7ICBtYXJnaW4tdG9wOi41cmVtOyAgZm9udC1zaXplOiAxLjJyZW07IFwiIGlkPVwiJyArIHRoaXMuZXJyb3JEaXZJZCArICdcIj4nICsgJzxoMyAgIHN0eWxlPSBcIiBmb250LXNpemU6IDEuM3JlbTsgIG1hcmdpbi1ib3R0b206LjVyZW07IG1hcmdpbjowOyAgY29sb3I6ICNBODAwMDI7IGZvbnQtd2VpZ2h0OiA3MDA7IGxpbmUtaGVpZ2h0OiAxLjZyZW07XCI+JyArICdQbGVhc2UgQ29tcGxldGUgYWxsIGRldGFpbHMnICsgJzwvaDM+JyArIHRoaXMuZXJyb3JNZXNzYWdlICsgJzwvZGl2Pic7XHJcbiAgICBpZiAoIXRoaXMuYmVmb3JlQmVnaW4gJiYgIXRoaXMuYWZ0ZXJFbmQpXHJcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJlbmQnLCBlcnJEaXYpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5iZWZvcmVCZWdpbilcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlYmVnaW4nLCBlcnJEaXYpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hZnRlckVuZClcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lmluc2VydEFkamFjZW50SFRNTCgnYWZ0ZXJlbmQnLCBlcnJEaXYpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aHJvdyBFcnJvcihcIkFkanVzdG1lbnQgbm90IHNwZWNpZmllZCBcIik7XHJcbiAgfVxyXG4gIH1cclxuICBwcml2YXRlIHJlbW92ZUVycm9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgY29uc3QgZXJyb3JFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5lcnJvckRpdklkKTtcclxuICAgIGlmIChlcnJvckVsZW1lbnQpIHtcclxuICAgICAgZXJyb3JFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { DecimalPipe } from '@angular/common';
|
|
2
|
-
import { Directive, HostListener } from '@angular/core';
|
|
3
|
-
import { NgModel } from '@angular/forms';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
export class CustomDecimalPointTwoDigitsDirective {
|
|
7
|
-
constructor(control) {
|
|
8
|
-
this.control = control;
|
|
9
|
-
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
if (this.control.value) {
|
|
12
|
-
this.control.valueAccessor.writeValue(this.transformToCommasAndPoint(this.control.value));
|
|
13
|
-
}
|
|
14
|
-
this.valueSubscription = this.control.control.valueChanges.subscribe(value => {
|
|
15
|
-
if (value.length > 0) {
|
|
16
|
-
let removeCommas = this.control.value.replace(/,/g, '');
|
|
17
|
-
this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.control.control.setValue(null, { emitEvent: false, emitModelToViewChange: false });
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
onEvent($event) {
|
|
25
|
-
if (this.control.value) {
|
|
26
|
-
const item = $event.target;
|
|
27
|
-
item.value = this.transformToCommasAndPoint(this.control.value);
|
|
28
|
-
let removeCommas = this.control.value.replace(/,/g, '');
|
|
29
|
-
this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
transformToCommasAndPoint(value) {
|
|
33
|
-
if (value.indexOf(".") == -1) {
|
|
34
|
-
value = value.toString().replace(/\D/g, "")
|
|
35
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
36
|
-
return value;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
let val = value.split(".");
|
|
40
|
-
let valueBeforeDecimal = val[0];
|
|
41
|
-
let valueAfterDecimal = val[1];
|
|
42
|
-
valueBeforeDecimal = valueBeforeDecimal.toString().replace(/\D/g, "")
|
|
43
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
44
|
-
let newValue = `${valueBeforeDecimal}.${valueAfterDecimal}`;
|
|
45
|
-
return newValue;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
CustomDecimalPointTwoDigitsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomDecimalPointTwoDigitsDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
|
|
50
|
-
CustomDecimalPointTwoDigitsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: CustomDecimalPointTwoDigitsDirective, selector: "[customDecimalPointTwoDigits]", host: { listeners: { "input": "onEvent($event)" } }, providers: [NgModel, DecimalPipe], ngImport: i0 });
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomDecimalPointTwoDigitsDirective, decorators: [{
|
|
52
|
-
type: Directive,
|
|
53
|
-
args: [{
|
|
54
|
-
selector: '[customDecimalPointTwoDigits]',
|
|
55
|
-
providers: [NgModel, DecimalPipe],
|
|
56
|
-
}]
|
|
57
|
-
}], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { onEvent: [{
|
|
58
|
-
type: HostListener,
|
|
59
|
-
args: ["input", ["$event"]]
|
|
60
|
-
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRlY2ltYWwtcG9pbnQtdHdvLWRpZ2l0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9nZW5lcmFsLWlucHV0LXJlbmRlcmVyL2N1c3RvbS1kZWNpbWFsLXBvaW50LXR3by1kaWdpdHMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWEsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sb0NBQW9DO0lBRS9DLFlBQ1UsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUN4QixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDM0Y7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDbEUsS0FBSyxDQUFDLEVBQUU7WUFDTixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ2pHO2lCQUNJO2dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDekY7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFa0MsT0FBTyxDQUFDLE1BQU07UUFDL0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ2pHO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQUs7UUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzVCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7aUJBQ3hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQTtTQUNiO2FBQU07WUFDTCxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksa0JBQWtCLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksaUJBQWlCLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2lCQUNsRSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxRQUFRLEdBQUcsR0FBRyxrQkFBa0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQzVELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQzs7aUlBOUNVLG9DQUFvQztxSEFBcEMsb0NBQW9DLDZHQUZwQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7MkZBRXRCLG9DQUFvQztrQkFKaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO2lCQUNsQztnR0F3Qm9DLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjdXN0b21EZWNpbWFsUG9pbnRUd29EaWdpdHNdJyxcclxuICBwcm92aWRlcnM6IFtOZ01vZGVsLCBEZWNpbWFsUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21EZWNpbWFsUG9pbnRUd29EaWdpdHNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHZhbHVlU3Vic2NyaXB0aW9uOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCxcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3Iud3JpdGVWYWx1ZSh0aGlzLnRyYW5zZm9ybVRvQ29tbWFzQW5kUG9pbnQodGhpcy5jb250cm9sLnZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9uID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBsZXQgcmVtb3ZlQ29tbWFzID0gdGhpcy5jb250cm9sLnZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUocmVtb3ZlQ29tbWFzLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJpbnB1dFwiLCBbXCIkZXZlbnRcIl0pIG9uRXZlbnQoJGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSAkZXZlbnQudGFyZ2V0O1xyXG4gICAgICBpdGVtLnZhbHVlID0gdGhpcy50cmFuc2Zvcm1Ub0NvbW1hc0FuZFBvaW50KHRoaXMuY29udHJvbC52YWx1ZSk7XHJcbiAgICAgIGxldCByZW1vdmVDb21tYXMgPSB0aGlzLmNvbnRyb2wudmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldFZhbHVlKHJlbW92ZUNvbW1hcywgeyBlbWl0RXZlbnQ6IGZhbHNlLCBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtVG9Db21tYXNBbmRQb2ludCh2YWx1ZSkge1xyXG4gICAgaWYgKHZhbHVlLmluZGV4T2YoXCIuXCIpID09IC0xKSB7XHJcbiAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywgXCJcIilcclxuICAgICAgICAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpO1xyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB2YWwgPSB2YWx1ZS5zcGxpdChcIi5cIik7XHJcbiAgICAgIGxldCB2YWx1ZUJlZm9yZURlY2ltYWwgPSB2YWxbMF07XHJcbiAgICAgIGxldCB2YWx1ZUFmdGVyRGVjaW1hbCA9IHZhbFsxXTtcclxuICAgICAgdmFsdWVCZWZvcmVEZWNpbWFsID0gdmFsdWVCZWZvcmVEZWNpbWFsLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxEL2csIFwiXCIpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIFwiLFwiKTtcclxuICAgICAgbGV0IG5ld1ZhbHVlID0gYCR7dmFsdWVCZWZvcmVEZWNpbWFsfS4ke3ZhbHVlQWZ0ZXJEZWNpbWFsfWA7XHJcbiAgICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { DecimalPipe } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
import * as i3 from "./custom-decimal-point-two-digits.directive";
|
|
7
|
-
import * as i4 from "../show-table-errors/show-table-errors.component";
|
|
8
|
-
import * as i5 from "../formcontrol-validation-msg.directive";
|
|
9
|
-
export class GeneralInputRendererComponent {
|
|
10
|
-
constructor() { }
|
|
11
|
-
agInit(params) {
|
|
12
|
-
this.params = params;
|
|
13
|
-
this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex);
|
|
14
|
-
this.key = params.context.createKey(params.columnApi, params.column);
|
|
15
|
-
if (params.isTypeNumber) {
|
|
16
|
-
if (params.value) {
|
|
17
|
-
this.value = new DecimalPipe("en-US").transform(+params.value, "1.0-0");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this.value = params.value;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
onCellDataChanged($event) {
|
|
25
|
-
let value = $event.target.value;
|
|
26
|
-
let newAndOldValue = {
|
|
27
|
-
newValue: value,
|
|
28
|
-
oldValue: this.params?.value
|
|
29
|
-
};
|
|
30
|
-
if (this.params.allowUpdateRowData) {
|
|
31
|
-
this.params.onChange(newAndOldValue);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
refresh(params) {
|
|
35
|
-
this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex);
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
GeneralInputRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneralInputRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
GeneralInputRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: GeneralInputRendererComponent, selector: "general-input-renderer-test", ngImport: i0, template: "<div *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div *ngIf=\"params.isTypeText\">\r\n <input [placeholder]=\"params.fieldLabel\"appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'text'\" \r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key) && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeNumber\">\r\n <input customDecimalPointTwoDigits appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'number'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber\">\r\n <input appFormControlValidationMsgForInputs [showBoxError]=\"false\"type=\"number\"\r\n [errorDivId]=\"'integer'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeTextArea\">\r\n <textarea class=\"text-area\" (change)=\"onCellDataChanged($event)\"\r\n [placeholder]=\"params.fieldLabel\" class=\"main-height\"\r\n [formControlName]=\"key\"></textarea>\r\n </div>\r\n</div>", styles: ["textarea{padding-left:.5rem;border-radius:.3rem;height:3.5rem;font-size:1.2rem;border:solid #BEBEBE .1rem}textarea:focus{outline:none}textarea::placeholder{color:#676767}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.CustomDecimalPointTwoDigitsDirective, selector: "[customDecimalPointTwoDigits]" }, { kind: "component", type: i4.ShowTableErrorsComponent, selector: "show-table-errors", inputs: ["message"] }, { kind: "directive", type: i5.FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: ["showBoxError", "errorDivId", "beforeBegin", "afterEnd"] }] });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GeneralInputRendererComponent, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'general-input-renderer-test', template: "<div *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\r\n <div *ngIf=\"params.isTypeText\">\r\n <input [placeholder]=\"params.fieldLabel\"appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'text'\" \r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key) && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeNumber\">\r\n <input customDecimalPointTwoDigits appFormControlValidationMsgForInputs [showBoxError]=\"false\"\r\n [errorDivId]=\"'number'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeIntegerNumber\">\r\n <input appFormControlValidationMsgForInputs [showBoxError]=\"false\"type=\"number\"\r\n [errorDivId]=\"'integer'\" [placeholder]=\"params.fieldLabel\"\r\n (change)=\"onCellDataChanged($event)\" [formControlName]=\"key\" />\r\n <span *ngIf=\"params.showSymbol\"\r\n style=\"margin-left:-20px ;\">{{params.symbol}}</span>\r\n <show-table-errors\r\n *ngIf=\"formGroup.get(this.key).errors && formGroup.get(this.key).touched\"\r\n [message]=\"formGroup.get(this.key).errors.message\"></show-table-errors>\r\n </div>\r\n <div *ngIf=\"params.isTypeTextArea\">\r\n <textarea class=\"text-area\" (change)=\"onCellDataChanged($event)\"\r\n [placeholder]=\"params.fieldLabel\" class=\"main-height\"\r\n [formControlName]=\"key\"></textarea>\r\n </div>\r\n</div>", styles: ["textarea{padding-left:.5rem;border-radius:.3rem;height:3.5rem;font-size:1.2rem;border:solid #BEBEBE .1rem}textarea:focus{outline:none}textarea::placeholder{color:#676767}\n"] }]
|
|
44
|
-
}], ctorParameters: function () { return []; } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9nZW5lcmFsLWlucHV0LXJlbmRlcmVyL2dlbmVyYWwtaW5wdXQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci9nZW5lcmFsLWlucHV0LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzFDLE1BQU0sT0FBTyw2QkFBNkI7SUFPeEMsZ0JBQWdCLENBQUM7SUFFakIsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBYyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzdDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDYixPQUFPLENBQ1IsQ0FBQzthQUNIO1NBQ0Y7YUFDSTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFNO1FBQ3RCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksY0FBYyxHQUFHO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSztTQUM3QixDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFXO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzBIQXhDVSw2QkFBNkI7OEdBQTdCLDZCQUE2QixtRUNWMUMscXZFQW9DTTsyRkQxQk8sNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUNlbGxSZW5kZXJlckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci10ZXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsSW5wdXRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XHJcbiAgcGFyYW1zOiBhbnk7XHJcbiAga2V5O1xyXG4gIHZhbHVlO1xyXG4gIGZvcm1Hcm91cDogYW55O1xyXG4gIGZvcm1Db250cm9sTmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgYWdJbml0KHBhcmFtczogYW55KSB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5wYXJhbXMuY29udGV4dC5mb3JtR3JvdXAuZ2V0KCdlbnRyaWVzJykuYXQocGFyYW1zLm5vZGUucm93SW5kZXgpIGFzIEZvcm1Hcm91cDtcclxuICAgIHRoaXMua2V5ID0gcGFyYW1zLmNvbnRleHQuY3JlYXRlS2V5KHBhcmFtcy5jb2x1bW5BcGksIHBhcmFtcy5jb2x1bW4pO1xyXG4gICAgaWYgKHBhcmFtcy5pc1R5cGVOdW1iZXIpIHtcclxuICAgICAgaWYgKHBhcmFtcy52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGVjaW1hbFBpcGUoXCJlbi1VU1wiKS50cmFuc2Zvcm0oXHJcbiAgICAgICAgICArcGFyYW1zLnZhbHVlLFxyXG4gICAgICAgICAgXCIxLjAtMFwiXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNlbGxEYXRhQ2hhbmdlZCgkZXZlbnQpIHtcclxuICAgIGxldCB2YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBsZXQgbmV3QW5kT2xkVmFsdWUgPSB7XHJcbiAgICAgIG5ld1ZhbHVlOiB2YWx1ZSxcclxuICAgICAgb2xkVmFsdWU6IHRoaXMucGFyYW1zPy52YWx1ZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucGFyYW1zLmFsbG93VXBkYXRlUm93RGF0YSkge1xyXG4gICAgICB0aGlzLnBhcmFtcy5vbkNoYW5nZShuZXdBbmRPbGRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKHBhcmFtczogYW55KTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMucGFyYW1zLmNvbnRleHQuZm9ybUdyb3VwLmdldCgnZW50cmllcycpLmF0KHBhcmFtcy5ub2RlLnJvd0luZGV4KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufSIsIjxkaXYgKm5nSWY9XCJmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhcmFtcy5pc1R5cGVUZXh0XCI+XHJcbiAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJwYXJhbXMuZmllbGRMYWJlbFwiYXBwRm9ybUNvbnRyb2xWYWxpZGF0aW9uTXNnRm9ySW5wdXRzIFtzaG93Qm94RXJyb3JdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbZXJyb3JEaXZJZF09XCIndGV4dCdcIiBcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNlbGxEYXRhQ2hhbmdlZCgkZXZlbnQpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIiAvPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGFyYW1zLnNob3dTeW1ib2xcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0Oi0yMHB4IDtcIj57e3BhcmFtcy5zeW1ib2x9fTwvc3Bhbj5cclxuICAgICAgICA8c2hvdy10YWJsZS1lcnJvcnNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS5lcnJvcnMgJiYgZm9ybUdyb3VwLmdldCh0aGlzLmtleSkgJiYgZm9ybUdyb3VwLmdldCh0aGlzLmtleSkudG91Y2hlZFwiXHJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cImZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLmVycm9ycy5tZXNzYWdlXCI+PC9zaG93LXRhYmxlLWVycm9ycz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInBhcmFtcy5pc1R5cGVOdW1iZXJcIj5cclxuICAgICAgICA8aW5wdXQgY3VzdG9tRGVjaW1hbFBvaW50VHdvRGlnaXRzICBhcHBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dGb3JJbnB1dHMgW3Nob3dCb3hFcnJvcl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtlcnJvckRpdklkXT1cIidudW1iZXInXCIgW3BsYWNlaG9sZGVyXT1cInBhcmFtcy5maWVsZExhYmVsXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNlbGxEYXRhQ2hhbmdlZCgkZXZlbnQpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIiAvPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGFyYW1zLnNob3dTeW1ib2xcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0Oi0yMHB4IDtcIj57e3BhcmFtcy5zeW1ib2x9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzaG93LXRhYmxlLWVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLmdldCh0aGlzLmtleSkuZXJyb3JzICYmIGZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLnRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttZXNzYWdlXT1cImZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLmVycm9ycy5tZXNzYWdlXCI+PC9zaG93LXRhYmxlLWVycm9ycz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInBhcmFtcy5pc1R5cGVJbnRlZ2VyTnVtYmVyXCI+XHJcbiAgICAgICAgPGlucHV0IGFwcEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0ZvcklucHV0cyBbc2hvd0JveEVycm9yXT1cImZhbHNlXCJ0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgW2Vycm9yRGl2SWRdPVwiJ2ludGVnZXInXCIgW3BsYWNlaG9sZGVyXT1cInBhcmFtcy5maWVsZExhYmVsXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNlbGxEYXRhQ2hhbmdlZCgkZXZlbnQpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIiAvPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGFyYW1zLnNob3dTeW1ib2xcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0Oi0yMHB4IDtcIj57e3BhcmFtcy5zeW1ib2x9fTwvc3Bhbj5cclxuICAgICAgICA8c2hvdy10YWJsZS1lcnJvcnNcclxuICAgICAgICAgICAgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS5lcnJvcnMgJiYgZm9ybUdyb3VwLmdldCh0aGlzLmtleSkudG91Y2hlZFwiXHJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cImZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLmVycm9ycy5tZXNzYWdlXCI+PC9zaG93LXRhYmxlLWVycm9ycz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInBhcmFtcy5pc1R5cGVUZXh0QXJlYVwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cInRleHQtYXJlYVwiIChjaGFuZ2UpPVwib25DZWxsRGF0YUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwYXJhbXMuZmllbGRMYWJlbFwiIGNsYXNzPVwibWFpbi1oZWlnaHRcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImtleVwiPjwvdGV4dGFyZWE+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|