@ajsf/material 14.0.0 → 17.0.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/esm2022/lib/material-design-framework.component.mjs +102 -0
- package/{esm2020 → esm2022}/lib/material-design-framework.module.mjs +21 -21
- package/{esm2020 → esm2022}/lib/material-design.framework.mjs +4 -4
- package/esm2022/lib/widgets/flex-layout-root.component.mjs +98 -0
- package/esm2022/lib/widgets/flex-layout-section.component.mjs +357 -0
- package/{esm2020 → esm2022}/lib/widgets/material-add-reference.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/widgets/material-button-group.component.mjs +7 -7
- package/esm2022/lib/widgets/material-button.component.mjs +76 -0
- package/{esm2020 → esm2022}/lib/widgets/material-checkbox.component.mjs +7 -7
- package/esm2022/lib/widgets/material-checkboxes.component.mjs +129 -0
- package/{esm2020 → esm2022}/lib/widgets/material-chip-list.component.mjs +5 -5
- package/esm2022/lib/widgets/material-datepicker.component.mjs +141 -0
- package/{esm2020 → esm2022}/lib/widgets/material-file.component.mjs +5 -5
- package/esm2022/lib/widgets/material-input.component.mjs +149 -0
- package/esm2022/lib/widgets/material-number.component.mjs +145 -0
- package/{esm2020 → esm2022}/lib/widgets/material-one-of.component.mjs +5 -5
- 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 +77 -0
- package/{esm2020 → esm2022}/lib/widgets/material-stepper.component.mjs +5 -5
- package/esm2022/lib/widgets/material-tabs.component.mjs +96 -0
- package/esm2022/lib/widgets/material-textarea.component.mjs +134 -0
- package/{fesm2020 → fesm2022}/ajsf-material.mjs +204 -200
- package/fesm2022/ajsf-material.mjs.map +1 -0
- package/lib/material-design-framework.component.d.ts +1 -1
- package/lib/material-design-framework.module.d.ts +2 -2
- package/lib/widgets/flex-layout-root.component.d.ts +1 -1
- package/lib/widgets/flex-layout-section.component.d.ts +1 -1
- package/lib/widgets/material-add-reference.component.d.ts +1 -1
- package/lib/widgets/material-button-group.component.d.ts +1 -1
- package/lib/widgets/material-button.component.d.ts +1 -1
- package/lib/widgets/material-checkbox.component.d.ts +1 -1
- package/lib/widgets/material-checkboxes.component.d.ts +1 -1
- package/lib/widgets/material-chip-list.component.d.ts +1 -1
- package/lib/widgets/material-datepicker.component.d.ts +1 -1
- package/lib/widgets/material-file.component.d.ts +1 -1
- package/lib/widgets/material-input.component.d.ts +1 -1
- package/lib/widgets/material-number.component.d.ts +1 -1
- package/lib/widgets/material-one-of.component.d.ts +1 -1
- package/lib/widgets/material-radios.component.d.ts +1 -1
- package/lib/widgets/material-select.component.d.ts +1 -1
- package/lib/widgets/material-slider.component.d.ts +1 -1
- package/lib/widgets/material-stepper.component.d.ts +1 -1
- package/lib/widgets/material-tabs.component.d.ts +1 -1
- package/lib/widgets/material-textarea.component.d.ts +1 -1
- package/package.json +11 -17
- package/esm2020/lib/material-design-framework.component.mjs +0 -102
- package/esm2020/lib/widgets/flex-layout-root.component.mjs +0 -98
- package/esm2020/lib/widgets/flex-layout-section.component.mjs +0 -357
- package/esm2020/lib/widgets/material-button.component.mjs +0 -76
- package/esm2020/lib/widgets/material-checkboxes.component.mjs +0 -129
- package/esm2020/lib/widgets/material-datepicker.component.mjs +0 -141
- package/esm2020/lib/widgets/material-input.component.mjs +0 -149
- package/esm2020/lib/widgets/material-number.component.mjs +0 -145
- package/esm2020/lib/widgets/material-radios.component.mjs +0 -122
- package/esm2020/lib/widgets/material-select.component.mjs +0 -186
- package/esm2020/lib/widgets/material-slider.component.mjs +0 -83
- package/esm2020/lib/widgets/material-tabs.component.mjs +0 -86
- package/esm2020/lib/widgets/material-textarea.component.mjs +0 -134
- package/fesm2015/ajsf-material.mjs +0 -2332
- package/fesm2015/ajsf-material.mjs.map +0 -1
- package/fesm2020/ajsf-material.mjs.map +0 -1
- /package/{esm2020 → esm2022}/ajsf-material.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/widgets/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@ajsf/core";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "@angular/material/card";
|
|
6
|
-
import * as i4 from "@angular/material/expansion";
|
|
7
|
-
import * as i5 from "@angular/material/form-field";
|
|
8
|
-
import * as i6 from "./flex-layout-root.component";
|
|
9
|
-
export class FlexLayoutSectionComponent {
|
|
10
|
-
constructor(jsf) {
|
|
11
|
-
this.jsf = jsf;
|
|
12
|
-
this.controlDisabled = false;
|
|
13
|
-
this.boundControl = false;
|
|
14
|
-
this.expanded = true;
|
|
15
|
-
this.containerType = 'div';
|
|
16
|
-
}
|
|
17
|
-
get sectionTitle() {
|
|
18
|
-
return this.options.notitle ? null : this.jsf.setItemTitle(this);
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.jsf.initializeControl(this);
|
|
22
|
-
this.options = this.layoutNode.options || {};
|
|
23
|
-
this.expanded = typeof this.options.expanded === 'boolean' ?
|
|
24
|
-
this.options.expanded : !this.options.expandable;
|
|
25
|
-
switch (this.layoutNode.type) {
|
|
26
|
-
case 'section':
|
|
27
|
-
case 'array':
|
|
28
|
-
case 'fieldset':
|
|
29
|
-
case 'advancedfieldset':
|
|
30
|
-
case 'authfieldset':
|
|
31
|
-
case 'optionfieldset':
|
|
32
|
-
case 'selectfieldset':
|
|
33
|
-
this.containerType = 'fieldset';
|
|
34
|
-
break;
|
|
35
|
-
case 'card':
|
|
36
|
-
this.containerType = 'card';
|
|
37
|
-
break;
|
|
38
|
-
case 'expansion-panel':
|
|
39
|
-
this.containerType = 'expansion-panel';
|
|
40
|
-
break;
|
|
41
|
-
default: // 'div', 'flex', 'tab', 'conditional', 'actions'
|
|
42
|
-
this.containerType = 'div';
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
toggleExpanded() {
|
|
46
|
-
if (this.options.expandable) {
|
|
47
|
-
this.expanded = !this.expanded;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
fxAlign(position) {
|
|
51
|
-
const value = `${(this.options || {}).fxLayoutAlign || ''}`.trim().split(/\s+/)[position];
|
|
52
|
-
return FlexLayoutSectionComponent.ALIGN[value] || null;
|
|
53
|
-
}
|
|
54
|
-
getJustifyContent() {
|
|
55
|
-
return this.getFlexAttribute('justify-content') || this.fxAlign(0);
|
|
56
|
-
}
|
|
57
|
-
getAlignItems() {
|
|
58
|
-
return this.getFlexAttribute('align-items') || this.fxAlign(1);
|
|
59
|
-
}
|
|
60
|
-
// Set attributes for flexbox container
|
|
61
|
-
// (child attributes are set in flex-layout-root.component)
|
|
62
|
-
getFlexAttribute(attribute) {
|
|
63
|
-
const flexActive = this.layoutNode.type === 'flex' ||
|
|
64
|
-
!!this.options.displayFlex ||
|
|
65
|
-
this.options.display === 'flex';
|
|
66
|
-
// if (attribute !== 'flex' && !flexActive) { return null; }
|
|
67
|
-
switch (attribute) {
|
|
68
|
-
case 'is-flex':
|
|
69
|
-
return flexActive;
|
|
70
|
-
case 'display':
|
|
71
|
-
return flexActive ? 'flex' : 'initial';
|
|
72
|
-
case 'flex-direction':
|
|
73
|
-
case 'flex-wrap':
|
|
74
|
-
const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);
|
|
75
|
-
return (this.options['flex-flow'] || '').split(/\s+/)[index] ||
|
|
76
|
-
this.options[attribute] || ['column', 'nowrap'][index];
|
|
77
|
-
case 'justify-content':
|
|
78
|
-
case 'align-items':
|
|
79
|
-
case 'align-content':
|
|
80
|
-
return this.options[attribute];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// fxLayoutAlign="start center" used to come from @angular/flex-layout, which
|
|
85
|
-
// is deprecated and has no Angular 16+ release. These map the same option
|
|
86
|
-
// values onto justify-content and align-items, so schemas setting
|
|
87
|
-
// fxLayoutAlign or fxLayoutGap keep working unchanged. The existing
|
|
88
|
-
// [style.display], [style.flex-direction] and [style.flex-wrap] bindings
|
|
89
|
-
// already cover what fxLayout did.
|
|
90
|
-
FlexLayoutSectionComponent.ALIGN = {
|
|
91
|
-
start: 'flex-start', end: 'flex-end', center: 'center',
|
|
92
|
-
'space-between': 'space-between', 'space-around': 'space-around',
|
|
93
|
-
'space-evenly': 'space-evenly', stretch: 'stretch', baseline: 'baseline',
|
|
94
|
-
};
|
|
95
|
-
FlexLayoutSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FlexLayoutSectionComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
FlexLayoutSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FlexLayoutSectionComponent, selector: "flex-layout-section-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
97
|
-
<div *ngIf="containerType === 'div'"
|
|
98
|
-
[class]="options?.htmlClass || ''"
|
|
99
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
100
|
-
[class.expanded]="options?.expandable && expanded">
|
|
101
|
-
<label *ngIf="sectionTitle"
|
|
102
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
103
|
-
[innerHTML]="sectionTitle"
|
|
104
|
-
(click)="toggleExpanded()"></label>
|
|
105
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
106
|
-
[layout]="layoutNode.items"
|
|
107
|
-
[dataIndex]="dataIndex"
|
|
108
|
-
[layoutIndex]="layoutIndex"
|
|
109
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
110
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
111
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
112
|
-
[style.display]="getFlexAttribute('display')"
|
|
113
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
114
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
115
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
116
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
117
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
118
|
-
[style.gap]="options?.fxLayoutGap"
|
|
119
|
-
[style.justify-content]="getJustifyContent()"
|
|
120
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
121
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
122
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
<fieldset *ngIf="containerType === 'fieldset'"
|
|
126
|
-
[class]="options?.htmlClass || ''"
|
|
127
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
128
|
-
[class.expanded]="options?.expandable && expanded"
|
|
129
|
-
[disabled]="options?.readonly">
|
|
130
|
-
<legend *ngIf="sectionTitle"
|
|
131
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
132
|
-
[innerHTML]="sectionTitle"
|
|
133
|
-
(click)="toggleExpanded()"></legend>
|
|
134
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
135
|
-
[layout]="layoutNode.items"
|
|
136
|
-
[dataIndex]="dataIndex"
|
|
137
|
-
[layoutIndex]="layoutIndex"
|
|
138
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
139
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
140
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
141
|
-
[style.display]="getFlexAttribute('display')"
|
|
142
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
143
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
144
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
145
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
146
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
147
|
-
[style.gap]="options?.fxLayoutGap"
|
|
148
|
-
[style.justify-content]="getJustifyContent()"
|
|
149
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
150
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
151
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
152
|
-
</fieldset>
|
|
153
|
-
|
|
154
|
-
<mat-card *ngIf="containerType === 'card'"
|
|
155
|
-
[ngClass]="options?.htmlClass || ''"
|
|
156
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
157
|
-
[class.expanded]="options?.expandable && expanded">
|
|
158
|
-
<mat-card-header *ngIf="sectionTitle">
|
|
159
|
-
<legend
|
|
160
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
161
|
-
[innerHTML]="sectionTitle"
|
|
162
|
-
(click)="toggleExpanded()"></legend>
|
|
163
|
-
</mat-card-header>
|
|
164
|
-
<mat-card-content *ngIf="expanded">
|
|
165
|
-
<fieldset [disabled]="options?.readonly">
|
|
166
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
167
|
-
[layout]="layoutNode.items"
|
|
168
|
-
[dataIndex]="dataIndex"
|
|
169
|
-
[layoutIndex]="layoutIndex"
|
|
170
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
171
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
172
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
173
|
-
[style.display]="getFlexAttribute('display')"
|
|
174
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
175
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
176
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
177
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
178
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
179
|
-
[style.gap]="options?.fxLayoutGap"
|
|
180
|
-
[style.justify-content]="getJustifyContent()"
|
|
181
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
182
|
-
</fieldset>
|
|
183
|
-
</mat-card-content>
|
|
184
|
-
<mat-card-footer>
|
|
185
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
186
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
187
|
-
</mat-card-footer>
|
|
188
|
-
</mat-card>
|
|
189
|
-
|
|
190
|
-
<mat-expansion-panel *ngIf="containerType === 'expansion-panel'"
|
|
191
|
-
[expanded]="expanded"
|
|
192
|
-
[hideToggle]="!options?.expandable">
|
|
193
|
-
<mat-expansion-panel-header>
|
|
194
|
-
<mat-panel-title>
|
|
195
|
-
<legend *ngIf="sectionTitle"
|
|
196
|
-
[class]="options?.labelHtmlClass"
|
|
197
|
-
[innerHTML]="sectionTitle"
|
|
198
|
-
(click)="toggleExpanded()"></legend>
|
|
199
|
-
</mat-panel-title>
|
|
200
|
-
</mat-expansion-panel-header>
|
|
201
|
-
<fieldset [disabled]="options?.readonly">
|
|
202
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
203
|
-
[layout]="layoutNode.items"
|
|
204
|
-
[dataIndex]="dataIndex"
|
|
205
|
-
[layoutIndex]="layoutIndex"
|
|
206
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
207
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
208
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
209
|
-
[style.display]="getFlexAttribute('display')"
|
|
210
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
211
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
212
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
213
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
214
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
215
|
-
[style.gap]="options?.fxLayoutGap"
|
|
216
|
-
[style.justify-content]="getJustifyContent()"
|
|
217
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
218
|
-
</fieldset>
|
|
219
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
220
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
221
|
-
</mat-expansion-panel>`, isInline: true, styles: ["fieldset{border:0;margin:0;padding:0}.legend{font-weight:700}.expandable>.legend:before{content:\"\\25b6\";padding-right:.3em}.expanded>.legend:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i3.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.FlexLayoutRootComponent, selector: "flex-layout-root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isFlexItem"] }] });
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FlexLayoutSectionComponent, decorators: [{
|
|
223
|
-
type: Component,
|
|
224
|
-
args: [{ selector: 'flex-layout-section-widget', template: `
|
|
225
|
-
<div *ngIf="containerType === 'div'"
|
|
226
|
-
[class]="options?.htmlClass || ''"
|
|
227
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
228
|
-
[class.expanded]="options?.expandable && expanded">
|
|
229
|
-
<label *ngIf="sectionTitle"
|
|
230
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
231
|
-
[innerHTML]="sectionTitle"
|
|
232
|
-
(click)="toggleExpanded()"></label>
|
|
233
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
234
|
-
[layout]="layoutNode.items"
|
|
235
|
-
[dataIndex]="dataIndex"
|
|
236
|
-
[layoutIndex]="layoutIndex"
|
|
237
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
238
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
239
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
240
|
-
[style.display]="getFlexAttribute('display')"
|
|
241
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
242
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
243
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
244
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
245
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
246
|
-
[style.gap]="options?.fxLayoutGap"
|
|
247
|
-
[style.justify-content]="getJustifyContent()"
|
|
248
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
249
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
250
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
251
|
-
</div>
|
|
252
|
-
|
|
253
|
-
<fieldset *ngIf="containerType === 'fieldset'"
|
|
254
|
-
[class]="options?.htmlClass || ''"
|
|
255
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
256
|
-
[class.expanded]="options?.expandable && expanded"
|
|
257
|
-
[disabled]="options?.readonly">
|
|
258
|
-
<legend *ngIf="sectionTitle"
|
|
259
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
260
|
-
[innerHTML]="sectionTitle"
|
|
261
|
-
(click)="toggleExpanded()"></legend>
|
|
262
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
263
|
-
[layout]="layoutNode.items"
|
|
264
|
-
[dataIndex]="dataIndex"
|
|
265
|
-
[layoutIndex]="layoutIndex"
|
|
266
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
267
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
268
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
269
|
-
[style.display]="getFlexAttribute('display')"
|
|
270
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
271
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
272
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
273
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
274
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
275
|
-
[style.gap]="options?.fxLayoutGap"
|
|
276
|
-
[style.justify-content]="getJustifyContent()"
|
|
277
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
278
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
279
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
280
|
-
</fieldset>
|
|
281
|
-
|
|
282
|
-
<mat-card *ngIf="containerType === 'card'"
|
|
283
|
-
[ngClass]="options?.htmlClass || ''"
|
|
284
|
-
[class.expandable]="options?.expandable && !expanded"
|
|
285
|
-
[class.expanded]="options?.expandable && expanded">
|
|
286
|
-
<mat-card-header *ngIf="sectionTitle">
|
|
287
|
-
<legend
|
|
288
|
-
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
289
|
-
[innerHTML]="sectionTitle"
|
|
290
|
-
(click)="toggleExpanded()"></legend>
|
|
291
|
-
</mat-card-header>
|
|
292
|
-
<mat-card-content *ngIf="expanded">
|
|
293
|
-
<fieldset [disabled]="options?.readonly">
|
|
294
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
295
|
-
[layout]="layoutNode.items"
|
|
296
|
-
[dataIndex]="dataIndex"
|
|
297
|
-
[layoutIndex]="layoutIndex"
|
|
298
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
299
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
300
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
301
|
-
[style.display]="getFlexAttribute('display')"
|
|
302
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
303
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
304
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
305
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
306
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
307
|
-
[style.gap]="options?.fxLayoutGap"
|
|
308
|
-
[style.justify-content]="getJustifyContent()"
|
|
309
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
310
|
-
</fieldset>
|
|
311
|
-
</mat-card-content>
|
|
312
|
-
<mat-card-footer>
|
|
313
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
314
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
315
|
-
</mat-card-footer>
|
|
316
|
-
</mat-card>
|
|
317
|
-
|
|
318
|
-
<mat-expansion-panel *ngIf="containerType === 'expansion-panel'"
|
|
319
|
-
[expanded]="expanded"
|
|
320
|
-
[hideToggle]="!options?.expandable">
|
|
321
|
-
<mat-expansion-panel-header>
|
|
322
|
-
<mat-panel-title>
|
|
323
|
-
<legend *ngIf="sectionTitle"
|
|
324
|
-
[class]="options?.labelHtmlClass"
|
|
325
|
-
[innerHTML]="sectionTitle"
|
|
326
|
-
(click)="toggleExpanded()"></legend>
|
|
327
|
-
</mat-panel-title>
|
|
328
|
-
</mat-expansion-panel-header>
|
|
329
|
-
<fieldset [disabled]="options?.readonly">
|
|
330
|
-
<flex-layout-root-widget *ngIf="expanded"
|
|
331
|
-
[layout]="layoutNode.items"
|
|
332
|
-
[dataIndex]="dataIndex"
|
|
333
|
-
[layoutIndex]="layoutIndex"
|
|
334
|
-
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
335
|
-
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
336
|
-
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
337
|
-
[style.display]="getFlexAttribute('display')"
|
|
338
|
-
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
339
|
-
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
340
|
-
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
341
|
-
[style.align-items]="getFlexAttribute('align-items')"
|
|
342
|
-
[style.align-content]="getFlexAttribute('align-content')"
|
|
343
|
-
[style.gap]="options?.fxLayoutGap"
|
|
344
|
-
[style.justify-content]="getJustifyContent()"
|
|
345
|
-
[style.align-items]="getAlignItems()"></flex-layout-root-widget>
|
|
346
|
-
</fieldset>
|
|
347
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
348
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
349
|
-
</mat-expansion-panel>`, styles: ["fieldset{border:0;margin:0;padding:0}.legend{font-weight:700}.expandable>.legend:before{content:\"\\25b6\";padding-right:.3em}.expanded>.legend:before{content:\"\\25bc\";padding-right:.2em}\n"] }]
|
|
350
|
-
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
351
|
-
type: Input
|
|
352
|
-
}], layoutIndex: [{
|
|
353
|
-
type: Input
|
|
354
|
-
}], dataIndex: [{
|
|
355
|
-
type: Input
|
|
356
|
-
}] } });
|
|
357
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9mbGV4LWxheW91dC1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUEySXpELE1BQU0sT0FBTywwQkFBMEI7SUFhckMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQVZwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBT2xCLENBQUM7SUFFTCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDbkQsUUFBUSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUM1QixLQUFLLFNBQVMsQ0FBQztZQUFDLEtBQUssT0FBTyxDQUFDO1lBQUMsS0FBSyxVQUFVLENBQUM7WUFBQyxLQUFLLGtCQUFrQixDQUFDO1lBQ3ZFLEtBQUssY0FBYyxDQUFDO1lBQUMsS0FBSyxnQkFBZ0IsQ0FBQztZQUFDLEtBQUssZ0JBQWdCO2dCQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztnQkFDNUIsTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsU0FBUyxpREFBaUQ7Z0JBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBRTtJQUNsRSxDQUFDO0lBY08sT0FBTyxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUYsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsMkRBQTJEO0lBQzNELGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUM7UUFDbEMsNERBQTREO1FBQzVELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssU0FBUztnQkFDWixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLEtBQUssZ0JBQWdCLENBQUM7WUFBQyxLQUFLLFdBQVc7Z0JBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELEtBQUssaUJBQWlCLENBQUM7WUFBQyxLQUFLLGFBQWEsQ0FBQztZQUFDLEtBQUssZUFBZTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7QUE3Q0QsNkVBQTZFO0FBQzdFLDBFQUEwRTtBQUMxRSxrRUFBa0U7QUFDbEUsb0VBQW9FO0FBQ3BFLHlFQUF5RTtBQUN6RSxtQ0FBbUM7QUFDWCxnQ0FBSyxHQUFHO0lBQzlCLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUTtJQUN0RCxlQUFlLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjO0lBQ2hFLGNBQWMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVTtDQUN4RSxDQUFBO3VIQXhEUywwQkFBMEI7MkdBQTFCLDBCQUEwQiw0SkFySTNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsyQkE2SGU7MkZBUWQsMEJBQTBCO2tCQXhJdEMsU0FBUzsrQkFFRSw0QkFBNEIsWUFDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQTZIZTs0R0FpQmhCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAYWpzZi9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdmbGV4LWxheW91dC1zZWN0aW9uLXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdkaXYnXCJcbiAgICAgIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxuICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgZXhwYW5kZWRcIj5cbiAgICAgIDxsYWJlbCAqbmdJZj1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgIFtjbGFzc109XCInbGVnZW5kICcgKyAob3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPjwvbGFiZWw+XG4gICAgICA8ZmxleC1sYXlvdXQtcm9vdC13aWRnZXQgKm5nSWY9XCJleHBhbmRlZFwiXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgW2xheW91dEluZGV4XT1cImxheW91dEluZGV4XCJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LXJvd109XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAncm93J1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXG4gICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXG4gICAgICAgIFtzdHlsZS5nYXBdPVwib3B0aW9ucz8uZnhMYXlvdXRHYXBcIlxuICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cImdldEp1c3RpZnlDb250ZW50KClcIlxuICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0QWxpZ25JdGVtcygpXCI+PC9mbGV4LWxheW91dC1yb290LXdpZGdldD5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8uZXJyb3JNZXNzYWdlXCI+PC9tYXQtZXJyb3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZmllbGRzZXQgKm5nSWY9XCJjb250YWluZXJUeXBlID09PSAnZmllbGRzZXQnXCJcbiAgICAgIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxuICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgZXhwYW5kZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbnM/LnJlYWRvbmx5XCI+XG4gICAgICA8bGVnZW5kICpuZ0lmPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgW2NsYXNzXT1cIidsZWdlbmQgJyArIChvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJylcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sZWdlbmQ+XG4gICAgICA8ZmxleC1sYXlvdXQtcm9vdC13aWRnZXQgKm5nSWY9XCJleHBhbmRlZFwiXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgW2xheW91dEluZGV4XT1cImxheW91dEluZGV4XCJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LXJvd109XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAncm93J1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXG4gICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXG4gICAgICAgIFtzdHlsZS5nYXBdPVwib3B0aW9ucz8uZnhMYXlvdXRHYXBcIlxuICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cImdldEp1c3RpZnlDb250ZW50KClcIlxuICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0QWxpZ25JdGVtcygpXCI+PC9mbGV4LWxheW91dC1yb290LXdpZGdldD5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8uZXJyb3JNZXNzYWdlXCI+PC9tYXQtZXJyb3I+XG4gICAgPC9maWVsZHNldD5cblxuICAgIDxtYXQtY2FyZCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdjYXJkJ1wiXG4gICAgICBbbmdDbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxuICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgZXhwYW5kZWRcIj5cbiAgICAgIDxtYXQtY2FyZC1oZWFkZXIgKm5nSWY9XCJzZWN0aW9uVGl0bGVcIj5cbiAgICAgICAgPGxlZ2VuZFxuICAgICAgICAgIFtjbGFzc109XCInbGVnZW5kICcgKyAob3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj48L2xlZ2VuZD5cbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJleHBhbmRlZFwiPlxuICAgICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cIm9wdGlvbnM/LnJlYWRvbmx5XCI+XG4gICAgICAgICAgPGZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0ICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgW2xheW91dF09XCJsYXlvdXROb2RlLml0ZW1zXCJcbiAgICAgICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCJsYXlvdXRJbmRleFwiXG4gICAgICAgICAgICBbaXNGbGV4SXRlbV09XCJnZXRGbGV4QXR0cmlidXRlKCdpcy1mbGV4JylcIlxuICAgICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcbiAgICAgICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgICAgIFtzdHlsZS5mbGV4LXdyYXBdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC13cmFwJylcIlxuICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiXG4gICAgICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgICAgICBbc3R5bGUuYWxpZ24tY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1jb250ZW50JylcIlxuICAgICAgICAgICAgW3N0eWxlLmdhcF09XCJvcHRpb25zPy5meExheW91dEdhcFwiXG4gICAgICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cImdldEp1c3RpZnlDb250ZW50KClcIlxuICAgICAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEFsaWduSXRlbXMoKVwiPjwvZmxleC1sYXlvdXQtcm9vdC13aWRnZXQ+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1mb290ZXI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWNhcmQtZm9vdGVyPlxuICAgIDwvbWF0LWNhcmQ+XG5cbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdleHBhbnNpb24tcGFuZWwnXCJcbiAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICBbaGlkZVRvZ2dsZV09XCIhb3B0aW9ucz8uZXhwYW5kYWJsZVwiPlxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgIDxsZWdlbmQgKm5nSWY9XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sZWdlbmQ+XG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgIDxmaWVsZHNldCBbZGlzYWJsZWRdPVwib3B0aW9ucz8ucmVhZG9ubHlcIj5cbiAgICAgICAgPGZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0ICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgICAgW2RhdGFJbmRleF09XCJkYXRhSW5kZXhcIlxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCJsYXlvdXRJbmRleFwiXG4gICAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXG4gICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxuICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJylcIlxuICAgICAgICAgIFtzdHlsZS5mbGV4LXdyYXBdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC13cmFwJylcIlxuICAgICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICAgIFtzdHlsZS5hbGlnbi1pdGVtc109XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1pdGVtcycpXCJcbiAgICAgICAgICBbc3R5bGUuYWxpZ24tY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1jb250ZW50JylcIlxuICAgICAgICAgIFtzdHlsZS5nYXBdPVwib3B0aW9ucz8uZnhMYXlvdXRHYXBcIlxuICAgICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0SnVzdGlmeUNvbnRlbnQoKVwiXG4gICAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEFsaWduSXRlbXMoKVwiPjwvZmxleC1sYXlvdXQtcm9vdC13aWRnZXQ+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+YCxcbiAgc3R5bGVzOiBbYFxuICAgIGZpZWxkc2V0IHsgYm9yZGVyOiAwOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cbiAgICAubGVnZW5kIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAuZXhwYW5kYWJsZSA+IC5sZWdlbmQ6YmVmb3JlIHsgY29udGVudDogJ+KWtic7IHBhZGRpbmctcmlnaHQ6IC4zZW07IH1cbiAgICAuZXhwYW5kZWQgPiAubGVnZW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICfilrwnOyBwYWRkaW5nLXJpZ2h0OiAuMmVtOyB9XG4gIGBdLFxufSlcbmV4cG9ydCBjbGFzcyBGbGV4TGF5b3V0U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIGNvbnRyb2xWYWx1ZTogYW55O1xuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcbiAgYm91bmRDb250cm9sID0gZmFsc2U7XG4gIG9wdGlvbnM6IGFueTtcbiAgZXhwYW5kZWQgPSB0cnVlO1xuICBjb250YWluZXJUeXBlID0gJ2Rpdic7XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXQgc2VjdGlvblRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubm90aXRsZSA/IG51bGwgOiB0aGlzLmpzZi5zZXRJdGVtVGl0bGUodGhpcyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmV4cGFuZGVkID0gdHlwZW9mIHRoaXMub3B0aW9ucy5leHBhbmRlZCA9PT0gJ2Jvb2xlYW4nID9cbiAgICAgIHRoaXMub3B0aW9ucy5leHBhbmRlZCA6ICF0aGlzLm9wdGlvbnMuZXhwYW5kYWJsZTtcbiAgICBzd2l0Y2ggKHRoaXMubGF5b3V0Tm9kZS50eXBlKSB7XG4gICAgICBjYXNlICdzZWN0aW9uJzogY2FzZSAnYXJyYXknOiBjYXNlICdmaWVsZHNldCc6IGNhc2UgJ2FkdmFuY2VkZmllbGRzZXQnOlxuICAgICAgY2FzZSAnYXV0aGZpZWxkc2V0JzogY2FzZSAnb3B0aW9uZmllbGRzZXQnOiBjYXNlICdzZWxlY3RmaWVsZHNldCc6XG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdmaWVsZHNldCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FyZCc6XG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdjYXJkJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdleHBhbnNpb24tcGFuZWwnOlxuICAgICAgICB0aGlzLmNvbnRhaW5lclR5cGUgPSAnZXhwYW5zaW9uLXBhbmVsJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiAvLyAnZGl2JywgJ2ZsZXgnLCAndGFiJywgJ2NvbmRpdGlvbmFsJywgJ2FjdGlvbnMnXG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdkaXYnO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZXhwYW5kYWJsZSkgeyB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7IH1cbiAgfVxuXG4gIC8vIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiB1c2VkIHRvIGNvbWUgZnJvbSBAYW5ndWxhci9mbGV4LWxheW91dCwgd2hpY2hcbiAgLy8gaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIEFuZ3VsYXIgMTYrIHJlbGVhc2UuIFRoZXNlIG1hcCB0aGUgc2FtZSBvcHRpb25cbiAgLy8gdmFsdWVzIG9udG8ganVzdGlmeS1jb250ZW50IGFuZCBhbGlnbi1pdGVtcywgc28gc2NoZW1hcyBzZXR0aW5nXG4gIC8vIGZ4TGF5b3V0QWxpZ24gb3IgZnhMYXlvdXRHYXAga2VlcCB3b3JraW5nIHVuY2hhbmdlZC4gVGhlIGV4aXN0aW5nXG4gIC8vIFtzdHlsZS5kaXNwbGF5XSwgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXSBhbmQgW3N0eWxlLmZsZXgtd3JhcF0gYmluZGluZ3NcbiAgLy8gYWxyZWFkeSBjb3ZlciB3aGF0IGZ4TGF5b3V0IGRpZC5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQUxJR04gPSB7XG4gICAgc3RhcnQ6ICdmbGV4LXN0YXJ0JywgZW5kOiAnZmxleC1lbmQnLCBjZW50ZXI6ICdjZW50ZXInLFxuICAgICdzcGFjZS1iZXR3ZWVuJzogJ3NwYWNlLWJldHdlZW4nLCAnc3BhY2UtYXJvdW5kJzogJ3NwYWNlLWFyb3VuZCcsXG4gICAgJ3NwYWNlLWV2ZW5seSc6ICdzcGFjZS1ldmVubHknLCBzdHJldGNoOiAnc3RyZXRjaCcsIGJhc2VsaW5lOiAnYmFzZWxpbmUnLFxuICB9O1xuXG4gIHByaXZhdGUgZnhBbGlnbihwb3NpdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZSA9IGAkeyh0aGlzLm9wdGlvbnMgfHwge30pLmZ4TGF5b3V0QWxpZ24gfHwgJyd9YC50cmltKCkuc3BsaXQoL1xccysvKVtwb3NpdGlvbl07XG4gICAgcmV0dXJuIEZsZXhMYXlvdXRTZWN0aW9uQ29tcG9uZW50LkFMSUdOW3ZhbHVlXSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0SnVzdGlmeUNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKSB8fCB0aGlzLmZ4QWxpZ24oMCk7XG4gIH1cblxuICBnZXRBbGlnbkl0ZW1zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKSB8fCB0aGlzLmZ4QWxpZ24oMSk7XG4gIH1cblxuICAvLyBTZXQgYXR0cmlidXRlcyBmb3IgZmxleGJveCBjb250YWluZXJcbiAgLy8gKGNoaWxkIGF0dHJpYnV0ZXMgYXJlIHNldCBpbiBmbGV4LWxheW91dC1yb290LmNvbXBvbmVudClcbiAgZ2V0RmxleEF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGNvbnN0IGZsZXhBY3RpdmU6IGJvb2xlYW4gPVxuICAgICAgdGhpcy5sYXlvdXROb2RlLnR5cGUgPT09ICdmbGV4JyB8fFxuICAgICAgISF0aGlzLm9wdGlvbnMuZGlzcGxheUZsZXggfHxcbiAgICAgIHRoaXMub3B0aW9ucy5kaXNwbGF5ID09PSAnZmxleCc7XG4gICAgLy8gaWYgKGF0dHJpYnV0ZSAhPT0gJ2ZsZXgnICYmICFmbGV4QWN0aXZlKSB7IHJldHVybiBudWxsOyB9XG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcbiAgICAgIGNhc2UgJ2lzLWZsZXgnOlxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZTtcbiAgICAgIGNhc2UgJ2Rpc3BsYXknOlxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZSA/ICdmbGV4JyA6ICdpbml0aWFsJztcbiAgICAgIGNhc2UgJ2ZsZXgtZGlyZWN0aW9uJzogY2FzZSAnZmxleC13cmFwJzpcbiAgICAgICAgY29uc3QgaW5kZXggPSBbJ2ZsZXgtZGlyZWN0aW9uJywgJ2ZsZXgtd3JhcCddLmluZGV4T2YoYXR0cmlidXRlKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLm9wdGlvbnNbJ2ZsZXgtZmxvdyddIHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxuICAgICAgICAgIHRoaXMub3B0aW9uc1thdHRyaWJ1dGVdIHx8IFsnY29sdW1uJywgJ25vd3JhcCddW2luZGV4XTtcbiAgICAgIGNhc2UgJ2p1c3RpZnktY29udGVudCc6IGNhc2UgJ2FsaWduLWl0ZW1zJzogY2FzZSAnYWxpZ24tY29udGVudCc6XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbYXR0cmlidXRlXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { hasOwn } from '@ajsf/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ajsf/core";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/material/button";
|
|
7
|
-
import * as i4 from "@angular/material/icon";
|
|
8
|
-
export class MaterialButtonComponent {
|
|
9
|
-
constructor(jsf) {
|
|
10
|
-
this.jsf = jsf;
|
|
11
|
-
this.controlDisabled = false;
|
|
12
|
-
this.boundControl = false;
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
this.options = this.layoutNode.options || {};
|
|
16
|
-
this.jsf.initializeControl(this);
|
|
17
|
-
if (hasOwn(this.options, 'disabled')) {
|
|
18
|
-
this.controlDisabled = this.options.disabled;
|
|
19
|
-
}
|
|
20
|
-
else if (this.jsf.formOptions.disableInvalidSubmit) {
|
|
21
|
-
this.controlDisabled = !this.jsf.isValid;
|
|
22
|
-
this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
updateValue(event) {
|
|
26
|
-
if (typeof this.options.onClick === 'function') {
|
|
27
|
-
this.options.onClick(event);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.jsf.updateValue(this, event.target.value);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
MaterialButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialButtonComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
MaterialButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MaterialButtonComponent, selector: "material-button-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
36
|
-
<div class="button-row" [class]="options?.htmlClass || ''">
|
|
37
|
-
<button mat-raised-button
|
|
38
|
-
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
39
|
-
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
40
|
-
[color]="options?.color || 'primary'"
|
|
41
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
42
|
-
[id]="'control' + layoutNode?._id"
|
|
43
|
-
[name]="controlName"
|
|
44
|
-
[type]="layoutNode?.type"
|
|
45
|
-
[value]="controlValue"
|
|
46
|
-
(click)="updateValue($event)">
|
|
47
|
-
<mat-icon *ngIf="options?.icon" class="mat-24">{{options?.icon}}</mat-icon>
|
|
48
|
-
<span *ngIf="options?.title" [innerHTML]="options?.title"></span>
|
|
49
|
-
</button>
|
|
50
|
-
</div>`, isInline: true, styles: ["button{margin-top:10px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialButtonComponent, decorators: [{
|
|
52
|
-
type: Component,
|
|
53
|
-
args: [{ selector: 'material-button-widget', template: `
|
|
54
|
-
<div class="button-row" [class]="options?.htmlClass || ''">
|
|
55
|
-
<button mat-raised-button
|
|
56
|
-
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
57
|
-
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
58
|
-
[color]="options?.color || 'primary'"
|
|
59
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
60
|
-
[id]="'control' + layoutNode?._id"
|
|
61
|
-
[name]="controlName"
|
|
62
|
-
[type]="layoutNode?.type"
|
|
63
|
-
[value]="controlValue"
|
|
64
|
-
(click)="updateValue($event)">
|
|
65
|
-
<mat-icon *ngIf="options?.icon" class="mat-24">{{options?.icon}}</mat-icon>
|
|
66
|
-
<span *ngIf="options?.title" [innerHTML]="options?.title"></span>
|
|
67
|
-
</button>
|
|
68
|
-
</div>`, styles: ["button{margin-top:10px}\n"] }]
|
|
69
|
-
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], layoutIndex: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], dataIndex: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fqc2YtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUF5QixNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7OztBQXVCM0QsTUFBTSxPQUFPLHVCQUF1QjtJQVdsQyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBUnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBUWpCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDOUM7YUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFO1lBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7O29IQWhDVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3SkFsQnhCOzs7Ozs7Ozs7Ozs7Ozs7V0FlRDsyRkFHRSx1QkFBdUI7a0JBckJuQyxTQUFTOytCQUVFLHdCQUF3QixZQUN4Qjs7Ozs7Ozs7Ozs7Ozs7O1dBZUQ7NEdBVUEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSwgaGFzT3duIH0gZnJvbSAnQGFqc2YvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtYnV0dG9uLXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yb3dcIiBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCI+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIFthdHRyLnJlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZCArICdTdGF0dXMnXCJcbiAgICAgICAgW2NvbG9yXT1cIm9wdGlvbnM/LmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlPy50eXBlXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnM/Lmljb25cIiBjbGFzcz1cIm1hdC0yNFwiPnt7b3B0aW9ucz8uaWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5gLFxuICAgIHN0eWxlczogW2AgYnV0dG9uIHsgbWFyZ2luLXRvcDogMTBweDsgfSBgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICBjb250cm9sVmFsdWU6IGFueTtcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xuICBvcHRpb25zOiBhbnk7XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcbiAgICBpZiAoaGFzT3duKHRoaXMub3B0aW9ucywgJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuY29udHJvbERpc2FibGVkID0gdGhpcy5vcHRpb25zLmRpc2FibGVkO1xuICAgIH0gZWxzZSBpZiAodGhpcy5qc2YuZm9ybU9wdGlvbnMuZGlzYWJsZUludmFsaWRTdWJtaXQpIHtcbiAgICAgIHRoaXMuY29udHJvbERpc2FibGVkID0gIXRoaXMuanNmLmlzVmFsaWQ7XG4gICAgICB0aGlzLmpzZi5pc1ZhbGlkQ2hhbmdlcy5zdWJzY3JpYmUoaXNWYWxpZCA9PiB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICFpc1ZhbGlkKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVWYWx1ZShldmVudCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5vbkNsaWNrKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { buildTitleMap } from '@ajsf/core';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ajsf/core";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/forms";
|
|
7
|
-
import * as i4 from "@angular/material/checkbox";
|
|
8
|
-
import * as i5 from "@angular/material/form-field";
|
|
9
|
-
// TODO: Change this to use a Selection List instead?
|
|
10
|
-
// https://material.angular.io/components/list/overview
|
|
11
|
-
export class MaterialCheckboxesComponent {
|
|
12
|
-
constructor(jsf) {
|
|
13
|
-
this.jsf = jsf;
|
|
14
|
-
this.controlDisabled = false;
|
|
15
|
-
this.boundControl = false;
|
|
16
|
-
this.horizontalList = false;
|
|
17
|
-
this.checkboxList = [];
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.options = this.layoutNode.options || {};
|
|
21
|
-
this.horizontalList = this.layoutNode.type === 'checkboxes-inline' ||
|
|
22
|
-
this.layoutNode.type === 'checkboxbuttons';
|
|
23
|
-
this.jsf.initializeControl(this);
|
|
24
|
-
this.checkboxList = buildTitleMap(this.options.titleMap || this.options.enumNames, this.options.enum, true);
|
|
25
|
-
if (this.boundControl) {
|
|
26
|
-
const formArray = this.jsf.getFormControl(this);
|
|
27
|
-
for (const checkboxItem of this.checkboxList) {
|
|
28
|
-
checkboxItem.checked = formArray.value.includes(checkboxItem.value);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
get allChecked() {
|
|
33
|
-
return this.checkboxList.filter(t => t.checked).length === this.checkboxList.length;
|
|
34
|
-
}
|
|
35
|
-
get someChecked() {
|
|
36
|
-
const checkedItems = this.checkboxList.filter(t => t.checked).length;
|
|
37
|
-
return checkedItems > 0 && checkedItems < this.checkboxList.length;
|
|
38
|
-
}
|
|
39
|
-
updateValue() {
|
|
40
|
-
this.options.showErrors = true;
|
|
41
|
-
if (this.boundControl) {
|
|
42
|
-
this.jsf.updateArrayCheckboxList(this, this.checkboxList);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
updateAllValues(event) {
|
|
46
|
-
this.options.showErrors = true;
|
|
47
|
-
this.checkboxList.forEach(t => t.checked = event.checked);
|
|
48
|
-
this.updateValue();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
MaterialCheckboxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialCheckboxesComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
MaterialCheckboxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MaterialCheckboxesComponent, selector: "material-checkboxes-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
53
|
-
<div>
|
|
54
|
-
<mat-checkbox type="checkbox"
|
|
55
|
-
[checked]="allChecked"
|
|
56
|
-
[color]="options?.color || 'primary'"
|
|
57
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
58
|
-
[indeterminate]="someChecked"
|
|
59
|
-
[name]="options?.name"
|
|
60
|
-
(blur)="options.showErrors = true"
|
|
61
|
-
(change)="updateAllValues($event)">
|
|
62
|
-
<span class="checkbox-name" [innerHTML]="options?.name"></span>
|
|
63
|
-
</mat-checkbox>
|
|
64
|
-
<label *ngIf="options?.title"
|
|
65
|
-
class="title"
|
|
66
|
-
[class]="options?.labelHtmlClass || ''"
|
|
67
|
-
[style.display]="options?.notitle ? 'none' : ''"
|
|
68
|
-
[innerHTML]="options?.title"></label>
|
|
69
|
-
<ul class="checkbox-list" [class.horizontal-list]="horizontalList">
|
|
70
|
-
<li *ngFor="let checkboxItem of checkboxList"
|
|
71
|
-
[class]="options?.htmlClass || ''">
|
|
72
|
-
<mat-checkbox type="checkbox"
|
|
73
|
-
[(ngModel)]="checkboxItem.checked"
|
|
74
|
-
[color]="options?.color || 'primary'"
|
|
75
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
76
|
-
[name]="checkboxItem?.name"
|
|
77
|
-
(blur)="options.showErrors = true"
|
|
78
|
-
(change)="updateValue()">
|
|
79
|
-
<span class="checkbox-name" [innerHTML]="checkboxItem?.name"></span>
|
|
80
|
-
</mat-checkbox>
|
|
81
|
-
</li>
|
|
82
|
-
</ul>
|
|
83
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
84
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
85
|
-
</div>`, isInline: true, styles: [".title{font-weight:700}.checkbox-list{list-style-type:none}.horizontal-list>li{display:inline-block;margin-right:10px;zoom:1}.checkbox-name{white-space:nowrap}mat-error{font-size:75%}\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }] });
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialCheckboxesComponent, decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{ selector: 'material-checkboxes-widget', template: `
|
|
89
|
-
<div>
|
|
90
|
-
<mat-checkbox type="checkbox"
|
|
91
|
-
[checked]="allChecked"
|
|
92
|
-
[color]="options?.color || 'primary'"
|
|
93
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
94
|
-
[indeterminate]="someChecked"
|
|
95
|
-
[name]="options?.name"
|
|
96
|
-
(blur)="options.showErrors = true"
|
|
97
|
-
(change)="updateAllValues($event)">
|
|
98
|
-
<span class="checkbox-name" [innerHTML]="options?.name"></span>
|
|
99
|
-
</mat-checkbox>
|
|
100
|
-
<label *ngIf="options?.title"
|
|
101
|
-
class="title"
|
|
102
|
-
[class]="options?.labelHtmlClass || ''"
|
|
103
|
-
[style.display]="options?.notitle ? 'none' : ''"
|
|
104
|
-
[innerHTML]="options?.title"></label>
|
|
105
|
-
<ul class="checkbox-list" [class.horizontal-list]="horizontalList">
|
|
106
|
-
<li *ngFor="let checkboxItem of checkboxList"
|
|
107
|
-
[class]="options?.htmlClass || ''">
|
|
108
|
-
<mat-checkbox type="checkbox"
|
|
109
|
-
[(ngModel)]="checkboxItem.checked"
|
|
110
|
-
[color]="options?.color || 'primary'"
|
|
111
|
-
[disabled]="controlDisabled || options?.readonly"
|
|
112
|
-
[name]="checkboxItem?.name"
|
|
113
|
-
(blur)="options.showErrors = true"
|
|
114
|
-
(change)="updateValue()">
|
|
115
|
-
<span class="checkbox-name" [innerHTML]="checkboxItem?.name"></span>
|
|
116
|
-
</mat-checkbox>
|
|
117
|
-
</li>
|
|
118
|
-
</ul>
|
|
119
|
-
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
120
|
-
[innerHTML]="options?.errorMessage"></mat-error>
|
|
121
|
-
</div>`, styles: [".title{font-weight:700}.checkbox-list{list-style-type:none}.horizontal-list>li{display:inline-block;margin-right:10px;zoom:1}.checkbox-name{white-space:nowrap}mat-error{font-size:75%}\n"] }]
|
|
122
|
-
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], layoutIndex: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], dataIndex: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtY2hlY2tib3hlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC1jaGVja2JveGVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBR3pELHFEQUFxRDtBQUNyRCx1REFBdUQ7QUErQ3ZELE1BQU0sT0FBTywyQkFBMkI7SUFjdEMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQVhwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixpQkFBWSxHQUFtQixFQUFFLENBQUM7SUFPOUIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLG1CQUFtQjtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQztRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQ3pFLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUM1QyxZQUFZLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyRTtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckUsT0FBTyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzt3SEF0RFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNEpBMUM1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBaUNEOzJGQVNFLDJCQUEyQjtrQkE3Q3ZDLFNBQVM7K0JBRUUsNEJBQTRCLFlBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQ0Q7NEdBbUJBLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgYnVpbGRUaXRsZU1hcCB9IGZyb20gJ0BhanNmL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UsIFRpdGxlTWFwSXRlbSB9IGZyb20gJ0BhanNmL2NvcmUnO1xuXG4vLyBUT0RPOiBDaGFuZ2UgdGhpcyB0byB1c2UgYSBTZWxlY3Rpb24gTGlzdCBpbnN0ZWFkP1xuLy8gaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2NvbXBvbmVudHMvbGlzdC9vdmVydmlld1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ21hdGVyaWFsLWNoZWNrYm94ZXMtd2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPG1hdC1jaGVja2JveCB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbY2hlY2tlZF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgW2NvbG9yXT1cIm9wdGlvbnM/LmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzb21lQ2hlY2tlZFwiXG4gICAgICAgIFtuYW1lXT1cIm9wdGlvbnM/Lm5hbWVcIlxuICAgICAgICAoYmx1cik9XCJvcHRpb25zLnNob3dFcnJvcnMgPSB0cnVlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVBbGxWYWx1ZXMoJGV2ZW50KVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LW5hbWVcIiBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/Lm5hbWVcIj48L3NwYW4+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgIDxsYWJlbCAqbmdJZj1cIm9wdGlvbnM/LnRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJ0aXRsZVwiXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyAnbm9uZScgOiAnJ1wiXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L2xhYmVsPlxuICAgICAgPHVsIGNsYXNzPVwiY2hlY2tib3gtbGlzdFwiIFtjbGFzcy5ob3Jpem9udGFsLWxpc3RdPVwiaG9yaXpvbnRhbExpc3RcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBjaGVja2JveEl0ZW0gb2YgY2hlY2tib3hMaXN0XCJcbiAgICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja2JveEl0ZW0uY2hlY2tlZFwiXG4gICAgICAgICAgICBbY29sb3JdPVwib3B0aW9ucz8uY29sb3IgfHwgJ3ByaW1hcnknXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxuICAgICAgICAgICAgW25hbWVdPVwiY2hlY2tib3hJdGVtPy5uYW1lXCJcbiAgICAgICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LW5hbWVcIiBbaW5uZXJIVE1MXT1cImNoZWNrYm94SXRlbT8ubmFtZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPlxuICAgIDwvZGl2PmAsXG4gIHN0eWxlczogW2BcbiAgICAudGl0bGUgeyBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5jaGVja2JveC1saXN0IHsgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG4gICAgLmhvcml6b250YWwtbGlzdCA+IGxpIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDEwcHg7IHpvb206IDE7IH1cbiAgICAuY2hlY2tib3gtbmFtZSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICBtYXQtZXJyb3IgeyBmb250LXNpemU6IDc1JTsgfVxuICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxDaGVja2JveGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgY29udHJvbE5hbWU6IHN0cmluZztcbiAgY29udHJvbFZhbHVlOiBhbnk7XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcbiAgb3B0aW9uczogYW55O1xuICBob3Jpem9udGFsTGlzdCA9IGZhbHNlO1xuICBmb3JtQXJyYXk6IEFic3RyYWN0Q29udHJvbDtcbiAgY2hlY2tib3hMaXN0OiBUaXRsZU1hcEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBsYXlvdXROb2RlOiBhbnk7XG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXTtcbiAgQElucHV0KCkgZGF0YUluZGV4OiBudW1iZXJbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGpzZjogSnNvblNjaGVtYUZvcm1TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlLm9wdGlvbnMgfHwge307XG4gICAgdGhpcy5ob3Jpem9udGFsTGlzdCA9IHRoaXMubGF5b3V0Tm9kZS50eXBlID09PSAnY2hlY2tib3hlcy1pbmxpbmUnIHx8XG4gICAgICB0aGlzLmxheW91dE5vZGUudHlwZSA9PT0gJ2NoZWNrYm94YnV0dG9ucyc7XG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XG4gICAgdGhpcy5jaGVja2JveExpc3QgPSBidWlsZFRpdGxlTWFwKFxuICAgICAgdGhpcy5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMub3B0aW9ucy5lbnVtTmFtZXMsIHRoaXMub3B0aW9ucy5lbnVtLCB0cnVlXG4gICAgKTtcbiAgICBpZiAodGhpcy5ib3VuZENvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuanNmLmdldEZvcm1Db250cm9sKHRoaXMpO1xuICAgICAgZm9yIChjb25zdCBjaGVja2JveEl0ZW0gb2YgdGhpcy5jaGVja2JveExpc3QpIHtcbiAgICAgICAgY2hlY2tib3hJdGVtLmNoZWNrZWQgPSBmb3JtQXJyYXkudmFsdWUuaW5jbHVkZXMoY2hlY2tib3hJdGVtLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgYWxsQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2JveExpc3QuZmlsdGVyKHQgPT4gdC5jaGVja2VkKS5sZW5ndGggPT09IHRoaXMuY2hlY2tib3hMaXN0Lmxlbmd0aDtcbiAgfVxuXG4gIGdldCBzb21lQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja2VkSXRlbXMgPSB0aGlzLmNoZWNrYm94TGlzdC5maWx0ZXIodCA9PiB0LmNoZWNrZWQpLmxlbmd0aDtcbiAgICByZXR1cm4gY2hlY2tlZEl0ZW1zID4gMCAmJiBjaGVja2VkSXRlbXMgPCB0aGlzLmNoZWNrYm94TGlzdC5sZW5ndGg7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSgpIHtcbiAgICB0aGlzLm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWU7XG4gICAgaWYgKHRoaXMuYm91bmRDb250cm9sKSB7XG4gICAgICB0aGlzLmpzZi51cGRhdGVBcnJheUNoZWNrYm94TGlzdCh0aGlzLCB0aGlzLmNoZWNrYm94TGlzdCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQWxsVmFsdWVzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWU7XG4gICAgdGhpcy5jaGVja2JveExpc3QuZm9yRWFjaCh0ID0+IHQuY2hlY2tlZCA9IGV2ZW50LmNoZWNrZWQpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgfVxufVxuIl19
|