@wemake4u/form-player-se 1.0.41 → 1.0.43
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/builtIn/builtIn.mjs +4 -2
- package/esm2022/lib/builtIn/dialog.json +7 -0
- package/esm2022/lib/builtIn/form.json +12 -0
- package/esm2022/lib/builtIn/function.json +22 -0
- package/esm2022/lib/builtIn/json.json +30 -0
- package/esm2022/lib/controls/button.mjs +4 -1
- package/esm2022/lib/controls/checkbox.mjs +4 -1
- package/esm2022/lib/controls/checklist.mjs +6 -3
- package/esm2022/lib/controls/chipchecklist.mjs +6 -3
- package/esm2022/lib/controls/chipradio.mjs +6 -3
- package/esm2022/lib/controls/date.mjs +4 -1
- package/esm2022/lib/controls/datetime.mjs +4 -0
- package/esm2022/lib/controls/factory.mjs +4 -1
- package/esm2022/lib/controls/filepicker.mjs +4 -1
- package/esm2022/lib/controls/number.mjs +4 -1
- package/esm2022/lib/controls/radio.mjs +6 -3
- package/esm2022/lib/controls/select.mjs +6 -3
- package/esm2022/lib/controls/taglist.mjs +6 -3
- package/esm2022/lib/controls/textarea.mjs +4 -1
- package/esm2022/lib/controls/textfield.mjs +4 -1
- package/esm2022/lib/controls/time.mjs +4 -1
- package/esm2022/lib/dialog/dialog.component.mjs +3 -3
- package/esm2022/lib/directives/dialog.directive.mjs +7 -2
- package/esm2022/lib/directives/repeat.directive.mjs +6 -3
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +122 -27
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +33 -312
- package/esm2022/lib/locale/locale-de.mjs +6 -2
- package/esm2022/lib/locale/locale-en.mjs +5 -1
- package/esm2022/lib/locale/locale-es.mjs +6 -2
- package/esm2022/lib/locale/locale-fr.mjs +6 -2
- package/esm2022/lib/locale/locale-it.mjs +6 -2
- package/esm2022/lib/locale/locale-pt.mjs +6 -2
- package/esm2022/lib/services/builder.service.mjs +347 -0
- package/esm2022/lib/services/dialog.service.mjs +13 -1
- package/esm2022/lib/services/form.service.mjs +45 -13
- package/esm2022/lib/services/function.service.mjs +6 -1
- package/esm2022/lib/services/json.service.mjs +47 -0
- package/esm2022/lib/services/programmability.service.mjs +21 -45
- package/esm2022/lib/services/scope.service.mjs +4 -7
- package/esm2022/lib/services/status.service.mjs +35 -18
- package/esm2022/lib/utils/FormGroupEx.mjs +52 -0
- package/esm2022/lib/utils/groupByRow.mjs +2 -2
- package/esm2022/lib/utils/patch.mjs +2 -2
- package/esm2022/lib/utils/window.mjs +40 -0
- package/esm2022/public-api.mjs +1 -2
- package/fesm2022/wemake4u-form-player-se.mjs +1824 -1390
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +4 -0
- package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +4 -0
- package/lib/components/setFilter/setFilter.component.d.ts +4 -0
- package/lib/controls/button.d.ts +1 -0
- package/lib/controls/checkbox.d.ts +1 -0
- package/lib/controls/checklist.d.ts +2 -1
- package/lib/controls/chipchecklist.d.ts +2 -1
- package/lib/controls/chipradio.d.ts +2 -1
- package/lib/controls/date.d.ts +1 -0
- package/lib/controls/datetime.d.ts +3 -0
- package/lib/controls/filepicker.d.ts +1 -0
- package/lib/controls/number.d.ts +1 -0
- package/lib/controls/radio.d.ts +2 -1
- package/lib/controls/select.d.ts +2 -1
- package/lib/controls/taglist.d.ts +2 -1
- package/lib/controls/textarea.d.ts +1 -0
- package/lib/controls/textfield.d.ts +1 -0
- package/lib/controls/time.d.ts +1 -0
- package/lib/dialog/dialog.component.d.ts +28 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +51 -10
- package/lib/dynamic-form/dynamic-form.component.d.ts +36 -23
- package/lib/locale/locale-de.d.ts +4 -0
- package/lib/locale/locale-en.d.ts +4 -0
- package/lib/locale/locale-es.d.ts +4 -0
- package/lib/locale/locale-fr.d.ts +4 -0
- package/lib/locale/locale-it.d.ts +4 -0
- package/lib/locale/locale-pt.d.ts +4 -0
- package/lib/locale/locale.d.ts +28 -0
- package/lib/services/builder.service.d.ts +43 -0
- package/lib/services/dialog.service.d.ts +2 -0
- package/lib/services/form.service.d.ts +2 -1
- package/lib/services/function.service.d.ts +2 -0
- package/lib/services/json.service.d.ts +10 -0
- package/lib/services/programmability.service.d.ts +6 -2
- package/lib/services/status.service.d.ts +3 -4
- package/lib/utils/FormGroupEx.d.ts +18 -0
- package/lib/utils/window.d.ts +18 -0
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2022/lib/utils/extractFiles.mjs +0 -30
- package/esm2022/lib/utils/toFormData.mjs +0 -11
- package/lib/utils/extractFiles.d.ts +0 -4
- package/lib/utils/toFormData.d.ts +0 -1
|
@@ -40,6 +40,10 @@ export const Texts = {
|
|
|
40
40
|
MoveUp: "Nach oben verschieben",
|
|
41
41
|
MoveDown: "Nach unten verschieben",
|
|
42
42
|
NoData: "Keine Daten zum Anzeigen",
|
|
43
|
-
RequiredField: "Pflichtfeld"
|
|
43
|
+
RequiredField: "Pflichtfeld",
|
|
44
|
+
PreviousElement: "Vorheriges Element",
|
|
45
|
+
NextElement: "Nächstes Element",
|
|
46
|
+
Elements: "Elemente",
|
|
47
|
+
Of: "von"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHNCQUFzQjtJQUNwQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkMsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsZUFBZSxFQUFFLHNCQUFzQjtJQUN2QyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLElBQUksRUFBRSxVQUFVO0lBQ2hCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxXQUFXO0lBQ2xCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsR0FBRyxFQUFFLElBQUk7SUFDVCxFQUFFLEVBQUUsTUFBTTtJQUNWLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYLE9BQU8sRUFBRSxVQUFVO0lBQ25CLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsU0FBUyxFQUFFLG1CQUFtQjtJQUM5QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLE1BQU07SUFDYixRQUFRLEVBQUUsWUFBWTtJQUN0QixXQUFXLEVBQUUsZUFBZTtJQUM1QixRQUFRLEVBQUUsYUFBYTtJQUN2QixTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLGFBQWEsRUFBRSxpREFBaUQ7SUFDaEUsYUFBYSxFQUFFLDRGQUE0RjtJQUMzRyxNQUFNLEVBQUUsdUJBQXVCO0lBQy9CLFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsTUFBTSxFQUFFLDBCQUEwQjtJQUNsQyxhQUFhLEVBQUUsYUFBYTtJQUM1QixlQUFlLEVBQUUsb0JBQW9CO0lBQ3JDLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsRUFBRSxFQUFFLEtBQUs7Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRleHRzID0ge1xyXG4gIFR5cGVUb1NlYXJjaDogXCJadW0gU3VjaGVuIHRpcHBlbi4uLlwiLFxyXG4gIFVwbG9hZDogXCJIb2NobGFkZW5cIixcclxuICBTY3JvbGxMZWZ0OiBcIk5hY2ggbGlua3Mgc2Nyb2xsZW5cIixcclxuICBTY3JvbGxSaWdodDogXCJOYWNoIHJlY2h0cyBzY3JvbGxlblwiLFxyXG4gIEFkZEl0ZW06IFwiSGluenVmw7xnZW5cIixcclxuICBSZW1vdmVJdGVtOiBcIkVudGZlcm5lblwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJWb3JoZXJpZ2VyIEFic2Nobml0dFwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIk7DpGNoc3RlciBBYnNjaG5pdHRcIixcclxuICBTaG93OiBcIkFuemVpZ2VuXCIsXHJcbiAgUmVtb3ZlOiBcIkVudGZlcm5lblwiLFxyXG4gIENsb3NlOiBcIlNjaGxpZcOfZW5cIixcclxuICBDb25maXJtOiBcIkJlc3TDpHRpZ2VuXCIsXHJcbiAgT0s6IFwiT0tcIixcclxuICBDYW5jZWw6IFwiQWJicmVjaGVuXCIsXHJcbiAgQWJvcnQ6IFwiQWJicmVjaGVuXCIsXHJcbiAgUmV0cnk6IFwiV2llZGVyaG9sZW5cIixcclxuICBJZ25vcmU6IFwiSWdub3JpZXJlblwiLFxyXG4gIFllczogXCJKYVwiLFxyXG4gIE5vOiBcIk5laW5cIixcclxuICBUcnk6IFwiVmVyc3VjaGVuXCIsXHJcbiAgQ29udGludWU6IFwiRm9ydHNldHplblwiLFxyXG4gIE5hbWU6IFwiTmFtZVwiLFxyXG4gIFNpemU6IFwiR3LDtsOfZVwiLFxyXG4gIFR5cGU6IFwiVHlwXCIsXHJcbiAgQWN0aW9uczogXCJBa3Rpb25lblwiLFxyXG4gIFJlYWRNb3JlOiBcIk1laHIgbGVzZW5cIixcclxuICBSZWFkTGVzczogXCJXZW5pZ2VyIGxlc2VuXCIsXHJcbiAgU2VsZWN0QWxsOiBcIkFsbGVzIGF1c3fDpGhsZW5cIixcclxuICBDaG9vc2VPbmU6IFwiV8OkaGxlIGVpbmUgT3B0aW9uXCIsXHJcbiAgVHJ1ZTogXCJXYWhyXCIsXHJcbiAgRmFsc2U6IFwiRmFsc2NoXCIsXHJcbiAgQmxhbms6IFwiTGVlclwiLFxyXG4gIE5vdEJsYW5rOiBcIk5pY2h0IGxlZXJcIixcclxuICBJbmZvcm1hdGlvbjogXCJJbmZvcm1hdGlvbmVuXCIsXHJcbiAgT3Blbk1lbnU6IFwiTWVuw7wgw7ZmZm5lblwiLFxyXG4gIENsb3NlTWVudTogXCJNZW7DvCBzY2hsaWXDn2VuXCIsXHJcbiAgTG9hZGluZ0ZhaWxlZDogXCJCZWltIExhZGVuIGRlciBEYXRlbiBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlblwiLFxyXG4gIENvbmZpcm1EZWxldGU6IFwiTcO2Y2h0ZW4gU2llIGRhcyBMw7ZzY2hlbiBiZXN0w6R0aWdlbj9cXHJcXG5EaWVzZXIgVm9yZ2FuZyBrYW5uIG5pY2h0IHLDvGNrZ8OkbmdpZyBnZW1hY2h0IHdlcmRlblwiLFxyXG4gIE1vdmVVcDogXCJOYWNoIG9iZW4gdmVyc2NoaWViZW5cIixcclxuICBNb3ZlRG93bjogXCJOYWNoIHVudGVuIHZlcnNjaGllYmVuXCIsXHJcbiAgTm9EYXRhOiBcIktlaW5lIERhdGVuIHp1bSBBbnplaWdlblwiLFxyXG4gIFJlcXVpcmVkRmllbGQ6IFwiUGZsaWNodGZlbGRcIixcclxuICBQcmV2aW91c0VsZW1lbnQ6IFwiVm9yaGVyaWdlcyBFbGVtZW50XCIsXHJcbiAgTmV4dEVsZW1lbnQ6IFwiTsOkY2hzdGVzIEVsZW1lbnRcIixcclxuICBFbGVtZW50czogXCJFbGVtZW50ZVwiLFxyXG4gIE9mOiBcInZvblwiXHJcbn07XHJcbiJdfQ==
|
|
@@ -41,5 +41,9 @@ export const Texts = {
|
|
|
41
41
|
MoveDown: "Move Down",
|
|
42
42
|
NoData: "No data to display",
|
|
43
43
|
RequiredField: "Required field",
|
|
44
|
+
PreviousElement: "Previous element",
|
|
45
|
+
NextElement: "Next element",
|
|
46
|
+
Elements: "Elements",
|
|
47
|
+
Of: "of"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1lbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsYUFBYTtJQUN6QixXQUFXLEVBQUUsY0FBYztJQUMzQixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsRUFBRSxFQUFFLElBQUk7SUFDUixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLGFBQWEsRUFBRSxzQ0FBc0M7SUFDckQsYUFBYSxFQUFFLDhEQUE4RDtJQUM3RSxNQUFNLEVBQUUsU0FBUztJQUNqQixRQUFRLEVBQUUsV0FBVztJQUNyQixNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxXQUFXLEVBQUUsY0FBYztJQUMzQixRQUFRLEVBQUUsVUFBVTtJQUNwQixFQUFFLEVBQUUsSUFBSTtDQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVGV4dHMgPSB7XHJcbiAgVHlwZVRvU2VhcmNoOiBcIlR5cGUgdG8gc2VhcmNoLi4uXCIsXHJcbiAgVXBsb2FkOiBcIlVwbG9hZFwiLFxyXG4gIFNjcm9sbExlZnQ6IFwiU2Nyb2xsIGxlZnRcIixcclxuICBTY3JvbGxSaWdodDogXCJTY3JvbGwgcmlnaHRcIixcclxuICBBZGRJdGVtOiBcIkFkZFwiLFxyXG4gIFJlbW92ZUl0ZW06IFwiUmVtb3ZlXCIsXHJcbiAgUHJldmlvdXNTZWN0aW9uOiBcIlByZXZpb3VzIHNlY3Rpb25cIixcclxuICBOZXh0U2VjdGlvbjogXCJOZXh0IHNlY3Rpb25cIixcclxuICBTaG93OiBcIlNob3dcIixcclxuICBSZW1vdmU6IFwiUmVtb3ZlXCIsXHJcbiAgQ2xvc2U6IFwiQ2xvc2VcIixcclxuICBDb25maXJtOiBcIkNvbmZpcm1cIixcclxuICBPSzogXCJPS1wiLFxyXG4gIENhbmNlbDogXCJDYW5jZWxcIixcclxuICBBYm9ydDogXCJBYm9ydFwiLFxyXG4gIFJldHJ5OiBcIlJldHJ5XCIsXHJcbiAgSWdub3JlOiBcIklnbm9yZVwiLFxyXG4gIFllczogXCJZZXNcIixcclxuICBObzogXCJOb1wiLFxyXG4gIFRyeTogXCJUcnlcIixcclxuICBDb250aW51ZTogXCJDb250aW51ZVwiLFxyXG4gIE5hbWU6IFwiTmFtZVwiLFxyXG4gIFNpemU6IFwiU2l6ZVwiLFxyXG4gIFR5cGU6IFwiVHlwZVwiLFxyXG4gIEFjdGlvbnM6IFwiQWN0aW9uc1wiLFxyXG4gIFJlYWRNb3JlOiBcIlJlYWQgbW9yZVwiLFxyXG4gIFJlYWRMZXNzOiBcIlJlYWQgbGVzc1wiLFxyXG4gIFNlbGVjdEFsbDogXCJTZWxlY3QgYWxsXCIsXHJcbiAgQ2hvb3NlT25lOiBcIkNob29zZSBvbmVcIixcclxuICBUcnVlOiBcIlRydWVcIixcclxuICBGYWxzZTogXCJGYWxzZVwiLFxyXG4gIEJsYW5rOiBcIkJsYW5rXCIsXHJcbiAgTm90Qmxhbms6IFwiTm90IGJsYW5rXCIsXHJcbiAgSW5mb3JtYXRpb246IFwiSW5mb3JtYXRpb25cIixcclxuICBPcGVuTWVudTogXCJPcGVuIG1lbnVcIixcclxuICBDbG9zZU1lbnU6IFwiQ2xvc2UgbWVudVwiLFxyXG4gIExvYWRpbmdGYWlsZWQ6IFwiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgbG9hZGluZyBkYXRhXCIsXHJcbiAgQ29uZmlybURlbGV0ZTogXCJEbyB5b3UgY29uZmlybSB0aGUgZGVsZXRpb24/XFxyXFxuVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZVwiLFxyXG4gIE1vdmVVcDogXCJNb3ZlIFVwXCIsXHJcbiAgTW92ZURvd246IFwiTW92ZSBEb3duXCIsXHJcbiAgTm9EYXRhOiBcIk5vIGRhdGEgdG8gZGlzcGxheVwiLFxyXG4gIFJlcXVpcmVkRmllbGQ6IFwiUmVxdWlyZWQgZmllbGRcIixcclxuICBQcmV2aW91c0VsZW1lbnQ6IFwiUHJldmlvdXMgZWxlbWVudFwiLFxyXG4gIE5leHRFbGVtZW50OiBcIk5leHQgZWxlbWVudFwiLFxyXG4gIEVsZW1lbnRzOiBcIkVsZW1lbnRzXCIsXHJcbiAgT2Y6IFwib2ZcIlxyXG59O1xyXG4iXX0=
|
|
@@ -40,6 +40,10 @@ export const Texts = {
|
|
|
40
40
|
MoveUp: "Mover arriba",
|
|
41
41
|
MoveDown: "Mover abajo",
|
|
42
42
|
NoData: "No hay datos para mostrar",
|
|
43
|
-
RequiredField: "Campo obligatorio"
|
|
43
|
+
RequiredField: "Campo obligatorio",
|
|
44
|
+
PreviousElement: "Elemento anterior",
|
|
45
|
+
NextElement: "Elemento siguiente",
|
|
46
|
+
Elements: "Elementos",
|
|
47
|
+
Of: "de"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHdCQUF3QjtJQUN0QyxNQUFNLEVBQUUsT0FBTztJQUNmLFVBQVUsRUFBRSwwQkFBMEI7SUFDdEMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsVUFBVTtJQUNsQixLQUFLLEVBQUUsUUFBUTtJQUNmLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFVBQVU7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsTUFBTSxFQUFFLFNBQVM7SUFDakIsR0FBRyxFQUFFLElBQUk7SUFDVCxFQUFFLEVBQUUsSUFBSTtJQUNSLEdBQUcsRUFBRSxVQUFVO0lBQ2YsUUFBUSxFQUFFLFdBQVc7SUFDckIsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFVBQVU7SUFDbkIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsU0FBUyxFQUFFLGtCQUFrQjtJQUM3QixTQUFTLEVBQUUsV0FBVztJQUN0QixJQUFJLEVBQUUsV0FBVztJQUNqQixLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsUUFBUSxFQUFFLFVBQVU7SUFDcEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsU0FBUyxFQUFFLGFBQWE7SUFDeEIsYUFBYSxFQUFFLDJCQUEyQjtJQUMxQyxhQUFhLEVBQUUsK0RBQStEO0lBQzlFLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLFFBQVEsRUFBRSxhQUFhO0lBQ3ZCLE1BQU0sRUFBRSwyQkFBMkI7SUFDbkMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFdBQVcsRUFBRSxvQkFBb0I7SUFDakMsUUFBUSxFQUFFLFdBQVc7SUFDckIsRUFBRSxFQUFFLElBQUk7Q0FDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRleHRzID0ge1xyXG4gIFR5cGVUb1NlYXJjaDogXCJFc2NyaWJlIHBhcmEgYnVzY2FyLi4uXCIsXHJcbiAgVXBsb2FkOiBcIlN1YmlyXCIsXHJcbiAgU2Nyb2xsTGVmdDogXCJEZXNwbGF6YXIgYSBsYSBpenF1aWVyZGFcIixcclxuICBTY3JvbGxSaWdodDogXCJEZXNwbGF6YXIgYSBsYSBkZXJlY2hhXCIsXHJcbiAgQWRkSXRlbTogXCJBZ3JlZ2FyXCIsXHJcbiAgUmVtb3ZlSXRlbTogXCJFbGltaW5hclwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZWNjacOzbiBhbnRlcmlvclwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIlNlY2Npw7NuIHNpZ3VpZW50ZVwiLFxyXG4gIFNob3c6IFwiTW9zdHJhclwiLFxyXG4gIFJlbW92ZTogXCJFbGltaW5hclwiLFxyXG4gIENsb3NlOiBcIkNlcnJhclwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmlybWFyXCIsXHJcbiAgT0s6IFwiT0tcIixcclxuICBDYW5jZWw6IFwiQ2FuY2VsYXJcIixcclxuICBBYm9ydDogXCJBYm9ydGFyXCIsXHJcbiAgUmV0cnk6IFwiUmVpbnRlbnRhclwiLFxyXG4gIElnbm9yZTogXCJJZ25vcmFyXCIsXHJcbiAgWWVzOiBcIlPDrVwiLFxyXG4gIE5vOiBcIk5vXCIsXHJcbiAgVHJ5OiBcIkludGVudGFyXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWFyXCIsXHJcbiAgTmFtZTogXCJOb21icmVcIixcclxuICBTaXplOiBcIlRhbWHDsW9cIixcclxuICBUeXBlOiBcIlRpcG9cIixcclxuICBBY3Rpb25zOiBcIkFjY2lvbmVzXCIsXHJcbiAgUmVhZE1vcmU6IFwiTGVlciBtw6FzXCIsXHJcbiAgUmVhZExlc3M6IFwiTGVlciBtZW5vc1wiLFxyXG4gIFNlbGVjdEFsbDogXCJTZWxlY2Npb25hciB0b2RvXCIsXHJcbiAgQ2hvb3NlT25lOiBcIkVsaWdlIHVub1wiLFxyXG4gIFRydWU6IFwiVmVyZGFkZXJvXCIsXHJcbiAgRmFsc2U6IFwiRmFsc29cIixcclxuICBCbGFuazogXCJWYWPDrW9cIixcclxuICBOb3RCbGFuazogXCJObyB2YWPDrW9cIixcclxuICBJbmZvcm1hdGlvbjogXCJJbmZvcm1hY2nDs25cIixcclxuICBPcGVuTWVudTogXCJBYnJpciBtZW7DulwiLFxyXG4gIENsb3NlTWVudTogXCJDZXJyYXIgbWVuw7pcIixcclxuICBMb2FkaW5nRmFpbGVkOiBcIkVycm9yIGFsIGNhcmdhciBsb3MgZGF0b3NcIixcclxuICBDb25maXJtRGVsZXRlOiBcIsK/Q29uZmlybWEgbGEgZWxpbWluYWNpw7NuP1xcclxcbkVzdGEgYWNjacOzbiBubyBzZSBwdWVkZSBkZXNoYWNlclwiLFxyXG4gIE1vdmVVcDogXCJNb3ZlciBhcnJpYmFcIixcclxuICBNb3ZlRG93bjogXCJNb3ZlciBhYmFqb1wiLFxyXG4gIE5vRGF0YTogXCJObyBoYXkgZGF0b3MgcGFyYSBtb3N0cmFyXCIsXHJcbiAgUmVxdWlyZWRGaWVsZDogXCJDYW1wbyBvYmxpZ2F0b3Jpb1wiLFxyXG4gIFByZXZpb3VzRWxlbWVudDogXCJFbGVtZW50byBhbnRlcmlvclwiLFxyXG4gIE5leHRFbGVtZW50OiBcIkVsZW1lbnRvIHNpZ3VpZW50ZVwiLFxyXG4gIEVsZW1lbnRzOiBcIkVsZW1lbnRvc1wiLFxyXG4gIE9mOiBcImRlXCJcclxufTtcclxuIl19
|
|
@@ -40,6 +40,10 @@ export const Texts = {
|
|
|
40
40
|
MoveUp: "Déplacer vers le haut",
|
|
41
41
|
MoveDown: "Déplacer vers le bas",
|
|
42
42
|
NoData: "Aucune donnée à afficher",
|
|
43
|
-
RequiredField: "Champ obligatoire"
|
|
43
|
+
RequiredField: "Champ obligatoire",
|
|
44
|
+
PreviousElement: "Élément précédent",
|
|
45
|
+
NextElement: "Élément suivant",
|
|
46
|
+
Elements: "Éléments",
|
|
47
|
+
Of: "de"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWZyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1mci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLDBCQUEwQjtJQUN4QyxNQUFNLEVBQUUsWUFBWTtJQUNwQixVQUFVLEVBQUUsOEJBQThCO0lBQzFDLFdBQVcsRUFBRSw4QkFBOEI7SUFDM0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyxXQUFXLEVBQUUsa0JBQWtCO0lBQy9CLElBQUksRUFBRSxVQUFVO0lBQ2hCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsWUFBWTtJQUNuQixLQUFLLEVBQUUsV0FBVztJQUNsQixNQUFNLEVBQUUsU0FBUztJQUNqQixHQUFHLEVBQUUsS0FBSztJQUNWLEVBQUUsRUFBRSxLQUFLO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxRQUFRLEVBQUUsV0FBVztJQUNyQixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsZUFBZTtJQUN6QixRQUFRLEVBQUUsWUFBWTtJQUN0QixTQUFTLEVBQUUsbUJBQW1CO0lBQzlCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE1BQU07SUFDYixLQUFLLEVBQUUsTUFBTTtJQUNiLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsU0FBUyxFQUFFLGdCQUFnQjtJQUMzQixhQUFhLEVBQUUsdUNBQXVDO0lBQ3RELGFBQWEsRUFBRSwwRUFBMEU7SUFDekYsTUFBTSxFQUFFLHVCQUF1QjtJQUMvQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLE1BQU0sRUFBRSwwQkFBMEI7SUFDbEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsRUFBRSxFQUFFLElBQUk7Q0FDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRleHRzID0ge1xyXG4gIFR5cGVUb1NlYXJjaDogXCJUYXBleiBwb3VyIHJlY2hlcmNoZXIuLi5cIixcclxuICBVcGxvYWQ6IFwiVMOpbMOpdmVyc2VyXCIsXHJcbiAgU2Nyb2xsTGVmdDogXCJGYWlyZSBkw6lmaWxlciB2ZXJzIGxhIGdhdWNoZVwiLFxyXG4gIFNjcm9sbFJpZ2h0OiBcIkZhaXJlIGTDqWZpbGVyIHZlcnMgbGEgZHJvaXRlXCIsXHJcbiAgQWRkSXRlbTogXCJBam91dGVyXCIsXHJcbiAgUmVtb3ZlSXRlbTogXCJTdXBwcmltZXJcIixcclxuICBQcmV2aW91c1NlY3Rpb246IFwiU2VjdGlvbiBwcsOpY8OpZGVudGVcIixcclxuICBOZXh0U2VjdGlvbjogXCJTZWN0aW9uIHN1aXZhbnRlXCIsXHJcbiAgU2hvdzogXCJBZmZpY2hlclwiLFxyXG4gIFJlbW92ZTogXCJTdXBwcmltZXJcIixcclxuICBDbG9zZTogXCJGZXJtZXJcIixcclxuICBDb25maXJtOiBcIkNvbmZpcm1lclwiLFxyXG4gIE9LOiBcIk9LXCIsXHJcbiAgQ2FuY2VsOiBcIkFubnVsZXJcIixcclxuICBBYm9ydDogXCJBYmFuZG9ubmVyXCIsXHJcbiAgUmV0cnk6IFwiUsOpZXNzYXllclwiLFxyXG4gIElnbm9yZTogXCJJZ25vcmVyXCIsXHJcbiAgWWVzOiBcIk91aVwiLFxyXG4gIE5vOiBcIk5vblwiLFxyXG4gIFRyeTogXCJFc3NheWVyXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWVyXCIsXHJcbiAgTmFtZTogXCJOb21cIixcclxuICBTaXplOiBcIlRhaWxsZVwiLFxyXG4gIFR5cGU6IFwiVHlwZVwiLFxyXG4gIEFjdGlvbnM6IFwiQWN0aW9uc1wiLFxyXG4gIFJlYWRNb3JlOiBcIkxpcmUgbGEgc3VpdGVcIixcclxuICBSZWFkTGVzczogXCJMaXJlIG1vaW5zXCIsXHJcbiAgU2VsZWN0QWxsOiBcIlRvdXQgc8OpbGVjdGlvbm5lclwiLFxyXG4gIENob29zZU9uZTogXCJDaG9pc2lyIHVuXCIsXHJcbiAgVHJ1ZTogXCJWcmFpXCIsXHJcbiAgRmFsc2U6IFwiRmF1eFwiLFxyXG4gIEJsYW5rOiBcIlZpZGVcIixcclxuICBOb3RCbGFuazogXCJOb24gdmlkZVwiLFxyXG4gIEluZm9ybWF0aW9uOiBcIkluZm9ybWF0aW9uc1wiLFxyXG4gIE9wZW5NZW51OiBcIk91dnJpciBsZSBtZW51XCIsXHJcbiAgQ2xvc2VNZW51OiBcIkZlcm1lciBsZSBtZW51XCIsXHJcbiAgTG9hZGluZ0ZhaWxlZDogXCJFcnJldXIgbG9ycyBkdSBjaGFyZ2VtZW50IGRlcyBkb25uw6llc1wiLFxyXG4gIENvbmZpcm1EZWxldGU6IFwiQ29uZmlybWV6LXZvdXMgbGEgc3VwcHJlc3Npb24gP1xcclxcbkNldHRlIGFjdGlvbiBuZSBwZXV0IHBhcyDDqnRyZSBhbm51bMOpZVwiLFxyXG4gIE1vdmVVcDogXCJEw6lwbGFjZXIgdmVycyBsZSBoYXV0XCIsXHJcbiAgTW92ZURvd246IFwiRMOpcGxhY2VyIHZlcnMgbGUgYmFzXCIsXHJcbiAgTm9EYXRhOiBcIkF1Y3VuZSBkb25uw6llIMOgIGFmZmljaGVyXCIsXHJcbiAgUmVxdWlyZWRGaWVsZDogXCJDaGFtcCBvYmxpZ2F0b2lyZVwiLFxyXG4gIFByZXZpb3VzRWxlbWVudDogXCLDiWzDqW1lbnQgcHLDqWPDqWRlbnRcIixcclxuICBOZXh0RWxlbWVudDogXCLDiWzDqW1lbnQgc3VpdmFudFwiLFxyXG4gIEVsZW1lbnRzOiBcIsOJbMOpbWVudHNcIixcclxuICBPZjogXCJkZVwiXHJcbn07XHJcbiJdfQ==
|
|
@@ -40,6 +40,10 @@ export const Texts = {
|
|
|
40
40
|
MoveUp: "Sposta Sù",
|
|
41
41
|
MoveDown: "Sposta Giù",
|
|
42
42
|
NoData: "Nessun dato da mostrare",
|
|
43
|
-
RequiredField: "Campo obbligatorio"
|
|
43
|
+
RequiredField: "Campo obbligatorio",
|
|
44
|
+
PreviousElement: "Elemento precedente",
|
|
45
|
+
NextElement: "Elemento successivo",
|
|
46
|
+
Elements: "Elementi",
|
|
47
|
+
Of: "di"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLElBQUksRUFBRSxZQUFZO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFVBQVU7SUFDbkIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsWUFBWTtJQUNuQixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsSUFBSTtJQUNULEVBQUUsRUFBRSxJQUFJO0lBQ1IsR0FBRyxFQUFFLE9BQU87SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLGNBQWM7SUFDeEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixTQUFTLEVBQUUsWUFBWTtJQUN2QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUsV0FBVztJQUNyQixXQUFXLEVBQUUsY0FBYztJQUMzQixRQUFRLEVBQUUsV0FBVztJQUNyQixTQUFTLEVBQUUsYUFBYTtJQUN4QixhQUFhLEVBQUUsMkRBQTJEO0lBQzFFLGFBQWEsRUFBRSxvRUFBb0U7SUFDbkYsTUFBTSxFQUFFLFdBQVc7SUFDbkIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsTUFBTSxFQUFFLHlCQUF5QjtJQUNqQyxhQUFhLEVBQUUsb0JBQW9CO0lBQ25DLGVBQWUsRUFBRSxxQkFBcUI7SUFDdEMsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxRQUFRLEVBQUUsVUFBVTtJQUNwQixFQUFFLEVBQUUsSUFBSTtDQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVGV4dHMgPSB7XHJcbiAgVHlwZVRvU2VhcmNoOiBcIkRpZ2l0YSBwZXIgY2VyY2FyZS4uLlwiLFxyXG4gIFVwbG9hZDogXCJVcGxvYWRcIixcclxuICBTY3JvbGxMZWZ0OiBcIlNjb3JyaSBhIHNpbmlzdHJhXCIsXHJcbiAgU2Nyb2xsUmlnaHQ6IFwiU2NvcnJpIGEgZGVzdHJhXCIsXHJcbiAgQWRkSXRlbTogXCJBZ2dpdW5naVwiLFxyXG4gIFJlbW92ZUl0ZW06IFwiUmltdW92aVwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZXppb25lIHByZWNlZGVudGVcIixcclxuICBOZXh0U2VjdGlvbjogXCJTZXppb25lIHN1Y2Nlc3NpdmFcIixcclxuICBTaG93OiBcIlZpc3VhbGl6emFcIixcclxuICBSZW1vdmU6IFwiUmltdW92aVwiLFxyXG4gIENsb3NlOiBcIkNoaXVkaVwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmVybWFcIixcclxuICBPSzogXCJPS1wiLFxyXG4gIENhbmNlbDogXCJBbm51bGxhXCIsXHJcbiAgQWJvcnQ6IFwiSW50ZXJyb21waVwiLFxyXG4gIFJldHJ5OiBcIlJpcHJvdmFcIixcclxuICBJZ25vcmU6IFwiSWdub3JhXCIsXHJcbiAgWWVzOiBcIlPDrFwiLFxyXG4gIE5vOiBcIk5vXCIsXHJcbiAgVHJ5OiBcIlByb3ZhXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWFcIixcclxuICBOYW1lOiBcIk5vbWVcIixcclxuICBTaXplOiBcIkRpbWVuc2lvbmVcIixcclxuICBUeXBlOiBcIlRpcG9cIixcclxuICBBY3Rpb25zOiBcIkF6aW9uaVwiLFxyXG4gIFJlYWRNb3JlOiBcIkxlZ2dpIGRpIHBpw7lcIixcclxuICBSZWFkTGVzczogXCJMZWdnaSBkaSBtZW5vXCIsXHJcbiAgU2VsZWN0QWxsOiBcIlNlbGV6aW9uYSB0dXR0b1wiLFxyXG4gIENob29zZU9uZTogXCJTY2VnbGkgdW5vXCIsXHJcbiAgVHJ1ZTogXCJWZXJvXCIsXHJcbiAgRmFsc2U6IFwiRmFsc29cIixcclxuICBCbGFuazogXCJWdW90b1wiLFxyXG4gIE5vdEJsYW5rOiBcIk5vbiB2dW90b1wiLFxyXG4gIEluZm9ybWF0aW9uOiBcIkluZm9ybWF6aW9uaVwiLFxyXG4gIE9wZW5NZW51OiBcIkFwcmkgTWVudVwiLFxyXG4gIENsb3NlTWVudTogXCJDaGl1ZGkgTWVudVwiLFxyXG4gIExvYWRpbmdGYWlsZWQ6IFwiU2kgw6ggdmVyaWZpY2F0byB1biBlcnJvcmUgZHVyYW50ZSBpbCBjYXJpY2FtZW50byBkZWkgZGF0aVwiLFxyXG4gIENvbmZpcm1EZWxldGU6IFwiQ29uZmVybWkgbOKAmWVsaW1pbmF6aW9uZSA/XFxyXFxuTOKAmW9wZXJhemlvbmUgbm9uIHB1w7IgZXNzZXJlIGFubnVsbGF0YVwiLFxyXG4gIE1vdmVVcDogXCJTcG9zdGEgU8O5XCIsXHJcbiAgTW92ZURvd246IFwiU3Bvc3RhIEdpw7lcIixcclxuICBOb0RhdGE6IFwiTmVzc3VuIGRhdG8gZGEgbW9zdHJhcmVcIixcclxuICBSZXF1aXJlZEZpZWxkOiBcIkNhbXBvIG9iYmxpZ2F0b3Jpb1wiLFxyXG4gIFByZXZpb3VzRWxlbWVudDogXCJFbGVtZW50byBwcmVjZWRlbnRlXCIsXHJcbiAgTmV4dEVsZW1lbnQ6IFwiRWxlbWVudG8gc3VjY2Vzc2l2b1wiLFxyXG4gIEVsZW1lbnRzOiBcIkVsZW1lbnRpXCIsXHJcbiAgT2Y6IFwiZGlcIlxyXG59O1xyXG4iXX0=
|
|
@@ -40,6 +40,10 @@ export const Texts = {
|
|
|
40
40
|
MoveUp: "Mover para cima",
|
|
41
41
|
MoveDown: "Mover para baixo",
|
|
42
42
|
NoData: "Nenhum dado para exibir",
|
|
43
|
-
RequiredField: "Campo obrigatório"
|
|
43
|
+
RequiredField: "Campo obrigatório",
|
|
44
|
+
PreviousElement: "Elemento anterior",
|
|
45
|
+
NextElement: "Próximo elemento",
|
|
46
|
+
Elements: "Elementos",
|
|
47
|
+
Of: "de"
|
|
44
48
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1wdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLDBCQUEwQjtJQUN4QyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkMsT0FBTyxFQUFFLFdBQVc7SUFDcEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxXQUFXLEVBQUUsZUFBZTtJQUM1QixJQUFJLEVBQUUsU0FBUztJQUNmLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsVUFBVTtJQUNsQixLQUFLLEVBQUUsU0FBUztJQUNoQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsRUFBRSxFQUFFLEtBQUs7SUFDVCxHQUFHLEVBQUUsUUFBUTtJQUNiLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFNBQVMsRUFBRSxhQUFhO0lBQ3hCLGFBQWEsRUFBRSwyQkFBMkI7SUFDMUMsYUFBYSxFQUFFLDJEQUEyRDtJQUMxRSxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLHlCQUF5QjtJQUNqQyxhQUFhLEVBQUUsbUJBQW1CO0lBQ2xDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQixRQUFRLEVBQUUsV0FBVztJQUNyQixFQUFFLEVBQUUsSUFBSTtDQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVGV4dHMgPSB7XHJcbiAgVHlwZVRvU2VhcmNoOiBcIkRpZ2l0ZSBwYXJhIHBlc3F1aXNhci4uLlwiLFxyXG4gIFVwbG9hZDogXCJFbnZpYXJcIixcclxuICBTY3JvbGxMZWZ0OiBcIlJvbGFyIHBhcmEgYSBlc3F1ZXJkYVwiLFxyXG4gIFNjcm9sbFJpZ2h0OiBcIlJvbGFyIHBhcmEgYSBkaXJlaXRhXCIsXHJcbiAgQWRkSXRlbTogXCJBZGljaW9uYXJcIixcclxuICBSZW1vdmVJdGVtOiBcIlJlbW92ZXJcIixcclxuICBQcmV2aW91c1NlY3Rpb246IFwiU2XDp8OjbyBhbnRlcmlvclwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIlByw7N4aW1hIHNlw6fDo29cIixcclxuICBTaG93OiBcIk1vc3RyYXJcIixcclxuICBSZW1vdmU6IFwiUmVtb3ZlclwiLFxyXG4gIENsb3NlOiBcIkZlY2hhclwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmlybWFyXCIsXHJcbiAgT0s6IFwiT0tcIixcclxuICBDYW5jZWw6IFwiQ2FuY2VsYXJcIixcclxuICBBYm9ydDogXCJBYm9ydGFyXCIsXHJcbiAgUmV0cnk6IFwiVGVudGFyIG5vdmFtZW50ZVwiLFxyXG4gIElnbm9yZTogXCJJZ25vcmFyXCIsXHJcbiAgWWVzOiBcIlNpbVwiLFxyXG4gIE5vOiBcIk7Do29cIixcclxuICBUcnk6IFwiVGVudGFyXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWFyXCIsXHJcbiAgTmFtZTogXCJOb21lXCIsXHJcbiAgU2l6ZTogXCJUYW1hbmhvXCIsXHJcbiAgVHlwZTogXCJUaXBvXCIsXHJcbiAgQWN0aW9uczogXCJBw6fDtWVzXCIsXHJcbiAgUmVhZE1vcmU6IFwiTGVpYSBtYWlzXCIsXHJcbiAgUmVhZExlc3M6IFwiTGVpYSBtZW5vc1wiLFxyXG4gIFNlbGVjdEFsbDogXCJTZWxlY2lvbmFyIHR1ZG9cIixcclxuICBDaG9vc2VPbmU6IFwiRXNjb2xoYSB1bVwiLFxyXG4gIFRydWU6IFwiVmVyZGFkZWlyb1wiLFxyXG4gIEZhbHNlOiBcIkZhbHNvXCIsXHJcbiAgQmxhbms6IFwiVmF6aW9cIixcclxuICBOb3RCbGFuazogXCJOw6NvIHZhemlvXCIsXHJcbiAgSW5mb3JtYXRpb246IFwiSW5mb3JtYcOnw7Vlc1wiLFxyXG4gIE9wZW5NZW51OiBcIkFicmlyIG1lbnVcIixcclxuICBDbG9zZU1lbnU6IFwiRmVjaGFyIG1lbnVcIixcclxuICBMb2FkaW5nRmFpbGVkOiBcIkVycm8gYW8gY2FycmVnYXIgb3MgZGFkb3NcIixcclxuICBDb25maXJtRGVsZXRlOiBcIkNvbmZpcm1hIGEgZWxpbWluYcOnw6NvP1xcclxcbkVzdGEgYcOnw6NvIG7Do28gcG9kZSBzZXIgZGVzZmVpdGFcIixcclxuICBNb3ZlVXA6IFwiTW92ZXIgcGFyYSBjaW1hXCIsXHJcbiAgTW92ZURvd246IFwiTW92ZXIgcGFyYSBiYWl4b1wiLFxyXG4gIE5vRGF0YTogXCJOZW5odW0gZGFkbyBwYXJhIGV4aWJpclwiLFxyXG4gIFJlcXVpcmVkRmllbGQ6IFwiQ2FtcG8gb2JyaWdhdMOzcmlvXCIsXHJcbiAgUHJldmlvdXNFbGVtZW50OiBcIkVsZW1lbnRvIGFudGVyaW9yXCIsXHJcbiAgTmV4dEVsZW1lbnQ6IFwiUHLDs3hpbW8gZWxlbWVudG9cIixcclxuICBFbGVtZW50czogXCJFbGVtZW50b3NcIixcclxuICBPZjogXCJkZVwiXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { FormGroupEx } from '../utils/FormGroupEx';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./validation.service";
|
|
6
|
+
import * as i2 from "./disable.service";
|
|
7
|
+
import * as i3 from "./compute.service";
|
|
8
|
+
import * as i4 from "./status.service";
|
|
9
|
+
import * as i5 from "./event.service";
|
|
10
|
+
import * as i6 from "./metadata.service";
|
|
11
|
+
export class FormBuilderService {
|
|
12
|
+
validationService;
|
|
13
|
+
disableService;
|
|
14
|
+
computeService;
|
|
15
|
+
statusService;
|
|
16
|
+
eventService;
|
|
17
|
+
metadata;
|
|
18
|
+
constructor(validationService, disableService, computeService, statusService, eventService, metadata) {
|
|
19
|
+
this.validationService = validationService;
|
|
20
|
+
this.disableService = disableService;
|
|
21
|
+
this.computeService = computeService;
|
|
22
|
+
this.statusService = statusService;
|
|
23
|
+
this.eventService = eventService;
|
|
24
|
+
this.metadata = metadata;
|
|
25
|
+
}
|
|
26
|
+
buildForm(formGroup, forms, groupMode = "default") {
|
|
27
|
+
const validationCollection = this.validationService.createCollection();
|
|
28
|
+
const disableCollection = this.disableService.createCollection();
|
|
29
|
+
const eventCollection = this.eventService.createCollection();
|
|
30
|
+
const computeCollection = this.computeService.createCollection();
|
|
31
|
+
forms.forEach((form) => {
|
|
32
|
+
const statusCollection = this.statusService.createCollection();
|
|
33
|
+
const currentGroup = this.applyPath(formGroup, form.path, groupMode);
|
|
34
|
+
if (this.hasPath(form.path)) {
|
|
35
|
+
this.disableService.addToCollection(disableCollection, currentGroup, formGroup, form);
|
|
36
|
+
}
|
|
37
|
+
form.rows?.forEach((row) => {
|
|
38
|
+
this.addControls(currentGroup, row.components, groupMode, disableCollection, computeCollection, validationCollection, statusCollection, eventCollection);
|
|
39
|
+
});
|
|
40
|
+
this.statusService.setupCollection(form, statusCollection);
|
|
41
|
+
});
|
|
42
|
+
this.disableService.setupCollection(disableCollection);
|
|
43
|
+
this.computeService.setupCollection(computeCollection);
|
|
44
|
+
this.validationService.setupCollection(validationCollection);
|
|
45
|
+
this.eventService.setupCollection(eventCollection);
|
|
46
|
+
}
|
|
47
|
+
hasPath(value) {
|
|
48
|
+
return value != null && value.trim().length > 0;
|
|
49
|
+
}
|
|
50
|
+
applyPath(formGroup, path, groupMode) {
|
|
51
|
+
if (!this.hasPath(path)) {
|
|
52
|
+
return formGroup;
|
|
53
|
+
}
|
|
54
|
+
let currentGroup = formGroup;
|
|
55
|
+
this.splitPath(path).forEach((segment) => {
|
|
56
|
+
const existGroup = currentGroup.get(segment);
|
|
57
|
+
if (existGroup instanceof FormGroup) {
|
|
58
|
+
currentGroup = existGroup;
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
else if (existGroup) {
|
|
62
|
+
throw new Error(`Cannot create form group because an element with path ${segment} already exists`);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const segmentGroup = this.createFormGroup(groupMode);
|
|
66
|
+
currentGroup.addControl(segment, segmentGroup);
|
|
67
|
+
currentGroup = segmentGroup;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return currentGroup;
|
|
71
|
+
}
|
|
72
|
+
splitPath(path) {
|
|
73
|
+
if (!path) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
return path
|
|
77
|
+
.split('.')
|
|
78
|
+
.map(segment => segment.trim())
|
|
79
|
+
.filter(segment => segment.length > 0);
|
|
80
|
+
}
|
|
81
|
+
createFormGroup(groupMode) {
|
|
82
|
+
return (groupMode === "default")
|
|
83
|
+
? new FormGroup({})
|
|
84
|
+
: new FormGroupEx({}, groupMode);
|
|
85
|
+
}
|
|
86
|
+
addControls(formGroup, components, groupMode, disableCollection, computeCollection, validationCollection, statusCollection, eventCollection) {
|
|
87
|
+
let formComponent = this;
|
|
88
|
+
components?.forEach((component) => {
|
|
89
|
+
if (this.isFormComponent(component)) {
|
|
90
|
+
const currentGroup = this.applyPath(formGroup, component.path, groupMode);
|
|
91
|
+
if (currentGroup.contains(component.key)) {
|
|
92
|
+
this.statusService.addToCollection(statusCollection, currentGroup.get(component.key), component);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
let defaultValue = this.getDefaultValue(component);
|
|
97
|
+
const options = {
|
|
98
|
+
updateOn: this.getUpdateOn(component) || "change",
|
|
99
|
+
nonNullable: (defaultValue !== null && defaultValue !== undefined)
|
|
100
|
+
};
|
|
101
|
+
const control = new FormControl(defaultValue, options);
|
|
102
|
+
currentGroup.addControl(component.key, control);
|
|
103
|
+
this.validationService.addToCollection(validationCollection, control, currentGroup, component);
|
|
104
|
+
this.statusService.addToCollection(statusCollection, control, component);
|
|
105
|
+
this.disableService.addToCollection(disableCollection, control, formGroup, component);
|
|
106
|
+
this.computeService.addToCollection(computeCollection, control, formGroup, component);
|
|
107
|
+
this.eventService.addToCollection(eventCollection, control, currentGroup, component);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else if (this.isContainerComponent(component)) {
|
|
111
|
+
const containers = this.getContainers(component);
|
|
112
|
+
containers?.forEach((container) => {
|
|
113
|
+
const currentGroup = this.applyPath(formGroup, container.path, groupMode);
|
|
114
|
+
if (this.hasPath(container.path)) {
|
|
115
|
+
this.disableService.addToCollection(disableCollection, currentGroup, formGroup, container);
|
|
116
|
+
}
|
|
117
|
+
container.rows?.forEach((row) => {
|
|
118
|
+
formComponent.addControls(currentGroup, row.components, groupMode, disableCollection, computeCollection, validationCollection, statusCollection, eventCollection);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else if (this.isArrayComponent(component)) {
|
|
123
|
+
const itemComponent = this.getArrayItem(component);
|
|
124
|
+
if (itemComponent.key) {
|
|
125
|
+
const currentGroup = this.applyPath(formGroup, itemComponent.path, groupMode);
|
|
126
|
+
const formArray = this.createFormArray(currentGroup, itemComponent, groupMode);
|
|
127
|
+
this.validationService.addToCollection(validationCollection, formArray, currentGroup, component);
|
|
128
|
+
this.statusService.addToCollection(statusCollection, formArray, component);
|
|
129
|
+
this.eventService.addToCollection(eventCollection, formArray, currentGroup, component);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else if (this.isComponentWithInput(component)) {
|
|
133
|
+
const currentGroup = this.applyPath(formGroup, component.path, groupMode);
|
|
134
|
+
if (currentGroup.contains(component.key)) {
|
|
135
|
+
const control = currentGroup.get(component.key);
|
|
136
|
+
this.validationService.addToCollection(validationCollection, control, currentGroup, component);
|
|
137
|
+
this.statusService.addToCollection(statusCollection, control, component);
|
|
138
|
+
this.disableService.addToCollection(disableCollection, control, currentGroup, component);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const control = new FormControl(null);
|
|
143
|
+
currentGroup.addControl(component.key, control);
|
|
144
|
+
this.validationService.addToCollection(validationCollection, control, currentGroup, component);
|
|
145
|
+
this.statusService.addToCollection(statusCollection, control, component);
|
|
146
|
+
this.disableService.addToCollection(disableCollection, control, currentGroup, component);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
isFormComponent(component) {
|
|
152
|
+
switch (component.type) {
|
|
153
|
+
case "checkbox":
|
|
154
|
+
case "checklist":
|
|
155
|
+
case "datetime":
|
|
156
|
+
case "filepicker":
|
|
157
|
+
case "number":
|
|
158
|
+
case "radio":
|
|
159
|
+
case "select":
|
|
160
|
+
case "taglist":
|
|
161
|
+
case "textarea":
|
|
162
|
+
case "textfield":
|
|
163
|
+
case "range":
|
|
164
|
+
case "expression":
|
|
165
|
+
return true;
|
|
166
|
+
default:
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
isContainerComponent(component) {
|
|
171
|
+
switch (component.type) {
|
|
172
|
+
case "group":
|
|
173
|
+
case "tab":
|
|
174
|
+
case "accordion":
|
|
175
|
+
return true;
|
|
176
|
+
default:
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
isComponentWithInput(component) {
|
|
181
|
+
return component.type === "component"
|
|
182
|
+
&& component.isInput === true
|
|
183
|
+
&& component.key;
|
|
184
|
+
}
|
|
185
|
+
isArrayComponent(component) {
|
|
186
|
+
switch (component.type) {
|
|
187
|
+
case "dynamiclist":
|
|
188
|
+
return true;
|
|
189
|
+
default:
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
getArrayItem(component) {
|
|
194
|
+
if (component.type === 'dynamiclist') {
|
|
195
|
+
return { key: component.key, path: component.path, rows: component.rows };
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
return { key: null, path: null, rows: [] };
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
createFormArray(formGroup, itemComponent, groupMode) {
|
|
202
|
+
const formComponent = this;
|
|
203
|
+
const prepareItem = function (formGroup) {
|
|
204
|
+
const statusCollection = formComponent.statusService.createCollection();
|
|
205
|
+
const validationCollection = formComponent.validationService.createCollection();
|
|
206
|
+
const eventCollection = formComponent.eventService.createCollection();
|
|
207
|
+
const disableCollection = formComponent.disableService.createCollection();
|
|
208
|
+
const computeCollection = formComponent.computeService.createCollection();
|
|
209
|
+
itemComponent.rows?.forEach((row) => {
|
|
210
|
+
formComponent.addControls(formGroup, row.components, groupMode, disableCollection, computeCollection, validationCollection, statusCollection, eventCollection);
|
|
211
|
+
});
|
|
212
|
+
// ignore statusCollection
|
|
213
|
+
formComponent.disableService.setupCollection(disableCollection);
|
|
214
|
+
formComponent.computeService.setupCollection(computeCollection);
|
|
215
|
+
formComponent.validationService.setupCollection(validationCollection);
|
|
216
|
+
formComponent.eventService.setupCollection(eventCollection);
|
|
217
|
+
};
|
|
218
|
+
const createItem = function (addToArray = false) {
|
|
219
|
+
const newGroup = new FormGroup({});
|
|
220
|
+
if (addToArray)
|
|
221
|
+
this.push(newGroup);
|
|
222
|
+
prepareItem(newGroup);
|
|
223
|
+
return newGroup;
|
|
224
|
+
};
|
|
225
|
+
const addItem = function () {
|
|
226
|
+
if (hasFactory(this)) {
|
|
227
|
+
const newGroup = this.createItem(true);
|
|
228
|
+
return newGroup;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
throw new Error('Cannot add item: the FormArray does not implement FormArrayWithFactory.');
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
const overrideArray = (array) => {
|
|
235
|
+
const createItem = array.createItem.bind(array);
|
|
236
|
+
array.createItem = function (addToArray) {
|
|
237
|
+
const formGroup = createItem(addToArray);
|
|
238
|
+
prepareItem(formGroup);
|
|
239
|
+
return formGroup;
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
const existing = formGroup.get(itemComponent.key);
|
|
243
|
+
if (existing instanceof FormArray && hasFactory(existing)) {
|
|
244
|
+
overrideArray(existing);
|
|
245
|
+
return existing;
|
|
246
|
+
}
|
|
247
|
+
const formArray = new FormArray([]);
|
|
248
|
+
formGroup.addControl(itemComponent.key, formArray);
|
|
249
|
+
const resizeFormArray = this.resizeFormArray;
|
|
250
|
+
const createNewArray = function () {
|
|
251
|
+
const newArray = new FormArray([]);
|
|
252
|
+
return prepareArray(newArray);
|
|
253
|
+
};
|
|
254
|
+
const prepareArray = (array) => {
|
|
255
|
+
const dynamicArray = array;
|
|
256
|
+
dynamicArray.addItem = addItem;
|
|
257
|
+
dynamicArray.createItem = createItem;
|
|
258
|
+
dynamicArray.resize = resize;
|
|
259
|
+
dynamicArray.createNewArray = createNewArray;
|
|
260
|
+
return dynamicArray;
|
|
261
|
+
};
|
|
262
|
+
const resize = function (size) {
|
|
263
|
+
if (hasFactory(this)) {
|
|
264
|
+
const newArray = resizeFormArray(this, size);
|
|
265
|
+
prepareArray(newArray);
|
|
266
|
+
formGroup.setControl(itemComponent.key, newArray);
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
// used externally: addItem, resize
|
|
270
|
+
return prepareArray(formArray);
|
|
271
|
+
}
|
|
272
|
+
resizeFormArray(formArray, size) {
|
|
273
|
+
if (formArray.length < size) {
|
|
274
|
+
const newArray = new FormArray(formArray.controls);
|
|
275
|
+
while (formArray.length < size) {
|
|
276
|
+
formArray.addItem();
|
|
277
|
+
}
|
|
278
|
+
return newArray;
|
|
279
|
+
}
|
|
280
|
+
else if (formArray.length > size) {
|
|
281
|
+
return new FormArray(formArray.controls.slice(0, size));
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return formArray;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
getContainers(component) {
|
|
288
|
+
if (component.type === 'group') {
|
|
289
|
+
return [{
|
|
290
|
+
path: component.path,
|
|
291
|
+
rows: component.rows,
|
|
292
|
+
disabled: component.disabled
|
|
293
|
+
}];
|
|
294
|
+
}
|
|
295
|
+
else if ((component.type === 'tab' || component.type === 'accordion')
|
|
296
|
+
&& Array.isArray(component.panels)) {
|
|
297
|
+
return component.panels.map((panel) => ({
|
|
298
|
+
path: panel.path,
|
|
299
|
+
rows: this.metadata.getFormByName(panel.template)?.rows ?? [],
|
|
300
|
+
disabled: panel.disabled
|
|
301
|
+
}));
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
return [];
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
getDefaultValue(component) {
|
|
308
|
+
switch (component.type) {
|
|
309
|
+
case "textarea":
|
|
310
|
+
case "textfield":
|
|
311
|
+
case "radio":
|
|
312
|
+
case "select":
|
|
313
|
+
return component.defaultValue;
|
|
314
|
+
case "number":
|
|
315
|
+
return component.defaultValue;
|
|
316
|
+
case "checkbox":
|
|
317
|
+
return (component.defaultValue ?? false);
|
|
318
|
+
default:
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
getUpdateOn(component) {
|
|
323
|
+
switch (component.type) {
|
|
324
|
+
case "number":
|
|
325
|
+
case "textarea":
|
|
326
|
+
case "textfield":
|
|
327
|
+
return "blur";
|
|
328
|
+
default:
|
|
329
|
+
return null;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormBuilderService, deps: [{ token: i1.ValidationService }, { token: i2.DisableService }, { token: i3.ComputeService }, { token: i4.StatusService }, { token: i5.EventService }, { token: i6.MetadataService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
333
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormBuilderService });
|
|
334
|
+
}
|
|
335
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormBuilderService, decorators: [{
|
|
336
|
+
type: Injectable
|
|
337
|
+
}], ctorParameters: () => [{ type: i1.ValidationService }, { type: i2.DisableService }, { type: i3.ComputeService }, { type: i4.StatusService }, { type: i5.EventService }, { type: i6.MetadataService }] });
|
|
338
|
+
export function hasFactory(array) {
|
|
339
|
+
if (!array)
|
|
340
|
+
return false;
|
|
341
|
+
const current = array;
|
|
342
|
+
return typeof current.createItem === 'function'
|
|
343
|
+
&& typeof current.addItem === 'function'
|
|
344
|
+
&& typeof current.resize === 'function'
|
|
345
|
+
&& typeof current.createNewArray === 'function';
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvc2VydmljZXMvYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFzQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU94RyxPQUFPLEVBQUUsV0FBVyxFQUFpQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQUdsRSxNQUFNLE9BQU8sa0JBQWtCO0lBR25CO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQU5aLFlBQ1UsaUJBQW9DLEVBQ2xDLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLFFBQXlCO1FBTDNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUNyQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQW9CLEVBQUUsS0FBaUIsRUFBRSxZQUEyQixTQUFTO1FBQ3JGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakUsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FB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QUFDO1lBQ2hCLEtBQUssV0FBVztnQkFDZCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzt3R0FuWFUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7O0FBdVhYLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBZ0I7SUFDekMsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxLQUFZLENBQUM7SUFDN0IsT0FBTyxPQUFPLE9BQU8sQ0FBQyxVQUFVLEtBQUssVUFBVTtXQUMxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVTtXQUNyQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVTtXQUNwQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFBO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUNvbnRyb2xPcHRpb25zLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25Db2xsZWN0aW9uLCBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlzYWJsZUNvbGxlY3Rpb24sIERpc2FibGVTZXJ2aWNlIH0gZnJvbSAnLi9kaXNhYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wdXRlQ29sbGVjdGlvbiwgQ29tcHV0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbXB1dGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0YXR1c0NvbGxlY3Rpb24sIFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRDb2xsZWN0aW9uLCBFdmVudFNlcnZpY2UgfSBmcm9tICcuL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuL21ldGFkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBFeCwgRm9ybUdyb3VwTW9kZSB9IGZyb20gJy4uL3V0aWxzL0Zvcm1Hcm91cEV4JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEZvcm1CdWlsZGVyU2VydmljZSAge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgZGlzYWJsZVNlcnZpY2U6IERpc2FibGVTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgY29tcHV0ZVNlcnZpY2U6IENvbXB1dGVTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgc3RhdHVzU2VydmljZTogU3RhdHVzU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgbWV0YWRhdGE6IE1ldGFkYXRhU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmb3JtczogQXJyYXk8YW55PiwgZ3JvdXBNb2RlOiBGb3JtR3JvdXBNb2RlID0gXCJkZWZhdWx0XCIpIHtcclxuICAgIGNvbnN0IHZhbGlkYXRpb25Db2xsZWN0aW9uID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5jcmVhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICBjb25zdCBkaXNhYmxlQ29sbGVjdGlvbiA9IHRoaXMuZGlzYWJsZVNlcnZpY2UuY3JlYXRlQ29sbGVjdGlvbigpO1xyXG4gICAgY29uc3QgZXZlbnRDb2xsZWN0aW9uID0gdGhpcy5ldmVudFNlcnZpY2UuY3JlYXRlQ29sbGVjdGlvbigpO1xyXG4gICAgY29uc3QgY29tcHV0ZUNvbGxlY3Rpb24gPSB0aGlzLmNvbXB1dGVTZXJ2aWNlLmNyZWF0ZUNvbGxlY3Rpb24oKTtcclxuICAgIGZvcm1zLmZvckVhY2goKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBzdGF0dXNDb2xsZWN0aW9uID0gdGhpcy5zdGF0dXNTZXJ2aWNlLmNyZWF0ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgoZm9ybUdyb3VwLCBmb3JtLnBhdGgsIGdyb3VwTW9kZSk7XHJcbiAgICAgIGlmICh0aGlzLmhhc1BhdGgoZm9ybS5wYXRoKSkge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZVNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uLCBjdXJyZW50R3JvdXAsIGZvcm1Hcm91cCwgZm9ybSk7XHJcbiAgICAgIH1cclxuICAgICAgZm9ybS5yb3dzPy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkQ29udHJvbHMoY3VycmVudEdyb3VwLCByb3cuY29tcG9uZW50cywgZ3JvdXBNb2RlXHJcbiAgICAgICAgICAsIGRpc2FibGVDb2xsZWN0aW9uXHJcbiAgICAgICAgICAsIGNvbXB1dGVDb2xsZWN0aW9uXHJcbiAgICAgICAgICAsIHZhbGlkYXRpb25Db2xsZWN0aW9uXHJcbiAgICAgICAgICAsIHN0YXR1c0NvbGxlY3Rpb25cclxuICAgICAgICAgICwgZXZlbnRDb2xsZWN0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5zZXR1cENvbGxlY3Rpb24oZm9ybSwgc3RhdHVzQ29sbGVjdGlvbik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlzYWJsZVNlcnZpY2Uuc2V0dXBDb2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uKTtcclxuICAgIHRoaXMuY29tcHV0ZVNlcnZpY2Uuc2V0dXBDb2xsZWN0aW9uKGNvbXB1dGVDb2xsZWN0aW9uKTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2V0dXBDb2xsZWN0aW9uKHZhbGlkYXRpb25Db2xsZWN0aW9uKTtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNldHVwQ29sbGVjdGlvbihldmVudENvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQYXRoKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlQYXRoKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBwYXRoOiBzdHJpbmcsIGdyb3VwTW9kZTogRm9ybUdyb3VwTW9kZSkge1xyXG4gICAgaWYgKCF0aGlzLmhhc1BhdGgocGF0aCkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1Hcm91cDtcclxuICAgIH1cclxuICAgIGxldCBjdXJyZW50R3JvdXA6IEZvcm1Hcm91cCA9IGZvcm1Hcm91cDtcclxuICAgIHRoaXMuc3BsaXRQYXRoKHBhdGgpLmZvckVhY2goKHNlZ21lbnQpID0+IHtcclxuICAgICAgY29uc3QgZXhpc3RHcm91cCA9IGN1cnJlbnRHcm91cC5nZXQoc2VnbWVudCk7XHJcbiAgICAgIGlmIChleGlzdEdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY3VycmVudEdyb3VwID0gZXhpc3RHcm91cDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZXhpc3RHcm91cCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNyZWF0ZSBmb3JtIGdyb3VwIGJlY2F1c2UgYW4gZWxlbWVudCB3aXRoIHBhdGggJHtzZWdtZW50fSBhbHJlYWR5IGV4aXN0c2ApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlZ21lbnRHcm91cCA9IHRoaXMuY3JlYXRlRm9ybUdyb3VwKGdyb3VwTW9kZSk7XHJcbiAgICAgICAgY3VycmVudEdyb3VwLmFkZENvbnRyb2woc2VnbWVudCwgc2VnbWVudEdyb3VwKTtcclxuICAgICAgICBjdXJyZW50R3JvdXAgPSBzZWdtZW50R3JvdXA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRHcm91cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3BsaXRQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgIGlmICghcGF0aCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGF0aFxyXG4gICAgICAuc3BsaXQoJy4nKVxyXG4gICAgICAubWFwKHNlZ21lbnQgPT4gc2VnbWVudC50cmltKCkpXHJcbiAgICAgIC5maWx0ZXIoc2VnbWVudCA9PiBzZWdtZW50Lmxlbmd0aCA+IDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoZ3JvdXBNb2RlOiBGb3JtR3JvdXBNb2RlKTogRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiAoZ3JvdXBNb2RlID09PSBcImRlZmF1bHRcIilcclxuICAgICAgPyBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgICA6IG5ldyBGb3JtR3JvdXBFeCh7fSwgZ3JvdXBNb2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29udHJvbHMoZm9ybUdyb3VwOiBGb3JtR3JvdXBcclxuICAgICwgY29tcG9uZW50czogQXJyYXk8YW55PlxyXG4gICAgLCBncm91cE1vZGU6IEZvcm1Hcm91cE1vZGVcclxuICAgICwgZGlzYWJsZUNvbGxlY3Rpb246IERpc2FibGVDb2xsZWN0aW9uXHJcbiAgICAsIGNvbXB1dGVDb2xsZWN0aW9uOiBDb21wdXRlQ29sbGVjdGlvblxyXG4gICAgLCB2YWxpZGF0aW9uQ29sbGVjdGlvbjogVmFsaWRhdGlvbkNvbGxlY3Rpb25cclxuICAgICwgc3RhdHVzQ29sbGVjdGlvbjogU3RhdHVzQ29sbGVjdGlvblxyXG4gICAgLCBldmVudENvbGxlY3Rpb246IEV2ZW50Q29sbGVjdGlvbikge1xyXG4gICAgbGV0IGZvcm1Db21wb25lbnQgPSB0aGlzO1xyXG5cclxuICAgIGNvbXBvbmVudHM/LmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzRm9ybUNvbXBvbmVudChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgoZm9ybUdyb3VwLCBjb21wb25lbnQucGF0aCwgZ3JvdXBNb2RlKTtcclxuICAgICAgICBpZiAoY3VycmVudEdyb3VwLmNvbnRhaW5zKGNvbXBvbmVudC5rZXkpKSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXR1c1NlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKHN0YXR1c0NvbGxlY3Rpb24sIGN1cnJlbnRHcm91cC5nZXQoY29tcG9uZW50LmtleSkgYXMgQWJzdHJhY3RDb250cm9sLCBjb21wb25lbnQpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjb21wb25lbnQpO1xyXG4gICAgICAgICAgY29uc3Qgb3B0aW9uczogRm9ybUNvbnRyb2xPcHRpb25zID0ge1xyXG4gICAgICAgICAgICB1cGRhdGVPbjogdGhpcy5nZXRVcGRhdGVPbihjb21wb25lbnQpIHx8IFwiY2hhbmdlXCIsXHJcbiAgICAgICAgICAgIG5vbk51bGxhYmxlOiAoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZGVmYXVsdFZhbHVlLCBvcHRpb25zKTtcclxuICAgICAgICAgIGN1cnJlbnRHcm91cC5hZGRDb250cm9sKGNvbXBvbmVudC5rZXksIGNvbnRyb2wpO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5hZGRUb0NvbGxlY3Rpb24odmFsaWRhdGlvbkNvbGxlY3Rpb24sIGNvbnRyb2wsIGN1cnJlbnRHcm91cCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5hZGRUb0NvbGxlY3Rpb24oc3RhdHVzQ29sbGVjdGlvbiwgY29udHJvbCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZVNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uLCBjb250cm9sLCBmb3JtR3JvdXAsIGNvbXBvbmVudCk7XHJcbiAgICAgICAgICB0aGlzLmNvbXB1dGVTZXJ2aWNlLmFkZFRvQ29sbGVjdGlvbihjb21wdXRlQ29sbGVjdGlvbiwgY29udHJvbCwgZm9ybUdyb3VwLCBjb21wb25lbnQpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGV2ZW50Q29sbGVjdGlvbiwgY29udHJvbCwgY3VycmVudEdyb3VwLCBjb21wb25lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmlzQ29udGFpbmVyQ29tcG9uZW50KGNvbXBvbmVudCkpIHtcclxuICAgICAgICBjb25zdCBjb250YWluZXJzID0gdGhpcy5nZXRDb250YWluZXJzKGNvbXBvbmVudCk7XHJcbiAgICAgICAgY29udGFpbmVycz8uZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aChmb3JtR3JvdXAsIGNvbnRhaW5lci5wYXRoLCBncm91cE1vZGUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaGFzUGF0aChjb250YWluZXIucGF0aCkpIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlU2VydmljZS5hZGRUb0NvbGxlY3Rpb24oZGlzYWJsZUNvbGxlY3Rpb24sIGN1cnJlbnRHcm91cCwgZm9ybUdyb3VwLCBjb250YWluZXIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGFpbmVyLnJvd3M/LmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGZvcm1Db21wb25lbnQuYWRkQ29udHJvbHMoY3VycmVudEdyb3VwLCByb3cuY29tcG9uZW50cywgZ3JvdXBNb2RlXHJcbiAgICAgICAgICAgICAgLCBkaXNhYmxlQ29sbGVjdGlvblxyXG4gICAgICAgICAgICAgICwgY29tcHV0ZUNvbGxlY3Rpb25cclxuICAgICAgICAgICAgICAsIHZhbGlkYXRpb25Db2xsZWN0aW9uXHJcbiAgICAgICAgICAgICAgLCBzdGF0dXNDb2xsZWN0aW9uXHJcbiAgICAgICAgICAgICAgLCBldmVudENvbGxlY3Rpb24pO1xyXG4gICAgICAgICAgfSk7ICAgICAgICAgIFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaXNBcnJheUNvbXBvbmVudChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbUNvbXBvbmVudCA9IHRoaXMuZ2V0QXJyYXlJdGVtKGNvbXBvbmVudCk7XHJcbiAgICAgICAgaWYgKGl0ZW1Db21wb25lbnQua2V5KSB7XHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aChmb3JtR3JvdXAsIGl0ZW1Db21wb25lbnQucGF0aCwgZ3JvdXBNb2RlKTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuY3JlYXRlRm9ybUFycmF5KGN1cnJlbnRHcm91cCwgaXRlbUNvbXBvbmVudCwgZ3JvdXBNb2RlKTtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKHZhbGlkYXRpb25Db2xsZWN0aW9uLCBmb3JtQXJyYXksIGN1cnJlbnRHcm91cCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5hZGRUb0NvbGxlY3Rpb24oc3RhdHVzQ29sbGVjdGlvbiwgZm9ybUFycmF5LCBjb21wb25lbnQpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGV2ZW50Q29sbGVjdGlvbiwgZm9ybUFycmF5LCBjdXJyZW50R3JvdXAsIGNvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaXNDb21wb25lbnRXaXRoSW5wdXQoY29tcG9uZW50KSkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRHcm91cCA9IHRoaXMuYXBwbHlQYXRoKGZvcm1Hcm91cCwgY29tcG9uZW50LnBhdGgsIGdyb3VwTW9kZSk7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRHcm91cC5jb250YWlucyhjb21wb25lbnQua2V5KSkge1xyXG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IGN1cnJlbnRHcm91cC5nZXQoY29tcG9uZW50LmtleSkgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5hZGRUb0NvbGxlY3Rpb24odmFsaWRhdGlvbkNvbGxlY3Rpb24sIGNvbnRyb2wsIGN1cnJlbnRHcm91cCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5hZGRUb0NvbGxlY3Rpb24oc3RhdHVzQ29sbGVjdGlvbiwgY29udHJvbCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZVNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uLCBjb250cm9sLCBjdXJyZW50R3JvdXAsIGNvbXBvbmVudCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcclxuICAgICAgICAgIGN1cnJlbnRHcm91cC5hZGRDb250cm9sKGNvbXBvbmVudC5rZXksIGNvbnRyb2wpO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5hZGRUb0NvbGxlY3Rpb24odmFsaWRhdGlvbkNvbGxlY3Rpb24sIGNvbnRyb2wsIGN1cnJlbnRHcm91cCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5hZGRUb0NvbGxlY3Rpb24oc3RhdHVzQ29sbGVjdGlvbiwgY29udHJvbCwgY29tcG9uZW50KTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZVNlcnZpY2UuYWRkVG9Db2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uLCBjb250cm9sLCBjdXJyZW50R3JvdXAsIGNvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNGb3JtQ29tcG9uZW50KGNvbXBvbmVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxyXG4gICAgICBjYXNlIFwiY2hlY2tsaXN0XCI6XHJcbiAgICAgIGNhc2UgXCJkYXRldGltZVwiOlxyXG4gICAgICBjYXNlIFwiZmlsZXBpY2tlclwiOlxyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgIGNhc2UgXCJyYWRpb1wiOlxyXG4gICAgICBjYXNlIFwic2VsZWN0XCI6XHJcbiAgICAgIGNhc2UgXCJ0YWdsaXN0XCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICBjYXNlIFwidGV4dGZpZWxkXCI6XHJcbiAgICAgIGNhc2UgXCJyYW5nZVwiOlxyXG4gICAgICBjYXNlIFwiZXhwcmVzc2lvblwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDb250YWluZXJDb21wb25lbnQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcImdyb3VwXCI6XHJcbiAgICAgIGNhc2UgXCJ0YWJcIjpcclxuICAgICAgY2FzZSBcImFjY29yZGlvblwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDb21wb25lbnRXaXRoSW5wdXQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gXCJjb21wb25lbnRcIlxyXG4gICAgICAmJiBjb21wb25lbnQuaXNJbnB1dCA9PT0gdHJ1ZVxyXG4gICAgICAmJiBjb21wb25lbnQua2V5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FycmF5Q29tcG9uZW50KGNvbXBvbmVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkeW5hbWljbGlzdFwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QXJyYXlJdGVtKGNvbXBvbmVudDogYW55KTogeyBrZXk6IGFueTsgcGF0aDogYW55OyByb3dzOiBhbnkgfSB7XHJcbiAgICBpZiAoY29tcG9uZW50LnR5cGUgPT09ICdkeW5hbWljbGlzdCcpIHtcclxuICAgICAgcmV0dXJuIHsga2V5OiBjb21wb25lbnQua2V5LCBwYXRoOiBjb21wb25lbnQucGF0aCwgcm93czogY29tcG9uZW50LnJvd3MgfTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4geyBrZXk6IG51bGwsIHBhdGg6IG51bGwsIHJvd3M6IFtdIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZvcm1BcnJheShmb3JtR3JvdXA6IEZvcm1Hcm91cFxyXG4gICAgLCBpdGVtQ29tcG9uZW50OiBhbnlcclxuICAgICwgZ3JvdXBNb2RlOiBGb3JtR3JvdXBNb2RlKTogRm9ybUFycmF5V2l0aEZhY3Rvcnkge1xyXG4gICAgY29uc3QgZm9ybUNvbXBvbmVudCA9IHRoaXM7XHJcblxyXG4gICAgY29uc3QgcHJlcGFyZUl0ZW0gPSBmdW5jdGlvbiAoZm9ybUdyb3VwOiBGb3JtR3JvdXApOiB2b2lkIHtcclxuICAgICAgY29uc3Qgc3RhdHVzQ29sbGVjdGlvbiA9IGZvcm1Db21wb25lbnQuc3RhdHVzU2VydmljZS5jcmVhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25Db2xsZWN0aW9uID0gZm9ybUNvbXBvbmVudC52YWxpZGF0aW9uU2VydmljZS5jcmVhdGVDb2xsZWN0aW9uKCk7XHJcbiAgICAgIGNvbnN0IGV2ZW50Q29sbGVjdGlvbiA9IGZvcm1Db21wb25lbnQuZXZlbnRTZXJ2aWNlLmNyZWF0ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgY29uc3QgZGlzYWJsZUNvbGxlY3Rpb24gPSBmb3JtQ29tcG9uZW50LmRpc2FibGVTZXJ2aWNlLmNyZWF0ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgY29uc3QgY29tcHV0ZUNvbGxlY3Rpb24gPSBmb3JtQ29tcG9uZW50LmNvbXB1dGVTZXJ2aWNlLmNyZWF0ZUNvbGxlY3Rpb24oKTtcclxuICAgICAgaXRlbUNvbXBvbmVudC5yb3dzPy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgIGZvcm1Db21wb25lbnQuYWRkQ29udHJvbHMoZm9ybUdyb3VwLCByb3cuY29tcG9uZW50cywgZ3JvdXBNb2RlXHJcbiAgICAgICAgICAsIGRpc2FibGVDb2xsZWN0aW9uXHJcbiAgICAgICAgICAsIGNvbXB1dGVDb2xsZWN0aW9uXHJcbiAgICAgICAgICAsIHZhbGlkYXRpb25Db2xsZWN0aW9uXHJcbiAgICAgICAgICAsIHN0YXR1c0NvbGxlY3Rpb25cclxuICAgICAgICAgICwgZXZlbnRDb2xsZWN0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIGlnbm9yZSBzdGF0dXNDb2xsZWN0aW9uXHJcbiAgICAgIGZvcm1Db21wb25lbnQuZGlzYWJsZVNlcnZpY2Uuc2V0dXBDb2xsZWN0aW9uKGRpc2FibGVDb2xsZWN0aW9uKTtcclxuICAgICAgZm9ybUNvbXBvbmVudC5jb21wdXRlU2VydmljZS5zZXR1cENvbGxlY3Rpb24oY29tcHV0ZUNvbGxlY3Rpb24pO1xyXG4gICAgICBmb3JtQ29tcG9uZW50LnZhbGlkYXRpb25TZXJ2aWNlLnNldHVwQ29sbGVjdGlvbih2YWxpZGF0aW9uQ29sbGVjdGlvbik7XHJcbiAgICAgIGZvcm1Db21wb25lbnQuZXZlbnRTZXJ2aWNlLnNldHVwQ29sbGVjdGlvbihldmVudENvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUl0ZW0gPSBmdW5jdGlvbiAodGhpczogRm9ybUFycmF5LCBhZGRUb0FycmF5OiBib29sZWFuID0gZmFsc2UpOiBGb3JtR3JvdXAge1xyXG4gICAgICBjb25zdCBuZXdHcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICBpZiAoYWRkVG9BcnJheSkgdGhpcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgICAgcHJlcGFyZUl0ZW0obmV3R3JvdXApO1xyXG4gICAgICByZXR1cm4gbmV3R3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGFkZEl0ZW0gPSBmdW5jdGlvbiAodGhpczogRm9ybUFycmF5KTogRm9ybUdyb3VwIHtcclxuICAgICAgaWYgKGhhc0ZhY3RvcnkodGhpcykpIHtcclxuICAgICAgICBjb25zdCBuZXdHcm91cCA9IHRoaXMuY3JlYXRlSXRlbSh0cnVlKTtcclxuICAgICAgICByZXR1cm4gbmV3R3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ0Nhbm5vdCBhZGQgaXRlbTogdGhlIEZvcm1BcnJheSBkb2VzIG5vdCBpbXBsZW1lbnQgRm9ybUFycmF5V2l0aEZhY3RvcnkuJ1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3Qgb3ZlcnJpZGVBcnJheSA9IChhcnJheTogRm9ybUFycmF5V2l0aEZhY3RvcnkpID0+IHtcclxuICAgICAgY29uc3QgY3JlYXRlSXRlbSA9IGFycmF5LmNyZWF0ZUl0ZW0uYmluZChhcnJheSk7XHJcbiAgICAgIGFycmF5LmNyZWF0ZUl0ZW0gPSBmdW5jdGlvbiAodGhpczogRm9ybUFycmF5LCBhZGRUb0FycmF5OiBib29sZWFuKTogRm9ybUdyb3VwIHtcclxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjcmVhdGVJdGVtKGFkZFRvQXJyYXkpO1xyXG4gICAgICAgIHByZXBhcmVJdGVtKGZvcm1Hcm91cCk7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1Hcm91cDtcclxuICAgICAgfTsgICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGV4aXN0aW5nID0gZm9ybUdyb3VwLmdldChpdGVtQ29tcG9uZW50LmtleSk7XHJcblxyXG4gICAgaWYgKGV4aXN0aW5nIGluc3RhbmNlb2YgRm9ybUFycmF5ICYmIGhhc0ZhY3RvcnkoZXhpc3RpbmcpKSB7XHJcbiAgICAgIG92ZXJyaWRlQXJyYXkoZXhpc3RpbmcpO1xyXG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA+KFtdKTtcclxuXHJcbiAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChpdGVtQ29tcG9uZW50LmtleSwgZm9ybUFycmF5KTtcclxuXHJcbiAgICBjb25zdCByZXNpemVGb3JtQXJyYXkgPSB0aGlzLnJlc2l6ZUZvcm1BcnJheTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVOZXdBcnJheSA9IGZ1bmN0aW9uICgpIDogRm9ybUFycmF5V2l0aEZhY3Rvcnkge1xyXG4gICAgICBjb25zdCBuZXdBcnJheSA9IG5ldyBGb3JtQXJyYXk8Rm9ybUdyb3VwPihbXSk7XHJcbiAgICAgIHJldHVybiBwcmVwYXJlQXJyYXkobmV3QXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByZXBhcmVBcnJheSA9IChhcnJheTogRm9ybUFycmF5KTogRm9ybUFycmF5V2l0aEZhY3RvcnkgPT4ge1xyXG4gICAgICBjb25zdCBkeW5hbWljQXJyYXkgPSBhcnJheSBhcyBGb3JtQXJyYXlXaXRoRmFjdG9yeTtcclxuICAgICAgZHluYW1pY0FycmF5LmFkZEl0ZW0gPSBhZGRJdGVtO1xyXG4gICAgICBkeW5hbWljQXJyYXkuY3JlYXRlSXRlbSA9IGNyZWF0ZUl0ZW07XHJcbiAgICAgIGR5bmFtaWNBcnJheS5yZXNpemUgPSByZXNpemU7XHJcbiAgICAgIGR5bmFtaWNBcnJheS5jcmVhdGVOZXdBcnJheSA9IGNyZWF0ZU5ld0FycmF5O1xyXG4gICAgICByZXR1cm4gZHluYW1pY0FycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc2l6ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtQXJyYXksIHNpemU6IG51bWJlcikge1xyXG4gICAgICBpZiAoaGFzRmFjdG9yeSh0aGlzKSkge1xyXG4gICAgICAgIGNvbnN0IG5ld0FycmF5ID0gcmVzaXplRm9ybUFycmF5KHRoaXMsIHNpemUpO1xyXG4gICAgICAgIHByZXBhcmVBcnJheShuZXdBcnJheSk7XHJcbiAgICAgICAgZm9ybUdyb3VwLnNldENvbnRyb2woaXRlbUNvbXBvbmVudC5rZXksIG5ld0FycmF5KTtcclxuICAgICAgfSAgICAgIFxyXG4gICAgfTtcclxuXHJcbiAgICAvLyB1c2VkIGV4dGVybmFsbHk6IGFkZEl0ZW0sIHJlc2l6ZVxyXG5cclxuICAgIHJldHVybiBwcmVwYXJlQXJyYXkoZm9ybUFycmF5KTsgICAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZUZvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheVdpdGhGYWN0b3J5LCBzaXplOiBudW1iZXIpOiBGb3JtQXJyYXkge1xyXG4gICAgaWYgKGZvcm1BcnJheS5sZW5ndGggPCBzaXplKSB7XHJcbiAgICAgIGNvbnN0IG5ld0FycmF5ID0gbmV3IEZvcm1BcnJheShmb3JtQXJyYXkuY29udHJvbHMpO1xyXG4gICAgICB3aGlsZSAoZm9ybUFycmF5Lmxlbmd0aCA8IHNpemUpIHtcclxuICAgICAgICBmb3JtQXJyYXkuYWRkSXRlbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuZXdBcnJheTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZvcm1BcnJheS5sZW5ndGggPiBzaXplKSB7XHJcbiAgICAgIHJldHVybiBuZXcgRm9ybUFycmF5KGZvcm1BcnJheS5jb250cm9scy5zbGljZSgwLCBzaXplKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZvcm1BcnJheTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVycyhjb21wb25lbnQ6IGFueSk6IHsgcGF0aDogYW55OyByb3dzOiBhbnksIGRpc2FibGVkOiBhbnkgfVtdIHtcclxuICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gJ2dyb3VwJykge1xyXG4gICAgICByZXR1cm4gW3tcclxuICAgICAgICBwYXRoOiBjb21wb25lbnQucGF0aCxcclxuICAgICAgICByb3dzOiBjb21wb25lbnQucm93cyxcclxuICAgICAgICBkaXNhYmxlZDogY29tcG9uZW50LmRpc2FibGVkXHJcbiAgICAgIH1dO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKGNvbXBvbmVudC50eXBlID09PSAndGFiJyB8fCBjb21wb25lbnQudHlwZSA9PT0gJ2FjY29yZGlvbicpXHJcbiAgICAgICYmIEFycmF5LmlzQXJyYXkoY29tcG9uZW50LnBhbmVscykpIHtcclxuICAgICAgcmV0dXJuIGNvbXBvbmVudC5wYW5lbHMubWFwKChwYW5lbDogYW55KSA9PiAoe1xyXG4gICAgICAgIHBhdGg6IHBhbmVsLnBhdGgsXHJcbiAgICAgICAgcm93czogdGhpcy5tZXRhZGF0YS5nZXRGb3JtQnlOYW1lKHBhbmVsLnRlbXBsYXRlKT8ucm93cyA/PyBbXSxcclxuICAgICAgICBkaXNhYmxlZDogcGFuZWwuZGlzYWJsZWRcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFZhbHVlKGNvbXBvbmVudDogYW55KTogYW55IHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0ZmllbGRcIjpcclxuICAgICAgY2FzZSBcInJhZGlvXCI6XHJcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50LmRlZmF1bHRWYWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50LmRlZmF1bHRWYWx1ZSBhcyBudW1iZXI7XHJcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxyXG4gICAgICAgIHJldHVybiAoY29tcG9uZW50LmRlZmF1bHRWYWx1ZSA/PyBmYWxzZSkgYXMgYm9vbGVhbjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBkYXRlT24oY29tcG9uZW50OiBhbnkpOiBhbnkge1xyXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICBjYXNlIFwidGV4dGZpZWxkXCI6XHJcbiAgICAgICAgcmV0dXJuIFwiYmx1clwiO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ZhY3RvcnkoYXJyYXk6IEZvcm1BcnJheSk6IGFycmF5IGlzIEZvcm1BcnJheVdpdGhGYWN0b3J5IHtcclxuICBpZiAoIWFycmF5KSByZXR1cm4gZmFsc2U7XHJcbiAgY29uc3QgY3VycmVudCA9IGFycmF5IGFzIGFueTtcclxuICByZXR1cm4gdHlwZW9mIGN1cnJlbnQuY3JlYXRlSXRlbSA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgJiYgdHlwZW9mIGN1cnJlbnQuYWRkSXRlbSA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgJiYgdHlwZW9mIGN1cnJlbnQucmVzaXplID09PSAnZnVuY3Rpb24nXHJcbiAgICAmJiB0eXBlb2YgY3VycmVudC5jcmVhdGVOZXdBcnJheSA9PT0gJ2Z1bmN0aW9uJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1BcnJheVdpdGhGYWN0b3J5IGV4dGVuZHMgRm9ybUFycmF5IHtcclxuICBjcmVhdGVJdGVtKGFkZFRvQXJyYXk6IGJvb2xlYW4pOiBGb3JtR3JvdXA7XHJcbiAgYWRkSXRlbSgpOiBGb3JtR3JvdXA7XHJcbiAgcmVzaXplKHNpemU6IG51bWJlcik6IHZvaWQ7XHJcbiAgY3JlYXRlTmV3QXJyYXkoKTogRm9ybUFycmF5V2l0aEZhY3RvcnlcclxufVxyXG4iXX0=
|