ng-prime-tools 1.0.32 → 1.0.33

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.
Files changed (41) hide show
  1. package/README.md +3 -3
  2. package/esm2022/lib/enums/form-input-type.enum.mjs +2 -1
  3. package/esm2022/lib/enums/input-validation.enum.mjs +2 -1
  4. package/esm2022/lib/ng-prime-tools.module.mjs +9 -5
  5. package/esm2022/lib/pt-advanced-prime-table/pt-advanced-prime-table.component.mjs +77 -48
  6. package/esm2022/lib/pt-confirm-dialog/index.mjs +2 -0
  7. package/esm2022/lib/pt-confirm-dialog/pt-confirm-dialog.component.mjs +285 -0
  8. package/esm2022/lib/pt-confirm-dialog/pt-confirm-dialog.module.mjs +21 -0
  9. package/esm2022/lib/pt-confirm-dialog/public-api.mjs +3 -0
  10. package/esm2022/lib/pt-dialog/pt-dialog.component.mjs +96 -268
  11. package/esm2022/lib/pt-dialog/pt-dialog.module.mjs +5 -7
  12. package/esm2022/lib/pt-form-builder/pt-dynamic-form-field/pt-dynamic-form-field.component.mjs +3 -3
  13. package/esm2022/lib/pt-form-builder/pt-form-builder.component.mjs +67 -4
  14. package/esm2022/public-api.mjs +2 -1
  15. package/fesm2022/ng-prime-tools.mjs +298 -78
  16. package/fesm2022/ng-prime-tools.mjs.map +1 -1
  17. package/lib/enums/form-input-type.enum.d.ts +1 -0
  18. package/lib/enums/form-input-type.enum.d.ts.map +1 -1
  19. package/lib/enums/input-validation.enum.d.ts +2 -1
  20. package/lib/enums/input-validation.enum.d.ts.map +1 -1
  21. package/lib/ng-prime-tools.module.d.ts +3 -2
  22. package/lib/ng-prime-tools.module.d.ts.map +1 -1
  23. package/lib/pt-advanced-prime-table/pt-advanced-prime-table.component.d.ts +36 -11
  24. package/lib/pt-advanced-prime-table/pt-advanced-prime-table.component.d.ts.map +1 -1
  25. package/lib/pt-confirm-dialog/index.d.ts +2 -0
  26. package/lib/pt-confirm-dialog/index.d.ts.map +1 -0
  27. package/lib/pt-confirm-dialog/pt-confirm-dialog.component.d.ts +44 -0
  28. package/lib/pt-confirm-dialog/pt-confirm-dialog.component.d.ts.map +1 -0
  29. package/lib/pt-confirm-dialog/pt-confirm-dialog.module.d.ts +12 -0
  30. package/lib/pt-confirm-dialog/pt-confirm-dialog.module.d.ts.map +1 -0
  31. package/lib/pt-confirm-dialog/public-api.d.ts +3 -0
  32. package/lib/pt-confirm-dialog/public-api.d.ts.map +1 -0
  33. package/lib/pt-dialog/pt-dialog.component.d.ts +47 -40
  34. package/lib/pt-dialog/pt-dialog.component.d.ts.map +1 -1
  35. package/lib/pt-dialog/pt-dialog.module.d.ts +1 -3
  36. package/lib/pt-dialog/pt-dialog.module.d.ts.map +1 -1
  37. package/lib/pt-form-builder/pt-form-builder.component.d.ts +5 -1
  38. package/lib/pt-form-builder/pt-form-builder.component.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/public-api.d.ts +1 -0
  41. package/public-api.d.ts.map +1 -1
@@ -40,11 +40,11 @@ export class PTDynamicFormFieldComponent {
40
40
  return field;
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDynamicFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDynamicFormFieldComponent, selector: "pt-dynamic-form-field", inputs: { field: "field", form: "form", inputWidth: "inputWidth" }, ngImport: i0, template: "<div\n [formGroup]=\"form\"\n class=\"form-field\"\n [ngStyle]=\"{\n width:\n field.type !== FormInputTypeEnum.CHECKBOX &&\n field.type !== FormInputTypeEnum.SWITCH\n ? field.width || inputWidth\n : 'auto'\n }\"\n>\n <ng-container [ngSwitch]=\"field.type\">\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXT\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.NUMBER\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.AMOUNT\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n <pt-text-area-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXTAREA\"\n [formGroup]=\"form\"\n [formField]=\"asTextAreaField(field)\"\n ></pt-text-area-input>\n <pt-date-input\n *ngSwitchCase=\"FormInputTypeEnum.DATE\"\n [formGroup]=\"form\"\n [formField]=\"asDateField(field)\"\n ></pt-date-input>\n <pt-multi-select\n *ngSwitchCase=\"FormInputTypeEnum.MULTISELECT\"\n [formGroup]=\"form\"\n [formField]=\"asMultiSelectField(field)\"\n ></pt-multi-select>\n <pt-dropdown\n *ngSwitchCase=\"FormInputTypeEnum.SELECT\"\n [formGroup]=\"form\"\n [formField]=\"asSelectField(field)\"\n ></pt-dropdown>\n <pt-check-box-input\n *ngSwitchCase=\"FormInputTypeEnum.CHECKBOX\"\n [formGroup]=\"form\"\n [formField]=\"asCheckboxField(field)\"\n ></pt-check-box-input>\n <pt-switch-input\n *ngSwitchCase=\"FormInputTypeEnum.SWITCH\"\n [formGroup]=\"form\"\n [formField]=\"asSwitchField(field)\"\n ></pt-switch-input>\n </ng-container>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PTCheckBoxInputComponent, selector: "pt-check-box-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i4.PTDateInputComponent, selector: "pt-date-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i5.PTNumberInputComponent, selector: "pt-number-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i6.PTSwitchInputComponent, selector: "pt-switch-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i7.PTTextAreaInputComponent, selector: "pt-text-area-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i8.PTTextInputComponent, selector: "pt-text-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i9.PTDropdownComponent, selector: "pt-dropdown", inputs: ["formGroup", "formField"] }, { kind: "component", type: i10.PTMultiSelectComponent, selector: "pt-multi-select", inputs: ["formGroup", "formField"] }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDynamicFormFieldComponent, selector: "pt-dynamic-form-field", inputs: { field: "field", form: "form", inputWidth: "inputWidth" }, ngImport: i0, template: "<div\n [formGroup]=\"form\"\n class=\"form-field\"\n [ngStyle]=\"{\n width:\n field.type !== FormInputTypeEnum.CHECKBOX &&\n field.type !== FormInputTypeEnum.SWITCH\n ? field.width || inputWidth\n : 'auto'\n }\"\n>\n <ng-container [ngSwitch]=\"field.type\">\n <!-- TEXT -->\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXT\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n\n <!-- EMAIL (NEW) -->\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.EMAIL\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n\n <!-- NUMBER -->\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.NUMBER\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n\n <!-- AMOUNT -->\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.AMOUNT\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n\n <!-- TEXTAREA -->\n <pt-text-area-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXTAREA\"\n [formGroup]=\"form\"\n [formField]=\"asTextAreaField(field)\"\n ></pt-text-area-input>\n\n <!-- DATE -->\n <pt-date-input\n *ngSwitchCase=\"FormInputTypeEnum.DATE\"\n [formGroup]=\"form\"\n [formField]=\"asDateField(field)\"\n ></pt-date-input>\n\n <!-- MULTISELECT -->\n <pt-multi-select\n *ngSwitchCase=\"FormInputTypeEnum.MULTISELECT\"\n [formGroup]=\"form\"\n [formField]=\"asMultiSelectField(field)\"\n ></pt-multi-select>\n\n <!-- SELECT -->\n <pt-dropdown\n *ngSwitchCase=\"FormInputTypeEnum.SELECT\"\n [formGroup]=\"form\"\n [formField]=\"asSelectField(field)\"\n ></pt-dropdown>\n\n <!-- CHECKBOX -->\n <pt-check-box-input\n *ngSwitchCase=\"FormInputTypeEnum.CHECKBOX\"\n [formGroup]=\"form\"\n [formField]=\"asCheckboxField(field)\"\n ></pt-check-box-input>\n\n <!-- SWITCH -->\n <pt-switch-input\n *ngSwitchCase=\"FormInputTypeEnum.SWITCH\"\n [formGroup]=\"form\"\n [formField]=\"asSwitchField(field)\"\n ></pt-switch-input>\n </ng-container>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PTCheckBoxInputComponent, selector: "pt-check-box-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i4.PTDateInputComponent, selector: "pt-date-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i5.PTNumberInputComponent, selector: "pt-number-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i6.PTSwitchInputComponent, selector: "pt-switch-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i7.PTTextAreaInputComponent, selector: "pt-text-area-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i8.PTTextInputComponent, selector: "pt-text-input", inputs: ["formGroup", "formField"] }, { kind: "component", type: i9.PTDropdownComponent, selector: "pt-dropdown", inputs: ["formGroup", "formField"] }, { kind: "component", type: i10.PTMultiSelectComponent, selector: "pt-multi-select", inputs: ["formGroup", "formField"] }] }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDynamicFormFieldComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'pt-dynamic-form-field', template: "<div\n [formGroup]=\"form\"\n class=\"form-field\"\n [ngStyle]=\"{\n width:\n field.type !== FormInputTypeEnum.CHECKBOX &&\n field.type !== FormInputTypeEnum.SWITCH\n ? field.width || inputWidth\n : 'auto'\n }\"\n>\n <ng-container [ngSwitch]=\"field.type\">\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXT\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.NUMBER\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.AMOUNT\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n <pt-text-area-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXTAREA\"\n [formGroup]=\"form\"\n [formField]=\"asTextAreaField(field)\"\n ></pt-text-area-input>\n <pt-date-input\n *ngSwitchCase=\"FormInputTypeEnum.DATE\"\n [formGroup]=\"form\"\n [formField]=\"asDateField(field)\"\n ></pt-date-input>\n <pt-multi-select\n *ngSwitchCase=\"FormInputTypeEnum.MULTISELECT\"\n [formGroup]=\"form\"\n [formField]=\"asMultiSelectField(field)\"\n ></pt-multi-select>\n <pt-dropdown\n *ngSwitchCase=\"FormInputTypeEnum.SELECT\"\n [formGroup]=\"form\"\n [formField]=\"asSelectField(field)\"\n ></pt-dropdown>\n <pt-check-box-input\n *ngSwitchCase=\"FormInputTypeEnum.CHECKBOX\"\n [formGroup]=\"form\"\n [formField]=\"asCheckboxField(field)\"\n ></pt-check-box-input>\n <pt-switch-input\n *ngSwitchCase=\"FormInputTypeEnum.SWITCH\"\n [formGroup]=\"form\"\n [formField]=\"asSwitchField(field)\"\n ></pt-switch-input>\n </ng-container>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"] }]
47
+ args: [{ selector: 'pt-dynamic-form-field', template: "<div\n [formGroup]=\"form\"\n class=\"form-field\"\n [ngStyle]=\"{\n width:\n field.type !== FormInputTypeEnum.CHECKBOX &&\n field.type !== FormInputTypeEnum.SWITCH\n ? field.width || inputWidth\n : 'auto'\n }\"\n>\n <ng-container [ngSwitch]=\"field.type\">\n <!-- TEXT -->\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXT\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n\n <!-- EMAIL (NEW) -->\n <pt-text-input\n *ngSwitchCase=\"FormInputTypeEnum.EMAIL\"\n [formGroup]=\"form\"\n [formField]=\"asTextField(field)\"\n ></pt-text-input>\n\n <!-- NUMBER -->\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.NUMBER\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n\n <!-- AMOUNT -->\n <pt-number-input\n *ngSwitchCase=\"FormInputTypeEnum.AMOUNT\"\n [formGroup]=\"form\"\n [formField]=\"asNumberField(field)\"\n ></pt-number-input>\n\n <!-- TEXTAREA -->\n <pt-text-area-input\n *ngSwitchCase=\"FormInputTypeEnum.TEXTAREA\"\n [formGroup]=\"form\"\n [formField]=\"asTextAreaField(field)\"\n ></pt-text-area-input>\n\n <!-- DATE -->\n <pt-date-input\n *ngSwitchCase=\"FormInputTypeEnum.DATE\"\n [formGroup]=\"form\"\n [formField]=\"asDateField(field)\"\n ></pt-date-input>\n\n <!-- MULTISELECT -->\n <pt-multi-select\n *ngSwitchCase=\"FormInputTypeEnum.MULTISELECT\"\n [formGroup]=\"form\"\n [formField]=\"asMultiSelectField(field)\"\n ></pt-multi-select>\n\n <!-- SELECT -->\n <pt-dropdown\n *ngSwitchCase=\"FormInputTypeEnum.SELECT\"\n [formGroup]=\"form\"\n [formField]=\"asSelectField(field)\"\n ></pt-dropdown>\n\n <!-- CHECKBOX -->\n <pt-check-box-input\n *ngSwitchCase=\"FormInputTypeEnum.CHECKBOX\"\n [formGroup]=\"form\"\n [formField]=\"asCheckboxField(field)\"\n ></pt-check-box-input>\n\n <!-- SWITCH -->\n <pt-switch-input\n *ngSwitchCase=\"FormInputTypeEnum.SWITCH\"\n [formGroup]=\"form\"\n [formField]=\"asSwitchField(field)\"\n ></pt-switch-input>\n </ng-container>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"] }]
48
48
  }], propDecorators: { field: [{
49
49
  type: Input
50
50
  }], form: [{
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
52
52
  }], inputWidth: [{
53
53
  type: Input
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWR5bmFtaWMtZm9ybS1maWVsZC9wdC1keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1mb3JtLWJ1aWxkZXIvcHQtZHluYW1pYy1mb3JtLWZpZWxkL3B0LWR5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztBQWVoRCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBVUUsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FpQ3ZDO0lBL0JDLFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixPQUFPLEtBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixPQUFPLEtBQXdCLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixPQUFPLEtBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixPQUFPLEtBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixPQUFPLEtBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWdCO1FBQ2pDLE9BQU8sS0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdCO1FBQzlCLE9BQU8sS0FBMEIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLE9BQU8sS0FBd0IsQ0FBQztJQUNsQyxDQUFDOytHQXJDVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixpSUNsQnhDLHV6REEyREE7OzRGRHpDYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGb3JtVGV4dEZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tdGV4dC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtVGV4dEFyZWFGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXRleHQtYXJlYS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtTXVsdGlTZWxlY3RGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLW11bHRpLXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRHJvcGRvd25GaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWRyb3AtZG93bi1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtU3dpdGNoRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zd2l0Y2gtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybU51bWJlckZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tbnVtYmVyLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1EYXRlRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1kYXRlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1DaGVja0JveEZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY2hlY2stZmllbGQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1keW5hbWljLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFREeW5hbWljRm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZmllbGQhOiBGb3JtRmllbGQ7XG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGlucHV0V2lkdGghOiBzdHJpbmc7XG5cbiAgRm9ybUlucHV0VHlwZUVudW0gPSBGb3JtSW5wdXRUeXBlRW51bTtcblxuICBhc1RleHRGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybVRleHRGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1UZXh0RmllbGQ7XG4gIH1cblxuICBhc051bWJlckZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtTnVtYmVyRmllbGQge1xuICAgIHJldHVybiBmaWVsZCBhcyBGb3JtTnVtYmVyRmllbGQ7XG4gIH1cblxuICBhc1RleHRBcmVhRmllbGQoZmllbGQ6IEZvcm1GaWVsZCk6IEZvcm1UZXh0QXJlYUZpZWxkIHtcbiAgICByZXR1cm4gZmllbGQgYXMgRm9ybVRleHRBcmVhRmllbGQ7XG4gIH1cblxuICBhc0RhdGVGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybURhdGVGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1EYXRlRmllbGQ7XG4gIH1cblxuICBhc1NlbGVjdEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtRHJvcGRvd25GaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1Ecm9wZG93bkZpZWxkO1xuICB9XG5cbiAgYXNNdWx0aVNlbGVjdEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtTXVsdGlTZWxlY3RGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1NdWx0aVNlbGVjdEZpZWxkO1xuICB9XG5cbiAgYXNDaGVja2JveEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtQ2hlY2tCb3hGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1DaGVja0JveEZpZWxkO1xuICB9XG5cbiAgYXNTd2l0Y2hGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybVN3aXRjaEZpZWxkIHtcbiAgICByZXR1cm4gZmllbGQgYXMgRm9ybVN3aXRjaEZpZWxkO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZm9ybS1maWVsZFwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICB3aWR0aDpcbiAgICAgIGZpZWxkLnR5cGUgIT09IEZvcm1JbnB1dFR5cGVFbnVtLkNIRUNLQk9YICYmXG4gICAgICBmaWVsZC50eXBlICE9PSBGb3JtSW5wdXRUeXBlRW51bS5TV0lUQ0hcbiAgICAgICAgPyBmaWVsZC53aWR0aCB8fCBpbnB1dFdpZHRoXG4gICAgICAgIDogJ2F1dG8nXG4gIH1cIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC50eXBlXCI+XG4gICAgPHB0LXRleHQtaW5wdXRcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJGb3JtSW5wdXRUeXBlRW51bS5URVhUXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBbZm9ybUZpZWxkXT1cImFzVGV4dEZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtdGV4dC1pbnB1dD5cbiAgICA8cHQtbnVtYmVyLWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uTlVNQkVSXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBbZm9ybUZpZWxkXT1cImFzTnVtYmVyRmllbGQoZmllbGQpXCJcbiAgICA+PC9wdC1udW1iZXItaW5wdXQ+XG4gICAgPHB0LW51bWJlci1pbnB1dFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLkFNT1VOVFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc051bWJlckZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtbnVtYmVyLWlucHV0PlxuICAgIDxwdC10ZXh0LWFyZWEtaW5wdXRcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJGb3JtSW5wdXRUeXBlRW51bS5URVhUQVJFQVwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc1RleHRBcmVhRmllbGQoZmllbGQpXCJcbiAgICA+PC9wdC10ZXh0LWFyZWEtaW5wdXQ+XG4gICAgPHB0LWRhdGUtaW5wdXRcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJGb3JtSW5wdXRUeXBlRW51bS5EQVRFXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBbZm9ybUZpZWxkXT1cImFzRGF0ZUZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtZGF0ZS1pbnB1dD5cbiAgICA8cHQtbXVsdGktc2VsZWN0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uTVVMVElTRUxFQ1RcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIFtmb3JtRmllbGRdPVwiYXNNdWx0aVNlbGVjdEZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtbXVsdGktc2VsZWN0PlxuICAgIDxwdC1kcm9wZG93blxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLlNFTEVDVFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc1NlbGVjdEZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtZHJvcGRvd24+XG4gICAgPHB0LWNoZWNrLWJveC1pbnB1dFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLkNIRUNLQk9YXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBbZm9ybUZpZWxkXT1cImFzQ2hlY2tib3hGaWVsZChmaWVsZClcIlxuICAgID48L3B0LWNoZWNrLWJveC1pbnB1dD5cbiAgICA8cHQtc3dpdGNoLWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uU1dJVENIXCJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICBbZm9ybUZpZWxkXT1cImFzU3dpdGNoRmllbGQoZmllbGQpXCJcbiAgICA+PC9wdC1zd2l0Y2gtaW5wdXQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWR5bmFtaWMtZm9ybS1maWVsZC9wdC1keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1mb3JtLWJ1aWxkZXIvcHQtZHluYW1pYy1mb3JtLWZpZWxkL3B0LWR5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7OztBQWVoRCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBVUUsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7S0FpQ3ZDO0lBL0JDLFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixPQUFPLEtBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixPQUFPLEtBQXdCLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixPQUFPLEtBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixPQUFPLEtBQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQjtRQUM1QixPQUFPLEtBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWdCO1FBQ2pDLE9BQU8sS0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdCO1FBQzlCLE9BQU8sS0FBMEIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWdCO1FBQzVCLE9BQU8sS0FBd0IsQ0FBQztJQUNsQyxDQUFDOytHQXJDVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixpSUNsQnhDLHVzRUFtRkE7OzRGRGpFYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQUt4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGb3JtVGV4dEZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tdGV4dC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtVGV4dEFyZWFGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXRleHQtYXJlYS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtTXVsdGlTZWxlY3RGaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLW11bHRpLXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRHJvcGRvd25GaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWRyb3AtZG93bi1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtU3dpdGNoRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zd2l0Y2gtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybU51bWJlckZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tbnVtYmVyLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1EYXRlRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1kYXRlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1DaGVja0JveEZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY2hlY2stZmllbGQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1keW5hbWljLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFREeW5hbWljRm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZmllbGQhOiBGb3JtRmllbGQ7XG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGlucHV0V2lkdGghOiBzdHJpbmc7XG5cbiAgRm9ybUlucHV0VHlwZUVudW0gPSBGb3JtSW5wdXRUeXBlRW51bTtcblxuICBhc1RleHRGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybVRleHRGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1UZXh0RmllbGQ7XG4gIH1cblxuICBhc051bWJlckZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtTnVtYmVyRmllbGQge1xuICAgIHJldHVybiBmaWVsZCBhcyBGb3JtTnVtYmVyRmllbGQ7XG4gIH1cblxuICBhc1RleHRBcmVhRmllbGQoZmllbGQ6IEZvcm1GaWVsZCk6IEZvcm1UZXh0QXJlYUZpZWxkIHtcbiAgICByZXR1cm4gZmllbGQgYXMgRm9ybVRleHRBcmVhRmllbGQ7XG4gIH1cblxuICBhc0RhdGVGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybURhdGVGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1EYXRlRmllbGQ7XG4gIH1cblxuICBhc1NlbGVjdEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtRHJvcGRvd25GaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1Ecm9wZG93bkZpZWxkO1xuICB9XG5cbiAgYXNNdWx0aVNlbGVjdEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtTXVsdGlTZWxlY3RGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1NdWx0aVNlbGVjdEZpZWxkO1xuICB9XG5cbiAgYXNDaGVja2JveEZpZWxkKGZpZWxkOiBGb3JtRmllbGQpOiBGb3JtQ2hlY2tCb3hGaWVsZCB7XG4gICAgcmV0dXJuIGZpZWxkIGFzIEZvcm1DaGVja0JveEZpZWxkO1xuICB9XG5cbiAgYXNTd2l0Y2hGaWVsZChmaWVsZDogRm9ybUZpZWxkKTogRm9ybVN3aXRjaEZpZWxkIHtcbiAgICByZXR1cm4gZmllbGQgYXMgRm9ybVN3aXRjaEZpZWxkO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZm9ybS1maWVsZFwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICB3aWR0aDpcbiAgICAgIGZpZWxkLnR5cGUgIT09IEZvcm1JbnB1dFR5cGVFbnVtLkNIRUNLQk9YICYmXG4gICAgICBmaWVsZC50eXBlICE9PSBGb3JtSW5wdXRUeXBlRW51bS5TV0lUQ0hcbiAgICAgICAgPyBmaWVsZC53aWR0aCB8fCBpbnB1dFdpZHRoXG4gICAgICAgIDogJ2F1dG8nXG4gIH1cIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC50eXBlXCI+XG4gICAgPCEtLSBURVhUIC0tPlxuICAgIDxwdC10ZXh0LWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uVEVYVFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc1RleHRGaWVsZChmaWVsZClcIlxuICAgID48L3B0LXRleHQtaW5wdXQ+XG5cbiAgICA8IS0tIEVNQUlMIChORVcpIC0tPlxuICAgIDxwdC10ZXh0LWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uRU1BSUxcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIFtmb3JtRmllbGRdPVwiYXNUZXh0RmllbGQoZmllbGQpXCJcbiAgICA+PC9wdC10ZXh0LWlucHV0PlxuXG4gICAgPCEtLSBOVU1CRVIgLS0+XG4gICAgPHB0LW51bWJlci1pbnB1dFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLk5VTUJFUlwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc051bWJlckZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtbnVtYmVyLWlucHV0PlxuXG4gICAgPCEtLSBBTU9VTlQgLS0+XG4gICAgPHB0LW51bWJlci1pbnB1dFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLkFNT1VOVFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc051bWJlckZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtbnVtYmVyLWlucHV0PlxuXG4gICAgPCEtLSBURVhUQVJFQSAtLT5cbiAgICA8cHQtdGV4dC1hcmVhLWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uVEVYVEFSRUFcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIFtmb3JtRmllbGRdPVwiYXNUZXh0QXJlYUZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtdGV4dC1hcmVhLWlucHV0PlxuXG4gICAgPCEtLSBEQVRFIC0tPlxuICAgIDxwdC1kYXRlLWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uREFURVwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc0RhdGVGaWVsZChmaWVsZClcIlxuICAgID48L3B0LWRhdGUtaW5wdXQ+XG5cbiAgICA8IS0tIE1VTFRJU0VMRUNUIC0tPlxuICAgIDxwdC1tdWx0aS1zZWxlY3RcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJGb3JtSW5wdXRUeXBlRW51bS5NVUxUSVNFTEVDVFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc011bHRpU2VsZWN0RmllbGQoZmllbGQpXCJcbiAgICA+PC9wdC1tdWx0aS1zZWxlY3Q+XG5cbiAgICA8IS0tIFNFTEVDVCAtLT5cbiAgICA8cHQtZHJvcGRvd25cbiAgICAgICpuZ1N3aXRjaENhc2U9XCJGb3JtSW5wdXRUeXBlRW51bS5TRUxFQ1RcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIFtmb3JtRmllbGRdPVwiYXNTZWxlY3RGaWVsZChmaWVsZClcIlxuICAgID48L3B0LWRyb3Bkb3duPlxuXG4gICAgPCEtLSBDSEVDS0JPWCAtLT5cbiAgICA8cHQtY2hlY2stYm94LWlucHV0XG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiRm9ybUlucHV0VHlwZUVudW0uQ0hFQ0tCT1hcIlxuICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIFtmb3JtRmllbGRdPVwiYXNDaGVja2JveEZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtY2hlY2stYm94LWlucHV0PlxuXG4gICAgPCEtLSBTV0lUQ0ggLS0+XG4gICAgPHB0LXN3aXRjaC1pbnB1dFxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZvcm1JbnB1dFR5cGVFbnVtLlNXSVRDSFwiXG4gICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgW2Zvcm1GaWVsZF09XCJhc1N3aXRjaEZpZWxkKGZpZWxkKVwiXG4gICAgPjwvcHQtc3dpdGNoLWlucHV0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Validators } from '@angular/forms';
2
+ import { Validators, } from '@angular/forms';
3
3
  import { FormInputTypeEnum } from '../enums/form-input-type.enum';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/forms";
@@ -18,9 +18,13 @@ export class PTFormBuilderComponent {
18
18
  this.errorMessages = {
19
19
  en: {
20
20
  required: 'is required',
21
+ email: 'is not a valid email address',
22
+ pattern: 'is invalid',
21
23
  },
22
24
  fr: {
23
25
  required: 'est requis',
26
+ email: "n'est pas une adresse e-mail valide",
27
+ pattern: 'est invalide',
24
28
  },
25
29
  };
26
30
  this.form = this.fb.group({});
@@ -30,18 +34,77 @@ export class PTFormBuilderComponent {
30
34
  }
31
35
  buildFormGroup(group) {
32
36
  group.fields?.forEach((field) => {
33
- const validators = field.required ? [Validators.required] : [];
37
+ const validators = this.buildValidators(field);
34
38
  this.form.addControl(field.name, this.fb.control(field.value, validators));
35
39
  });
36
40
  group.groups?.forEach((subGroup) => {
37
41
  this.buildFormGroup(subGroup);
38
42
  });
39
43
  }
44
+ /**
45
+ * Build validators depending on field configuration & type.
46
+ */
47
+ buildValidators(field) {
48
+ const validators = [];
49
+ const anyField = field;
50
+ // --- Required ---
51
+ if (field.required) {
52
+ validators.push(Validators.required);
53
+ }
54
+ // --- Length constraints (for text / password / textarea / email) ---
55
+ if (anyField.minLength) {
56
+ validators.push(Validators.minLength(anyField.minLength));
57
+ }
58
+ if (anyField.maxLength) {
59
+ validators.push(Validators.maxLength(anyField.maxLength));
60
+ }
61
+ // --- InputValidationEnum / custom pattern ---
62
+ if (anyField.inputValidation) {
63
+ validators.push(Validators.pattern(new RegExp(anyField.inputValidation)));
64
+ }
65
+ else if (anyField.pattern) {
66
+ validators.push(Validators.pattern(anyField.pattern));
67
+ }
68
+ // --- Type specific ---
69
+ switch (field.type) {
70
+ case FormInputTypeEnum.EMAIL:
71
+ // Angular email validator in addition to optional pattern
72
+ validators.push(Validators.email);
73
+ break;
74
+ case FormInputTypeEnum.PASSWORD:
75
+ // You can keep additional rules here if you want (already covered by minLength/maxLength/pattern above)
76
+ break;
77
+ default:
78
+ // other types: nothing special for now
79
+ break;
80
+ }
81
+ return validators;
82
+ }
40
83
  getErrorMessage(field) {
41
- if (this.form.get(field.name)?.hasError('required')) {
84
+ const control = this.form.get(field.name);
85
+ if (!control) {
86
+ return '';
87
+ }
88
+ if (control.hasError('required')) {
42
89
  return (field.errorText ||
43
90
  `${field.label} ${this.errorMessages[this.language].required}`);
44
91
  }
92
+ if (control.hasError('email')) {
93
+ return (field.errorText ||
94
+ `${field.label} ${this.errorMessages[this.language].email}`);
95
+ }
96
+ if (control.hasError('pattern')) {
97
+ return (field.errorText ||
98
+ `${field.label} ${this.errorMessages[this.language].pattern}`);
99
+ }
100
+ if (control.hasError('minlength')) {
101
+ const requiredLen = control.getError('minlength').requiredLength;
102
+ return `${field.label} must be at least ${requiredLen} characters`;
103
+ }
104
+ if (control.hasError('maxlength')) {
105
+ const requiredLen = control.getError('maxlength').requiredLength;
106
+ return `${field.label} must be at most ${requiredLen} characters`;
107
+ }
45
108
  return '';
46
109
  }
47
110
  onSubmit() {
@@ -74,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
74
137
  }], formSubmit: [{
75
138
  type: Output
76
139
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWZvcm0tYnVpbGRlci9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7QUFPbEUsTUFBTSxPQUFPLHNCQUFzQjtJQXFCakMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFwQjFCLGNBQVMsR0FBbUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN2RCxZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUczQixlQUFVLEdBQVcsTUFBTSxDQUFDO1FBQzVCLGFBQVEsR0FBZ0IsSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUdsRSxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUU5QixrQkFBYSxHQUFHO1lBQ3RCLEVBQUUsRUFBRTtnQkFDRixRQUFRLEVBQUUsYUFBYTthQUN4QjtZQUNELEVBQUUsRUFBRTtnQkFDRixRQUFRLEVBQUUsWUFBWTthQUN2QjtTQUNGLENBQUM7UUFHQSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFxQjtRQUNsQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQ2xCLEtBQUssQ0FBQyxJQUFJLEVBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDekMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFnQjtRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQ0wsS0FBSyxDQUFDLFNBQVM7Z0JBQ2YsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUMvRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDOytHQTlEVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixnUENabkMscXRDQTBDQTs7NEZEOUJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUI7Z0ZBS2xCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUJ1dHRvbiB9IGZyb20gJy4uL21vZGVscy9mb3JtLWJ1dHRvbi5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRUeXBlRW51bSB9IGZyb20gJy4uL2VudW1zL2Zvcm0taW5wdXQtdHlwZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtZm9ybS1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBURm9ybUJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtYWluR3JvdXA6IEZvcm1GaWVsZEdyb3VwID0geyBmaWVsZHM6IFtdLCBncm91cHM6IFtdIH07XG4gIEBJbnB1dCgpIGJ1dHRvbnM6IEZvcm1CdXR0b25bXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGVTdHlsZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgpIGlucHV0V2lkdGg6IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgbGFuZ3VhZ2U6ICdlbicgfCAnZnInID0gJ2VuJztcbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgW2tleTogc3RyaW5nXTogYW55IH0+KCk7XG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBGb3JtSW5wdXRUeXBlRW51bSA9IEZvcm1JbnB1dFR5cGVFbnVtO1xuXG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlcyA9IHtcbiAgICBlbjoge1xuICAgICAgcmVxdWlyZWQ6ICdpcyByZXF1aXJlZCcsXG4gICAgfSxcbiAgICBmcjoge1xuICAgICAgcmVxdWlyZWQ6ICdlc3QgcmVxdWlzJyxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJ1aWxkRm9ybUdyb3VwKHRoaXMubWFpbkdyb3VwKTtcbiAgfVxuXG4gIGJ1aWxkRm9ybUdyb3VwKGdyb3VwOiBGb3JtRmllbGRHcm91cCkge1xuICAgIGdyb3VwLmZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBmaWVsZC5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woXG4gICAgICAgIGZpZWxkLm5hbWUsXG4gICAgICAgIHRoaXMuZmIuY29udHJvbChmaWVsZC52YWx1ZSwgdmFsaWRhdG9ycylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBncm91cC5ncm91cHM/LmZvckVhY2goKHN1Ykdyb3VwKSA9PiB7XG4gICAgICB0aGlzLmJ1aWxkRm9ybUdyb3VwKHN1Ykdyb3VwKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogRm9ybUZpZWxkKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbdGhpcy5sYW5ndWFnZV0ucmVxdWlyZWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJ0aXRsZVwiIFtuZ1N0eWxlXT1cInRpdGxlU3R5bGVcIiBjbGFzcz1cImZvcm0tdGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgbWFpbkdyb3VwLmZpZWxkc1wiPlxuICAgIDxwdC1keW5hbWljLWZvcm0tZmllbGRcbiAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgIFtpbnB1dFdpZHRoXT1cImlucHV0V2lkdGhcIlxuICAgID48L3B0LWR5bmFtaWMtZm9ybS1maWVsZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbWFpbkdyb3VwLmdyb3Vwc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWdyb3VwXCIgW25nU3R5bGVdPVwieyB3aWR0aDogZ3JvdXAud2lkdGggfHwgJzEwMCUnIH1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGdyb3VwLmZpZWxkc1wiPlxuICAgICAgICA8cHQtZHluYW1pYy1mb3JtLWZpZWxkXG4gICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgICBjbGFzcz1cImZsZXgtaXRlbVwiXG4gICAgICAgID48L3B0LWR5bmFtaWMtZm9ybS1maWVsZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgcEJ1dHRvblxuICAgICAgW2xhYmVsXT1cImJ1dHRvbi50ZXh0XCJcbiAgICAgIFtpY29uXT1cImJ1dHRvbi5pY29uIHx8ICcnXCJcbiAgICAgIFtjbGFzc109XCJidXR0b24uY29sb3JcIlxuICAgICAgKGNsaWNrKT1cIlxuICAgICAgICBidXR0b24uaXNTdWJtaXRcbiAgICAgICAgICA/IG9uU3VibWl0KClcbiAgICAgICAgICA6IGJ1dHRvbi5pc0NsZWFyXG4gICAgICAgICAgPyBvbkNsZWFyKClcbiAgICAgICAgICA6IGJ1dHRvbi5hY3Rpb25cbiAgICAgICAgICA/IGJ1dHRvbi5hY3Rpb24oKVxuICAgICAgICAgIDogbnVsbFxuICAgICAgXCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWZvcm0tYnVpbGRlci9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBR0wsVUFBVSxHQUdYLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0JBQXNCO0lBMEJqQyxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXpCMUIsY0FBUyxHQUFtQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFDNUIsYUFBUSxHQUFnQixJQUFJLENBQUM7UUFDNUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBSWxFLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTlCLGtCQUFhLEdBQUc7WUFDdEIsRUFBRSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixLQUFLLEVBQUUsOEJBQThCO2dCQUNyQyxPQUFPLEVBQUUsWUFBWTthQUN0QjtZQUNELEVBQUUsRUFBRTtnQkFDRixRQUFRLEVBQUUsWUFBWTtnQkFDdEIsS0FBSyxFQUFFLHFDQUFx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QUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FuSlUsc0JBQXNCO21HQUF0QixzQkFBc0IsZ1BDbkJuQyxxdENBMENBOzs0RkR2QmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjtnRkFLbEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIEZvcm1CdWlsZGVyLFxuICBWYWxpZGF0b3JzLFxuICBWYWxpZGF0b3JGbixcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtRmllbGRHcm91cCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLm1vZGVsJztcbmltcG9ydCB7IEZvcm1CdXR0b24gfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1idXR0b24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi9lbnVtcy9mb3JtLWlucHV0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJbnB1dFZhbGlkYXRpb25FbnVtIH0gZnJvbSAnLi4vZW51bXMvaW5wdXQtdmFsaWRhdGlvbi5lbnVtJzsgLy8g4pyFIGlmIG5vdCBhbHJlYWR5IGltcG9ydGVkXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWZvcm0tYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVEZvcm1CdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWFpbkdyb3VwOiBGb3JtRmllbGRHcm91cCA9IHsgZmllbGRzOiBbXSwgZ3JvdXBzOiBbXSB9O1xuICBASW5wdXQoKSBidXR0b25zOiBGb3JtQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlU3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiAnZW4nIHwgJ2ZyJyA9ICdlbic7XG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IFtrZXk6IHN0cmluZ106IGFueSB9PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBGb3JtSW5wdXRUeXBlRW51bSA9IEZvcm1JbnB1dFR5cGVFbnVtO1xuXG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlcyA9IHtcbiAgICBlbjoge1xuICAgICAgcmVxdWlyZWQ6ICdpcyByZXF1aXJlZCcsXG4gICAgICBlbWFpbDogJ2lzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxuICAgICAgcGF0dGVybjogJ2lzIGludmFsaWQnLFxuICAgIH0sXG4gICAgZnI6IHtcbiAgICAgIHJlcXVpcmVkOiAnZXN0IHJlcXVpcycsXG4gICAgICBlbWFpbDogXCJuJ2VzdCBwYXMgdW5lIGFkcmVzc2UgZS1tYWlsIHZhbGlkZVwiLFxuICAgICAgcGF0dGVybjogJ2VzdCBpbnZhbGlkZScsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEZvcm1Hcm91cCh0aGlzLm1haW5Hcm91cCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybUdyb3VwKGdyb3VwOiBGb3JtRmllbGRHcm91cCk6IHZvaWQge1xuICAgIGdyb3VwLmZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmJ1aWxkVmFsaWRhdG9ycyhmaWVsZCk7XG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgdGhpcy5mYi5jb250cm9sKGZpZWxkLnZhbHVlLCB2YWxpZGF0b3JzKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGdyb3VwLmdyb3Vwcz8uZm9yRWFjaCgoc3ViR3JvdXApID0+IHtcbiAgICAgIHRoaXMuYnVpbGRGb3JtR3JvdXAoc3ViR3JvdXApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHZhbGlkYXRvcnMgZGVwZW5kaW5nIG9uIGZpZWxkIGNvbmZpZ3VyYXRpb24gJiB0eXBlLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBjb25zdCBhbnlGaWVsZCA9IGZpZWxkIGFzIGFueTtcblxuICAgIC8vIC0tLSBSZXF1aXJlZCAtLS1cbiAgICBpZiAoZmllbGQucmVxdWlyZWQpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG5cbiAgICAvLyAtLS0gTGVuZ3RoIGNvbnN0cmFpbnRzIChmb3IgdGV4dCAvIHBhc3N3b3JkIC8gdGV4dGFyZWEgLyBlbWFpbCkgLS0tXG4gICAgaWYgKGFueUZpZWxkLm1pbkxlbmd0aCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGFueUZpZWxkLm1pbkxlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoYW55RmllbGQubWF4TGVuZ3RoKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoYW55RmllbGQubWF4TGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIElucHV0VmFsaWRhdGlvbkVudW0gLyBjdXN0b20gcGF0dGVybiAtLS1cbiAgICBpZiAoYW55RmllbGQuaW5wdXRWYWxpZGF0aW9uKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICBuZXcgUmVnRXhwKGFueUZpZWxkLmlucHV0VmFsaWRhdGlvbiBhcyBJbnB1dFZhbGlkYXRpb25FbnVtKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoYW55RmllbGQucGF0dGVybikge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihhbnlGaWVsZC5wYXR0ZXJuKSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIFR5cGUgc3BlY2lmaWMgLS0tXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlIEZvcm1JbnB1dFR5cGVFbnVtLkVNQUlMOlxuICAgICAgICAvLyBBbmd1bGFyIGVtYWlsIHZhbGlkYXRvciBpbiBhZGRpdGlvbiB0byBvcHRpb25hbCBwYXR0ZXJuXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9ybUlucHV0VHlwZUVudW0uUEFTU1dPUkQ6XG4gICAgICAgIC8vIFlvdSBjYW4ga2VlcCBhZGRpdGlvbmFsIHJ1bGVzIGhlcmUgaWYgeW91IHdhbnQgKGFscmVhZHkgY292ZXJlZCBieSBtaW5MZW5ndGgvbWF4TGVuZ3RoL3BhdHRlcm4gYWJvdmUpXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBvdGhlciB0eXBlczogbm90aGluZyBzcGVjaWFsIGZvciBub3dcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoZmllbGQ6IEZvcm1GaWVsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbdGhpcy5sYW5ndWFnZV0ucmVxdWlyZWR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignZW1haWwnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZmllbGQuZXJyb3JUZXh0IHx8XG4gICAgICAgIGAke2ZpZWxkLmxhYmVsfSAke3RoaXMuZXJyb3JNZXNzYWdlc1t0aGlzLmxhbmd1YWdlXS5lbWFpbH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbdGhpcy5sYW5ndWFnZV0ucGF0dGVybn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgY29uc3QgcmVxdWlyZWRMZW4gPSBjb250cm9sLmdldEVycm9yKCdtaW5sZW5ndGgnKS5yZXF1aXJlZExlbmd0aDtcbiAgICAgIHJldHVybiBgJHtmaWVsZC5sYWJlbH0gbXVzdCBiZSBhdCBsZWFzdCAke3JlcXVpcmVkTGVufSBjaGFyYWN0ZXJzYDtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgIGNvbnN0IHJlcXVpcmVkTGVuID0gY29udHJvbC5nZXRFcnJvcignbWF4bGVuZ3RoJykucmVxdWlyZWRMZW5ndGg7XG4gICAgICByZXR1cm4gYCR7ZmllbGQubGFiZWx9IG11c3QgYmUgYXQgbW9zdCAke3JlcXVpcmVkTGVufSBjaGFyYWN0ZXJzYDtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25DbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInRpdGxlXCIgW25nU3R5bGVdPVwidGl0bGVTdHlsZVwiIGNsYXNzPVwiZm9ybS10aXRsZVwiPnt7IHRpdGxlIH19PC9kaXY+XG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBtYWluR3JvdXAuZmllbGRzXCI+XG4gICAgPHB0LWR5bmFtaWMtZm9ybS1maWVsZFxuICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgPjwvcHQtZHluYW1pYy1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBtYWluR3JvdXAuZ3JvdXBzXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtZ3JvdXBcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiBncm91cC53aWR0aCB8fCAnMTAwJScgfVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ3JvdXAuZmllbGRzXCI+XG4gICAgICAgIDxwdC1keW5hbWljLWZvcm0tZmllbGRcbiAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgIGNsYXNzPVwiZmxleC1pdGVtXCJcbiAgICAgICAgPjwvcHQtZHluYW1pYy1mb3JtLWZpZWxkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnNcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBwQnV0dG9uXG4gICAgICBbbGFiZWxdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgW2ljb25dPVwiYnV0dG9uLmljb24gfHwgJydcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgIGJ1dHRvbi5pc1N1Ym1pdFxuICAgICAgICAgID8gb25TdWJtaXQoKVxuICAgICAgICAgIDogYnV0dG9uLmlzQ2xlYXJcbiAgICAgICAgICA/IG9uQ2xlYXIoKVxuICAgICAgICAgIDogYnV0dG9uLmFjdGlvblxuICAgICAgICAgID8gYnV0dG9uLmFjdGlvbigpXG4gICAgICAgICAgOiBudWxsXG4gICAgICBcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
@@ -39,6 +39,7 @@ export * from './lib/pt-login-page';
39
39
  // button
40
40
  export * from './lib/pt-button';
41
41
  // dialog
42
+ export * from './lib/pt-confirm-dialog';
42
43
  export * from './lib/pt-dialog';
43
44
  // Toasts
44
45
  export * from './lib/pt-toast-notifier';
@@ -47,4 +48,4 @@ export * from './lib/models';
47
48
  export * from './lib/enums';
48
49
  export * from './lib/types';
49
50
  export * from './lib/pt-group';
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFlBQVk7QUFDWixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxRQUFRO0FBQ1IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsUUFBUTtBQUNSLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWM7QUFDZCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLFVBQVU7QUFDVixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbmctcHJpbWUtdG9vbHMubW9kdWxlJztcblxuLy8gQWR2YW5jZWQgdGFibGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWFkdmFuY2VkLXByaW1lLXRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL211bHRpLXNlYXJjaC1jcml0ZXJpYSc7XG5cbi8vIElucHV0c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2hlY2stYm94LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWRhdGUtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9ybS1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW51bWJlci1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zd2l0Y2gtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtdGV4dC1hcmVhLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXRleHQtaW5wdXQnO1xuXG4vLyBEYXNoYm9hcmRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1ldHJpYy1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZC1ncm91cCc7XG5cbi8vIENoYXJ0XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydC1jb21wYXJpc29uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWxpbmUtY2hhcnQnO1xuXG4vLyBDYXJkc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2FyZCc7XG5cbi8vIE1lbnVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbWVudS1mYW5jeSc7XG5cbi8vIE5hdmJhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbmF2LWJhci1tZW51JztcblxuLy8gTmF2YmFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zaWRlLWJhci1tZW51JztcblxuLy8gUGFnZSBza2VsZXRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtcGFnZS1za2VsZXRvbic7XG5cbi8vIGZvb3RlclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9vdGVyJztcblxuLy8gYnJlYWQgY3J1bWJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWJyZWFkLWNydW1iJztcblxuLy8gbG9naW4gcGFnZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbG9naW4tcGFnZSc7XG5cbi8vIGJ1dHRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtYnV0dG9uJztcblxuLy8gZGlhbG9nXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1kaWFsb2cnO1xuXG4vLyBUb2FzdHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXRvYXN0LW5vdGlmaWVyJztcblxuLy8gR2VuZXJpY1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWdyb3VwJztcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFlBQVk7QUFDWixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxRQUFRO0FBQ1IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsUUFBUTtBQUNSLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWM7QUFDZCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsU0FBUztBQUNULGNBQWMseUJBQXlCLENBQUM7QUFFeEMsVUFBVTtBQUNWLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9uZy1wcmltZS10b29scy5tb2R1bGUnO1xuXG4vLyBBZHZhbmNlZCB0YWJsZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtYWR2YW5jZWQtcHJpbWUtdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXVsdGktc2VhcmNoLWNyaXRlcmlhJztcblxuLy8gSW5wdXRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGVjay1ib3gtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZGF0ZS1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1kcm9wZG93bic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1mb3JtLWJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbnVtYmVyLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXN3aXRjaC1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC10ZXh0LWFyZWEtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtdGV4dC1pbnB1dCc7XG5cbi8vIERhc2hib2FyZFxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbWV0cmljLXBhbmVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1ldHJpYy1jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1ldHJpYy1jYXJkLWdyb3VwJztcblxuLy8gQ2hhcnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWNoYXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWNoYXJ0LWNvbXBhcmlzb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbGluZS1jaGFydCc7XG5cbi8vIENhcmRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jYXJkJztcblxuLy8gTWVudVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbWVudSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZW51LWZhbmN5JztcblxuLy8gTmF2YmFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1uYXYtYmFyLW1lbnUnO1xuXG4vLyBOYXZiYXJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXNpZGUtYmFyLW1lbnUnO1xuXG4vLyBQYWdlIHNrZWxldG9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1wYWdlLXNrZWxldG9uJztcblxuLy8gZm9vdGVyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1mb290ZXInO1xuXG4vLyBicmVhZCBjcnVtYlxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtYnJlYWQtY3J1bWInO1xuXG4vLyBsb2dpbiBwYWdlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1sb2dpbi1wYWdlJztcblxuLy8gYnV0dG9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1idXR0b24nO1xuXG4vLyBkaWFsb2dcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWNvbmZpcm0tZGlhbG9nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWRpYWxvZyc7XG5cbi8vIFRvYXN0c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtdG9hc3Qtbm90aWZpZXInO1xuXG4vLyBHZW5lcmljXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZ3JvdXAnO1xuIl19