@ajsf/material 0.5.1-beta.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2 -2
- package/ajsf-material.d.ts +4 -0
- package/ajsf-material.metadata.json +1 -0
- package/bundles/ajsf-material.umd.js +1422 -0
- package/bundles/ajsf-material.umd.js.map +1 -0
- package/esm2015/ajsf-material.js +5 -0
- package/esm2015/lib/angular-flex-monkey-patch.js +12 -0
- package/esm2015/lib/material-design-framework.component.js +101 -0
- package/esm2015/lib/material-design-framework.module.js +80 -0
- package/esm2015/lib/material-design.framework.js +54 -0
- package/esm2015/lib/widgets/flex-layout-root.component.js +55 -0
- package/esm2015/lib/widgets/flex-layout-section.component.js +221 -0
- package/esm2015/lib/widgets/material-add-reference.component.js +53 -0
- package/esm2015/lib/widgets/material-button-group.component.js +63 -0
- package/esm2015/lib/widgets/material-button.component.js +60 -0
- package/esm2015/lib/widgets/material-checkbox.component.js +109 -0
- package/esm2015/lib/widgets/material-checkboxes.component.js +101 -0
- package/esm2015/lib/widgets/material-chip-list.component.js +33 -0
- package/esm2015/lib/widgets/material-datepicker.component.js +90 -0
- package/esm2015/lib/widgets/material-file.component.js +33 -0
- package/esm2015/lib/widgets/material-input.component.js +95 -0
- package/esm2015/lib/widgets/material-number.component.js +97 -0
- package/esm2015/lib/widgets/material-one-of.component.js +33 -0
- package/esm2015/lib/widgets/material-radios.component.js +84 -0
- package/esm2015/lib/widgets/material-select.component.js +115 -0
- package/esm2015/lib/widgets/material-slider.component.js +60 -0
- package/esm2015/lib/widgets/material-stepper.component.js +33 -0
- package/esm2015/lib/widgets/material-tabs.component.js +69 -0
- package/esm2015/lib/widgets/material-textarea.component.js +88 -0
- package/esm2015/lib/widgets/public_api.js +52 -0
- package/esm2015/public_api.js +8 -0
- package/fesm2015/ajsf-material.js +1710 -0
- package/fesm2015/ajsf-material.js.map +1 -0
- package/lib/angular-flex-monkey-patch.d.ts +1 -0
- package/lib/material-design-framework.component.d.ts +25 -0
- package/lib/material-design-framework.module.d.ts +12 -0
- package/lib/material-design.framework.d.ts +41 -0
- package/lib/widgets/flex-layout-root.component.d.ts +12 -0
- package/lib/widgets/flex-layout-section.component.d.ts +22 -0
- package/lib/widgets/material-add-reference.component.d.ts +17 -0
- package/lib/widgets/material-button-group.component.d.ts +20 -0
- package/lib/widgets/material-button.component.d.ts +18 -0
- package/lib/widgets/material-checkbox.component.d.ts +22 -0
- package/lib/widgets/material-checkboxes.component.d.ts +24 -0
- package/lib/widgets/material-chip-list.component.d.ts +18 -0
- package/lib/widgets/material-datepicker.component.d.ts +19 -0
- package/lib/widgets/material-file.component.d.ts +18 -0
- package/lib/widgets/material-input.component.d.ts +20 -0
- package/lib/widgets/material-number.component.d.ts +23 -0
- package/lib/widgets/material-one-of.component.d.ts +18 -0
- package/lib/widgets/material-radios.component.d.ts +20 -0
- package/lib/widgets/material-select.component.d.ts +21 -0
- package/lib/widgets/material-slider.component.d.ts +22 -0
- package/lib/widgets/material-stepper.component.d.ts +18 -0
- package/lib/widgets/material-tabs.component.d.ts +17 -0
- package/lib/widgets/material-textarea.component.d.ts +19 -0
- package/{src/lib/widgets/public_api.ts → lib/widgets/public_api.d.ts} +1 -14
- package/package.json +12 -4
- package/{src/public_api.ts → public_api.d.ts} +0 -4
- package/karma.conf.js +0 -37
- package/ng-package.json +0 -16
- package/src/lib/angular-flex-monkey-patch.ts +0 -13
- package/src/lib/material-design-framework.component.html +0 -20
- package/src/lib/material-design-framework.component.scss +0 -51
- package/src/lib/material-design-framework.component.spec.ts +0 -37
- package/src/lib/material-design-framework.component.ts +0 -121
- package/src/lib/material-design-framework.module.ts +0 -84
- package/src/lib/material-design.framework.ts +0 -75
- package/src/lib/widgets/flex-layout-root.component.html +0 -11
- package/src/lib/widgets/flex-layout-root.component.ts +0 -52
- package/src/lib/widgets/flex-layout-section.component.ts +0 -216
- package/src/lib/widgets/material-add-reference.component.ts +0 -56
- package/src/lib/widgets/material-button-group.component.ts +0 -68
- package/src/lib/widgets/material-button.component.ts +0 -59
- package/src/lib/widgets/material-checkbox.component.ts +0 -112
- package/src/lib/widgets/material-checkboxes.component.ts +0 -109
- package/src/lib/widgets/material-chip-list.component.ts +0 -35
- package/src/lib/widgets/material-datepicker.component.ts +0 -103
- package/src/lib/widgets/material-file.component.ts +0 -35
- package/src/lib/widgets/material-input.component.ts +0 -97
- package/src/lib/widgets/material-number.component.ts +0 -95
- package/src/lib/widgets/material-one-of.component.ts +0 -35
- package/src/lib/widgets/material-radios.component.ts +0 -89
- package/src/lib/widgets/material-select.component.ts +0 -118
- package/src/lib/widgets/material-slider.component.ts +0 -61
- package/src/lib/widgets/material-stepper.component.ts +0 -35
- package/src/lib/widgets/material-tabs.component.ts +0 -69
- package/src/lib/widgets/material-textarea.component.ts +0 -88
- package/src/test.ts +0 -21
- package/tsconfig.lib.json +0 -26
- package/tsconfig.lib.prod.json +0 -9
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -11
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Framework } from '@ajsf/core';
|
|
3
|
+
import { FlexLayoutRootComponent, FlexLayoutSectionComponent, MaterialAddReferenceComponent, MaterialButtonComponent, MaterialButtonGroupComponent, MaterialCheckboxComponent, MaterialCheckboxesComponent, MaterialChipListComponent, MaterialDatepickerComponent, MaterialDesignFrameworkComponent, MaterialFileComponent, MaterialInputComponent, MaterialNumberComponent, MaterialOneOfComponent, MaterialRadiosComponent, MaterialSelectComponent, MaterialSliderComponent, MaterialStepperComponent, MaterialTabsComponent, MaterialTextareaComponent } from './widgets/public_api';
|
|
4
|
+
// Material Design Framework
|
|
5
|
+
// https://github.com/angular/material2
|
|
6
|
+
export class MaterialDesignFramework extends Framework {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.name = 'material-design';
|
|
10
|
+
this.framework = MaterialDesignFrameworkComponent;
|
|
11
|
+
this.stylesheets = [
|
|
12
|
+
'//fonts.googleapis.com/icon?family=Material+Icons',
|
|
13
|
+
'//fonts.googleapis.com/css?family=Roboto:300,400,500,700',
|
|
14
|
+
];
|
|
15
|
+
this.widgets = {
|
|
16
|
+
'root': FlexLayoutRootComponent,
|
|
17
|
+
'section': FlexLayoutSectionComponent,
|
|
18
|
+
'$ref': MaterialAddReferenceComponent,
|
|
19
|
+
'button': MaterialButtonComponent,
|
|
20
|
+
'button-group': MaterialButtonGroupComponent,
|
|
21
|
+
'checkbox': MaterialCheckboxComponent,
|
|
22
|
+
'checkboxes': MaterialCheckboxesComponent,
|
|
23
|
+
'chip-list': MaterialChipListComponent,
|
|
24
|
+
'date': MaterialDatepickerComponent,
|
|
25
|
+
'file': MaterialFileComponent,
|
|
26
|
+
'number': MaterialNumberComponent,
|
|
27
|
+
'one-of': MaterialOneOfComponent,
|
|
28
|
+
'radios': MaterialRadiosComponent,
|
|
29
|
+
'select': MaterialSelectComponent,
|
|
30
|
+
'slider': MaterialSliderComponent,
|
|
31
|
+
'stepper': MaterialStepperComponent,
|
|
32
|
+
'tabs': MaterialTabsComponent,
|
|
33
|
+
'text': MaterialInputComponent,
|
|
34
|
+
'textarea': MaterialTextareaComponent,
|
|
35
|
+
'alt-date': 'date',
|
|
36
|
+
'any-of': 'one-of',
|
|
37
|
+
'card': 'section',
|
|
38
|
+
'color': 'text',
|
|
39
|
+
'expansion-panel': 'section',
|
|
40
|
+
'hidden': 'none',
|
|
41
|
+
'image': 'none',
|
|
42
|
+
'integer': 'number',
|
|
43
|
+
'radiobuttons': 'button-group',
|
|
44
|
+
'range': 'slider',
|
|
45
|
+
'submit': 'button',
|
|
46
|
+
'tagsinput': 'chip-list',
|
|
47
|
+
'wizard': 'stepper',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
MaterialDesignFramework.decorators = [
|
|
52
|
+
{ type: Injectable }
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtZGVzaWduLmZyYW1ld29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fqc2YtbWF0ZXJpYWwvc3JjL2xpYi9tYXRlcmlhbC1kZXNpZ24uZnJhbWV3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUMxQiw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IsZ0NBQWdDLEVBQ2hDLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUMxQixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLDRCQUE0QjtBQUM1Qix1Q0FBdUM7QUFHdkMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFEdEQ7O1FBRUUsU0FBSSxHQUFHLGlCQUFpQixDQUFDO1FBRXpCLGNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztRQUU3QyxnQkFBVyxHQUFHO1lBQ1osbURBQW1EO1lBQ25ELDBEQUEwRDtTQUMzRCxDQUFDO1FBRUYsWUFBTyxHQUFHO1lBQ1IsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixTQUFTLEVBQUUsMEJBQTBCO1lBQ3JDLE1BQU0sRUFBRSw2QkFBNkI7WUFDckMsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxjQUFjLEVBQUUsNEJBQTRCO1lBQzVDLFVBQVUsRUFBRSx5QkFBeUI7WUFDckMsWUFBWSxFQUFFLDJCQUEyQjtZQUN6QyxXQUFXLEVBQUUseUJBQXlCO1lBQ3RDLE1BQU0sRUFBRSwyQkFBMkI7WUFDbkMsTUFBTSxFQUFFLHFCQUFxQjtZQUM3QixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsU0FBUyxFQUFFLHdCQUF3QjtZQUNuQyxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLE1BQU0sRUFBRSxzQkFBc0I7WUFDOUIsVUFBVSxFQUFFLHlCQUF5QjtZQUNyQyxVQUFVLEVBQUUsTUFBTTtZQUNsQixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsU0FBUztZQUNqQixPQUFPLEVBQUUsTUFBTTtZQUNmLGlCQUFpQixFQUFFLFNBQVM7WUFDNUIsUUFBUSxFQUFFLE1BQU07WUFDaEIsT0FBTyxFQUFFLE1BQU07WUFDZixTQUFTLEVBQUUsUUFBUTtZQUNuQixjQUFjLEVBQUUsY0FBYztZQUM5QixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixXQUFXLEVBQUUsV0FBVztZQUN4QixRQUFRLEVBQUUsU0FBUztTQUNwQixDQUFDO0lBQ0osQ0FBQzs7O1lBN0NBLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGcmFtZXdvcmt9IGZyb20gJ0BhanNmL2NvcmUnO1xuaW1wb3J0IHtcbiAgRmxleExheW91dFJvb3RDb21wb25lbnQsXG4gIEZsZXhMYXlvdXRTZWN0aW9uQ29tcG9uZW50LFxuICBNYXRlcmlhbEFkZFJlZmVyZW5jZUNvbXBvbmVudCxcbiAgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQsXG4gIE1hdGVyaWFsQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gIE1hdGVyaWFsQ2hlY2tib3hDb21wb25lbnQsXG4gIE1hdGVyaWFsQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgTWF0ZXJpYWxDaGlwTGlzdENvbXBvbmVudCxcbiAgTWF0ZXJpYWxEYXRlcGlja2VyQ29tcG9uZW50LFxuICBNYXRlcmlhbERlc2lnbkZyYW1ld29ya0NvbXBvbmVudCxcbiAgTWF0ZXJpYWxGaWxlQ29tcG9uZW50LFxuICBNYXRlcmlhbElucHV0Q29tcG9uZW50LFxuICBNYXRlcmlhbE51bWJlckNvbXBvbmVudCxcbiAgTWF0ZXJpYWxPbmVPZkNvbXBvbmVudCxcbiAgTWF0ZXJpYWxSYWRpb3NDb21wb25lbnQsXG4gIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50LFxuICBNYXRlcmlhbFNsaWRlckNvbXBvbmVudCxcbiAgTWF0ZXJpYWxTdGVwcGVyQ29tcG9uZW50LFxuICBNYXRlcmlhbFRhYnNDb21wb25lbnQsXG4gIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnRcbn0gZnJvbSAnLi93aWRnZXRzL3B1YmxpY19hcGknO1xuXG5cbi8vIE1hdGVyaWFsIERlc2lnbiBGcmFtZXdvcmtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL21hdGVyaWFsMlxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxEZXNpZ25GcmFtZXdvcmsgZXh0ZW5kcyBGcmFtZXdvcmsge1xuICBuYW1lID0gJ21hdGVyaWFsLWRlc2lnbic7XG5cbiAgZnJhbWV3b3JrID0gTWF0ZXJpYWxEZXNpZ25GcmFtZXdvcmtDb21wb25lbnQ7XG5cbiAgc3R5bGVzaGVldHMgPSBbXG4gICAgJy8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnMnLFxuICAgICcvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCcsXG4gIF07XG5cbiAgd2lkZ2V0cyA9IHtcbiAgICAncm9vdCc6IEZsZXhMYXlvdXRSb290Q29tcG9uZW50LFxuICAgICdzZWN0aW9uJzogRmxleExheW91dFNlY3Rpb25Db21wb25lbnQsXG4gICAgJyRyZWYnOiBNYXRlcmlhbEFkZFJlZmVyZW5jZUNvbXBvbmVudCxcbiAgICAnYnV0dG9uJzogTWF0ZXJpYWxCdXR0b25Db21wb25lbnQsXG4gICAgJ2J1dHRvbi1ncm91cCc6IE1hdGVyaWFsQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgJ2NoZWNrYm94JzogTWF0ZXJpYWxDaGVja2JveENvbXBvbmVudCxcbiAgICAnY2hlY2tib3hlcyc6IE1hdGVyaWFsQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgICAnY2hpcC1saXN0JzogTWF0ZXJpYWxDaGlwTGlzdENvbXBvbmVudCxcbiAgICAnZGF0ZSc6IE1hdGVyaWFsRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAnZmlsZSc6IE1hdGVyaWFsRmlsZUNvbXBvbmVudCxcbiAgICAnbnVtYmVyJzogTWF0ZXJpYWxOdW1iZXJDb21wb25lbnQsXG4gICAgJ29uZS1vZic6IE1hdGVyaWFsT25lT2ZDb21wb25lbnQsXG4gICAgJ3JhZGlvcyc6IE1hdGVyaWFsUmFkaW9zQ29tcG9uZW50LFxuICAgICdzZWxlY3QnOiBNYXRlcmlhbFNlbGVjdENvbXBvbmVudCxcbiAgICAnc2xpZGVyJzogTWF0ZXJpYWxTbGlkZXJDb21wb25lbnQsXG4gICAgJ3N0ZXBwZXInOiBNYXRlcmlhbFN0ZXBwZXJDb21wb25lbnQsXG4gICAgJ3RhYnMnOiBNYXRlcmlhbFRhYnNDb21wb25lbnQsXG4gICAgJ3RleHQnOiBNYXRlcmlhbElucHV0Q29tcG9uZW50LFxuICAgICd0ZXh0YXJlYSc6IE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQsXG4gICAgJ2FsdC1kYXRlJzogJ2RhdGUnLFxuICAgICdhbnktb2YnOiAnb25lLW9mJyxcbiAgICAnY2FyZCc6ICdzZWN0aW9uJyxcbiAgICAnY29sb3InOiAndGV4dCcsXG4gICAgJ2V4cGFuc2lvbi1wYW5lbCc6ICdzZWN0aW9uJyxcbiAgICAnaGlkZGVuJzogJ25vbmUnLFxuICAgICdpbWFnZSc6ICdub25lJyxcbiAgICAnaW50ZWdlcic6ICdudW1iZXInLFxuICAgICdyYWRpb2J1dHRvbnMnOiAnYnV0dG9uLWdyb3VwJyxcbiAgICAncmFuZ2UnOiAnc2xpZGVyJyxcbiAgICAnc3VibWl0JzogJ2J1dHRvbicsXG4gICAgJ3RhZ3NpbnB1dCc6ICdjaGlwLWxpc3QnLFxuICAgICd3aXphcmQnOiAnc3RlcHBlcicsXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { JsonSchemaFormService } from '@ajsf/core';
|
|
3
|
+
export class FlexLayoutRootComponent {
|
|
4
|
+
constructor(jsf) {
|
|
5
|
+
this.jsf = jsf;
|
|
6
|
+
this.isFlexItem = false;
|
|
7
|
+
}
|
|
8
|
+
removeItem(item) {
|
|
9
|
+
this.jsf.removeItem(item);
|
|
10
|
+
}
|
|
11
|
+
// Set attributes for flexbox child
|
|
12
|
+
// (container attributes are set in flex-layout-section.component)
|
|
13
|
+
getFlexAttribute(node, attribute) {
|
|
14
|
+
const index = ['flex-grow', 'flex-shrink', 'flex-basis'].indexOf(attribute);
|
|
15
|
+
return ((node.options || {}).flex || '').split(/\s+/)[index] ||
|
|
16
|
+
(node.options || {})[attribute] || ['1', '1', 'auto'][index];
|
|
17
|
+
}
|
|
18
|
+
showWidget(layoutNode) {
|
|
19
|
+
return this.jsf.evaluateCondition(layoutNode, this.dataIndex);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
FlexLayoutRootComponent.decorators = [
|
|
23
|
+
{ type: Component, args: [{
|
|
24
|
+
// tslint:disable-next-line:component-selector
|
|
25
|
+
selector: 'flex-layout-root-widget',
|
|
26
|
+
template: `
|
|
27
|
+
<div *ngFor="let layoutNode of layout; let i = index"
|
|
28
|
+
[class.form-flex-item]="isFlexItem"
|
|
29
|
+
[style.flex-grow]="getFlexAttribute(layoutNode, 'flex-grow')"
|
|
30
|
+
[style.flex-shrink]="getFlexAttribute(layoutNode, 'flex-shrink')"
|
|
31
|
+
[style.flex-basis]="getFlexAttribute(layoutNode, 'flex-basis')"
|
|
32
|
+
[style.align-self]="(layoutNode?.options || {})['align-self']"
|
|
33
|
+
[style.order]="layoutNode?.options?.order"
|
|
34
|
+
[fxFlex]="layoutNode?.options?.fxFlex"
|
|
35
|
+
[fxFlexOrder]="layoutNode?.options?.fxFlexOrder"
|
|
36
|
+
[fxFlexOffset]="layoutNode?.options?.fxFlexOffset"
|
|
37
|
+
[fxFlexAlign]="layoutNode?.options?.fxFlexAlign">
|
|
38
|
+
<select-framework-widget *ngIf="showWidget(layoutNode)"
|
|
39
|
+
[dataIndex]="layoutNode?.arrayItem ? (dataIndex || []).concat(i) : (dataIndex || [])"
|
|
40
|
+
[layoutIndex]="(layoutIndex || []).concat(i)"
|
|
41
|
+
[layoutNode]="layoutNode"></select-framework-widget>
|
|
42
|
+
<div>`,
|
|
43
|
+
changeDetection: ChangeDetectionStrategy.Default
|
|
44
|
+
},] }
|
|
45
|
+
];
|
|
46
|
+
FlexLayoutRootComponent.ctorParameters = () => [
|
|
47
|
+
{ type: JsonSchemaFormService }
|
|
48
|
+
];
|
|
49
|
+
FlexLayoutRootComponent.propDecorators = {
|
|
50
|
+
dataIndex: [{ type: Input }],
|
|
51
|
+
layoutIndex: [{ type: Input }],
|
|
52
|
+
layout: [{ type: Input }],
|
|
53
|
+
isFlexItem: [{ type: Input }]
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1sYXlvdXQtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9mbGV4LWxheW91dC1yb290LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUF5Qm5ELE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQUgzQixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBSXhCLENBQUM7SUFFTCxVQUFVLENBQUMsSUFBSTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsa0VBQWtFO0lBQ2xFLGdCQUFnQixDQUFDLElBQVMsRUFBRSxTQUFpQjtRQUMzQyxNQUFNLEtBQUssR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDMUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7O1lBOUNGLFNBQVMsU0FBQztnQkFDVCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztVQWdCRjtnQkFDUixlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTzthQUNqRDs7O1lBeEJRLHFCQUFxQjs7O3dCQTBCM0IsS0FBSzswQkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAYWpzZi9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2ZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsYXlvdXROb2RlIG9mIGxheW91dDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBbY2xhc3MuZm9ybS1mbGV4LWl0ZW1dPVwiaXNGbGV4SXRlbVwiXG4gICAgICBbc3R5bGUuZmxleC1ncm93XT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0Tm9kZSwgJ2ZsZXgtZ3JvdycpXCJcbiAgICAgIFtzdHlsZS5mbGV4LXNocmlua109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dE5vZGUsICdmbGV4LXNocmluaycpXCJcbiAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0Tm9kZSwgJ2ZsZXgtYmFzaXMnKVwiXG4gICAgICBbc3R5bGUuYWxpZ24tc2VsZl09XCIobGF5b3V0Tm9kZT8ub3B0aW9ucyB8fCB7fSlbJ2FsaWduLXNlbGYnXVwiXG4gICAgICBbc3R5bGUub3JkZXJdPVwibGF5b3V0Tm9kZT8ub3B0aW9ucz8ub3JkZXJcIlxuICAgICAgW2Z4RmxleF09XCJsYXlvdXROb2RlPy5vcHRpb25zPy5meEZsZXhcIlxuICAgICAgW2Z4RmxleE9yZGVyXT1cImxheW91dE5vZGU/Lm9wdGlvbnM/LmZ4RmxleE9yZGVyXCJcbiAgICAgIFtmeEZsZXhPZmZzZXRdPVwibGF5b3V0Tm9kZT8ub3B0aW9ucz8uZnhGbGV4T2Zmc2V0XCJcbiAgICAgIFtmeEZsZXhBbGlnbl09XCJsYXlvdXROb2RlPy5vcHRpb25zPy5meEZsZXhBbGlnblwiPlxuICAgICAgPHNlbGVjdC1mcmFtZXdvcmstd2lkZ2V0ICpuZ0lmPVwic2hvd1dpZGdldChsYXlvdXROb2RlKVwiXG4gICAgICAgIFtkYXRhSW5kZXhdPVwibGF5b3V0Tm9kZT8uYXJyYXlJdGVtID8gKGRhdGFJbmRleCB8fCBbXSkuY29uY2F0KGkpIDogKGRhdGFJbmRleCB8fCBbXSlcIlxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4IHx8IFtdKS5jb25jYXQoaSlcIlxuICAgICAgICBbbGF5b3V0Tm9kZV09XCJsYXlvdXROb2RlXCI+PC9zZWxlY3QtZnJhbWV3b3JrLXdpZGdldD5cbiAgICA8ZGl2PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgRmxleExheW91dFJvb3RDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBsYXlvdXRJbmRleDogbnVtYmVyW107XG4gIEBJbnB1dCgpIGxheW91dDogYW55W107XG4gIEBJbnB1dCgpIGlzRmxleEl0ZW0gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGpzZjogSnNvblNjaGVtYUZvcm1TZXJ2aWNlXG4gICkgeyB9XG5cbiAgcmVtb3ZlSXRlbShpdGVtKSB7XG4gICAgdGhpcy5qc2YucmVtb3ZlSXRlbShpdGVtKTtcbiAgfVxuXG4gIC8vIFNldCBhdHRyaWJ1dGVzIGZvciBmbGV4Ym94IGNoaWxkXG4gIC8vIChjb250YWluZXIgYXR0cmlidXRlcyBhcmUgc2V0IGluIGZsZXgtbGF5b3V0LXNlY3Rpb24uY29tcG9uZW50KVxuICBnZXRGbGV4QXR0cmlidXRlKG5vZGU6IGFueSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IFsnZmxleC1ncm93JywgJ2ZsZXgtc2hyaW5rJywgJ2ZsZXgtYmFzaXMnXS5pbmRleE9mKGF0dHJpYnV0ZSk7XG4gICAgcmV0dXJuICgobm9kZS5vcHRpb25zIHx8IHt9KS5mbGV4IHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxuICAgICAgKG5vZGUub3B0aW9ucyB8fCB7fSlbYXR0cmlidXRlXSB8fCBbJzEnLCAnMScsICdhdXRvJ11baW5kZXhdO1xuICB9XG5cbiAgc2hvd1dpZGdldChsYXlvdXROb2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5qc2YuZXZhbHVhdGVDb25kaXRpb24obGF5b3V0Tm9kZSwgdGhpcy5kYXRhSW5kZXgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { JsonSchemaFormService } from '@ajsf/core';
|
|
3
|
+
export class FlexLayoutSectionComponent {
|
|
4
|
+
constructor(jsf) {
|
|
5
|
+
this.jsf = jsf;
|
|
6
|
+
this.controlDisabled = false;
|
|
7
|
+
this.boundControl = false;
|
|
8
|
+
this.expanded = true;
|
|
9
|
+
this.containerType = 'div';
|
|
10
|
+
}
|
|
11
|
+
get sectionTitle() {
|
|
12
|
+
return this.options.notitle ? null : this.jsf.setItemTitle(this);
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.jsf.initializeControl(this);
|
|
16
|
+
this.options = this.layoutNode.options || {};
|
|
17
|
+
this.expanded = typeof this.options.expanded === 'boolean' ?
|
|
18
|
+
this.options.expanded : !this.options.expandable;
|
|
19
|
+
switch (this.layoutNode.type) {
|
|
20
|
+
case 'section':
|
|
21
|
+
case 'array':
|
|
22
|
+
case 'fieldset':
|
|
23
|
+
case 'advancedfieldset':
|
|
24
|
+
case 'authfieldset':
|
|
25
|
+
case 'optionfieldset':
|
|
26
|
+
case 'selectfieldset':
|
|
27
|
+
this.containerType = 'fieldset';
|
|
28
|
+
break;
|
|
29
|
+
case 'card':
|
|
30
|
+
this.containerType = 'card';
|
|
31
|
+
break;
|
|
32
|
+
case 'expansion-panel':
|
|
33
|
+
this.containerType = 'expansion-panel';
|
|
34
|
+
break;
|
|
35
|
+
default: // 'div', 'flex', 'tab', 'conditional', 'actions'
|
|
36
|
+
this.containerType = 'div';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
toggleExpanded() {
|
|
40
|
+
if (this.options.expandable) {
|
|
41
|
+
this.expanded = !this.expanded;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Set attributes for flexbox container
|
|
45
|
+
// (child attributes are set in flex-layout-root.component)
|
|
46
|
+
getFlexAttribute(attribute) {
|
|
47
|
+
const flexActive = this.layoutNode.type === 'flex' ||
|
|
48
|
+
!!this.options.displayFlex ||
|
|
49
|
+
this.options.display === 'flex';
|
|
50
|
+
// if (attribute !== 'flex' && !flexActive) { return null; }
|
|
51
|
+
switch (attribute) {
|
|
52
|
+
case 'is-flex':
|
|
53
|
+
return flexActive;
|
|
54
|
+
case 'display':
|
|
55
|
+
return flexActive ? 'flex' : 'initial';
|
|
56
|
+
case 'flex-direction':
|
|
57
|
+
case 'flex-wrap':
|
|
58
|
+
const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);
|
|
59
|
+
return (this.options['flex-flow'] || '').split(/\s+/)[index] ||
|
|
60
|
+
this.options[attribute] || ['column', 'nowrap'][index];
|
|
61
|
+
case 'justify-content':
|
|
62
|
+
case 'align-items':
|
|
63
|
+
case 'align-content':
|
|
64
|
+
return this.options[attribute];
|
|
65
|
+
case 'layout':
|
|
66
|
+
return (this.options.fxLayout || 'row') +
|
|
67
|
+
this.options.fxLayoutWrap ? ' ' + this.options.fxLayoutWrap : '';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
FlexLayoutSectionComponent.decorators = [
|
|
72
|
+
{ type: Component, args: [{
|
|
73
|
+
// tslint:disable-next-line:component-selector
|
|
74
|
+
selector: 'flex-layout-section-widget',
|
|
75
|
+
template: `
|
|
76
|
+
<div *ngIf="containerType === 'div'"
|
|
77
|
+
[class]="options?.htmlClass || ''"
|
|
78
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
79
|
+
[class.expanded]="options?.expandable && expanded">
|
|
80
|
+
<label *ngIf="sectionTitle"
|
|
81
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
82
|
+
[innerHTML]="sectionTitle"
|
|
83
|
+
(click)="toggleExpanded()"></label>
|
|
84
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
85
|
+
[layout]="layoutNode.items"
|
|
86
|
+
[dataIndex]="dataIndex"
|
|
87
|
+
[layoutIndex]="layoutIndex"
|
|
88
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
89
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
90
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
91
|
+
[style.display]="getFlexAttribute('display')"
|
|
92
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
93
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
94
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
95
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
96
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
97
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
98
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
99
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
100
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
101
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
102
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<fieldset *ngIf="containerType === 'fieldset'"
|
|
106
|
+
[class]="options?.htmlClass || ''"
|
|
107
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
108
|
+
[class.expanded]="options?.expandable && expanded"
|
|
109
|
+
[disabled]="options?.readonly">
|
|
110
|
+
<legend *ngIf="sectionTitle"
|
|
111
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
112
|
+
[innerHTML]="sectionTitle"
|
|
113
|
+
(click)="toggleExpanded()"></legend>
|
|
114
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
115
|
+
[layout]="layoutNode.items"
|
|
116
|
+
[dataIndex]="dataIndex"
|
|
117
|
+
[layoutIndex]="layoutIndex"
|
|
118
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
119
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
120
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
121
|
+
[style.display]="getFlexAttribute('display')"
|
|
122
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
123
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
124
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
125
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
126
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
127
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
128
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
129
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
130
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
131
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
132
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
133
|
+
</fieldset>
|
|
134
|
+
|
|
135
|
+
<mat-card *ngIf="containerType === 'card'"
|
|
136
|
+
[ngClass]="options?.htmlClass || ''"
|
|
137
|
+
[class.expandable]="options?.expandable && !expanded"
|
|
138
|
+
[class.expanded]="options?.expandable && expanded">
|
|
139
|
+
<mat-card-header *ngIf="sectionTitle">
|
|
140
|
+
<legend
|
|
141
|
+
[class]="'legend ' + (options?.labelHtmlClass || '')"
|
|
142
|
+
[innerHTML]="sectionTitle"
|
|
143
|
+
(click)="toggleExpanded()"></legend>
|
|
144
|
+
</mat-card-header>
|
|
145
|
+
<mat-card-content *ngIf="expanded">
|
|
146
|
+
<fieldset [disabled]="options?.readonly">
|
|
147
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
148
|
+
[layout]="layoutNode.items"
|
|
149
|
+
[dataIndex]="dataIndex"
|
|
150
|
+
[layoutIndex]="layoutIndex"
|
|
151
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
152
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
153
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
154
|
+
[style.display]="getFlexAttribute('display')"
|
|
155
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
156
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
157
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
158
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
159
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
160
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
161
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
162
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
163
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
164
|
+
</fieldset>
|
|
165
|
+
</mat-card-content>
|
|
166
|
+
<mat-card-footer>
|
|
167
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
168
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
169
|
+
</mat-card-footer>
|
|
170
|
+
</mat-card>
|
|
171
|
+
|
|
172
|
+
<mat-expansion-panel *ngIf="containerType === 'expansion-panel'"
|
|
173
|
+
[expanded]="expanded"
|
|
174
|
+
[hideToggle]="!options?.expandable">
|
|
175
|
+
<mat-expansion-panel-header>
|
|
176
|
+
<mat-panel-title>
|
|
177
|
+
<legend *ngIf="sectionTitle"
|
|
178
|
+
[class]="options?.labelHtmlClass"
|
|
179
|
+
[innerHTML]="sectionTitle"
|
|
180
|
+
(click)="toggleExpanded()"></legend>
|
|
181
|
+
</mat-panel-title>
|
|
182
|
+
</mat-expansion-panel-header>
|
|
183
|
+
<fieldset [disabled]="options?.readonly">
|
|
184
|
+
<flex-layout-root-widget *ngIf="expanded"
|
|
185
|
+
[layout]="layoutNode.items"
|
|
186
|
+
[dataIndex]="dataIndex"
|
|
187
|
+
[layoutIndex]="layoutIndex"
|
|
188
|
+
[isFlexItem]="getFlexAttribute('is-flex')"
|
|
189
|
+
[class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
|
|
190
|
+
[class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
|
|
191
|
+
[style.display]="getFlexAttribute('display')"
|
|
192
|
+
[style.flex-direction]="getFlexAttribute('flex-direction')"
|
|
193
|
+
[style.flex-wrap]="getFlexAttribute('flex-wrap')"
|
|
194
|
+
[style.justify-content]="getFlexAttribute('justify-content')"
|
|
195
|
+
[style.align-items]="getFlexAttribute('align-items')"
|
|
196
|
+
[style.align-content]="getFlexAttribute('align-content')"
|
|
197
|
+
[fxLayout]="getFlexAttribute('layout')"
|
|
198
|
+
[fxLayoutGap]="options?.fxLayoutGap"
|
|
199
|
+
[fxLayoutAlign]="options?.fxLayoutAlign"
|
|
200
|
+
[attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>
|
|
201
|
+
</fieldset>
|
|
202
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
203
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
204
|
+
</mat-expansion-panel>`,
|
|
205
|
+
styles: [`
|
|
206
|
+
fieldset { border: 0; margin: 0; padding: 0; }
|
|
207
|
+
.legend { font-weight: bold; }
|
|
208
|
+
.expandable > .legend:before { content: '▶'; padding-right: .3em; }
|
|
209
|
+
.expanded > .legend:before { content: '▼'; padding-right: .2em; }
|
|
210
|
+
`]
|
|
211
|
+
},] }
|
|
212
|
+
];
|
|
213
|
+
FlexLayoutSectionComponent.ctorParameters = () => [
|
|
214
|
+
{ type: JsonSchemaFormService }
|
|
215
|
+
];
|
|
216
|
+
FlexLayoutSectionComponent.propDecorators = {
|
|
217
|
+
layoutNode: [{ type: Input }],
|
|
218
|
+
layoutIndex: [{ type: Input }],
|
|
219
|
+
dataIndex: [{ type: Input }]
|
|
220
|
+
};
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9mbGV4LWxheW91dC1zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUE4SW5ELE1BQU0sT0FBTywwQkFBMEI7SUFhckMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQVZwQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBT2xCLENBQUM7SUFFTCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDbkQsUUFBUSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUM1QixLQUFLLFNBQVMsQ0FBQztZQUFDLEtBQUssT0FBTyxDQUFDO1lBQUMsS0FBSyxVQUFVLENBQUM7WUFBQyxLQUFLLGtCQUFrQixDQUFDO1lBQ3ZFLEtBQUssY0FBYyxDQUFDO1lBQUMsS0FBSyxnQkFBZ0IsQ0FBQztZQUFDLEtBQUssZ0JBQWdCO2dCQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztnQkFDNUIsTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLGlCQUFpQixDQUFDO2dCQUN2QyxNQUFNO1lBQ1IsU0FBUyxpREFBaUQ7Z0JBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBRTtJQUNsRSxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLDJEQUEyRDtJQUMzRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLFVBQVUsR0FDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDO1FBQ2xDLDREQUE0RDtRQUM1RCxRQUFRLFNBQVMsRUFBRTtZQUNqQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxVQUFVLENBQUM7WUFDcEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxLQUFLLGdCQUFnQixDQUFDO1lBQUMsS0FBSyxXQUFXO2dCQUNyQyxNQUFNLEtBQUssR0FBRyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxLQUFLLGlCQUFpQixDQUFDO1lBQUMsS0FBSyxhQUFhLENBQUM7WUFBQyxLQUFLLGVBQWU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqQyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztvQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBRXRFO0lBQ0gsQ0FBQzs7O1lBbE5GLFNBQVMsU0FBQztnQkFDVCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJCQWlJZTt5QkFDaEI7Ozs7O0dBS1I7YUFDRjs7O1lBN0lRLHFCQUFxQjs7O3lCQXVKM0IsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJ0BhanNmL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2ZsZXgtbGF5b3V0LXNlY3Rpb24td2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGFpbmVyVHlwZSA9PT0gJ2RpdidcIlxuICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiXG4gICAgICBbY2xhc3MuZXhwYW5kYWJsZV09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmICFleHBhbmRlZFwiXG4gICAgICBbY2xhc3MuZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiBleHBhbmRlZFwiPlxuICAgICAgPGxhYmVsICpuZ0lmPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgW2NsYXNzXT1cIidsZWdlbmQgJyArIChvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJylcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sYWJlbD5cbiAgICAgIDxmbGV4LWxheW91dC1yb290LXdpZGdldCAqbmdJZj1cImV4cGFuZGVkXCJcbiAgICAgICAgW2xheW91dF09XCJsYXlvdXROb2RlLml0ZW1zXCJcbiAgICAgICAgW2RhdGFJbmRleF09XCJkYXRhSW5kZXhcIlxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXhcIlxuICAgICAgICBbaXNGbGV4SXRlbV09XCJnZXRGbGV4QXR0cmlidXRlKCdpcy1mbGV4JylcIlxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtcm93XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdyb3cnXCJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJylcIlxuICAgICAgICBbc3R5bGUuZmxleC13cmFwXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtd3JhcCcpXCJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiXG4gICAgICAgIFtzdHlsZS5hbGlnbi1pdGVtc109XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1pdGVtcycpXCJcbiAgICAgICAgW3N0eWxlLmFsaWduLWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24tY29udGVudCcpXCJcbiAgICAgICAgW2Z4TGF5b3V0XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2xheW91dCcpXCJcbiAgICAgICAgW2Z4TGF5b3V0R2FwXT1cIm9wdGlvbnM/LmZ4TGF5b3V0R2FwXCJcbiAgICAgICAgW2Z4TGF5b3V0QWxpZ25dPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiXG4gICAgICAgIFthdHRyLmZ4RmxleEZpbGxdPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiPjwvZmxleC1sYXlvdXQtcm9vdC13aWRnZXQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGZpZWxkc2V0ICpuZ0lmPVwiY29udGFpbmVyVHlwZSA9PT0gJ2ZpZWxkc2V0J1wiXG4gICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcbiAgICAgIFtjbGFzcy5leHBhbmRhYmxlXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgIWV4cGFuZGVkXCJcbiAgICAgIFtjbGFzcy5leHBhbmRlZF09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmIGV4cGFuZGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25zPy5yZWFkb25seVwiPlxuICAgICAgPGxlZ2VuZCAqbmdJZj1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgIFtjbGFzc109XCInbGVnZW5kICcgKyAob3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoKVwiPjwvbGVnZW5kPlxuICAgICAgPGZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0ICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICBbbGF5b3V0XT1cImxheW91dE5vZGUuaXRlbXNcIlxuICAgICAgICBbZGF0YUluZGV4XT1cImRhdGFJbmRleFwiXG4gICAgICAgIFtsYXlvdXRJbmRleF09XCJsYXlvdXRJbmRleFwiXG4gICAgICAgIFtpc0ZsZXhJdGVtXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2lzLWZsZXgnKVwiXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtY29sdW1uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJykgPT09ICdjb2x1bW4nXCJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJnZXRGbGV4QXR0cmlidXRlKCdkaXNwbGF5JylcIlxuICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXG4gICAgICAgIFtzdHlsZS5mbGV4LXdyYXBdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC13cmFwJylcIlxuICAgICAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2p1c3RpZnktY29udGVudCcpXCJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxuICAgICAgICBbc3R5bGUuYWxpZ24tY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1jb250ZW50JylcIlxuICAgICAgICBbZnhMYXlvdXRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnbGF5b3V0JylcIlxuICAgICAgICBbZnhMYXlvdXRHYXBdPVwib3B0aW9ucz8uZnhMYXlvdXRHYXBcIlxuICAgICAgICBbZnhMYXlvdXRBbGlnbl09XCJvcHRpb25zPy5meExheW91dEFsaWduXCJcbiAgICAgICAgW2F0dHIuZnhGbGV4RmlsbF09XCJvcHRpb25zPy5meExheW91dEFsaWduXCI+PC9mbGV4LWxheW91dC1yb290LXdpZGdldD5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8uZXJyb3JNZXNzYWdlXCI+PC9tYXQtZXJyb3I+XG4gICAgPC9maWVsZHNldD5cblxuICAgIDxtYXQtY2FyZCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdjYXJkJ1wiXG4gICAgICBbbmdDbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxuICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cIm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgZXhwYW5kZWRcIj5cbiAgICAgIDxtYXQtY2FyZC1oZWFkZXIgKm5nSWY9XCJzZWN0aW9uVGl0bGVcIj5cbiAgICAgICAgPGxlZ2VuZFxuICAgICAgICAgIFtjbGFzc109XCInbGVnZW5kICcgKyAob3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj48L2xlZ2VuZD5cbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJleHBhbmRlZFwiPlxuICAgICAgICA8ZmllbGRzZXQgW2Rpc2FibGVkXT1cIm9wdGlvbnM/LnJlYWRvbmx5XCI+XG4gICAgICAgICAgPGZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0ICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICAgICAgW2xheW91dF09XCJsYXlvdXROb2RlLml0ZW1zXCJcbiAgICAgICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4XCJcbiAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCJsYXlvdXRJbmRleFwiXG4gICAgICAgICAgICBbaXNGbGV4SXRlbV09XCJnZXRGbGV4QXR0cmlidXRlKCdpcy1mbGV4JylcIlxuICAgICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1jb2x1bW5dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ2NvbHVtbidcIlxuICAgICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcbiAgICAgICAgICAgIFtzdHlsZS5mbGV4LWRpcmVjdGlvbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpXCJcbiAgICAgICAgICAgIFtzdHlsZS5mbGV4LXdyYXBdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC13cmFwJylcIlxuICAgICAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiXG4gICAgICAgICAgICBbc3R5bGUuYWxpZ24taXRlbXNdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnYWxpZ24taXRlbXMnKVwiXG4gICAgICAgICAgICBbc3R5bGUuYWxpZ24tY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1jb250ZW50JylcIlxuICAgICAgICAgICAgW2Z4TGF5b3V0XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2xheW91dCcpXCJcbiAgICAgICAgICAgIFtmeExheW91dEdhcF09XCJvcHRpb25zPy5meExheW91dEdhcFwiXG4gICAgICAgICAgICBbZnhMYXlvdXRBbGlnbl09XCJvcHRpb25zPy5meExheW91dEFsaWduXCJcbiAgICAgICAgICAgIFthdHRyLmZ4RmxleEZpbGxdPVwib3B0aW9ucz8uZnhMYXlvdXRBbGlnblwiPjwvZmxleC1sYXlvdXQtcm9vdC13aWRnZXQ+XG4gICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1mb290ZXI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWNhcmQtZm9vdGVyPlxuICAgIDwvbWF0LWNhcmQ+XG5cbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdleHBhbnNpb24tcGFuZWwnXCJcbiAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICBbaGlkZVRvZ2dsZV09XCIhb3B0aW9ucz8uZXhwYW5kYWJsZVwiPlxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxuICAgICAgICAgIDxsZWdlbmQgKm5nSWY9XCJzZWN0aW9uVGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzXCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwic2VjdGlvblRpdGxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sZWdlbmQ+XG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgIDxmaWVsZHNldCBbZGlzYWJsZWRdPVwib3B0aW9ucz8ucmVhZG9ubHlcIj5cbiAgICAgICAgPGZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0ICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZS5pdGVtc1wiXG4gICAgICAgICAgW2RhdGFJbmRleF09XCJkYXRhSW5kZXhcIlxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCJsYXlvdXRJbmRleFwiXG4gICAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcbiAgICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXG4gICAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxuICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2Rpc3BsYXknKVwiXG4gICAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2ZsZXgtZGlyZWN0aW9uJylcIlxuICAgICAgICAgIFtzdHlsZS5mbGV4LXdyYXBdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC13cmFwJylcIlxuICAgICAgICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiZ2V0RmxleEF0dHJpYnV0ZSgnanVzdGlmeS1jb250ZW50JylcIlxuICAgICAgICAgIFtzdHlsZS5hbGlnbi1pdGVtc109XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1pdGVtcycpXCJcbiAgICAgICAgICBbc3R5bGUuYWxpZ24tY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdhbGlnbi1jb250ZW50JylcIlxuICAgICAgICAgIFtmeExheW91dF09XCJnZXRGbGV4QXR0cmlidXRlKCdsYXlvdXQnKVwiXG4gICAgICAgICAgW2Z4TGF5b3V0R2FwXT1cIm9wdGlvbnM/LmZ4TGF5b3V0R2FwXCJcbiAgICAgICAgICBbZnhMYXlvdXRBbGlnbl09XCJvcHRpb25zPy5meExheW91dEFsaWduXCJcbiAgICAgICAgICBbYXR0ci5meEZsZXhGaWxsXT1cIm9wdGlvbnM/LmZ4TGF5b3V0QWxpZ25cIj48L2ZsZXgtbGF5b3V0LXJvb3Qtd2lkZ2V0PlxuICAgICAgPC9maWVsZHNldD5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvcHRpb25zPy5zaG93RXJyb3JzICYmIG9wdGlvbnM/LmVycm9yTWVzc2FnZVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8uZXJyb3JNZXNzYWdlXCI+PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPmAsXG4gIHN0eWxlczogW2BcbiAgICBmaWVsZHNldCB7IGJvcmRlcjogMDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9XG4gICAgLmxlZ2VuZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmV4cGFuZGFibGUgPiAubGVnZW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICfilrYnOyBwYWRkaW5nLXJpZ2h0OiAuM2VtOyB9XG4gICAgLmV4cGFuZGVkID4gLmxlZ2VuZDpiZWZvcmUgeyBjb250ZW50OiAn4pa8JzsgcGFkZGluZy1yaWdodDogLjJlbTsgfVxuICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxleExheW91dFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICBjb250cm9sVmFsdWU6IGFueTtcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xuICBvcHRpb25zOiBhbnk7XG4gIGV4cGFuZGVkID0gdHJ1ZTtcbiAgY29udGFpbmVyVHlwZSA9ICdkaXYnO1xuICBASW5wdXQoKSBsYXlvdXROb2RlOiBhbnk7XG4gIEBJbnB1dCgpIGxheW91dEluZGV4OiBudW1iZXJbXTtcbiAgQElucHV0KCkgZGF0YUluZGV4OiBudW1iZXJbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGpzZjogSnNvblNjaGVtYUZvcm1TZXJ2aWNlXG4gICkgeyB9XG5cbiAgZ2V0IHNlY3Rpb25UaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5vdGl0bGUgPyBudWxsIDogdGhpcy5qc2Yuc2V0SXRlbVRpdGxlKHRoaXMpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlLm9wdGlvbnMgfHwge307XG4gICAgdGhpcy5leHBhbmRlZCA9IHR5cGVvZiB0aGlzLm9wdGlvbnMuZXhwYW5kZWQgPT09ICdib29sZWFuJyA/XG4gICAgICB0aGlzLm9wdGlvbnMuZXhwYW5kZWQgOiAhdGhpcy5vcHRpb25zLmV4cGFuZGFibGU7XG4gICAgc3dpdGNoICh0aGlzLmxheW91dE5vZGUudHlwZSkge1xuICAgICAgY2FzZSAnc2VjdGlvbic6IGNhc2UgJ2FycmF5JzogY2FzZSAnZmllbGRzZXQnOiBjYXNlICdhZHZhbmNlZGZpZWxkc2V0JzpcbiAgICAgIGNhc2UgJ2F1dGhmaWVsZHNldCc6IGNhc2UgJ29wdGlvbmZpZWxkc2V0JzogY2FzZSAnc2VsZWN0ZmllbGRzZXQnOlxuICAgICAgICB0aGlzLmNvbnRhaW5lclR5cGUgPSAnZmllbGRzZXQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NhcmQnOlxuICAgICAgICB0aGlzLmNvbnRhaW5lclR5cGUgPSAnY2FyZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXhwYW5zaW9uLXBhbmVsJzpcbiAgICAgICAgdGhpcy5jb250YWluZXJUeXBlID0gJ2V4cGFuc2lvbi1wYW5lbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogLy8gJ2RpdicsICdmbGV4JywgJ3RhYicsICdjb25kaXRpb25hbCcsICdhY3Rpb25zJ1xuICAgICAgICB0aGlzLmNvbnRhaW5lclR5cGUgPSAnZGl2JztcbiAgICB9XG4gIH1cblxuICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmV4cGFuZGFibGUpIHsgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkOyB9XG4gIH1cblxuICAvLyBTZXQgYXR0cmlidXRlcyBmb3IgZmxleGJveCBjb250YWluZXJcbiAgLy8gKGNoaWxkIGF0dHJpYnV0ZXMgYXJlIHNldCBpbiBmbGV4LWxheW91dC1yb290LmNvbXBvbmVudClcbiAgZ2V0RmxleEF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGNvbnN0IGZsZXhBY3RpdmU6IGJvb2xlYW4gPVxuICAgICAgdGhpcy5sYXlvdXROb2RlLnR5cGUgPT09ICdmbGV4JyB8fFxuICAgICAgISF0aGlzLm9wdGlvbnMuZGlzcGxheUZsZXggfHxcbiAgICAgIHRoaXMub3B0aW9ucy5kaXNwbGF5ID09PSAnZmxleCc7XG4gICAgLy8gaWYgKGF0dHJpYnV0ZSAhPT0gJ2ZsZXgnICYmICFmbGV4QWN0aXZlKSB7IHJldHVybiBudWxsOyB9XG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcbiAgICAgIGNhc2UgJ2lzLWZsZXgnOlxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZTtcbiAgICAgIGNhc2UgJ2Rpc3BsYXknOlxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZSA/ICdmbGV4JyA6ICdpbml0aWFsJztcbiAgICAgIGNhc2UgJ2ZsZXgtZGlyZWN0aW9uJzogY2FzZSAnZmxleC13cmFwJzpcbiAgICAgICAgY29uc3QgaW5kZXggPSBbJ2ZsZXgtZGlyZWN0aW9uJywgJ2ZsZXgtd3JhcCddLmluZGV4T2YoYXR0cmlidXRlKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLm9wdGlvbnNbJ2ZsZXgtZmxvdyddIHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxuICAgICAgICAgIHRoaXMub3B0aW9uc1thdHRyaWJ1dGVdIHx8IFsnY29sdW1uJywgJ25vd3JhcCddW2luZGV4XTtcbiAgICAgIGNhc2UgJ2p1c3RpZnktY29udGVudCc6IGNhc2UgJ2FsaWduLWl0ZW1zJzogY2FzZSAnYWxpZ24tY29udGVudCc6XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbYXR0cmlidXRlXTtcbiAgICAgIGNhc2UgJ2xheW91dCc6XG4gICAgICAgIHJldHVybiAodGhpcy5vcHRpb25zLmZ4TGF5b3V0IHx8ICdyb3cnKSArXG4gICAgICAgICAgdGhpcy5vcHRpb25zLmZ4TGF5b3V0V3JhcCA/ICcgJyArIHRoaXMub3B0aW9ucy5meExheW91dFdyYXAgOiAnJztcblxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { JsonSchemaFormService } from '@ajsf/core';
|
|
3
|
+
export class MaterialAddReferenceComponent {
|
|
4
|
+
constructor(jsf) {
|
|
5
|
+
this.jsf = jsf;
|
|
6
|
+
}
|
|
7
|
+
ngOnInit() {
|
|
8
|
+
this.options = this.layoutNode.options || {};
|
|
9
|
+
}
|
|
10
|
+
get showAddButton() {
|
|
11
|
+
return !this.layoutNode.arrayItem ||
|
|
12
|
+
this.layoutIndex[this.layoutIndex.length - 1] < this.options.maxItems;
|
|
13
|
+
}
|
|
14
|
+
addItem(event) {
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
this.jsf.addItem(this);
|
|
17
|
+
}
|
|
18
|
+
get buttonText() {
|
|
19
|
+
const parent = {
|
|
20
|
+
dataIndex: this.dataIndex.slice(0, -1),
|
|
21
|
+
layoutIndex: this.layoutIndex.slice(0, -1),
|
|
22
|
+
layoutNode: this.jsf.getParentNode(this),
|
|
23
|
+
};
|
|
24
|
+
return parent.layoutNode.add ||
|
|
25
|
+
this.jsf.setArrayItemTitle(parent, this.layoutNode, this.itemCount);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
MaterialAddReferenceComponent.decorators = [
|
|
29
|
+
{ type: Component, args: [{
|
|
30
|
+
// tslint:disable-next-line:component-selector
|
|
31
|
+
selector: 'material-add-reference-widget',
|
|
32
|
+
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>`,
|
|
42
|
+
changeDetection: ChangeDetectionStrategy.Default
|
|
43
|
+
},] }
|
|
44
|
+
];
|
|
45
|
+
MaterialAddReferenceComponent.ctorParameters = () => [
|
|
46
|
+
{ type: JsonSchemaFormService }
|
|
47
|
+
];
|
|
48
|
+
MaterialAddReferenceComponent.propDecorators = {
|
|
49
|
+
layoutNode: [{ type: Input }],
|
|
50
|
+
layoutIndex: [{ type: Input }],
|
|
51
|
+
dataIndex: [{ type: Input }]
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWRkLXJlZmVyZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hanNmLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC1hZGQtcmVmZXJlbmNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFrQm5ELE1BQU0sT0FBTyw2QkFBNkI7SUFTeEMsWUFDVSxHQUEwQjtRQUExQixRQUFHLEdBQUgsR0FBRyxDQUF1QjtJQUNoQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixNQUFNLE1BQU0sR0FBUTtZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUN6QyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEUsQ0FBQzs7O1lBbERGLFNBQVMsU0FBQztnQkFDVCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7O2VBU0c7Z0JBQ2IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87YUFDakQ7OztZQWpCUSxxQkFBcUI7Ozt5QkF1QjNCLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnQGFqc2YvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC1hZGQtcmVmZXJlbmNlLXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNlY3Rpb24gW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiIGFsaWduPVwiZW5kXCI+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uICpuZ0lmPVwic2hvd0FkZEJ1dHRvblwiXG4gICAgICAgIFtjb2xvcl09XCJvcHRpb25zPy5jb2xvciB8fCAnYWNjZW50J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25zPy5yZWFkb25seVwiXG4gICAgICAgIChjbGljayk9XCJhZGRJdGVtKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy5pY29uXCIgW2NsYXNzXT1cIm9wdGlvbnM/Lmljb25cIj48L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9ucz8udGl0bGVcIiBbaW5uZXJIVE1MXT1cImJ1dHRvblRleHRcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NlY3Rpb24+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbEFkZFJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG9wdGlvbnM6IGFueTtcbiAgaXRlbUNvdW50OiBudW1iZXI7XG4gIHByZXZpb3VzTGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBwcmV2aW91c0RhdGFJbmRleDogbnVtYmVyW107XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgfVxuXG4gIGdldCBzaG93QWRkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5sYXlvdXROb2RlLmFycmF5SXRlbSB8fFxuICAgICAgdGhpcy5sYXlvdXRJbmRleFt0aGlzLmxheW91dEluZGV4Lmxlbmd0aCAtIDFdIDwgdGhpcy5vcHRpb25zLm1heEl0ZW1zO1xuICB9XG5cbiAgYWRkSXRlbShldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5qc2YuYWRkSXRlbSh0aGlzKTtcbiAgfVxuXG4gIGdldCBidXR0b25UZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyZW50OiBhbnkgPSB7XG4gICAgICBkYXRhSW5kZXg6IHRoaXMuZGF0YUluZGV4LnNsaWNlKDAsIC0xKSxcbiAgICAgIGxheW91dEluZGV4OiB0aGlzLmxheW91dEluZGV4LnNsaWNlKDAsIC0xKSxcbiAgICAgIGxheW91dE5vZGU6IHRoaXMuanNmLmdldFBhcmVudE5vZGUodGhpcyksXG4gICAgfTtcbiAgICByZXR1cm4gcGFyZW50LmxheW91dE5vZGUuYWRkIHx8XG4gICAgICB0aGlzLmpzZi5zZXRBcnJheUl0ZW1UaXRsZShwYXJlbnQsIHRoaXMubGF5b3V0Tm9kZSwgdGhpcy5pdGVtQ291bnQpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';
|
|
3
|
+
export class MaterialButtonGroupComponent {
|
|
4
|
+
constructor(jsf) {
|
|
5
|
+
this.jsf = jsf;
|
|
6
|
+
this.controlDisabled = false;
|
|
7
|
+
this.boundControl = false;
|
|
8
|
+
this.radiosList = [];
|
|
9
|
+
this.vertical = false;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.options = this.layoutNode.options || {};
|
|
13
|
+
this.radiosList = buildTitleMap(this.options.titleMap || this.options.enumNames, this.options.enum, true);
|
|
14
|
+
this.jsf.initializeControl(this);
|
|
15
|
+
}
|
|
16
|
+
updateValue(value) {
|
|
17
|
+
this.options.showErrors = true;
|
|
18
|
+
this.jsf.updateValue(this, value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
MaterialButtonGroupComponent.decorators = [
|
|
22
|
+
{ type: Component, args: [{
|
|
23
|
+
// tslint:disable-next-line:component-selector
|
|
24
|
+
selector: 'material-button-group-widget',
|
|
25
|
+
template: `
|
|
26
|
+
<div>
|
|
27
|
+
<div *ngIf="options?.title">
|
|
28
|
+
<label
|
|
29
|
+
[attr.for]="'control' + layoutNode?._id"
|
|
30
|
+
[class]="options?.labelHtmlClass || ''"
|
|
31
|
+
[style.display]="options?.notitle ? 'none' : ''"
|
|
32
|
+
[innerHTML]="options?.title"></label>
|
|
33
|
+
</div>
|
|
34
|
+
<mat-button-toggle-group
|
|
35
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
36
|
+
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
37
|
+
[attr.required]="options?.required"
|
|
38
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
39
|
+
[name]="controlName"
|
|
40
|
+
[value]="controlValue"
|
|
41
|
+
[vertical]="!!options.vertical">
|
|
42
|
+
<mat-button-toggle *ngFor="let radioItem of radiosList"
|
|
43
|
+
[id]="'control' + layoutNode?._id + '/' + radioItem?.name"
|
|
44
|
+
[value]="radioItem?.value"
|
|
45
|
+
(click)="updateValue(radioItem?.value)">
|
|
46
|
+
<span [innerHTML]="radioItem?.name"></span>
|
|
47
|
+
</mat-button-toggle>
|
|
48
|
+
</mat-button-toggle-group>
|
|
49
|
+
<mat-error *ngIf="options?.showErrors && options?.errorMessage"
|
|
50
|
+
[innerHTML]="options?.errorMessage"></mat-error>
|
|
51
|
+
</div>`,
|
|
52
|
+
styles: [` mat-error { font-size: 75%; } `]
|
|
53
|
+
},] }
|
|
54
|
+
];
|
|
55
|
+
MaterialButtonGroupComponent.ctorParameters = () => [
|
|
56
|
+
{ type: JsonSchemaFormService }
|
|
57
|
+
];
|
|
58
|
+
MaterialButtonGroupComponent.propDecorators = {
|
|
59
|
+
layoutNode: [{ type: Input }],
|
|
60
|
+
layoutIndex: [{ type: Input }],
|
|
61
|
+
dataIndex: [{ type: Input }]
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fqc2YtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLWJ1dHRvbi1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQW1DbEUsTUFBTSxPQUFPLDRCQUE0QjtJQWF2QyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBVnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQU9iLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBN0RGLFNBQVMsU0FBQztnQkFDVCw4Q0FBOEM7Z0JBQzlDLFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0EwQkQ7eUJBQ0UsaUNBQWlDO2FBQzdDOzs7WUFsQ1EscUJBQXFCOzs7eUJBNEMzQixLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBidWlsZFRpdGxlTWFwIH0gZnJvbSAnQGFqc2YvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC1idXR0b24tZ3JvdXAtd2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIm9wdGlvbnM/LnRpdGxlXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWRcIlxuICAgICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwib3B0aW9ucz8ubm90aXRsZSA/ICdub25lJyA6ICcnXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnRpdGxlXCI+PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJ1N0YXR1cydcIlxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbERpc2FibGVkIHx8IG9wdGlvbnM/LnJlYWRvbmx5XCJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgICAgW3ZlcnRpY2FsXT1cIiEhb3B0aW9ucy52ZXJ0aWNhbFwiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHJhZGlvSXRlbSBvZiByYWRpb3NMaXN0XCJcbiAgICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkICsgJy8nICsgcmFkaW9JdGVtPy5uYW1lXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmFkaW9JdGVtPy52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVZhbHVlKHJhZGlvSXRlbT8udmFsdWUpXCI+XG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJyYWRpb0l0ZW0/Lm5hbWVcIj48L3NwYW4+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5gLFxuICAgIHN0eWxlczogW2AgbWF0LWVycm9yIHsgZm9udC1zaXplOiA3NSU7IH0gYF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQnV0dG9uR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICBjb250cm9sVmFsdWU6IGFueTtcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xuICBvcHRpb25zOiBhbnk7XG4gIHJhZGlvc0xpc3Q6IGFueVtdID0gW107XG4gIHZlcnRpY2FsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLnJhZGlvc0xpc3QgPSBidWlsZFRpdGxlTWFwKFxuICAgICAgdGhpcy5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMub3B0aW9ucy5lbnVtTmFtZXMsXG4gICAgICB0aGlzLm9wdGlvbnMuZW51bSwgdHJ1ZVxuICAgICk7XG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMub3B0aW9ucy5zaG93RXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCB2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { JsonSchemaFormService, hasOwn } from '@ajsf/core';
|
|
3
|
+
export class MaterialButtonComponent {
|
|
4
|
+
constructor(jsf) {
|
|
5
|
+
this.jsf = jsf;
|
|
6
|
+
this.controlDisabled = false;
|
|
7
|
+
this.boundControl = false;
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.options = this.layoutNode.options || {};
|
|
11
|
+
this.jsf.initializeControl(this);
|
|
12
|
+
if (hasOwn(this.options, 'disabled')) {
|
|
13
|
+
this.controlDisabled = this.options.disabled;
|
|
14
|
+
}
|
|
15
|
+
else if (this.jsf.formOptions.disableInvalidSubmit) {
|
|
16
|
+
this.controlDisabled = !this.jsf.isValid;
|
|
17
|
+
this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
updateValue(event) {
|
|
21
|
+
if (typeof this.options.onClick === 'function') {
|
|
22
|
+
this.options.onClick(event);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.jsf.updateValue(this, event.target.value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
MaterialButtonComponent.decorators = [
|
|
30
|
+
{ type: Component, args: [{
|
|
31
|
+
// tslint:disable-next-line:component-selector
|
|
32
|
+
selector: 'material-button-widget',
|
|
33
|
+
template: `
|
|
34
|
+
<div class="button-row" [class]="options?.htmlClass || ''">
|
|
35
|
+
<button mat-raised-button
|
|
36
|
+
[attr.readonly]="options?.readonly ? 'readonly' : null"
|
|
37
|
+
[attr.aria-describedby]="'control' + layoutNode?._id + 'Status'"
|
|
38
|
+
[color]="options?.color || 'primary'"
|
|
39
|
+
[disabled]="controlDisabled || options?.readonly"
|
|
40
|
+
[id]="'control' + layoutNode?._id"
|
|
41
|
+
[name]="controlName"
|
|
42
|
+
[type]="layoutNode?.type"
|
|
43
|
+
[value]="controlValue"
|
|
44
|
+
(click)="updateValue($event)">
|
|
45
|
+
<mat-icon *ngIf="options?.icon" class="mat-24">{{options?.icon}}</mat-icon>
|
|
46
|
+
<span *ngIf="options?.title" [innerHTML]="options?.title"></span>
|
|
47
|
+
</button>
|
|
48
|
+
</div>`,
|
|
49
|
+
styles: [` button { margin-top: 10px; } `]
|
|
50
|
+
},] }
|
|
51
|
+
];
|
|
52
|
+
MaterialButtonComponent.ctorParameters = () => [
|
|
53
|
+
{ type: JsonSchemaFormService }
|
|
54
|
+
];
|
|
55
|
+
MaterialButtonComponent.propDecorators = {
|
|
56
|
+
layoutNode: [{ type: Input }],
|
|
57
|
+
layoutIndex: [{ type: Input }],
|
|
58
|
+
dataIndex: [{ type: Input }]
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fqc2YtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQXVCM0QsTUFBTSxPQUFPLHVCQUF1QjtJQVdsQyxZQUNVLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBUnBDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBUWpCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDOUM7YUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFO1lBQ3BELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7OztZQXJERixTQUFTLFNBQUM7Z0JBQ1QsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztXQWVEO3lCQUNFLGdDQUFnQzthQUM1Qzs7O1lBdEJRLHFCQUFxQjs7O3lCQThCM0IsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSwgaGFzT3duIH0gZnJvbSAnQGFqc2YvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtYnV0dG9uLXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yb3dcIiBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCI+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIFthdHRyLnJlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZCArICdTdGF0dXMnXCJcbiAgICAgICAgW2NvbG9yXT1cIm9wdGlvbnM/LmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWQgfHwgb3B0aW9ucz8ucmVhZG9ubHlcIlxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZT8uX2lkXCJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlPy50eXBlXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm9wdGlvbnM/Lmljb25cIiBjbGFzcz1cIm1hdC0yNFwiPnt7b3B0aW9ucz8uaWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5gLFxuICAgIHN0eWxlczogW2AgYnV0dG9uIHsgbWFyZ2luLXRvcDogMTBweDsgfSBgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuICBjb250cm9sVmFsdWU6IGFueTtcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xuICBvcHRpb25zOiBhbnk7XG4gIEBJbnB1dCgpIGxheW91dE5vZGU6IGFueTtcbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IG51bWJlcltdO1xuICBASW5wdXQoKSBkYXRhSW5kZXg6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUub3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcbiAgICBpZiAoaGFzT3duKHRoaXMub3B0aW9ucywgJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuY29udHJvbERpc2FibGVkID0gdGhpcy5vcHRpb25zLmRpc2FibGVkO1xuICAgIH0gZWxzZSBpZiAodGhpcy5qc2YuZm9ybU9wdGlvbnMuZGlzYWJsZUludmFsaWRTdWJtaXQpIHtcbiAgICAgIHRoaXMuY29udHJvbERpc2FibGVkID0gIXRoaXMuanNmLmlzVmFsaWQ7XG4gICAgICB0aGlzLmpzZi5pc1ZhbGlkQ2hhbmdlcy5zdWJzY3JpYmUoaXNWYWxpZCA9PiB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICFpc1ZhbGlkKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVWYWx1ZShldmVudCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5vbkNsaWNrKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|