@wemake4u/form-player-se 1.0.2 → 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/dropdown.directive.mjs +8 -7
- package/esm2022/lib/directives/number.directive.mjs +108 -0
- package/esm2022/lib/directives/repeat.directive.mjs +6 -2
- package/esm2022/lib/directives/tab.directive.mjs +5 -1
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +54 -19
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +18 -30
- package/esm2022/lib/locale/locale-it.mjs +7 -2
- package/esm2022/lib/services/programmability.service.mjs +21 -25
- package/esm2022/lib/services/proxy.service.mjs +1 -1
- package/esm2022/lib/utils/gridCells.mjs +64 -9
- package/esm2022/lib/utils/gridUtils.mjs +75 -0
- package/fesm2022/wemake4u-form-player-se.mjs +464 -101
- 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/dropdown.directive.d.ts +1 -1
- package/lib/directives/number.directive.d.ts +16 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +6 -1
- package/lib/dynamic-form/dynamic-form.component.d.ts +5 -1
- package/lib/locale/locale-it.d.ts +5 -0
- package/lib/services/programmability.service.d.ts +7 -3
- package/lib/services/proxy.service.d.ts +1 -0
- package/lib/utils/gridCells.d.ts +51 -2
- 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
|
|
@@ -11,16 +11,17 @@ export class DropdownDirective {
|
|
|
11
11
|
this.sirioSelect = sirioSelect;
|
|
12
12
|
}
|
|
13
13
|
ngAfterViewInit() {
|
|
14
|
-
this.
|
|
14
|
+
this.handleValue(null);
|
|
15
|
+
this.handleValue(false);
|
|
15
16
|
this.handleSearchable();
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
handleValue(value) {
|
|
18
19
|
if (this.sirioSelect
|
|
19
|
-
&& this.sirioSelect.value ===
|
|
20
|
+
&& this.sirioSelect.value === value
|
|
20
21
|
&& Array.isArray(this.sirioSelect.options)) {
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
|
|
22
|
+
const valueOption = this.sirioSelect.options.find(option => option.value === value);
|
|
23
|
+
if (valueOption) {
|
|
24
|
+
valueOption.isSelected = true;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
230
231
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SirioSelectComponent, decorators: [{
|
|
231
232
|
type: Host
|
|
232
233
|
}] }] });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZGlyZWN0aXZlcy9kcm9wZG93bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkIsSUFBSSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUdsQjtJQUNBO0lBRVE7SUFKbEIsWUFDVSxFQUFjLEVBQ2QsUUFBbUIsRUFFWCxXQUFpQztRQUh6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVYLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtJQUMvQyxDQUFDO0lBRUwsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXO2VBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssSUFBSTtlQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQzFDLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBRWxGLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBRXRCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxh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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSG9zdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpcmlvU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkcm9wZG93bl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIFxyXG4gICAgQEhvc3QoKSBwcml2YXRlIHNpcmlvU2VsZWN0OiBTaXJpb1NlbGVjdENvbXBvbmVudFxyXG4gICkgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFuZGxlTnVsbFZhbHVlKCk7XHJcbiAgICB0aGlzLmhhbmRsZVNlYXJjaGFibGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTnVsbFZhbHVlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2lyaW9TZWxlY3RcclxuICAgICAgJiYgdGhpcy5zaXJpb1NlbGVjdC52YWx1ZSA9PT0gbnVsbFxyXG4gICAgICAmJiBBcnJheS5pc0FycmF5KHRoaXMuc2lyaW9TZWxlY3Qub3B0aW9ucylcclxuICAgICkge1xyXG4gICAgICBjb25zdCBudWxsT3B0aW9uID0gdGhpcy5zaXJpb1NlbGVjdC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gbnVsbCk7XHJcblxyXG4gICAgICBpZiAobnVsbE9wdGlvbikge1xyXG4gICAgICAgIG51bGxPcHRpb24uaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoYWJsZSgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBzZWFyY2hhYmxlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2hhYmxlJyk7XHJcbiAgICBpZiAoc2VhcmNoYWJsZSkge1xyXG4gICAgICBjb25zdCBkcm9wRG93biA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2lyaW8tZHJvcGRvd24nKTtcclxuICAgICAgY29uc3QgZHJvcE1lbnUgPSBkcm9wRG93bi5xdWVyeVNlbGVjdG9yKCcuc2lyaW8tZHJvcGRvd24tbWVudScpO1xyXG4gICAgICBjb25zdCBpbnB1dCA9IHNlYXJjaGFibGUucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoZHJvcERvd24sIHNlYXJjaGFibGUsIGRyb3BNZW51KTtcclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGlucHV0LCAnYmx1cicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2lyaW9TZWxlY3QucGFuZWwuY2xvc2UoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihpbnB1dCwgJ2tleXVwJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbktleVVwKGV2ZW50LCBpbnB1dCk7ICAgICAgICBcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihpbnB1dCwgJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLm9uS2V5RG93bihldmVudCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zaXJpb1NlbGVjdC5wYW5lbC5wYW5lbE9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGUoc2VhcmNoYWJsZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zaXJpb1NlbGVjdC5wYW5lbC5wYW5lbENsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZShzZWFyY2hhYmxlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVhY3RpdmF0ZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlID0gXCJcIjtcclxuXHJcbiAgICBpZiAodGhpcy5zaXJpb1NlbGVjdC5vcHRpb25zU2VsZWN0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjdXJyZW50VmFsdWUgPSB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnNTZWxlY3RlZFswXS50ZXh0XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcclxuXHJcbiAgICBpZiAoIWlucHV0KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgaW5wdXQudmFsdWUgPSBjdXJyZW50VmFsdWU7XHJcblxyXG4gICAgY29uc3QgZHJvcE1lbnUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNpcmlvLWRyb3Bkb3duLW1lbnUnKTtcclxuXHJcbiAgICB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvdyhvcHRpb24sIHRydWUpO1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlID09IG9wdGlvbi50ZXh0KSB7XHJcbiAgICAgICAgZHJvcE1lbnUuc2Nyb2xsVG9wID0gdGhpcy5uYXRpdmUob3B0aW9uKS5vZmZzZXRUb3A7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKGlucHV0LnZhbHVlLmxlbmd0aCwgaW5wdXQudmFsdWUubGVuZ3RoKTtcclxuICAgICAgaW5wdXQuZm9jdXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbnB1dDogYW55KSB7XHJcbiAgICBjb25zdCB7IGNvZGUgfSA9IGV2ZW50O1xyXG5cclxuICAgIHN3aXRjaCAoY29kZSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgIGNhc2UgJ1NwYWNlJzpcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb21wYXJhYmxlKGlucHV0LnZhbHVlKTtcclxuICAgIGxldCBmaXJzdE1hdGNoID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRjaCA9IHRoaXMuY29tcGFyYWJsZShvcHRpb24udGV4dCkuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgICB0aGlzLnNob3cob3B0aW9uLCBtYXRjaCk7XHJcbiAgICAgIGlmIChtYXRjaCAmJiBmaXJzdE1hdGNoKSB7XHJcbiAgICAgICAgb3B0aW9uLnNldEZvY3VzKCk7XHJcbiAgICAgICAgZmlyc3RNYXRjaCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbi5yZW1vdmVGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBwYW5lbCA9IHRoaXMuc2lyaW9TZWxlY3QucGFuZWw7XHJcbiAgICBpZiAoIXBhbmVsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhbmVsSXNPcGVuID0gcGFuZWwucGFuZWxJc09wZW47XHJcbiAgICBjb25zdCB7IGNvZGUgfSA9IGV2ZW50O1xyXG4gICAgaWYgKHBhbmVsSXNPcGVuKSB7XHJcbiAgICAgIHN3aXRjaCAoY29kZSkge1xyXG4gICAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgICBjYXNlICdTcGFjZSc6XHJcbiAgICAgICAgICBpZiAocGFuZWwub3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICAgICAgICBwYW5lbC5vcHRpb25Gb2N1c2VkPy5vbk9wdGlvblNlbGVjdGVkKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwYW5lbC5jbG9zZShldmVudCk7XHJcbiAgICAgICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bigpO1xyXG4gICAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVXAoKTtcclxuICAgICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgICAgIHBhbmVsLmNsb3NlKGV2ZW50KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFwYW5lbElzT3Blbikge1xyXG4gICAgICBzd2l0Y2ggKGNvZGUpIHtcclxuICAgICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgY2FzZSAnU3BhY2UnOlxyXG4gICAgICAgICAgcGFuZWwub3BlbihldmVudCk7XHJcbiAgICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXRpdmUob3B0aW9uOiBhbnkpIHtcclxuICAgIHJldHVybiBvcHRpb24udmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSGlkZGVuKG9wdGlvbjogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXRpdmUob3B0aW9uKS5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZSc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3cob3B0aW9uOiBhbnksIHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm5hdGl2ZShvcHRpb24pLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/ICcnIDogJ25vbmUnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wYXJhYmxlKHRleHQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRleHQudG9Mb3dlckNhc2UoKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbERvd24oKSB7XHJcbiAgICBjb25zdCBwYW5lbCA9IHRoaXMuc2lyaW9TZWxlY3QucGFuZWw7XHJcbiAgICBpZiAoIXBhbmVsLm9wdGlvbkZvY3VzZWQpIHtcclxuICAgICAgcGFuZWwuc2Nyb2xsQmFyVG9wKCk7XHJcbiAgICAgIHBhbmVsLm9wdGlvbnMuZmlyc3Quc2V0Rm9jdXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV4dE9wdGlvbkZvY3VzZWQgPSB0aGlzLmZpbmROZXh0VmlzaWJsZU9wdGlvbihwYW5lbC5vcHRpb25Gb2N1c2VkSW5kZXggKyAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIHBhbmVsLnNjcm9sbEJhckRvd24oKTtcclxuICAgIHBhbmVsLm9wdGlvbkZvY3VzZWQ/LnJlbW92ZUZvY3VzKCk7XHJcbiAgICBpZiAobmV4dE9wdGlvbkZvY3VzZWQpIHtcclxuICAgICAgbmV4dE9wdGlvbkZvY3VzZWQ/LnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHBhbmVsLnNjcm9sbEJhclRvcCgpO1xyXG4gICAgY29uc3QgZmlyc3RWaXNpYmxlID0gdGhpcy5maW5kTmV4dFZpc2libGVPcHRpb24oMCwgcGFuZWwub3B0aW9ucyk7XHJcbiAgICBpZiAoZmlyc3RWaXNpYmxlKSB7XHJcbiAgICAgIGZpcnN0VmlzaWJsZS5zZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxVcCgpIHtcclxuICAgIGNvbnN0IHBhbmVsID0gdGhpcy5zaXJpb1NlbGVjdC5wYW5lbDtcclxuICAgIGlmICghcGFuZWwub3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICBwYW5lbC5zY3JvbGxCYXJUb3AoKTtcclxuICAgICAgcGFuZWwub3B0aW9ucy5sYXN0LnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gICAgXHJcbiAgICBjb25zdCBuZXh0T3B0aW9uRm9jdXNlZCA9IHRoaXMuZmluZFByZXZpb3VzVmlzaWJsZU9wdGlvbihwYW5lbC5vcHRpb25Gb2N1c2VkSW5kZXggLSAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIGlmIChuZXh0T3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICBwYW5lbC5zY3JvbGxCYXJVcCgpO1xyXG4gICAgICBwYW5lbC5vcHRpb25Gb2N1c2VkPy5yZW1vdmVGb2N1cygpO1xyXG4gICAgICBuZXh0T3B0aW9uRm9jdXNlZD8uc2V0Rm9jdXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFuZWwub3B0aW9uRm9jdXNlZD8ucmVtb3ZlRm9jdXMoKTtcclxuICAgIHBhbmVsLnNjcm9sbEJhckJvdHRvbSgpO1xyXG4gICAgY29uc3QgbGFzdFZpc2libGUgPSB0aGlzLmZpbmRQcmV2aW91c1Zpc2libGVPcHRpb24ocGFuZWwub3B0aW9ucy5sZW5ndGggLSAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIGlmIChsYXN0VmlzaWJsZSkge1xyXG4gICAgICBsYXN0VmlzaWJsZS5zZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kUHJldmlvdXNWaXNpYmxlT3B0aW9uKHN0YXJ0SW5kZXg6IG51bWJlciwgb3B0aW9uczogYW55KTogYW55IHwgbnVsbCB7XHJcbiAgICBsZXQgaSA9IHN0YXJ0SW5kZXg7XHJcbiAgICB3aGlsZSAoaSA+PSAwKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZ2V0KGkpO1xyXG4gICAgICBpZiAoIXRoaXMuaXNIaWRkZW4ob3B0aW9uKSkge1xyXG4gICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgaS0tO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmROZXh0VmlzaWJsZU9wdGlvbihzdGFydEluZGV4OiBudW1iZXIsIG9wdGlvbnM6IGFueSk6IGFueSB8IG51bGwge1xyXG4gICAgbGV0IGkgPSBzdGFydEluZGV4O1xyXG4gICAgd2hpbGUgKGkgPCBvcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmdldChpKTtcclxuICAgICAgaWYgKCF0aGlzLmlzSGlkZGVuKG9wdGlvbikpIHtcclxuICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZGlyZWN0aXZlcy9kcm9wZG93bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkIsSUFBSSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEYsTUFBTSxPQUFPLGlCQUFpQjtJQUdsQjtJQUNBO0lBRVE7SUFKbEIsWUFDVSxFQUFjLEVBQ2QsUUFBbUIsRUFFWCxXQUFpQztRQUh6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVYLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtJQUMvQyxDQUFDO0lBRUwsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsSUFBSSxJQUFJLENBQUMsV0FBVztlQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEtBQUs7ZUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUMxQyxDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUVwRixJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7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VCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFPSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBIb3N0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9TZWxlY3RDb21wb25lbnQgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Ryb3Bkb3duXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgXHJcbiAgICBASG9zdCgpIHByaXZhdGUgc2lyaW9TZWxlY3Q6IFNpcmlvU2VsZWN0Q29tcG9uZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuaGFuZGxlVmFsdWUoZmFsc2UpO1xyXG4gICAgdGhpcy5oYW5kbGVTZWFyY2hhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNpcmlvU2VsZWN0XHJcbiAgICAgICYmIHRoaXMuc2lyaW9TZWxlY3QudmFsdWUgPT09IHZhbHVlXHJcbiAgICAgICYmIEFycmF5LmlzQXJyYXkodGhpcy5zaXJpb1NlbGVjdC5vcHRpb25zKVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlT3B0aW9uID0gdGhpcy5zaXJpb1NlbGVjdC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgICAgdmFsdWVPcHRpb24uaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoYWJsZSgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBzZWFyY2hhYmxlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2hhYmxlJyk7XHJcbiAgICBpZiAoc2VhcmNoYWJsZSkge1xyXG4gICAgICBjb25zdCBkcm9wRG93biA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2lyaW8tZHJvcGRvd24nKTtcclxuICAgICAgY29uc3QgZHJvcE1lbnUgPSBkcm9wRG93bi5xdWVyeVNlbGVjdG9yKCcuc2lyaW8tZHJvcGRvd24tbWVudScpO1xyXG4gICAgICBjb25zdCBpbnB1dCA9IHNlYXJjaGFibGUucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoZHJvcERvd24sIHNlYXJjaGFibGUsIGRyb3BNZW51KTtcclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGlucHV0LCAnYmx1cicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2lyaW9TZWxlY3QucGFuZWwuY2xvc2UoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihpbnB1dCwgJ2tleXVwJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbktleVVwKGV2ZW50LCBpbnB1dCk7ICAgICAgICBcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihpbnB1dCwgJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLm9uS2V5RG93bihldmVudCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zaXJpb1NlbGVjdC5wYW5lbC5wYW5lbE9wZW5lZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGUoc2VhcmNoYWJsZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zaXJpb1NlbGVjdC5wYW5lbC5wYW5lbENsb3NlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZShzZWFyY2hhYmxlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVhY3RpdmF0ZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlID0gXCJcIjtcclxuXHJcbiAgICBpZiAodGhpcy5zaXJpb1NlbGVjdC5vcHRpb25zU2VsZWN0ZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjdXJyZW50VmFsdWUgPSB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnNTZWxlY3RlZFswXS50ZXh0XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcclxuXHJcbiAgICBpZiAoIWlucHV0KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgaW5wdXQudmFsdWUgPSBjdXJyZW50VmFsdWU7XHJcblxyXG4gICAgY29uc3QgZHJvcE1lbnUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNpcmlvLWRyb3Bkb3duLW1lbnUnKTtcclxuXHJcbiAgICB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvdyhvcHRpb24sIHRydWUpO1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlID09IG9wdGlvbi50ZXh0KSB7XHJcbiAgICAgICAgZHJvcE1lbnUuc2Nyb2xsVG9wID0gdGhpcy5uYXRpdmUob3B0aW9uKS5vZmZzZXRUb3A7XHJcbiAgICAgIH0gICAgICBcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKGlucHV0LnZhbHVlLmxlbmd0aCwgaW5wdXQudmFsdWUubGVuZ3RoKTtcclxuICAgICAgaW5wdXQuZm9jdXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbnB1dDogYW55KSB7XHJcbiAgICBjb25zdCB7IGNvZGUgfSA9IGV2ZW50O1xyXG5cclxuICAgIHN3aXRjaCAoY29kZSkge1xyXG4gICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgIGNhc2UgJ1NwYWNlJzpcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb21wYXJhYmxlKGlucHV0LnZhbHVlKTtcclxuICAgIGxldCBmaXJzdE1hdGNoID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnNpcmlvU2VsZWN0Lm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRjaCA9IHRoaXMuY29tcGFyYWJsZShvcHRpb24udGV4dCkuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgICB0aGlzLnNob3cob3B0aW9uLCBtYXRjaCk7XHJcbiAgICAgIGlmIChtYXRjaCAmJiBmaXJzdE1hdGNoKSB7XHJcbiAgICAgICAgb3B0aW9uLnNldEZvY3VzKCk7XHJcbiAgICAgICAgZmlyc3RNYXRjaCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbi5yZW1vdmVGb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBwYW5lbCA9IHRoaXMuc2lyaW9TZWxlY3QucGFuZWw7XHJcbiAgICBpZiAoIXBhbmVsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhbmVsSXNPcGVuID0gcGFuZWwucGFuZWxJc09wZW47XHJcbiAgICBjb25zdCB7IGNvZGUgfSA9IGV2ZW50O1xyXG4gICAgaWYgKHBhbmVsSXNPcGVuKSB7XHJcbiAgICAgIHN3aXRjaCAoY29kZSkge1xyXG4gICAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgICBjYXNlICdTcGFjZSc6XHJcbiAgICAgICAgICBpZiAocGFuZWwub3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICAgICAgICBwYW5lbC5vcHRpb25Gb2N1c2VkPy5vbk9wdGlvblNlbGVjdGVkKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBwYW5lbC5jbG9zZShldmVudCk7XHJcbiAgICAgICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bigpO1xyXG4gICAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsVXAoKTtcclxuICAgICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgICAgIHBhbmVsLmNsb3NlKGV2ZW50KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFwYW5lbElzT3Blbikge1xyXG4gICAgICBzd2l0Y2ggKGNvZGUpIHtcclxuICAgICAgICBjYXNlICdFbnRlcic6XHJcbiAgICAgICAgY2FzZSAnU3BhY2UnOlxyXG4gICAgICAgICAgcGFuZWwub3BlbihldmVudCk7XHJcbiAgICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXRpdmUob3B0aW9uOiBhbnkpIHtcclxuICAgIHJldHVybiBvcHRpb24udmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSGlkZGVuKG9wdGlvbjogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXRpdmUob3B0aW9uKS5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZSc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3cob3B0aW9uOiBhbnksIHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm5hdGl2ZShvcHRpb24pLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/ICcnIDogJ25vbmUnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wYXJhYmxlKHRleHQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRleHQudG9Mb3dlckNhc2UoKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbERvd24oKSB7XHJcbiAgICBjb25zdCBwYW5lbCA9IHRoaXMuc2lyaW9TZWxlY3QucGFuZWw7XHJcbiAgICBpZiAoIXBhbmVsLm9wdGlvbkZvY3VzZWQpIHtcclxuICAgICAgcGFuZWwuc2Nyb2xsQmFyVG9wKCk7XHJcbiAgICAgIHBhbmVsLm9wdGlvbnMuZmlyc3Quc2V0Rm9jdXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV4dE9wdGlvbkZvY3VzZWQgPSB0aGlzLmZpbmROZXh0VmlzaWJsZU9wdGlvbihwYW5lbC5vcHRpb25Gb2N1c2VkSW5kZXggKyAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIHBhbmVsLnNjcm9sbEJhckRvd24oKTtcclxuICAgIHBhbmVsLm9wdGlvbkZvY3VzZWQ/LnJlbW92ZUZvY3VzKCk7XHJcbiAgICBpZiAobmV4dE9wdGlvbkZvY3VzZWQpIHtcclxuICAgICAgbmV4dE9wdGlvbkZvY3VzZWQ/LnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHBhbmVsLnNjcm9sbEJhclRvcCgpO1xyXG4gICAgY29uc3QgZmlyc3RWaXNpYmxlID0gdGhpcy5maW5kTmV4dFZpc2libGVPcHRpb24oMCwgcGFuZWwub3B0aW9ucyk7XHJcbiAgICBpZiAoZmlyc3RWaXNpYmxlKSB7XHJcbiAgICAgIGZpcnN0VmlzaWJsZS5zZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxVcCgpIHtcclxuICAgIGNvbnN0IHBhbmVsID0gdGhpcy5zaXJpb1NlbGVjdC5wYW5lbDtcclxuICAgIGlmICghcGFuZWwub3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICBwYW5lbC5zY3JvbGxCYXJUb3AoKTtcclxuICAgICAgcGFuZWwub3B0aW9ucy5sYXN0LnNldEZvY3VzKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gICAgXHJcbiAgICBjb25zdCBuZXh0T3B0aW9uRm9jdXNlZCA9IHRoaXMuZmluZFByZXZpb3VzVmlzaWJsZU9wdGlvbihwYW5lbC5vcHRpb25Gb2N1c2VkSW5kZXggLSAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIGlmIChuZXh0T3B0aW9uRm9jdXNlZCkge1xyXG4gICAgICBwYW5lbC5zY3JvbGxCYXJVcCgpO1xyXG4gICAgICBwYW5lbC5vcHRpb25Gb2N1c2VkPy5yZW1vdmVGb2N1cygpO1xyXG4gICAgICBuZXh0T3B0aW9uRm9jdXNlZD8uc2V0Rm9jdXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFuZWwub3B0aW9uRm9jdXNlZD8ucmVtb3ZlRm9jdXMoKTtcclxuICAgIHBhbmVsLnNjcm9sbEJhckJvdHRvbSgpO1xyXG4gICAgY29uc3QgbGFzdFZpc2libGUgPSB0aGlzLmZpbmRQcmV2aW91c1Zpc2libGVPcHRpb24ocGFuZWwub3B0aW9ucy5sZW5ndGggLSAxLCBwYW5lbC5vcHRpb25zKTtcclxuICAgIGlmIChsYXN0VmlzaWJsZSkge1xyXG4gICAgICBsYXN0VmlzaWJsZS5zZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kUHJldmlvdXNWaXNpYmxlT3B0aW9uKHN0YXJ0SW5kZXg6IG51bWJlciwgb3B0aW9uczogYW55KTogYW55IHwgbnVsbCB7XHJcbiAgICBsZXQgaSA9IHN0YXJ0SW5kZXg7XHJcbiAgICB3aGlsZSAoaSA+PSAwKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZ2V0KGkpO1xyXG4gICAgICBpZiAoIXRoaXMuaXNIaWRkZW4ob3B0aW9uKSkge1xyXG4gICAgICAgIHJldHVybiBvcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgaS0tO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmROZXh0VmlzaWJsZU9wdGlvbihzdGFydEluZGV4OiBudW1iZXIsIG9wdGlvbnM6IGFueSk6IGFueSB8IG51bGwge1xyXG4gICAgbGV0IGkgPSBzdGFydEluZGV4O1xyXG4gICAgd2hpbGUgKGkgPCBvcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zLmdldChpKTtcclxuICAgICAgaWYgKCF0aGlzLmlzSGlkZGVuKG9wdGlvbikpIHtcclxuICAgICAgICByZXR1cm4gb3B0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -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==
|
|
@@ -11,8 +11,12 @@ export class RepeatDirective {
|
|
|
11
11
|
if (changes["repeat"]) {
|
|
12
12
|
const formArray = this.controlContainer.control;
|
|
13
13
|
const value = changes["repeat"].currentValue;
|
|
14
|
-
if (Number.isInteger(value) && value >= 0)
|
|
14
|
+
if (Number.isInteger(value) && value >= 0) {
|
|
15
15
|
this.resizeArray(formArray, value);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this.resizeArray(formArray, 0);
|
|
19
|
+
}
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
resizeArray(formArray, size) {
|
|
@@ -35,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
35
39
|
}], ctorParameters: () => [{ type: i1.ControlContainer }], propDecorators: { repeat: [{
|
|
36
40
|
type: Input
|
|
37
41
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwZWF0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7OztBQU8zRSxNQUFNLE9BQU8sZUFBZTtJQUdOO0lBRlgsTUFBTSxHQUFRLElBQUksQ0FBQztJQUU1QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFJLENBQUM7SUFFM0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQW9CLENBQUM7WUFDN0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUM3QyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLFNBQW9CLEVBQUUsSUFBWTtRQUNwRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDOUIsU0FBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO1lBQy9CLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQzt3R0F6QlUsZUFBZTs0RkFBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7cUZBRVUsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgQ29udHJvbENvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3JlcGVhdF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGVhdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgcmVwZWF0OiBhbnkgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcInJlcGVhdFwiXSkge1xyXG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmNvbnRyb2xDb250YWluZXIuY29udHJvbCBhcyBGb3JtQXJyYXk7ICAgICAgXHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlc1tcInJlcGVhdFwiXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSAmJiB2YWx1ZSA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVBcnJheShmb3JtQXJyYXksIHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlc2l6ZUFycmF5KGZvcm1BcnJheSwgMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplQXJyYXkoZm9ybUFycmF5OiBGb3JtQXJyYXksIHNpemU6IG51bWJlcikge1xyXG4gICAgd2hpbGUgKGZvcm1BcnJheS5sZW5ndGggPCBzaXplKSB7XHJcbiAgICAgIChmb3JtQXJyYXkgYXMgYW55KS5hZGROZXdJdGVtKCk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoZm9ybUFycmF5Lmxlbmd0aCA+IHNpemUpIHtcclxuICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGZvcm1BcnJheS5sZW5ndGggLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -28,6 +28,10 @@ export class TabDirective {
|
|
|
28
28
|
// remove middle
|
|
29
29
|
this.sirioTab.setActiveIndex(this.sirioTab.oldIndex);
|
|
30
30
|
}
|
|
31
|
+
else {
|
|
32
|
+
// remove many
|
|
33
|
+
this.sirioTab.setActiveIndex(current - 1);
|
|
34
|
+
}
|
|
31
35
|
}
|
|
32
36
|
});
|
|
33
37
|
}
|
|
@@ -46,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
46
50
|
}] }], propDecorators: { tabCount: [{
|
|
47
51
|
type: Input
|
|
48
52
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFPakYsTUFBTSxPQUFPLFlBQVk7SUFJTDtJQUhULFFBQVEsR0FBVyxDQUFDLENBQUM7SUFFOUIsWUFDa0IsUUFBMkI7UUFBM0IsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7SUFDekMsQ0FBQztJQUVMLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFFbkQsSUFBSSxRQUFRLEtBQUssU0FBUztnQkFDeEIsT0FBTztZQUVULE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFFakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFFbEMsSUFBSSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsQ0FBQztxQkFDSSxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7d0JBQ3RDLGNBQWM7d0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxDQUFDO3lCQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7d0JBQzFDLGdCQUFnQjt3QkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdkQsQ0FBQzt5QkFDSSxDQUFDO3dCQUNKLGNBQWM7d0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM1QyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3dHQXZDVSxZQUFZOzRGQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBS0ksSUFBSTt5Q0FIRSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpcmlvVGFiQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0YWJDb3VudF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdGFiQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBwcml2YXRlIHNpcmlvVGFiOiBTaXJpb1RhYkNvbXBvbmVudFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1widGFiQ291bnRcIl0pIHtcclxuICAgICAgY29uc3QgcHJldmlvdXMgPSBjaGFuZ2VzW1widGFiQ291bnRcIl0ucHJldmlvdXNWYWx1ZTtcclxuXHJcbiAgICAgIGlmIChwcmV2aW91cyA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBjaGFuZ2VzW1widGFiQ291bnRcIl0uY3VycmVudFZhbHVlO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaXJpb1RhYi5zZXRDb250ZW50SXRlbUluZGV4KCk7XHJcbiAgICAgICAgdGhpcy5zaXJpb1RhYi5zaG93QXJyb3dJZk5lZWRlZCgpO1xyXG5cclxuICAgICAgICBpZiAocHJldmlvdXMgPCBjdXJyZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNpcmlvVGFiLnNldEFjdGl2ZUluZGV4KGN1cnJlbnQgLSAxKTtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnNpcmlvVGFiLm9sZEluZGV4ID09IGN1cnJlbnQpIHtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIGxhc3RcclxuICAgICAgICAgICAgdGhpcy5zaXJpb1RhYi5zZXRBY3RpdmVJbmRleChjdXJyZW50IC0gMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnNpcmlvVGFiLm9sZEluZGV4IDwgY3VycmVudCkge1xyXG4gICAgICAgICAgICAvLyByZW1vdmUgbWlkZGxlXHJcbiAgICAgICAgICAgIHRoaXMuc2lyaW9UYWIuc2V0QWN0aXZlSW5kZXgodGhpcy5zaXJpb1RhYi5vbGRJbmRleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gcmVtb3ZlIG1hbnlcclxuICAgICAgICAgICAgdGhpcy5zaXJpb1RhYi5zZXRBY3RpdmVJbmRleChjdXJyZW50IC0gMSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|