@jooler/inputs 0.0.50 → 0.0.52

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.
Files changed (92) hide show
  1. package/{esm2020 → esm2022}/inputs.mjs +4 -4
  2. package/esm2022/lib/add-asterisk.directive.mjs +42 -0
  3. package/esm2022/lib/ag-grid-select-mixin.mjs +73 -0
  4. package/esm2022/lib/choose-enum/choose-enum.component.mjs +205 -0
  5. package/esm2022/lib/choose-enum-renderer/choose-enum-renderer.component.mjs +45 -0
  6. package/esm2022/lib/choose-general-item/choose-general-item.component.mjs +149 -0
  7. package/esm2022/lib/choose-general-item/choose-general-item.service.mjs +45 -0
  8. package/esm2022/lib/choose-general-item-renderer/choose-general-item-renderer.component.mjs +37 -0
  9. package/esm2022/lib/choose-line-type/choose-line-type.component.mjs +53 -0
  10. package/esm2022/lib/choose-yes-or-no/choose-yes-or-no.component.mjs +69 -0
  11. package/esm2022/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.mjs +33 -0
  12. package/{esm2020 → esm2022}/lib/dropdown-actions/dropdown-action-type.model.mjs +5 -5
  13. package/esm2022/lib/dropdown-actions/dropdown-actions.component.mjs +75 -0
  14. package/{esm2020 → esm2022}/lib/dropdown-actions/label-and-route.model.mjs +1 -1
  15. package/{esm2020 → esm2022}/lib/editable-savable-input/dynamicPipe.mjs +20 -20
  16. package/{esm2020 → esm2022}/lib/editable-savable-input/dynamicPipeMapping.mjs +4 -4
  17. package/esm2022/lib/editable-savable-input/editable-savable-input.component.mjs +128 -0
  18. package/esm2022/lib/enum-helper.model.mjs +14 -0
  19. package/esm2022/lib/formcontrol-validation-msg.directive.mjs +150 -0
  20. package/esm2022/lib/general-input-renderer/custom-decimal-point-two-digits.directive.mjs +63 -0
  21. package/esm2022/lib/general-input-renderer/general-input-renderer.component.mjs +50 -0
  22. package/{esm2020 → esm2022}/lib/inputs.module.mjs +122 -122
  23. package/{esm2020 → esm2022}/lib/models/label-and-field.model.mjs +5 -3
  24. package/esm2022/lib/models/line-type-model-helper.mjs +51 -0
  25. package/{esm2020 → esm2022}/lib/models/line-type.model.mjs +5 -5
  26. package/esm2022/lib/models/yes-or-no.model.mjs +6 -0
  27. package/esm2022/lib/primary-colors.mjs +12 -0
  28. package/esm2022/lib/services/validation-message.service.mjs +111 -0
  29. package/esm2022/lib/show-table-errors/show-table-errors.component.mjs +25 -0
  30. package/{esm2020 → esm2022}/public-api.mjs +23 -23
  31. package/fesm2022/inputs.mjs +1494 -0
  32. package/fesm2022/inputs.mjs.map +1 -0
  33. package/index.d.ts +5 -5
  34. package/lib/add-asterisk.directive.d.ts +12 -12
  35. package/lib/ag-grid-select-mixin.d.ts +22 -0
  36. package/lib/choose-enum/choose-enum.component.d.ts +57 -51
  37. package/lib/choose-enum-renderer/choose-enum-renderer.component.d.ts +13 -15
  38. package/lib/choose-general-item/choose-general-item.component.d.ts +49 -49
  39. package/lib/choose-general-item/choose-general-item.service.d.ts +18 -18
  40. package/lib/choose-general-item-renderer/choose-general-item-renderer.component.d.ts +15 -15
  41. package/lib/choose-line-type/choose-line-type.component.d.ts +19 -19
  42. package/lib/choose-yes-or-no/choose-yes-or-no.component.d.ts +24 -24
  43. package/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.d.ts +16 -16
  44. package/lib/dropdown-actions/dropdown-action-type.model.d.ts +4 -4
  45. package/lib/dropdown-actions/dropdown-actions.component.d.ts +22 -22
  46. package/lib/dropdown-actions/label-and-route.model.d.ts +4 -4
  47. package/lib/editable-savable-input/dynamicPipe.d.ts +7 -7
  48. package/lib/editable-savable-input/dynamicPipeMapping.d.ts +5 -5
  49. package/lib/editable-savable-input/editable-savable-input.component.d.ts +37 -37
  50. package/lib/enum-helper.model.d.ts +8 -0
  51. package/lib/formcontrol-validation-msg.directive.d.ts +25 -25
  52. package/lib/general-input-renderer/custom-decimal-point-two-digits.directive.d.ts +13 -13
  53. package/lib/general-input-renderer/general-input-renderer.component.d.ts +15 -15
  54. package/lib/inputs.module.d.ts +29 -29
  55. package/lib/models/label-and-field.model.d.ts +4 -4
  56. package/lib/models/line-type-model-helper.d.ts +12 -12
  57. package/lib/models/line-type.model.d.ts +4 -4
  58. package/lib/models/yes-or-no.model.d.ts +5 -5
  59. package/lib/primary-colors.d.ts +11 -11
  60. package/lib/services/validation-message.service.d.ts +50 -50
  61. package/lib/show-table-errors/show-table-errors.component.d.ts +11 -11
  62. package/package.json +10 -16
  63. package/public-api.d.ts +20 -20
  64. package/esm2020/lib/add-asterisk.directive.mjs +0 -41
  65. package/esm2020/lib/choose-enum/choose-enum.component.mjs +0 -176
  66. package/esm2020/lib/choose-enum-renderer/choose-enum-renderer.component.mjs +0 -26
  67. package/esm2020/lib/choose-general-item/choose-general-item.component.mjs +0 -133
  68. package/esm2020/lib/choose-general-item/choose-general-item.service.mjs +0 -43
  69. package/esm2020/lib/choose-general-item-renderer/choose-general-item-renderer.component.mjs +0 -32
  70. package/esm2020/lib/choose-line-type/choose-line-type.component.mjs +0 -52
  71. package/esm2020/lib/choose-yes-or-no/choose-yes-or-no.component.mjs +0 -69
  72. package/esm2020/lib/choose-yes-or-no-renderer/choose-yes-or-no-renderer.component.mjs +0 -27
  73. package/esm2020/lib/custom-theme.mjs +0 -104
  74. package/esm2020/lib/dropdown-actions/dropdown-actions.component.mjs +0 -72
  75. package/esm2020/lib/editable-savable-input/editable-savable-input.component.mjs +0 -123
  76. package/esm2020/lib/formcontrol-validation-msg.directive.mjs +0 -144
  77. package/esm2020/lib/general-input-renderer/custom-decimal-point-two-digits.directive.mjs +0 -61
  78. package/esm2020/lib/general-input-renderer/general-input-renderer.component.mjs +0 -45
  79. package/esm2020/lib/models/enum-helper-functions.mjs +0 -57
  80. package/esm2020/lib/models/enum-helper.model.mjs +0 -2
  81. package/esm2020/lib/models/line-type-model-helper.mjs +0 -47
  82. package/esm2020/lib/models/yes-or-no.model.mjs +0 -3
  83. package/esm2020/lib/primary-colors.mjs +0 -12
  84. package/esm2020/lib/services/validation-message.service.mjs +0 -106
  85. package/esm2020/lib/show-table-errors/show-table-errors.component.mjs +0 -23
  86. package/fesm2015/inputs.mjs +0 -1475
  87. package/fesm2015/inputs.mjs.map +0 -1
  88. package/fesm2020/inputs.mjs +0 -1471
  89. package/fesm2020/inputs.mjs.map +0 -1
  90. package/lib/custom-theme.d.ts +0 -8
  91. package/lib/models/enum-helper-functions.d.ts +0 -5
  92. package/lib/models/enum-helper.model.d.ts +0 -6
@@ -1,20 +1,20 @@
1
- import { Pipe } from '@angular/core';
2
- import { PIPEMAPPINGS } from './dynamicPipeMapping';
3
- import * as i0 from "@angular/core";
4
- export class DynamicPipe {
5
- transform(value, args) {
6
- for (let val of PIPEMAPPINGS) {
7
- if (val.value === args) {
8
- return val.pipe.transform(value);
9
- }
10
- }
11
- return '';
12
- }
13
- }
14
- DynamicPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
- DynamicPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DynamicPipe, name: "dynamicPipe" });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicPipe, decorators: [{
17
- type: Pipe,
18
- args: [{ name: 'dynamicPipe' }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY1BpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9lZGl0YWJsZS1zYXZhYmxlLWlucHV0L2R5bmFtaWNQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLFdBQVc7SUFDcEIsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFTO1FBQ3RCLEtBQUssSUFBSSxHQUFHLElBQUksWUFBWSxFQUFFO1lBQzFCLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7d0dBUlEsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQSVBFTUFQUElOR1MgfSBmcm9tICcuL2R5bmFtaWNQaXBlTWFwcGluZyc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdkeW5hbWljUGlwZScgfSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWUsIGFyZ3M6IGFueSk6IGFueSB7XHJcbiAgICAgICAgZm9yIChsZXQgdmFsIG9mIFBJUEVNQVBQSU5HUykge1xyXG4gICAgICAgICAgICBpZiAodmFsLnZhbHVlID09PSBhcmdzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsLnBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn0iXX0=
1
+ import { Pipe } from '@angular/core';
2
+ import { PIPEMAPPINGS } from './dynamicPipeMapping';
3
+ import * as i0 from "@angular/core";
4
+ export class DynamicPipe {
5
+ transform(value, args) {
6
+ for (let val of PIPEMAPPINGS) {
7
+ if (val.value === args) {
8
+ return val.pipe.transform(value);
9
+ }
10
+ }
11
+ return '';
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
14
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DynamicPipe, name: "dynamicPipe" });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{ name: 'dynamicPipe' }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY1BpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9lZGl0YWJsZS1zYXZhYmxlLWlucHV0L2R5bmFtaWNQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLFdBQVc7SUFDcEIsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFTO1FBQ3RCLEtBQUssSUFBSSxHQUFHLElBQUksWUFBWSxFQUFFO1lBQzFCLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzt3R0FSUSxXQUFXO3NHQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQSVBFTUFQUElOR1MgfSBmcm9tICcuL2R5bmFtaWNQaXBlTWFwcGluZyc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdkeW5hbWljUGlwZScgfSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWUsIGFyZ3M6IGFueSk6IGFueSB7XHJcbiAgICAgICAgZm9yIChsZXQgdmFsIG9mIFBJUEVNQVBQSU5HUykge1xyXG4gICAgICAgICAgICBpZiAodmFsLnZhbHVlID09PSBhcmdzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsLnBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,5 +1,5 @@
1
- import { CurrencyPipe } from '@angular/common';
2
- export const PIPEMAPPINGS = [
3
- { value: '$', pipe: new CurrencyPipe('en-US') }
4
- ];
1
+ import { CurrencyPipe } from '@angular/common';
2
+ export const PIPEMAPPINGS = [
3
+ { value: '$', pipe: new CurrencyPipe('en-US') }
4
+ ];
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY1BpcGVNYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZWRpdGFibGUtc2F2YWJsZS1pbnB1dC9keW5hbWljUGlwZU1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUN4QixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFO0NBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBJUEVNQVBQSU5HUyA9IFtcclxuICAgIHsgdmFsdWU6ICckJywgcGlwZTogbmV3IEN1cnJlbmN5UGlwZSgnZW4tVVMnKSB9XHJcbl07Il19
@@ -0,0 +1,128 @@
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
+ saveWasClicked = new EventEmitter();
11
+ defaultvalue;
12
+ inputType;
13
+ newLabel;
14
+ headerLabel;
15
+ showUnit = false;
16
+ unit;
17
+ unitType;
18
+ isEditable = true;
19
+ showHeader = true;
20
+ value = "";
21
+ isAddClickedOn = false;
22
+ isUpdated = false;
23
+ showEdit = false;
24
+ constructor() { }
25
+ ngOnInit() {
26
+ this.initialize();
27
+ }
28
+ initialize() {
29
+ if (this.value == "") {
30
+ this.isUpdated = false;
31
+ }
32
+ else {
33
+ this.isUpdated = true;
34
+ }
35
+ }
36
+ onClickAdd() {
37
+ this.isAddClickedOn = true;
38
+ }
39
+ onClickCancel() {
40
+ this.isAddClickedOn = false;
41
+ }
42
+ onClickSave(input) {
43
+ this.isAddClickedOn = false;
44
+ let value = input.value;
45
+ if (value.trim().length == 0) {
46
+ this.isUpdated = false;
47
+ }
48
+ else {
49
+ this.isUpdated = true;
50
+ }
51
+ this.value = value;
52
+ this.saveWasClicked.emit(value);
53
+ this.propagateChange(this.value);
54
+ }
55
+ onClickEdit() {
56
+ this.isAddClickedOn = true;
57
+ }
58
+ onMouseEnter() {
59
+ this.showEdit = true;
60
+ }
61
+ onMouseLeave() {
62
+ this.showEdit = false;
63
+ }
64
+ writeValue(value) {
65
+ if (value) {
66
+ this.value = value;
67
+ this.isUpdated = true;
68
+ }
69
+ }
70
+ // registers 'fn' that will be fired wheb changes are made
71
+ // this is how we emit the changes back to the form
72
+ registerOnChange(fn) {
73
+ this.propagateChange = fn;
74
+ }
75
+ registerOnTouched(fn) {
76
+ this.propogateTouch = fn;
77
+ }
78
+ // the method set in registerOnChange to emit changes back to the form
79
+ propagateChange = (_) => { };
80
+ propogateTouch = () => { };
81
+ onChange($event) {
82
+ //this.propagateChange(this.value);
83
+ }
84
+ updateBlur() {
85
+ this.propogateTouch();
86
+ }
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditableSavableInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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,
89
+ {
90
+ provide: NG_VALUE_ACCESSOR,
91
+ useExisting: forwardRef(() => EditableSavableInputComponent),
92
+ multi: true
93
+ }
94
+ ], 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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i4.DynamicPipe, name: "dynamicPipe" }] });
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditableSavableInputComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'editable-savable-input', providers: [DynamicPipe,
99
+ {
100
+ provide: NG_VALUE_ACCESSOR,
101
+ useExisting: forwardRef(() => EditableSavableInputComponent),
102
+ multi: true
103
+ }
104
+ ], 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"] }]
105
+ }], ctorParameters: function () { return []; }, propDecorators: { saveWasClicked: [{
106
+ type: Output
107
+ }], defaultvalue: [{
108
+ type: Input
109
+ }], inputType: [{
110
+ type: Input
111
+ }], newLabel: [{
112
+ type: Input
113
+ }], headerLabel: [{
114
+ type: Input
115
+ }], showUnit: [{
116
+ type: Input
117
+ }], unit: [{
118
+ type: Input
119
+ }], unitType: [{
120
+ type: Input
121
+ }], isEditable: [{
122
+ type: Input
123
+ }], showHeader: [{
124
+ type: Input
125
+ }], value: [{
126
+ type: Input
127
+ }] } });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9lZGl0YWJsZS1zYXZhYmxlLWlucHV0L2VkaXRhYmxlLXNhdmFibGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZWRpdGFibGUtc2F2YWJsZS1pbnB1dC9lZGl0YWJsZS1zYXZhYmxlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFhNUMsTUFBTSxPQUFPLDZCQUE2QjtJQUM5QixjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNyQyxZQUFZLENBQVM7SUFDckIsU0FBUyxDQUFTO0lBQ2xCLFFBQVEsQ0FBUztJQUNqQixXQUFXLENBQVM7SUFDcEIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixJQUFJLENBQVM7SUFDYixRQUFRLENBQVM7SUFDakIsVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDNUIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFMUIsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtR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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRHluYW1pY1BpcGUgfSBmcm9tICcuL2R5bmFtaWNQaXBlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlZGl0YWJsZS1zYXZhYmxlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdGFibGUtc2F2YWJsZS1pbnB1dC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbRHluYW1pY1BpcGUsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0YWJsZVNhdmFibGVJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdGFibGVTYXZhYmxlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBAT3V0cHV0KCkgc2F2ZVdhc0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgZGVmYXVsdHZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW5wdXRUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmV3TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWFkZXJMYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dVbml0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdW5pdDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVuaXRUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNFZGl0YWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNBZGRDbGlja2VkT246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1VwZGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RWRpdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09IFwiXCIpIHtcclxuICAgICAgdGhpcy5pc1VwZGF0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmlzVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQWRkKCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1NhdmUoaW5wdXQpIHtcclxuICAgIHRoaXMuaXNBZGRDbGlja2VkT24gPSBmYWxzZTtcclxuICAgIGxldCB2YWx1ZSA9IGlucHV0LnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlLnRyaW0oKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICB0aGlzLmlzVXBkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNVcGRhdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2F2ZVdhc0NsaWNrZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tFZGl0KCkge1xyXG4gICAgdGhpcy5pc0FkZENsaWNrZWRPbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlRW50ZXIoKSB7XHJcbiAgICB0aGlzLnNob3dFZGl0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgIHRoaXMuc2hvd0VkaXQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pc1VwZGF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZWIgY2hhbmdlcyBhcmUgbWFkZVxyXG4gIC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5wcm9wb2dhdGVUb3VjaCA9IGZuO1xyXG4gIH1cclxuICAvLyB0aGUgbWV0aG9kIHNldCBpbiByZWdpc3Rlck9uQ2hhbmdlIHRvIGVtaXQgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBwcm9wb2dhdGVUb3VjaCA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25DaGFuZ2UoJGV2ZW50KSB7XHJcbiAgICAvL3RoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmx1cigpIHtcclxuICAgIHRoaXMucHJvcG9nYXRlVG91Y2goKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInNob3dIZWFkZXJcIiBjbGFzcz1cImhlYWRlclwiPlxyXG4gIHt7aGVhZGVyTGFiZWx9fVxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnY2xvc2VkJzohaXNBZGRDbGlja2VkT24sICdvcGVuJzogaXNBZGRDbGlja2VkT259XCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWNvbnRlbnRcIiAqbmdJZj1cIiFpc0FkZENsaWNrZWRPbiAmJiAhaXNVcGRhdGVkICYmIGlzRWRpdGFibGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFkZFwiIChjbGljayk9XCJvbkNsaWNrQWRkKClcIj5cclxuICAgICAgICB7e2RlZmF1bHR2YWx1ZX19IDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1jb250ZW50XCIgKm5nSWY9XCJpc0FkZENsaWNrZWRPblwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbFwiIGZvcj1cImlucHV0XCI+e3tuZXdMYWJlbH19PC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0IFwiIFtuZ0NsYXNzXT1cInsnaW5wdXQtd2l0aC1hcHBlbmRlZC11bml0Jzogc2hvd1VuaXR9XCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93VW5pdFwiPnt7dW5pdH19PC9zcGFuPlxyXG4gICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAoYmx1cik9XCJ1cGRhdGVCbHVyKClcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiIGlkPVwiaW5wdXRcIiAjaW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpbnB1dC1ib3gnOiBzaG93VW5pdH1cIiBbdHlwZV09XCJpbnB1dFR5cGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlZGl0LWFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBjYW5jZWxcIiAoY2xpY2spPVwib25DbGlja0NhbmNlbCgpXCIgbWF0LXJhaXNlZC1idXR0b24+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzYXZlXCIgKGNsaWNrKT1cIm9uQ2xpY2tTYXZlKGlucHV0KVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlNhdmU8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGRhdGVkLWNvbnRlbnQgY2xvc2VkXCIgKm5nSWY9XCIhaXNBZGRDbGlja2VkT24gJiYgaXNVcGRhdGVkXCIgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxyXG4gICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1pY29uLWNvbnRhaW5lclwiICpuZ0lmPVwic2hvd0VkaXQgJiYgaXNFZGl0YWJsZVwiIChjbGljayk9XCJvbkNsaWNrRWRpdCgpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGVuY2lsLWFsdFwiPjwvaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1cGRhdGVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGRhdGVkLWxhYmVsXCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXRcIj57e25ld0xhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzaG93VW5pdFwiPnt7dmFsdWV9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dVbml0XCIgY2xhc3M9XCJ1cGRhdGVkLXZhbHVlXCI+XHJcbiAgICAgICAgICB7e3ZhbHVlIHwgZHluYW1pY1BpcGU6IHVuaXRUeXBlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,14 @@
1
+ export class EnumOption {
2
+ value;
3
+ label;
4
+ color;
5
+ description;
6
+ disabled;
7
+ constructor(value, label, color, disabled = false) {
8
+ this.value = value;
9
+ this.label = label;
10
+ this.color = color;
11
+ this.disabled = disabled;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1oZWxwZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9lbnVtLWhlbHBlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixLQUFLLENBQVM7SUFDZCxLQUFLLENBQVM7SUFDZCxLQUFLLENBQVM7SUFDZCxXQUFXLENBQVU7SUFDckIsUUFBUSxDQUFXO0lBRW5CLFlBQVksS0FBYSxFQUFFLEtBQWEsRUFBRSxLQUFhLEVBQUUsV0FBb0IsS0FBSztRQUNoRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRW51bU9wdGlvbiB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IG51bWJlciwgbGFiZWw6IHN0cmluZywgY29sb3I6IHN0cmluZywgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5jb2xvciA9IGNvbG9yO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,150 @@
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
+ elRef;
8
+ control;
9
+ errorMessage;
10
+ errorNgSelectMessage;
11
+ showBoxError = true;
12
+ errorDivId;
13
+ beforeBegin = false;
14
+ afterEnd = false;
15
+ validationError = ValidationError;
16
+ statusChangeSubscription;
17
+ constructor(elRef, control) {
18
+ this.elRef = elRef;
19
+ this.control = control;
20
+ }
21
+ ngOnInit() {
22
+ this.statusChangeSubscription = this.control.statusChanges.subscribe((status) => {
23
+ if (status == 'INVALID') {
24
+ this.showError();
25
+ }
26
+ else {
27
+ this.removeError();
28
+ }
29
+ });
30
+ this.control.valueChanges.subscribe({
31
+ next: (response) => {
32
+ if (this.control.errors) {
33
+ this.showError();
34
+ }
35
+ }
36
+ });
37
+ }
38
+ ngOnDestroy() {
39
+ this.statusChangeSubscription.unsubscribe();
40
+ }
41
+ handleBlurEvent(event) {
42
+ if (this.control.errors) {
43
+ this.showError();
44
+ }
45
+ else {
46
+ this.removeError();
47
+ }
48
+ }
49
+ showError() {
50
+ this.removeError();
51
+ const valErrors = this.control.errors;
52
+ const keys = Object.keys(valErrors);
53
+ for (let i = 0; i < keys.length; i++) {
54
+ switch (keys[i]) {
55
+ case 'minlength': {
56
+ let message = this.validationError.getRelevantError(keys[i], valErrors.minlength.requiredLength);
57
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
58
+ break;
59
+ }
60
+ case 'required': {
61
+ let message = this.validationError.getRelevantError(keys[i], valErrors);
62
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
63
+ this.control.control.setErrors({ 'required': true, 'message': message }, { emitEvent: false });
64
+ break;
65
+ }
66
+ case 'maxlength': {
67
+ let message = this.validationError.getRelevantError(keys[i], valErrors.maxlength.requiredLength);
68
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
69
+ this.control.control.setErrors({ 'maxlength': { 'requiredLength': valErrors.maxlength.requiredLength }, 'message': message }, { emitEvent: false });
70
+ break;
71
+ }
72
+ case 'max': {
73
+ let message = this.validationError.getRelevantError(keys[i], valErrors.max.max);
74
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
75
+ this.control.control.setErrors({ 'message': message, 'max': { 'max': valErrors.max.max } }, { emitEvent: false });
76
+ break;
77
+ }
78
+ case 'min': {
79
+ let message = this.validationError.getRelevantError(keys[i], valErrors.min.min);
80
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
81
+ break;
82
+ }
83
+ case 'pattern': {
84
+ let message = this.validationError.getRelevantError(keys[i], valErrors.pattern.requiredPattern);
85
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
86
+ break;
87
+ }
88
+ case 'email': {
89
+ let message = this.validationError.getRelevantError(keys[i], valErrors);
90
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
91
+ break;
92
+ }
93
+ case 'invalidIntegerNumber': {
94
+ let message = this.validationError.getRelevantError(keys[i], valErrors);
95
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
96
+ break;
97
+ }
98
+ case 'invalidPositiveInteger': {
99
+ let message = this.validationError.getRelevantError(keys[i], valErrors);
100
+ this.errorMessage += ` ${this.errorMessage ? "<br>" : ""}${"\u25CF " + message}`;
101
+ this.control.control.setErrors({ 'invalidPositiveInteger': true, 'message': message }, { emitEvent: false });
102
+ break;
103
+ }
104
+ }
105
+ }
106
+ if (this.showBoxError) {
107
+ 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>';
108
+ if (!this.beforeBegin && !this.afterEnd)
109
+ this.elRef.nativeElement.parentElement.parentElement.parentElement.parentElement.insertAdjacentHTML('afterend', errDiv);
110
+ else if (this.beforeBegin)
111
+ this.elRef.nativeElement.insertAdjacentHTML('beforebegin', errDiv);
112
+ else if (this.afterEnd)
113
+ this.elRef.nativeElement.insertAdjacentHTML('afterend', errDiv);
114
+ else
115
+ throw Error("Adjustment not specified ");
116
+ }
117
+ }
118
+ removeError() {
119
+ this.errorMessage = "";
120
+ const errorElement = document.getElementById(this.errorDivId);
121
+ if (errorElement) {
122
+ errorElement.remove();
123
+ }
124
+ }
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
126
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormControlValidationMsgDirectiveForInput, selector: "[appFormControlValidationMsgForInputs]", inputs: { showBoxError: "showBoxError", errorDivId: "errorDivId", beforeBegin: "beforeBegin", afterEnd: "afterEnd" }, host: { listeners: { "blur": "handleBlurEvent($event)" } }, providers: [NgModel], ngImport: i0 });
127
+ }
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormControlValidationMsgDirectiveForInput, decorators: [{
129
+ type: Directive,
130
+ args: [{
131
+ selector: '[appFormControlValidationMsgForInputs]',
132
+ providers: [NgModel],
133
+ }]
134
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl }]; }, propDecorators: { showBoxError: [{
135
+ type: Input,
136
+ args: ['showBoxError']
137
+ }], errorDivId: [{
138
+ type: Input,
139
+ args: ['errorDivId']
140
+ }], beforeBegin: [{
141
+ type: Input,
142
+ args: ['beforeBegin']
143
+ }], afterEnd: [{
144
+ type: Input,
145
+ args: ['afterEnd']
146
+ }], handleBlurEvent: [{
147
+ type: HostListener,
148
+ args: ['blur', ["$event"]]
149
+ }] } });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZm9ybWNvbnRyb2wtdmFsaWRhdGlvbi1tc2cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFhLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQU14RSxNQUFNLE9BQU8seUNBQXlDO0lBVzFDO0lBQ0E7SUFYVCxZQUFZLENBQU07SUFDbkIsb0JBQW9CLENBQU07SUFDSCxZQUFZLEdBQVUsSUFBSSxDQUFDO0lBQzdCLFVBQVUsQ0FBTTtJQUNmLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDaEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUM3QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ2xDLHdCQUF3QixDQUFlO0lBRXZDLFlBQ1UsS0FBaUIsRUFDakIsT0FBa0I7UUFEbEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQ3hCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDbEUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBRWxCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMs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QztvQkFDVCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ3JCO3lIQUl3QixZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ0EsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNHLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDRCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBa0NqQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPbkluaXQsIE9uRGVzdHJveSwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBOZ01vZGVsLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9zZXJ2aWNlcy92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dGb3JJbnB1dHNdJyxcclxuICBwcm92aWRlcnM6IFtOZ01vZGVsXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0RpcmVjdGl2ZUZvcklucHV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICBlcnJvck1lc3NhZ2U6IGFueTtcclxuICBlcnJvck5nU2VsZWN0TWVzc2FnZTogYW55O1xyXG4gIEBJbnB1dCgnc2hvd0JveEVycm9yJykgc2hvd0JveEVycm9yOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCdlcnJvckRpdklkJykgZXJyb3JEaXZJZDogYW55O1xyXG4gIEBJbnB1dCgnYmVmb3JlQmVnaW4nKSBiZWZvcmVCZWdpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnYWZ0ZXJFbmQnKSBhZnRlckVuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25FcnJvciA9IFZhbGlkYXRpb25FcnJvcjtcclxuICBzdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKHN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT0gJ0lOVkFMSUQnKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcigpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmVycm9ycykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFtcIiRldmVudFwiXSlcclxuICBoYW5kbGVCbHVyRXZlbnQoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc2hvd0Vycm9yKCkge1xyXG4gICAgdGhpcy5yZW1vdmVFcnJvcigpO1xyXG4gICAgY29uc3QgdmFsRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gdGhpcy5jb250cm9sLmVycm9ycztcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWxFcnJvcnMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHN3aXRjaCAoa2V5c1tpXSkge1xyXG4gICAgICAgIGNhc2UgJ21pbmxlbmd0aCc6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ3JlcXVpcmVkJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAncmVxdWlyZWQnOiB0cnVlLCAnbWVzc2FnZSc6IG1lc3NhZ2UgfSx7IGVtaXRFdmVudDpmYWxzZX0pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbWF4bGVuZ3RoJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGgpO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHsgJ21heGxlbmd0aCc6IHsgJ3JlcXVpcmVkTGVuZ3RoJzogdmFsRXJyb3JzLm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aCB9LCAnbWVzc2FnZSc6IG1lc3NhZ2V9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdtYXgnOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzLm1heC5tYXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAnbWVzc2FnZSc6IG1lc3NhZ2UsICdtYXgnOiB7ICdtYXgnOiB2YWxFcnJvcnMubWF4Lm1heCB9IH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21pbic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMubWluLm1pblxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSAncGF0dGVybic6IHtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy52YWxpZGF0aW9uRXJyb3IuZ2V0UmVsZXZhbnRFcnJvcihrZXlzW2ldLCB2YWxFcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm4pO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgKz0gYCAke3RoaXMuZXJyb3JNZXNzYWdlID8gXCI8YnI+XCIgOiBcIlwifSR7XCJcXHUyNUNGIFwiICsgbWVzc2FnZX1gO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ2VtYWlsJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnaW52YWxpZEludGVnZXJOdW1iZXInOiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbkVycm9yLmdldFJlbGV2YW50RXJyb3Ioa2V5c1tpXSwgdmFsRXJyb3JzKTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlICs9IGAgJHt0aGlzLmVycm9yTWVzc2FnZSA/IFwiPGJyPlwiIDogXCJcIn0ke1wiXFx1MjVDRiBcIiArIG1lc3NhZ2V9YDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdpbnZhbGlkUG9zaXRpdmVJbnRlZ2VyJzoge1xyXG4gICAgICAgICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnZhbGlkYXRpb25FcnJvci5nZXRSZWxldmFudEVycm9yKGtleXNbaV0sIHZhbEVycm9ycyk7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSArPSBgICR7dGhpcy5lcnJvck1lc3NhZ2UgPyBcIjxicj5cIiA6IFwiXCJ9JHtcIlxcdTI1Q0YgXCIgKyBtZXNzYWdlfWA7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoeyAnaW52YWxpZFBvc2l0aXZlSW50ZWdlcic6IHRydWUsICdtZXNzYWdlJzogbWVzc2FnZSB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dCb3hFcnJvcil7XHJcbiAgICBjb25zdCBlcnJEaXYgPSAnPGRpdiBzdHlsZT1cImNvbG9yOiNDMzQyNDM7IHdpZHRoPTEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNGRkRCREI7IHBhZGRpbmc6IDFyZW07IGJvcmRlci1yYWRpdXM6IC41cmVtOyBib3JkZXI6IC4xcmVtIHNvbGlkICNBODAwMDIgO2JvcmRlci1sZWZ0OiAuNzVyZW0gc29saWQgI0E4MDAwMjsgIG1hcmdpbi10b3A6LjVyZW07ICBmb250LXNpemU6IDEuMnJlbTsgXCIgaWQ9XCInICsgdGhpcy5lcnJvckRpdklkICsgJ1wiPicgKyAnPGgzICAgc3R5bGU9IFwiIGZvbnQtc2l6ZTogMS4zcmVtOyAgbWFyZ2luLWJvdHRvbTouNXJlbTsgbWFyZ2luOjA7ICBjb2xvcjogI0E4MDAwMjsgZm9udC13ZWlnaHQ6IDcwMDsgbGluZS1oZWlnaHQ6IDEuNnJlbTtcIj4nICsgJ1BsZWFzZSBDb21wbGV0ZSBhbGwgZGV0YWlscycgKyAnPC9oMz4nICsgdGhpcy5lcnJvck1lc3NhZ2UgKyAnPC9kaXY+JztcclxuICAgIGlmICghdGhpcy5iZWZvcmVCZWdpbiAmJiAhdGhpcy5hZnRlckVuZClcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGVyckRpdik7XHJcbiAgICBlbHNlIGlmICh0aGlzLmJlZm9yZUJlZ2luKVxyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmViZWdpbicsIGVyckRpdik7XHJcbiAgICBlbHNlIGlmICh0aGlzLmFmdGVyRW5kKVxyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIGVyckRpdik7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRocm93IEVycm9yKFwiQWRqdXN0bWVudCBub3Qgc3BlY2lmaWVkIFwiKTtcclxuICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVtb3ZlRXJyb3IoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBjb25zdCBlcnJvckVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVycm9yRGl2SWQpO1xyXG4gICAgaWYgKGVycm9yRWxlbWVudCkge1xyXG4gICAgICBlcnJvckVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,63 @@
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
+ control;
8
+ valueSubscription;
9
+ constructor(control) {
10
+ this.control = control;
11
+ }
12
+ ngOnInit() {
13
+ if (this.control.value) {
14
+ this.control.valueAccessor.writeValue(this.transformToCommasAndPoint(this.control.value));
15
+ }
16
+ this.valueSubscription = this.control.control.valueChanges.subscribe(value => {
17
+ if (value.length > 0) {
18
+ let removeCommas = this.control.value.replace(/,/g, '');
19
+ this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });
20
+ }
21
+ else {
22
+ this.control.control.setValue(null, { emitEvent: false, emitModelToViewChange: false });
23
+ }
24
+ });
25
+ }
26
+ onEvent($event) {
27
+ if (this.control.value) {
28
+ const item = $event.target;
29
+ item.value = this.transformToCommasAndPoint(this.control.value);
30
+ let removeCommas = this.control.value.replace(/,/g, '');
31
+ this.control.control.setValue(removeCommas, { emitEvent: false, emitModelToViewChange: false });
32
+ }
33
+ }
34
+ transformToCommasAndPoint(value) {
35
+ if (value.indexOf(".") == -1) {
36
+ value = value.toString().replace(/\D/g, "")
37
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
38
+ return value;
39
+ }
40
+ else {
41
+ let val = value.split(".");
42
+ let valueBeforeDecimal = val[0];
43
+ let valueAfterDecimal = val[1];
44
+ valueBeforeDecimal = valueBeforeDecimal.toString().replace(/\D/g, "")
45
+ .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
46
+ let newValue = `${valueBeforeDecimal}.${valueAfterDecimal}`;
47
+ return newValue;
48
+ }
49
+ }
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDecimalPointTwoDigitsDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
51
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomDecimalPointTwoDigitsDirective, selector: "[customDecimalPointTwoDigits]", host: { listeners: { "input": "onEvent($event)" } }, providers: [NgModel, DecimalPipe], ngImport: i0 });
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDecimalPointTwoDigitsDirective, decorators: [{
54
+ type: Directive,
55
+ args: [{
56
+ selector: '[customDecimalPointTwoDigits]',
57
+ providers: [NgModel, DecimalPipe],
58
+ }]
59
+ }], ctorParameters: function () { return [{ type: i1.NgControl }]; }, propDecorators: { onEvent: [{
60
+ type: HostListener,
61
+ args: ["input", ["$event"]]
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRlY2ltYWwtcG9pbnQtdHdvLWRpZ2l0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9nZW5lcmFsLWlucHV0LXJlbmRlcmVyL2N1c3RvbS1kZWNpbWFsLXBvaW50LXR3by1kaWdpdHMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQWEsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9wRCxNQUFNLE9BQU8sb0NBQW9DO0lBR3JDO0lBRlYsaUJBQWlCLENBQU07SUFDdkIsWUFDVSxPQUFrQjtRQUFsQixZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQ3hCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzRjtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUNsRSxLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDakc7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN6RjtRQUNILENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVrQyxPQUFPLENBQUMsTUFBTTtRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRSxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDakc7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBSztRQUM3QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztpQkFDeEMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7YUFBTTtZQUNMLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0Isa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7aUJBQ2xFLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLFFBQVEsR0FBRyxHQUFHLGtCQUFrQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDNUQsT0FBTyxRQUFRLENBQUM7U0FDakI7SUFDSCxDQUFDO3dHQTlDVSxvQ0FBb0M7NEZBQXBDLG9DQUFvQyw2R0FGcEMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDOzs0RkFFdEIsb0NBQW9DO2tCQUpoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7aUJBQ2xDO2dHQXdCb0MsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2N1c3RvbURlY2ltYWxQb2ludFR3b0RpZ2l0c10nLFxyXG4gIHByb3ZpZGVyczogW05nTW9kZWwsIERlY2ltYWxQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbURlY2ltYWxQb2ludFR3b0RpZ2l0c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdmFsdWVTdWJzY3JpcHRpb246IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3Nvci53cml0ZVZhbHVlKHRoaXMudHJhbnNmb3JtVG9Db21tYXNBbmRQb2ludCh0aGlzLmNvbnRyb2wudmFsdWUpKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGxldCByZW1vdmVDb21tYXMgPSB0aGlzLmNvbnRyb2wudmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShyZW1vdmVDb21tYXMsIHsgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImlucHV0XCIsIFtcIiRldmVudFwiXSkgb25FdmVudCgkZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgY29uc3QgaXRlbSA9ICRldmVudC50YXJnZXQ7XHJcbiAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLnRyYW5zZm9ybVRvQ29tbWFzQW5kUG9pbnQodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgbGV0IHJlbW92ZUNvbW1hcyA9IHRoaXMuY29udHJvbC52YWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUocmVtb3ZlQ29tbWFzLCB7IGVtaXRFdmVudDogZmFsc2UsIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1Ub0NvbW1hc0FuZFBvaW50KHZhbHVlKSB7XHJcbiAgICBpZiAodmFsdWUuaW5kZXhPZihcIi5cIikgPT0gLTEpIHtcclxuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIik7XHJcbiAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHZhbCA9IHZhbHVlLnNwbGl0KFwiLlwiKTtcclxuICAgICAgbGV0IHZhbHVlQmVmb3JlRGVjaW1hbCA9IHZhbFswXTtcclxuICAgICAgbGV0IHZhbHVlQWZ0ZXJEZWNpbWFsID0gdmFsWzFdO1xyXG4gICAgICB2YWx1ZUJlZm9yZURlY2ltYWwgPSB2YWx1ZUJlZm9yZURlY2ltYWwudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywgXCJcIilcclxuICAgICAgICAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpO1xyXG4gICAgICBsZXQgbmV3VmFsdWUgPSBgJHt2YWx1ZUJlZm9yZURlY2ltYWx9LiR7dmFsdWVBZnRlckRlY2ltYWx9YDtcclxuICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,50 @@
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
+ params;
11
+ key;
12
+ value;
13
+ formGroup;
14
+ formControlName;
15
+ constructor() { }
16
+ agInit(params) {
17
+ this.params = params;
18
+ this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex);
19
+ this.key = params.context.createKey(params.columnApi, params.column);
20
+ if (params.isTypeNumber) {
21
+ if (params.value) {
22
+ this.value = new DecimalPipe("en-US").transform(+params.value, "1.0-0");
23
+ }
24
+ }
25
+ else {
26
+ this.value = params.value;
27
+ }
28
+ }
29
+ onCellDataChanged($event) {
30
+ let value = $event.target.value;
31
+ let newAndOldValue = {
32
+ newValue: value,
33
+ oldValue: this.params?.value
34
+ };
35
+ if (this.params.allowUpdateRowData) {
36
+ this.params.onChange(newAndOldValue);
37
+ }
38
+ }
39
+ refresh(params) {
40
+ this.formGroup = this.params.context.formGroup.get('entries').at(params.node.rowIndex);
41
+ return true;
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneralInputRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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"] }] });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeneralInputRendererComponent, decorators: [{
47
+ type: Component,
48
+ 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"] }]
49
+ }], ctorParameters: function () { return []; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnB1dHMvc3JjL2xpYi9nZW5lcmFsLWlucHV0LXJlbmRlcmVyL2dlbmVyYWwtaW5wdXQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9saWIvZ2VuZXJhbC1pbnB1dC1yZW5kZXJlci9nZW5lcmFsLWlucHV0LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUzFDLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsTUFBTSxDQUFNO0lBQ1osR0FBRyxDQUFDO0lBQ0osS0FBSyxDQUFDO0lBQ04sU0FBUyxDQUFNO0lBQ2YsZUFBZSxDQUFDO0lBRWhCLGdCQUFnQixDQUFDO0lBRWpCLE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQWMsQ0FBQztRQUNwRyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUM3QyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsT0FBTyxDQUNSLENBQUM7YUFDSDtTQUNGO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBTTtRQUN0QixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLGNBQWMsR0FBRztZQUNuQixRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUs7U0FDN0IsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsTUFBVztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQXhDVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixtRUNWMUMscXZFQW9DTTs7NEZEMUJPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dlbmVyYWwtaW5wdXQtcmVuZGVyZXItdGVzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYWwtaW5wdXQtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dlbmVyYWwtaW5wdXQtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhbElucHV0UmVuZGVyZXJDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xyXG4gIHBhcmFtczogYW55O1xyXG4gIGtleTtcclxuICB2YWx1ZTtcclxuICBmb3JtR3JvdXA6IGFueTtcclxuICBmb3JtQ29udHJvbE5hbWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMucGFyYW1zLmNvbnRleHQuZm9ybUdyb3VwLmdldCgnZW50cmllcycpLmF0KHBhcmFtcy5ub2RlLnJvd0luZGV4KSBhcyBGb3JtR3JvdXA7XHJcbiAgICB0aGlzLmtleSA9IHBhcmFtcy5jb250ZXh0LmNyZWF0ZUtleShwYXJhbXMuY29sdW1uQXBpLCBwYXJhbXMuY29sdW1uKTtcclxuICAgIGlmIChwYXJhbXMuaXNUeXBlTnVtYmVyKSB7XHJcbiAgICAgIGlmIChwYXJhbXMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERlY2ltYWxQaXBlKFwiZW4tVVNcIikudHJhbnNmb3JtKFxyXG4gICAgICAgICAgK3BhcmFtcy52YWx1ZSxcclxuICAgICAgICAgIFwiMS4wLTBcIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DZWxsRGF0YUNoYW5nZWQoJGV2ZW50KSB7XHJcbiAgICBsZXQgdmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgbGV0IG5ld0FuZE9sZFZhbHVlID0ge1xyXG4gICAgICBuZXdWYWx1ZTogdmFsdWUsXHJcbiAgICAgIG9sZFZhbHVlOiB0aGlzLnBhcmFtcz8udmFsdWVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBhcmFtcy5hbGxvd1VwZGF0ZVJvd0RhdGEpIHtcclxuICAgICAgdGhpcy5wYXJhbXMub25DaGFuZ2UobmV3QW5kT2xkVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaChwYXJhbXM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLnBhcmFtcy5jb250ZXh0LmZvcm1Hcm91cC5nZXQoJ2VudHJpZXMnKS5hdChwYXJhbXMubm9kZS5yb3dJbmRleCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn0iLCI8ZGl2ICpuZ0lmPVwiZm9ybUdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJwYXJhbXMuaXNUeXBlVGV4dFwiPlxyXG4gICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwicGFyYW1zLmZpZWxkTGFiZWxcImFwcEZvcm1Db250cm9sVmFsaWRhdGlvbk1zZ0ZvcklucHV0cyBbc2hvd0JveEVycm9yXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2Vycm9yRGl2SWRdPVwiJ3RleHQnXCIgXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DZWxsRGF0YUNoYW5nZWQoJGV2ZW50KVwiIFtmb3JtQ29udHJvbE5hbWVdPVwia2V5XCIgLz5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInBhcmFtcy5zaG93U3ltYm9sXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDotMjBweCA7XCI+e3twYXJhbXMuc3ltYm9sfX08L3NwYW4+XHJcbiAgICAgICAgPHNob3ctdGFibGUtZXJyb3JzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLmdldCh0aGlzLmtleSkuZXJyb3JzICYmIGZvcm1Hcm91cC5nZXQodGhpcy5rZXkpICYmIGZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLnRvdWNoZWRcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS5lcnJvcnMubWVzc2FnZVwiPjwvc2hvdy10YWJsZS1lcnJvcnM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJwYXJhbXMuaXNUeXBlTnVtYmVyXCI+XHJcbiAgICAgICAgPGlucHV0IGN1c3RvbURlY2ltYWxQb2ludFR3b0RpZ2l0cyAgYXBwRm9ybUNvbnRyb2xWYWxpZGF0aW9uTXNnRm9ySW5wdXRzIFtzaG93Qm94RXJyb3JdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbZXJyb3JEaXZJZF09XCInbnVtYmVyJ1wiIFtwbGFjZWhvbGRlcl09XCJwYXJhbXMuZmllbGRMYWJlbFwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DZWxsRGF0YUNoYW5nZWQoJGV2ZW50KVwiIFtmb3JtQ29udHJvbE5hbWVdPVwia2V5XCIgLz5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInBhcmFtcy5zaG93U3ltYm9sXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDotMjBweCA7XCI+e3twYXJhbXMuc3ltYm9sfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c2hvdy10YWJsZS1lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLmVycm9ycyAmJiBmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS50b3VjaGVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS5lcnJvcnMubWVzc2FnZVwiPjwvc2hvdy10YWJsZS1lcnJvcnM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJwYXJhbXMuaXNUeXBlSW50ZWdlck51bWJlclwiPlxyXG4gICAgICAgIDxpbnB1dCBhcHBGb3JtQ29udHJvbFZhbGlkYXRpb25Nc2dGb3JJbnB1dHMgW3Nob3dCb3hFcnJvcl09XCJmYWxzZVwidHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgIFtlcnJvckRpdklkXT1cIidpbnRlZ2VyJ1wiIFtwbGFjZWhvbGRlcl09XCJwYXJhbXMuZmllbGRMYWJlbFwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DZWxsRGF0YUNoYW5nZWQoJGV2ZW50KVwiIFtmb3JtQ29udHJvbE5hbWVdPVwia2V5XCIgLz5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInBhcmFtcy5zaG93U3ltYm9sXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDotMjBweCA7XCI+e3twYXJhbXMuc3ltYm9sfX08L3NwYW4+XHJcbiAgICAgICAgPHNob3ctdGFibGUtZXJyb3JzXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybUdyb3VwLmdldCh0aGlzLmtleSkuZXJyb3JzICYmIGZvcm1Hcm91cC5nZXQodGhpcy5rZXkpLnRvdWNoZWRcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJmb3JtR3JvdXAuZ2V0KHRoaXMua2V5KS5lcnJvcnMubWVzc2FnZVwiPjwvc2hvdy10YWJsZS1lcnJvcnM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJwYXJhbXMuaXNUeXBlVGV4dEFyZWFcIj5cclxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJ0ZXh0LWFyZWFcIiAoY2hhbmdlKT1cIm9uQ2VsbERhdGFDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGFyYW1zLmZpZWxkTGFiZWxcIiBjbGFzcz1cIm1haW4taGVpZ2h0XCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIj48L3RleHRhcmVhPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==