@wemake4u/form-player-se 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directives/date.directive.mjs +93 -0
- package/esm2022/lib/directives/disable.directive.mjs +18 -4
- package/esm2022/lib/directives/number.directive.mjs +108 -0
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +16 -7
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +18 -30
- package/esm2022/lib/locale/locale-it.mjs +2 -1
- package/esm2022/lib/utils/gridCells.mjs +10 -7
- package/esm2022/lib/utils/gridUtils.mjs +75 -0
- package/fesm2022/wemake4u-form-player-se.mjs +339 -59
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/directives/date.directive.d.ts +8 -0
- package/lib/directives/disable.directive.d.ts +5 -2
- package/lib/directives/number.directive.d.ts +16 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +1 -0
- package/lib/dynamic-form/dynamic-form.component.d.ts +1 -1
- package/lib/locale/locale-it.d.ts +1 -0
- package/lib/utils/gridCells.d.ts +34 -0
- package/lib/utils/gridUtils.d.ts +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Directive, Host } from '@angular/core';
|
|
2
|
+
import { Datepicker } from 'vanillajs-datepicker';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-sirio-lib";
|
|
5
|
+
export class DateDirective {
|
|
6
|
+
sirioDatepicker;
|
|
7
|
+
constructor(sirioDatepicker) {
|
|
8
|
+
this.sirioDatepicker = sirioDatepicker;
|
|
9
|
+
const registerOnChange = this.sirioDatepicker.registerOnChange.bind(this.sirioDatepicker);
|
|
10
|
+
this.sirioDatepicker.registerOnChange = function (fn) {
|
|
11
|
+
registerOnChange(function (value) {
|
|
12
|
+
fn(dateToStore(value));
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
const writeValue = this.sirioDatepicker.writeValue.bind(this.sirioDatepicker);
|
|
16
|
+
this.sirioDatepicker.writeValue = function (value, event, updateCalendar) {
|
|
17
|
+
writeValue(dateToDisplay(value), event, updateCalendar);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateDirective, deps: [{ token: i1.SirioDatepickerComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DateDirective, isStandalone: true, selector: "[isoDate]", ngImport: i0 });
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateDirective, decorators: [{
|
|
24
|
+
type: Directive,
|
|
25
|
+
args: [{
|
|
26
|
+
selector: '[isoDate]',
|
|
27
|
+
standalone: true
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.SirioDatepickerComponent, decorators: [{
|
|
30
|
+
type: Host
|
|
31
|
+
}] }] });
|
|
32
|
+
const dislayFormat = 'dd/mm/yyyy';
|
|
33
|
+
const storeFormat = 'yyyy-mm-dd';
|
|
34
|
+
function dateToDisplay(value) {
|
|
35
|
+
if (typeof value === "string") {
|
|
36
|
+
const date = parseStore(value) ?? parseDisplay(value);
|
|
37
|
+
return (date == null)
|
|
38
|
+
? null
|
|
39
|
+
: Datepicker.formatDate(date, dislayFormat, 'it');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function dateToStore(value) {
|
|
46
|
+
if (typeof value === "string") {
|
|
47
|
+
const date = parseStore(value) ?? parseDisplay(value);
|
|
48
|
+
return (date == null)
|
|
49
|
+
? null
|
|
50
|
+
: Datepicker.formatDate(date, storeFormat, 'it');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function parseDisplay(value) {
|
|
57
|
+
const regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
|
|
58
|
+
const match = value.match(regex);
|
|
59
|
+
if (!match)
|
|
60
|
+
return null;
|
|
61
|
+
const day = parseInt(match[1], 10);
|
|
62
|
+
const month = parseInt(match[2], 10);
|
|
63
|
+
const year = parseInt(match[3], 10);
|
|
64
|
+
const date = new Date(year, month - 1, day);
|
|
65
|
+
if (date.getFullYear() === year &&
|
|
66
|
+
date.getMonth() === month - 1 &&
|
|
67
|
+
date.getDate() === day) {
|
|
68
|
+
return date;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function parseStore(value) {
|
|
75
|
+
const regex = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
76
|
+
const match = value.match(regex);
|
|
77
|
+
if (!match) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const year = parseInt(match[1], 10);
|
|
81
|
+
const month = parseInt(match[2], 10);
|
|
82
|
+
const day = parseInt(match[3], 10);
|
|
83
|
+
const date = new Date(year, month - 1, day);
|
|
84
|
+
if (date.getFullYear() === year &&
|
|
85
|
+
date.getMonth() === month - 1 &&
|
|
86
|
+
date.getDate() === day) {
|
|
87
|
+
return date;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTWxELE1BQU0sT0FBTyxhQUFhO0lBRUk7SUFBNUIsWUFBNEIsZUFBeUM7UUFBekMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBRW5FLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxFQUFvQjtZQUNwRSxnQkFBZ0IsQ0FBQyxVQUFVLEtBQVU7Z0JBQ25DLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxLQUFVLEVBQUUsS0FBZSxFQUFFLGNBQXdCO1lBQy9GLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQztJQUNKLENBQUM7d0dBakJVLGFBQWE7NEZBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztv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Q0FBQztJQUVuQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUU1QyxJQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJO1FBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO1NBQ0ksQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9EYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IERhdGVwaWNrZXIgfSBmcm9tICd2YW5pbGxhanMtZGF0ZXBpY2tlcic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpc29EYXRlXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpcmVjdGl2ZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBzaXJpb0RhdGVwaWNrZXI6IFNpcmlvRGF0ZXBpY2tlckNvbXBvbmVudCkge1xyXG5cclxuICAgIGNvbnN0IHJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnNpcmlvRGF0ZXBpY2tlci5yZWdpc3Rlck9uQ2hhbmdlLmJpbmQodGhpcy5zaXJpb0RhdGVwaWNrZXIpO1xyXG5cclxuICAgIHRoaXMuc2lyaW9EYXRlcGlja2VyLnJlZ2lzdGVyT25DaGFuZ2UgPSBmdW5jdGlvbiAoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgcmVnaXN0ZXJPbkNoYW5nZShmdW5jdGlvbiAodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGZuKGRhdGVUb1N0b3JlKHZhbHVlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB3cml0ZVZhbHVlID0gdGhpcy5zaXJpb0RhdGVwaWNrZXIud3JpdGVWYWx1ZS5iaW5kKHRoaXMuc2lyaW9EYXRlcGlja2VyKTtcclxuXHJcbiAgICB0aGlzLnNpcmlvRGF0ZXBpY2tlci53cml0ZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlOiBhbnksIGV2ZW50PzogYm9vbGVhbiwgdXBkYXRlQ2FsZW5kYXI/OiBib29sZWFuKSB7XHJcbiAgICAgIHdyaXRlVmFsdWUoZGF0ZVRvRGlzcGxheSh2YWx1ZSksIGV2ZW50LCB1cGRhdGVDYWxlbmRhcik7XHJcbiAgICB9O1xyXG4gIH0gIFxyXG59XHJcblxyXG5jb25zdCBkaXNsYXlGb3JtYXQgPSAnZGQvbW0veXl5eSc7XHJcbmNvbnN0IHN0b3JlRm9ybWF0ID0gJ3l5eXktbW0tZGQnO1xyXG5cclxuZnVuY3Rpb24gZGF0ZVRvRGlzcGxheSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgY29uc3QgZGF0ZSA9IHBhcnNlU3RvcmUodmFsdWUpID8/IHBhcnNlRGlzcGxheSh2YWx1ZSk7XHJcbiAgICByZXR1cm4gKGRhdGUgPT0gbnVsbClcclxuICAgICAgPyBudWxsXHJcbiAgICAgIDogRGF0ZXBpY2tlci5mb3JtYXREYXRlKGRhdGUsIGRpc2xheUZvcm1hdCwgJ2l0Jyk7XHJcbiAgfVxyXG4gIGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSAgXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRhdGVUb1N0b3JlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICBjb25zdCBkYXRlID0gcGFyc2VTdG9yZSh2YWx1ZSkgPz8gcGFyc2VEaXNwbGF5KHZhbHVlKTtcclxuICAgIHJldHVybiAoZGF0ZSA9PSBudWxsKVxyXG4gICAgICA/IG51bGxcclxuICAgICAgOiBEYXRlcGlja2VyLmZvcm1hdERhdGUoZGF0ZSwgc3RvcmVGb3JtYXQsICdpdCcpO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlRGlzcGxheSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xyXG4gIGNvbnN0IHJlZ2V4ID0gL14oXFxkezJ9KVxcLyhcXGR7Mn0pXFwvKFxcZHs0fSkkLztcclxuICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4KTtcclxuICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgY29uc3QgZGF5ID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcclxuICBjb25zdCBtb250aCA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XHJcbiAgY29uc3QgeWVhciA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XHJcblxyXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcblxyXG4gIGlmIChcclxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhciAmJlxyXG4gICAgZGF0ZS5nZXRNb250aCgpID09PSBtb250aCAtIDEgJiZcclxuICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcclxuICApIHtcclxuICAgIHJldHVybiBkYXRlO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGFyc2VTdG9yZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xyXG4gIGNvbnN0IHJlZ2V4ID0gL14oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KSQvO1xyXG4gIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2gocmVnZXgpO1xyXG4gIGlmICghbWF0Y2gpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgeWVhciA9IHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XHJcbiAgY29uc3QgbW9udGggPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xyXG4gIGNvbnN0IGRheSA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XHJcblxyXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcblxyXG4gIGlmIChcclxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhciAmJlxyXG4gICAgZGF0ZS5nZXRNb250aCgpID09PSBtb250aCAtIDEgJiZcclxuICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcclxuICApIHtcclxuICAgIHJldHVybiBkYXRlO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -3,25 +3,39 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/forms";
|
|
4
4
|
export class DisableDirective {
|
|
5
5
|
ngControl;
|
|
6
|
+
el;
|
|
7
|
+
renderer;
|
|
6
8
|
disableControl = null;
|
|
7
9
|
readonly = null;
|
|
8
|
-
constructor(ngControl) {
|
|
10
|
+
constructor(ngControl, el, renderer) {
|
|
9
11
|
this.ngControl = ngControl;
|
|
12
|
+
this.el = el;
|
|
13
|
+
this.renderer = renderer;
|
|
10
14
|
}
|
|
11
15
|
ngOnChanges(changes) {
|
|
12
16
|
if (changes["disableControl"] || changes["readonly"]) {
|
|
13
17
|
if (this.ngControl.control) {
|
|
14
18
|
if (this.disableControl) {
|
|
15
19
|
this.ngControl.control.disable();
|
|
20
|
+
this.addClass(true, 'fp-disabled');
|
|
16
21
|
}
|
|
17
22
|
else {
|
|
18
23
|
this.ngControl.control.enable();
|
|
19
24
|
this.ngControl.valueAccessor?.setDisabledState(this.readonly === true);
|
|
25
|
+
this.addClass(this.readonly === true, 'fp-readonly');
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
|
-
|
|
30
|
+
addClass(value, className) {
|
|
31
|
+
if (value) {
|
|
32
|
+
this.renderer.addClass(this.el.nativeElement, className);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.renderer.removeClass(this.el.nativeElement, className);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, deps: [{ token: i1.NgControl }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
39
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DisableDirective, isStandalone: true, selector: "[disableControl], [readonly]", inputs: { disableControl: "disableControl", readonly: "readonly" }, usesOnChanges: true, ngImport: i0 });
|
|
26
40
|
}
|
|
27
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, decorators: [{
|
|
@@ -30,9 +44,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30
44
|
selector: '[disableControl], [readonly]',
|
|
31
45
|
standalone: true
|
|
32
46
|
}]
|
|
33
|
-
}], ctorParameters: () => [{ type: i1.NgControl }], propDecorators: { disableControl: [{
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.NgControl }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disableControl: [{
|
|
34
48
|
type: Input
|
|
35
49
|
}], readonly: [{
|
|
36
50
|
type: Input
|
|
37
51
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2Rpc2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQzs7O0FBT2xHLE1BQU0sT0FBTyxnQkFBZ0I7SUFJUDtJQUNSO0lBQ0E7SUFMSCxjQUFjLEdBQW1CLElBQUksQ0FBQztJQUN0QyxRQUFRLEdBQW1CLElBQUksQ0FBQztJQUV6QyxZQUFvQixTQUFvQixFQUM1QixFQUFjLEVBQ2QsUUFBbUI7UUFGWCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQzVCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUksQ0FBQztJQUVwQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFxQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYyxFQUFFLFNBQWlCO1FBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO3dHQTdCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0hBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGlzYWJsZUNvbnRyb2xdLCBbcmVhZG9ubHldJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXNhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBkaXNhYmxlQ29udHJvbDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2xcclxuICAgICwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxyXG4gICAgLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcImRpc2FibGVDb250cm9sXCJdIHx8IGNoYW5nZXNbXCJyZWFkb25seVwiXSkge1xyXG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVDb250cm9sKSB7XHJcbiAgICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICAgIHRoaXMuYWRkQ2xhc3ModHJ1ZSwgJ2ZwLWRpc2FibGVkJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciBhcyBhbnkpPy5zZXREaXNhYmxlZFN0YXRlKHRoaXMucmVhZG9ubHkgPT09IHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5hZGRDbGFzcyh0aGlzLnJlYWRvbmx5ID09PSB0cnVlLCAnZnAtcmVhZG9ubHknKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ2xhc3ModmFsdWU6IGJvb2xlYW4sIGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Directive, Host, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "ngx-sirio-lib";
|
|
4
|
+
export class NumberDirective {
|
|
5
|
+
sirioInput;
|
|
6
|
+
defaultValue = null;
|
|
7
|
+
minimum = null;
|
|
8
|
+
maximum = null;
|
|
9
|
+
decimalDigits = null;
|
|
10
|
+
constructor(sirioInput) {
|
|
11
|
+
this.sirioInput = sirioInput;
|
|
12
|
+
const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);
|
|
13
|
+
const coerceValue = (value) => {
|
|
14
|
+
const originalValue = value;
|
|
15
|
+
if (value === null && this.defaultValue !== null) {
|
|
16
|
+
value = this.defaultValue;
|
|
17
|
+
}
|
|
18
|
+
if (value != null) {
|
|
19
|
+
if (this.minimum !== null && value < this.minimum) {
|
|
20
|
+
value = this.minimum;
|
|
21
|
+
}
|
|
22
|
+
if (this.maximum !== null && value > this.maximum) {
|
|
23
|
+
value = this.maximum;
|
|
24
|
+
}
|
|
25
|
+
if (this.decimalDigits != null && this.decimalDigits >= 0) {
|
|
26
|
+
const factor = Math.pow(10, this.decimalDigits);
|
|
27
|
+
value = Math.round(value * factor) / factor;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (originalValue !== value) {
|
|
31
|
+
this.sirioInput.writeValue(value, false);
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
};
|
|
35
|
+
this.sirioInput.registerOnChange = function (fn) {
|
|
36
|
+
registerOnChange(function (value) {
|
|
37
|
+
fn(coerceValue(valueToStore(value)));
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
const input = this.sirioInput.sirioInput.nativeElement;
|
|
43
|
+
input.addEventListener('keydown', (event) => {
|
|
44
|
+
const e = event;
|
|
45
|
+
if (e.key === '.'
|
|
46
|
+
|| (e.key === ',' && !this.acceptDecimal())
|
|
47
|
+
|| (e.key === '-' && !this.acceptSign())) {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
input.addEventListener('paste', (event) => {
|
|
52
|
+
const e = event;
|
|
53
|
+
const text = e.clipboardData?.getData('text') || '';
|
|
54
|
+
if (text.includes('.')
|
|
55
|
+
|| (text.includes(',') && !this.acceptDecimal())
|
|
56
|
+
|| (text.includes('-') && !this.acceptSign())) {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
acceptSign() {
|
|
62
|
+
if (this.minimum !== null && this.minimum >= 0) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
acceptDecimal() {
|
|
68
|
+
if (this.decimalDigits !== null && this.decimalDigits === 0) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberDirective, deps: [{ token: i1.SirioInputComponent, host: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
74
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NumberDirective, isStandalone: true, selector: "[number]", inputs: { defaultValue: "defaultValue", minimum: "minimum", maximum: "maximum", decimalDigits: "decimalDigits" }, ngImport: i0 });
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberDirective, decorators: [{
|
|
77
|
+
type: Directive,
|
|
78
|
+
args: [{
|
|
79
|
+
selector: '[number]',
|
|
80
|
+
standalone: true
|
|
81
|
+
}]
|
|
82
|
+
}], ctorParameters: () => [{ type: i1.SirioInputComponent, decorators: [{
|
|
83
|
+
type: Host
|
|
84
|
+
}] }], propDecorators: { defaultValue: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], minimum: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], maximum: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], decimalDigits: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}] } });
|
|
93
|
+
function valueToStore(value) {
|
|
94
|
+
if (typeof value === "string") {
|
|
95
|
+
if (value.trim() === '') {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const numericValue = parseFloat(value);
|
|
99
|
+
if (isNaN(numericValue)) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return numericValue;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvbnVtYmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFNRTtJQUxuQixZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUU3QyxZQUE0QixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUV6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRixNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQW9CLEVBQWlCLEVBQUU7WUFDMUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTVCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNqRCxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDbEQsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcs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bkZVLGVBQWU7NEZBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFPYyxJQUFJO3lDQUxSLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLOztBQWtGUixTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztTQUNJLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBBZnRlclZpZXdJbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaXJpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tudW1iZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1pbmltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1heGltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxEaWdpdHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgc2lyaW9JbnB1dDogU2lyaW9JbnB1dENvbXBvbmVudCkge1xyXG5cclxuICAgIGNvbnN0IHJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnNpcmlvSW5wdXQucmVnaXN0ZXJPbkNoYW5nZS5iaW5kKHRoaXMuc2lyaW9JbnB1dCk7XHJcblxyXG4gICAgY29uc3QgY29lcmNlVmFsdWUgPSAodmFsdWU6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsID0+IHtcclxuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIHRoaXMuZGVmYXVsdFZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5pbXVtICE9PSBudWxsICYmIHZhbHVlIDwgdGhpcy5taW5pbXVtKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMubWluaW11bTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1heGltdW0gIT09IG51bGwgJiYgdmFsdWUgPiB0aGlzLm1heGltdW0pIHtcclxuICAgICAgICAgIHZhbHVlID0gdGhpcy5tYXhpbXVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbERpZ2l0cyAhPSBudWxsICYmIHRoaXMuZGVjaW1hbERpZ2l0cyA+PSAwKSB7XHJcbiAgICAgICAgICBjb25zdCBmYWN0b3IgPSBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsRGlnaXRzKTtcclxuICAgICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNpcmlvSW5wdXQud3JpdGVWYWx1ZSh2YWx1ZSwgZmFsc2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc2lyaW9JbnB1dC5yZWdpc3Rlck9uQ2hhbmdlID0gZnVuY3Rpb24gKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgIHJlZ2lzdGVyT25DaGFuZ2UoZnVuY3Rpb24gKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBmbihjb2VyY2VWYWx1ZSh2YWx1ZVRvU3RvcmUodmFsdWUpKSk7ICAgICAgICBcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zaXJpb0lucHV0LnNpcmlvSW5wdXQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBlID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcclxuICAgICAgaWYgKGUua2V5ID09PSAnLidcclxuICAgICAgICB8fCAoZS5rZXkgPT09ICcsJyAmJiAhdGhpcy5hY2NlcHREZWNpbWFsKCkpXHJcbiAgICAgICAgfHwgKGUua2V5ID09PSAnLScgJiYgIXRoaXMuYWNjZXB0U2lnbigpKSkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGUgPSBldmVudCBhcyBDbGlwYm9hcmRFdmVudDtcclxuICAgICAgY29uc3QgdGV4dCA9IGUuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpIHx8ICcnO1xyXG4gICAgICBpZiAodGV4dC5pbmNsdWRlcygnLicpXHJcbiAgICAgICAgfHwgKHRleHQuaW5jbHVkZXMoJywnKSAmJiAhdGhpcy5hY2NlcHREZWNpbWFsKCkpXHJcbiAgICAgICAgfHwgKHRleHQuaW5jbHVkZXMoJy0nKSAmJiAhdGhpcy5hY2NlcHRTaWduKCkpKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWNjZXB0U2lnbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1pbmltdW0gIT09IG51bGwgJiYgdGhpcy5taW5pbXVtID49IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjY2VwdERlY2ltYWwoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5kZWNpbWFsRGlnaXRzICE9PSBudWxsICYmIHRoaXMuZGVjaW1hbERpZ2l0cyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZhbHVlVG9TdG9yZSh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gJycpIHsgXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICBpZiAoaXNOYU4obnVtZXJpY1ZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBudW1lcmljVmFsdWU7XHJcbiAgfVxyXG4gIGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|