@dignite-ng/expand.dynamic-form 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dynamic/dynamic.component.mjs +18 -7
- package/esm2022/lib/components/from/ck-editor/ck-editor-control.component.mjs +1 -2
- package/esm2022/lib/components/from/date-edit/date-edit-config.mjs +1 -8
- package/esm2022/lib/components/from/file-explorer/file-explorer-config.mjs +1 -3
- package/esm2022/lib/components/from/form-control-group.mjs +20 -17
- package/esm2022/lib/components/from/index.mjs +3 -3
- package/esm2022/lib/components/from/matrix/index.mjs +4 -0
- package/esm2022/lib/components/from/matrix/matrix-config.component.mjs +225 -0
- package/esm2022/lib/components/from/matrix/matrix-config.mjs +50 -0
- package/esm2022/lib/components/from/matrix/matrix-control.component.mjs +110 -0
- package/esm2022/lib/components/from/numeric-edit/numberic-edit-config.mjs +1 -2
- package/esm2022/lib/components/from/select/select-config.component.mjs +1 -1
- package/esm2022/lib/components/from/select/select-config.mjs +1 -2
- package/esm2022/lib/components/from/switch/switch-config.mjs +1 -2
- package/esm2022/lib/components/from/switch/switch-control.component.mjs +5 -4
- package/esm2022/lib/components/from/table/index.mjs +4 -0
- package/esm2022/lib/components/from/table/table-config.component.mjs +171 -0
- package/esm2022/lib/components/from/table/table-config.mjs +38 -0
- package/esm2022/lib/components/from/table/table-control.component.mjs +112 -0
- package/esm2022/lib/components/from/text-edit/text-edit-config.mjs +2 -8
- package/esm2022/lib/components/from/text-edit/text-edit.component.mjs +2 -2
- package/esm2022/lib/dynamic-form.module.mjs +22 -6
- package/fesm2022/dignite-ng-expand.dynamic-form.mjs +736 -63
- package/fesm2022/dignite-ng-expand.dynamic-form.mjs.map +1 -1
- package/lib/components/dynamic/dynamic.component.d.ts +7 -4
- package/lib/components/from/date-edit/date-edit-config.d.ts +0 -1
- package/lib/components/from/form-control-group.d.ts +1 -1
- package/lib/components/from/index.d.ts +2 -0
- package/lib/components/from/matrix/index.d.ts +3 -0
- package/lib/components/from/matrix/matrix-config.component.d.ts +72 -0
- package/lib/components/from/matrix/matrix-config.d.ts +24 -0
- package/lib/components/from/matrix/matrix-control.component.d.ts +39 -0
- package/lib/components/from/switch/switch-control.component.d.ts +1 -1
- package/lib/components/from/table/index.d.ts +3 -0
- package/lib/components/from/table/table-config.component.d.ts +57 -0
- package/lib/components/from/table/table-config.d.ts +18 -0
- package/lib/components/from/table/table-control.component.d.ts +36 -0
- package/lib/components/from/text-edit/text-edit-config.d.ts +1 -0
- package/lib/dynamic-form.module.d.ts +11 -8
- package/package.json +1 -1
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
100
100
|
type: ViewChild,
|
|
101
101
|
args: ['submitclick', { static: true }]
|
|
102
102
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vc2VsZWN0L3NlbGVjdC1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9mcm9tL3NlbGVjdC9zZWxlY3QtY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQTBCLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRy9DLE1BS2EscUJBQXFCO0lBRXRCO0lBQ0E7SUFGVixZQUNVLEVBQWUsRUFDZixhQUEyQjtRQUQzQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWM7SUFDakMsQ0FBQztJQUNMLFlBQVk7SUFDWixLQUFLLENBQUs7SUFDVixJQUNXLElBQUksQ0FBQyxDQUFNO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFDRCxVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBQ0QsYUFBYTtJQUNiLFNBQVMsQ0FBSztJQUNkLElBQ1csUUFBUSxDQUFD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U0FBUzsrQkFDRSxrQkFBa0I7NkhBWWpCLElBQUk7c0JBRGQsS0FBSztnQkFRSyxNQUFNO3NCQURoQixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBV3NDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdENvbmZpZyB9IGZyb20gJy4vc2VsZWN0LWNvbmZpZyc7XG5pbXBvcnQgeyBEZkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXNlbGVjdC1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1jb25maWcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb25maWdDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIF9EZkFwaVNlcnZpY2U6IERmQXBpU2VydmljZSxcbiAgKSB7IH1cbiAgLyoq6KGo5Y2V5o6n5Lu257G75Z6LICovXG4gIF90eXBlOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0eXBlKHY6IGFueSkge1xuICAgIHRoaXMuX3R5cGUgPSB2XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuICAvKirooajljZXlrp7kvZMgKi9cbiAgX0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgRW50aXR5KHY6IEZvcm1Hcm91cCkge1xuICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuICAvKirpgInmi6nnmoTooajljZXkv6Hmga8gKi9cbiAgX3NlbGVjdGVkOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIGdldCBmb3JtQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbmZpZ3VyYXRpb24nKSBhcyBGb3JtR3JvdXBcbiAgfVxuICBnZXQgU2VsZWN0T3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29uZmlndXJhdGlvbi5jb250cm9sc1snU2VsZWN0Lk9wdGlvbnMnXSBhcyBGb3JtQXJyYXlcbiAgfVxuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX0VudGl0eSAmJiB0aGlzLl90eXBlKSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpXG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcblxuICAgIH1cbiAgfVxuICAvKirlop7liqDpgInpobkgKi9cbiAgYWRkU2VsZWN0T3B0aW9ucygpIHtcbiAgICB0aGlzLlNlbGVjdE9wdGlvbnMucHVzaChuZXcgRm9ybUdyb3VwKHtcbiAgICAgIFRleHQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBWYWx1ZTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIFNlbGVjdGVkOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpXG4gICAgfSkpXG4gIH1cbiAgLyoq5Yig6Zmk5p+Q5Liq6YCJ6aG5ICovXG4gIGRlbGV0ZVNlbGVjdE9wdGlvbnMoaW5kZXgpIHtcbiAgICB0aGlzLlNlbGVjdE9wdGlvbnMucmVtb3ZlQXQoaW5kZXgpXG4gIH1cblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9FbnRpdHkuc2V0Q29udHJvbCgnZm9ybUNvbmZpZ3VyYXRpb24nLCB0aGlzLmZiLmdyb3VwKG5ldyBTZWxlY3RDb25maWcoKSkpXG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgdGhpcy5fc2VsZWN0ZWQuZm9ybUNvbnRyb2xOYW1lID09IHRoaXMuX3R5cGUpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb25bJ1NlbGVjdC5PcHRpb25zJ10/LmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkU2VsZWN0T3B0aW9ucygpXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuX3NlbGVjdGVkLmZvcm1Db25maWd1cmF0aW9uLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRTZWxlY3RPcHRpb25zKClcbiAgICAgIH1cbiAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICB9KVxuICB9XG5cbiAgdGV4dENoYW5nZShldmVudCxpbmRleCl7XG4gICAgbGV0IFNlbGVjdE9wdGlvbnNJdGVtPXRoaXMuU2VsZWN0T3B0aW9ucy5hdChpbmRleClcbiAgICBsZXQgdmFsdWU9ZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgaWYoU2VsZWN0T3B0aW9uc0l0ZW0uZ2V0KCdWYWx1ZScpLnZhbHVlKSByZXR1cm5cbiAgICBTZWxlY3RPcHRpb25zSXRlbS5wYXRjaFZhbHVlKHtcbiAgICAgIFZhbHVlOnRoaXMuX0RmQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsdWUpXG4gICAgfSlcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJfRW50aXR5XCI+XG4gICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiZm9ybUNvbmZpZ3VyYXRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydEaWduaXRlQWJwRm9ybXM6OlNlbGVjdExpc3RJdGVtJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydEaWduaXRlQWJwRm9ybXM6OlNlbGVjdExpc3RJdGVtVGV4dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydEaWduaXRlQWJwRm9ybXM6OlNlbGVjdExpc3RJdGVtVmFsdWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+e3snRGlnbml0ZUFicEZvcm1zOjpTZWxlY3RMaXN0SXRlbVZhbHVlJyB8IGFicExvY2FsaXphdGlvbn19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIHN0eWxlPVwid2lkdGg6IDElO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImFkZFNlbGVjdE9wdGlvbnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHkgZm9ybUFycmF5TmFtZT1cIlNlbGVjdC5PcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgU2VsZWN0T3B0aW9ucy5jb250cm9scztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJUZXh0XCIgKGNoYW5nZSk9XCJ0ZXh0Q2hhbmdlKCRldmVudCxpKVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiVmFsdWVcIj48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiAgZm9ybUNvbnRyb2xOYW1lPVwiU2VsZWN0ZWRcIiBpZD1cInNlbGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHNjb3BlPVwicm93XCIgc3R5bGU9XCJ3aWR0aDogMSU7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImRlbGV0ZVNlbGVjdE9wdGlvbnMoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLW1pbnVzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4gXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvZGl2PlxuXG5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6TnVsbFRleHQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJTZWxlY3QuTnVsbFRleHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBmb3JtQ29udHJvbE5hbWU9XCJTZWxlY3QuTXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cIk11bHRpcGxlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cIk11bHRpcGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7J0RpZ25pdGVBYnBGb3Jtczo6TXVsdGlwbGUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoYWJwSW5pdCk9XCJzdWJtaXRjbGljaz8ubmF0aXZlRWxlbWVudD8uY2xpY2soKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIlxuICAgICAgICAgICAgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPiJdfQ==
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vc2VsZWN0L3NlbGVjdC1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9mcm9tL3NlbGVjdC9zZWxlY3QtY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQTBCLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBRy9DLE1BTWEscUJBQXFCO0lBRXRCO0lBQ0E7SUFGVixZQUNVLEVBQWUsRUFDZixhQUEyQjtRQUQzQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWM7SUFDakMsQ0FBQztJQUNMLFlBQVk7SUFDWixLQUFLLENBQUs7SUFDVixJQUNXLElBQUksQ0FBQyxDQUFNO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFDRCxVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBQ0QsYUFBYTtJQUNiLFNBQVMsQ0FBSztJQUNkLElBQ1csUUFBUSxDQUFD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U0FBUzsrQkFDRSxrQkFBa0I7NkhBYWpCLElBQUk7c0JBRGQsS0FBSztnQkFRSyxNQUFNO3NCQURoQixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBV3NDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdENvbmZpZyB9IGZyb20gJy4vc2VsZWN0LWNvbmZpZyc7XG5pbXBvcnQgeyBEZkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXNlbGVjdC1jb25maWcnLFxuXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWNvbmZpZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbmZpZ0NvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgX0RmQXBpU2VydmljZTogRGZBcGlTZXJ2aWNlLFxuICApIHsgfVxuICAvKirooajljZXmjqfku7bnsbvlnosgKi9cbiAgX3R5cGU6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHR5cGUodjogYW55KSB7XG4gICAgdGhpcy5fdHlwZSA9IHZcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5fRW50aXR5ID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKumAieaLqeeahOihqOWNleS/oeaBryAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdlxuICAgIHRoaXMuZGF0YUxvYWRlZCgpXG4gIH1cbiAgZ2V0IGZvcm1Db25maWd1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9FbnRpdHkuZ2V0KCdmb3JtQ29uZmlndXJhdGlvbicpIGFzIEZvcm1Hcm91cFxuICB9XG4gIGdldCBTZWxlY3RPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db25maWd1cmF0aW9uLmNvbnRyb2xzWydTZWxlY3QuT3B0aW9ucyddIGFzIEZvcm1BcnJheVxuICB9XG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgYXN5bmMgZGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5fRW50aXR5ICYmIHRoaXMuX3R5cGUpIHtcbiAgICAgIGF3YWl0IHRoaXMuQWZ0ZXJJbml0KClcbiAgICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuXG4gICAgfVxuICB9XG4gIC8qKuWinuWKoOmAiemhuSAqL1xuICBhZGRTZWxlY3RPcHRpb25zKCkge1xuICAgIHRoaXMuU2VsZWN0T3B0aW9ucy5wdXNoKG5ldyBGb3JtR3JvdXAoe1xuICAgICAgVGV4dDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIFZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgU2VsZWN0ZWQ6IG5ldyBGb3JtQ29udHJvbChmYWxzZSlcbiAgICB9KSlcbiAgfVxuICAvKirliKDpmaTmn5DkuKrpgInpobkgKi9cbiAgZGVsZXRlU2VsZWN0T3B0aW9ucyhpbmRleCkge1xuICAgIHRoaXMuU2VsZWN0T3B0aW9ucy5yZW1vdmVBdChpbmRleClcbiAgfVxuXG4gIEFmdGVySW5pdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0VudGl0eS5zZXRDb250cm9sKCdmb3JtQ29uZmlndXJhdGlvbicsIHRoaXMuZmIuZ3JvdXAobmV3IFNlbGVjdENvbmZpZygpKSlcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCAmJiB0aGlzLl9zZWxlY3RlZC5mb3JtQ29udHJvbE5hbWUgPT0gdGhpcy5fdHlwZSkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZC5mb3JtQ29uZmlndXJhdGlvblsnU2VsZWN0Lk9wdGlvbnMnXT8uZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRTZWxlY3RPcHRpb25zKClcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb24ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgLi4udGhpcy5fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFNlbGVjdE9wdGlvbnMoKVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgIH0pXG4gIH1cblxuICB0ZXh0Q2hhbmdlKGV2ZW50LGluZGV4KXtcbiAgICBsZXQgU2VsZWN0T3B0aW9uc0l0ZW09dGhpcy5TZWxlY3RPcHRpb25zLmF0KGluZGV4KVxuICAgIGxldCB2YWx1ZT1ldmVudC50YXJnZXQudmFsdWVcbiAgICBpZihTZWxlY3RPcHRpb25zSXRlbS5nZXQoJ1ZhbHVlJykudmFsdWUpIHJldHVyblxuICAgIFNlbGVjdE9wdGlvbnNJdGVtLnBhdGNoVmFsdWUoe1xuICAgICAgVmFsdWU6dGhpcy5fRGZBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgICB9KVxuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6U2VsZWN0TGlzdEl0ZW0nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6U2VsZWN0TGlzdEl0ZW1UZXh0JyB8IGFicExvY2FsaXphdGlvbn19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6U2VsZWN0TGlzdEl0ZW1WYWx1ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydEaWduaXRlQWJwRm9ybXM6OlNlbGVjdExpc3RJdGVtVmFsdWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgc3R5bGU9XCJ3aWR0aDogMSU7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtXCIgKGNsaWNrLnN0b3ApPVwiYWRkU2VsZWN0T3B0aW9ucygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keSBmb3JtQXJyYXlOYW1lPVwiU2VsZWN0Lk9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBTZWxlY3RPcHRpb25zLmNvbnRyb2xzO2xldCBpPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIlRleHRcIiAoY2hhbmdlKT1cInRleHRDaGFuZ2UoJGV2ZW50LGkpXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJWYWx1ZVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiICBmb3JtQ29udHJvbE5hbWU9XCJTZWxlY3RlZFwiIGlkPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc2NvcGU9XCJyb3dcIiBzdHlsZT1cIndpZHRoOiAxJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlU2VsZWN0T3B0aW9ucyhpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPiBcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG5cblxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snRGlnbml0ZUFicEZvcm1zOjpOdWxsVGV4dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIlNlbGVjdC5OdWxsVGV4dFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGZvcm1Db250cm9sTmFtZT1cIlNlbGVjdC5NdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiTXVsdGlwbGVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiTXVsdGlwbGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3snRGlnbml0ZUFicEZvcm1zOjpNdWx0aXBsZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChhYnBJbml0KT1cInN1Ym1pdGNsaWNrPy5uYXRpdmVFbGVtZW50Py5jbGljaygpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiXG4gICAgICAgICAgICAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+Il19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FormArray } from "@angular/forms";
|
|
2
2
|
export class SelectConfig {
|
|
3
3
|
/**空值文本 */
|
|
4
|
-
// placeholder: any = new FormControl('', Validators.required);
|
|
5
4
|
'Select.NullText' = ['', []];
|
|
6
5
|
//多选
|
|
7
6
|
'Select.Multiple' = [false, []];
|
|
@@ -17,4 +16,4 @@ export class SelectConfig {
|
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZnJvbS9zZWxlY3Qvc2VsZWN0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE1BQU0sT0FBTyxZQUFZO0lBR3JCLFVBQVU7SUFDVixpQkFBaUIsR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxJQUFJO0lBQ0osaUJBQWlCLEdBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsS0FBSztJQUNMLGdCQUFnQixHQUFRLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXpDLFlBQVksSUFBbUI7UUFDM0IsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFHTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29uZmlnIHtcclxuXHJcblxyXG4gICAgLyoq56m65YC85paH5pysICovXHJcbiAgICAnU2VsZWN0Lk51bGxUZXh0JzogYW55ID0gWycnLCBbXV07XHJcbiAgICAvL+WkmumAiVxyXG4gICAgJ1NlbGVjdC5NdWx0aXBsZSc6IGFueSA9IFtmYWxzZSwgW11dO1xyXG4gICAgLy8g6YCJ6aG5XHJcbiAgICAnU2VsZWN0Lk9wdGlvbnMnOiBhbnkgPSBuZXcgRm9ybUFycmF5KFtdKVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBTZWxlY3RDb25maWcpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export class SwitchConfig {
|
|
2
2
|
/**默认值 */
|
|
3
|
-
// placeholder: any = new FormControl('', Validators.required);
|
|
4
3
|
'Switch.Default' = [false, []];
|
|
5
4
|
constructor(data) {
|
|
6
5
|
if (data) {
|
|
@@ -12,4 +11,4 @@ export class SwitchConfig {
|
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZnJvbS9zd2l0Y2gvc3dpdGNoLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sWUFBWTtJQUdyQixTQUFTO0lBQ1QsZ0JBQWdCLEdBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsWUFBWSxJQUFtQjtRQUMzQixJQUFJLElBQUksRUFBRTtZQUNOLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0o7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29uZmlnIHtcclxuXHJcblxyXG4gICAgLyoq6buY6K6k5YC8ICovXHJcbiAgICAnU3dpdGNoLkRlZmF1bHQnOiBhbnkgPSBbZmFsc2UsIFtdXTtcclxuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBTd2l0Y2hDb25maWcpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -27,10 +27,11 @@ class SwitchControlComponent {
|
|
|
27
27
|
this._parentFiledName = v;
|
|
28
28
|
this.dataLoaded();
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
/** */
|
|
31
31
|
_selected;
|
|
32
32
|
set selected(v) {
|
|
33
|
-
|
|
33
|
+
// ?v:false;
|
|
34
|
+
this._selected = v;
|
|
34
35
|
this.dataLoaded();
|
|
35
36
|
}
|
|
36
37
|
submitclick;
|
|
@@ -50,7 +51,7 @@ class SwitchControlComponent {
|
|
|
50
51
|
if (this._fields.required) {
|
|
51
52
|
ValidatorsArray.push(Validators.required);
|
|
52
53
|
}
|
|
53
|
-
let newControl = this.fb.control(this._selected ? this._selected : this._selected === false ? this._selected : this._fields.field.formConfiguration.
|
|
54
|
+
let newControl = this.fb.control(this._selected ? this._selected : this._selected === false ? this._selected : this._fields.field.formConfiguration['Switch.Default'], ValidatorsArray);
|
|
54
55
|
this.extraProperties.setControl(this._fields.field.name, newControl);
|
|
55
56
|
resolve(true);
|
|
56
57
|
});
|
|
@@ -74,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
74
75
|
type: ViewChild,
|
|
75
76
|
args: ['submitclick', { static: true }]
|
|
76
77
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9mcm9tL3N3aXRjaC9zd2l0Y2gtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vc3dpdGNoL3N3aXRjaC1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFcEUsTUFLYSxzQkFBc0I7SUFHdkI7SUFEVixZQUNVLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO0lBR3pCLENBQUM7SUFFRCxVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUFNO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNaLE9BQU8sR0FBUSxFQUFFLENBQUE7SUFDakIsSUFDVyxNQUFNLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixnQkFBZ0IsQ0FBSztJQUNyQixJQUNXLGVBQWUsQ0FBQyxDQUFNO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFDRCxNQUFNO0lBQ04sU0FBUyxDQUFLO0lBQ2QsSUFDVyxRQUFRLENBQUMsQ0FBTTtRQUN4QixZQUFZO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7UUFFbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFDMkMsV0FBVyxDQUFhO0lBR3BFLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFjLENBQUE7SUFDekQsQ0FBQztJQUNELFlBQVk7SUFDWixLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQTtZQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUN6QixlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTthQUMxQztZQUNELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQyxTQUFTLEtBQUcsS0FBSyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1lBQzdLLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtZQUNwRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDZixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBaEVVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDZSQ1JuQywrbkJBWU87O1NESk0sc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CO2tHQWVsQixNQUFNO3NCQURoQixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBU0ssZUFBZTtzQkFEekIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQU9zQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXN3aXRjaC1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3dpdGNoLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb250cm9sQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgKSB7XG5cbiAgfVxuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG5cbiAgLyoq5a2X5q616YWN572u5YiX6KGoICovXG4gIF9maWVsZHM6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRGaWxlZE5hbWUodjogYW55KSB7XG4gICAgdGhpcy5fcGFyZW50RmlsZWROYW1lID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKiAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIC8vID92OmZhbHNlO1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdlxuICAgIFxuICAgIHRoaXMuZGF0YUxvYWRlZCgpXG4gIH1cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuXG4gIGdldCBleHRyYVByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2V4dHJhUHJvcGVydGllcycpIGFzIEZvcm1Hcm91cFxuICB9XG4gIC8qKuaVsOaNruWKoOi9veWujOaIkCAqL1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5KSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpXG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgVmFsaWRhdG9yc0FycmF5ID0gW11cbiAgICAgIGlmICh0aGlzLl9maWVsZHMucmVxdWlyZWQpIHtcbiAgICAgICAgVmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgIH1cbiAgICAgIGxldCBuZXdDb250cm9sID0gdGhpcy5mYi5jb250cm9sKHRoaXMuX3NlbGVjdGVkP3RoaXMuX3NlbGVjdGVkOnRoaXMuX3NlbGVjdGVkPT09ZmFsc2U/dGhpcy5fc2VsZWN0ZWQ6dGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydTd2l0Y2guRGVmYXVsdCddLCBWYWxpZGF0b3JzQXJyYXkpXG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllcy5zZXRDb250cm9sKHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lLCBuZXdDb250cm9sKVxuICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgIH0pXG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImV4dHJhUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkcy5kaXNwbGF5TmFtZVwiPnt7IF9maWVsZHMuZGlzcGxheU5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGZvcm1Db250cm9sTmFtZT1cInt7X2ZpZWxkcy5maWVsZC5uYW1lfX1cIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tdGV4dFwiICpuZ0lmPVwiX2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvblwiPnt7X2ZpZWxkcy5maWVsZC5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbjwvZm9ybT4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './table-config';
|
|
2
|
+
export * from './table-config.component';
|
|
3
|
+
export * from './table-control.component';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlLWNvbmZpZydcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jb25maWcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNvbnRyb2wuY29tcG9uZW50JyJdfQ==
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { TableConfig, TableFormControl } from './table-config';
|
|
3
|
+
import { getExcludeAssignControl } from '../form-control-group';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "../../../services";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@abp/ng.core";
|
|
9
|
+
import * as i5 from "@ngx-validate/core";
|
|
10
|
+
import * as i6 from "@abp/ng.theme.shared";
|
|
11
|
+
class TableConfigComponent {
|
|
12
|
+
fb;
|
|
13
|
+
_DfApiService;
|
|
14
|
+
constructor(fb, _DfApiService) {
|
|
15
|
+
this.fb = fb;
|
|
16
|
+
this._DfApiService = _DfApiService;
|
|
17
|
+
}
|
|
18
|
+
/**表单实体 */
|
|
19
|
+
_Entity;
|
|
20
|
+
set Entity(v) {
|
|
21
|
+
this._Entity = v;
|
|
22
|
+
this.dataLoaded();
|
|
23
|
+
}
|
|
24
|
+
/**选择的表单信息 */
|
|
25
|
+
_selected;
|
|
26
|
+
set selected(v) {
|
|
27
|
+
if (v) {
|
|
28
|
+
this._selected = v;
|
|
29
|
+
this.dataLoaded();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**表单控件组 */
|
|
33
|
+
_fieldControlGroup;
|
|
34
|
+
/**表单控件类型 */
|
|
35
|
+
_type;
|
|
36
|
+
set type(v) {
|
|
37
|
+
this._type = v;
|
|
38
|
+
this.dataLoaded();
|
|
39
|
+
}
|
|
40
|
+
get formConfiguration() {
|
|
41
|
+
return this._Entity.get('formConfiguration');
|
|
42
|
+
}
|
|
43
|
+
get TableColumns() {
|
|
44
|
+
return this.formConfiguration.controls['TableColumns'];
|
|
45
|
+
}
|
|
46
|
+
submitclick;
|
|
47
|
+
async dataLoaded() {
|
|
48
|
+
if (this._Entity && this._type) {
|
|
49
|
+
await this.AfterInit();
|
|
50
|
+
this.submitclick.nativeElement.click();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**增加选项 */
|
|
54
|
+
addTableColumns() {
|
|
55
|
+
this.TableColumns.push(this.fb.group({
|
|
56
|
+
...new TableFormControl(),
|
|
57
|
+
formConfiguration: [{}]
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
/**删除某个选项 */
|
|
61
|
+
deleteTableColumns(index) {
|
|
62
|
+
this.TableColumns.removeAt(index);
|
|
63
|
+
}
|
|
64
|
+
AfterInit() {
|
|
65
|
+
return new Promise((resolve, rejects) => {
|
|
66
|
+
this._Entity.setControl('formConfiguration', this.fb.group(new TableConfig()));
|
|
67
|
+
this._fieldControlGroup = getExcludeAssignControl(this._type);
|
|
68
|
+
if (this._selected && this._selected.formControlName == this._type) {
|
|
69
|
+
this._selected.formConfiguration['TableColumns'].forEach(el => {
|
|
70
|
+
this.addTableColumns();
|
|
71
|
+
});
|
|
72
|
+
this.formConfiguration.patchValue(this._selected.formConfiguration);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
this.addTableColumns();
|
|
76
|
+
}
|
|
77
|
+
resolve(true);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
itemForm;
|
|
81
|
+
/**选择表格的表单控件 */
|
|
82
|
+
selectTableControl(event, i, item) {
|
|
83
|
+
this.CurrentSelectionTableControlName = event.target.value;
|
|
84
|
+
this.tableSelectOpen = true;
|
|
85
|
+
this.tableSelectForm = this.fb.group(new TableFormControl());
|
|
86
|
+
this.TableColumnsIndex = i;
|
|
87
|
+
this.itemForm = item;
|
|
88
|
+
}
|
|
89
|
+
CurrentSelectionTableControlName;
|
|
90
|
+
/**正在创建或编辑的表格项下标 */
|
|
91
|
+
TableColumnsIndex;
|
|
92
|
+
/**创建站点模态框状态 */
|
|
93
|
+
tableSelectOpen = false;
|
|
94
|
+
/**用于确定模态的繁忙状态是否为真 */
|
|
95
|
+
modalBusy = false;
|
|
96
|
+
/**创建站点表单 */
|
|
97
|
+
tableSelectForm;
|
|
98
|
+
/**表格已选择数据 */
|
|
99
|
+
_tableSelected;
|
|
100
|
+
/**表单控件模板-动态赋值表单控件 */
|
|
101
|
+
tableSelectModalSubmit;
|
|
102
|
+
/**创建站点模态框状态改变 */
|
|
103
|
+
tableSelectVisibleChange(event) {
|
|
104
|
+
if (!event) {
|
|
105
|
+
this._tableSelected = undefined;
|
|
106
|
+
this.tableSelectForm = undefined;
|
|
107
|
+
this.CurrentSelectionTableControlName = undefined;
|
|
108
|
+
this.TableColumnsIndex = undefined;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**表单保存提交 */
|
|
113
|
+
createOrEditSave() {
|
|
114
|
+
const formGroup = this.TableColumns.at(this.TableColumnsIndex);
|
|
115
|
+
let formConfigurationgroup = formGroup.get('formConfiguration');
|
|
116
|
+
formConfigurationgroup.setValue({
|
|
117
|
+
...this.tableSelectForm.value['formConfiguration'],
|
|
118
|
+
});
|
|
119
|
+
this.tableSelectOpen = false;
|
|
120
|
+
}
|
|
121
|
+
/**编辑站点按钮 */
|
|
122
|
+
EditSitesBtn(rows, i) {
|
|
123
|
+
this.CurrentSelectionTableControlName = rows.get('formControlName').value;
|
|
124
|
+
this.tableSelectForm = this.fb.group(new TableFormControl());
|
|
125
|
+
this.tableSelectForm.patchValue({
|
|
126
|
+
...rows.value
|
|
127
|
+
});
|
|
128
|
+
this.tableSelectForm.get('formConfiguration').patchValue({
|
|
129
|
+
...rows.value['formConfiguration']
|
|
130
|
+
});
|
|
131
|
+
this._tableSelected = rows.value;
|
|
132
|
+
this.TableColumnsIndex = i;
|
|
133
|
+
this.tableSelectOpen = true;
|
|
134
|
+
}
|
|
135
|
+
/**调整表格位置 */
|
|
136
|
+
TableArrowUpOrDown(type, index) {
|
|
137
|
+
let controlAt = this.TableColumns.at(index);
|
|
138
|
+
this.TableColumns.removeAt(index);
|
|
139
|
+
let lastindex = type == 'up' ? index - 1 : index + 1;
|
|
140
|
+
this.TableColumns.insert(lastindex, controlAt);
|
|
141
|
+
}
|
|
142
|
+
/**字段标签input失去标点生成字段名字 */
|
|
143
|
+
disPlayNameInputBlur(event, item) {
|
|
144
|
+
let value = event.target.value;
|
|
145
|
+
let pinyin = this._DfApiService.chineseToPinyin(value);
|
|
146
|
+
let nameInput = item.get('name');
|
|
147
|
+
if (nameInput.value)
|
|
148
|
+
return;
|
|
149
|
+
nameInput.patchValue(pinyin);
|
|
150
|
+
}
|
|
151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableConfigComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DfApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableConfigComponent, selector: "df-table-config", inputs: { Entity: "Entity", selected: "selected", type: "type" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "tableSelectModalSubmit", first: true, predicate: ["tableSelectModalSubmit"], descendants: true }], ngImport: i0, template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i4.InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i5.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i5.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i6.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
|
|
153
|
+
}
|
|
154
|
+
export { TableConfigComponent };
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableConfigComponent, decorators: [{
|
|
156
|
+
type: Component,
|
|
157
|
+
args: [{ selector: 'df-table-config', template: "<form [formGroup]=\"_Entity\">\n <div formGroupName=\"formConfiguration\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'DigniteAbpForms::SelectListItem' | abpLocalization}}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <th scope=\"col\">{{'Cms::TableColumnDisplayName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnName' | abpLocalization}}</th>\n <th scope=\"col\">{{'Cms::TableColumnForm' | abpLocalization}}</th>\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableColumns()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody formArrayName=\"TableColumns\">\n <ng-container *ngFor=\"let item of TableColumns.controls;let i=index\">\n <tr [formGroupName]=\"i\">\n <td><input type=\"text\" class=\"form-control\" formControlName=\"displayName\" (blur)=\"disPlayNameInputBlur($event,item)\" ></td>\n <td><input type=\"text\" class=\"form-control\" formControlName=\"name\"></td>\n <td>\n <select class=\"form-select\" formControlName=\"formControlName\"\n (change)=\"selectTableControl($event,i,item)\">\n <option value=\"\">SelectFrom</option>\n <ng-container *ngFor=\"let item_f of _fieldControlGroup;let i_f =index\">\n <option [value]=\"item_f.name\">{{item_f.displayName}}</option>\n </ng-container>\n </select>\n </td>\n <td scope=\"row\">\n <div class=\"flex-start\">\n <button class=\"btn btn-light btn-sm \" (click.stop)=\"EditSitesBtn(item,i)\">\n <i class=\"fas fa-edit\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"deleteTableColumns(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==0\"\n (click.stop)=\"TableArrowUpOrDown('up',i)\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" *ngIf=\"i!==TableColumns.controls.length-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <button type=\"submit\" (abpInit)=\"submitclick?.nativeElement?.click()\" style=\"display: none;\"\n #submitclick></button>\n </div>\n</form>\n\n\n<abp-modal [(visible)]=\"tableSelectOpen\" [busy]=\"modalBusy\" (visibleChange)=\"tableSelectVisibleChange($event)\" [options]=\"{ size: CurrentSelectionTableControlName=='Matrix'?'xl':'' ,scrollable:false }\">\n <ng-template #abpHeader>\n <h3>{{_tableSelected?('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"tableSelectForm; else loaderRef\">\n <form class=\"sites-modal-form\" #myForm=\"ngForm\" [formGroup]=\"tableSelectForm\"\n (ngSubmit)=\"createOrEditSave()\">\n <button type=\"submit\" #tableSelectModalSubmit style=\"display: none\"></button>\n <ng-container *ngIf=\"CurrentSelectionTableControlName&&tableSelectForm\">\n <df-dynamic [type]=\"CurrentSelectionTableControlName\" [entity]=\"tableSelectForm\"\n [selected]=\"_tableSelected\" [formGroup]=\"tableSelectForm\"></df-dynamic>\n </ng-container>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\"\n (click)=\"tableSelectModalSubmit.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"] }]
|
|
158
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DfApiService }]; }, propDecorators: { Entity: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], selected: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], type: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], submitclick: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ['submitclick', { static: true }]
|
|
167
|
+
}], tableSelectModalSubmit: [{
|
|
168
|
+
type: ViewChild,
|
|
169
|
+
args: ['tableSelectModalSubmit', { static: false }]
|
|
170
|
+
}] } });
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZnJvbS90YWJsZS90YWJsZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9mcm9tL3RhYmxlL3RhYmxlLWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7OztBQUVoRSxNQUthLG9CQUFvQjtJQUVyQjtJQUNBO0lBRlYsWUFDVSxFQUFlLEVBQ2YsYUFBMkI7UUFEM0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFjO0lBQ2pDLENBQUM7SUFDTCxVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBQ0QsYUFBYTtJQUNiLFNBQVMsQ0FBSztJQUNkLElBQ1csUUFBUSxDQUFDLENBQU07UUFDeEIsSUFBSSxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtZQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7U0FDbEI7SUFDSCxDQUFDO0lBQ0QsV0FBVztJQUNYLGtCQUFrQixDQUFPO0lB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QUMsTUFBTSxDQUFDLENBQUE7SUFDOUIsQ0FBQzt3R0E3SlUsb0JBQW9COzRGQUFwQixvQkFBb0Isc1dDWGpDLHlwS0FvRlk7O1NEekVDLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjs2SEFZaEIsTUFBTTtzQkFEaEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQWFLLElBQUk7c0JBRGQsS0FBSztnQkFXc0MsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQStEYyxzQkFBc0I7c0JBQTdFLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZywgVGFibGVGb3JtQ29udHJvbCB9IGZyb20gJy4vdGFibGUtY29uZmlnJztcbmltcG9ydCB7IERmQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGdldEV4Y2x1ZGVBc3NpZ25Db250cm9sIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWdyb3VwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtdGFibGUtY29uZmlnJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbmZpZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBfRGZBcGlTZXJ2aWNlOiBEZkFwaVNlcnZpY2UsXG4gICkgeyB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5fRW50aXR5ID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKumAieaLqeeahOihqOWNleS/oeaBryAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IHZcbiAgICAgIHRoaXMuZGF0YUxvYWRlZCgpXG4gICAgfVxuICB9XG4gIC8qKuihqOWNleaOp+S7tue7hCAqL1xuICBfZmllbGRDb250cm9sR3JvdXA6IGFueVtdXG5cbiAgLyoq6KGo5Y2V5o6n5Lu257G75Z6LICovXG4gIF90eXBlOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0eXBlKHY6IGFueSkge1xuICAgIHRoaXMuX3R5cGUgPSB2XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuICBnZXQgZm9ybUNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db25maWd1cmF0aW9uJykgYXMgRm9ybUdyb3VwXG4gIH1cbiAgZ2V0IFRhYmxlQ29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29uZmlndXJhdGlvbi5jb250cm9sc1snVGFibGVDb2x1bW5zJ10gYXMgRm9ybUFycmF5XG4gIH1cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9FbnRpdHkgJiYgdGhpcy5fdHlwZSkge1xuICAgICAgYXdhaXQgdGhpcy5BZnRlckluaXQoKVxuICAgICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cbiAgICB9XG4gIH1cbiAgLyoq5aKe5Yqg6YCJ6aG5ICovXG4gIGFkZFRhYmxlQ29sdW1ucygpIHtcbiAgICB0aGlzLlRhYmxlQ29sdW1ucy5wdXNoKHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgLi4ubmV3IFRhYmxlRm9ybUNvbnRyb2woKSxcbiAgICAgIGZvcm1Db25maWd1cmF0aW9uOiBbe31dXG4gICAgfSkpXG4gIH1cbiAgLyoq5Yig6Zmk5p+Q5Liq6YCJ6aG5ICovXG4gIGRlbGV0ZVRhYmxlQ29sdW1ucyhpbmRleCkge1xuICAgIHRoaXMuVGFibGVDb2x1bW5zLnJlbW92ZUF0KGluZGV4KVxuICB9XG5cbiAgQWZ0ZXJJbml0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50aXR5LnNldENvbnRyb2woJ2Zvcm1Db25maWd1cmF0aW9uJywgdGhpcy5mYi5ncm91cChuZXcgVGFibGVDb25maWcoKSkpXG4gICAgICB0aGlzLl9maWVsZENvbnRyb2xHcm91cCA9IGdldEV4Y2x1ZGVBc3NpZ25Db250cm9sKHRoaXMuX3R5cGUpXG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgdGhpcy5fc2VsZWN0ZWQuZm9ybUNvbnRyb2xOYW1lID09IHRoaXMuX3R5cGUpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQuZm9ybUNvbmZpZ3VyYXRpb25bJ1RhYmxlQ29sdW1ucyddLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkVGFibGVDb2x1bW5zKClcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb24ucGF0Y2hWYWx1ZSh0aGlzLl9zZWxlY3RlZC5mb3JtQ29uZmlndXJhdGlvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVGFibGVDb2x1bW5zKClcbiAgICAgIH1cbiAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICB9KVxuICB9XG4gIGl0ZW1Gb3JtOiBhbnlcbiAgLyoq6YCJ5oup6KGo5qC855qE6KGo5Y2V5o6n5Lu2ICovXG4gIHNlbGVjdFRhYmxlQ29udHJvbChldmVudCwgaSwgaXRlbSkge1xuICAgIHRoaXMuQ3VycmVudFNlbGVjdGlvblRhYmxlQ29udHJvbE5hbWUgPSBldmVudC50YXJnZXQudmFsdWVcbiAgICB0aGlzLnRhYmxlU2VsZWN0T3BlbiA9IHRydWVcbiAgICB0aGlzLnRhYmxlU2VsZWN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAobmV3IFRhYmxlRm9ybUNvbnRyb2woKSlcbiAgICB0aGlzLlRhYmxlQ29sdW1uc0luZGV4ID0gaVxuICAgIHRoaXMuaXRlbUZvcm0gPSBpdGVtXG4gIH1cblxuICBDdXJyZW50U2VsZWN0aW9uVGFibGVDb250cm9sTmFtZTogYW55XG5cbiAgLyoq5q2j5Zyo5Yib5bu65oiW57yW6L6R55qE6KGo5qC86aG55LiL5qCHICovXG4gIFRhYmxlQ29sdW1uc0luZGV4OiBhbnlcbiAgLyoq5Yib5bu656uZ54K55qih5oCB5qGG54q25oCBICovXG4gIHRhYmxlU2VsZWN0T3BlbjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoq55So5LqO56Gu5a6a5qih5oCB55qE57mB5b+Z54q25oCB5piv5ZCm5Li655yfICovXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKuWIm+W7uuermeeCueihqOWNlSAqL1xuICB0YWJsZVNlbGVjdEZvcm06IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcblxuICAvKirooajmoLzlt7LpgInmi6nmlbDmja4gKi9cbiAgX3RhYmxlU2VsZWN0ZWQ6IGFueVxuXG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICBAVmlld0NoaWxkKCd0YWJsZVNlbGVjdE1vZGFsU3VibWl0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHRhYmxlU2VsZWN0TW9kYWxTdWJtaXQ6IEVsZW1lbnRSZWY7XG5cblxuICAvKirliJvlu7rnq5nngrnmqKHmgIHmoYbnirbmgIHmlLnlj5ggKi9cbiAgdGFibGVTZWxlY3RWaXNpYmxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5fdGFibGVTZWxlY3RlZCA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy50YWJsZVNlbGVjdEZvcm0gPSB1bmRlZmluZWRcbiAgICAgIHRoaXMuQ3VycmVudFNlbGVjdGlvblRhYmxlQ29udHJvbE5hbWUgPSB1bmRlZmluZWRcbiAgICAgIHRoaXMuVGFibGVDb2x1bW5zSW5kZXggPSB1bmRlZmluZWRcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuICAvKirooajljZXkv53lrZjmj5DkuqQgKi9cbiAgY3JlYXRlT3JFZGl0U2F2ZSgpIHtcbiAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLlRhYmxlQ29sdW1ucy5hdCh0aGlzLlRhYmxlQ29sdW1uc0luZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgbGV0IGZvcm1Db25maWd1cmF0aW9uZ3JvdXAgPSBmb3JtR3JvdXAuZ2V0KCdmb3JtQ29uZmlndXJhdGlvbicpIGFzIEZvcm1Hcm91cFxuXG4gICAgZm9ybUNvbmZpZ3VyYXRpb25ncm91cC5zZXRWYWx1ZSh7XG4gICAgICAuLi50aGlzLnRhYmxlU2VsZWN0Rm9ybS52YWx1ZVsnZm9ybUNvbmZpZ3VyYXRpb24nXSxcbiAgICB9KTtcbiAgICB0aGlzLnRhYmxlU2VsZWN0T3BlbiA9IGZhbHNlXG4gIH1cblxuICAvKirnvJbovpHnq5nngrnmjInpkq4gKi9cbiAgRWRpdFNpdGVzQnRuKHJvd3MsIGkpIHtcblxuICAgIHRoaXMuQ3VycmVudFNlbGVjdGlvblRhYmxlQ29udHJvbE5hbWUgPSByb3dzLmdldCgnZm9ybUNvbnRyb2xOYW1lJykudmFsdWVcbiAgICB0aGlzLnRhYmxlU2VsZWN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAobmV3IFRhYmxlRm9ybUNvbnRyb2woKSlcbiAgICB0aGlzLnRhYmxlU2VsZWN0Rm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLnJvd3MudmFsdWVcbiAgICB9KVxuICAgIHRoaXMudGFibGVTZWxlY3RGb3JtLmdldCgnZm9ybUNvbmZpZ3VyYXRpb24nKS5wYXRjaFZhbHVlKHtcbiAgICAgIC4uLnJvd3MudmFsdWVbJ2Zvcm1Db25maWd1cmF0aW9uJ11cbiAgICB9KVxuICAgIHRoaXMuX3RhYmxlU2VsZWN0ZWQgPSByb3dzLnZhbHVlXG4gICAgdGhpcy5UYWJsZUNvbHVtbnNJbmRleCA9IGlcbiAgICB0aGlzLnRhYmxlU2VsZWN0T3BlbiA9IHRydWVcbiAgfVxuXG5cbiAgLyoq6LCD5pW06KGo5qC85L2N572uICovXG4gIFRhYmxlQXJyb3dVcE9yRG93bih0eXBlLCBpbmRleCkge1xuICAgIGxldCBjb250cm9sQXQgPSB0aGlzLlRhYmxlQ29sdW1ucy5hdChpbmRleClcbiAgICB0aGlzLlRhYmxlQ29sdW1ucy5yZW1vdmVBdChpbmRleClcbiAgICBsZXQgbGFzdGluZGV4ID0gdHlwZSA9PSAndXAnID8gaW5kZXggLSAxIDogaW5kZXggKyAxXG4gICAgdGhpcy5UYWJsZUNvbHVtbnMuaW5zZXJ0KGxhc3RpbmRleCwgY29udHJvbEF0KVxuICB9XG5cblxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCwgaXRlbSkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9EZkFwaVNlcnZpY2UuY2hpbmVzZVRvUGlueWluKHZhbHVlKVxuICAgIGxldCBuYW1lSW5wdXQgPSBpdGVtLmdldCgnbmFtZScpXG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuXG4gICAgbmFtZUlucHV0LnBhdGNoVmFsdWUocGlueWluKVxuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6U2VsZWN0TGlzdEl0ZW0nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPnt7J0Ntczo6VGFibGVDb2x1bW5EaXNwbGF5TmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydDbXM6OlRhYmxlQ29sdW1uTmFtZScgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj57eydDbXM6OlRhYmxlQ29sdW1uRm9ybScgfCBhYnBMb2NhbGl6YXRpb259fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImZsZXgtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtXCIgKGNsaWNrLnN0b3ApPVwiYWRkVGFibGVDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5IGZvcm1BcnJheU5hbWU9XCJUYWJsZUNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBUYWJsZUNvbHVtbnMuY29udHJvbHM7bGV0IGk9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIiAgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50LGl0ZW0pXCIgPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RUYWJsZUNvbnRyb2woJGV2ZW50LGksaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3RGcm9tPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtX2Ygb2YgX2ZpZWxkQ29udHJvbEdyb3VwO2xldCBpX2YgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbV9mLm5hbWVcIj57e2l0ZW1fZi5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBcIiAoY2xpY2suc3RvcCk9XCJFZGl0U2l0ZXNCdG4oaXRlbSxpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWVkaXRcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0xXCIgKGNsaWNrLnN0b3ApPVwiZGVsZXRlVGFibGVDb2x1bW5zKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0xXCIgKm5nSWY9XCJpIT09MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiVGFibGVBcnJvd1VwT3JEb3duKCd1cCcsaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy11cFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIG1zLTFcIiAqbmdJZj1cImkhPT1UYWJsZUNvbHVtbnMuY29udHJvbHMubGVuZ3RoLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cIlRhYmxlQXJyb3dVcE9yRG93bignZG93bicsaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChhYnBJbml0KT1cInN1Ym1pdGNsaWNrPy5uYXRpdmVFbGVtZW50Py5jbGljaygpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiXG4gICAgICAgICAgICAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG5cblxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInRhYmxlU2VsZWN0T3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cInRhYmxlU2VsZWN0VmlzaWJsZUNoYW5nZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwieyBzaXplOiBDdXJyZW50U2VsZWN0aW9uVGFibGVDb250cm9sTmFtZT09J01hdHJpeCc/J3hsJzonJyAsc2Nyb2xsYWJsZTpmYWxzZSB9XCI+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XG4gICAgICAgIDxoMz57e190YWJsZVNlbGVjdGVkPygnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVTZWxlY3RGb3JtOyBlbHNlIGxvYWRlclJlZlwiPlxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJzaXRlcy1tb2RhbC1mb3JtXCIgI215Rm9ybT1cIm5nRm9ybVwiIFtmb3JtR3JvdXBdPVwidGFibGVTZWxlY3RGb3JtXCJcbiAgICAgICAgICAgICAgICAobmdTdWJtaXQpPVwiY3JlYXRlT3JFZGl0U2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI3RhYmxlU2VsZWN0TW9kYWxTdWJtaXQgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkN1cnJlbnRTZWxlY3Rpb25UYWJsZUNvbnRyb2xOYW1lJiZ0YWJsZVNlbGVjdEZvcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRmLWR5bmFtaWMgW3R5cGVdPVwiQ3VycmVudFNlbGVjdGlvblRhYmxlQ29udHJvbE5hbWVcIiBbZW50aXR5XT1cInRhYmxlU2VsZWN0Rm9ybVwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJfdGFibGVTZWxlY3RlZFwiIFtmb3JtR3JvdXBdPVwidGFibGVTZWxlY3RGb3JtXCI+PC9kZi1keW5hbWljPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+e3snQWJwVWk6OkNsb3NlJyB8IGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XG4gICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0YWJsZVNlbGVjdE1vZGFsU3VibWl0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FormArray, FormGroup, Validators } from "@angular/forms";
|
|
2
|
+
export class TableConfig {
|
|
3
|
+
// 选项
|
|
4
|
+
TableColumns = new FormArray([]);
|
|
5
|
+
constructor(data) {
|
|
6
|
+
if (data) {
|
|
7
|
+
for (const key in data) {
|
|
8
|
+
if (data.hasOwnProperty(key)) {
|
|
9
|
+
this[key] = data[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class TableFormControl {
|
|
16
|
+
/**列标题 */
|
|
17
|
+
displayName = ['', [Validators.required]];
|
|
18
|
+
/**空间配置 */
|
|
19
|
+
formConfiguration = new FormGroup({});
|
|
20
|
+
/**列名 */
|
|
21
|
+
name = ['', [Validators.required]];
|
|
22
|
+
//控件标识
|
|
23
|
+
formControlName = ['', [Validators.required]];
|
|
24
|
+
/**是否必填 */
|
|
25
|
+
required = [false];
|
|
26
|
+
/**描述 */
|
|
27
|
+
description = [''];
|
|
28
|
+
constructor(data) {
|
|
29
|
+
if (data) {
|
|
30
|
+
for (const key in data) {
|
|
31
|
+
if (data.hasOwnProperty(key)) {
|
|
32
|
+
this[key] = data[key];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9mcm9tL3RhYmxlL3RhYmxlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRSxNQUFNLE9BQU8sV0FBVztJQUlwQixLQUFLO0lBQ0wsWUFBWSxHQUFRLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXJDLFlBQVksSUFBa0I7UUFDMUIsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0NBQ0o7QUFDRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVM7SUFDVCxXQUFXLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMvQyxVQUFVO0lBQ1YsaUJBQWlCLEdBQVEsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDMUMsUUFBUTtJQUNSLElBQUksR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU07SUFDTixlQUFlLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVuRCxVQUFVO0lBQ1YsUUFBUSxHQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsUUFBUTtJQUNSLFdBQVcsR0FBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBR3hCLFlBQVksSUFBa0I7UUFDMUIsSUFBSSxJQUFJLEVBQUU7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbmZpZyB7XHJcblxyXG5cclxuXHJcbiAgICAvLyDpgInpoblcclxuICAgIFRhYmxlQ29sdW1uczogYW55ID0gbmV3IEZvcm1BcnJheShbXSlcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogVGFibGVDb25maWcpIHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBUYWJsZUZvcm1Db250cm9sIHtcclxuICAgIC8qKuWIl+agh+mimCAqL1xyXG4gICAgZGlzcGxheU5hbWU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuICAgIC8qKuepuumXtOmFjee9riAqL1xyXG4gICAgZm9ybUNvbmZpZ3VyYXRpb246IGFueSA9IG5ldyBGb3JtR3JvdXAoe30pXHJcbiAgICAvKirliJflkI0gKi9cclxuICAgIG5hbWU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuICAgIC8v5o6n5Lu25qCH6K+GXHJcbiAgICBmb3JtQ29udHJvbE5hbWU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXTtcclxuXHJcbiAgICAvKirmmK/lkKblv4XloasgKi9cclxuICAgIHJlcXVpcmVkOiBhbnkgPSBbZmFsc2VdO1xyXG4gICAgLyoq5o+P6L+wICovXHJcbiAgICBkZXNjcmlwdGlvbjogYW55ID0gWycnXTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoZGF0YT86IFRhYmxlQ29uZmlnKSB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
import * as i4 from "@ngx-validate/core";
|
|
8
|
+
class TableControlComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
}
|
|
11
|
+
fb = inject(FormBuilder);
|
|
12
|
+
/**表单实体 */
|
|
13
|
+
_entity;
|
|
14
|
+
set entity(v) {
|
|
15
|
+
this._entity = v;
|
|
16
|
+
this.dataLoaded();
|
|
17
|
+
}
|
|
18
|
+
/**字段配置列表 */
|
|
19
|
+
_fields = '';
|
|
20
|
+
set fields(v) {
|
|
21
|
+
this._fields = v;
|
|
22
|
+
this.dataLoaded();
|
|
23
|
+
}
|
|
24
|
+
/**父级字段名称,用于为表单设置控件赋值 */
|
|
25
|
+
_parentFiledName;
|
|
26
|
+
set parentFiledName(v) {
|
|
27
|
+
this._parentFiledName = v;
|
|
28
|
+
this.dataLoaded();
|
|
29
|
+
}
|
|
30
|
+
/**父级字段名称,用于为表单设置控件赋值 */
|
|
31
|
+
_selected;
|
|
32
|
+
set selected(v) {
|
|
33
|
+
this._selected = v;
|
|
34
|
+
if (v) {
|
|
35
|
+
this.dataLoaded();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
submitclick;
|
|
39
|
+
/** 获取父级字段代表的表单组*/
|
|
40
|
+
extraProperties;
|
|
41
|
+
/**数据加载完成 */
|
|
42
|
+
async dataLoaded() {
|
|
43
|
+
if (this._fields && this._entity && this._parentFiledName) {
|
|
44
|
+
this.extraProperties = this._entity.get(this._parentFiledName);
|
|
45
|
+
await this.AfterInit();
|
|
46
|
+
this.submitclick.nativeElement.click();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
formConfiguration;
|
|
50
|
+
/**获取表格字段代表的控件 */
|
|
51
|
+
fieldNameControl;
|
|
52
|
+
AfterInit() {
|
|
53
|
+
return new Promise((resolve, rejects) => {
|
|
54
|
+
let ValidatorsArray = [];
|
|
55
|
+
if (this._fields.required) {
|
|
56
|
+
ValidatorsArray.push(Validators.required);
|
|
57
|
+
}
|
|
58
|
+
let formConfiguration = this._fields.field.formConfiguration;
|
|
59
|
+
this.formConfiguration = formConfiguration;
|
|
60
|
+
let newArrayGroup = this.fb.array([]);
|
|
61
|
+
this.extraProperties.setControl(this._fields.field.name, newArrayGroup);
|
|
62
|
+
this.fieldNameControl = this.extraProperties.get(this._fields.field.name);
|
|
63
|
+
if (this._selected) {
|
|
64
|
+
this._selected.forEach(el => {
|
|
65
|
+
this.addTableControlItem();
|
|
66
|
+
});
|
|
67
|
+
this.fieldNameControl.patchValue(this._selected);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.addTableControlItem();
|
|
71
|
+
}
|
|
72
|
+
resolve(true);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**增加表格项 */
|
|
76
|
+
addTableControlItem() {
|
|
77
|
+
this.fieldNameControl.push(this.fb.group({
|
|
78
|
+
'extraProperties': this.fb.group({})
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
/**删除表格项 */
|
|
82
|
+
minusTableControlItem(index) {
|
|
83
|
+
this.fieldNameControl.removeAt(index);
|
|
84
|
+
}
|
|
85
|
+
/**调整表格位置 */
|
|
86
|
+
TableArrowUpOrDown(type, index) {
|
|
87
|
+
let controlAt = this.fieldNameControl.at(index);
|
|
88
|
+
this.fieldNameControl.removeAt(index);
|
|
89
|
+
let lastindex = type == 'up' ? index - 1 : index + 1;
|
|
90
|
+
this.fieldNameControl.insert(lastindex, controlAt);
|
|
91
|
+
this._selected = this.fieldNameControl.value;
|
|
92
|
+
}
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableControlComponent, selector: "df-table-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }] });
|
|
95
|
+
}
|
|
96
|
+
export { TableControlComponent };
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableControlComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'df-table-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <table class=\"table\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let item of formConfiguration.TableColumns\">\n <th scope=\"col\">{{ item.displayName }}</th>\n </ng-container>\n\n <th scope=\"col\" class=\"flex-end\">\n <button class=\"btn btn-light btn-sm\" (click.stop)=\"addTableControlItem()\">\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n </th>\n </tr>\n </thead>\n <tbody [formArrayName]=\"_fields.field.name\">\n <ng-container *ngFor=\"let item of fieldNameControl.controls; let i = index\">\n <tr>\n <ng-container *ngFor=\"let el of formConfiguration.TableColumns\">\n <td>\n <ng-container *ngIf=\"item&&el\">\n <df-dynamic [entity]=\"item\" [fields]=\"{ field: el }\"\n [selected]=\"_selected[i]?.extraProperties[''+el.name+'']\"\n [parentFiledName]=\"'extraProperties'\"></df-dynamic>\n </ng-container>\n </td>\n </ng-container>\n <td scope=\"row\" class=\"\">\n <div class=\"flex-end mb-2\">\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"minusTableControlItem(i)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\" (click.stop)=\"TableArrowUpOrDown('up',i)\"\n *ngIf=\"i!==0\">\n <i class=\"fas fa-arrow-up\"></i>\n </button>\n <button class=\"btn btn-light btn-sm ms-1\"\n (click.stop)=\"TableArrowUpOrDown('down',i)\"\n *ngIf=\"i!==fieldNameControl.controls.length-1\">\n <i class=\"fas fa-arrow-down\"></i>\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none\" #submitclick></button>\n</form>", styles: [".flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-start{display:flex;align-items:center;justify-content:flex-start}\n"] }]
|
|
100
|
+
}], ctorParameters: function () { return []; }, propDecorators: { entity: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], fields: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], parentFiledName: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], selected: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], submitclick: [{
|
|
109
|
+
type: ViewChild,
|
|
110
|
+
args: ['submitclick', { static: true }]
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vdGFibGUvdGFibGUtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2Zyb20vdGFibGUvdGFibGUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFL0UsTUFLYSxxQkFBcUI7SUFFaEM7SUFHQSxDQUFDO0lBQ08sRUFBRSxHQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUU5QixVQUFVO0lBQ1YsT0FBTyxDQUF1QjtJQUM5QixJQUNXLE1BQU0sQ0FBQyxDQUFNO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsWUFBWTtJQUNaLE9BQU8sR0FBUSxFQUFFLENBQUE7SUFDakIsSUFDVyxNQUFNLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixnQkFBZ0IsQ0FBSztJQUNyQixJQUNXLGVBQWUsQ0FBQyxDQUFNO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxD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QUssQ0FBQyxDQUFBO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckMsSUFBSSxTQUFTLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUE7SUFDNUMsQ0FBQzt3R0FoR1UscUJBQXFCOzRGQUFyQixxQkFBcUIsNFJDUmxDLDZtR0FzRE87O1NEOUNNLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjswRUFlakIsTUFBTTtzQkFEaEIsS0FBSztnQkFTSyxNQUFNO3NCQURoQixLQUFLO2dCQVNLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkFNc0MsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtdGFibGUtY29udHJvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29udHJvbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29udHJvbENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICB9XG4gIHByaXZhdGUgZmI9aW5qZWN0KEZvcm1CdWlsZGVyKVxuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG5cbiAgLyoq5a2X5q616YWN572u5YiX6KGoICovXG4gIF9maWVsZHM6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRGaWxlZE5hbWUodjogYW55KSB7XG4gICAgdGhpcy5fcGFyZW50RmlsZWROYW1lID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdiA7XG4gICAgaWYgKHYpIHsgdGhpcy5kYXRhTG9hZGVkKCkgfVxuXG4gIH1cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICAvKiog6I635Y+W54i257qn5a2X5q615Luj6KGo55qE6KGo5Y2V57uEKi9cbiAgZXh0cmFQcm9wZXJ0aWVzOiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgXG4gIC8qKuaVsOaNruWKoOi9veWujOaIkCAqL1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5ICYmIHRoaXMuX3BhcmVudEZpbGVkTmFtZSkge1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMgPSB0aGlzLl9lbnRpdHkuZ2V0KHRoaXMuX3BhcmVudEZpbGVkTmFtZSkgYXMgRm9ybUdyb3VwXG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpXG4gICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBmb3JtQ29uZmlndXJhdGlvbjogYW55XG4gIC8qKuiOt+WPluihqOagvOWtl+auteS7o+ihqOeahOaOp+S7tiAqL1xuICBmaWVsZE5hbWVDb250cm9sOiBGb3JtQXJyYXkgfCB1bmRlZmluZWRcblxuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICBsZXQgVmFsaWRhdG9yc0FycmF5ID0gW11cbiAgICAgIGlmICh0aGlzLl9maWVsZHMucmVxdWlyZWQpIHtcbiAgICAgICAgVmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgIH1cbiAgICAgIGxldCBmb3JtQ29uZmlndXJhdGlvbiA9IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblxuICAgICAgdGhpcy5mb3JtQ29uZmlndXJhdGlvbiA9IGZvcm1Db25maWd1cmF0aW9uXG4gICAgICBsZXQgbmV3QXJyYXlHcm91cCA9IHRoaXMuZmIuYXJyYXkoW10pXG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllcy5zZXRDb250cm9sKHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lLCBuZXdBcnJheUdyb3VwKVxuICAgICAgdGhpcy5maWVsZE5hbWVDb250cm9sID0gdGhpcy5leHRyYVByb3BlcnRpZXMuZ2V0KHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXlcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFRhYmxlQ29udHJvbEl0ZW0oKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5maWVsZE5hbWVDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fc2VsZWN0ZWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFRhYmxlQ29udHJvbEl0ZW0oKVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgIH0pXG4gIH1cbiAgLyoq5aKe5Yqg6KGo5qC86aG5ICovXG4gIGFkZFRhYmxlQ29udHJvbEl0ZW0oKXtcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wucHVzaCh0aGlzLmZiLmdyb3VwKHtcbiAgICAgICdleHRyYVByb3BlcnRpZXMnOnRoaXMuZmIuZ3JvdXAoe30pXG4gICAgfSkpXG4gIH1cbiAgLyoq5Yig6Zmk6KGo5qC86aG5ICovXG4gIG1pbnVzVGFibGVDb250cm9sSXRlbShpbmRleCl7XG4gICAgdGhpcy5maWVsZE5hbWVDb250cm9sLnJlbW92ZUF0KGluZGV4KVxuICB9XG4gICAvKirosIPmlbTooajmoLzkvY3nva4gKi9cbiAgIFRhYmxlQXJyb3dVcE9yRG93bih0eXBlLCBpbmRleCkge1xuICAgIGxldCBjb250cm9sQXQgPSB0aGlzLmZpZWxkTmFtZUNvbnRyb2wuYXQoaW5kZXgpXG4gICAgdGhpcy5maWVsZE5hbWVDb250cm9sLnJlbW92ZUF0KGluZGV4KVxuICAgIGxldCBsYXN0aW5kZXggPSB0eXBlID09ICd1cCcgPyBpbmRleCAtIDEgOiBpbmRleCArIDFcbiAgICB0aGlzLmZpZWxkTmFtZUNvbnRyb2wuaW5zZXJ0KGxhc3RpbmRleCwgY29udHJvbEF0KVxuICAgIHRoaXMuX3NlbGVjdGVkPXRoaXMuZmllbGROYW1lQ29udHJvbC52YWx1ZVxuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImV4dHJhUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkcy5kaXNwbGF5TmFtZVwiPnt7IF9maWVsZHMuZGlzcGxheU5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9ybUNvbmZpZ3VyYXRpb24uVGFibGVDb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+e3sgaXRlbS5kaXNwbGF5TmFtZSB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJmbGV4LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbVwiIChjbGljay5zdG9wKT1cImFkZFRhYmxlQ29udHJvbEl0ZW0oKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICA8dGJvZHkgW2Zvcm1BcnJheU5hbWVdPVwiX2ZpZWxkcy5maWVsZC5uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGROYW1lQ29udHJvbC5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsIG9mIGZvcm1Db25maWd1cmF0aW9uLlRhYmxlQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbSYmZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGYtZHluYW1pYyBbZW50aXR5XT1cIml0ZW1cIiBbZmllbGRzXT1cInsgZmllbGQ6IGVsIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkW2ldPy5leHRyYVByb3BlcnRpZXNbJycrZWwubmFtZSsnJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50RmlsZWROYW1lXT1cIidleHRyYVByb3BlcnRpZXMnXCI+PC9kZi1keW5hbWljPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHNjb3BlPVwicm93XCIgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZW5kIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0xXCIgKGNsaWNrLnN0b3ApPVwibWludXNUYWJsZUNvbnRyb2xJdGVtKGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBtcy0xXCIgKGNsaWNrLnN0b3ApPVwiVGFibGVBcnJvd1VwT3JEb3duKCd1cCcsaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy11cFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIG1zLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cIlRhYmxlQXJyb3dVcE9yRG93bignZG93bicsaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSE9PWZpZWxkTmFtZUNvbnRyb2wuY29udHJvbHMubGVuZ3RoLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1hcnJvdy1kb3duXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXRleHRcIiAqbmdJZj1cIl9maWVsZHMuZmllbGQuZGVzY3JpcHRpb25cIj57e19maWVsZHMuZmllbGQuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG48L2Zvcm0+Il19
|