iss-ctrl 0.0.1
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/README.md +24 -0
- package/components/autocomplete/autocomplete.component.d.ts +6 -0
- package/components/base-ctrl.d.ts +33 -0
- package/components/checkbox/checkbox.component.d.ts +16 -0
- package/components/chips/chips.component.d.ts +6 -0
- package/components/ctrl-array/ctrl-array.component.d.ts +6 -0
- package/components/date-picker/date-adapter.d.ts +37 -0
- package/components/date-picker/date-picker.component.d.ts +15 -0
- package/components/date-range-picker/date-range-picker.component.d.ts +19 -0
- package/components/datetime-picker/datetime-picker.component.d.ts +14 -0
- package/components/datetime-range-picker/datetime-range-picker.component.d.ts +6 -0
- package/components/file-picker/file-picker.component.d.ts +17 -0
- package/components/hints/hints.component.d.ts +9 -0
- package/components/input/input.component.d.ts +8 -0
- package/components/mobile/COUNTRIES.d.ts +2 -0
- package/components/mobile/mobile.component.d.ts +26 -0
- package/components/mobile/phone.service.d.ts +17 -0
- package/components/note/note.component.d.ts +6 -0
- package/components/plate-number/plate-number.component.d.ts +16 -0
- package/components/radio/radio.component.d.ts +11 -0
- package/components/select/select.component.d.ts +20 -0
- package/components/slide-toggle/slide-toggle.component.d.ts +7 -0
- package/components/textarea/textarea.component.d.ts +6 -0
- package/components/time-picker/time-picker.component.d.ts +19 -0
- package/components/toggle-button/toggle-button.component.d.ts +16 -0
- package/directives/droppable.directive.d.ts +10 -0
- package/esm2022/components/autocomplete/autocomplete.component.mjs +17 -0
- package/esm2022/components/base-ctrl.mjs +93 -0
- package/esm2022/components/checkbox/checkbox.component.mjs +73 -0
- package/esm2022/components/chips/chips.component.mjs +17 -0
- package/esm2022/components/ctrl-array/ctrl-array.component.mjs +17 -0
- package/esm2022/components/date-picker/date-adapter.mjs +183 -0
- package/esm2022/components/date-picker/date-picker.component.mjs +55 -0
- package/esm2022/components/date-range-picker/date-range-picker.component.mjs +101 -0
- package/esm2022/components/datetime-picker/datetime-picker.component.mjs +79 -0
- package/esm2022/components/datetime-range-picker/datetime-range-picker.component.mjs +17 -0
- package/esm2022/components/file-picker/file-picker.component.mjs +121 -0
- package/esm2022/components/hints/hints.component.mjs +66 -0
- package/esm2022/components/input/input.component.mjs +32 -0
- package/esm2022/components/mobile/COUNTRIES.mjs +2041 -0
- package/esm2022/components/mobile/mobile.component.mjs +141 -0
- package/esm2022/components/mobile/phone.service.mjs +99 -0
- package/esm2022/components/note/note.component.mjs +17 -0
- package/esm2022/components/plate-number/plate-number.component.mjs +114 -0
- package/esm2022/components/radio/radio.component.mjs +40 -0
- package/esm2022/components/select/select.component.mjs +124 -0
- package/esm2022/components/slide-toggle/slide-toggle.component.mjs +23 -0
- package/esm2022/components/textarea/textarea.component.mjs +17 -0
- package/esm2022/components/time-picker/time-picker.component.mjs +169 -0
- package/esm2022/components/toggle-button/toggle-button.component.mjs +87 -0
- package/esm2022/directives/droppable.directive.mjs +39 -0
- package/esm2022/interfaces/country.interface.mjs +2 -0
- package/esm2022/interfaces/date-range-emission-object.mjs +2 -0
- package/esm2022/interfaces/hint.interface.mjs +2 -0
- package/esm2022/interfaces/iso2.interface.mjs +2 -0
- package/esm2022/interfaces/mobile.interface.mjs +2 -0
- package/esm2022/interfaces/option.interface.mjs +2 -0
- package/esm2022/interfaces/time.interface.mjs +2 -0
- package/esm2022/iss-ctrl.mjs +5 -0
- package/esm2022/pipes/select-status.pipe.mjs +18 -0
- package/esm2022/public-api.mjs +20 -0
- package/fesm2022/iss-ctrl.mjs +3659 -0
- package/fesm2022/iss-ctrl.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/interfaces/country.interface.d.ts +10 -0
- package/interfaces/date-range-emission-object.d.ts +5 -0
- package/interfaces/hint.interface.d.ts +5 -0
- package/interfaces/iso2.interface.d.ts +1 -0
- package/interfaces/mobile.interface.d.ts +11 -0
- package/interfaces/option.interface.d.ts +4 -0
- package/interfaces/time.interface.d.ts +5 -0
- package/package.json +25 -0
- package/pipes/select-status.pipe.d.ts +8 -0
- package/public-api.d.ts +19 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, effect, inject, input } from "@angular/core";
|
|
2
|
+
import { BaseCtrl } from "../base-ctrl";
|
|
3
|
+
import { FormControl, FormGroup, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from "@angular/material/datepicker";
|
|
5
|
+
import { MatFormField, MatSuffix } from "@angular/material/form-field";
|
|
6
|
+
import { MatInput } from "@angular/material/input";
|
|
7
|
+
import { DatePipe } from "@angular/common";
|
|
8
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
9
|
+
import { DATE_FORMAT_ADAPTER, ISSDateAdapter } from "../date-picker/date-adapter";
|
|
10
|
+
import { enGB } from "date-fns/locale";
|
|
11
|
+
import { toSignal } from "@angular/core/rxjs-interop";
|
|
12
|
+
import { TimePickerComponent } from "../time-picker/time-picker.component";
|
|
13
|
+
import { DatePickerComponent } from "../date-picker/date-picker.component";
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@angular/forms";
|
|
16
|
+
export class DatetimePickerComponent extends BaseCtrl {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.disabledDays = input([]);
|
|
20
|
+
this.minDate = input(null);
|
|
21
|
+
this.maxDate = input(null);
|
|
22
|
+
this.datetimePicker = new FormGroup({
|
|
23
|
+
date: new FormControl(),
|
|
24
|
+
time: new FormControl(),
|
|
25
|
+
});
|
|
26
|
+
this.#datePipe = inject(DatePipe);
|
|
27
|
+
this.#formChanges = toSignal(this.datetimePicker.valueChanges);
|
|
28
|
+
this.#effectRef = effect(() => {
|
|
29
|
+
if (this.#formChanges() && this.#formChanges().date && this.#formChanges().time) {
|
|
30
|
+
this.emitValue(this.#getEmissionValue(this.#formChanges().date, this.#formChanges().time));
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
#datePipe;
|
|
35
|
+
#formChanges;
|
|
36
|
+
#effectRef;
|
|
37
|
+
ngOnDestroy() {
|
|
38
|
+
this.#effectRef.destroy();
|
|
39
|
+
}
|
|
40
|
+
#getEmissionValue(date, time) {
|
|
41
|
+
const d = new Date(date);
|
|
42
|
+
let timeArr = time.split(":");
|
|
43
|
+
let datetime = new Date(d.setHours(+timeArr[0], +timeArr[1], 0));
|
|
44
|
+
return this.#formatDate(datetime);
|
|
45
|
+
}
|
|
46
|
+
#formatDate(date) {
|
|
47
|
+
return this.#datePipe.transform(date, "yyyy-MM-ddTHH:mm:ss") + "Z";
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: DatetimePickerComponent, isStandalone: true, selector: "iss-ctrl-datetime-picker", inputs: { disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
51
|
+
DatePipe,
|
|
52
|
+
{ provide: DateAdapter, useClass: ISSDateAdapter },
|
|
53
|
+
{ provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
|
|
54
|
+
{ provide: MAT_DATE_LOCALE, useValue: enGB },
|
|
55
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DatetimePickerComponent, multi: true }
|
|
56
|
+
], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"datetimePicker\" class=\"d-flex gap-3\">\r\n <iss-ctrl-date-picker class=\"flex-grow-1\" formControlName=\"date\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" [disabledDays]=\"disabledDays()\"/>\r\n <iss-ctrl-time-picker class=\"flex-grow-1\" formControlName=\"time\" [min]=\"min()\" [max]=\"max()\"/>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TimePickerComponent, selector: "iss-ctrl-time-picker" }, { kind: "component", type: DatePickerComponent, selector: "iss-ctrl-date-picker", inputs: ["disabledDays", "minDate", "maxDate"] }] }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimePickerComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: "iss-ctrl-datetime-picker", standalone: true, imports: [
|
|
61
|
+
FormsModule,
|
|
62
|
+
MatDatepicker,
|
|
63
|
+
MatDatepickerInput,
|
|
64
|
+
MatDatepickerToggle,
|
|
65
|
+
MatFormField,
|
|
66
|
+
MatInput,
|
|
67
|
+
MatSuffix,
|
|
68
|
+
ReactiveFormsModule,
|
|
69
|
+
TimePickerComponent,
|
|
70
|
+
DatePickerComponent
|
|
71
|
+
], providers: [
|
|
72
|
+
DatePipe,
|
|
73
|
+
{ provide: DateAdapter, useClass: ISSDateAdapter },
|
|
74
|
+
{ provide: MAT_DATE_FORMATS, useValue: DATE_FORMAT_ADAPTER },
|
|
75
|
+
{ provide: MAT_DATE_LOCALE, useValue: enGB },
|
|
76
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DatetimePickerComponent, multi: true }
|
|
77
|
+
], template: "<form [formGroup]=\"datetimePicker\" class=\"d-flex gap-3\">\r\n <iss-ctrl-date-picker class=\"flex-grow-1\" formControlName=\"date\" [minDate]=\"minDate()\" [maxDate]=\"maxDate()\" [disabledDays]=\"disabledDays()\"/>\r\n <iss-ctrl-time-picker class=\"flex-grow-1\" formControlName=\"time\" [min]=\"min()\" [max]=\"max()\"/>\r\n</form>\r\n" }]
|
|
78
|
+
}] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lzcy1jdHJsL3NyYy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsS0FBSyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRyxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDaEYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIs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bkIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjtxQkFDcEIsYUFHVTt3QkFDVCxRQUFRO3dCQUNSLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDO3dCQUNoRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUM7d0JBQzFELEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDO3dCQUMxQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQ2hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGVmZmVjdCwgRWZmZWN0UmVmLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgT25EZXN0cm95fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0Jhc2VDdHJsfSBmcm9tIFwiLi4vYmFzZS1jdHJsXCI7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtNYXREYXRlcGlja2VyLCBNYXREYXRlcGlja2VySW5wdXQsIE1hdERhdGVwaWNrZXJUb2dnbGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XHJcbmltcG9ydCB7TWF0Rm9ybUZpZWxkLCBNYXRTdWZmaXh9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHtEQVRFX0ZPUk1BVF9BREFQVEVSLCBJU1NEYXRlQWRhcHRlcn0gZnJvbSBcIi4uL2RhdGUtcGlja2VyL2RhdGUtYWRhcHRlclwiO1xyXG5pbXBvcnQge2VuR0J9IGZyb20gXCJkYXRlLWZucy9sb2NhbGVcIjtcclxuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XHJcbmltcG9ydCB7VGltZVBpY2tlckNvbXBvbmVudH0gZnJvbSBcIi4uL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RhdGVQaWNrZXJDb21wb25lbnR9IGZyb20gXCIuLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWRhdGV0aW1lLXBpY2tlclwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyLFxyXG4gICAgTWF0RGF0ZXBpY2tlcklucHV0LFxyXG4gICAgTWF0RGF0ZXBpY2tlclRvZ2dsZSxcclxuICAgIE1hdEZvcm1GaWVsZCxcclxuICAgIE1hdElucHV0LFxyXG4gICAgTWF0U3VmZml4LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIHtwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IElTU0RhdGVBZGFwdGVyfSxcclxuICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogREFURV9GT1JNQVRfQURBUFRFUn0sXHJcbiAgICB7cHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogZW5HQn0sXHJcbiAgICB7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEYXRldGltZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWV9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ3RybCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGlzYWJsZWREYXlzOiBJbnB1dFNpZ25hbDxudW1iZXJbXT4gPSBpbnB1dDxudW1iZXJbXT4oW10pO1xyXG4gIG1pbkRhdGU6IElucHV0U2lnbmFsPERhdGUgfCBudWxsPiA9IGlucHV0PERhdGUgfCBudWxsPihudWxsKTtcclxuICBtYXhEYXRlOiBJbnB1dFNpZ25hbDxEYXRlIHwgbnVsbD4gPSBpbnB1dDxEYXRlIHwgbnVsbD4obnVsbCk7XHJcbiAgZGF0ZXRpbWVQaWNrZXI6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgZGF0ZTogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICB0aW1lOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICB9KTtcclxuICAjZGF0ZVBpcGU6IERhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcclxuICAjZm9ybUNoYW5nZXMgPSB0b1NpZ25hbCh0aGlzLmRhdGV0aW1lUGlja2VyLnZhbHVlQ2hhbmdlcyk7XHJcbiAgI2VmZmVjdFJlZjogRWZmZWN0UmVmID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0aGlzLiNmb3JtQ2hhbmdlcygpICYmIHRoaXMuI2Zvcm1DaGFuZ2VzKCkuZGF0ZSAmJiB0aGlzLiNmb3JtQ2hhbmdlcygpLnRpbWUpIHtcclxuICAgICAgdGhpcy5lbWl0VmFsdWUodGhpcy4jZ2V0RW1pc3Npb25WYWx1ZSh0aGlzLiNmb3JtQ2hhbmdlcygpLmRhdGUsIHRoaXMuI2Zvcm1DaGFuZ2VzKCkudGltZSkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2VmZmVjdFJlZi5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICAjZ2V0RW1pc3Npb25WYWx1ZShkYXRlOiBzdHJpbmcsIHRpbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBsZXQgdGltZUFycjogc3RyaW5nW10gPSB0aW1lLnNwbGl0KFwiOlwiKTtcclxuICAgIGxldCBkYXRldGltZTogRGF0ZSA9IG5ldyBEYXRlKGQuc2V0SG91cnMoK3RpbWVBcnJbMF0sICt0aW1lQXJyWzFdLCAwKSk7XHJcbiAgICByZXR1cm4gdGhpcy4jZm9ybWF0RGF0ZShkYXRldGltZSk7XHJcbiAgfVxyXG5cclxuICAjZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuI2RhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCBcInl5eXktTU0tZGRUSEg6bW06c3NcIikgKyBcIlpcIjtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRldGltZVBpY2tlclwiIGNsYXNzPVwiZC1mbGV4IGdhcC0zXCI+XHJcbiAgPGlzcy1jdHJsLWRhdGUtcGlja2VyIGNsYXNzPVwiZmxleC1ncm93LTFcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZSgpXCIgW21heERhdGVdPVwibWF4RGF0ZSgpXCIgW2Rpc2FibGVkRGF5c109XCJkaXNhYmxlZERheXMoKVwiLz5cclxuICA8aXNzLWN0cmwtdGltZS1waWNrZXIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIGZvcm1Db250cm9sTmFtZT1cInRpbWVcIiBbbWluXT1cIm1pbigpXCIgW21heF09XCJtYXgoKVwiLz5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { BaseCtrl } from "../base-ctrl";
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DatetimeRangePickerComponent extends BaseCtrl {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: DatetimeRangePickerComponent, isStandalone: true, selector: "iss-ctrl-datetime-range-picker", providers: [
|
|
8
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DatetimeRangePickerComponent, multi: true }
|
|
9
|
+
], usesInheritance: true, ngImport: i0, template: "<p>datetime-range-picker works!</p>\r\n", styles: [""] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatetimeRangePickerComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: "iss-ctrl-datetime-range-picker", standalone: true, imports: [], providers: [
|
|
14
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DatetimeRangePickerComponent, multi: true }
|
|
15
|
+
], template: "<p>datetime-range-picker works!</p>\r\n" }]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lzcy1jdHJsL3NyYy9jb21wb25lbnRzL2RhdGV0aW1lLXJhbmdlLXBpY2tlci9kYXRldGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvZGF0ZXRpbWUtcmFuZ2UtcGlja2VyL2RhdGV0aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBWWpELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxRQUFROzhHQUE3Qyw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw2RUFKNUI7WUFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztTQUNyRixpRENaSCx5Q0FDQTs7MkZEYWEsNEJBQTRCO2tCQVZ4QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1AsRUFBRSxhQUdBO3dCQUNULEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsOEJBQThCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztxQkFDckYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtCYXNlQ3RybH0gZnJvbSBcIi4uL2Jhc2UtY3RybFwiO1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWRhdGV0aW1lLXJhbmdlLXBpY2tlclwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9kYXRldGltZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2RhdGV0aW1lLXJhbmdlLXBpY2tlci5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRGF0ZXRpbWVSYW5nZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWV9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVSYW5nZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDdHJsIHtcclxuXHJcbn1cclxuIiwiPHA+ZGF0ZXRpbWUtcmFuZ2UtcGlja2VyIHdvcmtzITwvcD5cclxuIl19
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, effect, input, signal } from "@angular/core";
|
|
2
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
|
|
3
|
+
import { BaseCtrl } from "../base-ctrl";
|
|
4
|
+
import { MatTooltip } from "@angular/material/tooltip";
|
|
5
|
+
import { DroppableDirective } from "../../directives/droppable.directive";
|
|
6
|
+
import { HintsComponent } from "../hints/hints.component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
export class FilePickerComponent extends BaseCtrl {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.accept = input();
|
|
13
|
+
this.showDownloadButton = input(true);
|
|
14
|
+
this.showDeleteButton = input(true);
|
|
15
|
+
this.attachments = signal([]);
|
|
16
|
+
this.#effectRef = effect(() => {
|
|
17
|
+
if (this.attachments().length) {
|
|
18
|
+
this.emitValue(this.#formDataFactory(this.attachments()));
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
#effectRef;
|
|
23
|
+
ngOnDestroy() {
|
|
24
|
+
this.#effectRef.destroy();
|
|
25
|
+
}
|
|
26
|
+
writeValue(val) {
|
|
27
|
+
this.#reset();
|
|
28
|
+
if (val) {
|
|
29
|
+
this.attachments.set([...this.attachments(), ...this.#convertFormDataToFiles(val)]);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
onDownload($event) {
|
|
33
|
+
const fileUrl = this.#createObjectUrl($event.detail.value);
|
|
34
|
+
const anchorElement = this.#createAnchorElement(fileUrl, $event.detail.value.name);
|
|
35
|
+
this.#useAnchorElementThenDispose(anchorElement, fileUrl);
|
|
36
|
+
}
|
|
37
|
+
onDelete(index) {
|
|
38
|
+
const fileHtmlElement = document.getElementById("file");
|
|
39
|
+
if (fileHtmlElement) {
|
|
40
|
+
fileHtmlElement.value = "";
|
|
41
|
+
}
|
|
42
|
+
this.attachments.update((files) => {
|
|
43
|
+
return files.filter((_, i) => i !== index);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
captureFile($event) {
|
|
47
|
+
if (!$event) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!$event.length) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.markAsTouched();
|
|
54
|
+
const files = Array.from($event);
|
|
55
|
+
this.#updateAttachments(files);
|
|
56
|
+
}
|
|
57
|
+
#createObjectUrl(file) {
|
|
58
|
+
const blob = new Blob([file], {
|
|
59
|
+
type: "application/octet-stream",
|
|
60
|
+
});
|
|
61
|
+
return window.URL.createObjectURL(blob);
|
|
62
|
+
}
|
|
63
|
+
#updateAttachments(selectedFiles) {
|
|
64
|
+
if (!this.multiple()) {
|
|
65
|
+
this.attachments.set([]);
|
|
66
|
+
this.attachments()[0] = selectedFiles[0];
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.attachments.update((files) => {
|
|
70
|
+
files = [...files, ...selectedFiles];
|
|
71
|
+
return files;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
#formDataFactory(files) {
|
|
75
|
+
const fd = new FormData();
|
|
76
|
+
for (let i = 0; i < files.length; i++) {
|
|
77
|
+
fd.append("file", files[i]);
|
|
78
|
+
}
|
|
79
|
+
return fd;
|
|
80
|
+
}
|
|
81
|
+
#reset() {
|
|
82
|
+
this.attachments.set([]);
|
|
83
|
+
}
|
|
84
|
+
#convertFormDataToFiles(val) {
|
|
85
|
+
let files = [];
|
|
86
|
+
for (let pair of val.entries()) {
|
|
87
|
+
if (pair[1] instanceof File) {
|
|
88
|
+
files.push(pair[1]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return files;
|
|
92
|
+
}
|
|
93
|
+
#createAnchorElement(fileUrl, fileName) {
|
|
94
|
+
let a = document.createElement("a");
|
|
95
|
+
a.setAttribute("style", "display: none");
|
|
96
|
+
a.href = fileUrl;
|
|
97
|
+
a.download = fileName;
|
|
98
|
+
return a;
|
|
99
|
+
}
|
|
100
|
+
#useAnchorElementThenDispose(a, fileUrl) {
|
|
101
|
+
a.click();
|
|
102
|
+
window.URL.revokeObjectURL(fileUrl);
|
|
103
|
+
a.remove();
|
|
104
|
+
}
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FilePickerComponent, isStandalone: true, selector: "iss-ctrl-file-picker", inputs: { accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, showDownloadButton: { classPropertyName: "showDownloadButton", publicName: "showDownloadButton", isSignal: true, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
107
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: FilePickerComponent, multi: true }
|
|
108
|
+
], usesInheritance: true, ngImport: i0, template: "<ds-file-picker (click)=\"inputFile.click(); markAsTouched()\" droppable (onDrop)=\"captureFile($event)\">\r\n <input\r\n id=\"file\"\r\n type=\"file\"\r\n #inputFile\r\n [style.display]=\"'none'\"\r\n [formControl]=\"ctrl\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n (change)=\"captureFile($any($event.target).files)\"\r\n />\r\n</ds-file-picker>\r\n\r\n<iss-ctrl-hints [hints]=\"hints()\" [touched]=\"touched()\"/>\r\n@if (attachments().length) {\r\n <section class=\"files-list\">\r\n @for (file of attachments(); track $index) {\r\n <div class=\"file-item-container\">\r\n @if (file) {\r\n <ds-attachments\r\n [matTooltip]=\"file.name\"\r\n [file]=\"file\"\r\n [showDownload]=\"showDownloadButton()\"\r\n [showActions]=\"showDeleteButton()\"\r\n (downloadEvent)=\"onDownload($event)\"\r\n (deleteEvent)=\"onDelete($index)\"\r\n >\r\n </ds-attachments>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}.insideTableStyle{width:272px}.files-list{--file-item-width: 270px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: DroppableDirective, selector: "[droppable]", outputs: ["onDrop"] }, { kind: "component", type: HintsComponent, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }] }); }
|
|
109
|
+
}
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: "iss-ctrl-file-picker", standalone: true, imports: [
|
|
113
|
+
ReactiveFormsModule,
|
|
114
|
+
MatTooltip,
|
|
115
|
+
DroppableDirective,
|
|
116
|
+
HintsComponent,
|
|
117
|
+
], providers: [
|
|
118
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: FilePickerComponent, multi: true }
|
|
119
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ds-file-picker (click)=\"inputFile.click(); markAsTouched()\" droppable (onDrop)=\"captureFile($event)\">\r\n <input\r\n id=\"file\"\r\n type=\"file\"\r\n #inputFile\r\n [style.display]=\"'none'\"\r\n [formControl]=\"ctrl\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n (change)=\"captureFile($any($event.target).files)\"\r\n />\r\n</ds-file-picker>\r\n\r\n<iss-ctrl-hints [hints]=\"hints()\" [touched]=\"touched()\"/>\r\n@if (attachments().length) {\r\n <section class=\"files-list\">\r\n @for (file of attachments(); track $index) {\r\n <div class=\"file-item-container\">\r\n @if (file) {\r\n <ds-attachments\r\n [matTooltip]=\"file.name\"\r\n [file]=\"file\"\r\n [showDownload]=\"showDownloadButton()\"\r\n [showActions]=\"showDeleteButton()\"\r\n (downloadEvent)=\"onDownload($event)\"\r\n (deleteEvent)=\"onDelete($index)\"\r\n >\r\n </ds-attachments>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [".file-uploader{--uploader-height: 150px;--uploader-width: 100%;--uploader-bg: var(--off-white);--uploader-border: 1px dashed var(--dark-gray);--uploader-radius: var(--box-radius);--uploader-padding: 1rem;height:var(--uploader-height);background-color:var(--uploader-bg);border:var(--uploader-border);border-radius:var(--uploader-radius);padding:var(--uploader-padding);text-align:center;cursor:pointer}.file-uploader--input{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}.insideTableStyle{width:272px}.files-list{--file-item-width: 270px;display:grid;grid-template-columns:repeat(auto-fill,var(--file-item-width));grid-gap:.5rem}@media (max-width: 768px){.files-list{grid-template-columns:repeat(auto-fill,minmax(var(--file-item-width),1fr))}}.files-list .file-item-container .file-item{--file-bg: var(--off-white);--file-radius: var(--box-radius);--icon-color: var(--purple);--icon-size: 2rem;--file-border: transparent;display:flex;align-items:center;background-color:var(--file-bg);border:1px solid var(--file-border);border-radius:var(--file-radius);padding:0 1rem;height:70px;gap:.75rem}.files-list .file-item-container .file-item.error{--file-bg: rgba(var(--rgb-red), 10%);--file-border: var(--red);--icon-color: var(--red)}.files-list .file-item-container .file-item .icon{color:var(--icon-color);font-size:var(--icon-size)}.files-list .file-item-container .file-item .file-action{display:flex;align-items:center;gap:.5rem}ds-attachments::part(base){--file-width: 250px}::ng-deep .file-item .name-size{display:flex;flex-direction:column;justify-content:center;flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px}\n"] }]
|
|
120
|
+
}] });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQWEsS0FBSyxFQUEwQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBa0J4RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsUUFBUTtJQWhCakQ7O1FBaUJFLFdBQU0sR0FBb0MsS0FBSyxFQUFFLENBQUM7UUFDbEQsdUJBQWtCLEdBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxxQkFBZ0IsR0FBeUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLGdCQUFXLEdBQTJCLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxlQUFVLEdBQWMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFNB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LENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDYixDQUFDOzhHQXhHVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrZ0JBTG5CO1lBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7U0FDNUUsaURDcEJILGdqQ0FpQ0EscXVERHRCSSxtQkFBbUIsMGtCQUNuQixVQUFVLGlSQUNWLGtCQUFrQiw2RUFDbEIsY0FBYzs7MkZBU0wsbUJBQW1CO2tCQWhCL0IsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsYUFHVTt3QkFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQzVFLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIEVmZmVjdFJlZiwgaW5wdXQsIElucHV0U2lnbmFsLCBPbkRlc3Ryb3ksIHNpZ25hbCwgV3JpdGFibGVTaWduYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0Jhc2VDdHJsfSBmcm9tIFwiLi4vYmFzZS1jdHJsXCI7XHJcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtEcm9wcGFibGVEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2Ryb3BwYWJsZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtIaW50c0NvbXBvbmVudH0gZnJvbSBcIi4uL2hpbnRzL2hpbnRzLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaXNzLWN0cmwtZmlsZS1waWNrZXJcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwLFxyXG4gICAgRHJvcHBhYmxlRGlyZWN0aXZlLFxyXG4gICAgSGludHNDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9maWxlLXBpY2tlci5jb21wb25lbnQuc2Nzc1wiLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRmlsZVBpY2tlckNvbXBvbmVudCwgbXVsdGk6IHRydWV9XHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ3RybCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgYWNjZXB0OiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcclxuICBzaG93RG93bmxvYWRCdXR0b246IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XHJcbiAgc2hvd0RlbGV0ZUJ1dHRvbjogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dCh0cnVlKTtcclxuICBwcm90ZWN0ZWQgYXR0YWNobWVudHM6IFdyaXRhYmxlU2lnbmFsPEZpbGVbXT4gPSBzaWduYWwoW10pO1xyXG4gICNlZmZlY3RSZWY6IEVmZmVjdFJlZiA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5hdHRhY2htZW50cygpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmVtaXRWYWx1ZSh0aGlzLiNmb3JtRGF0YUZhY3RvcnkodGhpcy5hdHRhY2htZW50cygpKSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jZWZmZWN0UmVmLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsOiBGb3JtRGF0YSB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuI3Jlc2V0KCk7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMuc2V0KFsuLi50aGlzLmF0dGFjaG1lbnRzKCksIC4uLnRoaXMuI2NvbnZlcnRGb3JtRGF0YVRvRmlsZXModmFsKV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uRG93bmxvYWQoJGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbGVVcmw6IHN0cmluZyA9IHRoaXMuI2NyZWF0ZU9iamVjdFVybCgkZXZlbnQuZGV0YWlsLnZhbHVlKTtcclxuICAgIGNvbnN0IGFuY2hvckVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50ID0gdGhpcy4jY3JlYXRlQW5jaG9yRWxlbWVudChmaWxlVXJsLCAkZXZlbnQuZGV0YWlsLnZhbHVlLm5hbWUpO1xyXG4gICAgdGhpcy4jdXNlQW5jaG9yRWxlbWVudFRoZW5EaXNwb3NlKGFuY2hvckVsZW1lbnQsIGZpbGVVcmwpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbGVIdG1sRWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImZpbGVcIikgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChmaWxlSHRtbEVsZW1lbnQpIHtcclxuICAgICAgZmlsZUh0bWxFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIHRoaXMuYXR0YWNobWVudHMudXBkYXRlKChmaWxlczogRmlsZVtdKSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWxlcy5maWx0ZXIoKF86IEZpbGUsIGk6IG51bWJlcik6IGJvb2xlYW4gPT4gaSAhPT0gaW5kZXgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2FwdHVyZUZpbGUoJGV2ZW50OiBGaWxlTGlzdCkge1xyXG4gICAgaWYgKCEkZXZlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCEkZXZlbnQubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IEFycmF5LmZyb20oJGV2ZW50KTtcclxuICAgIHRoaXMuI3VwZGF0ZUF0dGFjaG1lbnRzKGZpbGVzKTtcclxuICB9XHJcblxyXG4gICNjcmVhdGVPYmplY3RVcmwoZmlsZTogRmlsZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBibG9iOiBCbG9iID0gbmV3IEJsb2IoW2ZpbGVdLCB7XHJcbiAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVBdHRhY2htZW50cyhzZWxlY3RlZEZpbGVzOiBGaWxlW10pIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSgpKSB7XHJcbiAgICAgIHRoaXMuYXR0YWNobWVudHMuc2V0KFtdKTtcclxuICAgICAgdGhpcy5hdHRhY2htZW50cygpWzBdID0gc2VsZWN0ZWRGaWxlc1swXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXR0YWNobWVudHMudXBkYXRlKChmaWxlczogRmlsZVtdKSA9PiB7XHJcbiAgICAgIGZpbGVzID0gWy4uLmZpbGVzLCAuLi5zZWxlY3RlZEZpbGVzXTtcclxuICAgICAgcmV0dXJuIGZpbGVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjZm9ybURhdGFGYWN0b3J5KGZpbGVzOiBGaWxlW10pOiBGb3JtRGF0YSB7XHJcbiAgICBjb25zdCBmZDogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZmQuYXBwZW5kKFwiZmlsZVwiLCBmaWxlc1tpXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmQ7XHJcbiAgfVxyXG5cclxuICAjcmVzZXQoKSB7XHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzLnNldChbXSk7XHJcbiAgfVxyXG5cclxuICAjY29udmVydEZvcm1EYXRhVG9GaWxlcyh2YWw6IEZvcm1EYXRhKSB7XHJcbiAgICBsZXQgZmlsZXM6IEZpbGVbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgcGFpciBvZiB2YWwuZW50cmllcygpKSB7XHJcbiAgICAgIGlmIChwYWlyWzFdIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgIGZpbGVzLnB1c2gocGFpclsxXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlcztcclxuICB9XHJcblxyXG4gICNjcmVhdGVBbmNob3JFbGVtZW50KGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZyk6IEhUTUxBbmNob3JFbGVtZW50IHtcclxuICAgIGxldCBhOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgYS5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcImRpc3BsYXk6IG5vbmVcIik7XHJcbiAgICBhLmhyZWYgPSBmaWxlVXJsO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG4gICAgcmV0dXJuIGE7XHJcbiAgfVxyXG5cclxuICAjdXNlQW5jaG9yRWxlbWVudFRoZW5EaXNwb3NlKGE6IEhUTUxBbmNob3JFbGVtZW50LCBmaWxlVXJsOiBzdHJpbmcpIHtcclxuICAgIGEuY2xpY2soKTtcclxuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGZpbGVVcmwpO1xyXG4gICAgYS5yZW1vdmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRzLWZpbGUtcGlja2VyIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKTsgbWFya0FzVG91Y2hlZCgpXCIgZHJvcHBhYmxlIChvbkRyb3ApPVwiY2FwdHVyZUZpbGUoJGV2ZW50KVwiPlxyXG4gIDxpbnB1dFxyXG4gICAgaWQ9XCJmaWxlXCJcclxuICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICNpbnB1dEZpbGVcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY3RybFwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcbiAgICBbYWNjZXB0XT1cImFjY2VwdCgpXCJcclxuICAgIChjaGFuZ2UpPVwiY2FwdHVyZUZpbGUoJGFueSgkZXZlbnQudGFyZ2V0KS5maWxlcylcIlxyXG4gIC8+XHJcbjwvZHMtZmlsZS1waWNrZXI+XHJcblxyXG48aXNzLWN0cmwtaGludHMgW2hpbnRzXT1cImhpbnRzKClcIiBbdG91Y2hlZF09XCJ0b3VjaGVkKClcIi8+XHJcbkBpZiAoYXR0YWNobWVudHMoKS5sZW5ndGgpIHtcclxuICA8c2VjdGlvbiBjbGFzcz1cImZpbGVzLWxpc3RcIj5cclxuICAgIEBmb3IgKGZpbGUgb2YgYXR0YWNobWVudHMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWl0ZW0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgQGlmIChmaWxlKSB7XHJcbiAgICAgICAgICA8ZHMtYXR0YWNobWVudHNcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZmlsZS5uYW1lXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgIFtzaG93RG93bmxvYWRdPVwic2hvd0Rvd25sb2FkQnV0dG9uKClcIlxyXG4gICAgICAgICAgICBbc2hvd0FjdGlvbnNdPVwic2hvd0RlbGV0ZUJ1dHRvbigpXCJcclxuICAgICAgICAgICAgKGRvd25sb2FkRXZlbnQpPVwib25Eb3dubG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGRlbGV0ZUV2ZW50KT1cIm9uRGVsZXRlKCRpbmRleClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kcy1hdHRhY2htZW50cz5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvc2VjdGlvbj5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, input } from "@angular/core";
|
|
2
|
+
import { MatHint } from "@angular/material/form-field";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HintsComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.hints = input([]);
|
|
7
|
+
this.touched = input(false);
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HintsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HintsComponent, isStandalone: true, selector: "iss-ctrl-hints", inputs: { hints: { classPropertyName: "hints", publicName: "hints", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
11
|
+
@if (hints().length) {
|
|
12
|
+
<div class="d-flex align-items-center flex-wrap gap-2 mb-3">
|
|
13
|
+
@for (hint of hints(); track $index) {
|
|
14
|
+
@if (hint) {
|
|
15
|
+
<mat-hint class="d-flex align-items-center gap-1 fs-12">
|
|
16
|
+
@if (hint.valid === undefined) {
|
|
17
|
+
<ds-icon icon="info" class="fs-24 fc-dark-gray"></ds-icon>
|
|
18
|
+
<span class="fc-dark-gray text-break">{{ hint.label }}</span>
|
|
19
|
+
} @else {
|
|
20
|
+
<ds-icon
|
|
21
|
+
icon="{{ touched() ? (hint.valid ? 'check-circle-f' : 'close-circle') : 'check-circle-o' }}"
|
|
22
|
+
class="fs-24 {{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }}"
|
|
23
|
+
>
|
|
24
|
+
</ds-icon>
|
|
25
|
+
<span class="{{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }} text-break">{{ hint.label }}</span>
|
|
26
|
+
}
|
|
27
|
+
</mat-hint>
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
</div>
|
|
31
|
+
}
|
|
32
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }] }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HintsComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{
|
|
37
|
+
selector: "iss-ctrl-hints",
|
|
38
|
+
standalone: true,
|
|
39
|
+
imports: [MatHint,],
|
|
40
|
+
template: `
|
|
41
|
+
@if (hints().length) {
|
|
42
|
+
<div class="d-flex align-items-center flex-wrap gap-2 mb-3">
|
|
43
|
+
@for (hint of hints(); track $index) {
|
|
44
|
+
@if (hint) {
|
|
45
|
+
<mat-hint class="d-flex align-items-center gap-1 fs-12">
|
|
46
|
+
@if (hint.valid === undefined) {
|
|
47
|
+
<ds-icon icon="info" class="fs-24 fc-dark-gray"></ds-icon>
|
|
48
|
+
<span class="fc-dark-gray text-break">{{ hint.label }}</span>
|
|
49
|
+
} @else {
|
|
50
|
+
<ds-icon
|
|
51
|
+
icon="{{ touched() ? (hint.valid ? 'check-circle-f' : 'close-circle') : 'check-circle-o' }}"
|
|
52
|
+
class="fs-24 {{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }}"
|
|
53
|
+
>
|
|
54
|
+
</ds-icon>
|
|
55
|
+
<span class="{{ touched() ? (hint.valid ? 'fc-green' : 'fc-red') : 'fc-dark-gray' }} text-break">{{ hint.label }}</span>
|
|
56
|
+
}
|
|
57
|
+
</mat-hint>
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
</div>
|
|
61
|
+
}
|
|
62
|
+
`,
|
|
63
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
64
|
+
}]
|
|
65
|
+
}] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvaGludHMvaGludHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUErQnJELE1BQU0sT0FBTyxjQUFjO0lBN0IzQjtRQThCRSxVQUFLLEdBQXdCLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQyxZQUFPLEdBQXlCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM5Qzs4R0FIWSxjQUFjO2tHQUFkLGNBQWMsNFVBekJmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JULDREQXZCUyxPQUFPOzsyRkEwQk4sY0FBYztrQkE3QjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRTtvQkFDbkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbnB1dCwgSW5wdXRTaWduYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SGludH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvaGludC5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtNYXRIaW50fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaXNzLWN0cmwtaGludHNcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRIaW50LF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIEBpZiAoaGludHMoKS5sZW5ndGgpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC13cmFwIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICBAZm9yIChoaW50IG9mIGhpbnRzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgQGlmIChoaW50KSB7XHJcbiAgICAgICAgICAgIDxtYXQtaGludCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgZnMtMTJcIj5cclxuICAgICAgICAgICAgICBAaWYgKGhpbnQudmFsaWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgPGRzLWljb24gaWNvbj1cImluZm9cIiBjbGFzcz1cImZzLTI0IGZjLWRhcmstZ3JheVwiPjwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmMtZGFyay1ncmF5IHRleHQtYnJlYWtcIj57eyBoaW50LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgPGRzLWljb25cclxuICAgICAgICAgICAgICAgICAgaWNvbj1cInt7IHRvdWNoZWQoKSA/IChoaW50LnZhbGlkID8gJ2NoZWNrLWNpcmNsZS1mJyA6ICdjbG9zZS1jaXJjbGUnKSA6ICdjaGVjay1jaXJjbGUtbycgfX1cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTI0IHt7IHRvdWNoZWQoKSA/IChoaW50LnZhbGlkID8gJ2ZjLWdyZWVuJyA6ICdmYy1yZWQnKSA6ICdmYy1kYXJrLWdyYXknIH19XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZHMtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3sgdG91Y2hlZCgpID8gKGhpbnQudmFsaWQgPyAnZmMtZ3JlZW4nIDogJ2ZjLXJlZCcpIDogJ2ZjLWRhcmstZ3JheScgfX0gdGV4dC1icmVha1wiPnt7IGhpbnQubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L21hdC1oaW50PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgYCxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaW50c0NvbXBvbmVudCB7XHJcbiAgaGludHM6IElucHV0U2lnbmFsPEhpbnRbXT4gPSBpbnB1dDxIaW50W10+KFtdKTtcclxuICB0b3VjaGVkOiBJbnB1dFNpZ25hbDxib29sZWFuPiA9IGlucHV0KGZhbHNlKTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input } from "@angular/core";
|
|
2
|
+
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
3
|
+
import { MatInputModule } from "@angular/material/input";
|
|
4
|
+
import { BaseCtrl } from "../base-ctrl";
|
|
5
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
|
|
6
|
+
import { HintsComponent } from "../hints/hints.component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/form-field";
|
|
9
|
+
import * as i2 from "@angular/material/input";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
export class InputComponent extends BaseCtrl {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.type = input("text");
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.0", type: InputComponent, isStandalone: true, selector: "iss-ctrl-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
18
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: InputComponent, multi: true }
|
|
19
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\">\r\n <input\r\n (blur)=\"markAsTouched()\"\r\n (input)=\"emitOnChangeEvent()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n [placeholder]=\"placeholder()\"\r\n [type]=\"type()\"\r\n matInput\r\n />\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: HintsComponent, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: "iss-ctrl-input", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
24
|
+
MatFormFieldModule,
|
|
25
|
+
MatInputModule,
|
|
26
|
+
ReactiveFormsModule,
|
|
27
|
+
HintsComponent
|
|
28
|
+
], providers: [
|
|
29
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: InputComponent, multi: true }
|
|
30
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-form-field appearance=\"outline\">\r\n <input\r\n (blur)=\"markAsTouched()\"\r\n (input)=\"emitOnChangeEvent()\"\r\n [formControl]=\"ctrl\"\r\n [maxlength]=\"max()\"\r\n [minlength]=\"min()\"\r\n [placeholder]=\"placeholder()\"\r\n [type]=\"type()\"\r\n matInput\r\n />\r\n <iss-ctrl-hints [hints]=\"hints()\"/>\r\n</mat-form-field>\r\n" }]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXNzLWN0cmwvc3JjL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7OztBQW9CeEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBbEI1Qzs7UUFtQkUsU0FBSSxHQUF3QixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDM0M7OEdBRlksY0FBYztrR0FBZCxjQUFjLDhMQU5kO1lBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO1NBQ3ZFLGlEQ3JCSCxrWEFhQSx5RERESSxrQkFBa0IseU9BQ2xCLGNBQWMsMFdBQ2QsbUJBQW1CLGc1QkFDbkIsY0FBYzs7MkZBVUwsY0FBYztrQkFsQjFCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGNBQWM7cUJBQ2YsYUFHVTt3QkFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQ3ZFLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5wdXQsIElucHV0U2lnbmFsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7QmFzZUN0cmx9IGZyb20gXCIuLi9iYXNlLWN0cmxcIjtcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7SGludHNDb21wb25lbnR9IGZyb20gXCIuLi9oaW50cy9oaW50cy5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImlzcy1jdHJsLWlucHV0XCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBIaW50c0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vaW5wdXQuY29tcG9uZW50LnNjc3NcIixcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IElucHV0Q29tcG9uZW50LCBtdWx0aTogdHJ1ZX1cclxuICBdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUN0cmwge1xyXG4gIHR5cGU6IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dChcInRleHRcIik7XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgPGlucHV0XHJcbiAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxyXG4gICAgKGlucHV0KT1cImVtaXRPbkNoYW5nZUV2ZW50KClcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImN0cmxcIlxyXG4gICAgW21heGxlbmd0aF09XCJtYXgoKVwiXHJcbiAgICBbbWlubGVuZ3RoXT1cIm1pbigpXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICAgIFt0eXBlXT1cInR5cGUoKVwiXHJcbiAgICBtYXRJbnB1dFxyXG4gIC8+XHJcbiAgPGlzcy1jdHJsLWhpbnRzIFtoaW50c109XCJoaW50cygpXCIvPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=
|