@ajsf/material 0.5.1 → 0.8.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/{esm2015/ajsf-material.js → esm2020/ajsf-material.mjs} +0 -0
- package/{esm2015/lib/angular-flex-monkey-patch.js → esm2020/lib/angular-flex-monkey-patch.mjs} +0 -0
- package/esm2020/lib/material-design-framework.component.mjs +102 -0
- package/esm2020/lib/material-design-framework.module.mjs +119 -0
- package/esm2020/lib/material-design.framework.mjs +57 -0
- package/esm2020/lib/widgets/flex-layout-root.component.mjs +76 -0
- package/esm2020/lib/widgets/flex-layout-section.component.mjs +349 -0
- package/esm2020/lib/widgets/material-add-reference.component.mjs +66 -0
- package/esm2020/lib/widgets/material-button-group.component.mjs +90 -0
- package/esm2020/lib/widgets/material-button.component.mjs +76 -0
- package/esm2020/lib/widgets/material-checkbox.component.mjs +166 -0
- package/esm2020/lib/widgets/material-checkboxes.component.mjs +129 -0
- package/esm2020/lib/widgets/material-chip-list.component.mjs +35 -0
- package/{esm2015/lib/widgets/material-datepicker.component.js → esm2020/lib/widgets/material-datepicker.component.mjs} +75 -24
- package/esm2020/lib/widgets/material-file.component.mjs +35 -0
- package/esm2020/lib/widgets/material-input.component.mjs +149 -0
- package/esm2020/lib/widgets/material-number.component.mjs +145 -0
- package/esm2020/lib/widgets/material-one-of.component.mjs +35 -0
- package/esm2020/lib/widgets/material-radios.component.mjs +122 -0
- package/esm2020/lib/widgets/material-select.component.mjs +186 -0
- package/esm2020/lib/widgets/material-slider.component.mjs +83 -0
- package/esm2020/lib/widgets/material-stepper.component.mjs +35 -0
- package/esm2020/lib/widgets/material-tabs.component.mjs +86 -0
- package/esm2020/lib/widgets/material-textarea.component.mjs +134 -0
- package/{esm2015/lib/widgets/public_api.js → esm2020/lib/widgets/public_api.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/ajsf-material.mjs +2320 -0
- package/fesm2015/ajsf-material.mjs.map +1 -0
- package/fesm2020/ajsf-material.mjs +2313 -0
- package/fesm2020/ajsf-material.mjs.map +1 -0
- package/{ajsf-material.d.ts → index.d.ts} +1 -0
- package/lib/material-design-framework.component.d.ts +3 -0
- package/lib/material-design-framework.module.d.ts +51 -2
- package/lib/material-design.framework.d.ts +3 -0
- package/lib/widgets/flex-layout-root.component.d.ts +3 -0
- package/lib/widgets/flex-layout-section.component.d.ts +3 -0
- package/lib/widgets/material-add-reference.component.d.ts +3 -0
- package/lib/widgets/material-button-group.component.d.ts +3 -0
- package/lib/widgets/material-button.component.d.ts +3 -0
- package/lib/widgets/material-checkbox.component.d.ts +3 -0
- package/lib/widgets/material-checkboxes.component.d.ts +3 -0
- package/lib/widgets/material-chip-list.component.d.ts +3 -0
- package/lib/widgets/material-datepicker.component.d.ts +3 -0
- package/lib/widgets/material-file.component.d.ts +3 -0
- package/lib/widgets/material-input.component.d.ts +3 -0
- package/lib/widgets/material-number.component.d.ts +3 -0
- package/lib/widgets/material-one-of.component.d.ts +3 -0
- package/lib/widgets/material-radios.component.d.ts +3 -0
- package/lib/widgets/material-select.component.d.ts +3 -0
- package/lib/widgets/material-slider.component.d.ts +3 -0
- package/lib/widgets/material-stepper.component.d.ts +3 -0
- package/lib/widgets/material-tabs.component.d.ts +3 -0
- package/lib/widgets/material-textarea.component.d.ts +3 -0
- package/package.json +27 -15
- package/ajsf-material.metadata.json +0 -1
- package/bundles/ajsf-material.umd.js +0 -1422
- package/bundles/ajsf-material.umd.js.map +0 -1
- package/esm2015/lib/material-design-framework.component.js +0 -101
- package/esm2015/lib/material-design-framework.module.js +0 -80
- package/esm2015/lib/material-design.framework.js +0 -54
- package/esm2015/lib/widgets/flex-layout-root.component.js +0 -55
- package/esm2015/lib/widgets/flex-layout-section.component.js +0 -221
- package/esm2015/lib/widgets/material-add-reference.component.js +0 -53
- package/esm2015/lib/widgets/material-button-group.component.js +0 -63
- package/esm2015/lib/widgets/material-button.component.js +0 -60
- package/esm2015/lib/widgets/material-checkbox.component.js +0 -109
- package/esm2015/lib/widgets/material-checkboxes.component.js +0 -101
- package/esm2015/lib/widgets/material-chip-list.component.js +0 -33
- package/esm2015/lib/widgets/material-file.component.js +0 -33
- package/esm2015/lib/widgets/material-input.component.js +0 -95
- package/esm2015/lib/widgets/material-number.component.js +0 -97
- package/esm2015/lib/widgets/material-one-of.component.js +0 -33
- package/esm2015/lib/widgets/material-radios.component.js +0 -84
- package/esm2015/lib/widgets/material-select.component.js +0 -115
- package/esm2015/lib/widgets/material-slider.component.js +0 -60
- package/esm2015/lib/widgets/material-stepper.component.js +0 -33
- package/esm2015/lib/widgets/material-tabs.component.js +0 -69
- package/esm2015/lib/widgets/material-textarea.component.js +0 -88
- package/fesm2015/ajsf-material.js +0 -1710
- package/fesm2015/ajsf-material.js.map +0 -1
|
@@ -0,0 +1,349 @@
|
|
|
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/flex-layout/flex";
|
|
6
|
+
import * as i4 from "@angular/flex-layout/extended";
|
|
7
|
+
import * as i5 from "@angular/material/card";
|
|
8
|
+
import * as i6 from "@angular/material/expansion";
|
|
9
|
+
import * as i7 from "@angular/material/form-field";
|
|
10
|
+
import * as i8 from "./flex-layout-root.component";
|
|
11
|
+
export class FlexLayoutSectionComponent {
|
|
12
|
+
constructor(jsf) {
|
|
13
|
+
this.jsf = jsf;
|
|
14
|
+
this.controlDisabled = false;
|
|
15
|
+
this.boundControl = false;
|
|
16
|
+
this.expanded = true;
|
|
17
|
+
this.containerType = 'div';
|
|
18
|
+
}
|
|
19
|
+
get sectionTitle() {
|
|
20
|
+
return this.options.notitle ? null : this.jsf.setItemTitle(this);
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.jsf.initializeControl(this);
|
|
24
|
+
this.options = this.layoutNode.options || {};
|
|
25
|
+
this.expanded = typeof this.options.expanded === 'boolean' ?
|
|
26
|
+
this.options.expanded : !this.options.expandable;
|
|
27
|
+
switch (this.layoutNode.type) {
|
|
28
|
+
case 'section':
|
|
29
|
+
case 'array':
|
|
30
|
+
case 'fieldset':
|
|
31
|
+
case 'advancedfieldset':
|
|
32
|
+
case 'authfieldset':
|
|
33
|
+
case 'optionfieldset':
|
|
34
|
+
case 'selectfieldset':
|
|
35
|
+
this.containerType = 'fieldset';
|
|
36
|
+
break;
|
|
37
|
+
case 'card':
|
|
38
|
+
this.containerType = 'card';
|
|
39
|
+
break;
|
|
40
|
+
case 'expansion-panel':
|
|
41
|
+
this.containerType = 'expansion-panel';
|
|
42
|
+
break;
|
|
43
|
+
default: // 'div', 'flex', 'tab', 'conditional', 'actions'
|
|
44
|
+
this.containerType = 'div';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
toggleExpanded() {
|
|
48
|
+
if (this.options.expandable) {
|
|
49
|
+
this.expanded = !this.expanded;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Set attributes for flexbox container
|
|
53
|
+
// (child attributes are set in flex-layout-root.component)
|
|
54
|
+
getFlexAttribute(attribute) {
|
|
55
|
+
const flexActive = this.layoutNode.type === 'flex' ||
|
|
56
|
+
!!this.options.displayFlex ||
|
|
57
|
+
this.options.display === 'flex';
|
|
58
|
+
// if (attribute !== 'flex' && !flexActive) { return null; }
|
|
59
|
+
switch (attribute) {
|
|
60
|
+
case 'is-flex':
|
|
61
|
+
return flexActive;
|
|
62
|
+
case 'display':
|
|
63
|
+
return flexActive ? 'flex' : 'initial';
|
|
64
|
+
case 'flex-direction':
|
|
65
|
+
case 'flex-wrap':
|
|
66
|
+
const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);
|
|
67
|
+
return (this.options['flex-flow'] || '').split(/\s+/)[index] ||
|
|
68
|
+
this.options[attribute] || ['column', 'nowrap'][index];
|
|
69
|
+
case 'justify-content':
|
|
70
|
+
case 'align-items':
|
|
71
|
+
case 'align-content':
|
|
72
|
+
return this.options[attribute];
|
|
73
|
+
case 'layout':
|
|
74
|
+
return (this.options.fxLayout || 'row') +
|
|
75
|
+
this.options.fxLayoutWrap ? ' ' + this.options.fxLayoutWrap : '';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
FlexLayoutSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FlexLayoutSectionComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
+
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: `
|
|
81
|
+
<div *ngIf="containerType === 'div'"
|
|
82
|
+
[class]="options?.htmlClass || ''"
|
|
83
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
84
|
+
[class.expanded]="options?.expandable && expanded">
|
|
85
|
+
<label *ngIf="sectionTitle"
|
|
86
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
87
|
+
[innerHTML]="sectionTitle"
|
|
88
|
+
(click)="toggleExpanded()"></label>
|
|
89
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
90
|
+
[layout]="layoutNode.items"
|
|
91
|
+
[dataIndex]="dataIndex"
|
|
92
|
+
[layoutIndex]="layoutIndex"
|
|
93
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
94
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
95
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
96
|
+
[style.display]="getFlexAttribute('display')"
|
|
97
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
98
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
99
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
100
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
101
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
102
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
103
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
104
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
105
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
106
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
107
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<fieldset *ngIf="containerType === 'fieldset'"
|
|
111
|
+
[class]="options?.htmlClass || ''"
|
|
112
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
113
|
+
[class.expanded]="options?.expandable && expanded"
|
|
114
|
+
[disabled]="options?.readonly">
|
|
115
|
+
<legend *ngIf="sectionTitle"
|
|
116
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
117
|
+
[innerHTML]="sectionTitle"
|
|
118
|
+
(click)="toggleExpanded()"></legend>
|
|
119
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
120
|
+
[layout]="layoutNode.items"
|
|
121
|
+
[dataIndex]="dataIndex"
|
|
122
|
+
[layoutIndex]="layoutIndex"
|
|
123
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
124
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
125
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
126
|
+
[style.display]="getFlexAttribute('display')"
|
|
127
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
128
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
129
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
130
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
131
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
132
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
133
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
134
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
135
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
136
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
137
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
138
|
+
</fieldset>
|
|
139
|
+
|
|
140
|
+
<mat-card *ngIf="containerType === 'card'"
|
|
141
|
+
[ngClass]="options?.htmlClass || ''"
|
|
142
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
143
|
+
[class.expanded]="options?.expandable && expanded">
|
|
144
|
+
<mat-card-header *ngIf="sectionTitle">
|
|
145
|
+
<legend
|
|
146
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
147
|
+
[innerHTML]="sectionTitle"
|
|
148
|
+
(click)="toggleExpanded()"></legend>
|
|
149
|
+
</mat-card-header>
|
|
150
|
+
<mat-card-content *ngIf="expanded">
|
|
151
|
+
<fieldset [disabled]="options?.readonly">
|
|
152
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
153
|
+
[layout]="layoutNode.items"
|
|
154
|
+
[dataIndex]="dataIndex"
|
|
155
|
+
[layoutIndex]="layoutIndex"
|
|
156
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
157
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
158
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
159
|
+
[style.display]="getFlexAttribute('display')"
|
|
160
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
161
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
162
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
163
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
164
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
165
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
166
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
167
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
168
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
169
|
+
</fieldset>
|
|
170
|
+
</mat-card-content>
|
|
171
|
+
<mat-card-footer>
|
|
172
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
173
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
174
|
+
</mat-card-footer>
|
|
175
|
+
</mat-card>
|
|
176
|
+
|
|
177
|
+
<mat-expansion-panel *ngIf="containerType === 'expansion-panel'"
|
|
178
|
+
[expanded]="expanded"
|
|
179
|
+
[hideToggle]="!options?.expandable">
|
|
180
|
+
<mat-expansion-panel-header>
|
|
181
|
+
<mat-panel-title>
|
|
182
|
+
<legend *ngIf="sectionTitle"
|
|
183
|
+
[class]="options?.labelHtmlClass"
|
|
184
|
+
[innerHTML]="sectionTitle"
|
|
185
|
+
(click)="toggleExpanded()"></legend>
|
|
186
|
+
</mat-panel-title>
|
|
187
|
+
</mat-expansion-panel-header>
|
|
188
|
+
<fieldset [disabled]="options?.readonly">
|
|
189
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
190
|
+
[layout]="layoutNode.items"
|
|
191
|
+
[dataIndex]="dataIndex"
|
|
192
|
+
[layoutIndex]="layoutIndex"
|
|
193
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
194
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
195
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
196
|
+
[style.display]="getFlexAttribute('display')"
|
|
197
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
198
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
199
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
200
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
201
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
202
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
203
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
204
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
205
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
206
|
+
</fieldset>
|
|
207
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
208
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
209
|
+
</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: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i5.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i5.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.FlexLayoutRootComponent, selector: "flex-layout-root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isFlexItem"] }] });
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FlexLayoutSectionComponent, decorators: [{
|
|
211
|
+
type: Component,
|
|
212
|
+
args: [{ selector: 'flex-layout-section-widget', template: `
|
|
213
|
+
<div *ngIf="containerType === 'div'"
|
|
214
|
+
[class]="options?.htmlClass || ''"
|
|
215
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
216
|
+
[class.expanded]="options?.expandable && expanded">
|
|
217
|
+
<label *ngIf="sectionTitle"
|
|
218
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
219
|
+
[innerHTML]="sectionTitle"
|
|
220
|
+
(click)="toggleExpanded()"></label>
|
|
221
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
222
|
+
[layout]="layoutNode.items"
|
|
223
|
+
[dataIndex]="dataIndex"
|
|
224
|
+
[layoutIndex]="layoutIndex"
|
|
225
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
226
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
227
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
228
|
+
[style.display]="getFlexAttribute('display')"
|
|
229
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
230
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
231
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
232
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
233
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
234
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
235
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
236
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
237
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
238
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
239
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
<fieldset *ngIf="containerType === 'fieldset'"
|
|
243
|
+
[class]="options?.htmlClass || ''"
|
|
244
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
245
|
+
[class.expanded]="options?.expandable && expanded"
|
|
246
|
+
[disabled]="options?.readonly">
|
|
247
|
+
<legend *ngIf="sectionTitle"
|
|
248
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
249
|
+
[innerHTML]="sectionTitle"
|
|
250
|
+
(click)="toggleExpanded()"></legend>
|
|
251
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
252
|
+
[layout]="layoutNode.items"
|
|
253
|
+
[dataIndex]="dataIndex"
|
|
254
|
+
[layoutIndex]="layoutIndex"
|
|
255
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
256
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
257
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
258
|
+
[style.display]="getFlexAttribute('display')"
|
|
259
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
260
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
261
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
262
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
263
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
264
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
265
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
266
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
267
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
268
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
269
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
270
|
+
</fieldset>
|
|
271
|
+
|
|
272
|
+
<mat-card *ngIf="containerType === 'card'"
|
|
273
|
+
[ngClass]="options?.htmlClass || ''"
|
|
274
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
275
|
+
[class.expanded]="options?.expandable && expanded">
|
|
276
|
+
<mat-card-header *ngIf="sectionTitle">
|
|
277
|
+
<legend
|
|
278
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
279
|
+
[innerHTML]="sectionTitle"
|
|
280
|
+
(click)="toggleExpanded()"></legend>
|
|
281
|
+
</mat-card-header>
|
|
282
|
+
<mat-card-content *ngIf="expanded">
|
|
283
|
+
<fieldset [disabled]="options?.readonly">
|
|
284
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
285
|
+
[layout]="layoutNode.items"
|
|
286
|
+
[dataIndex]="dataIndex"
|
|
287
|
+
[layoutIndex]="layoutIndex"
|
|
288
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
289
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
290
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
291
|
+
[style.display]="getFlexAttribute('display')"
|
|
292
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
293
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
294
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
295
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
296
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
297
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
298
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
299
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
300
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
301
|
+
</fieldset>
|
|
302
|
+
</mat-card-content>
|
|
303
|
+
<mat-card-footer>
|
|
304
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
305
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
306
|
+
</mat-card-footer>
|
|
307
|
+
</mat-card>
|
|
308
|
+
|
|
309
|
+
<mat-expansion-panel *ngIf="containerType === 'expansion-panel'"
|
|
310
|
+
[expanded]="expanded"
|
|
311
|
+
[hideToggle]="!options?.expandable">
|
|
312
|
+
<mat-expansion-panel-header>
|
|
313
|
+
<mat-panel-title>
|
|
314
|
+
<legend *ngIf="sectionTitle"
|
|
315
|
+
[class]="options?.labelHtmlClass"
|
|
316
|
+
[innerHTML]="sectionTitle"
|
|
317
|
+
(click)="toggleExpanded()"></legend>
|
|
318
|
+
</mat-panel-title>
|
|
319
|
+
</mat-expansion-panel-header>
|
|
320
|
+
<fieldset [disabled]="options?.readonly">
|
|
321
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
322
|
+
[layout]="layoutNode.items"
|
|
323
|
+
[dataIndex]="dataIndex"
|
|
324
|
+
[layoutIndex]="layoutIndex"
|
|
325
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
326
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
327
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
328
|
+
[style.display]="getFlexAttribute('display')"
|
|
329
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
330
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
331
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
332
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
333
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
334
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
335
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
336
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
337
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
338
|
+
</fieldset>
|
|
339
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
340
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
341
|
+
</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"] }]
|
|
342
|
+
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], layoutIndex: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], dataIndex: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}] } });
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9mbGV4LWxheW91dC1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQStJekQsTUFBTSxPQUFPLDBCQUEwQjtJQWFyQyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBVnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFPbEIsQ0FBQztJQUVMLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNuRCxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQzVCLEtBQUssU0FBUyxDQUFDO1lBQUMsS0FBSyxPQUFPLENBQUM7WUFBQyxLQUFLLFVBQVUsQ0FBQztZQUFDLEtBQUssa0JBQWtCLENBQUM7WUFDdkUsS0FBSyxjQUFjLENBQUM7WUFBQyxLQUFLLGdCQUFnQixDQUFDO1lBQUMsS0FBSyxnQkFBZ0I7Z0JBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO2dCQUM1QixNQUFNO1lBQ1IsS0FBSyxpQkFBaUI7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixTQUFTLGlEQUFpRDtnQkFDeEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFFO0lBQ2xFLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsMkRBQTJEO0lBQzNELGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUM7UUFDbEMsNERBQTREO1FBQzVELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssU0FBUztnQkFDWixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLEtBQUssZ0JBQWdCLENBQUM7WUFBQyxLQUFLLFdBQVc7Z0JBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELEtBQUssaUJBQWlCLENBQUM7WUFBQyxLQUFLLGFBQWEsQ0FBQztZQUFDLEtBQUssZUFBZTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLEtBQUssUUFBUTtnQkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO29CQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FFdEU7SUFDSCxDQUFDOzt1SEF0RVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsNEpBekkzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQWlJZTsyRkFRZCwwQkFBMEI7a0JBNUl0QyxTQUFTOytCQUVFLDRCQUE0QixZQUM1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQWlJZTs0R0FpQmhCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAYWpzZi9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdmbGV4LWxheW91dC1zZWN0aW9uLXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdkaXYnXCJcbiAgICAgIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxuICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgZXhwYW5kZWRcIj5cbiAgICAgIDxsYWJlbCAqbmdJZj1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgIFtjbGFzc109XCInbGVnZW5kICcgKyAob3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPjwvbGFiZWw+XG4gICAgICA8ZmxleC1sYXlvdXQtcm9vdC13aWRnZXQgKm5nSWY9XCJleHBhbmRlZFwiXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgW2xheW91dEluZGV4XT1cImxheW91dEluZGV4XCJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LXJvd109XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAncm93J1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXG4gICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXG4gICAgICAgIFtmeExheW91dF09XCJnZXRGbGV4QXR0cmlidXRlKCdsYXlvdXQnKVwiXG4gICAgICAgIFtmeExheW91dEdhcF09XCJvcHRpb25zPy5meExheW91dEdhcFwiXG4gICAgICAgIFtmeExheW91dEFsaWduXT1cIm9wdGlvbnM/LmZ4TGF5b3V0QWxpZ25cIlxuICAgICAgICBbYXR0ci5meEZsZXhGaWxsXT1cIm9wdGlvbnM/LmZ4TGF5b3V0QWxpZ25cIj48L2ZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0PlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cblxuICAgIDxmaWVsZHNldCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdmaWVsZHNldCdcIlxuICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiXG4gICAgICBbY2xhc3MuZXhwYW5kYWJsZV09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmICFleHBhbmRlZFwiXG4gICAgICBbY2xhc3MuZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiBleHBhbmRlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwib3B0aW9ucz8ucmVhZG9ubHlcIj5cbiAgICAgIDxsZWdlbmQgKm5nSWY9XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICBbY2xhc3NdPVwiJ2xlZ2VuZCAnICsgKG9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnKVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj48L2xlZ2VuZD5cbiAgICAgIDxmbGV4LWxheW91dC1yb290LXdpZGdldCAqbmdJZj1cImV4cGFuZGVkXCJcbiAgICAgICAgW2xheW91dF09XCJsYXlvdXROb2RlLml0ZW1zXCJcbiAgICAgICAgW2RhdGFJbmRleF09XCJkYXRhSW5kZXhcIlxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXhcIlxuICAgICAgICBbaXNGbGV4SXRlbV09XCJnZXRGbGV4QXR0cmlidXRlKCdpcy1mbGV4JylcIlxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtcm93XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdyb3cnXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJylcIlxuICAgICAgICBbc3R5bGUuZmxleC13cmFwXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtd3JhcCcpXCJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiXG4gICAgICAgIFtzdHlsZS5hbGlnbi1pdGVtc109XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1pdGVtcycpXCJcbiAgICAgICAgW3N0eWxlLmFsaWduLWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24tY29udGVudCcpXCJcbiAgICAgICAgW2Z4TGF5b3V0XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2xheW91dCcpXCJcbiAgICAgICAgW2Z4TGF5b3V0R2FwXT1cIm9wdGlvbnM/LmZ4TGF5b3V0R2FwXCJcbiAgICAgICAgW2Z4TGF5b3V0QWxpZ25dPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiXG4gICAgICAgIFthdHRyLmZ4RmxleEZpbGxdPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiPjwvZmxleC1sYXlvdXQtcm9vdC13aWRnZXQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPlxuICAgIDwvZmllbGRzZXQ+XG5cbiAgICA8bWF0LWNhcmQgKm5nSWY9XCJjb250YWluZXJUeXBlID09PSAnY2FyZCdcIlxuICAgICAgW25nQ2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcbiAgICAgIFtjbGFzcy5leHBhbmRhYmxlXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgIWV4cGFuZGVkXCJcbiAgICAgIFtjbGFzcy5leHBhbmRlZF09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmIGV4cGFuZGVkXCI+XG4gICAgICA8bWF0LWNhcmQtaGVhZGVyICpuZ0lmPVwic2VjdGlvblRpdGxlXCI+XG4gICAgICAgIDxsZWdlbmRcbiAgICAgICAgICBbY2xhc3NdPVwiJ2xlZ2VuZCAnICsgKG9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnKVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sZWdlbmQ+XG4gICAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50ICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgICAgICAgPGZpZWxkc2V0IFtkaXNhYmxlZF09XCJvcHRpb25zPy5yZWFkb25seVwiPlxuICAgICAgICAgIDxmbGV4LWxheW91dC1yb290LXdpZGdldCAqbmdJZj1cImV4cGFuZGVkXCJcbiAgICAgICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgICAgICBbZGF0YUluZGV4XT1cImRhdGFJbmRleFwiXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXhcIlxuICAgICAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtY29sdW1uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdjb2x1bW4nXCJcbiAgICAgICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtcm93XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdyb3cnXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXG4gICAgICAgICAgICBbc3R5bGUuZmxleC13cmFwXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtd3JhcCcpXCJcbiAgICAgICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxuICAgICAgICAgICAgW3N0eWxlLmFsaWduLWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24tY29udGVudCcpXCJcbiAgICAgICAgICAgIFtmeExheW91dF09XCJnZXRGbGV4QXR0cmlidXRlKCdsYXlvdXQnKVwiXG4gICAgICAgICAgICBbZnhMYXlvdXRHYXBdPVwib3B0aW9ucz8uZnhMYXlvdXRHYXBcIlxuICAgICAgICAgICAgW2Z4TGF5b3V0QWxpZ25dPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiXG4gICAgICAgICAgICBbYXR0ci5meEZsZXhGaWxsXT1cIm9wdGlvbnM/LmZ4TGF5b3V0QWxpZ25cIj48L2ZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0PlxuICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8bWF0LWNhcmQtZm9vdGVyPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8uZXJyb3JNZXNzYWdlXCI+PC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1jYXJkLWZvb3Rlcj5cbiAgICA8L21hdC1jYXJkPlxuXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgKm5nSWY9XCJjb250YWluZXJUeXBlID09PSAnZXhwYW5zaW9uLXBhbmVsJ1wiXG4gICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgW2hpZGVUb2dnbGVdPVwiIW9wdGlvbnM/LmV4cGFuZGFibGVcIj5cbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgICA8bGVnZW5kICpuZ0lmPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzc1wiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPjwvbGVnZW5kPlxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cIm9wdGlvbnM/LnJlYWRvbmx5XCI+XG4gICAgICAgIDxmbGV4LWxheW91dC1yb290LXdpZGdldCAqbmdJZj1cImV4cGFuZGVkXCJcbiAgICAgICAgICBbbGF5b3V0XT1cImxheW91dE5vZGUuaXRlbXNcIlxuICAgICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXhcIlxuICAgICAgICAgIFtpc0ZsZXhJdGVtXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2lzLWZsZXgnKVwiXG4gICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtcm93XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdyb3cnXCJcbiAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJnZXRGbGV4QXR0cmlidXRlKCdkaXNwbGF5JylcIlxuICAgICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgICBbc3R5bGUuZmxleC13cmFwXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtd3JhcCcpXCJcbiAgICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2p1c3RpZnktY29udGVudCcpXCJcbiAgICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgICAgW3N0eWxlLmFsaWduLWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24tY29udGVudCcpXCJcbiAgICAgICAgICBbZnhMYXlvdXRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnbGF5b3V0JylcIlxuICAgICAgICAgIFtmeExheW91dEdhcF09XCJvcHRpb25zPy5meExheW91dEdhcFwiXG4gICAgICAgICAgW2Z4TGF5b3V0QWxpZ25dPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiXG4gICAgICAgICAgW2F0dHIuZnhGbGV4RmlsbF09XCJvcHRpb25zPy5meExheW91dEFsaWduXCI+PC9mbGV4LWxheW91dC1yb290LXdpZGdldD5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5gLFxuICBzdHlsZXM6IFtgXG4gICAgZmllbGRzZXQgeyBib3JkZXI6IDA7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuICAgIC5sZWdlbmQgeyBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC5leHBhbmRhYmxlID4gLmxlZ2VuZDpiZWZvcmUgeyBjb250ZW50OiAn4pa2JzsgcGFkZGluZy1yaWdodDogLjNlbTsgfVxuICAgIC5leHBhbmRlZCA+IC5sZWdlbmQ6YmVmb3JlIHsgY29udGVudDogJ+KWvCc7IHBhZGRpbmctcmlnaHQ6IC4yZW07IH1cbiAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEZsZXhMYXlvdXRTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgY29udHJvbE5hbWU6IHN0cmluZztcbiAgY29udHJvbFZhbHVlOiBhbnk7XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcbiAgb3B0aW9uczogYW55O1xuICBleHBhbmRlZCA9IHRydWU7XG4gIGNvbnRhaW5lclR5cGUgPSAnZGl2JztcbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55O1xuICBASW5wdXQoKSBsYXlvdXRJbmRleDogbnVtYmVyW107XG4gIEBJbnB1dCgpIGRhdGFJbmRleDogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBqc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIGdldCBzZWN0aW9uVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5ub3RpdGxlID8gbnVsbCA6IHRoaXMuanNmLnNldEl0ZW1UaXRsZSh0aGlzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpO1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0eXBlb2YgdGhpcy5vcHRpb25zLmV4cGFuZGVkID09PSAnYm9vbGVhbicgP1xuICAgICAgdGhpcy5vcHRpb25zLmV4cGFuZGVkIDogIXRoaXMub3B0aW9ucy5leHBhbmRhYmxlO1xuICAgIHN3aXRjaCAodGhpcy5sYXlvdXROb2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlY3Rpb24nOiBjYXNlICdhcnJheSc6IGNhc2UgJ2ZpZWxkc2V0JzogY2FzZSAnYWR2YW5jZWRmaWVsZHNldCc6XG4gICAgICBjYXNlICdhdXRoZmllbGRzZXQnOiBjYXNlICdvcHRpb25maWVsZHNldCc6IGNhc2UgJ3NlbGVjdGZpZWxkc2V0JzpcbiAgICAgICAgdGhpcy5jb250YWluZXJUeXBlID0gJ2ZpZWxkc2V0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjYXJkJzpcbiAgICAgICAgdGhpcy5jb250YWluZXJUeXBlID0gJ2NhcmQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4cGFuc2lvbi1wYW5lbCc6XG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdleHBhbnNpb24tcGFuZWwnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IC8vICdkaXYnLCAnZmxleCcsICd0YWInLCAnY29uZGl0aW9uYWwnLCAnYWN0aW9ucydcbiAgICAgICAgdGhpcy5jb250YWluZXJUeXBlID0gJ2Rpdic7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5leHBhbmRhYmxlKSB7IHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDsgfVxuICB9XG5cbiAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIGZsZXhib3ggY29udGFpbmVyXG4gIC8vIChjaGlsZCBhdHRyaWJ1dGVzIGFyZSBzZXQgaW4gZmxleC1sYXlvdXQtcm9vdC5jb21wb25lbnQpXG4gIGdldEZsZXhBdHRyaWJ1dGUoYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmbGV4QWN0aXZlOiBib29sZWFuID1cbiAgICAgIHRoaXMubGF5b3V0Tm9kZS50eXBlID09PSAnZmxleCcgfHxcbiAgICAgICEhdGhpcy5vcHRpb25zLmRpc3BsYXlGbGV4IHx8XG4gICAgICB0aGlzLm9wdGlvbnMuZGlzcGxheSA9PT0gJ2ZsZXgnO1xuICAgIC8vIGlmIChhdHRyaWJ1dGUgIT09ICdmbGV4JyAmJiAhZmxleEFjdGl2ZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XG4gICAgICBjYXNlICdpcy1mbGV4JzpcbiAgICAgICAgcmV0dXJuIGZsZXhBY3RpdmU7XG4gICAgICBjYXNlICdkaXNwbGF5JzpcbiAgICAgICAgcmV0dXJuIGZsZXhBY3RpdmUgPyAnZmxleCcgOiAnaW5pdGlhbCc7XG4gICAgICBjYXNlICdmbGV4LWRpcmVjdGlvbic6IGNhc2UgJ2ZsZXgtd3JhcCc6XG4gICAgICAgIGNvbnN0IGluZGV4ID0gWydmbGV4LWRpcmVjdGlvbicsICdmbGV4LXdyYXAnXS5pbmRleE9mKGF0dHJpYnV0ZSk7XG4gICAgICAgIHJldHVybiAodGhpcy5vcHRpb25zWydmbGV4LWZsb3cnXSB8fCAnJykuc3BsaXQoL1xccysvKVtpbmRleF0gfHxcbiAgICAgICAgICB0aGlzLm9wdGlvbnNbYXR0cmlidXRlXSB8fCBbJ2NvbHVtbicsICdub3dyYXAnXVtpbmRleF07XG4gICAgICBjYXNlICdqdXN0aWZ5LWNvbnRlbnQnOiBjYXNlICdhbGlnbi1pdGVtcyc6IGNhc2UgJ2FsaWduLWNvbnRlbnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zW2F0dHJpYnV0ZV07XG4gICAgICBjYXNlICdsYXlvdXQnOlxuICAgICAgICByZXR1cm4gKHRoaXMub3B0aW9ucy5meExheW91dCB8fCAncm93JykgK1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5meExheW91dFdyYXAgPyAnICcgKyB0aGlzLm9wdGlvbnMuZnhMYXlvdXRXcmFwIDogJyc7XG5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, 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/button";
|
|
6
|
+
export class MaterialAddReferenceComponent {
|
|
7
|
+
constructor(jsf) {
|
|
8
|
+
this.jsf = jsf;
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
this.options = this.layoutNode.options || {};
|
|
12
|
+
}
|
|
13
|
+
get showAddButton() {
|
|
14
|
+
return !this.layoutNode.arrayItem ||
|
|
15
|
+
this.layoutIndex[this.layoutIndex.length - 1] < this.options.maxItems;
|
|
16
|
+
}
|
|
17
|
+
addItem(event) {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
this.jsf.addItem(this);
|
|
20
|
+
}
|
|
21
|
+
get buttonText() {
|
|
22
|
+
const parent = {
|
|
23
|
+
dataIndex: this.dataIndex.slice(0, -1),
|
|
24
|
+
layoutIndex: this.layoutIndex.slice(0, -1),
|
|
25
|
+
layoutNode: this.jsf.getParentNode(this),
|
|
26
|
+
};
|
|
27
|
+
return parent.layoutNode.add ||
|
|
28
|
+
this.jsf.setArrayItemTitle(parent, this.layoutNode, this.itemCount);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
MaterialAddReferenceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialAddReferenceComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
MaterialAddReferenceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MaterialAddReferenceComponent, selector: "material-add-reference-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
33
|
+
<section [class]="options?.htmlClass || ''" align="end">
|
|
34
|
+
<button mat-raised-button *ngIf="showAddButton"
|
|
35
|
+
[color]="options?.color || 'accent'"
|
|
36
|
+
[disabled]="options?.readonly"
|
|
37
|
+
(click)="addItem($event)">
|
|
38
|
+
<span *ngIf="options?.icon" [class]="options?.icon"></span>
|
|
39
|
+
<span *ngIf="options?.title" [innerHTML]="buttonText"></span>
|
|
40
|
+
</button>
|
|
41
|
+
</section>`, isInline: true, 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"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialAddReferenceComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{
|
|
45
|
+
// tslint:disable-next-line:component-selector
|
|
46
|
+
selector: 'material-add-reference-widget',
|
|
47
|
+
template: `
|
|
48
|
+
<section [class]="options?.htmlClass || ''" align="end">
|
|
49
|
+
<button mat-raised-button *ngIf="showAddButton"
|
|
50
|
+
[color]="options?.color || 'accent'"
|
|
51
|
+
[disabled]="options?.readonly"
|
|
52
|
+
(click)="addItem($event)">
|
|
53
|
+
<span *ngIf="options?.icon" [class]="options?.icon"></span>
|
|
54
|
+
<span *ngIf="options?.title" [innerHTML]="buttonText"></span>
|
|
55
|
+
</button>
|
|
56
|
+
</section>`,
|
|
57
|
+
changeDetection: ChangeDetectionStrategy.Default,
|
|
58
|
+
}]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], layoutIndex: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], dataIndex: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}] } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWRkLXJlZmVyZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC1hZGQtcmVmZXJlbmNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFtQmxGLE1BQU0sT0FBTyw2QkFBNkI7SUFTeEMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtJQUNoQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixNQUFNLE1BQU0sR0FBUTtZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUN6QyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7MEhBbkNVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtKQVo5Qjs7Ozs7Ozs7O2VBU0c7MkZBR0YsNkJBQTZCO2tCQWZ6QyxTQUFTO21CQUFDO29CQUNULDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFOzs7Ozs7Ozs7ZUFTRztvQkFDYixlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDakQ7NEdBTVUsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAYWpzZi9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ21hdGVyaWFsLWFkZC1yZWZlcmVuY2Utd2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2VjdGlvbiBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCIgYWxpZ249XCJlbmRcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKm5nSWY9XCJzaG93QWRkQnV0dG9uXCJcbiAgICAgICAgW2NvbG9yXT1cIm9wdGlvbnM/LmNvbG9yIHx8ICdhY2NlbnQnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbnM/LnJlYWRvbmx5XCJcbiAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW0oJGV2ZW50KVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbnM/Lmljb25cIiBbY2xhc3NdPVwib3B0aW9ucz8uaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiIFtpbm5lckhUTUxdPVwiYnV0dG9uVGV4dFwiPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc2VjdGlvbj5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWRkUmVmZXJlbmNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb3B0aW9uczogYW55O1xuICBpdGVtQ291bnQ6IG51bWJlcjtcbiAgcHJldmlvdXNMYXlvdXRJbmRleDogbnVtYmVyW107XG4gIHByZXZpb3VzRGF0YUluZGV4OiBudW1iZXJbXTtcbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogYW55O1xuICBASW5wdXQoKSBsYXlvdXRJbmRleDogbnVtYmVyW107XG4gIEBJbnB1dCgpIGRhdGFJbmRleDogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBqc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZS5vcHRpb25zIHx8IHt9O1xuICB9XG5cbiAgZ2V0IHNob3dBZGRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxheW91dE5vZGUuYXJyYXlJdGVtIHx8XG4gICAgICB0aGlzLmxheW91dEluZGV4W3RoaXMubGF5b3V0SW5kZXgubGVuZ3RoIC0gMV0gPCB0aGlzLm9wdGlvbnMubWF4SXRlbXM7XG4gIH1cblxuICBhZGRJdGVtKGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmpzZi5hZGRJdGVtKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGJ1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJlbnQ6IGFueSA9IHtcbiAgICAgIGRhdGFJbmRleDogdGhpcy5kYXRhSW5kZXguc2xpY2UoMCwgLTEpLFxuICAgICAgbGF5b3V0SW5kZXg6IHRoaXMubGF5b3V0SW5kZXguc2xpY2UoMCwgLTEpLFxuICAgICAgbGF5b3V0Tm9kZTogdGhpcy5qc2YuZ2V0UGFyZW50Tm9kZSh0aGlzKSxcbiAgICB9O1xuICAgIHJldHVybiBwYXJlbnQubGF5b3V0Tm9kZS5hZGQgfHxcbiAgICAgIHRoaXMuanNmLnNldEFycmF5SXRlbVRpdGxlKHBhcmVudCwgdGhpcy5sYXlvdXROb2RlLCB0aGlzLml0ZW1Db3VudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { buildTitleMap } 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-toggle";
|
|
7
|
+
import * as i4 from "@angular/material/form-field";
|
|
8
|
+
export class MaterialButtonGroupComponent {
|
|
9
|
+
constructor(jsf) {
|
|
10
|
+
this.jsf = jsf;
|
|
11
|
+
this.controlDisabled = false;
|
|
12
|
+
this.boundControl = false;
|
|
13
|
+
this.radiosList = [];
|
|
14
|
+
this.vertical = false;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.options = this.layoutNode.options || {};
|
|
18
|
+
this.radiosList = buildTitleMap(this.options.titleMap || this.options.enumNames, this.options.enum, true);
|
|
19
|
+
this.jsf.initializeControl(this);
|
|
20
|
+
}
|
|
21
|
+
updateValue(value) {
|
|
22
|
+
this.options.showErrors = true;
|
|
23
|
+
this.jsf.updateValue(this, value);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
MaterialButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialButtonGroupComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
MaterialButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MaterialButtonGroupComponent, selector: "material-button-group-widget", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: `
|
|
28
|
+
<div>
|
|
29
|
+
<div *ngIf="options?.title">
|
|
30
|
+
<label
|
|
31
|
+
[attr.for]="'control' + layoutNode?._id"
|
|
32
|
+
[class]="options?.labelHtmlClass || ''"
|
|
33
|
+
[style.display]="options?.notitle ? 'none' : ''"
|
|
34
|
+
[innerHTML]="options?.title"></label>
|
|
35
|
+
</div>
|
|
36
|
+
<mat-button-toggle-group
|
|
37
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
38
|
+
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
39
|
+
[attr.required]="options?.required"
|
|
40
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
41
|
+
[name]="controlName"
|
|
42
|
+
[value]="controlValue"
|
|
43
|
+
[vertical]="!!options.vertical">
|
|
44
|
+
<mat-button-toggle *ngFor="let radioItem of radiosList"
|
|
45
|
+
[id]="'control' + layoutNode?._id + '/' + radioItem?.name"
|
|
46
|
+
[value]="radioItem?.value"
|
|
47
|
+
(click)="updateValue(radioItem?.value)">
|
|
48
|
+
<span [innerHTML]="radioItem?.name"></span>
|
|
49
|
+
</mat-button-toggle>
|
|
50
|
+
</mat-button-toggle-group>
|
|
51
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
52
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
53
|
+
</div>`, isInline: true, styles: ["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.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }] });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MaterialButtonGroupComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'material-button-group-widget', template: `
|
|
57
|
+
<div>
|
|
58
|
+
<div *ngIf="options?.title">
|
|
59
|
+
<label
|
|
60
|
+
[attr.for]="'control' + layoutNode?._id"
|
|
61
|
+
[class]="options?.labelHtmlClass || ''"
|
|
62
|
+
[style.display]="options?.notitle ? 'none' : ''"
|
|
63
|
+
[innerHTML]="options?.title"></label>
|
|
64
|
+
</div>
|
|
65
|
+
<mat-button-toggle-group
|
|
66
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
67
|
+
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
68
|
+
[attr.required]="options?.required"
|
|
69
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
70
|
+
[name]="controlName"
|
|
71
|
+
[value]="controlValue"
|
|
72
|
+
[vertical]="!!options.vertical">
|
|
73
|
+
<mat-button-toggle *ngFor="let radioItem of radiosList"
|
|
74
|
+
[id]="'control' + layoutNode?._id + '/' + radioItem?.name"
|
|
75
|
+
[value]="radioItem?.value"
|
|
76
|
+
(click)="updateValue(radioItem?.value)">
|
|
77
|
+
<span [innerHTML]="radioItem?.name"></span>
|
|
78
|
+
</mat-button-toggle>
|
|
79
|
+
</mat-button-toggle-group>
|
|
80
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
81
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
82
|
+
</div>`, styles: ["mat-error{font-size:75%}\n"] }]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], layoutIndex: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], dataIndex: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fqc2YtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLWJ1dHRvbi1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUF5QixhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7OztBQW1DbEUsTUFBTSxPQUFPLDRCQUE0QjtJQWF2QyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBVnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQU9iLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7eUhBN0JVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDhKQTdCN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBMEJEOzJGQUdFLDRCQUE0QjtrQkFoQ3hDLFNBQVM7K0JBRUUsOEJBQThCLFlBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQTBCRDs0R0FZQSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBidWlsZFRpdGxlTWFwIH0gZnJvbSAnQGFqc2YvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC1idXR0b24tZ3JvdXAtd2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIm9wdGlvbnM/LnRpdGxlXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWRcIlxuICAgICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwib3B0aW9ucz8ubm90aXRsZSA/ICdub25lJyA6ICcnXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnRpdGxlXCI+PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbERpc2FibGVkIHx8IG9wdGlvbnM/LnJlYWRvbmx5XCJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgICAgW3ZlcnRpY2FsXT1cIiEhb3B0aW9ucy52ZXJ0aWNhbFwiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHJhZGlvSXRlbSBvZiByYWRpb3NMaXN0XCJcbiAgICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJy8nICsgcmFkaW9JdGVtPy5uYW1lXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmFkaW9JdGVtPy52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVZhbHVlKHJhZGlvSXRlbT8udmFsdWUpXCI+XG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJyYWRpb0l0ZW0/Lm5hbWVcIj48L3NwYW4+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5gLFxuICAgIHN0eWxlczogW2AgbWF0LWVycm9yIHsgZm9udC1zaXplOiA3NSU7IH0gYF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQnV0dG9uR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICBjb250cm9sVmFsdWU6IGFueTtcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xuICBvcHRpb25zOiBhbnk7XG4gIHJhZGlvc0xpc3Q6IGFueVtdID0gW107XG4gIHZlcnRpY2FsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLnJhZGlvc0xpc3QgPSBidWlsZFRpdGxlTWFwKFxuICAgICAgdGhpcy5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMub3B0aW9ucy5lbnVtTmFtZXMsXG4gICAgICB0aGlzLm9wdGlvbnMuZW51bSwgdHJ1ZVxuICAgICk7XG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMub3B0aW9ucy5zaG93RXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCB2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|