special-forms 18.0.1 → 20.0.0-SNAPSHOT
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 +147 -147
- package/fesm2022/special-forms.mjs +143 -147
- package/fesm2022/special-forms.mjs.map +1 -1
- package/index.d.ts +586 -5
- package/lib/styles/final.scss +2 -2
- package/lib/styles/styles-config.scss +36 -36
- package/lib/styles/tailwind-final.scss +7 -7
- package/package.json +7 -9
- package/esm2022/lib/components/index.mjs +0 -14
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.component.mjs +0 -75
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.interface.mjs +0 -2
- package/esm2022/lib/components/special-checkbox/special-checkbox.component.mjs +0 -38
- package/esm2022/lib/components/special-checkbox/special-checkbox.interface.mjs +0 -3
- package/esm2022/lib/components/special-datepicker/special-datepicker.component.mjs +0 -42
- package/esm2022/lib/components/special-datepicker/special-datepicker.interface.mjs +0 -3
- package/esm2022/lib/components/special-dropdown/special-dropdown.component.mjs +0 -47
- package/esm2022/lib/components/special-dropdown/special-dropdown.interface.mjs +0 -3
- package/esm2022/lib/components/special-form/special-form.component.mjs +0 -99
- package/esm2022/lib/components/special-form/special-form.module.mjs +0 -79
- package/esm2022/lib/components/special-input/special-input.component.mjs +0 -55
- package/esm2022/lib/components/special-input/special-input.interface.mjs +0 -2
- package/esm2022/lib/components/special-label/special-label.component.mjs +0 -27
- package/esm2022/lib/components/special-label/special-label.interface.mjs +0 -2
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +0 -97
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +0 -2
- package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +0 -53
- package/esm2022/lib/components/special-richtext/special-richtext.interface.mjs +0 -3
- package/esm2022/lib/components/special-text-area/special-text-area.component.mjs +0 -43
- package/esm2022/lib/components/special-text-area/special-text-area.interface.mjs +0 -2
- package/esm2022/lib/components/special-upload/filename.pipe.mjs +0 -18
- package/esm2022/lib/components/special-upload/preview-image-pipe.mjs +0 -104
- package/esm2022/lib/components/special-upload/special-upload.component.mjs +0 -146
- package/esm2022/lib/components/special-upload/special-upload.interface.mjs +0 -2
- package/esm2022/lib/components/special-upload/truncate.pipe.mjs +0 -14
- package/esm2022/lib/core/aux-data/control-types.enum.mjs +0 -18
- package/esm2022/lib/core/aux-data/input-types.mjs +0 -16
- package/esm2022/lib/core/forms/special-forms.mjs +0 -240
- package/esm2022/lib/core/interfaces/field-basics.interfaces.mjs +0 -2
- package/esm2022/lib/core/interfaces/form.interfaces.mjs +0 -2
- package/esm2022/lib/core/interfaces/special-control.interface.mjs +0 -3
- package/esm2022/lib/core/masks/currency.mask.mjs +0 -11
- package/esm2022/lib/core/masks/index.mjs +0 -3
- package/esm2022/lib/core/masks/number.mask.mjs +0 -3
- package/esm2022/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +0 -18
- package/esm2022/lib/core/pipes/error-message-pipe/error.pipe.mjs +0 -23
- package/esm2022/lib/core/pipes/index.mjs +0 -4
- package/esm2022/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +0 -22
- package/esm2022/lib/core/services/error-state-matcher/error-matcher.mjs +0 -13
- package/esm2022/lib/core/services/index.mjs +0 -4
- package/esm2022/lib/core/services/special-form-builder/special-form-builder.service.mjs +0 -156
- package/esm2022/public-api.mjs +0 -13
- package/esm2022/special-forms.mjs +0 -5
- package/lib/components/index.d.ts +0 -23
- package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +0 -19
- package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +0 -19
- package/lib/components/special-checkbox/special-checkbox.component.d.ts +0 -12
- package/lib/components/special-checkbox/special-checkbox.interface.d.ts +0 -13
- package/lib/components/special-datepicker/special-datepicker.component.d.ts +0 -13
- package/lib/components/special-datepicker/special-datepicker.interface.d.ts +0 -12
- package/lib/components/special-dropdown/special-dropdown.component.d.ts +0 -11
- package/lib/components/special-dropdown/special-dropdown.interface.d.ts +0 -17
- package/lib/components/special-form/special-form.component.d.ts +0 -31
- package/lib/components/special-form/special-form.module.d.ts +0 -20
- package/lib/components/special-input/special-input.component.d.ts +0 -15
- package/lib/components/special-input/special-input.interface.d.ts +0 -17
- package/lib/components/special-label/special-label.component.d.ts +0 -13
- package/lib/components/special-label/special-label.interface.d.ts +0 -13
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +0 -22
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +0 -19
- package/lib/components/special-richtext/special-richtext.component.d.ts +0 -15
- package/lib/components/special-richtext/special-richtext.interface.d.ts +0 -11
- package/lib/components/special-text-area/special-text-area.component.d.ts +0 -13
- package/lib/components/special-text-area/special-text-area.interface.d.ts +0 -8
- package/lib/components/special-upload/filename.pipe.d.ts +0 -7
- package/lib/components/special-upload/preview-image-pipe.d.ts +0 -23
- package/lib/components/special-upload/special-upload.component.d.ts +0 -31
- package/lib/components/special-upload/special-upload.interface.d.ts +0 -15
- package/lib/components/special-upload/truncate.pipe.d.ts +0 -7
- package/lib/core/aux-data/control-types.enum.d.ts +0 -16
- package/lib/core/aux-data/input-types.d.ts +0 -2
- package/lib/core/forms/special-forms.d.ts +0 -108
- package/lib/core/interfaces/field-basics.interfaces.d.ts +0 -22
- package/lib/core/interfaces/form.interfaces.d.ts +0 -64
- package/lib/core/interfaces/special-control.interface.d.ts +0 -4
- package/lib/core/masks/currency.mask.d.ts +0 -1
- package/lib/core/masks/index.d.ts +0 -2
- package/lib/core/masks/number.mask.d.ts +0 -1
- package/lib/core/pipes/controls-list-pipe/controls-list.pipe.d.ts +0 -11
- package/lib/core/pipes/error-message-pipe/error.pipe.d.ts +0 -12
- package/lib/core/pipes/index.d.ts +0 -3
- package/lib/core/pipes/text-by-function/text-by-function.pipe.d.ts +0 -7
- package/lib/core/services/error-state-matcher/error-matcher.d.ts +0 -8
- package/lib/core/services/index.d.ts +0 -3
- package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +0 -25
- package/public-api.d.ts +0 -9
|
@@ -1,42 +1,38 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Pipe,
|
|
2
|
+
import { Pipe, Input, ChangeDetectionStrategy, Component, EventEmitter, Output, inject, Injectable, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { debounceTime } from 'rxjs/operators';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i2 from '@angular/material/autocomplete';
|
|
5
5
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
6
6
|
import { Subscription } from 'rxjs';
|
|
7
7
|
import * as i1 from '@angular/material/input';
|
|
8
8
|
import { MatInputModule } from '@angular/material/input';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i7 from '@angular/common';
|
|
10
10
|
import { CommonModule } from '@angular/common';
|
|
11
|
-
import * as
|
|
11
|
+
import * as i3 from '@angular/material/icon';
|
|
12
12
|
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i4 from '@angular/forms';
|
|
14
14
|
import { ReactiveFormsModule, FormControl, FormsModule, FormGroup, FormArray, Validators } from '@angular/forms';
|
|
15
|
-
import * as
|
|
15
|
+
import * as i5 from '@angular/material/button';
|
|
16
16
|
import { MatButtonModule } from '@angular/material/button';
|
|
17
|
-
import * as i2 from '@angular/material/form-field';
|
|
18
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
19
|
-
import * as i5 from '@angular/material/core';
|
|
20
|
-
import { MatNativeDateModule } from '@angular/material/core';
|
|
21
17
|
import * as i1$1 from '@ngneat/input-mask';
|
|
22
18
|
import { InputMaskModule, createMask } from '@ngneat/input-mask';
|
|
23
|
-
import * as
|
|
19
|
+
import * as i2$1 from '@angular/material/select';
|
|
24
20
|
import { MatSelectModule } from '@angular/material/select';
|
|
25
|
-
import
|
|
21
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
22
|
+
import * as i2$2 from '@angular/material/datepicker';
|
|
26
23
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
27
|
-
import * as
|
|
24
|
+
import * as i4$1 from '@angular/material/chips';
|
|
28
25
|
import { MatChipsModule } from '@angular/material/chips';
|
|
29
|
-
import * as i2$
|
|
26
|
+
import * as i2$3 from '@angular/material/checkbox';
|
|
30
27
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
31
|
-
import * as
|
|
32
|
-
import
|
|
33
|
-
import {
|
|
34
|
-
import * as i4$1 from '@ngx-dropzone/material';
|
|
35
|
-
import { DropzoneMaterialModule } from '@ngx-dropzone/material';
|
|
28
|
+
import * as i2$4 from '@angular/cdk/text-field';
|
|
29
|
+
import { FileInputValidators, FileInputDirective } from '@ngx-dropzone/cdk';
|
|
30
|
+
import { MatDropzone } from '@ngx-dropzone/material';
|
|
36
31
|
import { MatCardModule } from '@angular/material/card';
|
|
37
32
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
38
|
-
import * as i2$
|
|
33
|
+
import * as i2$5 from 'ngx-editor';
|
|
39
34
|
import { Editor, NgxEditorModule } from 'ngx-editor';
|
|
35
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
40
36
|
|
|
41
37
|
class ErrorMessagePipe {
|
|
42
38
|
transform(errorsObj, errorMessages, control) {
|
|
@@ -48,10 +44,10 @@ class ErrorMessagePipe {
|
|
|
48
44
|
}
|
|
49
45
|
return message;
|
|
50
46
|
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
52
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorMessagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
48
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: ErrorMessagePipe, isStandalone: true, name: "errorMessage" }); }
|
|
53
49
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorMessagePipe, decorators: [{
|
|
55
51
|
type: Pipe,
|
|
56
52
|
args: [{
|
|
57
53
|
name: "errorMessage",
|
|
@@ -67,14 +63,12 @@ class TextByFunctionPipe {
|
|
|
67
63
|
else if (value instanceof Object) {
|
|
68
64
|
return value[field];
|
|
69
65
|
}
|
|
70
|
-
|
|
71
|
-
return value;
|
|
72
|
-
}
|
|
66
|
+
return value;
|
|
73
67
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
75
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextByFunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
69
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: TextByFunctionPipe, isStandalone: true, name: "textByFunction" }); }
|
|
76
70
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextByFunctionPipe, decorators: [{
|
|
78
72
|
type: Pipe,
|
|
79
73
|
args: [{ name: 'textByFunction', standalone: true }]
|
|
80
74
|
}] });
|
|
@@ -87,10 +81,10 @@ class FormControlsListPipe {
|
|
|
87
81
|
.filter((control) => !control.hidden)
|
|
88
82
|
.map((control) => control);
|
|
89
83
|
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
91
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormControlsListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
85
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: FormControlsListPipe, isStandalone: true, name: "controlsList" }); }
|
|
92
86
|
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormControlsListPipe, decorators: [{
|
|
94
88
|
type: Pipe,
|
|
95
89
|
args: [{ name: 'controlsList', standalone: true }]
|
|
96
90
|
}] });
|
|
@@ -132,12 +126,12 @@ class SpecialAutocompleteComponent {
|
|
|
132
126
|
ngOnDestroy() {
|
|
133
127
|
this.subs.unsubscribe();
|
|
134
128
|
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialAutocompleteComponent, isStandalone: true, selector: "sp-autocomplete", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
137
131
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialAutocompleteComponent, decorators: [{
|
|
139
133
|
type: Component,
|
|
140
|
-
args: [{
|
|
134
|
+
args: [{ selector: 'sp-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
141
135
|
MatInputModule,
|
|
142
136
|
CommonModule,
|
|
143
137
|
MatAutocompleteModule,
|
|
@@ -146,7 +140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
146
140
|
MatButtonModule,
|
|
147
141
|
ErrorMessagePipe,
|
|
148
142
|
TextByFunctionPipe,
|
|
149
|
-
], template: "@if (control && !control.hidden) {\
|
|
143
|
+
], template: "@if (control && !control.hidden) {\n <mat-form-field\n class=\"special-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
150
144
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
151
145
|
type: Input
|
|
152
146
|
}] } });
|
|
@@ -173,12 +167,12 @@ class SpecialInputComponent {
|
|
|
173
167
|
event.stopPropagation();
|
|
174
168
|
}
|
|
175
169
|
}
|
|
176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
170
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialInputComponent, isStandalone: true, selector: "sp-input", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n />\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: InputMaskModule }, { kind: "directive", type: i1$1.InputMaskDirective, selector: "[inputMask]", inputs: ["inputMask"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
178
172
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialInputComponent, decorators: [{
|
|
180
174
|
type: Component,
|
|
181
|
-
args: [{
|
|
175
|
+
args: [{ selector: 'sp-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
182
176
|
InputMaskModule,
|
|
183
177
|
CommonModule,
|
|
184
178
|
MatInputModule,
|
|
@@ -186,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
186
180
|
ReactiveFormsModule,
|
|
187
181
|
MatButtonModule,
|
|
188
182
|
ErrorMessagePipe,
|
|
189
|
-
], template: "@if (control && !control.hidden) {\
|
|
183
|
+
], template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n />\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
190
184
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
191
185
|
type: Input
|
|
192
186
|
}] } });
|
|
@@ -205,12 +199,12 @@ class SpecialDropdownComponent {
|
|
|
205
199
|
if (this.settings.onSelect)
|
|
206
200
|
this.settings.onSelect(value);
|
|
207
201
|
}
|
|
208
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
209
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialDropdownComponent, isStandalone: true, selector: "sp-dropdown", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-select\n [formControl]=\"control\"\n [required]=\"control.required\"\n (selectionChange)=\"optionSelected($event.value)\"\n [placeholder]=\"control.placeholder\"\n >\n @if (!control.required) {\n <mat-option [value]=\"null\">\n {{ control.placeholder || settings.notSelectedText }}\n </mat-option>\n }\n @for (item of settings.source | async; track item[settings.fieldId]) {\n <mat-option [value]=\"item[settings.fieldId]\">\n {{ item | textByFunction: settings.fieldName }}\n </mat-option>\n }\n </mat-select>\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
210
204
|
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialDropdownComponent, decorators: [{
|
|
212
206
|
type: Component,
|
|
213
|
-
args: [{
|
|
207
|
+
args: [{ selector: 'sp-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
214
208
|
CommonModule,
|
|
215
209
|
MatSelectModule,
|
|
216
210
|
ReactiveFormsModule,
|
|
@@ -218,7 +212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
218
212
|
MatIconModule,
|
|
219
213
|
MatButtonModule,
|
|
220
214
|
TextByFunctionPipe,
|
|
221
|
-
], template: "@if (control && !control.hidden) {\
|
|
215
|
+
], template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-dropdown w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-select\n [formControl]=\"control\"\n [required]=\"control.required\"\n (selectionChange)=\"optionSelected($event.value)\"\n [placeholder]=\"control.placeholder\"\n >\n @if (!control.required) {\n <mat-option [value]=\"null\">\n {{ control.placeholder || settings.notSelectedText }}\n </mat-option>\n }\n @for (item of settings.source | async; track item[settings.fieldId]) {\n <mat-option [value]=\"item[settings.fieldId]\">\n {{ item | textByFunction: settings.fieldName }}\n </mat-option>\n }\n </mat-select>\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
222
216
|
}], propDecorators: { control: [{
|
|
223
217
|
type: Input
|
|
224
218
|
}] } });
|
|
@@ -232,12 +226,12 @@ class SpecialDatepickerComponent {
|
|
|
232
226
|
return this.settings?.startAt || new Date();
|
|
233
227
|
}
|
|
234
228
|
ngOnInit() { }
|
|
235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
236
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialDatepickerComponent, isStandalone: true, selector: "sp-datepicker", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n matInput\n autocomplete=\"off\"\n [readonly]=\"control.readOnly\"\n [matDatepicker]=\"picker\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\n </mat-datepicker>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
237
231
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialDatepickerComponent, decorators: [{
|
|
239
233
|
type: Component,
|
|
240
|
-
args: [{
|
|
234
|
+
args: [{ selector: 'sp-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
241
235
|
MatInputModule,
|
|
242
236
|
MatDatepickerModule,
|
|
243
237
|
CommonModule,
|
|
@@ -246,7 +240,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
246
240
|
MatButtonModule,
|
|
247
241
|
ErrorMessagePipe,
|
|
248
242
|
MatNativeDateModule,
|
|
249
|
-
], template: "@if (control && !control.hidden) {\
|
|
243
|
+
], template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n matInput\n autocomplete=\"off\"\n [readonly]=\"control.readOnly\"\n [matDatepicker]=\"picker\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\n </mat-datepicker>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
250
244
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
251
245
|
type: Input
|
|
252
246
|
}] } });
|
|
@@ -307,12 +301,12 @@ class SpecialMultipleAutocompleteComponent {
|
|
|
307
301
|
ngOnDestroy() {
|
|
308
302
|
this.subs.unsubscribe();
|
|
309
303
|
}
|
|
310
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
311
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
304
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialMultipleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
305
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialMultipleAutocompleteComponent, isStandalone: true, selector: "sp-multiple-autocomplete", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <div\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n <mat-form-field\n class=\"w-full\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required && !control.value?.length\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n\n <mat-chip-listbox>\n @for (chip of control.value; track chip[settings.fieldId]) {\n <mat-chip-row [removable]=\"true\" (removed)=\"remove(chip)\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"chip | textByFunction: settings.fieldImage\"\n />\n }\n {{ chip | textByFunction: settings.fieldName }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </div>\n </mat-chip-row>\n }\n </mat-chip-listbox>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
312
306
|
}
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialMultipleAutocompleteComponent, decorators: [{
|
|
314
308
|
type: Component,
|
|
315
|
-
args: [{
|
|
309
|
+
args: [{ selector: 'sp-multiple-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
316
310
|
MatInputModule,
|
|
317
311
|
CommonModule,
|
|
318
312
|
MatAutocompleteModule,
|
|
@@ -322,7 +316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
322
316
|
ErrorMessagePipe,
|
|
323
317
|
TextByFunctionPipe,
|
|
324
318
|
MatChipsModule,
|
|
325
|
-
], template: "@if (control && !control.hidden) {\
|
|
319
|
+
], template: "@if (control && !control.hidden) {\n <div\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n <mat-form-field\n class=\"w-full\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <input\n type=\"text\"\n autocomplete=\"off\"\n [required]=\"control.required && !control.value?.length\"\n [readonly]=\"control.readOnly\"\n [placeholder]=\"control.placeholder\"\n matInput\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"configValue\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (\n option of settings?.source | async;\n track option[settings.fieldId]\n ) {\n <mat-option [value]=\"option\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"option | textByFunction: settings.fieldImage\"\n />\n }\n <span>\n {{ option | textByFunction: settings.fieldName }}\n </span>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (settings.icon) {\n <button mat-icon-button matSuffix (click)=\"iconClick($event)\">\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n\n <mat-chip-listbox>\n @for (chip of control.value; track chip[settings.fieldId]) {\n <mat-chip-row [removable]=\"true\" (removed)=\"remove(chip)\">\n <div class=\"flex items-center\">\n @if (settings.fieldImage) {\n <img\n class=\"w-8 pr-2\"\n alt=\"\"\n [src]=\"chip | textByFunction: settings.fieldImage\"\n />\n }\n {{ chip | textByFunction: settings.fieldName }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </div>\n </mat-chip-row>\n }\n </mat-chip-listbox>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
326
320
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
327
321
|
type: Input
|
|
328
322
|
}] } });
|
|
@@ -333,12 +327,12 @@ class SpecialCheckboxComponent {
|
|
|
333
327
|
}
|
|
334
328
|
constructor() { }
|
|
335
329
|
ngOnInit() { }
|
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
337
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
330
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
331
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialCheckboxComponent, isStandalone: true, selector: "sp-checkbox", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <div\n [id]=\"control.elementId\"\n class=\"special-checkbox w-full mb-3 flex flex-col {{\n control.styleClasses\n }}\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-checkbox\n [required]=\"control.required\"\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"settings.indeterminate\"\n [labelPosition]=\"settings.labelPosition\"\n [color]=\"settings.color\"\n [disabled]=\"control.disabled\"\n >\n @if (control.icon) {\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\n }\n {{ control.placeholder }}\n </mat-checkbox>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
338
332
|
}
|
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialCheckboxComponent, decorators: [{
|
|
340
334
|
type: Component,
|
|
341
|
-
args: [{
|
|
335
|
+
args: [{ selector: 'sp-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
342
336
|
FormsModule,
|
|
343
337
|
MatCheckboxModule,
|
|
344
338
|
CommonModule,
|
|
@@ -347,7 +341,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
347
341
|
ReactiveFormsModule,
|
|
348
342
|
MatButtonModule,
|
|
349
343
|
ErrorMessagePipe,
|
|
350
|
-
], template: "@if (control && !control.hidden) {\
|
|
344
|
+
], template: "@if (control && !control.hidden) {\n <div\n [id]=\"control.elementId\"\n class=\"special-checkbox w-full mb-3 flex flex-col {{\n control.styleClasses\n }}\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <mat-checkbox\n [required]=\"control.required\"\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"settings.indeterminate\"\n [labelPosition]=\"settings.labelPosition\"\n [color]=\"settings.color\"\n [disabled]=\"control.disabled\"\n >\n @if (control.icon) {\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\n }\n {{ control.placeholder }}\n </mat-checkbox>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
351
345
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
352
346
|
type: Input
|
|
353
347
|
}] } });
|
|
@@ -358,12 +352,15 @@ class SpecialTextAreaComponent {
|
|
|
358
352
|
this.onEnter = new EventEmitter();
|
|
359
353
|
}
|
|
360
354
|
ngOnInit() { }
|
|
361
|
-
|
|
362
|
-
|
|
355
|
+
get settings() {
|
|
356
|
+
return this.control.settings;
|
|
357
|
+
}
|
|
358
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
359
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialTextAreaComponent, isStandalone: true, selector: "sp-text-area", inputs: { control: "control" }, outputs: { onBlur: "onBlur", onEnter: "onEnter" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <textarea\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n matInput\n (blur)=\"onBlur.emit(control.value)\"\n (keydown.enter)=\"onEnter.emit(control.value)\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n ></textarea>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: InputMaskModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
363
360
|
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialTextAreaComponent, decorators: [{
|
|
365
362
|
type: Component,
|
|
366
|
-
args: [{
|
|
363
|
+
args: [{ selector: 'sp-text-area', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
367
364
|
InputMaskModule,
|
|
368
365
|
CommonModule,
|
|
369
366
|
MatInputModule,
|
|
@@ -371,7 +368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
371
368
|
ReactiveFormsModule,
|
|
372
369
|
MatButtonModule,
|
|
373
370
|
ErrorMessagePipe,
|
|
374
|
-
], template: "@if (control && !control.hidden) {\
|
|
371
|
+
], template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <textarea\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n matInput\n (blur)=\"onBlur.emit(control.value)\"\n (keydown.enter)=\"onEnter.emit(control.value)\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [maxlength]=\"settings?.withMaxlength ? control.length : null\"\n [formControl]=\"control\"\n ></textarea>\n @if (control.icon) {\n <mat-icon matPrefix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n @if (settings.withCounter && control.length) {\n <mat-hint align=\"end\"\n >{{ control.value?.length ?? 0 }} / {{ control.length }}</mat-hint\n >\n }\n </mat-form-field>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
375
372
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
376
373
|
type: Input
|
|
377
374
|
}], onBlur: [{
|
|
@@ -385,13 +382,13 @@ class FileNamePipe {
|
|
|
385
382
|
if (input instanceof File) {
|
|
386
383
|
return input.name;
|
|
387
384
|
}
|
|
388
|
-
const url = new URL(input);
|
|
385
|
+
const url = new URL(input, window.location.origin);
|
|
389
386
|
return url.pathname.substring(url.pathname.lastIndexOf('/') + 1);
|
|
390
387
|
}
|
|
391
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
392
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
388
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
389
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: FileNamePipe, isStandalone: true, name: "fileName" }); }
|
|
393
390
|
}
|
|
394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileNamePipe, decorators: [{
|
|
395
392
|
type: Pipe,
|
|
396
393
|
args: [{ name: 'fileName', standalone: true }]
|
|
397
394
|
}] });
|
|
@@ -408,36 +405,36 @@ class previewImagePipe {
|
|
|
408
405
|
'svg',
|
|
409
406
|
];
|
|
410
407
|
this.docFormats = ['doc', 'docx'];
|
|
411
|
-
this.pdfIcon = `
|
|
412
|
-
<svg version="1.1" id="_x34_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve" width="800px" height="800px" fill="#000000">
|
|
413
|
-
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
414
|
-
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
415
|
-
<g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:#FFFEFE;" points="475.435,117.825 475.435,512 47.791,512 47.791,0.002 357.613,0.002 412.491,54.881 "/> <rect x="36.565" y="34.295" style="fill:#B43331;" width="205.097" height="91.768"/> <g> <g> <path style="fill:#FFFEFE;" d="M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z"/> <path style="fill:#FFFEFE;" d="M164.558,75.761c-0.075-2.035-0.15-3.844-0.377-5.503c-0.225-1.659-0.603-3.166-1.131-4.598 c-0.527-1.357-1.206-2.714-2.111-3.92c-2.035-2.94-4.522-5.126-7.312-6.483c-2.864-1.357-6.256-2.035-10.252-2.035H122.42v58.195 h20.956c3.996,0,7.388-0.678,10.252-2.035c2.79-1.357,5.277-3.543,7.312-6.483c0.905-1.206,1.584-2.563,2.111-3.92 c0.528-1.432,0.905-2.94,1.131-4.598c0.227-1.658,0.301-3.468,0.377-5.503c0.075-1.96,0.075-4.146,0.075-6.558 C164.633,79.908,164.633,77.721,164.558,75.761z M153.175,88.2c0,1.734-0.15,3.091-0.302,4.297 c-0.151,1.131-0.376,2.186-0.678,2.94c-0.301,0.829-0.754,1.583-1.281,2.261c-1.885,2.412-4.749,3.543-8.518,3.543h-8.668V63.323 h8.668c3.769,0,6.634,1.206,8.518,3.618c0.528,0.678,0.98,1.357,1.281,2.186c0.302,0.829,0.528,1.809,0.678,3.015 c0.152,1.131,0.302,2.563,0.302,4.221c0.075,1.659,0.075,3.694,0.075,5.955C153.251,84.581,153.251,86.541,153.175,88.2z"/> <path style="fill:#FFFEFE;" d="M213.18,63.323V53.222h-38.37v58.195h11.383V87.823h22.992V77.646h-22.992V63.323H213.18z"/> </g> <g> <path style="fill:#FFFEFE;" d="M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z"/> </g> </g> <polygon style="opacity:0.08;fill:#040000;" points="475.435,117.825 475.435,512 47.791,512 47.791,419.581 247.706,219.667 259.541,207.832 266.099,201.273 277.029,190.343 289.995,177.377 412.491,54.881 "/> <polygon style="fill:#BBBBBA;" points="475.435,117.836 357.6,117.836 357.6,0 "/> <g> <path style="fill:#B43331;" d="M414.376,370.658c-2.488-4.372-5.88-8.518-10.101-12.287c-3.467-3.166-7.538-6.106-12.137-8.82 c-18.543-10.93-45.003-16.207-80.961-16.207h-3.618c-1.96-1.809-3.996-3.618-6.106-5.503 c-13.644-12.287-24.499-25.63-32.942-40.48c16.583-36.561,24.499-69.126,23.519-96.867c-0.151-4.674-0.83-9.046-2.036-13.117 c-1.808-6.558-4.824-12.363-9.046-17.112c-0.075-0.075-0.075-0.075-0.15-0.151c-6.709-7.538-16.056-11.835-25.555-11.835 c-9.574,0-18.393,4.146-24.802,11.76c-6.331,7.538-9.724,17.866-9.875,30.002c-0.225,18.544,1.282,36.108,4.448,52.315 c0.301,1.282,0.528,2.563,0.829,3.844c3.166,14.7,7.84,28.645,13.871,41.611c-7.086,14.398-14.248,26.836-19.222,35.279 c-3.769,6.408-7.916,13.117-12.213,19.826c-19.373,3.468-35.807,7.689-50.129,12.966c-19.374,7.011-34.903,16.056-46.059,26.836 c-7.238,6.935-12.137,14.323-14.55,22.012c-2.563,7.915-2.411,15.83,0.453,22.916c2.638,6.558,7.387,12.061,13.719,15.83 c1.508,0.905,3.091,1.658,4.749,2.337c4.825,1.96,10.102,3.015,15.604,3.015c12.74,0,25.856-5.503,36.938-15.378 c20.654-18.469,41.988-48.169,54.576-66.94c10.327-1.583,21.559-2.94,34.224-4.297c14.927-1.508,28.118-2.412,40.104-2.865 c3.694,3.317,7.237,6.483,10.63,9.498c18.846,16.81,33.168,28.947,46.134,37.465c0,0.075,0.075,0.075,0.15,0.075 c5.127,3.392,10.026,6.181,14.926,8.443c5.502,2.563,11.081,3.92,16.81,3.92c7.237,0,14.021-2.186,19.675-6.181 c5.729-4.146,9.875-10.101,11.76-16.81C420.181,387.694,418.899,378.724,414.376,370.658z M247.706,219.667 c-1.056-9.348-1.508-19.072-1.357-29.324c0.15-9.724,3.694-16.283,8.895-16.283c3.919,0,8.066,3.543,9.951,10.327 c0.528,2.035,0.905,4.372,0.98,7.01c0.15,3.166,0.075,6.483-0.075,9.875c-0.452,9.574-2.112,19.75-4.976,30.681 c-1.734,7.011-3.995,14.323-6.784,21.936C251.173,243.186,248.911,231.803,247.706,219.667z M121.968,418.073 c-1.282-3.166,0.15-9.272,7.99-16.81c11.985-11.458,30.755-20.504,56.914-27.364c-4.976,6.784-9.875,12.966-14.625,18.619 c-7.237,8.744-14.172,16.132-20.429,21.71c-5.351,4.824-11.232,7.84-16.81,8.594c-0.98,0.151-1.96,0.226-2.94,0.226 C127.169,423.049,123.173,421.089,121.968,418.073z M242.428,337.942l0.528-0.829l-0.829,0.151 c0.15-0.377,0.377-0.754,0.602-1.055c3.167-5.352,7.161-12.212,11.458-20.127l0.377,0.829l0.98-2.035 c3.166,4.523,6.634,8.971,10.252,13.267c1.735,2.035,3.544,3.995,5.352,5.955l-1.205,0.075l1.055,0.98 c-3.09,0.226-6.331,0.528-9.573,0.829c-2.036,0.226-4.147,0.377-6.257,0.603C250.796,337.037,246.499,337.49,242.428,337.942z M369.298,384.98c-8.97-5.729-18.997-13.795-31.36-24.575c17.564,1.809,31.36,5.654,41.159,11.383 c4.297,2.488,7.538,5.051,9.724,7.538c3.619,3.844,4.901,7.312,4.221,9.649c-0.602,2.337-3.241,3.92-6.483,3.92 c-1.885,0-3.844-0.452-5.879-1.432c-3.468-1.658-7.086-3.694-10.931-6.181C369.598,385.282,369.448,385.131,369.298,384.98z"/> </g> </g> </g>
|
|
416
|
-
</svg>
|
|
408
|
+
this.pdfIcon = `
|
|
409
|
+
<svg version="1.1" id="_x34_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve" width="800px" height="800px" fill="#000000">
|
|
410
|
+
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
411
|
+
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
412
|
+
<g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:#FFFEFE;" points="475.435,117.825 475.435,512 47.791,512 47.791,0.002 357.613,0.002 412.491,54.881 "/> <rect x="36.565" y="34.295" style="fill:#B43331;" width="205.097" height="91.768"/> <g> <g> <path style="fill:#FFFEFE;" d="M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z"/> <path style="fill:#FFFEFE;" d="M164.558,75.761c-0.075-2.035-0.15-3.844-0.377-5.503c-0.225-1.659-0.603-3.166-1.131-4.598 c-0.527-1.357-1.206-2.714-2.111-3.92c-2.035-2.94-4.522-5.126-7.312-6.483c-2.864-1.357-6.256-2.035-10.252-2.035H122.42v58.195 h20.956c3.996,0,7.388-0.678,10.252-2.035c2.79-1.357,5.277-3.543,7.312-6.483c0.905-1.206,1.584-2.563,2.111-3.92 c0.528-1.432,0.905-2.94,1.131-4.598c0.227-1.658,0.301-3.468,0.377-5.503c0.075-1.96,0.075-4.146,0.075-6.558 C164.633,79.908,164.633,77.721,164.558,75.761z M153.175,88.2c0,1.734-0.15,3.091-0.302,4.297 c-0.151,1.131-0.376,2.186-0.678,2.94c-0.301,0.829-0.754,1.583-1.281,2.261c-1.885,2.412-4.749,3.543-8.518,3.543h-8.668V63.323 h8.668c3.769,0,6.634,1.206,8.518,3.618c0.528,0.678,0.98,1.357,1.281,2.186c0.302,0.829,0.528,1.809,0.678,3.015 c0.152,1.131,0.302,2.563,0.302,4.221c0.075,1.659,0.075,3.694,0.075,5.955C153.251,84.581,153.251,86.541,153.175,88.2z"/> <path style="fill:#FFFEFE;" d="M213.18,63.323V53.222h-38.37v58.195h11.383V87.823h22.992V77.646h-22.992V63.323H213.18z"/> </g> <g> <path style="fill:#FFFEFE;" d="M110.133,64.379c-0.905-2.186-2.111-4.146-3.769-5.804c-1.659-1.658-3.694-3.015-6.031-3.92 c-2.412-0.98-5.127-1.432-8.141-1.432H69.652v58.195h11.383V89.481h11.157c3.015,0,5.729-0.452,8.141-1.432 c2.337-0.905,4.371-2.261,6.031-3.92c1.658-1.658,2.865-3.543,3.769-5.804c0.828-2.186,1.281-4.523,1.281-6.935 C111.413,68.902,110.961,66.565,110.133,64.379z M97.845,77.118c-1.508,1.432-3.618,2.186-6.182,2.186H81.035V63.323h10.628 c2.564,0,4.674,0.754,6.182,2.261c1.432,1.432,2.185,3.392,2.185,5.804C100.031,73.726,99.277,75.686,97.845,77.118z"/> </g> </g> <polygon style="opacity:0.08;fill:#040000;" points="475.435,117.825 475.435,512 47.791,512 47.791,419.581 247.706,219.667 259.541,207.832 266.099,201.273 277.029,190.343 289.995,177.377 412.491,54.881 "/> <polygon style="fill:#BBBBBA;" points="475.435,117.836 357.6,117.836 357.6,0 "/> <g> <path style="fill:#B43331;" d="M414.376,370.658c-2.488-4.372-5.88-8.518-10.101-12.287c-3.467-3.166-7.538-6.106-12.137-8.82 c-18.543-10.93-45.003-16.207-80.961-16.207h-3.618c-1.96-1.809-3.996-3.618-6.106-5.503 c-13.644-12.287-24.499-25.63-32.942-40.48c16.583-36.561,24.499-69.126,23.519-96.867c-0.151-4.674-0.83-9.046-2.036-13.117 c-1.808-6.558-4.824-12.363-9.046-17.112c-0.075-0.075-0.075-0.075-0.15-0.151c-6.709-7.538-16.056-11.835-25.555-11.835 c-9.574,0-18.393,4.146-24.802,11.76c-6.331,7.538-9.724,17.866-9.875,30.002c-0.225,18.544,1.282,36.108,4.448,52.315 c0.301,1.282,0.528,2.563,0.829,3.844c3.166,14.7,7.84,28.645,13.871,41.611c-7.086,14.398-14.248,26.836-19.222,35.279 c-3.769,6.408-7.916,13.117-12.213,19.826c-19.373,3.468-35.807,7.689-50.129,12.966c-19.374,7.011-34.903,16.056-46.059,26.836 c-7.238,6.935-12.137,14.323-14.55,22.012c-2.563,7.915-2.411,15.83,0.453,22.916c2.638,6.558,7.387,12.061,13.719,15.83 c1.508,0.905,3.091,1.658,4.749,2.337c4.825,1.96,10.102,3.015,15.604,3.015c12.74,0,25.856-5.503,36.938-15.378 c20.654-18.469,41.988-48.169,54.576-66.94c10.327-1.583,21.559-2.94,34.224-4.297c14.927-1.508,28.118-2.412,40.104-2.865 c3.694,3.317,7.237,6.483,10.63,9.498c18.846,16.81,33.168,28.947,46.134,37.465c0,0.075,0.075,0.075,0.15,0.075 c5.127,3.392,10.026,6.181,14.926,8.443c5.502,2.563,11.081,3.92,16.81,3.92c7.237,0,14.021-2.186,19.675-6.181 c5.729-4.146,9.875-10.101,11.76-16.81C420.181,387.694,418.899,378.724,414.376,370.658z M247.706,219.667 c-1.056-9.348-1.508-19.072-1.357-29.324c0.15-9.724,3.694-16.283,8.895-16.283c3.919,0,8.066,3.543,9.951,10.327 c0.528,2.035,0.905,4.372,0.98,7.01c0.15,3.166,0.075,6.483-0.075,9.875c-0.452,9.574-2.112,19.75-4.976,30.681 c-1.734,7.011-3.995,14.323-6.784,21.936C251.173,243.186,248.911,231.803,247.706,219.667z M121.968,418.073 c-1.282-3.166,0.15-9.272,7.99-16.81c11.985-11.458,30.755-20.504,56.914-27.364c-4.976,6.784-9.875,12.966-14.625,18.619 c-7.237,8.744-14.172,16.132-20.429,21.71c-5.351,4.824-11.232,7.84-16.81,8.594c-0.98,0.151-1.96,0.226-2.94,0.226 C127.169,423.049,123.173,421.089,121.968,418.073z M242.428,337.942l0.528-0.829l-0.829,0.151 c0.15-0.377,0.377-0.754,0.602-1.055c3.167-5.352,7.161-12.212,11.458-20.127l0.377,0.829l0.98-2.035 c3.166,4.523,6.634,8.971,10.252,13.267c1.735,2.035,3.544,3.995,5.352,5.955l-1.205,0.075l1.055,0.98 c-3.09,0.226-6.331,0.528-9.573,0.829c-2.036,0.226-4.147,0.377-6.257,0.603C250.796,337.037,246.499,337.49,242.428,337.942z M369.298,384.98c-8.97-5.729-18.997-13.795-31.36-24.575c17.564,1.809,31.36,5.654,41.159,11.383 c4.297,2.488,7.538,5.051,9.724,7.538c3.619,3.844,4.901,7.312,4.221,9.649c-0.602,2.337-3.241,3.92-6.483,3.92 c-1.885,0-3.844-0.452-5.879-1.432c-3.468-1.658-7.086-3.694-10.931-6.181C369.598,385.282,369.448,385.131,369.298,384.98z"/> </g> </g> </g>
|
|
413
|
+
</svg>
|
|
417
414
|
`;
|
|
418
|
-
this.wordIcon = `
|
|
419
|
-
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
|
420
|
-
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
421
|
-
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
422
|
-
<g id="SVGRepo_iconCarrier">
|
|
423
|
-
<title>file_type_word2</title>
|
|
424
|
-
<path d="M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322" style="fill:#283c82"/>
|
|
425
|
-
<path d="M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822" style="fill:#fff"/>
|
|
426
|
-
<path d="M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241" style="fill:#fff"/>
|
|
427
|
-
</g>
|
|
428
|
-
</svg>
|
|
415
|
+
this.wordIcon = `
|
|
416
|
+
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
|
417
|
+
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
418
|
+
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
419
|
+
<g id="SVGRepo_iconCarrier">
|
|
420
|
+
<title>file_type_word2</title>
|
|
421
|
+
<path d="M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322" style="fill:#283c82"/>
|
|
422
|
+
<path d="M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822" style="fill:#fff"/>
|
|
423
|
+
<path d="M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241" style="fill:#fff"/>
|
|
424
|
+
</g>
|
|
425
|
+
</svg>
|
|
429
426
|
`;
|
|
430
|
-
this.byDefectIcon = `
|
|
431
|
-
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
|
432
|
-
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
433
|
-
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
434
|
-
<g id="SVGRepo_iconCarrier">
|
|
435
|
-
<title>file_type_word2</title>
|
|
436
|
-
<path d="M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322" style="fill:#283c82"/>
|
|
437
|
-
<path d="M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822" style="fill:#fff"/>
|
|
438
|
-
<path d="M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241" style="fill:#fff"/>
|
|
439
|
-
</g>
|
|
440
|
-
</svg>
|
|
427
|
+
this.byDefectIcon = `
|
|
428
|
+
<svg width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
|
429
|
+
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
|
|
430
|
+
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>
|
|
431
|
+
<g id="SVGRepo_iconCarrier">
|
|
432
|
+
<title>file_type_word2</title>
|
|
433
|
+
<path d="M18.536,2.323V4.868c3.4.019,7.12-.035,10.521.019a.783.783,0,0,1,.912.861c.054,6.266-.013,12.89.032,19.157-.02.4.009,1.118-.053,1.517-.079.509-.306.607-.817.676-.286.039-.764.034-1.045.047-2.792-.014-5.582-.011-8.374-.01l-1.175,0v2.547L2,27.133Q2,16,2,4.873L18.536,2.322" style="fill:#283c82"/>
|
|
434
|
+
<path d="M18.536,5.822h10.5V26.18h-10.5V23.635h8.27V22.363h-8.27v-1.59h8.27V19.5h-8.27v-1.59h8.27V16.637h-8.27v-1.59h8.27V13.774h-8.27v-1.59h8.27V10.911h-8.27V9.321h8.27V8.048h-8.27V5.822" style="fill:#fff"/>
|
|
435
|
+
<path d="M8.573,11.443c.6-.035,1.209-.06,1.813-.092.423,2.147.856,4.291,1.314,6.429.359-2.208.757-4.409,1.142-6.613.636-.022,1.272-.057,1.905-.1-.719,3.082-1.349,6.19-2.134,9.254-.531.277-1.326-.013-1.956.032-.423-2.106-.916-4.2-1.295-6.314C8.99,16.1,8.506,18.133,8.08,20.175q-.916-.048-1.839-.111c-.528-2.8-1.148-5.579-1.641-8.385.544-.025,1.091-.048,1.635-.067.328,2.026.7,4.043.986,6.072.448-2.08.907-4.161,1.352-6.241" style="fill:#fff"/>
|
|
436
|
+
</g>
|
|
437
|
+
</svg>
|
|
441
438
|
`;
|
|
442
439
|
this.sanitizer = inject(DomSanitizer);
|
|
443
440
|
}
|
|
@@ -455,8 +452,7 @@ class previewImagePipe {
|
|
|
455
452
|
return this.getNotImageFormat(extension);
|
|
456
453
|
}
|
|
457
454
|
getFileExtension(href) {
|
|
458
|
-
const
|
|
459
|
-
const path = new URL(url).pathname;
|
|
455
|
+
const path = new URL(href, window.location.origin).pathname;
|
|
460
456
|
return path.split('.').pop() || '';
|
|
461
457
|
}
|
|
462
458
|
getImageWhenIsFile(file) {
|
|
@@ -489,10 +485,10 @@ class previewImagePipe {
|
|
|
489
485
|
svgConfiguration(svg) {
|
|
490
486
|
return this.sanitizer.bypassSecurityTrustUrl('data:image/svg+xml;base64,' + btoa(this.pdfIcon));
|
|
491
487
|
}
|
|
492
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
493
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
488
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: previewImagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
489
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: previewImagePipe, isStandalone: true, name: "previewImage" }); }
|
|
494
490
|
}
|
|
495
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
491
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: previewImagePipe, decorators: [{
|
|
496
492
|
type: Pipe,
|
|
497
493
|
args: [{ name: 'previewImage', standalone: true }]
|
|
498
494
|
}] });
|
|
@@ -501,10 +497,10 @@ class TruncatePipe {
|
|
|
501
497
|
transform(text, lenght = 12, suffix = '...') {
|
|
502
498
|
return text.slice(0, lenght) + suffix;
|
|
503
499
|
}
|
|
504
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
505
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
500
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
501
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: TruncatePipe, isStandalone: true, name: "truncate" }); }
|
|
506
502
|
}
|
|
507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TruncatePipe, decorators: [{
|
|
508
504
|
type: Pipe,
|
|
509
505
|
args: [{ name: 'truncate', standalone: true }]
|
|
510
506
|
}] });
|
|
@@ -819,7 +815,6 @@ class SpecialFormBuilderService {
|
|
|
819
815
|
group(fields, parentField = {}) {
|
|
820
816
|
return this.formGenerator(this.fieldDataToArray(fields), parentField);
|
|
821
817
|
}
|
|
822
|
-
array() { }
|
|
823
818
|
fieldDataToArray(fields) {
|
|
824
819
|
return Object.entries(fields).map(([name, field]) => this.setDefectFieldOptions(name, field));
|
|
825
820
|
}
|
|
@@ -903,28 +898,28 @@ class SpecialFormBuilderService {
|
|
|
903
898
|
}
|
|
904
899
|
arrayLengthRequired(control) {
|
|
905
900
|
if (control.value.length) {
|
|
906
|
-
return
|
|
901
|
+
return null;
|
|
907
902
|
}
|
|
908
903
|
return { noItems: 'NO_SELECTED_ITEM' };
|
|
909
904
|
}
|
|
910
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
911
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
905
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
906
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormBuilderService, providedIn: 'root' }); }
|
|
912
907
|
}
|
|
913
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormBuilderService, decorators: [{
|
|
914
909
|
type: Injectable,
|
|
915
910
|
args: [{
|
|
916
911
|
providedIn: 'root',
|
|
917
912
|
}]
|
|
918
|
-
}]
|
|
913
|
+
}] });
|
|
919
914
|
|
|
920
915
|
class ErrorStateMatcherService {
|
|
921
916
|
isErrorState(control) {
|
|
922
917
|
return control && control.invalid && control.dirty;
|
|
923
918
|
}
|
|
924
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
925
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorStateMatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
920
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorStateMatcherService }); }
|
|
926
921
|
}
|
|
927
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ErrorStateMatcherService, decorators: [{
|
|
928
923
|
type: Injectable
|
|
929
924
|
}] });
|
|
930
925
|
|
|
@@ -1026,18 +1021,18 @@ class SpecialUploadComponent {
|
|
|
1026
1021
|
this.realControl.reset();
|
|
1027
1022
|
}
|
|
1028
1023
|
}
|
|
1029
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1030
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1024
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1025
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialUploadComponent, isStandalone: true, selector: "sp-upload", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <ngx-mat-dropzone>\n <input\n type=\"file\"\n fileInput\n [multiple]=\"settings.multiple\"\n [mode]=\"settings.mode\"\n [accept]=\"control.settings?.accept || DEFAULT_ACCEPTED_TYPES\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n [required]=\"control.required\"\n [readonly]=\"control.readOnly\"\n (ngModelChange)=\"onSelectFile($event)\"\n />\n </ngx-mat-dropzone>\n <mat-chip-set>\n @for (item of elements; track item?.lastModified || item) {\n <mat-chip-row>\n <img matChipAvatar [src]=\"item | previewImage\" alt=\"\" />\n {{ item | fileName | truncate }}\n <button (click)=\"onRemove(item)\" matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-set>\n @if (control.icon) {\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}:host .special-upload{margin-bottom:1rem}:host .special-upload__dropzone{min-height:180px;height:unset!important}:host .special-upload__icon{height:64px;width:64px;font-size:64px}:host .special-upload__card{width:5rem;height:5rem;margin:0;box-sizing:border-box;display:flex;align-items:center;flex-direction:column}:host .special-upload__card--image{width:100%;height:100%;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: MatDropzone, selector: "ngx-mat-dropzone", inputs: ["aria-describedby", "placeholder", "required"], exportAs: ["matDropzone"] }, { kind: "directive", type: FileInputDirective, selector: "input[fileInput]", inputs: ["value", "accept", "mode", "disabled"], outputs: ["selectionChange"], exportAs: ["fileInput"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "directive", type: i4$1.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: i4$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i4$1.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "pipe", type: previewImagePipe, name: "previewImage" }, { kind: "pipe", type: FileNamePipe, name: "fileName" }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1031
1026
|
}
|
|
1032
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialUploadComponent, decorators: [{
|
|
1033
1028
|
type: Component,
|
|
1034
|
-
args: [{
|
|
1029
|
+
args: [{ selector: 'sp-upload', imports: [
|
|
1035
1030
|
previewImagePipe,
|
|
1036
1031
|
FileNamePipe,
|
|
1037
1032
|
FormsModule,
|
|
1038
|
-
|
|
1033
|
+
MatDropzone,
|
|
1034
|
+
FileInputDirective,
|
|
1039
1035
|
MatInputModule,
|
|
1040
|
-
DropzoneMaterialModule,
|
|
1041
1036
|
CommonModule,
|
|
1042
1037
|
MatIconModule,
|
|
1043
1038
|
ReactiveFormsModule,
|
|
@@ -1046,7 +1041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1046
1041
|
MatChipsModule,
|
|
1047
1042
|
TruncatePipe,
|
|
1048
1043
|
MatCardModule,
|
|
1049
|
-
], template: "@if (control && !control.hidden) {\
|
|
1044
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (control && !control.hidden) {\n <mat-form-field\n [id]=\"control.elementId\"\n class=\"special-input w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n >\n @if (control.label) {\n <mat-label>\n {{ control.label }}\n </mat-label>\n }\n <ngx-mat-dropzone>\n <input\n type=\"file\"\n fileInput\n [multiple]=\"settings.multiple\"\n [mode]=\"settings.mode\"\n [accept]=\"control.settings?.accept || DEFAULT_ACCEPTED_TYPES\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n [required]=\"control.required\"\n [readonly]=\"control.readOnly\"\n (ngModelChange)=\"onSelectFile($event)\"\n />\n </ngx-mat-dropzone>\n <mat-chip-set>\n @for (item of elements; track item?.lastModified || item) {\n <mat-chip-row>\n <img matChipAvatar [src]=\"item | previewImage\" alt=\"\" />\n {{ item | fileName | truncate }}\n <button (click)=\"onRemove(item)\" matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n </mat-chip-set>\n @if (control.icon) {\n <mat-icon matSuffix>{{ control.icon }}</mat-icon>\n }\n @if (control.tooltip) {\n <mat-hint>{{ control.tooltip }}</mat-hint>\n }\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n </mat-form-field>\n}\n", styles: [":host{display:contents}:host .special-upload{margin-bottom:1rem}:host .special-upload__dropzone{min-height:180px;height:unset!important}:host .special-upload__icon{height:64px;width:64px;font-size:64px}:host .special-upload__card{width:5rem;height:5rem;margin:0;box-sizing:border-box;display:flex;align-items:center;flex-direction:column}:host .special-upload__card--image{width:100%;height:100%;object-fit:cover}\n"] }]
|
|
1050
1045
|
}], propDecorators: { control: [{
|
|
1051
1046
|
type: Input
|
|
1052
1047
|
}] } });
|
|
@@ -1062,12 +1057,12 @@ class SpecialLabelComponent {
|
|
|
1062
1057
|
this.settings.onClickLink(this.control.value);
|
|
1063
1058
|
}
|
|
1064
1059
|
}
|
|
1065
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1066
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1060
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1061
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialLabelComponent, isStandalone: true, selector: "sp-label", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <div\n class=\"special-label px-2 mb-3 {{ control.styleClasses }} {{\n control.value | textByFunction: settings.stylesPipe\n }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <div class=\"special-label__title font-bold\">\n {{ control.label }}\n </div>\n }\n <div\n class=\"special-label__text\"\n [ngClass]=\"{\n 'cursor-pointer text-blue-600 hover:text-blue-700': settings.isLink,\n }\"\n (click)=\"onLink()\"\n >\n {{ control.value | textByFunction: control.settings.pipe }}\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1067
1062
|
}
|
|
1068
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1063
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialLabelComponent, decorators: [{
|
|
1069
1064
|
type: Component,
|
|
1070
|
-
args: [{
|
|
1065
|
+
args: [{ selector: 'sp-label', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MatIconModule, TextByFunctionPipe], template: "@if (control && !control.hidden) {\n <div\n class=\"special-label px-2 mb-3 {{ control.styleClasses }} {{\n control.value | textByFunction: settings.stylesPipe\n }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <div class=\"special-label__title font-bold\">\n {{ control.label }}\n </div>\n }\n <div\n class=\"special-label__text\"\n [ngClass]=\"{\n 'cursor-pointer text-blue-600 hover:text-blue-700': settings.isLink,\n }\"\n (click)=\"onLink()\"\n >\n {{ control.value | textByFunction: control.settings.pipe }}\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
1071
1066
|
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
1072
1067
|
type: Input
|
|
1073
1068
|
}] } });
|
|
@@ -1096,12 +1091,12 @@ class SpecialRichtextComponent {
|
|
|
1096
1091
|
ngOnDestroy() {
|
|
1097
1092
|
this.editor.destroy();
|
|
1098
1093
|
}
|
|
1099
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1094
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialRichtextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1095
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialRichtextComponent, isStandalone: true, selector: "sp-input", inputs: { control: "control" }, ngImport: i0, template: "@if (control && !control.hidden) {\n <div\n class=\"special-richtext w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <h4 class=\"text-md font-medium pl-2 mb-2\">\n {{ control.label }}\n </h4>\n }\n <ngx-editor-menu\n [colorPresets]=\"colorPresets\"\n [toolbar]=\"toolbar\"\n [editor]=\"editor\"\n >\n </ngx-editor-menu>\n <ngx-editor\n [editor]=\"editor\"\n [formControl]=\"control\"\n [required]=\"control.required\"\n [outputFormat]=\"control.settings.outputFormat || 'html'\"\n [disabled]=\"false\"\n [placeholder]=\"control.placeholder\"\n ></ngx-editor>\n <div class=\"px-5 mt-2\">\n @if (\n control.dirty && control.errors | errorMessage: control.errorMessages;\n as error\n ) {\n <div class=\"text-sm text-rose-500\">\n {{ error }}\n </div>\n } @else {\n <div class=\"text-sm font-medium\">{{ control.tooltip }}</div>\n }\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i2$5.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i2$5.NgxEditorMenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1101
1096
|
}
|
|
1102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1097
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialRichtextComponent, decorators: [{
|
|
1103
1098
|
type: Component,
|
|
1104
|
-
args: [{
|
|
1099
|
+
args: [{ selector: 'sp-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1105
1100
|
CommonModule,
|
|
1106
1101
|
MatInputModule,
|
|
1107
1102
|
MatIconModule,
|
|
@@ -1109,7 +1104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1109
1104
|
NgxEditorModule,
|
|
1110
1105
|
ErrorMessagePipe,
|
|
1111
1106
|
MatFormFieldModule,
|
|
1112
|
-
], template: "@if (control && !control.hidden) {\
|
|
1107
|
+
], template: "@if (control && !control.hidden) {\n <div\n class=\"special-richtext w-full mb-3 {{ control.styleClasses }}\"\n [id]=\"control.elementId\"\n >\n @if (control.label) {\n <h4 class=\"text-md font-medium pl-2 mb-2\">\n {{ control.label }}\n </h4>\n }\n <ngx-editor-menu\n [colorPresets]=\"colorPresets\"\n [toolbar]=\"toolbar\"\n [editor]=\"editor\"\n >\n </ngx-editor-menu>\n <ngx-editor\n [editor]=\"editor\"\n [formControl]=\"control\"\n [required]=\"control.required\"\n [outputFormat]=\"control.settings.outputFormat || 'html'\"\n [disabled]=\"false\"\n [placeholder]=\"control.placeholder\"\n ></ngx-editor>\n <div class=\"px-5 mt-2\">\n @if (\n control.dirty && control.errors | errorMessage: control.errorMessages;\n as error\n ) {\n <div class=\"text-sm text-rose-500\">\n {{ error }}\n </div>\n } @else {\n <div class=\"text-sm font-medium\">{{ control.tooltip }}</div>\n }\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
1113
1108
|
}], propDecorators: { control: [{
|
|
1114
1109
|
type: Input
|
|
1115
1110
|
}] } });
|
|
@@ -1119,12 +1114,12 @@ class SpecialFormComponent {
|
|
|
1119
1114
|
this.form = form;
|
|
1120
1115
|
}
|
|
1121
1116
|
ngOnInit() { }
|
|
1122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialFormComponent, isStandalone: false, selector: "sp-form", inputs: { form: ["control", "form"] }, ngImport: i0, template: "@if (form && !form.hidden) {\n <div\n [id]=\"form.elementId\"\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\n >\n @if (form) {\n <div\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n @if (form.label) {\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\n }\n <div class=\"w-full flex flex-wrap\">\n @for (control of form.controls | controlsList; track control.name) {\n <ng-template controlRender [control]=\"control\"></ng-template>\n }\n </div>\n </div>\n }\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => FormControlsRenderDirective), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(() => FormControlsListPipe), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1124
1119
|
}
|
|
1125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormComponent, decorators: [{
|
|
1126
1121
|
type: Component,
|
|
1127
|
-
args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (form && !form.hidden) {\
|
|
1122
|
+
args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (form && !form.hidden) {\n <div\n [id]=\"form.elementId\"\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\n >\n @if (form) {\n <div\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n @if (form.label) {\n <h1 class=\"font-bold py-3\">{{ form.label }}</h1>\n }\n <div class=\"w-full flex flex-wrap\">\n @for (control of form.controls | controlsList; track control.name) {\n <ng-template controlRender [control]=\"control\"></ng-template>\n }\n </div>\n </div>\n }\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
1128
1123
|
}], propDecorators: { form: [{
|
|
1129
1124
|
type: Input,
|
|
1130
1125
|
args: ['control']
|
|
@@ -1147,12 +1142,12 @@ class SpecialArrayComponent {
|
|
|
1147
1142
|
addItem() {
|
|
1148
1143
|
this.formArray.addItem();
|
|
1149
1144
|
}
|
|
1150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1151
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SpecialArrayComponent, isStandalone: false, selector: "sp-array", inputs: { formArray: ["control", "formArray"] }, ngImport: i0, template: "@if (formArray && !formArray.hidden) {\n <div\n [id]=\"formArray.elementId\"\n class=\"special-form-array w-full box-border p-2 {{\n formArray.styleClasses\n }}\"\n >\n <div\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\n >\n @if (formArray.label) {\n <h1 class=\"font-bold py-3\">\n {{ formArray.label }}\n </h1>\n }\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\n @if (formArray.form) {\n <div\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\n class=\"grid gap-4 grid-cols-12\"\n >\n @if (!withFormHeader) {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <h2 [class]=\"item.styleClasses\">\n {{ item.label }}\n </h2>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n ></div>\n }\n } @else {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button\n mat-flat-button\n color=\"primary\"\n [disabled]=\"formArray.form.invalid\"\n (click)=\"addItem()\"\n >\n {{ settings.addActionLabel || \"Add\" }}\n </button>\n </div>\n }\n }\n </div>\n }\n @for (\n formGroup of formArray.controls;\n track formGroup.name;\n let i = $index\n ) {\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\n @for (item of formGroup.controls | controlsList; track item.name) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\n {{ settings.removeActionLabel || \"Remove\" }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i7.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i0.forwardRef(() => i5.MatButton), selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i0.forwardRef(() => FormControlsRenderDirective), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(() => FormControlsListPipe), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1152
1147
|
}
|
|
1153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialArrayComponent, decorators: [{
|
|
1154
1149
|
type: Component,
|
|
1155
|
-
args: [{ selector: 'sp-array', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (formArray && !formArray.hidden) {\
|
|
1150
|
+
args: [{ selector: 'sp-array', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (formArray && !formArray.hidden) {\n <div\n [id]=\"formArray.elementId\"\n class=\"special-form-array w-full box-border p-2 {{\n formArray.styleClasses\n }}\"\n >\n <div\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\n >\n @if (formArray.label) {\n <h1 class=\"font-bold py-3\">\n {{ formArray.label }}\n </h1>\n }\n <div class=\"divide-y divide-x-0 divide-solid divide-slate-200\">\n @if (formArray.form) {\n <div\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\n class=\"grid gap-4 grid-cols-12\"\n >\n @if (!withFormHeader) {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <h2 [class]=\"item.styleClasses\">\n {{ item.label }}\n </h2>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n ></div>\n }\n } @else {\n @for (\n item of formArray.form.controls | controlsList;\n track item.name\n ) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n @if (settings.withActionButtons) {\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button\n mat-flat-button\n color=\"primary\"\n [disabled]=\"formArray.form.invalid\"\n (click)=\"addItem()\"\n >\n {{ settings.addActionLabel || \"Add\" }}\n </button>\n </div>\n }\n }\n </div>\n }\n @for (\n formGroup of formArray.controls;\n track formGroup.name;\n let i = $index\n ) {\n <div class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\">\n @for (item of formGroup.controls | controlsList; track item.name) {\n <ng-template controlRender [control]=\"item\"></ng-template>\n }\n <div\n class=\"col-start-7 col-end-13 md:col-start-13 md:col-end-16 pb-5 my-auto ml-auto md:m-auto\"\n >\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\n {{ settings.removeActionLabel || \"Remove\" }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
1156
1151
|
}], ctorParameters: () => [], propDecorators: { formArray: [{
|
|
1157
1152
|
type: Input,
|
|
1158
1153
|
args: ['control']
|
|
@@ -1183,13 +1178,14 @@ class FormControlsRenderDirective {
|
|
|
1183
1178
|
[EControlTypes.richText]: SpecialRichtextComponent,
|
|
1184
1179
|
};
|
|
1185
1180
|
}
|
|
1186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1187
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1181
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormControlsRenderDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1182
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.16", type: FormControlsRenderDirective, isStandalone: false, selector: "[controlRender]", inputs: { controlSetter: ["control", "controlSetter"] }, ngImport: i0 }); }
|
|
1188
1183
|
}
|
|
1189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FormControlsRenderDirective, decorators: [{
|
|
1190
1185
|
type: Directive,
|
|
1191
1186
|
args: [{
|
|
1192
1187
|
selector: `[controlRender]`,
|
|
1188
|
+
standalone: false
|
|
1193
1189
|
}]
|
|
1194
1190
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { controlSetter: [{
|
|
1195
1191
|
type: Input,
|
|
@@ -1197,8 +1193,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1197
1193
|
}] } });
|
|
1198
1194
|
|
|
1199
1195
|
class SpecialFormModule {
|
|
1200
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1201
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1196
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1197
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormModule, declarations: [SpecialArrayComponent,
|
|
1202
1198
|
FormControlsRenderDirective,
|
|
1203
1199
|
SpecialFormComponent], imports: [CommonModule,
|
|
1204
1200
|
FormControlsListPipe,
|
|
@@ -1215,7 +1211,7 @@ class SpecialFormModule {
|
|
|
1215
1211
|
SpecialUploadComponent], exports: [SpecialArrayComponent,
|
|
1216
1212
|
FormControlsRenderDirective,
|
|
1217
1213
|
SpecialFormComponent] }); }
|
|
1218
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1214
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormModule, imports: [CommonModule,
|
|
1219
1215
|
MatButtonModule,
|
|
1220
1216
|
SpecialRichtextComponent,
|
|
1221
1217
|
SpecialDropdownComponent,
|
|
@@ -1228,7 +1224,7 @@ class SpecialFormModule {
|
|
|
1228
1224
|
SpecialTextAreaComponent,
|
|
1229
1225
|
SpecialUploadComponent] }); }
|
|
1230
1226
|
}
|
|
1231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SpecialFormModule, decorators: [{
|
|
1232
1228
|
type: NgModule,
|
|
1233
1229
|
args: [{
|
|
1234
1230
|
declarations: [
|