@wemake4u/form-player-se 1.0.3 → 1.0.5

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.
@@ -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
+ ? value
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTWxELE1BQU0sT0FBTyxhQUFhO0lBRUk7SUFBNUIsWUFBNEIsZUFBeUM7UUFBekMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBRW5FLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxFQUFvQjtZQUNwRSxnQkFBZ0IsQ0FBQyxVQUFVLEtBQVU7Z0JBQ25DLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxLQUFVLEVBQUUsS0FBZSxFQUFFLGNBQXdCO1lBQy9GLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQztJQUNKLENBQUM7d0dBakJVLGFBQWE7NEZBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFHYyxJQUFJOztBQWtCbkIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQ2xDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUVqQyxTQUFTLGFBQWEsQ0FBQyxLQUFhO0lBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztTQUNJLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYTtJQUNoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7WUFDbkIsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FDSSxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWE7SUFDakMsTUFBTSxLQUFLLEdBQUcsNkJBQTZCLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXhCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTVDLElBQ0UsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUk7UUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQ3RCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7U0FDSSxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWE7SUFDL0IsTUFBTSxLQUFLLEdBQUcsMkJBQTJCLENBQUM7SUFDMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUU1QyxJQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJO1FBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO1NBQ0ksQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2lyaW9EYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IERhdGVwaWNrZXIgfSBmcm9tICd2YW5pbGxhanMtZGF0ZXBpY2tlcic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpc29EYXRlXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpcmVjdGl2ZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBzaXJpb0RhdGVwaWNrZXI6IFNpcmlvRGF0ZXBpY2tlckNvbXBvbmVudCkge1xyXG5cclxuICAgIGNvbnN0IHJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnNpcmlvRGF0ZXBpY2tlci5yZWdpc3Rlck9uQ2hhbmdlLmJpbmQodGhpcy5zaXJpb0RhdGVwaWNrZXIpO1xyXG5cclxuICAgIHRoaXMuc2lyaW9EYXRlcGlja2VyLnJlZ2lzdGVyT25DaGFuZ2UgPSBmdW5jdGlvbiAoZm46IChfOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgcmVnaXN0ZXJPbkNoYW5nZShmdW5jdGlvbiAodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGZuKGRhdGVUb1N0b3JlKHZhbHVlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB3cml0ZVZhbHVlID0gdGhpcy5zaXJpb0RhdGVwaWNrZXIud3JpdGVWYWx1ZS5iaW5kKHRoaXMuc2lyaW9EYXRlcGlja2VyKTtcclxuXHJcbiAgICB0aGlzLnNpcmlvRGF0ZXBpY2tlci53cml0ZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlOiBhbnksIGV2ZW50PzogYm9vbGVhbiwgdXBkYXRlQ2FsZW5kYXI/OiBib29sZWFuKSB7XHJcbiAgICAgIHdyaXRlVmFsdWUoZGF0ZVRvRGlzcGxheSh2YWx1ZSksIGV2ZW50LCB1cGRhdGVDYWxlbmRhcik7XHJcbiAgICB9O1xyXG4gIH0gIFxyXG59XHJcblxyXG5jb25zdCBkaXNsYXlGb3JtYXQgPSAnZGQvbW0veXl5eSc7XHJcbmNvbnN0IHN0b3JlRm9ybWF0ID0gJ3l5eXktbW0tZGQnO1xyXG5cclxuZnVuY3Rpb24gZGF0ZVRvRGlzcGxheSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgY29uc3QgZGF0ZSA9IHBhcnNlU3RvcmUodmFsdWUpID8/IHBhcnNlRGlzcGxheSh2YWx1ZSk7XHJcbiAgICByZXR1cm4gKGRhdGUgPT0gbnVsbClcclxuICAgICAgPyB2YWx1ZVxyXG4gICAgICA6IERhdGVwaWNrZXIuZm9ybWF0RGF0ZShkYXRlLCBkaXNsYXlGb3JtYXQsICdpdCcpO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gIFxyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRlVG9TdG9yZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgY29uc3QgZGF0ZSA9IHBhcnNlU3RvcmUodmFsdWUpID8/IHBhcnNlRGlzcGxheSh2YWx1ZSk7XHJcbiAgICByZXR1cm4gKGRhdGUgPT0gbnVsbClcclxuICAgICAgPyBudWxsXHJcbiAgICAgIDogRGF0ZXBpY2tlci5mb3JtYXREYXRlKGRhdGUsIHN0b3JlRm9ybWF0LCAnaXQnKTtcclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9IFxyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZURpc3BsYXkodmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcclxuICBjb25zdCByZWdleCA9IC9eKFxcZHsyfSlcXC8oXFxkezJ9KVxcLyhcXGR7NH0pJC87XHJcbiAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaChyZWdleCk7XHJcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGNvbnN0IGRheSA9IHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XHJcbiAgY29uc3QgbW9udGggPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xyXG4gIGNvbnN0IHllYXIgPSBwYXJzZUludChtYXRjaFszXSwgMTApO1xyXG5cclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xyXG5cclxuICBpZiAoXHJcbiAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcclxuICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggLSAxICYmXHJcbiAgICBkYXRlLmdldERhdGUoKSA9PT0gZGF5XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlU3RvcmUodmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcclxuICBjb25zdCByZWdleCA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkkLztcclxuICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKHJlZ2V4KTtcclxuICBpZiAoIW1hdGNoKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHllYXIgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xyXG4gIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcclxuICBjb25zdCBkYXkgPSBwYXJzZUludChtYXRjaFszXSwgMTApO1xyXG5cclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xyXG5cclxuICBpZiAoXHJcbiAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcclxuICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggLSAxICYmXHJcbiAgICBkYXRlLmdldERhdGUoKSA9PT0gZGF5XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class DisableFormDirective {
5
+ templateRef;
6
+ viewContainer;
7
+ config;
8
+ constructor(templateRef, viewContainer) {
9
+ this.templateRef = templateRef;
10
+ this.viewContainer = viewContainer;
11
+ }
12
+ ngOnChanges(changes) {
13
+ if (this.hasValue(this.config.path) && this.config.formGroup) {
14
+ var formGroup = this.config.formGroup.get(this.config.path);
15
+ if (formGroup instanceof FormGroup) {
16
+ if (this.config.disabled) {
17
+ formGroup.disable({ emitEvent: false });
18
+ }
19
+ else {
20
+ formGroup.enable({ emitEvent: false });
21
+ }
22
+ }
23
+ }
24
+ this.viewContainer.clear();
25
+ }
26
+ hasValue(value) {
27
+ return value != null && value.trim().length > 0;
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableFormDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DisableFormDirective, isStandalone: true, selector: "[disableForm]", inputs: { config: ["disableForm", "config"] }, usesOnChanges: true, ngImport: i0 });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableFormDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[disableForm]',
36
+ standalone: true
37
+ }]
38
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { config: [{
39
+ type: Input,
40
+ args: ['disableForm']
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1mb3JtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvZGlzYWJsZS1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBMkQsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU0zQyxNQUFNLE9BQU8sb0JBQW9CO0lBUXJCO0lBQ0E7SUFSWSxNQUFNLENBSTFCO0lBRUYsWUFDVSxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQ3JDLENBQUM7SUFFTCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLFNBQVMsWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN6QixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNuQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzt3R0E5QlUsb0JBQW9COzRGQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsrR0FFdUIsTUFBTTtzQkFBM0IsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkaXNhYmxlRm9ybV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc2FibGVGb3JtRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ2Rpc2FibGVGb3JtJykgY29uZmlnIToge1xyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBwYXRoOiBzdHJpbmc7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLmhhc1ZhbHVlKHRoaXMuY29uZmlnLnBhdGgpICYmIHRoaXMuY29uZmlnLmZvcm1Hcm91cCkge1xyXG4gICAgICB2YXIgZm9ybUdyb3VwID0gdGhpcy5jb25maWcuZm9ybUdyb3VwLmdldCh0aGlzLmNvbmZpZy5wYXRoKTtcclxuICAgICAgaWYgKGZvcm1Hcm91cCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgZm9ybUdyb3VwLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb3JtR3JvdXAuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcbn1cclxuIl19
@@ -3,26 +3,55 @@ 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
+ placeholder = null;
11
+ componentRef;
12
+ constructor(ngControl, el, renderer) {
9
13
  this.ngControl = ngControl;
14
+ this.el = el;
15
+ this.renderer = renderer;
10
16
  }
17
+ disableClass = "fp-disabled";
18
+ readonlyClass = "fp-readonly";
11
19
  ngOnChanges(changes) {
12
20
  if (changes["disableControl"] || changes["readonly"]) {
13
21
  if (this.ngControl.control) {
14
22
  if (this.disableControl) {
15
23
  this.ngControl.control.disable();
24
+ this.toggleClass(true, this.disableClass);
25
+ this.overridePlaceholder(false);
16
26
  }
17
27
  else {
18
28
  this.ngControl.control.enable();
19
- this.ngControl.valueAccessor?.setDisabledState(this.readonly === true);
29
+ this.toggleClass(false, this.disableClass);
30
+ const disabled = this.readonly === true;
31
+ this.ngControl.valueAccessor?.setDisabledState(disabled);
32
+ this.toggleClass(disabled, this.readonlyClass);
33
+ this.overridePlaceholder(disabled);
20
34
  }
21
35
  }
22
36
  }
23
37
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
25
- 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 });
38
+ toggleClass(value, className) {
39
+ if (value) {
40
+ this.renderer.addClass(this.el.nativeElement, className);
41
+ }
42
+ else {
43
+ this.renderer.removeClass(this.el.nativeElement, className);
44
+ }
45
+ }
46
+ overridePlaceholder(value) {
47
+ if ('placeholder' in this.componentRef) {
48
+ this.componentRef.placeholder = value
49
+ ? "-"
50
+ : this.placeholder;
51
+ }
52
+ }
53
+ 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 });
54
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DisableDirective, isStandalone: true, selector: "[disableControl], [readonly]", inputs: { disableControl: "disableControl", readonly: "readonly", placeholder: "placeholder", componentRef: "componentRef" }, usesOnChanges: true, ngImport: i0 });
26
55
  }
27
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DisableDirective, decorators: [{
28
57
  type: Directive,
@@ -30,9 +59,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
30
59
  selector: '[disableControl], [readonly]',
31
60
  standalone: true
32
61
  }]
33
- }], ctorParameters: () => [{ type: i1.NgControl }], propDecorators: { disableControl: [{
62
+ }], ctorParameters: () => [{ type: i1.NgControl }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { disableControl: [{
34
63
  type: Input
35
64
  }], readonly: [{
36
65
  type: Input
66
+ }], placeholder: [{
67
+ type: Input
68
+ }], componentRef: [{
69
+ type: Input
37
70
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2Rpc2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7O0FBTzNFLE1BQU0sT0FBTyxnQkFBZ0I7SUFJUDtJQUhYLGNBQWMsR0FBbUIsSUFBSSxDQUFDO0lBQ3RDLFFBQVEsR0FBbUIsSUFBSSxDQUFDO0lBRXpDLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBSSxDQUFDO0lBRTdDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUNsRixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQWpCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEVBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rpc2FibGVDb250cm9sXSwgW3JlYWRvbmx5XScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZGlzYWJsZUNvbnRyb2w6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJkaXNhYmxlQ29udHJvbFwiXSB8fCBjaGFuZ2VzW1wicmVhZG9ubHlcIl0pIHsgICAgICBcclxuICAgICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlQ29udHJvbCkge1xyXG4gICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgICAgICAodGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciBhcyBhbnkpPy5zZXREaXNhYmxlZFN0YXRlKHRoaXMucmVhZG9ubHkgPT09IHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kaXJlY3RpdmVzL2Rpc2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFtRCxNQUFNLGVBQWUsQ0FBQzs7O0FBT2xHLE1BQU0sT0FBTyxnQkFBZ0I7SUFNUDtJQUNSO0lBQ0E7SUFQSCxjQUFjLEdBQW1CLElBQUksQ0FBQztJQUN0QyxRQUFRLEdBQW1CLElBQUksQ0FBQztJQUNoQyxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxZQUFZLENBQU07SUFFM0IsWUFBb0IsU0FBb0IsRUFDNUIsRUFBYyxFQUNkLFFBQW1CO1FBRlgsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUM1QixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUMvQixDQUFDO0lBRU8sWUFBWSxHQUFXLGFBQWEsQ0FBQztJQUNyQyxhQUFhLEdBQVcsYUFBYSxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO29CQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQXFCLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWMsRUFBRSxTQUFpQjtRQUNuRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWM7UUFDeEMsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLEtBQUs7Z0JBQ25DLENBQUMsQ0FBQyxHQUFHO2dCQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO3dHQWhEVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0hBRVUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rpc2FibGVDb250cm9sXSwgW3JlYWRvbmx5XScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZGlzYWJsZUNvbnRyb2w6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBjb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxyXG4gICAgLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmXHJcbiAgICAsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlQ2xhc3M6IHN0cmluZyA9IFwiZnAtZGlzYWJsZWRcIjtcclxuICBwcml2YXRlIHJlYWRvbmx5Q2xhc3M6IHN0cmluZyA9IFwiZnAtcmVhZG9ubHlcIjtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmIChjaGFuZ2VzW1wiZGlzYWJsZUNvbnRyb2xcIl0gfHwgY2hhbmdlc1tcInJlYWRvbmx5XCJdKSB7XHJcbiAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUNvbnRyb2wpIHtcclxuICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy50b2dnbGVDbGFzcyh0cnVlLCB0aGlzLmRpc2FibGVDbGFzcyk7XHJcbiAgICAgICAgICB0aGlzLm92ZXJyaWRlUGxhY2Vob2xkZXIoZmFsc2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy50b2dnbGVDbGFzcyhmYWxzZSwgdGhpcy5kaXNhYmxlQ2xhc3MpO1xyXG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLnJlYWRvbmx5ID09PSB0cnVlO1xyXG4gICAgICAgICAgKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgYW55KT8uc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCk7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNsYXNzKGRpc2FibGVkLCB0aGlzLnJlYWRvbmx5Q2xhc3MpO1xyXG4gICAgICAgICAgdGhpcy5vdmVycmlkZVBsYWNlaG9sZGVyKGRpc2FibGVkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3ModmFsdWU6IGJvb2xlYW4sIGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3ZlcnJpZGVQbGFjZWhvbGRlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKCdwbGFjZWhvbGRlcicgaW4gdGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYucGxhY2Vob2xkZXIgPSB2YWx1ZVxyXG4gICAgICAgID8gXCItXCJcclxuICAgICAgICA6IHRoaXMucGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,111 @@
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 if (typeof value === 'number') {
105
+ return value;
106
+ }
107
+ else {
108
+ return null;
109
+ }
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2RpcmVjdGl2ZXMvbnVtYmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFNRTtJQUxuQixZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixPQUFPLEdBQWtCLElBQUksQ0FBQztJQUM5QixhQUFhLEdBQWtCLElBQUksQ0FBQztJQUU3QyxZQUE0QixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUV6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRixNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQW9CLEVBQWlCLEVBQUU7WUFDMUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTVCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNqRCxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDbEQsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcs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bkZVLGVBQWU7NEZBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFPYyxJQUFJO3lDQUxSLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLOztBQWtGUixTQUFTLFlBQVksQ0FBQyxLQUFhO0lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztTQUNJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFlLENBQUM7SUFDekIsQ0FBQztTQUNJLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBBZnRlclZpZXdJbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaXJpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tudW1iZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1pbmltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1heGltdW06IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxEaWdpdHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgc2lyaW9JbnB1dDogU2lyaW9JbnB1dENvbXBvbmVudCkge1xyXG5cclxuICAgIGNvbnN0IHJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnNpcmlvSW5wdXQucmVnaXN0ZXJPbkNoYW5nZS5iaW5kKHRoaXMuc2lyaW9JbnB1dCk7XHJcblxyXG4gICAgY29uc3QgY29lcmNlVmFsdWUgPSAodmFsdWU6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsID0+IHtcclxuICAgICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgaWYgKHZhbHVlID09PSBudWxsICYmIHRoaXMuZGVmYXVsdFZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5taW5pbXVtICE9PSBudWxsICYmIHZhbHVlIDwgdGhpcy5taW5pbXVtKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMubWluaW11bTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1heGltdW0gIT09IG51bGwgJiYgdmFsdWUgPiB0aGlzLm1heGltdW0pIHtcclxuICAgICAgICAgIHZhbHVlID0gdGhpcy5tYXhpbXVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbERpZ2l0cyAhPSBudWxsICYmIHRoaXMuZGVjaW1hbERpZ2l0cyA+PSAwKSB7XHJcbiAgICAgICAgICBjb25zdCBmYWN0b3IgPSBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsRGlnaXRzKTtcclxuICAgICAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWUpIHsgICAgICAgIFxyXG4gICAgICAgIHRoaXMuc2lyaW9JbnB1dC53cml0ZVZhbHVlKHZhbHVlLCBmYWxzZSk7ICAgICAgICBcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNpcmlvSW5wdXQucmVnaXN0ZXJPbkNoYW5nZSA9IGZ1bmN0aW9uIChmbjogKF86IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICByZWdpc3Rlck9uQ2hhbmdlKGZ1bmN0aW9uICh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgZm4oY29lcmNlVmFsdWUodmFsdWVUb1N0b3JlKHZhbHVlKSkpOyAgICAgICAgXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuc2lyaW9JbnB1dC5zaXJpb0lucHV0Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgZSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XHJcbiAgICAgIGlmIChlLmtleSA9PT0gJy4nXHJcbiAgICAgICAgfHwgKGUua2V5ID09PSAnLCcgJiYgIXRoaXMuYWNjZXB0RGVjaW1hbCgpKVxyXG4gICAgICAgIHx8IChlLmtleSA9PT0gJy0nICYmICF0aGlzLmFjY2VwdFNpZ24oKSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBlID0gZXZlbnQgYXMgQ2xpcGJvYXJkRXZlbnQ7XHJcbiAgICAgIGNvbnN0IHRleHQgPSBlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKSB8fCAnJztcclxuICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJy4nKVxyXG4gICAgICAgIHx8ICh0ZXh0LmluY2x1ZGVzKCcsJykgJiYgIXRoaXMuYWNjZXB0RGVjaW1hbCgpKVxyXG4gICAgICAgIHx8ICh0ZXh0LmluY2x1ZGVzKCctJykgJiYgIXRoaXMuYWNjZXB0U2lnbigpKSkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjY2VwdFNpZ24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5taW5pbXVtICE9PSBudWxsICYmIHRoaXMubWluaW11bSA+PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY2NlcHREZWNpbWFsKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZGVjaW1hbERpZ2l0cyAhPT0gbnVsbCAmJiB0aGlzLmRlY2ltYWxEaWdpdHMgPT09IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB2YWx1ZVRvU3RvcmUodmFsdWU6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xyXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7IFxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgaWYgKGlzTmFOKG51bWVyaWNWYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtZXJpY1ZhbHVlO1xyXG4gIH1cclxuICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgYXMgbnVtYmVyO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=