@ng-formworks/material 17.2.7 → 17.3.0
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/LICENSE +21 -0
- package/esm2022/lib/material-design-cssframework.mjs +19 -0
- package/esm2022/lib/material-design-framework.component.mjs +119 -0
- package/esm2022/lib/material-design-framework.module.mjs +117 -0
- package/esm2022/lib/material-design.framework.mjs +61 -0
- package/esm2022/lib/widgets/flex-layout-root.component.mjs +75 -0
- package/esm2022/lib/widgets/flex-layout-section.component.mjs +347 -0
- package/esm2022/lib/widgets/material-add-reference.component.mjs +66 -0
- package/esm2022/lib/widgets/material-button-group.component.mjs +90 -0
- package/esm2022/lib/widgets/material-button.component.mjs +80 -0
- package/esm2022/lib/widgets/material-checkbox.component.mjs +166 -0
- package/esm2022/lib/widgets/material-checkboxes.component.mjs +129 -0
- package/esm2022/lib/widgets/material-chip-list.component.mjs +35 -0
- package/esm2022/lib/widgets/material-datepicker.component.mjs +141 -0
- package/esm2022/lib/widgets/material-file.component.mjs +35 -0
- package/esm2022/lib/widgets/material-input.component.mjs +149 -0
- package/esm2022/lib/widgets/material-number.component.mjs +145 -0
- package/esm2022/lib/widgets/material-one-of.component.mjs +35 -0
- package/esm2022/lib/widgets/material-radios.component.mjs +122 -0
- package/esm2022/lib/widgets/material-select.component.mjs +186 -0
- package/esm2022/lib/widgets/material-slider.component.mjs +91 -0
- package/esm2022/lib/widgets/material-stepper.component.mjs +35 -0
- package/esm2022/lib/widgets/material-tabs.component.mjs +92 -0
- package/esm2022/lib/widgets/material-textarea.component.mjs +134 -0
- package/esm2022/lib/widgets/public_api.mjs +52 -0
- package/esm2022/ng-formworks-material.mjs +5 -0
- package/esm2022/public_api.mjs +8 -0
- package/fesm2022/ng-formworks-material.mjs +2353 -0
- package/fesm2022/ng-formworks-material.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/material-design-cssframework.d.ts +1 -0
- package/lib/material-design-framework.component.d.ts +35 -0
- package/lib/material-design-framework.module.d.ts +61 -0
- package/lib/material-design.framework.d.ts +46 -0
- package/lib/widgets/flex-layout-root.component.d.ts +15 -0
- package/lib/widgets/flex-layout-section.component.d.ts +25 -0
- package/lib/widgets/material-add-reference.component.d.ts +20 -0
- package/lib/widgets/material-button-group.component.d.ts +23 -0
- package/lib/widgets/material-button.component.d.ts +24 -0
- package/lib/widgets/material-checkbox.component.d.ts +25 -0
- package/lib/widgets/material-checkboxes.component.d.ts +27 -0
- package/lib/widgets/material-chip-list.component.d.ts +21 -0
- package/lib/widgets/material-datepicker.component.d.ts +22 -0
- package/lib/widgets/material-file.component.d.ts +21 -0
- package/lib/widgets/material-input.component.d.ts +23 -0
- package/lib/widgets/material-number.component.d.ts +26 -0
- package/lib/widgets/material-one-of.component.d.ts +21 -0
- package/lib/widgets/material-radios.component.d.ts +23 -0
- package/lib/widgets/material-select.component.d.ts +24 -0
- package/lib/widgets/material-slider.component.d.ts +25 -0
- package/lib/widgets/material-stepper.component.d.ts +21 -0
- package/lib/widgets/material-tabs.component.d.ts +20 -0
- package/lib/widgets/material-textarea.component.d.ts +22 -0
- package/{src/lib/widgets/public_api.ts → lib/widgets/public_api.d.ts} +41 -54
- package/package.json +62 -48
- package/{src/public_api.ts → public_api.d.ts} +4 -9
- package/karma.conf.js +0 -46
- package/ng-package.json +0 -13
- package/src/lib/flexlayout-replacement-styles.scss +0 -95
- package/src/lib/material-design-cssframework.ts +0 -20
- package/src/lib/material-design-framework.component.html +0 -13
- package/src/lib/material-design-framework.component.scss +0 -58
- package/src/lib/material-design-framework.component.spec.ts +0 -39
- package/src/lib/material-design-framework.component.ts +0 -143
- package/src/lib/material-design-framework.module.ts +0 -81
- package/src/lib/material-design-themes.scss +0 -71
- package/src/lib/material-design.framework.ts +0 -83
- package/src/lib/tailwind-output.scss +0 -622
- package/src/lib/widgets/flex-layout-root.component.html +0 -4
- package/src/lib/widgets/flex-layout-root.component.ts +0 -52
- package/src/lib/widgets/flex-layout-section.component.ts +0 -216
- package/src/lib/widgets/material-add-reference.component.ts +0 -56
- package/src/lib/widgets/material-button-group.component.ts +0 -68
- package/src/lib/widgets/material-button.component.ts +0 -66
- package/src/lib/widgets/material-checkbox.component.ts +0 -112
- package/src/lib/widgets/material-checkboxes.component.ts +0 -108
- package/src/lib/widgets/material-chip-list.component.ts +0 -35
- package/src/lib/widgets/material-datepicker.component.ts +0 -89
- package/src/lib/widgets/material-file.component.ts +0 -35
- package/src/lib/widgets/material-input.component.ts +0 -97
- package/src/lib/widgets/material-number.component.ts +0 -95
- package/src/lib/widgets/material-one-of.component.ts +0 -35
- package/src/lib/widgets/material-radios.component.ts +0 -91
- package/src/lib/widgets/material-select.component.ts +0 -118
- package/src/lib/widgets/material-slider.component.ts +0 -65
- package/src/lib/widgets/material-stepper.component.ts +0 -35
- package/src/lib/widgets/material-tabs.component.ts +0 -72
- package/src/lib/widgets/material-textarea.component.ts +0 -88
- package/src/test.ts +0 -17
- package/tailwind-input.css +0 -3
- package/tailwind.config.js +0 -12
- package/tsconfig.lib.json +0 -25
- package/tsconfig.lib.prod.json +0 -9
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -11
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
2
|
+
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
|
3
|
+
import { buildTitleMap, isArray } from '@ng-formworks/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ng-formworks/core";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@angular/material/core";
|
|
9
|
+
import * as i5 from "@angular/material/form-field";
|
|
10
|
+
import * as i6 from "@angular/material/select";
|
|
11
|
+
export class MaterialSelectComponent {
|
|
12
|
+
constructor(matFormFieldDefaultOptions, jsf) {
|
|
13
|
+
this.matFormFieldDefaultOptions = matFormFieldDefaultOptions;
|
|
14
|
+
this.jsf = jsf;
|
|
15
|
+
this.controlDisabled = false;
|
|
16
|
+
this.boundControl = false;
|
|
17
|
+
this.selectList = [];
|
|
18
|
+
this.isArray = isArray;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.options = this.layoutNode.options || {};
|
|
22
|
+
this.selectList = buildTitleMap(this.options.titleMap || this.options.enumNames, this.options.enum, !!this.options.required, !!this.options.flatList);
|
|
23
|
+
this.jsf.initializeControl(this, !this.options.readonly);
|
|
24
|
+
if (!this.options.notitle && !this.options.description && this.options.placeholder) {
|
|
25
|
+
this.options.description = this.options.placeholder;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
updateValue(event) {
|
|
29
|
+
this.options.showErrors = true;
|
|
30
|
+
this.jsf.updateValue(this, event.value);
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: MAT_FORM_FIELD_DEFAULT_OPTIONS, optional: true }, { token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaterialSelectComponent, selector: "material-select-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
34
|
+
<mat-form-field
|
|
35
|
+
[appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'"
|
|
36
|
+
[class]="options?.htmlClass || ''"
|
|
37
|
+
[floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')"
|
|
38
|
+
[hideRequiredMarker]="options?.hideRequired ? 'true' : 'false'"
|
|
39
|
+
[style.width]="'100%'">
|
|
40
|
+
<mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>
|
|
41
|
+
<span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"
|
|
42
|
+
[innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>
|
|
43
|
+
<mat-select *ngIf="boundControl"
|
|
44
|
+
[formControl]="formControl"
|
|
45
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
46
|
+
[attr.name]="controlName"
|
|
47
|
+
[id]="'control' + layoutNode?._id"
|
|
48
|
+
[multiple]="options?.multiple"
|
|
49
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
50
|
+
[required]="options?.required"
|
|
51
|
+
[style.width]="'100%'"
|
|
52
|
+
(blur)="options.showErrors = true">
|
|
53
|
+
<ng-template ngFor let-selectItem [ngForOf]="selectList">
|
|
54
|
+
<mat-option *ngIf="!isArray(selectItem?.items)"
|
|
55
|
+
[value]="selectItem?.value">
|
|
56
|
+
<span [innerHTML]="selectItem?.name"></span>
|
|
57
|
+
</mat-option>
|
|
58
|
+
<mat-optgroup *ngIf="isArray(selectItem?.items)"
|
|
59
|
+
[label]="selectItem?.group">
|
|
60
|
+
<mat-option *ngFor="let subItem of selectItem.items"
|
|
61
|
+
[value]="subItem?.value">
|
|
62
|
+
<span [innerHTML]="subItem?.name"></span>
|
|
63
|
+
</mat-option>
|
|
64
|
+
</mat-optgroup>
|
|
65
|
+
</ng-template>
|
|
66
|
+
</mat-select>
|
|
67
|
+
<mat-select *ngIf="!boundControl"
|
|
68
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
69
|
+
[attr.name]="controlName"
|
|
70
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
71
|
+
[id]="'control' + layoutNode?._id"
|
|
72
|
+
[multiple]="options?.multiple"
|
|
73
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
74
|
+
[required]="options?.required"
|
|
75
|
+
[style.width]="'100%'"
|
|
76
|
+
[value]="controlValue"
|
|
77
|
+
(blur)="options.showErrors = true"
|
|
78
|
+
(change)="updateValue($event)">
|
|
79
|
+
<ng-template ngFor let-selectItem [ngForOf]="selectList">
|
|
80
|
+
<mat-option *ngIf="!isArray(selectItem?.items)"
|
|
81
|
+
[attr.selected]="selectItem?.value === controlValue"
|
|
82
|
+
[value]="selectItem?.value">
|
|
83
|
+
<span [innerHTML]="selectItem?.name"></span>
|
|
84
|
+
</mat-option>
|
|
85
|
+
<mat-optgroup *ngIf="isArray(selectItem?.items)"
|
|
86
|
+
[label]="selectItem?.group">
|
|
87
|
+
<mat-option *ngFor="let subItem of selectItem.items"
|
|
88
|
+
[attr.selected]="subItem?.value === controlValue"
|
|
89
|
+
[value]="subItem?.value">
|
|
90
|
+
<span [innerHTML]="subItem?.name"></span>
|
|
91
|
+
</mat-option>
|
|
92
|
+
</mat-optgroup>
|
|
93
|
+
</ng-template>
|
|
94
|
+
</mat-select>
|
|
95
|
+
<span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"
|
|
96
|
+
[innerHTML]="options?.suffix || options?.fieldAddonRight"></span>
|
|
97
|
+
<mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"
|
|
98
|
+
align="end" [innerHTML]="options?.description"></mat-hint>
|
|
99
|
+
</mat-form-field>
|
|
100
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
101
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, isInline: true, styles: ["mat-error{font-size:75%;margin-top:-1rem;margin-bottom:.5rem}::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{width:initial}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }] }); }
|
|
102
|
+
}
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialSelectComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'material-select-widget', template: `
|
|
106
|
+
<mat-form-field
|
|
107
|
+
[appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'"
|
|
108
|
+
[class]="options?.htmlClass || ''"
|
|
109
|
+
[floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')"
|
|
110
|
+
[hideRequiredMarker]="options?.hideRequired ? 'true' : 'false'"
|
|
111
|
+
[style.width]="'100%'">
|
|
112
|
+
<mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>
|
|
113
|
+
<span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"
|
|
114
|
+
[innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>
|
|
115
|
+
<mat-select *ngIf="boundControl"
|
|
116
|
+
[formControl]="formControl"
|
|
117
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
118
|
+
[attr.name]="controlName"
|
|
119
|
+
[id]="'control' + layoutNode?._id"
|
|
120
|
+
[multiple]="options?.multiple"
|
|
121
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
122
|
+
[required]="options?.required"
|
|
123
|
+
[style.width]="'100%'"
|
|
124
|
+
(blur)="options.showErrors = true">
|
|
125
|
+
<ng-template ngFor let-selectItem [ngForOf]="selectList">
|
|
126
|
+
<mat-option *ngIf="!isArray(selectItem?.items)"
|
|
127
|
+
[value]="selectItem?.value">
|
|
128
|
+
<span [innerHTML]="selectItem?.name"></span>
|
|
129
|
+
</mat-option>
|
|
130
|
+
<mat-optgroup *ngIf="isArray(selectItem?.items)"
|
|
131
|
+
[label]="selectItem?.group">
|
|
132
|
+
<mat-option *ngFor="let subItem of selectItem.items"
|
|
133
|
+
[value]="subItem?.value">
|
|
134
|
+
<span [innerHTML]="subItem?.name"></span>
|
|
135
|
+
</mat-option>
|
|
136
|
+
</mat-optgroup>
|
|
137
|
+
</ng-template>
|
|
138
|
+
</mat-select>
|
|
139
|
+
<mat-select *ngIf="!boundControl"
|
|
140
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
141
|
+
[attr.name]="controlName"
|
|
142
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
143
|
+
[id]="'control' + layoutNode?._id"
|
|
144
|
+
[multiple]="options?.multiple"
|
|
145
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
146
|
+
[required]="options?.required"
|
|
147
|
+
[style.width]="'100%'"
|
|
148
|
+
[value]="controlValue"
|
|
149
|
+
(blur)="options.showErrors = true"
|
|
150
|
+
(change)="updateValue($event)">
|
|
151
|
+
<ng-template ngFor let-selectItem [ngForOf]="selectList">
|
|
152
|
+
<mat-option *ngIf="!isArray(selectItem?.items)"
|
|
153
|
+
[attr.selected]="selectItem?.value === controlValue"
|
|
154
|
+
[value]="selectItem?.value">
|
|
155
|
+
<span [innerHTML]="selectItem?.name"></span>
|
|
156
|
+
</mat-option>
|
|
157
|
+
<mat-optgroup *ngIf="isArray(selectItem?.items)"
|
|
158
|
+
[label]="selectItem?.group">
|
|
159
|
+
<mat-option *ngFor="let subItem of selectItem.items"
|
|
160
|
+
[attr.selected]="subItem?.value === controlValue"
|
|
161
|
+
[value]="subItem?.value">
|
|
162
|
+
<span [innerHTML]="subItem?.name"></span>
|
|
163
|
+
</mat-option>
|
|
164
|
+
</mat-optgroup>
|
|
165
|
+
</ng-template>
|
|
166
|
+
</mat-select>
|
|
167
|
+
<span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"
|
|
168
|
+
[innerHTML]="options?.suffix || options?.fieldAddonRight"></span>
|
|
169
|
+
<mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"
|
|
170
|
+
align="end" [innerHTML]="options?.description"></mat-hint>
|
|
171
|
+
</mat-form-field>
|
|
172
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
173
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, styles: ["mat-error{font-size:75%;margin-top:-1rem;margin-bottom:.5rem}::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{width:initial}\n"] }]
|
|
174
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
175
|
+
type: Inject,
|
|
176
|
+
args: [MAT_FORM_FIELD_DEFAULT_OPTIONS]
|
|
177
|
+
}, {
|
|
178
|
+
type: Optional
|
|
179
|
+
}] }, { type: i1.JsonSchemaFormService }], propDecorators: { layoutNode: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], layoutIndex: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], dataIndex: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}] } });
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1tYXRlcmlhbC9zcmMvbGliL3dpZGdldHMvbWF0ZXJpYWwtc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlFLE9BQU8sRUFBeUIsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQWdGbkYsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxZQUM2RCwwQkFBMEIsRUFDN0UsR0FBMEI7UUFEeUIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFBO1FBQzdFLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBWHBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQVFkLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNwRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzsrR0FqQ1UsdUJBQXVCLGtCQWN4Qiw4QkFBOEI7bUdBZDdCLHVCQUF1Qix3SkEzRXhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1REFvRTJDOzs0RkFPMUMsdUJBQXVCO2tCQTlFbkMsU0FBUzsrQkFFRSx3QkFBd0IsWUFDeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VEQW9FMkM7OzBCQXFCbEQsTUFBTTsyQkFBQyw4QkFBOEI7OzBCQUFHLFFBQVE7NkVBTDFDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSwgYnVpbGRUaXRsZU1hcCwgaXNBcnJheSB9IGZyb20gJ0BuZy1mb3Jtd29ya3MvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC1zZWxlY3Qtd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgIFthcHBlYXJhbmNlXT1cIm9wdGlvbnM/LmFwcGVhcmFuY2UgfHwgbWF0Rm9ybUZpZWxkRGVmYXVsdE9wdGlvbnM/LmFwcGVhcmFuY2UgfHwgJ2ZpbGwnXCJcclxuICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgIFtmbG9hdExhYmVsXT1cIm9wdGlvbnM/LmZsb2F0TGFiZWwgfHwgbWF0Rm9ybUZpZWxkRGVmYXVsdE9wdGlvbnM/LmZsb2F0TGFiZWwgfHwgKG9wdGlvbnM/Lm5vdGl0bGUgPyAnbmV2ZXInIDogJ2F1dG8nKVwiXHJcbiAgICAgIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwib3B0aW9ucz8uaGlkZVJlcXVpcmVkID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXHJcbiAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIj5cclxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cIiFvcHRpb25zPy5ub3RpdGxlXCI+e3tvcHRpb25zPy50aXRsZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxzcGFuIG1hdFByZWZpeCAqbmdJZj1cIm9wdGlvbnM/LnByZWZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uTGVmdFwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5wcmVmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvbkxlZnRcIj48L3NwYW4+XHJcbiAgICAgIDxtYXQtc2VsZWN0ICpuZ0lmPVwiYm91bmRDb250cm9sXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLm5hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWRcIlxyXG4gICAgICAgIFttdWx0aXBsZV09XCJvcHRpb25zPy5tdWx0aXBsZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIlxyXG4gICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXNlbGVjdEl0ZW0gW25nRm9yT2ZdPVwic2VsZWN0TGlzdFwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhaXNBcnJheShzZWxlY3RJdGVtPy5pdGVtcylcIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0SXRlbT8udmFsdWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJzZWxlY3RJdGVtPy5uYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRncm91cCAqbmdJZj1cImlzQXJyYXkoc2VsZWN0SXRlbT8uaXRlbXMpXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdEl0ZW0/Lmdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIHNlbGVjdEl0ZW0uaXRlbXNcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzdWJJdGVtPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwic3ViSXRlbT8ubmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LXNlbGVjdCAqbmdJZj1cIiFib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLm5hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWRcIlxyXG4gICAgICAgIFttdWx0aXBsZV09XCJvcHRpb25zPy5tdWx0aXBsZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIlxyXG4gICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtc2VsZWN0SXRlbSBbbmdGb3JPZl09XCJzZWxlY3RMaXN0XCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIiFpc0FycmF5KHNlbGVjdEl0ZW0/Lml0ZW1zKVwiXHJcbiAgICAgICAgICAgIFthdHRyLnNlbGVjdGVkXT1cInNlbGVjdEl0ZW0/LnZhbHVlID09PSBjb250cm9sVmFsdWVcIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0SXRlbT8udmFsdWVcIj5cclxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJzZWxlY3RJdGVtPy5uYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRncm91cCAqbmdJZj1cImlzQXJyYXkoc2VsZWN0SXRlbT8uaXRlbXMpXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdEl0ZW0/Lmdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIHNlbGVjdEl0ZW0uaXRlbXNcIlxyXG4gICAgICAgICAgICAgIFthdHRyLnNlbGVjdGVkXT1cInN1Ykl0ZW0/LnZhbHVlID09PSBjb250cm9sVmFsdWVcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzdWJJdGVtPy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwic3ViSXRlbT8ubmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8c3BhbiBtYXRTdWZmaXggKm5nSWY9XCJvcHRpb25zPy5zdWZmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvblJpZ2h0XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnN1ZmZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uUmlnaHRcIj48L3NwYW4+XHJcbiAgICAgIDxtYXQtaGludCAqbmdJZj1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uICYmICghb3B0aW9ucz8uc2hvd0Vycm9ycyB8fCAhb3B0aW9ucz8uZXJyb3JNZXNzYWdlKVwiXHJcbiAgICAgICAgYWxpZ249XCJlbmRcIiBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCI+PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxyXG4gICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgbWF0LWVycm9yIHsgZm9udC1zaXplOiA3NSU7IG1hcmdpbi10b3A6IC0xcmVtOyBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cclxuICAgIDo6bmctZGVlcCBqc29uLXNjaGVtYS1mb3JtIG1hdC1mb3JtLWZpZWxkIC5tYXQtbWRjLWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleFxyXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXggeyB3aWR0aDogaW5pdGlhbDsgfVxyXG4gIGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBjb250cm9sVmFsdWU6IGFueTtcclxuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcclxuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgc2VsZWN0TGlzdDogYW55W10gPSBbXTtcclxuICBpc0FycmF5ID0gaXNBcnJheTtcclxuICBASW5wdXQoKSBsYXlvdXROb2RlOiBhbnk7XHJcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGRhdGFJbmRleDogbnVtYmVyW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRk9STV9GSUVMRF9ERUZBVUxUX09QVElPTlMpIEBPcHRpb25hbCgpIHB1YmxpYyBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucyxcclxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5zZWxlY3RMaXN0ID0gYnVpbGRUaXRsZU1hcChcclxuICAgICAgdGhpcy5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMub3B0aW9ucy5lbnVtTmFtZXMsXHJcbiAgICAgIHRoaXMub3B0aW9ucy5lbnVtLCAhIXRoaXMub3B0aW9ucy5yZXF1aXJlZCwgISF0aGlzLm9wdGlvbnMuZmxhdExpc3RcclxuICAgICk7XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzLCAhdGhpcy5vcHRpb25zLnJlYWRvbmx5KTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLm5vdGl0bGUgJiYgIXRoaXMub3B0aW9ucy5kZXNjcmlwdGlvbiAmJiB0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmRlc2NyaXB0aW9uID0gdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoZXZlbnQpIHtcclxuICAgIHRoaXMub3B0aW9ucy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIGV2ZW50LnZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-formworks/core";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/forms";
|
|
6
|
+
import * as i4 from "@angular/material/form-field";
|
|
7
|
+
import * as i5 from "@angular/material/slider";
|
|
8
|
+
export class MaterialSliderComponent {
|
|
9
|
+
constructor(jsf) {
|
|
10
|
+
this.jsf = jsf;
|
|
11
|
+
this.controlDisabled = false;
|
|
12
|
+
this.boundControl = false;
|
|
13
|
+
this.allowNegative = true;
|
|
14
|
+
this.allowDecimal = true;
|
|
15
|
+
this.allowExponents = false;
|
|
16
|
+
this.lastValidNumber = '';
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.options = this.layoutNode.options || {};
|
|
20
|
+
this.jsf.initializeControl(this, !this.options.readonly);
|
|
21
|
+
}
|
|
22
|
+
updateValue(event) {
|
|
23
|
+
this.options.showErrors = true;
|
|
24
|
+
this.jsf.updateValue(this, event.value);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialSliderComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaterialSliderComponent, selector: "material-slider-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
28
|
+
<mat-slider discrete *ngIf="boundControl"
|
|
29
|
+
|
|
30
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
31
|
+
[id]="'control' + layoutNode?._id"
|
|
32
|
+
[max]="options?.maximum"
|
|
33
|
+
[min]="options?.minimum"
|
|
34
|
+
[step]="options?.multipleOf || options?.step || 'any'"
|
|
35
|
+
[style.width]="'100%'"
|
|
36
|
+
(blur)="options.showErrors = true">
|
|
37
|
+
<input matSliderThumb [formControl]="formControl" />
|
|
38
|
+
</mat-slider>
|
|
39
|
+
<mat-slider discrete *ngIf="!boundControl"
|
|
40
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
41
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
42
|
+
[id]="'control' + layoutNode?._id"
|
|
43
|
+
[max]="options?.maximum"
|
|
44
|
+
[min]="options?.minimum"
|
|
45
|
+
[step]="options?.multipleOf || options?.step || 'any'"
|
|
46
|
+
[style.width]="'100%'"
|
|
47
|
+
(blur)="options.showErrors = true" #ngSlider>
|
|
48
|
+
<input matSliderThumb [value]="controlValue"
|
|
49
|
+
(change)="updateValue({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value})"
|
|
50
|
+
#ngSliderThumb="matSliderThumb" />
|
|
51
|
+
</mat-slider>
|
|
52
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
53
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, isInline: true, styles: ["mat-error{font-size:75%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i5.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }] }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialSliderComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'material-slider-widget', template: `
|
|
58
|
+
<mat-slider discrete *ngIf="boundControl"
|
|
59
|
+
|
|
60
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
61
|
+
[id]="'control' + layoutNode?._id"
|
|
62
|
+
[max]="options?.maximum"
|
|
63
|
+
[min]="options?.minimum"
|
|
64
|
+
[step]="options?.multipleOf || options?.step || 'any'"
|
|
65
|
+
[style.width]="'100%'"
|
|
66
|
+
(blur)="options.showErrors = true">
|
|
67
|
+
<input matSliderThumb [formControl]="formControl" />
|
|
68
|
+
</mat-slider>
|
|
69
|
+
<mat-slider discrete *ngIf="!boundControl"
|
|
70
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
71
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
72
|
+
[id]="'control' + layoutNode?._id"
|
|
73
|
+
[max]="options?.maximum"
|
|
74
|
+
[min]="options?.minimum"
|
|
75
|
+
[step]="options?.multipleOf || options?.step || 'any'"
|
|
76
|
+
[style.width]="'100%'"
|
|
77
|
+
(blur)="options.showErrors = true" #ngSlider>
|
|
78
|
+
<input matSliderThumb [value]="controlValue"
|
|
79
|
+
(change)="updateValue({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value})"
|
|
80
|
+
#ngSliderThumb="matSliderThumb" />
|
|
81
|
+
</mat-slider>
|
|
82
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
83
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, styles: ["mat-error{font-size:75%}\n"] }]
|
|
84
|
+
}], ctorParameters: () => [{ type: i1.JsonSchemaFormService }], propDecorators: { layoutNode: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], layoutIndex: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], dataIndex: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1tYXRlcmlhbC9zcmMvbGliL3dpZGdldHMvbWF0ZXJpYWwtc2xpZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQW9DekQsTUFBTSxPQUFPLHVCQUF1QjtJQWVsQyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBWnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsRUFBRSxDQUFDO0lBT2pCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBM0JVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHdKQTdCeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VEQTBCMkM7OzRGQUcxQyx1QkFBdUI7a0JBaENuQyxTQUFTOytCQUVFLHdCQUF3QixZQUN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dURBMEIyQzswRkFjNUMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAbmctZm9ybXdvcmtzL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtc2xpZGVyLXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtc2xpZGVyIGRpc2NyZXRlICpuZ0lmPVwiYm91bmRDb250cm9sXCJcclxuICAgICAgXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcclxuICAgICAgW21heF09XCJvcHRpb25zPy5tYXhpbXVtXCJcclxuICAgICAgW21pbl09XCJvcHRpb25zPy5taW5pbXVtXCJcclxuICAgICAgW3N0ZXBdPVwib3B0aW9ucz8ubXVsdGlwbGVPZiB8fCBvcHRpb25zPy5zdGVwIHx8ICdhbnknXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIj5cclxuICAgICAgICA8aW5wdXQgbWF0U2xpZGVyVGh1bWIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgLz5cclxuICAgICAgPC9tYXQtc2xpZGVyPlxyXG4gICAgPG1hdC1zbGlkZXIgZGlzY3JldGUgKm5nSWY9XCIhYm91bmRDb250cm9sXCJcclxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWQgKyAnU3RhdHVzJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxyXG4gICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcclxuICAgICAgW21heF09XCJvcHRpb25zPy5tYXhpbXVtXCJcclxuICAgICAgW21pbl09XCJvcHRpb25zPy5taW5pbXVtXCJcclxuICAgICAgW3N0ZXBdPVwib3B0aW9ucz8ubXVsdGlwbGVPZiB8fCBvcHRpb25zPy5zdGVwIHx8ICdhbnknXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIiAjbmdTbGlkZXI+XHJcbiAgICAgICAgPGlucHV0IG1hdFNsaWRlclRodW1iIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIiBcclxuICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVZhbHVlKHtzb3VyY2U6IG5nU2xpZGVyVGh1bWIsIHBhcmVudDogbmdTbGlkZXIsIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlfSlcIlxyXG4gICAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIiAvPlxyXG4gICAgPC9tYXQtc2xpZGVyPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcclxuICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5gLFxyXG4gICAgc3R5bGVzOiBbYCBtYXQtZXJyb3IgeyBmb250LXNpemU6IDc1JTsgfSBgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2xpZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgY29udHJvbFZhbHVlOiBhbnk7XHJcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XHJcbiAgYm91bmRDb250cm9sID0gZmFsc2U7XHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGFsbG93TmVnYXRpdmUgPSB0cnVlO1xyXG4gIGFsbG93RGVjaW1hbCA9IHRydWU7XHJcbiAgYWxsb3dFeHBvbmVudHMgPSBmYWxzZTtcclxuICBsYXN0VmFsaWROdW1iZXIgPSAnJztcclxuICBASW5wdXQoKSBsYXlvdXROb2RlOiBhbnk7XHJcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGRhdGFJbmRleDogbnVtYmVyW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBqc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzLCAhdGhpcy5vcHRpb25zLnJlYWRvbmx5KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC52YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-formworks/core";
|
|
4
|
+
// TODO: Add this control
|
|
5
|
+
export class MaterialStepperComponent {
|
|
6
|
+
constructor(jsf) {
|
|
7
|
+
this.jsf = jsf;
|
|
8
|
+
this.controlDisabled = false;
|
|
9
|
+
this.boundControl = false;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.options = this.layoutNode.options || {};
|
|
13
|
+
this.jsf.initializeControl(this);
|
|
14
|
+
}
|
|
15
|
+
updateValue(event) {
|
|
16
|
+
this.jsf.updateValue(this, event.target.value);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialStepperComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaterialStepperComponent, selector: "material-stepper-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: ``, isInline: true }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialStepperComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
// tslint:disable-next-line:component-selector
|
|
25
|
+
selector: 'material-stepper-widget',
|
|
26
|
+
template: ``,
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [{ type: i1.JsonSchemaFormService }], propDecorators: { layoutNode: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], layoutIndex: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], dataIndex: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtc3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLXN0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFJekQseUJBQXlCO0FBT3pCLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQVJwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztJQVFqQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0F0QlUsd0JBQXdCO21HQUF4Qix3QkFBd0IseUpBRnpCLEVBQUU7OzRGQUVELHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxFQUFFO2lCQUNiOzBGQVFVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnQG5nLWZvcm13b3Jrcy9jb3JlJztcclxuXHJcbi8vIFRPRE86IEFkZCB0aGlzIGNvbnRyb2xcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ21hdGVyaWFsLXN0ZXBwZXItd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFN0ZXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBjb250cm9sVmFsdWU6IGFueTtcclxuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcclxuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55O1xyXG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXTtcclxuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZShldmVudCkge1xyXG4gICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-formworks/core";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/tabs";
|
|
6
|
+
export class MaterialTabsComponent {
|
|
7
|
+
constructor(jsf) {
|
|
8
|
+
this.jsf = jsf;
|
|
9
|
+
this.selectedItem = 0;
|
|
10
|
+
this.showAddTab = true;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.options = this.layoutNode.options || {};
|
|
14
|
+
this.itemCount = this.layoutNode.items.length - 1;
|
|
15
|
+
this.updateControl();
|
|
16
|
+
}
|
|
17
|
+
select(index) {
|
|
18
|
+
if (this.layoutNode.items[index].type === '$ref') {
|
|
19
|
+
this.jsf.addItem({
|
|
20
|
+
layoutNode: this.layoutNode.items[index],
|
|
21
|
+
layoutIndex: this.layoutIndex.concat(index),
|
|
22
|
+
dataIndex: this.dataIndex.concat(index)
|
|
23
|
+
});
|
|
24
|
+
this.updateControl();
|
|
25
|
+
}
|
|
26
|
+
this.selectedItem = index;
|
|
27
|
+
}
|
|
28
|
+
updateControl() {
|
|
29
|
+
this.itemCount = this.layoutNode.items.length - 1;
|
|
30
|
+
const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];
|
|
31
|
+
this.showAddTab = lastItem.type === '$ref' &&
|
|
32
|
+
this.itemCount < (lastItem.options.maxItems || 1000);
|
|
33
|
+
}
|
|
34
|
+
setTabTitle(item, index) {
|
|
35
|
+
return this.jsf.setArrayItemTitle(this, item, index);
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTabsComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaterialTabsComponent, selector: "material-tabs-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
39
|
+
<nav mat-tab-nav-bar [tabPanel]="tabPanel"
|
|
40
|
+
[attr.aria-label]="options?.label || options?.title || ''"
|
|
41
|
+
[style.width]="'100%'">
|
|
42
|
+
<a mat-tab-link *ngFor="let item of layoutNode?.items; let i = index"
|
|
43
|
+
[active]="selectedItem === i"
|
|
44
|
+
(click)="select(i)">
|
|
45
|
+
<span *ngIf="showAddTab || item.type !== '$ref'"
|
|
46
|
+
[innerHTML]="setTabTitle(item, i)"></span>
|
|
47
|
+
</a>
|
|
48
|
+
</nav>
|
|
49
|
+
<mat-tab-nav-panel #tabPanel>
|
|
50
|
+
<div *ngFor="let layoutItem of layoutNode?.items; let i = index"
|
|
51
|
+
[class]="options?.htmlClass || ''">
|
|
52
|
+
<select-framework-widget *ngIf="selectedItem === i"
|
|
53
|
+
[class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
|
|
54
|
+
[dataIndex]="layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex"
|
|
55
|
+
[layoutIndex]="(layoutIndex || []).concat(i)"
|
|
56
|
+
[layoutNode]="layoutItem"></select-framework-widget>
|
|
57
|
+
</div>
|
|
58
|
+
</mat-tab-nav-panel>
|
|
59
|
+
`, isInline: true, styles: ["a{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i3.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i1.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTabsComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'material-tabs-widget', template: `
|
|
64
|
+
<nav mat-tab-nav-bar [tabPanel]="tabPanel"
|
|
65
|
+
[attr.aria-label]="options?.label || options?.title || ''"
|
|
66
|
+
[style.width]="'100%'">
|
|
67
|
+
<a mat-tab-link *ngFor="let item of layoutNode?.items; let i = index"
|
|
68
|
+
[active]="selectedItem === i"
|
|
69
|
+
(click)="select(i)">
|
|
70
|
+
<span *ngIf="showAddTab || item.type !== '$ref'"
|
|
71
|
+
[innerHTML]="setTabTitle(item, i)"></span>
|
|
72
|
+
</a>
|
|
73
|
+
</nav>
|
|
74
|
+
<mat-tab-nav-panel #tabPanel>
|
|
75
|
+
<div *ngFor="let layoutItem of layoutNode?.items; let i = index"
|
|
76
|
+
[class]="options?.htmlClass || ''">
|
|
77
|
+
<select-framework-widget *ngIf="selectedItem === i"
|
|
78
|
+
[class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
|
|
79
|
+
[dataIndex]="layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex"
|
|
80
|
+
[layoutIndex]="(layoutIndex || []).concat(i)"
|
|
81
|
+
[layoutNode]="layoutItem"></select-framework-widget>
|
|
82
|
+
</div>
|
|
83
|
+
</mat-tab-nav-panel>
|
|
84
|
+
`, styles: ["a{cursor:pointer}\n"] }]
|
|
85
|
+
}], ctorParameters: () => [{ type: i1.JsonSchemaFormService }], propDecorators: { layoutNode: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], layoutIndex: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], dataIndex: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQThCekQsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBUHBDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7SUFPZCxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBeENVLHFCQUFxQjttR0FBckIscUJBQXFCLHNKQXhCdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCWDs7NEZBR1kscUJBQXFCO2tCQTNCakMsU0FBUzsrQkFFRSxzQkFBc0IsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCWDswRkFRVSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAbmctZm9ybXdvcmtzL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtdGFicy13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmF2IG1hdC10YWItbmF2LWJhciBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbnM/LmxhYmVsIHx8IG9wdGlvbnM/LnRpdGxlIHx8ICcnXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiPlxyXG4gICAgICAgIDxhIG1hdC10YWItbGluayAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYXlvdXROb2RlPy5pdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICBbYWN0aXZlXT1cInNlbGVjdGVkSXRlbSA9PT0gaVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGkpXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dBZGRUYWIgfHwgaXRlbS50eXBlICE9PSAnJHJlZidcIlxyXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNldFRhYlRpdGxlKGl0ZW0sIGkpXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgIDwvbmF2PlxyXG4gICAgPG1hdC10YWItbmF2LXBhbmVsICN0YWJQYW5lbD5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGF5b3V0SXRlbSBvZiBsYXlvdXROb2RlPy5pdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxyXG4gICAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNlbGVjdGVkSXRlbSA9PT0gaVwiXHJcbiAgICAgICAgICBbY2xhc3NdPVwiKG9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnKSArICcgJyArIChvcHRpb25zPy5hY3RpdmVDbGFzcyB8fCAnJykgKyAnICcgKyAob3B0aW9ucz8uc3R5bGU/LnNlbGVjdGVkIHx8ICcnKVwiXHJcbiAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dE5vZGU/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKGRhdGFJbmRleCB8fCBbXSkuY29uY2F0KGkpIDogZGF0YUluZGV4XCJcclxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXggfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJsYXlvdXRJdGVtXCI+PC9zZWxlY3QtZnJhbWV3b3JrLXdpZGdldD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC10YWItbmF2LXBhbmVsPlxyXG5gLFxyXG4gIHN0eWxlczogW2AgYSB7IGN1cnNvcjogcG9pbnRlcjsgfSBgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGl0ZW1Db3VudDogbnVtYmVyO1xyXG4gIHNlbGVjdGVkSXRlbSA9IDA7XHJcbiAgc2hvd0FkZFRhYiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55O1xyXG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXTtcclxuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5pdGVtQ291bnQgPSB0aGlzLmxheW91dE5vZGUuaXRlbXMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMudXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGluZGV4KSB7XHJcbiAgICBpZiAodGhpcy5sYXlvdXROb2RlLml0ZW1zW2luZGV4XS50eXBlID09PSAnJHJlZicpIHtcclxuICAgICAgdGhpcy5qc2YuYWRkSXRlbSh7XHJcbiAgICAgICAgbGF5b3V0Tm9kZTogdGhpcy5sYXlvdXROb2RlLml0ZW1zW2luZGV4XSxcclxuICAgICAgICBsYXlvdXRJbmRleDogdGhpcy5sYXlvdXRJbmRleC5jb25jYXQoaW5kZXgpLFxyXG4gICAgICAgIGRhdGFJbmRleDogdGhpcy5kYXRhSW5kZXguY29uY2F0KGluZGV4KVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVDb250cm9sKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29udHJvbCgpIHtcclxuICAgIHRoaXMuaXRlbUNvdW50ID0gdGhpcy5sYXlvdXROb2RlLml0ZW1zLmxlbmd0aCAtIDE7XHJcbiAgICBjb25zdCBsYXN0SXRlbSA9IHRoaXMubGF5b3V0Tm9kZS5pdGVtc1t0aGlzLmxheW91dE5vZGUuaXRlbXMubGVuZ3RoIC0gMV07XHJcbiAgICB0aGlzLnNob3dBZGRUYWIgPSBsYXN0SXRlbS50eXBlID09PSAnJHJlZicgJiZcclxuICAgICAgdGhpcy5pdGVtQ291bnQgPCAobGFzdEl0ZW0ub3B0aW9ucy5tYXhJdGVtcyB8fCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHNldFRhYlRpdGxlKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5qc2Yuc2V0QXJyYXlJdGVtVGl0bGUodGhpcywgaXRlbSwgaW5kZXgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
2
|
+
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ng-formworks/core";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "@angular/material/form-field";
|
|
8
|
+
import * as i5 from "@angular/material/input";
|
|
9
|
+
export class MaterialTextareaComponent {
|
|
10
|
+
constructor(matFormFieldDefaultOptions, jsf) {
|
|
11
|
+
this.matFormFieldDefaultOptions = matFormFieldDefaultOptions;
|
|
12
|
+
this.jsf = jsf;
|
|
13
|
+
this.controlDisabled = false;
|
|
14
|
+
this.boundControl = false;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.options = this.layoutNode.options || {};
|
|
18
|
+
this.jsf.initializeControl(this);
|
|
19
|
+
if (!this.options.notitle && !this.options.description && this.options.placeholder) {
|
|
20
|
+
this.options.description = this.options.placeholder;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
updateValue(event) {
|
|
24
|
+
this.jsf.updateValue(this, event.target.value);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTextareaComponent, deps: [{ token: MAT_FORM_FIELD_DEFAULT_OPTIONS, optional: true }, { token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MaterialTextareaComponent, selector: "material-textarea-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
28
|
+
<mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'"
|
|
29
|
+
[class]="options?.htmlClass || ''"
|
|
30
|
+
[floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')"
|
|
31
|
+
[hideRequiredMarker]="options?.hideRequired ? 'true' : 'false'"
|
|
32
|
+
[style.width]="'100%'">
|
|
33
|
+
<mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>
|
|
34
|
+
<span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"
|
|
35
|
+
[innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>
|
|
36
|
+
<textarea matInput *ngIf="boundControl"
|
|
37
|
+
[formControl]="formControl"
|
|
38
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
39
|
+
[attr.list]="'control' + layoutNode?._id + 'Autocomplete'"
|
|
40
|
+
[attr.maxlength]="options?.maxLength"
|
|
41
|
+
[attr.minlength]="options?.minLength"
|
|
42
|
+
[attr.pattern]="options?.pattern"
|
|
43
|
+
[required]="options?.required"
|
|
44
|
+
[id]="'control' + layoutNode?._id"
|
|
45
|
+
[name]="controlName"
|
|
46
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
47
|
+
[readonly]="options?.readonly ? 'readonly' : null"
|
|
48
|
+
[style.width]="'100%'"
|
|
49
|
+
(blur)="options.showErrors = true"></textarea>
|
|
50
|
+
<textarea matInput *ngIf="!boundControl"
|
|
51
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
52
|
+
[attr.list]="'control' + layoutNode?._id + 'Autocomplete'"
|
|
53
|
+
[attr.maxlength]="options?.maxLength"
|
|
54
|
+
[attr.minlength]="options?.minLength"
|
|
55
|
+
[attr.pattern]="options?.pattern"
|
|
56
|
+
[required]="options?.required"
|
|
57
|
+
[disabled]="controlDisabled"
|
|
58
|
+
[id]="'control' + layoutNode?._id"
|
|
59
|
+
[name]="controlName"
|
|
60
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
61
|
+
[readonly]="options?.readonly ? 'readonly' : null"
|
|
62
|
+
[style.width]="'100%'"
|
|
63
|
+
[value]="controlValue"
|
|
64
|
+
(input)="updateValue($event)"
|
|
65
|
+
(blur)="options.showErrors = true"></textarea>
|
|
66
|
+
<span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"
|
|
67
|
+
[innerHTML]="options?.suffix || options?.fieldAddonRight"></span>
|
|
68
|
+
<mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"
|
|
69
|
+
align="end" [innerHTML]="options?.description"></mat-hint>
|
|
70
|
+
</mat-form-field>
|
|
71
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
72
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, isInline: true, styles: ["mat-error{font-size:75%;margin-top:-1rem;margin-bottom:.5rem}::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{width:initial}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTextareaComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ selector: 'material-textarea-widget', template: `
|
|
77
|
+
<mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'"
|
|
78
|
+
[class]="options?.htmlClass || ''"
|
|
79
|
+
[floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')"
|
|
80
|
+
[hideRequiredMarker]="options?.hideRequired ? 'true' : 'false'"
|
|
81
|
+
[style.width]="'100%'">
|
|
82
|
+
<mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>
|
|
83
|
+
<span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"
|
|
84
|
+
[innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>
|
|
85
|
+
<textarea matInput *ngIf="boundControl"
|
|
86
|
+
[formControl]="formControl"
|
|
87
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
88
|
+
[attr.list]="'control' + layoutNode?._id + 'Autocomplete'"
|
|
89
|
+
[attr.maxlength]="options?.maxLength"
|
|
90
|
+
[attr.minlength]="options?.minLength"
|
|
91
|
+
[attr.pattern]="options?.pattern"
|
|
92
|
+
[required]="options?.required"
|
|
93
|
+
[id]="'control' + layoutNode?._id"
|
|
94
|
+
[name]="controlName"
|
|
95
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
96
|
+
[readonly]="options?.readonly ? 'readonly' : null"
|
|
97
|
+
[style.width]="'100%'"
|
|
98
|
+
(blur)="options.showErrors = true"></textarea>
|
|
99
|
+
<textarea matInput *ngIf="!boundControl"
|
|
100
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
101
|
+
[attr.list]="'control' + layoutNode?._id + 'Autocomplete'"
|
|
102
|
+
[attr.maxlength]="options?.maxLength"
|
|
103
|
+
[attr.minlength]="options?.minLength"
|
|
104
|
+
[attr.pattern]="options?.pattern"
|
|
105
|
+
[required]="options?.required"
|
|
106
|
+
[disabled]="controlDisabled"
|
|
107
|
+
[id]="'control' + layoutNode?._id"
|
|
108
|
+
[name]="controlName"
|
|
109
|
+
[placeholder]="options?.notitle ? options?.placeholder : options?.title"
|
|
110
|
+
[readonly]="options?.readonly ? 'readonly' : null"
|
|
111
|
+
[style.width]="'100%'"
|
|
112
|
+
[value]="controlValue"
|
|
113
|
+
(input)="updateValue($event)"
|
|
114
|
+
(blur)="options.showErrors = true"></textarea>
|
|
115
|
+
<span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"
|
|
116
|
+
[innerHTML]="options?.suffix || options?.fieldAddonRight"></span>
|
|
117
|
+
<mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"
|
|
118
|
+
align="end" [innerHTML]="options?.description"></mat-hint>
|
|
119
|
+
</mat-form-field>
|
|
120
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
121
|
+
[innerHTML]="options?.errorMessage"></mat-error>`, styles: ["mat-error{font-size:75%;margin-top:-1rem;margin-bottom:.5rem}::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{width:initial}\n"] }]
|
|
122
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
123
|
+
type: Inject,
|
|
124
|
+
args: [MAT_FORM_FIELD_DEFAULT_OPTIONS]
|
|
125
|
+
}, {
|
|
126
|
+
type: Optional
|
|
127
|
+
}] }, { type: i1.JsonSchemaFormService }], propDecorators: { layoutNode: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], layoutIndex: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], dataIndex: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}] } });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC10ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQTBEOUUsTUFBTSxPQUFPLHlCQUF5QjtJQVdwQyxZQUM2RCwwQkFBMEIsRUFDN0UsR0FBMEI7UUFEeUIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFBO1FBQzdFLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBVHBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBU2pCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBMUJVLHlCQUF5QixrQkFZMUIsOEJBQThCO21HQVo3Qix5QkFBeUIsMEpBcEQxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VEQTZDMkM7OzRGQU8xQyx5QkFBeUI7a0JBdkRyQyxTQUFTOytCQUVFLDBCQUEwQixZQUMxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VEQTZDMkM7OzBCQW1CbEQsTUFBTTsyQkFBQyw4QkFBOEI7OzBCQUFHLFFBQVE7NkVBTDFDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJ0BuZy1mb3Jtd29ya3MvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC10ZXh0YXJlYS13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwib3B0aW9ucz8uYXBwZWFyYW5jZSB8fCBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucz8uYXBwZWFyYW5jZSB8fCAnZmlsbCdcIlxyXG4gICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgW2Zsb2F0TGFiZWxdPVwib3B0aW9ucz8uZmxvYXRMYWJlbCB8fCBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucz8uZmxvYXRMYWJlbCB8fCAob3B0aW9ucz8ubm90aXRsZSA/ICduZXZlcicgOiAnYXV0bycpXCJcclxuICAgICAgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJvcHRpb25zPy5oaWRlUmVxdWlyZWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiPlxyXG4gICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiIW9wdGlvbnM/Lm5vdGl0bGVcIj57e29wdGlvbnM/LnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgICAgPHNwYW4gbWF0UHJlZml4ICpuZ0lmPVwib3B0aW9ucz8ucHJlZml4IHx8IG9wdGlvbnM/LmZpZWxkQWRkb25MZWZ0XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnByZWZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uTGVmdFwiPjwvc3Bhbj5cclxuICAgICAgPHRleHRhcmVhIG1hdElucHV0ICpuZ0lmPVwiYm91bmRDb250cm9sXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLmxpc3RdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgICAgKGJsdXIpPVwib3B0aW9ucy5zaG93RXJyb3JzID0gdHJ1ZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCAqbmdJZj1cIiFib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLmxpc3RdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbERpc2FibGVkXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXHJcbiAgICAgICAgKGlucHV0KT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBtYXRTdWZmaXggKm5nSWY9XCJvcHRpb25zPy5zdWZmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvblJpZ2h0XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnN1ZmZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uUmlnaHRcIj48L3NwYW4+XHJcbiAgICAgIDxtYXQtaGludCAqbmdJZj1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uICYmICghb3B0aW9ucz8uc2hvd0Vycm9ycyB8fCAhb3B0aW9ucz8uZXJyb3JNZXNzYWdlKVwiXHJcbiAgICAgICAgYWxpZ249XCJlbmRcIiBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCI+PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxyXG4gICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgbWF0LWVycm9yIHsgZm9udC1zaXplOiA3NSU7IG1hcmdpbi10b3A6IC0xcmVtOyBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cclxuICAgIDo6bmctZGVlcCBqc29uLXNjaGVtYS1mb3JtIG1hdC1mb3JtLWZpZWxkIC5tYXQtbWRjLWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleFxyXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXggeyB3aWR0aDogaW5pdGlhbDsgfVxyXG4gIGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xWYWx1ZTogYW55O1xyXG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICBASW5wdXQoKSBsYXlvdXROb2RlOiBhbnk7XHJcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xyXG4gIEBJbnB1dCgpIGRhdGFJbmRleDogbnVtYmVyW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRk9STV9GSUVMRF9ERUZBVUxUX09QVElPTlMpIEBPcHRpb25hbCgpIHB1YmxpYyBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucyxcclxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5ub3RpdGxlICYmICF0aGlzLm9wdGlvbnMuZGVzY3JpcHRpb24gJiYgdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5kZXNjcmlwdGlvbiA9IHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50KSB7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|