iss-ctrl 0.0.8 → 0.0.10
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/fesm2022/{iss-ctrl-iss-ctrl-BLjj_Aqu.mjs → iss-ctrl-iss-ctrl-hz0ibyPg.mjs} +929 -438
- package/fesm2022/iss-ctrl-iss-ctrl-hz0ibyPg.mjs.map +1 -0
- package/fesm2022/{iss-ctrl-load-event-Co3HQu91.mjs → iss-ctrl-load-event-BW5dKG8R.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-event-Co3HQu91.mjs.map → iss-ctrl-load-event-BW5dKG8R.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-options-event-BIn0aiHl.mjs → iss-ctrl-load-options-event-ClX9TiiD.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-options-event-BIn0aiHl.mjs.map → iss-ctrl-load-options-event-ClX9TiiD.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-load-value-event-idouR9ST.mjs → iss-ctrl-load-value-event-DThpI9BA.mjs} +3 -3
- package/fesm2022/{iss-ctrl-load-value-event-idouR9ST.mjs.map → iss-ctrl-load-value-event-DThpI9BA.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-note.field-CuTQ3YwJ.mjs → iss-ctrl-note.field-4uLl0oS_.mjs} +4 -4
- package/fesm2022/{iss-ctrl-note.field-CuTQ3YwJ.mjs.map → iss-ctrl-note.field-4uLl0oS_.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-replace-api-keys-Df8ruZtV.mjs → iss-ctrl-replace-api-keys-BQL9zimJ.mjs} +2 -2
- package/fesm2022/{iss-ctrl-replace-api-keys-Df8ruZtV.mjs.map → iss-ctrl-replace-api-keys-BQL9zimJ.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-set-value-event-BNNMVIeT.mjs → iss-ctrl-set-value-event-BbEYFBe3.mjs} +2 -2
- package/fesm2022/{iss-ctrl-set-value-event-BNNMVIeT.mjs.map → iss-ctrl-set-value-event-BbEYFBe3.mjs.map} +1 -1
- package/fesm2022/iss-ctrl-table.field-kPIwve-M.mjs +517 -0
- package/fesm2022/iss-ctrl-table.field-kPIwve-M.mjs.map +1 -0
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-6yh7NOEH.mjs → iss-ctrl-trigger-based-on-json-value-DuLD4SOS.mjs} +2 -2
- package/fesm2022/{iss-ctrl-trigger-based-on-json-value-6yh7NOEH.mjs.map → iss-ctrl-trigger-based-on-json-value-DuLD4SOS.mjs.map} +1 -1
- package/fesm2022/{iss-ctrl-user-picker.field-Cx0CCAFC.mjs → iss-ctrl-user-picker.field-l-0bW6lP.mjs} +36 -20
- package/fesm2022/iss-ctrl-user-picker.field-l-0bW6lP.mjs.map +1 -0
- package/fesm2022/iss-ctrl.mjs +1 -1
- package/package.json +1 -1
- package/types/iss-ctrl.d.ts +44 -29
- package/fesm2022/iss-ctrl-iss-ctrl-BLjj_Aqu.mjs.map +0 -1
- package/fesm2022/iss-ctrl-table.field-Bs6l5tWV.mjs +0 -310
- package/fesm2022/iss-ctrl-table.field-Bs6l5tWV.mjs.map +0 -1
- package/fesm2022/iss-ctrl-user-picker.field-Cx0CCAFC.mjs.map +0 -1
package/fesm2022/{iss-ctrl-user-picker.field-Cx0CCAFC.mjs → iss-ctrl-user-picker.field-l-0bW6lP.mjs}
RENAMED
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, signal, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { MatSidenav, MatSidenavContainer } from '@angular/material/sidenav';
|
|
4
|
-
import {
|
|
5
|
-
import { F as FieldBase, E as Employee,
|
|
5
|
+
import { Subject, debounceTime, distinctUntilChanged, switchMap, map } from 'rxjs';
|
|
6
|
+
import { F as FieldBase, E as Employee, V as VIEW_PROVIDER, S as SelectControl, c as ValidationMessageComponent } from './iss-ctrl-iss-ctrl-hz0ibyPg.mjs';
|
|
6
7
|
|
|
7
8
|
class UserPickerField extends FieldBase {
|
|
8
9
|
userImageHost = "https://igateapp.stc.com.sa";
|
|
9
10
|
employeeService = inject(Employee);
|
|
10
11
|
options = signal([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
11
12
|
userData;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
#query = new Subject();
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.#query.pipe(debounceTime(300), distinctUntilChanged(),
|
|
17
|
+
// a new query cancels the request still in flight
|
|
18
|
+
switchMap((query) => this.employeeService.search(query)), map((res) => {
|
|
15
19
|
return res.map((user) => {
|
|
16
20
|
user.value = user.email;
|
|
17
21
|
user.label = user.name;
|
|
18
22
|
return user;
|
|
19
23
|
});
|
|
20
|
-
}),
|
|
24
|
+
}), takeUntilDestroyed(this.destroyRef)).subscribe((res) => {
|
|
21
25
|
this.options.set(res);
|
|
22
|
-
})
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
userImage() {
|
|
29
|
+
const image = this.userData?.profileImage ?? this.userData?.profileImageUrl;
|
|
30
|
+
if (!image) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return image.startsWith("http") ? image : this.userImageHost + image;
|
|
34
|
+
}
|
|
35
|
+
search(event) {
|
|
36
|
+
this.#query.next(event);
|
|
23
37
|
}
|
|
24
38
|
updateField($event) {
|
|
25
39
|
this.options.set([]);
|
|
@@ -27,7 +41,7 @@ class UserPickerField extends FieldBase {
|
|
|
27
41
|
showUserData(item) {
|
|
28
42
|
this.userData = item;
|
|
29
43
|
}
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserPickerField, deps:
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserPickerField, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
45
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: UserPickerField, isStandalone: true, selector: "iss-user-picker", usesInheritance: true, ngImport: i0, template: `
|
|
32
46
|
@if (field.visible()) {
|
|
33
47
|
@if (field.mode() === "edit") {
|
|
@@ -35,8 +49,9 @@ class UserPickerField extends FieldBase {
|
|
|
35
49
|
[formControlName]="field.name"
|
|
36
50
|
[min]="field.config.min() ?? null"
|
|
37
51
|
[max]="field.config.max() ?? null"
|
|
38
|
-
[options]="options()"
|
|
39
|
-
[multiple]="true"
|
|
52
|
+
[options]="options()"
|
|
53
|
+
[multiple]="true"
|
|
54
|
+
[readonly]="field.config.readonly() ?? false"
|
|
40
55
|
(onQueryChange)="search($event)"
|
|
41
56
|
(onChange)="updateField($event)"
|
|
42
57
|
>
|
|
@@ -53,7 +68,7 @@ class UserPickerField extends FieldBase {
|
|
|
53
68
|
</div>
|
|
54
69
|
</ng-template>
|
|
55
70
|
</iss-ctrl-select>
|
|
56
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"
|
|
71
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
57
72
|
} @else {
|
|
58
73
|
<p>{{ field.value }}</p>
|
|
59
74
|
}
|
|
@@ -67,7 +82,7 @@ class UserPickerField extends FieldBase {
|
|
|
67
82
|
</div>
|
|
68
83
|
<div class="sidenav-body p-0">
|
|
69
84
|
<div class="d-flex flex-column align-items-center gap-3 sidenav-user bc-off-white text-center">
|
|
70
|
-
<ds-avatar [attr.image]="
|
|
85
|
+
<ds-avatar [attr.image]="userImage()" [attr.label]="userData?.name"></ds-avatar>
|
|
71
86
|
@if (userData?.employeeNumber) {
|
|
72
87
|
<div class="d-flex flex-column gap-1">
|
|
73
88
|
<h4 class="fs-16 fc-black fw-medium mb-0">{{ userData?.name }}</h4>
|
|
@@ -98,11 +113,11 @@ class UserPickerField extends FieldBase {
|
|
|
98
113
|
</div>
|
|
99
114
|
</mat-sidenav>
|
|
100
115
|
</mat-sidenav-container>
|
|
101
|
-
`, isInline: true, styles: [".mat-drawer{position:fixed;left:0}\n"], dependencies: [{ kind: "component", type: SelectControl, selector: "iss-ctrl-select", inputs: ["options", "height", "loading"], outputs: ["onQueryChange"] }, { kind: "component", type: ValidationMessageComponent, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }] });
|
|
116
|
+
`, isInline: true, styles: [".mat-drawer{position:fixed;left:0}\n"], dependencies: [{ kind: "component", type: SelectControl, selector: "iss-ctrl-select", inputs: ["options", "height", "loading"], outputs: ["onQueryChange"] }, { kind: "component", type: ValidationMessageComponent, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }], viewProviders: [VIEW_PROVIDER] });
|
|
102
117
|
}
|
|
103
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserPickerField, decorators: [{
|
|
104
119
|
type: Component,
|
|
105
|
-
args: [{ selector: "iss-user-picker", imports: [
|
|
120
|
+
args: [{ selector: "iss-user-picker", viewProviders: [VIEW_PROVIDER], imports: [
|
|
106
121
|
SelectControl,
|
|
107
122
|
ValidationMessageComponent,
|
|
108
123
|
MatSidenav,
|
|
@@ -114,8 +129,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
114
129
|
[formControlName]="field.name"
|
|
115
130
|
[min]="field.config.min() ?? null"
|
|
116
131
|
[max]="field.config.max() ?? null"
|
|
117
|
-
[options]="options()"
|
|
118
|
-
[multiple]="true"
|
|
132
|
+
[options]="options()"
|
|
133
|
+
[multiple]="true"
|
|
134
|
+
[readonly]="field.config.readonly() ?? false"
|
|
119
135
|
(onQueryChange)="search($event)"
|
|
120
136
|
(onChange)="updateField($event)"
|
|
121
137
|
>
|
|
@@ -132,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
132
148
|
</div>
|
|
133
149
|
</ng-template>
|
|
134
150
|
</iss-ctrl-select>
|
|
135
|
-
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"
|
|
151
|
+
<iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
|
|
136
152
|
} @else {
|
|
137
153
|
<p>{{ field.value }}</p>
|
|
138
154
|
}
|
|
@@ -146,7 +162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
146
162
|
</div>
|
|
147
163
|
<div class="sidenav-body p-0">
|
|
148
164
|
<div class="d-flex flex-column align-items-center gap-3 sidenav-user bc-off-white text-center">
|
|
149
|
-
<ds-avatar [attr.image]="
|
|
165
|
+
<ds-avatar [attr.image]="userImage()" [attr.label]="userData?.name"></ds-avatar>
|
|
150
166
|
@if (userData?.employeeNumber) {
|
|
151
167
|
<div class="d-flex flex-column gap-1">
|
|
152
168
|
<h4 class="fs-16 fc-black fw-medium mb-0">{{ userData?.name }}</h4>
|
|
@@ -178,7 +194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
178
194
|
</mat-sidenav>
|
|
179
195
|
</mat-sidenav-container>
|
|
180
196
|
`, schemas: [CUSTOM_ELEMENTS_SCHEMA], styles: [".mat-drawer{position:fixed;left:0}\n"] }]
|
|
181
|
-
}] });
|
|
197
|
+
}], ctorParameters: () => [] });
|
|
182
198
|
|
|
183
199
|
export { UserPickerField };
|
|
184
|
-
//# sourceMappingURL=iss-ctrl-user-picker.field-
|
|
200
|
+
//# sourceMappingURL=iss-ctrl-user-picker.field-l-0bW6lP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iss-ctrl-user-picker.field-l-0bW6lP.mjs","sources":["../../../projects/iss/src/components/controls/user-picker/user-picker.field.ts"],"sourcesContent":["import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, signal } from \"@angular/core\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { MatSidenav, MatSidenavContainer } from \"@angular/material/sidenav\";\r\nimport { debounceTime, distinctUntilChanged, map, Subject, switchMap } from \"rxjs\";\r\nimport { ValidationMessageComponent } from \"../../shared/validation-message.component\";\r\nimport { FieldBase } from \"../base/field-base\";\r\nimport { SelectControl } from \"../select/select.control\";\r\nimport { Employee } from \"./employee\";\r\nimport { VIEW_PROVIDER } from \"../../../shared/constants/view-provider.const\";\r\n\r\n@Component({\r\n selector: \"iss-user-picker\",\r\n viewProviders: [VIEW_PROVIDER],\r\n imports: [\r\n SelectControl,\r\n ValidationMessageComponent,\r\n MatSidenav,\r\n MatSidenavContainer,\r\n ],\r\n template: `\r\n @if (field.visible()) {\r\n @if (field.mode() === \"edit\") {\r\n <iss-ctrl-select\r\n [formControlName]=\"field.name\"\r\n [min]=\"field.config.min() ?? null\"\r\n [max]=\"field.config.max() ?? null\"\r\n [options]=\"options()\"\n [multiple]=\"true\"\n [readonly]=\"field.config.readonly() ?? false\"\n (onQueryChange)=\"search($event)\"\r\n (onChange)=\"updateField($event)\"\r\n >\r\n <label>{{ field.label() }}</label>\r\n <ng-template let-item #optionTemplate>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-avatar size=\"x-small\" [attr.image]=\"item.image\"></ds-avatar>\r\n <span class=\"fs-14 fw-medium fc-black\">{{ item.name }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template let-item #cardViewerTemplate>\r\n <div (click)=\"showUserData(item);drawer.open()\">\r\n {{ item.name }}\r\n </div>\r\n </ng-template>\r\n </iss-ctrl-select>\r\n <iss-validation-message-viewer [errors]=\"ctrl.errors\" [showMessage]=\"!ctrl.untouched\"/>\r\n } @else {\r\n <p>{{ field.value }}</p>\r\n }\r\n }\r\n <mat-sidenav-container [hasBackdrop]=\"true\">\r\n <mat-sidenav #drawer [mode]=\"'over'\" [position]=\"'start'\" [autoFocus]=\"false\">\r\n <div class=\"main-sidenav\">\r\n <div class=\"sidenav-title bc-white\">\r\n <h3> Employee Information </h3>\r\n <ds-icon icon=\"close\" class=\"fc-black fs-20 p-3 cursor-pointer\" (click)=\"drawer.close()\"></ds-icon>\r\n </div>\r\n <div class=\"sidenav-body p-0\">\r\n <div class=\"d-flex flex-column align-items-center gap-3 sidenav-user bc-off-white text-center\">\r\n <ds-avatar [attr.image]=\"userImage()\" [attr.label]=\"userData?.name\"></ds-avatar>\r\n @if (userData?.employeeNumber) {\r\n <div class=\"d-flex flex-column gap-1\">\r\n <h4 class=\"fs-16 fc-black fw-medium mb-0\">{{ userData?.name }}</h4>\r\n @if (!userData?.job?.name) {\r\n <h6 class=\"fs-12 fc-dark-gray fw-normal mb-0\">{{ userData?.position?.name }}</h6>\r\n }\r\n @if (!userData?.position?.name) {\r\n <h6 class=\"fs-12 fc-dark-gray fw-normal mb-0\">{{ userData?.job?.name }}</h6>\r\n }\r\n </div>\r\n }\r\n <div class=\"d-flex flex-wrap gap-2\">\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\">\r\n <ds-icon icon=\"mail-o\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'mailTo:' + userData?.email\" class=\"fc-black\">{{ userData?.email }}</a>\r\n </div>\r\n @if (userData?.contact?.mobile) {\r\n <div class=\"fs-12 fc-black d-flex align-items-center gap-2 box-shadow bc-white radius-4 p-2 profile-box\">\r\n <ds-icon icon=\"phone\" class=\"fc-coral fs-20\"></ds-icon>\r\n <a [href]=\"'tel:' + userData?.contact?.mobile\" class=\"fc-black\">\r\n <bdi>{{ userData?.contact?.mobile }}</bdi>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-sidenav>\r\n </mat-sidenav-container>\r\n `,\r\n styles: `\r\n .mat-drawer {\r\n position: fixed;\r\n left: 0;\r\n }`,\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class UserPickerField extends FieldBase {\r\n userImageHost = \"https://igateapp.stc.com.sa\";\r\n employeeService = inject(Employee);\r\n options: any = signal([]);\r\n userData: any;\r\n #query: Subject<string> = new Subject<string>();\r\n\r\n constructor() {\r\n super();\r\n this.#query.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n // a new query cancels the request still in flight\r\n switchMap((query: string) => this.employeeService.search(query)),\r\n map((res: any) => {\r\n return res.map((user: any) => {\r\n user.value = user.email;\r\n user.label = user.name;\r\n return user;\r\n });\r\n }),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((res: any) => {\r\n this.options.set(res);\r\n });\r\n }\r\n\r\n userImage(): string | null {\r\n const image: string | undefined = this.userData?.profileImage ?? this.userData?.profileImageUrl;\r\n if (!image) {\r\n return null;\r\n }\r\n return image.startsWith(\"http\") ? image : this.userImageHost + image;\r\n }\r\n\r\n search(event: string) {\r\n this.#query.next(event);\r\n }\r\n\r\n updateField($event: string | FormData) {\r\n this.options.set([]);\r\n }\r\n\r\n showUserData(item: any) {\r\n this.userData = item;\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|
package/fesm2022/iss-ctrl.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ai as ATTACHMENT_DOWNLOAD_URL, ah as ATTACHMENT_UPLOAD_RESPONSE_MAPPER, ag as ATTACHMENT_UPLOAD_URL, am as ArabicNumberPipe, a0 as AttachmentViewer, ab as COMPONENTS, a6 as COUNTRIES,
|
|
1
|
+
export { ai as ATTACHMENT_DOWNLOAD_URL, ah as ATTACHMENT_UPLOAD_RESPONSE_MAPPER, ag as ATTACHMENT_UPLOAD_URL, am as ArabicNumberPipe, a0 as AttachmentViewer, ab as COMPONENTS, a6 as COUNTRIES, d as CheckboxControl, v as CheckboxField, Y as CheckboxViewer, e as ChipsControl, q as ChipsField, Q as ChipsViewer, C as ControlBase, a8 as DATETIME_FORMAT, a7 as DATE_FORMAT_ADAPTER, a5 as DEFAULT_COUNTRY, D as DatePickerControl, B as DatePickerField, a3 as DatePickerTimeViewer, a2 as DatePickerViewer, f as DateRangePickerControl, J as DateRangePickerField, a4 as DateRangePickerViewer, h as DatetimePickerControl, G as DatetimePickerField, al as Droppable, E as Employee, ae as FIELD_DATA, F as FieldBase, an as FieldDataInjector, ar as FileHandler, i as FilePickerControl, z as FilePickerField, aw as FileValidators, b as FormEngine, H as HOST, ak as HintsComponent, j as InputControl, o as InputField, K as InputViewer, av as IssValidators, L as Loader, M as MobileControl, u as MobileField, X as MobileViewer, O as Outlet, P as PLACEHOLDER_REGEX, a9 as PLATE_LETTERS, as as Phone, k as PlateControl, y as PlateField, ao as PlateLetterPipe, $ as PlateViewer, R as RadioControl, s as RadioField, U as RadioViewer, ac as SERVICES, S as SelectControl, t as SelectField, ap as SelectStatusPipe, W as SelectViewer, l as SlideToggleControl, x as SlideToggleField, _ as SlideToggleViewer, T as TextareaControl, p as TextareaField, N as TextareaViewer, m as TimePickerControl, A as TimePickerField, a1 as TimePickerViewer, ax as TimeValidator, n as ToggleButtonControl, w as ToggleButtonField, Z as ToggleButtonViewer, aq as TranslatePipe, af as UI_LANGUAGE, aj as USER_SEARCH_API, aa as VALIDATION_MESSAGES, ad as VALIDATORS, V as VIEW_PROVIDER, c as ValidationMessageComponent, at as arrayFrom, au as formatFileSize, g as getPropertyByPath, r as replacePlaceholders } from './iss-ctrl-iss-ctrl-hz0ibyPg.mjs';
|
|
2
2
|
//# sourceMappingURL=iss-ctrl.mjs.map
|
package/package.json
CHANGED
package/types/iss-ctrl.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InputSignal, WritableSignal, OutputEmitterRef,
|
|
2
|
+
import { InputSignal, WritableSignal, OutputEmitterRef, OnInit, OnDestroy, Signal, Type, DestroyRef, StaticProvider, InjectionToken, PipeTransform, Injector } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, FormControl, AbstractControl, ValidationErrors, FormGroup, ValidatorFn, AsyncValidatorFn, ControlContainer } from '@angular/forms';
|
|
4
4
|
import { MatChipInputEvent } from '@angular/material/chips';
|
|
5
5
|
import { MatDatepickerInputEvent } from '@angular/material/datepicker';
|
|
@@ -24,7 +24,10 @@ declare class ControlBase implements ControlValueAccessor, Validator {
|
|
|
24
24
|
formControlName: InputSignal<string>;
|
|
25
25
|
min: InputSignal<number | string | null>;
|
|
26
26
|
max: InputSignal<number | string | null>;
|
|
27
|
+
minLength: InputSignal<number | null>;
|
|
28
|
+
maxLength: InputSignal<number | null>;
|
|
27
29
|
disabled: WritableSignal<boolean>;
|
|
30
|
+
readonly: InputSignal<boolean>;
|
|
28
31
|
multiple: InputSignal<boolean | undefined>;
|
|
29
32
|
placeholder: InputSignal<string>;
|
|
30
33
|
hints: InputSignal<Hint[]>;
|
|
@@ -32,19 +35,19 @@ declare class ControlBase implements ControlValueAccessor, Validator {
|
|
|
32
35
|
touched: WritableSignal<boolean>;
|
|
33
36
|
onChange: OutputEmitterRef<any>;
|
|
34
37
|
protected ctrl: FormControl;
|
|
35
|
-
protected onTouch: () => void;
|
|
36
|
-
protected onPropagateValue: (_: any) => void;
|
|
37
38
|
registerOnChange(fn: () => void): void;
|
|
38
39
|
registerOnTouched(fn: () => void): void;
|
|
39
40
|
setDisabledState(isDisabled: boolean): void;
|
|
40
41
|
writeValue(value: string | FormData | Date | null): void;
|
|
41
42
|
markAsTouched(): void;
|
|
42
43
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
44
|
+
protected onTouch: () => void;
|
|
45
|
+
protected onPropagateValue: (_: any) => void;
|
|
43
46
|
protected emitValue(value?: any): void;
|
|
44
47
|
protected propagateValue(value?: any): void;
|
|
45
48
|
protected emitOnChangeEvent($event?: any): void;
|
|
46
49
|
static ɵfac: i0.ɵɵFactoryDeclaration<ControlBase, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ControlBase, "ng-component", never, { "formControlName": { "alias": "formControlName"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hints": { "alias": "hints"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, true, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ControlBase, "ng-component", never, { "formControlName": { "alias": "formControlName"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hints": { "alias": "hints"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, true, never>;
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
declare class CheckboxControl extends ControlBase {
|
|
@@ -60,13 +63,12 @@ declare class CheckboxControl extends ControlBase {
|
|
|
60
63
|
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxControl, "iss-ctrl-checkbox", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
61
64
|
}
|
|
62
65
|
|
|
63
|
-
declare class ChipsControl extends ControlBase
|
|
66
|
+
declare class ChipsControl extends ControlBase {
|
|
64
67
|
#private;
|
|
65
68
|
readonly keywords: WritableSignal<string[]>;
|
|
66
69
|
writeValue(value: string | null): void;
|
|
67
70
|
remove(keyword: string): void;
|
|
68
71
|
add(event: MatChipInputEvent): void;
|
|
69
|
-
ngOnDestroy(): void;
|
|
70
72
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChipsControl, never>;
|
|
71
73
|
static ɵcmp: i0.ɵɵComponentDeclaration<ChipsControl, "iss-ctrl-chips", never, {}, {}, never, ["label"], true, never>;
|
|
72
74
|
}
|
|
@@ -75,9 +77,10 @@ declare class DatePickerControl extends ControlBase implements Validator {
|
|
|
75
77
|
disabledDays: InputSignal<number[]>;
|
|
76
78
|
minDate: InputSignal<Date | null>;
|
|
77
79
|
maxDate: InputSignal<Date | null>;
|
|
78
|
-
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
79
80
|
clear(event: MouseEvent): void;
|
|
81
|
+
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
80
82
|
protected emit($event: MatDatepickerInputEvent<any>): void;
|
|
83
|
+
protected openPicker(picker: any): void;
|
|
81
84
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerControl, never>;
|
|
82
85
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerControl, "iss-ctrl-date-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, {}, never, ["label"], true, never>;
|
|
83
86
|
}
|
|
@@ -93,13 +96,15 @@ declare class DateRangePickerControl extends ControlBase implements OnInit, OnDe
|
|
|
93
96
|
disabledDays: InputSignal<number[]>;
|
|
94
97
|
minDate: InputSignal<Date | null>;
|
|
95
98
|
maxDate: InputSignal<Date | null>;
|
|
96
|
-
onDateRangeObjectChange: OutputEmitterRef<DateRangeEmission>;
|
|
99
|
+
onDateRangeObjectChange: OutputEmitterRef<DateRangeEmission | null>;
|
|
97
100
|
readonly range: FormGroup;
|
|
98
|
-
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
99
101
|
ngOnInit(): void;
|
|
102
|
+
setDisabledState(isDisabled: boolean): void;
|
|
100
103
|
clear(event: MouseEvent): void;
|
|
104
|
+
protected openPicker(picker: any): void;
|
|
101
105
|
writeValue(value: string | FormData | null): void;
|
|
102
106
|
ngOnDestroy(): void;
|
|
107
|
+
protected calendarDaysFilter: (d: Date | null) => boolean;
|
|
103
108
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerControl, never>;
|
|
104
109
|
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerControl, "iss-ctrl-date-range-picker", never, { "disabledDays": { "alias": "disabledDays"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "onDateRangeObjectChange": "onDateRangeObjectChange"; }, never, ["label"], true, never>;
|
|
105
110
|
}
|
|
@@ -112,6 +117,7 @@ declare class DatetimePickerControl extends ControlBase {
|
|
|
112
117
|
maxDate: InputSignal<Date | null>;
|
|
113
118
|
minTime: InputSignal<string | null>;
|
|
114
119
|
maxTime: InputSignal<string | null>;
|
|
120
|
+
setDisabledState(isDisabled: boolean): void;
|
|
115
121
|
emit(): void;
|
|
116
122
|
writeValue(value: string | Date | null): void;
|
|
117
123
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatetimePickerControl, never>;
|
|
@@ -143,12 +149,13 @@ declare class FilePickerControl extends ControlBase implements OnDestroy {
|
|
|
143
149
|
uploading: InputSignal<boolean>;
|
|
144
150
|
uploadedFiles: InputSignal<IssAttachment[]>;
|
|
145
151
|
uploadingError: InputSignal<string | undefined>;
|
|
146
|
-
filesValue: Signal<any>;
|
|
152
|
+
readonly filesValue: Signal<any>;
|
|
147
153
|
protected attachments: WritableSignal<IssFile[]>;
|
|
148
154
|
ngOnDestroy(): void;
|
|
149
155
|
writeValue(val: FormData | string | null): void;
|
|
150
156
|
protected onDelete(files: IssFile[]): void;
|
|
151
157
|
protected captureFile($event: FileList): void;
|
|
158
|
+
protected openFilePicker(input: HTMLInputElement): void;
|
|
152
159
|
static ɵfac: i0.ɵɵFactoryDeclaration<FilePickerControl, never>;
|
|
153
160
|
static ɵcmp: i0.ɵɵComponentDeclaration<FilePickerControl, "iss-ctrl-file-picker", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; "uploading": { "alias": "uploading"; "required": false; "isSignal": true; }; "uploadedFiles": { "alias": "uploadedFiles"; "required": false; "isSignal": true; }; "uploadingError": { "alias": "uploadingError"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
154
161
|
}
|
|
@@ -212,7 +219,7 @@ declare class MobileControl extends ControlBase implements OnDestroy, Validator
|
|
|
212
219
|
preferredCountries: InputSignal<ISO2[]>;
|
|
213
220
|
searchInput: FormControl;
|
|
214
221
|
filteredCountries: Signal<Country[]>;
|
|
215
|
-
writeValue(value: string): void;
|
|
222
|
+
writeValue(value: string | null): void;
|
|
216
223
|
emit(): void;
|
|
217
224
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
218
225
|
ngOnDestroy(): void;
|
|
@@ -225,15 +232,18 @@ declare class MobileControl extends ControlBase implements OnDestroy, Validator
|
|
|
225
232
|
}
|
|
226
233
|
|
|
227
234
|
declare class PlateControl extends ControlBase {
|
|
235
|
+
#private;
|
|
228
236
|
numbersAr: i0.WritableSignal<string[]>;
|
|
229
237
|
numbersEn: i0.WritableSignal<string[]>;
|
|
230
238
|
lettersAr: i0.WritableSignal<string[]>;
|
|
231
239
|
lettersEn: i0.WritableSignal<string[]>;
|
|
232
240
|
letterErrors: i0.WritableSignal<boolean[]>;
|
|
233
|
-
writeValue(value: string): void;
|
|
241
|
+
writeValue(value: string | null): void;
|
|
234
242
|
onNumberInput(index: number, event: Event, lang: "ar" | "en"): void;
|
|
235
243
|
onLetterInput(index: number, event: Event, lang: "ar" | "en"): void;
|
|
236
244
|
protected preventNonDigits($event: KeyboardEvent, ar: string): void;
|
|
245
|
+
private emitPlate;
|
|
246
|
+
private stringifyPlate;
|
|
237
247
|
private focusInput;
|
|
238
248
|
private convertDigit;
|
|
239
249
|
static ɵfac: i0.ɵɵFactoryDeclaration<PlateControl, never>;
|
|
@@ -254,13 +264,13 @@ declare class SelectControl extends ControlBase implements OnDestroy {
|
|
|
254
264
|
options: InputSignal<Option[]>;
|
|
255
265
|
height: InputSignal<string>;
|
|
256
266
|
query: Signal<string>;
|
|
257
|
-
filteredOptions: Signal<Option[]>;
|
|
267
|
+
readonly filteredOptions: Signal<Option[]>;
|
|
258
268
|
loading: InputSignal<boolean>;
|
|
259
269
|
onQueryChange: OutputEmitterRef<string>;
|
|
260
|
-
displayFn: (options: Option | Option[]) => string;
|
|
261
270
|
protected optionTemplate: any;
|
|
262
271
|
protected cardViewerTemplate: any;
|
|
263
272
|
protected allSelected: WritableSignal<boolean>;
|
|
273
|
+
displayFn: (options: Option | Option[]) => string;
|
|
264
274
|
writeValue(value: string | null): void;
|
|
265
275
|
captureValue($event: any): void;
|
|
266
276
|
removeFromSelectedOptionsMap(option: Option): void;
|
|
@@ -312,6 +322,7 @@ declare class ToggleButtonControl extends ControlBase {
|
|
|
312
322
|
declare class Loader {
|
|
313
323
|
#private;
|
|
314
324
|
loadComponent(field: IssField): Observable<Type<any> | null>;
|
|
325
|
+
loadViewer(type: string): Observable<Type<any> | null>;
|
|
315
326
|
loadService<T>(serviceName: string): undefined | (() => Promise<T>);
|
|
316
327
|
static ɵfac: i0.ɵɵFactoryDeclaration<Loader, never>;
|
|
317
328
|
static ɵprov: i0.ɵɵInjectableDeclaration<Loader>;
|
|
@@ -324,28 +335,28 @@ declare class FieldAsyncValidation {
|
|
|
324
335
|
|
|
325
336
|
declare class FieldConfig {
|
|
326
337
|
type: WritableSignal<string | undefined>;
|
|
327
|
-
|
|
338
|
+
disabled: WritableSignal<boolean | undefined>;
|
|
339
|
+
readonly: WritableSignal<boolean | undefined>;
|
|
328
340
|
placeholder: WritableSignal<string | undefined>;
|
|
341
|
+
suffix: WritableSignal<string | undefined>;
|
|
342
|
+
hideLabel: WritableSignal<boolean | undefined>;
|
|
329
343
|
multiple: WritableSignal<boolean | undefined>;
|
|
344
|
+
minLength: WritableSignal<number | undefined>;
|
|
345
|
+
maxLength: WritableSignal<number | undefined>;
|
|
330
346
|
min: WritableSignal<number | undefined>;
|
|
331
347
|
max: WritableSignal<number | undefined>;
|
|
332
348
|
minDate: WritableSignal<Date | undefined>;
|
|
333
349
|
maxDate: WritableSignal<Date | undefined>;
|
|
334
|
-
minLength: WritableSignal<number | undefined>;
|
|
335
|
-
maxLength: WritableSignal<number | undefined>;
|
|
336
|
-
allowedFileSize: WritableSignal<number | undefined>;
|
|
337
|
-
allowedFileTypes: WritableSignal<string | undefined>;
|
|
338
|
-
readonly: WritableSignal<boolean | undefined>;
|
|
339
|
-
disabled: WritableSignal<boolean | undefined>;
|
|
340
350
|
dateFilter: WritableSignal<boolean | undefined>;
|
|
341
351
|
templateId: WritableSignal<string | undefined>;
|
|
342
352
|
templateUrl: WritableSignal<string | undefined>;
|
|
353
|
+
allowedFileSize: WritableSignal<number | undefined>;
|
|
354
|
+
allowedFileTypes: WritableSignal<string | undefined>;
|
|
343
355
|
maxFilesCount: WritableSignal<number | undefined>;
|
|
344
356
|
minFilesCount: WritableSignal<number | undefined>;
|
|
345
357
|
maxUsersCount: WritableSignal<number | undefined>;
|
|
346
358
|
minUsersCount: WritableSignal<number | undefined>;
|
|
347
359
|
showInTableColumns: WritableSignal<boolean | undefined>;
|
|
348
|
-
hideLabel: WritableSignal<boolean | undefined>;
|
|
349
360
|
tableWithFilter: WritableSignal<boolean | undefined>;
|
|
350
361
|
tableWithSort: WritableSignal<boolean | undefined>;
|
|
351
362
|
tableWithPagination: WritableSignal<boolean | undefined>;
|
|
@@ -442,17 +453,13 @@ interface ComponentOutlet {
|
|
|
442
453
|
data: IssField;
|
|
443
454
|
}
|
|
444
455
|
|
|
445
|
-
interface IssFormGroup extends FormGroup {
|
|
446
|
-
id?: string;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
456
|
declare class Outlet implements OnInit, OnDestroy {
|
|
450
457
|
#private;
|
|
451
458
|
ready: OutputEmitterRef<boolean>;
|
|
452
459
|
formReady: WritableSignal<boolean>;
|
|
453
460
|
fields: InputSignal<IssField[]>;
|
|
454
461
|
components: WritableSignal<ComponentOutlet[] | null>;
|
|
455
|
-
get hostFormGroup():
|
|
462
|
+
get hostFormGroup(): FormGroup;
|
|
456
463
|
ngOnInit(): void;
|
|
457
464
|
ngOnDestroy(): void;
|
|
458
465
|
static ɵfac: i0.ɵɵFactoryDeclaration<Outlet, never>;
|
|
@@ -469,7 +476,13 @@ declare class EventHandler {
|
|
|
469
476
|
|
|
470
477
|
declare class FormEngine {
|
|
471
478
|
#private;
|
|
472
|
-
fields: IssField[];
|
|
479
|
+
registerFields(form: FormGroup, owner: object, fields: IssField[]): void;
|
|
480
|
+
registerExpectedFieldNames(form: FormGroup, owner: object, names: string[]): void;
|
|
481
|
+
unregisterOutlet(form: FormGroup, owner: object): void;
|
|
482
|
+
getFields(form: FormGroup): IssField[];
|
|
483
|
+
getExpectedFieldNames(form: FormGroup): string[];
|
|
484
|
+
getField(form: FormGroup, name: string, fields?: IssField[]): IssField | undefined;
|
|
485
|
+
getControlValue(form: FormGroup, name: string): any;
|
|
473
486
|
createValidators(field: IssField): ValidatorFn[];
|
|
474
487
|
createAsyncValidators(field: IssField): AsyncValidatorFn[];
|
|
475
488
|
getFieldValue(field: IssField): string;
|
|
@@ -581,7 +594,8 @@ declare class FilePickerField extends FieldBase implements OnDestroy {
|
|
|
581
594
|
viewField: Signal<any>;
|
|
582
595
|
attachments: WritableSignal<IssAttachment[]>;
|
|
583
596
|
uploadingError: WritableSignal<string | undefined>;
|
|
584
|
-
|
|
597
|
+
accept: string;
|
|
598
|
+
captureFile(formData: FormData | null): void;
|
|
585
599
|
stringifyIssAttachment(attachments: IssAttachment[]): string;
|
|
586
600
|
ngOnDestroy(): void;
|
|
587
601
|
static ɵfac: i0.ɵɵFactoryDeclaration<FilePickerField, never>;
|
|
@@ -656,6 +670,7 @@ declare class ToggleButtonViewer extends ViewerBase {
|
|
|
656
670
|
}
|
|
657
671
|
|
|
658
672
|
declare class SlideToggleViewer extends ViewerBase {
|
|
673
|
+
isChecked(value: unknown): boolean;
|
|
659
674
|
static ɵfac: i0.ɵɵFactoryDeclaration<SlideToggleViewer, never>;
|
|
660
675
|
static ɵcmp: i0.ɵɵComponentDeclaration<SlideToggleViewer, "iss-viewer-slide-toggle", never, {}, {}, never, never, true, never>;
|
|
661
676
|
}
|