@mediusinc/mng-commons 6.0.0-rc.4 → 6.0.0-rc.6
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/core/components/notification/notification-wrapper.component.d.ts +4 -4
- package/core/error/error.model.d.ts +4 -4
- package/core/helpers/notification.d.ts +2 -2
- package/core/provide.d.ts +3 -3
- package/core/styles/style-constants.d.ts +9 -8
- package/core/styles/style.model.d.ts +2 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +91 -104
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +8 -9
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +149 -49
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DTSBP9WQ.mjs +31 -0
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DTSBP9WQ.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-JZpyiDIL.mjs +2118 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-JZpyiDIL.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1 -2154
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +97 -49
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +340 -309
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/form/api/index.d.ts +1 -0
- package/form/api/models/empty-value.model.d.ts +7 -0
- package/form/components/autocomplete/autocomplete.component.d.ts +1 -2
- package/form/components/date-range/date-range.component.d.ts +4 -3
- package/form/components/dropdown/dropdown.component.d.ts +3 -2
- package/form/components/number-range/number-range.component.d.ts +3 -2
- package/form/directives/input-empty-value.directive.d.ts +40 -0
- package/form/directives/input-trim.directive.d.ts +3 -5
- package/form/index.d.ts +1 -0
- package/i18n/en.json +57 -8
- package/i18n/sl.json +1 -3
- package/package.json +16 -42
- package/provide.d.ts +2 -2
- package/table/components/column-toggle/column-toggle.component.d.ts +12 -0
- package/table/components/filter/filter-form/filter-form.component.d.ts +2 -2
- package/table/components/table/table.component.d.ts +0 -1
- package/table/helpers/filters.d.ts +3 -2
- package/table/helpers/notification.d.ts +2 -2
- package/table/services/table-metadata.service.d.ts +3 -3
- package/tableview/action/components/action/action.component.d.ts +1 -0
- package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
- package/tableview/action/components/table/action-table.component.d.ts +2 -1
- package/tableview/action/helpers/notification.d.ts +3 -3
- package/tableview/action/models/execution/action-context.model.d.ts +2 -2
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +5 -0
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +14 -10
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +10 -0
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +36 -9
- package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +1 -1
- package/tableview/api/editor/models/field-action-context.model.d.ts +1 -1
- package/tableview/api/editor/models/field.model.d.ts +1 -2
- package/tableview/api/editor/models/form-editor.interface.d.ts +2 -2
- package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
- package/tableview/api/editor/models/formly-field.model.d.ts +2 -2
- package/tableview/editor/components/editor/form-editor.component.d.ts +2 -2
- package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +1 -1
- package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +2 -1
- package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +4 -6
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +0 -2
- package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +2 -2
- package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +8 -15
- package/tableview/editor/components/formly/fields/formly-group-type.abstract.component.d.ts +7 -0
- package/tableview/editor/components/formly/fields/formly-type.abstract.component.d.ts +20 -0
- package/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +11 -4
- package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +2 -1
- package/tableview/editor/helpers/formly-config.d.ts +1 -1
- package/tableview/editor/helpers/notification.d.ts +3 -3
- package/tableview/editor/models/formly-config.model.d.ts +10 -1
- package/tableview/editor/models/formly.model.d.ts +23 -0
- package/tableview/editor/services/form-editor.service.d.ts +2 -2
- package/tableview/tableview/router/tableview-route-builder.d.ts +10 -3
- package/tableview/tableview/services/tableview-feature-config.token.d.ts +1 -1
- package/version-info.json +3 -3
- package/esm2022/core/action/action-data.model.mjs +0 -2
- package/esm2022/core/action/action-parameters.model.mjs +0 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +0 -50
- package/esm2022/core/data-list/data-list-params-helpers.mjs +0 -465
- package/esm2022/core/data-list/data-list.model.mjs +0 -2
- package/esm2022/core/data-list/filter-match.model.mjs +0 -105
- package/esm2022/core/data-list/filter-metadata.model.mjs +0 -2
- package/esm2022/core/data-providers/base.data-provider.mjs +0 -16
- package/esm2022/core/data-providers/lookup.data-provider.mjs +0 -2
- package/esm2022/core/descriptors/action.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/column.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/editor.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/enum.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/filter.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/lookup.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/model.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/table.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/tableview.descriptor.mjs +0 -2
- package/esm2022/core/directives/component.directive.mjs +0 -75
- package/esm2022/core/directives/rerender.directive.mjs +0 -25
- package/esm2022/core/directives/template.directive.mjs +0 -29
- package/esm2022/core/enum/enum-helpers.mjs +0 -90
- package/esm2022/core/enum/enum.model.mjs +0 -2
- package/esm2022/core/error/error-handler.mjs +0 -20
- package/esm2022/core/error/error-helpers.mjs +0 -273
- package/esm2022/core/error/error.model.mjs +0 -33
- package/esm2022/core/helpers/coercion.mjs +0 -55
- package/esm2022/core/helpers/date.mjs +0 -119
- package/esm2022/core/helpers/notification.mjs +0 -21
- package/esm2022/core/helpers/number.mjs +0 -19
- package/esm2022/core/helpers/object.mjs +0 -152
- package/esm2022/core/helpers/route.mjs +0 -58
- package/esm2022/core/helpers/string.mjs +0 -57
- package/esm2022/core/helpers/templates.mjs +0 -4
- package/esm2022/core/helpers/type-helpers.mjs +0 -2
- package/esm2022/core/i18n/i18n-common.mjs +0 -24
- package/esm2022/core/i18n/i18n-error.mjs +0 -29
- package/esm2022/core/i18n/i18n-type.mjs +0 -46
- package/esm2022/core/index.mjs +0 -107
- package/esm2022/core/log/log-publisher-console.service.mjs +0 -40
- package/esm2022/core/log/log.model.mjs +0 -10
- package/esm2022/core/log/logger.service.mjs +0 -131
- package/esm2022/core/mediusinc-mng-commons-core.mjs +0 -5
- package/esm2022/core/models/class-attribute.model.mjs +0 -2
- package/esm2022/core/models/class-service.model.mjs +0 -2
- package/esm2022/core/models/getter.model.mjs +0 -2
- package/esm2022/core/models/i18n.model.mjs +0 -2
- package/esm2022/core/models/menu.model.mjs +0 -2
- package/esm2022/core/models/user.model.mjs +0 -2
- package/esm2022/core/models/version.model.mjs +0 -2
- package/esm2022/core/pipes/boolean.pipe.mjs +0 -34
- package/esm2022/core/pipes/class-map.pipe.mjs +0 -23
- package/esm2022/core/pipes/enum.pipe.mjs +0 -38
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +0 -36
- package/esm2022/core/pipes/enumerate.pipe.mjs +0 -49
- package/esm2022/core/pipes/getter.pipe.mjs +0 -21
- package/esm2022/core/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/core/pipes/json-path.pipe.mjs +0 -25
- package/esm2022/core/pipes/parametrize.pipe.mjs +0 -86
- package/esm2022/core/pipes/template.pipe.mjs +0 -25
- package/esm2022/core/provide.mjs +0 -79
- package/esm2022/core/reactivity/effect.mjs +0 -22
- package/esm2022/core/reflect/type-enum-decorator.mjs +0 -12
- package/esm2022/core/reflect/type-enum-metadata.mjs +0 -62
- package/esm2022/core/registry/registry.model.mjs +0 -2
- package/esm2022/core/registry/type-registry.mjs +0 -106
- package/esm2022/core/router/route-builder.mjs +0 -431
- package/esm2022/core/router/router.model.mjs +0 -2
- package/esm2022/core/router/routes-builder.mjs +0 -52
- package/esm2022/core/rxjs/map-data-list-result-operator.mjs +0 -22
- package/esm2022/core/security/permission-helpers.mjs +0 -14
- package/esm2022/core/security/permission.guard.mjs +0 -15
- package/esm2022/core/security/permission.service.mjs +0 -101
- package/esm2022/core/security/permissions.model.mjs +0 -93
- package/esm2022/core/services/commons-configuration.service.mjs +0 -189
- package/esm2022/core/services/commons-init.service.mjs +0 -111
- package/esm2022/core/services/commons-router.service.mjs +0 -181
- package/esm2022/core/services/commons-storage.service.mjs +0 -31
- package/esm2022/core/services/commons.service.mjs +0 -324
- package/esm2022/core/services/providers/commons-init.provider.mjs +0 -4
- package/esm2022/core/services/tokens/browser-storage.token.mjs +0 -3
- package/esm2022/core/services/tokens/commons-init.token.mjs +0 -3
- package/esm2022/core/services/tokens/log-publisher.token.mjs +0 -3
- package/esm2022/core/services/tokens/module-config.token.mjs +0 -3
- package/esm2022/core/styles/style-constants.mjs +0 -11
- package/esm2022/core/styles/style.model.mjs +0 -20
- package/esm2022/filter/descriptors/filter-generic.descriptor.mjs +0 -31
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +0 -168
- package/esm2022/filter/descriptors/filter.descriptor.mjs +0 -421
- package/esm2022/filter/index.mjs +0 -8
- package/esm2022/filter/mediusinc-mng-commons-filter.mjs +0 -5
- package/esm2022/filter/models/filter-generic-property.model.mjs +0 -2
- package/esm2022/filter/models/filter.model.mjs +0 -20
- package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +0 -15
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +0 -15
- package/esm2022/form/api/descriptors/action-button.descriptor.mjs +0 -56
- package/esm2022/form/api/descriptors/button-style.builder.mjs +0 -153
- package/esm2022/form/api/index.mjs +0 -10
- package/esm2022/form/api/mediusinc-mng-commons-form-api.mjs +0 -5
- package/esm2022/form/api/models/button.model.mjs +0 -2
- package/esm2022/form/api/models/trim.model.mjs +0 -2
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +0 -436
- package/esm2022/form/components/date-range/date-range.component.mjs +0 -147
- package/esm2022/form/components/dropdown/dropdown.component.mjs +0 -372
- package/esm2022/form/components/number-range/number-range.component.mjs +0 -123
- package/esm2022/form/directives/input-trim.directive.mjs +0 -50
- package/esm2022/form/index.mjs +0 -8
- package/esm2022/form/mediusinc-mng-commons-form.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/mediusinc-mng-commons.mjs +0 -5
- package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +0 -5
- package/esm2022/model/class/descriptors/model-class.descriptor.mjs +0 -28
- package/esm2022/model/class/descriptors/type-class.descriptor.mjs +0 -6
- package/esm2022/model/class/helpers/model.mjs +0 -53
- package/esm2022/model/class/index.mjs +0 -8
- package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +0 -5
- package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +0 -13
- package/esm2022/model/descriptors/enum.descriptor.mjs +0 -28
- package/esm2022/model/descriptors/model.descriptor.mjs +0 -53
- package/esm2022/model/descriptors/type.descriptor.mjs +0 -7
- package/esm2022/model/helpers/i18n.mjs +0 -47
- package/esm2022/model/index.mjs +0 -9
- package/esm2022/model/mediusinc-mng-commons-model.mjs +0 -5
- package/esm2022/provide.mjs +0 -6
- package/esm2022/table/api/class/class-table-attribute-converter.mjs +0 -80
- package/esm2022/table/api/class/class-table-attribute.model.mjs +0 -2
- package/esm2022/table/api/class/class-table-data-provider.factory.mjs +0 -5
- package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +0 -99
- package/esm2022/table/api/class/class-table-descriptor.factory.mjs +0 -21
- package/esm2022/table/api/class/index.mjs +0 -6
- package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +0 -5
- package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +0 -15
- package/esm2022/table/api/data-providers/table.data-provider.mjs +0 -33
- package/esm2022/table/api/descriptors/column.descriptor.mjs +0 -475
- package/esm2022/table/api/descriptors/sort.descriptor.mjs +0 -67
- package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +0 -22
- package/esm2022/table/api/descriptors/table.descriptor.mjs +0 -1116
- package/esm2022/table/api/helpers/column-converter.mjs +0 -25
- package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +0 -7
- package/esm2022/table/api/index.mjs +0 -19
- package/esm2022/table/api/mediusinc-mng-commons-table-api.mjs +0 -5
- package/esm2022/table/api/models/column-value.model.mjs +0 -2
- package/esm2022/table/api/models/column.model.mjs +0 -21
- package/esm2022/table/api/models/row-expandable-component.model.mjs +0 -2
- package/esm2022/table/api/models/table-columns.model.mjs +0 -2
- package/esm2022/table/api/models/table-event.model.mjs +0 -2
- package/esm2022/table/api/models/table.model.mjs +0 -21
- package/esm2022/table/components/column-filter/column-filter.component.mjs +0 -389
- package/esm2022/table/components/column-value/column-value.component.mjs +0 -78
- package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +0 -55
- package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +0 -226
- package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +0 -219
- package/esm2022/table/components/table/table.component.mjs +0 -319
- package/esm2022/table/helpers/filters.mjs +0 -312
- package/esm2022/table/helpers/notification.mjs +0 -21
- package/esm2022/table/helpers/table-layout-prefs.mjs +0 -10
- package/esm2022/table/helpers/table.mjs +0 -24
- package/esm2022/table/index.mjs +0 -24
- package/esm2022/table/mediusinc-mng-commons-table.mjs +0 -5
- package/esm2022/table/models/column-preferences.model.mjs +0 -2
- package/esm2022/table/models/filter.model.mjs +0 -2
- package/esm2022/table/pipes/filter-value.pipe.mjs +0 -77
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +0 -27
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +0 -25
- package/esm2022/table/provide.mjs +0 -19
- package/esm2022/table/services/table-data.service.mjs +0 -194
- package/esm2022/table/services/table-feature-config.token.mjs +0 -3
- package/esm2022/table/services/table-metadata.service.mjs +0 -136
- package/esm2022/table/services/table-preferences.service.mjs +0 -142
- package/esm2022/tableview/action/components/action/action.component.mjs +0 -277
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +0 -86
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +0 -428
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +0 -35
- package/esm2022/tableview/action/components/route/action-route.component.mjs +0 -146
- package/esm2022/tableview/action/components/table/action-table.component.mjs +0 -102
- package/esm2022/tableview/action/guards/unsaved-changes.guard.mjs +0 -4
- package/esm2022/tableview/action/helpers/action-execution.mjs +0 -25
- package/esm2022/tableview/action/helpers/i18n.mjs +0 -102
- package/esm2022/tableview/action/helpers/notification.mjs +0 -78
- package/esm2022/tableview/action/helpers/styles.mjs +0 -32
- package/esm2022/tableview/action/models/action-editor-dialog-data.model.mjs +0 -2
- package/esm2022/tableview/action/models/can-component-deactivate.model.mjs +0 -2
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +0 -64
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +0 -169
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +0 -20
- package/esm2022/tableview/action/services/action-executor.service.mjs +0 -777
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +0 -19
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +0 -41
- package/esm2022/tableview/action/services/navigation.service.mjs +0 -53
- package/esm2022/tableview/action/services/providers/provide-action-executor.mjs +0 -9
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +0 -17
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +0 -18
- package/esm2022/tableview/action/services/tokens/action-editor.token.mjs +0 -3
- package/esm2022/tableview/action/services/view-container.service.mjs +0 -40
- package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +0 -28
- package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +0 -30
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +0 -223
- package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +0 -32
- package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +0 -74
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +0 -302
- package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +0 -37
- package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +0 -40
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +0 -100
- package/esm2022/tableview/api/action/models/action-component.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-confirmation.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-editor.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-error.model.mjs +0 -14
- package/esm2022/tableview/api/action/models/action.type.mjs +0 -26
- package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-execution-error.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-instance-state.model.mjs +0 -32
- package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +0 -11
- package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +0 -28
- package/esm2022/tableview/api/action/services/tokens/data-language-dropdown.token.mjs +0 -3
- package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +0 -85
- package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +0 -5
- package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +0 -95
- package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/class/index.mjs +0 -13
- package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +0 -5
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +0 -35
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +0 -5
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +0 -111
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +0 -26
- package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +0 -15
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +0 -114
- package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +0 -15
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +0 -437
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +0 -51
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +0 -314
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +0 -103
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +0 -211
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +0 -142
- package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +0 -25
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +0 -402
- package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +0 -51
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/editor.model.mjs +0 -9
- package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field-validation.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field.model.mjs +0 -57
- package/esm2022/tableview/api/editor/models/form-editor.event.mjs +0 -28
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +0 -2
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +0 -70
- package/esm2022/tableview/api/editor/models/formly-field.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/formly-options.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/radio.model.mjs +0 -2
- package/esm2022/tableview/api/index.mjs +0 -76
- package/esm2022/tableview/api/mediusinc-mng-commons-tableview-api.mjs +0 -5
- package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +0 -18
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +0 -84
- package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +0 -34
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +0 -377
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +0 -34
- package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +0 -26
- package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +0 -7
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +0 -324
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +0 -319
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +0 -2
- package/esm2022/tableview/editor/components/editor/auto-save-status/auto-save-status.component.mjs +0 -82
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +0 -480
- package/esm2022/tableview/editor/components/formly/constants.mjs +0 -2
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +0 -66
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -47
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +0 -39
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +0 -165
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -42
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -34
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -211
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +0 -23
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +0 -195
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -239
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -205
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -28
- package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +0 -46
- package/esm2022/tableview/editor/components/formly/pipes/formly-field-label.pipe.mjs +0 -19
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +0 -33
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -59
- package/esm2022/tableview/editor/helpers/editor-autosave.mjs +0 -49
- package/esm2022/tableview/editor/helpers/editor-field.mjs +0 -39
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +0 -388
- package/esm2022/tableview/editor/helpers/editor-validators.mjs +0 -25
- package/esm2022/tableview/editor/helpers/field-create.mjs +0 -21
- package/esm2022/tableview/editor/helpers/formly-config.mjs +0 -260
- package/esm2022/tableview/editor/helpers/notification.mjs +0 -11
- package/esm2022/tableview/editor/models/editor-auto-save-preview.model.mjs +0 -2
- package/esm2022/tableview/editor/models/formly-config.model.mjs +0 -2
- package/esm2022/tableview/editor/services/form-editor.service.mjs +0 -96
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +0 -31
- package/esm2022/tableview/index.mjs +0 -67
- package/esm2022/tableview/mediusinc-mng-commons-tableview.mjs +0 -5
- package/esm2022/tableview/provide.mjs +0 -105
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +0 -15
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +0 -59
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +0 -175
- package/esm2022/tableview/tableview/services/tableview-feature-config.token.mjs +0 -3
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { TableviewEditorTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
2
|
-
/**
|
|
3
|
-
* Generates a unique key for autosave data of an editor.
|
|
4
|
-
*
|
|
5
|
-
* @param {EditorDescriptorInst<Item>} descriptor - The editor descriptor instance.
|
|
6
|
-
* @param {Item | undefined} item - The item associated with the editor.
|
|
7
|
-
* @param {string} url - The URL of the editor.
|
|
8
|
-
* @param {Object} [opts] - An optional object containing additional options.
|
|
9
|
-
* @param {string} [opts.editorId] - The custom editor ID.
|
|
10
|
-
* @param {IdType} [opts.itemId] - The custom item ID.
|
|
11
|
-
* @return {string} - The generated autosave editor key.
|
|
12
|
-
*/
|
|
13
|
-
export function generateAutosaveEditorKey(descriptor, item, url, opts) {
|
|
14
|
-
const autoSaveIdentifier = descriptor.autoSaveIdentifier ?? url.split('?')[0].split('#')[0];
|
|
15
|
-
const editorId = generateEditorId(descriptor, opts?.editorId);
|
|
16
|
-
const itemId = generateItemId(descriptor, item, opts?.itemId);
|
|
17
|
-
return `autoSave~~${editorId}${itemId}~~${autoSaveIdentifier}`;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Generates an ID for the editor based on the provided parameters.
|
|
21
|
-
*
|
|
22
|
-
* @template Item - The type of the item.
|
|
23
|
-
* @param {EditorDescriptorInst<Item>} descriptor - The editor descriptor instance.
|
|
24
|
-
* @param {string} [editorId] - The optional editor ID.
|
|
25
|
-
* @returns {string} - The generated editor ID.
|
|
26
|
-
*/
|
|
27
|
-
function generateEditorId({ model, tableviewEditorType }, editorId) {
|
|
28
|
-
if (editorId !== undefined) {
|
|
29
|
-
return editorId;
|
|
30
|
-
}
|
|
31
|
-
const editorTypeString = TableviewEditorTypeEnum[tableviewEditorType ?? TableviewEditorTypeEnum.None];
|
|
32
|
-
return `${model.i18nBaseKey}::${editorTypeString}`;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Generates an item ID.
|
|
36
|
-
*
|
|
37
|
-
* @param {EditorDescriptorInst<Item>} model - The model descriptor.
|
|
38
|
-
* @param {Item} [item] - The item to generate an ID for.
|
|
39
|
-
* @param {IdType} [itemId] - The existing item ID (if any).
|
|
40
|
-
* @returns {string} - The generated item ID, prefixed with "::" or an empty string if no item ID exists.
|
|
41
|
-
*/
|
|
42
|
-
function generateItemId({ model }, item, itemId) {
|
|
43
|
-
if (itemId === undefined && item) {
|
|
44
|
-
const idProperty = model?.idProperty;
|
|
45
|
-
itemId = item?.[idProperty]?.toString();
|
|
46
|
-
}
|
|
47
|
-
return itemId ? `::${itemId}` : '';
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWF1dG9zYXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvaGVscGVycy9lZGl0b3ItYXV0b3NhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF1Qix1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRW5HOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQU8sVUFBc0MsRUFBRSxJQUFzQixFQUFFLEdBQVcsRUFBRSxJQUEyQztJQUNwSyxNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxPQUFPLGFBQWEsUUFBUSxHQUFHLE1BQU0sS0FBSyxrQkFBa0IsRUFBRSxDQUFDO0FBQ25FLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBTyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBNkIsRUFBRSxRQUFpQjtJQUN2RyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQyxtQkFBbUIsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RyxPQUFPLEdBQUcsS0FBSyxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxjQUFjLENBQU8sRUFBQyxLQUFLLEVBQTZCLEVBQUUsSUFBVyxFQUFFLE1BQWU7SUFDM0YsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxVQUFVLENBQUM7UUFDckMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQStCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJZFR5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0VkaXRvckRlc2NyaXB0b3JJbnN0LCBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSB1bmlxdWUga2V5IGZvciBhdXRvc2F2ZSBkYXRhIG9mIGFuIGVkaXRvci5cbiAqXG4gKiBAcGFyYW0ge0VkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+fSBkZXNjcmlwdG9yIC0gVGhlIGVkaXRvciBkZXNjcmlwdG9yIGluc3RhbmNlLlxuICogQHBhcmFtIHtJdGVtIHwgdW5kZWZpbmVkfSBpdGVtIC0gVGhlIGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBlZGl0b3IuXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCBvZiB0aGUgZWRpdG9yLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIEFuIG9wdGlvbmFsIG9iamVjdCBjb250YWluaW5nIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5lZGl0b3JJZF0gLSBUaGUgY3VzdG9tIGVkaXRvciBJRC5cbiAqIEBwYXJhbSB7SWRUeXBlfSBbb3B0cy5pdGVtSWRdIC0gVGhlIGN1c3RvbSBpdGVtIElELlxuICogQHJldHVybiB7c3RyaW5nfSAtIFRoZSBnZW5lcmF0ZWQgYXV0b3NhdmUgZWRpdG9yIGtleS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXV0b3NhdmVFZGl0b3JLZXk8SXRlbT4oZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbT4sIGl0ZW06IEl0ZW0gfCB1bmRlZmluZWQsIHVybDogc3RyaW5nLCBvcHRzPzoge2VkaXRvcklkPzogc3RyaW5nOyBpdGVtSWQ/OiBJZFR5cGV9KTogc3RyaW5nIHtcbiAgICBjb25zdCBhdXRvU2F2ZUlkZW50aWZpZXIgPSBkZXNjcmlwdG9yLmF1dG9TYXZlSWRlbnRpZmllciA/PyB1cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xuICAgIGNvbnN0IGVkaXRvcklkID0gZ2VuZXJhdGVFZGl0b3JJZChkZXNjcmlwdG9yLCBvcHRzPy5lZGl0b3JJZCk7XG4gICAgY29uc3QgaXRlbUlkID0gZ2VuZXJhdGVJdGVtSWQoZGVzY3JpcHRvciwgaXRlbSwgb3B0cz8uaXRlbUlkKTtcbiAgICByZXR1cm4gYGF1dG9TYXZlfn4ke2VkaXRvcklkfSR7aXRlbUlkfX5+JHthdXRvU2F2ZUlkZW50aWZpZXJ9YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW4gSUQgZm9yIHRoZSBlZGl0b3IgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gKlxuICogQHRlbXBsYXRlIEl0ZW0gLSBUaGUgdHlwZSBvZiB0aGUgaXRlbS5cbiAqIEBwYXJhbSB7RWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbT59IGRlc2NyaXB0b3IgLSBUaGUgZWRpdG9yIGRlc2NyaXB0b3IgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2VkaXRvcklkXSAtIFRoZSBvcHRpb25hbCBlZGl0b3IgSUQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBnZW5lcmF0ZWQgZWRpdG9yIElELlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZUVkaXRvcklkPEl0ZW0+KHttb2RlbCwgdGFibGV2aWV3RWRpdG9yVHlwZX06IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+LCBlZGl0b3JJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGVkaXRvcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGVkaXRvcklkO1xuICAgIH1cbiAgICBjb25zdCBlZGl0b3JUeXBlU3RyaW5nID0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW1bdGFibGV2aWV3RWRpdG9yVHlwZSA/PyBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5Ob25lXTtcbiAgICByZXR1cm4gYCR7bW9kZWwuaTE4bkJhc2VLZXl9Ojoke2VkaXRvclR5cGVTdHJpbmd9YDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW4gaXRlbSBJRC5cbiAqXG4gKiBAcGFyYW0ge0VkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+fSBtb2RlbCAtIFRoZSBtb2RlbCBkZXNjcmlwdG9yLlxuICogQHBhcmFtIHtJdGVtfSBbaXRlbV0gLSBUaGUgaXRlbSB0byBnZW5lcmF0ZSBhbiBJRCBmb3IuXG4gKiBAcGFyYW0ge0lkVHlwZX0gW2l0ZW1JZF0gLSBUaGUgZXhpc3RpbmcgaXRlbSBJRCAoaWYgYW55KS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGdlbmVyYXRlZCBpdGVtIElELCBwcmVmaXhlZCB3aXRoIFwiOjpcIiBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm8gaXRlbSBJRCBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlSXRlbUlkPEl0ZW0+KHttb2RlbH06IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+LCBpdGVtPzogSXRlbSwgaXRlbUlkPzogSWRUeXBlKTogc3RyaW5nIHtcbiAgICBpZiAoaXRlbUlkID09PSB1bmRlZmluZWQgJiYgaXRlbSkge1xuICAgICAgICBjb25zdCBpZFByb3BlcnR5ID0gbW9kZWw/LmlkUHJvcGVydHk7XG4gICAgICAgIGl0ZW1JZCA9IGl0ZW0/LltpZFByb3BlcnR5IGFzIGtleW9mIHR5cGVvZiBpdGVtXT8udG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1JZCA/IGA6OiR7aXRlbUlkfWAgOiAnJztcbn1cbiJdfQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { CommonsInternalError, getI18nTypeGroupKey, getI18nTypePropertyKey, getI18nTypeTabKey } from '@mediusinc/mng-commons/core';
|
|
2
|
-
import { AFieldDescriptor, AFieldGroupDescriptor, FieldGroupTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
3
|
-
export function getEditorFieldLabel(descriptor, editorDescriptor) {
|
|
4
|
-
if (descriptor instanceof AFieldDescriptor) {
|
|
5
|
-
if (descriptor.label === null) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
else if (!descriptor.label || descriptor.labelUseModelBase) {
|
|
9
|
-
return getI18nTypePropertyKey(editorDescriptor?.model.i18nBaseKey ?? '', descriptor.label ?? descriptor.property);
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
return descriptor.label;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
else if (descriptor instanceof AFieldGroupDescriptor) {
|
|
16
|
-
if (descriptor.title === null) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
else if (!descriptor.title) {
|
|
20
|
-
switch (descriptor.type) {
|
|
21
|
-
case FieldGroupTypeEnum.Tab:
|
|
22
|
-
return getI18nTypeTabKey(editorDescriptor?.model.i18nBaseKey ?? '', descriptor.name);
|
|
23
|
-
case FieldGroupTypeEnum.Fieldset:
|
|
24
|
-
return getI18nTypeGroupKey(editorDescriptor?.model.i18nBaseKey ?? '', descriptor.name);
|
|
25
|
-
case FieldGroupTypeEnum.Logical:
|
|
26
|
-
return null;
|
|
27
|
-
default:
|
|
28
|
-
throw new CommonsInternalError(`Label not implemented for type ${descriptor.type}`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return descriptor.title;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvaGVscGVycy9lZGl0b3ItZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDakksT0FBTyxFQUFDLGdCQUFnQixFQUFFLHFCQUFxQixFQUFpRCxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRWhLLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUFvQyxFQUFFLGdCQUFpRDtJQUN2SCxJQUFJLFVBQVUsWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO2FBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0QsT0FBTyxzQkFBc0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0SCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztTQUFNLElBQUksVUFBVSxZQUFZLHFCQUFxQixFQUFFLENBQUM7UUFDckQsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixLQUFLLGtCQUFrQixDQUFDLEdBQUc7b0JBQ3ZCLE9BQU8saUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6RixLQUFLLGtCQUFrQixDQUFDLFFBQVE7b0JBQzVCLE9BQU8sbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzRixLQUFLLGtCQUFrQixDQUFDLE9BQU87b0JBQzNCLE9BQU8sSUFBSSxDQUFDO2dCQUNoQjtvQkFDSSxNQUFNLElBQUksb0JBQW9CLENBQUMsa0NBQWtDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIGdldEkxOG5UeXBlR3JvdXBLZXksIGdldEkxOG5UeXBlUHJvcGVydHlLZXksIGdldEkxOG5UeXBlVGFiS2V5fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBRmllbGREZXNjcmlwdG9yLCBBRmllbGRHcm91cERlc2NyaXB0b3IsIEFHZW5lcmljRmllbGREZXNjcmlwdG9yLCBFZGl0b3JEZXNjcmlwdG9ySW5zdCwgRmllbGRHcm91cFR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWRpdG9yRmllbGRMYWJlbChkZXNjcmlwdG9yPzogQUdlbmVyaWNGaWVsZERlc2NyaXB0b3IsIGVkaXRvckRlc2NyaXB0b3I/OiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnksIGFueT4pIHtcbiAgICBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEFGaWVsZERlc2NyaXB0b3IpIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IubGFiZWwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKCFkZXNjcmlwdG9yLmxhYmVsIHx8IGRlc2NyaXB0b3IubGFiZWxVc2VNb2RlbEJhc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRJMThuVHlwZVByb3BlcnR5S2V5KGVkaXRvckRlc2NyaXB0b3I/Lm1vZGVsLmkxOG5CYXNlS2V5ID8/ICcnLCBkZXNjcmlwdG9yLmxhYmVsID8/IGRlc2NyaXB0b3IucHJvcGVydHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3IubGFiZWw7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBBRmllbGRHcm91cERlc2NyaXB0b3IpIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IudGl0bGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKCFkZXNjcmlwdG9yLnRpdGxlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRHcm91cFR5cGVFbnVtLlRhYjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldEkxOG5UeXBlVGFiS2V5KGVkaXRvckRlc2NyaXB0b3I/Lm1vZGVsLmkxOG5CYXNlS2V5ID8/ICcnLCBkZXNjcmlwdG9yLm5hbWUpO1xuICAgICAgICAgICAgICAgIGNhc2UgRmllbGRHcm91cFR5cGVFbnVtLkZpZWxkc2V0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0STE4blR5cGVHcm91cEtleShlZGl0b3JEZXNjcmlwdG9yPy5tb2RlbC5pMThuQmFzZUtleSA/PyAnJywgZGVzY3JpcHRvci5uYW1lKTtcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkR3JvdXBUeXBlRW51bS5Mb2dpY2FsOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYExhYmVsIG5vdCBpbXBsZW1lbnRlZCBmb3IgdHlwZSAke2Rlc2NyaXB0b3IudHlwZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yLnRpdGxlO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
|
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
import { CommonsInternalError, CommonsService } from '@mediusinc/mng-commons/core';
|
|
2
|
-
import { LookupDataProviderInst } from '@mediusinc/mng-commons/form/api';
|
|
3
|
-
import { FieldActionDescriptor, FieldInputDescriptor, FieldInputTypeEnum, FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupTypeEnum, FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor, FieldValidationDescriptor, TableviewDescriptorInst, TableviewEditorTypeEnum } from '@mediusinc/mng-commons/tableview/api';
|
|
4
|
-
import { emailValidationName, emailValidator, maxDateValidationName, maxDateValidator, minDateValidationName, minDateValidator } from './editor-validators';
|
|
5
|
-
export function createFormlyConfigFromDescriptor(descriptor, formlyConfig, formEditorComponent) {
|
|
6
|
-
const fields = [];
|
|
7
|
-
if (descriptor.isLocalized) {
|
|
8
|
-
descriptor = createFormlyLocalizationsTab(descriptor);
|
|
9
|
-
}
|
|
10
|
-
if (!descriptor.isLocalized && descriptor.tabs.length === 1 && descriptor.tabs[0].default) {
|
|
11
|
-
// dont use tabs
|
|
12
|
-
fields.push(...createFormlyGroupType(descriptor.tabs[0].fields, descriptor, formlyConfig, formEditorComponent));
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
fields.push(...createFormlyTabType(descriptor.tabs, descriptor, formlyConfig, formEditorComponent));
|
|
16
|
-
}
|
|
17
|
-
return fields;
|
|
18
|
-
}
|
|
19
|
-
export function createFormlyLocalizationsTab(descriptor) {
|
|
20
|
-
if (descriptor.isLocalized && descriptor.tableviewEditorType !== TableviewEditorTypeEnum.Details) {
|
|
21
|
-
if (!descriptor.localizationModel) {
|
|
22
|
-
throw new CommonsInternalError('Localization model must be defined.');
|
|
23
|
-
}
|
|
24
|
-
const localizationsTableViewDescriptor = new TableviewDescriptorInst(descriptor.localizationModel);
|
|
25
|
-
if (!descriptor.localizationLocaleProperty) {
|
|
26
|
-
throw new CommonsInternalError('Localization locale property must be defined.');
|
|
27
|
-
}
|
|
28
|
-
localizationsTableViewDescriptor.addColumn(descriptor.localizationLocaleProperty);
|
|
29
|
-
localizationsTableViewDescriptor.editEditor.addField(descriptor.localizationLocaleProperty).withDisabled(true);
|
|
30
|
-
localizationsTableViewDescriptor.detailsEditor.addField(descriptor.localizationLocaleProperty).withDisabled(true);
|
|
31
|
-
localizationsTableViewDescriptor.addEditor
|
|
32
|
-
.addFieldLookup(descriptor.localizationLocaleProperty, { serviceProvider: new LookupDataProviderInst(CommonsService) })
|
|
33
|
-
.withLookup((qp, service) => service.appDataLocales())
|
|
34
|
-
.withDisabled(false)
|
|
35
|
-
.withRequired();
|
|
36
|
-
descriptor.fields.forEach(field => {
|
|
37
|
-
if (field.isLocalized) {
|
|
38
|
-
localizationsTableViewDescriptor.addColumn(field.property);
|
|
39
|
-
localizationsTableViewDescriptor.addField(field.property);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
const descriptorWithLocalizations = descriptor.copy();
|
|
43
|
-
descriptorWithLocalizations.addTabGroup('localizations');
|
|
44
|
-
if (!descriptor.localizationLocalizationProperty) {
|
|
45
|
-
throw new CommonsInternalError('Localization localization property must be defined');
|
|
46
|
-
}
|
|
47
|
-
descriptorWithLocalizations.addFieldManyEditorUnsafe(descriptor.localizationLocalizationProperty, localizationsTableViewDescriptor);
|
|
48
|
-
return descriptorWithLocalizations;
|
|
49
|
-
}
|
|
50
|
-
return descriptor;
|
|
51
|
-
}
|
|
52
|
-
export function createFormlyTabType(tabGroups, editorDescriptor, formlyConfig, formEditorComponent) {
|
|
53
|
-
const tabsField = {
|
|
54
|
-
type: 'tabs',
|
|
55
|
-
fieldGroup: [],
|
|
56
|
-
props: {
|
|
57
|
-
formEditorComponent,
|
|
58
|
-
editorDescriptor: editorDescriptor
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
for (const tab of tabGroups) {
|
|
62
|
-
const tabField = {
|
|
63
|
-
id: tab.name,
|
|
64
|
-
props: {
|
|
65
|
-
formEditorComponent,
|
|
66
|
-
descriptor: tab,
|
|
67
|
-
editorDescriptor: editorDescriptor
|
|
68
|
-
},
|
|
69
|
-
expressions: {},
|
|
70
|
-
fieldGroup: []
|
|
71
|
-
};
|
|
72
|
-
if (tab.title) {
|
|
73
|
-
tabField.props.label = tab.title;
|
|
74
|
-
}
|
|
75
|
-
if (tab.hiddenExpression) {
|
|
76
|
-
tabField.expressions['props.groupHidden'] = tab.hiddenExpression;
|
|
77
|
-
}
|
|
78
|
-
tabField.fieldGroup.push(...createFormlyGroupType(tab.fields, editorDescriptor, formlyConfig, formEditorComponent));
|
|
79
|
-
tabsField.fieldGroup.push(tabField);
|
|
80
|
-
}
|
|
81
|
-
return [tabsField];
|
|
82
|
-
}
|
|
83
|
-
export function createFormlyGroupType(groups, editorDescriptor, formlyConfig, formEditorComponent) {
|
|
84
|
-
if (groups.length === 1 && groups[0].default) {
|
|
85
|
-
// dont use fieldset, just create fields
|
|
86
|
-
return createFormlyFields(groups[0], editorDescriptor, formlyConfig, formEditorComponent);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
const groupsField = {
|
|
90
|
-
type: 'fieldset',
|
|
91
|
-
fieldGroup: [],
|
|
92
|
-
props: {
|
|
93
|
-
formEditorComponent,
|
|
94
|
-
editorDescriptor: editorDescriptor
|
|
95
|
-
},
|
|
96
|
-
expressions: {}
|
|
97
|
-
};
|
|
98
|
-
for (const group of groups) {
|
|
99
|
-
const groupField = {
|
|
100
|
-
id: group.name,
|
|
101
|
-
props: {
|
|
102
|
-
descriptor: group,
|
|
103
|
-
editorDescriptor: editorDescriptor
|
|
104
|
-
},
|
|
105
|
-
expressions: {},
|
|
106
|
-
fieldGroup: []
|
|
107
|
-
};
|
|
108
|
-
if (group.title) {
|
|
109
|
-
groupField.props.label = group.title;
|
|
110
|
-
}
|
|
111
|
-
if (group.hiddenExpression) {
|
|
112
|
-
groupField.expressions['props.groupHidden'] = group.hiddenExpression;
|
|
113
|
-
}
|
|
114
|
-
groupField.fieldGroup.push(...createFormlyFields(group, editorDescriptor, formlyConfig, formEditorComponent));
|
|
115
|
-
groupsField.fieldGroup.push(groupField);
|
|
116
|
-
}
|
|
117
|
-
return [groupsField];
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
export function createFormlyFields(descriptor, editorDescriptor, formlyConfig, formEditorComponent) {
|
|
121
|
-
const fields = [];
|
|
122
|
-
for (const descriptorField of descriptor.fields) {
|
|
123
|
-
fields.push(createFormlyField(descriptorField, editorDescriptor, formlyConfig, formEditorComponent));
|
|
124
|
-
}
|
|
125
|
-
// wrap in group to be able to use flex grid
|
|
126
|
-
const wrapperGroup = {
|
|
127
|
-
fieldGroupClassName: 'p-fluid formgrid grid',
|
|
128
|
-
fieldGroup: fields,
|
|
129
|
-
props: {}
|
|
130
|
-
};
|
|
131
|
-
addValidationsToFormlyField(wrapperGroup, descriptor.validations, formlyConfig);
|
|
132
|
-
return [wrapperGroup];
|
|
133
|
-
}
|
|
134
|
-
export function createFormlyField(descriptor, editorDescriptor, formlyConfig, formEditorComponent) {
|
|
135
|
-
const field = {
|
|
136
|
-
key: descriptor.property,
|
|
137
|
-
modelOptions: {
|
|
138
|
-
updateOn: descriptor.updateOn
|
|
139
|
-
},
|
|
140
|
-
hooks: {
|
|
141
|
-
onInit: () => (descriptor.onInit ? descriptor.onInit(field) : undefined),
|
|
142
|
-
onChanges: () => (descriptor.onChanges ? descriptor.onChanges(field) : undefined),
|
|
143
|
-
afterContentInit: () => (descriptor.afterContentInit ? descriptor.afterContentInit(field) : undefined),
|
|
144
|
-
afterViewInit: () => (descriptor.afterViewInit ? descriptor.afterViewInit(field) : undefined),
|
|
145
|
-
onDestroy: () => (descriptor.onDestroy ? descriptor.onDestroy(field) : undefined)
|
|
146
|
-
},
|
|
147
|
-
props: {
|
|
148
|
-
descriptor,
|
|
149
|
-
formEditorComponent,
|
|
150
|
-
editorDescriptor: editorDescriptor,
|
|
151
|
-
onValueChange: descriptor.onValueChange
|
|
152
|
-
},
|
|
153
|
-
expressions: {}
|
|
154
|
-
};
|
|
155
|
-
let className = descriptor.className;
|
|
156
|
-
if (!className) {
|
|
157
|
-
// assign default field width through entire row
|
|
158
|
-
className = 'col-12';
|
|
159
|
-
}
|
|
160
|
-
field.className = className;
|
|
161
|
-
if (descriptor instanceof FieldInputDescriptor) {
|
|
162
|
-
switch (descriptor.fieldType) {
|
|
163
|
-
case FieldInputTypeEnum.Hidden:
|
|
164
|
-
break;
|
|
165
|
-
case FieldInputTypeEnum.Label:
|
|
166
|
-
field.type = 'label';
|
|
167
|
-
delete field.key;
|
|
168
|
-
break;
|
|
169
|
-
case FieldInputTypeEnum.Textarea:
|
|
170
|
-
field.type = 'textarea';
|
|
171
|
-
field.props.maxLength = descriptor.maxLength;
|
|
172
|
-
field.props.minLength = descriptor.minLength;
|
|
173
|
-
field.props.pattern = descriptor.pattern;
|
|
174
|
-
break;
|
|
175
|
-
case FieldInputTypeEnum.Number:
|
|
176
|
-
field.type = 'number';
|
|
177
|
-
field.props.min = descriptor.numberMin;
|
|
178
|
-
field.props.max = descriptor.numberMax;
|
|
179
|
-
break;
|
|
180
|
-
case FieldInputTypeEnum.Currency:
|
|
181
|
-
field.type = 'currency';
|
|
182
|
-
field.props.min = descriptor.numberMin;
|
|
183
|
-
field.props.max = descriptor.numberMax;
|
|
184
|
-
break;
|
|
185
|
-
case FieldInputTypeEnum.Switch:
|
|
186
|
-
field.type = 'switch';
|
|
187
|
-
field.defaultValue = false;
|
|
188
|
-
break;
|
|
189
|
-
case FieldInputTypeEnum.Radio:
|
|
190
|
-
field.type = 'radio';
|
|
191
|
-
break;
|
|
192
|
-
case FieldInputTypeEnum.Datepicker:
|
|
193
|
-
field.type = 'datepicker';
|
|
194
|
-
break;
|
|
195
|
-
case FieldInputTypeEnum.Mask:
|
|
196
|
-
field.type = 'mask';
|
|
197
|
-
break;
|
|
198
|
-
case FieldInputTypeEnum.File:
|
|
199
|
-
case FieldInputTypeEnum.ImageFile:
|
|
200
|
-
field.type = 'file';
|
|
201
|
-
break;
|
|
202
|
-
case FieldInputTypeEnum.ImageUrl:
|
|
203
|
-
field.type = 'imageUrl';
|
|
204
|
-
break;
|
|
205
|
-
case FieldInputTypeEnum.Custom:
|
|
206
|
-
if (descriptor.customComponentType) {
|
|
207
|
-
field.type = 'custom';
|
|
208
|
-
field.props['customComponentType'] = descriptor.customComponentType;
|
|
209
|
-
if (Array.isArray(descriptor.customComponentWrappers)) {
|
|
210
|
-
field.wrappers = descriptor.customComponentWrappers;
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
// default wrapper
|
|
214
|
-
field.wrappers = ['field'];
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
break;
|
|
218
|
-
default:
|
|
219
|
-
field.type = 'input';
|
|
220
|
-
field.props.minLength = descriptor.minLength;
|
|
221
|
-
field.props.maxLength = descriptor.maxLength;
|
|
222
|
-
field.props.pattern = descriptor.pattern;
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else if (descriptor instanceof FieldActionDescriptor) {
|
|
227
|
-
field.type = 'action';
|
|
228
|
-
field.wrappers = descriptor.wrappers;
|
|
229
|
-
delete field.key;
|
|
230
|
-
}
|
|
231
|
-
else if (descriptor instanceof FieldLookupEnumDescriptor) {
|
|
232
|
-
switch (descriptor.lookupType) {
|
|
233
|
-
case FieldLookupTypeEnum.Custom:
|
|
234
|
-
field.type = descriptor.customComponentName;
|
|
235
|
-
break;
|
|
236
|
-
default:
|
|
237
|
-
field.type = 'enum';
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
else if (descriptor instanceof FieldLookupDescriptor) {
|
|
242
|
-
switch (descriptor.lookupType) {
|
|
243
|
-
case FieldLookupTypeEnum.Autocomplete:
|
|
244
|
-
field.type = 'autocomplete';
|
|
245
|
-
break;
|
|
246
|
-
case FieldLookupTypeEnum.Dialog:
|
|
247
|
-
field.type = 'dialog';
|
|
248
|
-
break;
|
|
249
|
-
case FieldLookupTypeEnum.Custom:
|
|
250
|
-
field.type = descriptor.customComponentName;
|
|
251
|
-
break;
|
|
252
|
-
case FieldLookupTypeEnum.Dropdown:
|
|
253
|
-
default:
|
|
254
|
-
field.type = 'dropdown';
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
else if (descriptor instanceof FieldManyToManyEditorDescriptor) {
|
|
259
|
-
field.type = 'table-dialog-multiselect';
|
|
260
|
-
}
|
|
261
|
-
else if (descriptor instanceof FieldManyEditorDescriptor) {
|
|
262
|
-
field.type = 'table-dialog-form';
|
|
263
|
-
}
|
|
264
|
-
if (descriptor.label) {
|
|
265
|
-
field.props.label = descriptor.label;
|
|
266
|
-
}
|
|
267
|
-
if (descriptor.requiredExpression) {
|
|
268
|
-
field.expressions['props.required'] = descriptor.requiredExpression;
|
|
269
|
-
}
|
|
270
|
-
if (descriptor.required) {
|
|
271
|
-
field.props.required = true;
|
|
272
|
-
if (descriptor.requiredHideLabelMarker) {
|
|
273
|
-
field.props['hideRequiredMarker'] = true;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
if (descriptor.hiddenExpression) {
|
|
277
|
-
field.expressions['hide'] = descriptor.hiddenExpression;
|
|
278
|
-
field.expressions['resetOnHide'] = () => descriptor.hiddenResetOnHide ?? true;
|
|
279
|
-
}
|
|
280
|
-
if (descriptor.disabledExpression) {
|
|
281
|
-
field.expressions['props.disabled'] = descriptor.disabledExpression;
|
|
282
|
-
}
|
|
283
|
-
else if (descriptor.disabled) {
|
|
284
|
-
field.props.disabled = true;
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
field.expressions['props.disabled'] = 'formState.disabled';
|
|
288
|
-
}
|
|
289
|
-
if (typeof descriptor.defaultValue !== 'undefined') {
|
|
290
|
-
field.defaultValue = descriptor.defaultValue;
|
|
291
|
-
}
|
|
292
|
-
if (descriptor instanceof FieldInputDescriptor) {
|
|
293
|
-
if (descriptor.validationEmail) {
|
|
294
|
-
descriptor.validations.push(new FieldValidationDescriptor(emailValidationName, emailValidator()));
|
|
295
|
-
}
|
|
296
|
-
if (descriptor.datePickerMin) {
|
|
297
|
-
descriptor.validations.push(new FieldValidationDescriptor(minDateValidationName, minDateValidator(descriptor.datePickerMin)));
|
|
298
|
-
}
|
|
299
|
-
if (descriptor.datePickerMax) {
|
|
300
|
-
descriptor.validations.push(new FieldValidationDescriptor(maxDateValidationName, maxDateValidator(descriptor.datePickerMax)));
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
addValidationsToFormlyField(field, descriptor.validations, formlyConfig);
|
|
304
|
-
addAsyncValidationsToFormlyField(field, descriptor.asyncValidations, formlyConfig);
|
|
305
|
-
return field;
|
|
306
|
-
}
|
|
307
|
-
export function addValidationsToFormlyField(config, validations, formlyConfig) {
|
|
308
|
-
if (!config.validators) {
|
|
309
|
-
config.validators = {};
|
|
310
|
-
}
|
|
311
|
-
for (const validation of validations) {
|
|
312
|
-
createFormlyValidation(config.validators, validation, formlyConfig);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
export function addAsyncValidationsToFormlyField(config, asyncValidations, formlyConfig) {
|
|
316
|
-
if (!config.asyncValidators) {
|
|
317
|
-
config.asyncValidators = {};
|
|
318
|
-
}
|
|
319
|
-
for (const validation of asyncValidations) {
|
|
320
|
-
createFormlyValidation(config.asyncValidators, validation, formlyConfig);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
export function createFormlyValidation(config, validation, formlyConfig) {
|
|
324
|
-
if (typeof validation.validator === 'function') {
|
|
325
|
-
if (validation.options?.errorPath && validation.message != null) {
|
|
326
|
-
// if this is used, the validator and message must be registered globally
|
|
327
|
-
if (!formlyConfig.getValidatorMessage(validation.name)) {
|
|
328
|
-
formlyConfig.addValidatorMessage(validation.name, validation.message);
|
|
329
|
-
}
|
|
330
|
-
if (!formlyConfig.validators[validation.name]) {
|
|
331
|
-
formlyConfig.setValidator({
|
|
332
|
-
name: validation.name,
|
|
333
|
-
validation: (control, field) => {
|
|
334
|
-
const commonsFieldFormlyConfig = field;
|
|
335
|
-
return validation.validator({
|
|
336
|
-
fieldFormControl: control,
|
|
337
|
-
form: commonsFieldFormlyConfig.form,
|
|
338
|
-
fieldFormlyConfig: field,
|
|
339
|
-
formComponent: commonsFieldFormlyConfig.props?.formEditorComponent,
|
|
340
|
-
fieldComponent: commonsFieldFormlyConfig.props?.fieldComponent
|
|
341
|
-
})
|
|
342
|
-
? null
|
|
343
|
-
: { [validation.name]: true };
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
if (!Array.isArray(config.validation)) {
|
|
348
|
-
config.validation = [];
|
|
349
|
-
}
|
|
350
|
-
config.validation.push({
|
|
351
|
-
name: validation.name,
|
|
352
|
-
options: { errorPath: validation.options.errorPath }
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
config[validation.name] = {
|
|
357
|
-
expression: (control, field) => {
|
|
358
|
-
const commonsFieldFormlyConfig = field;
|
|
359
|
-
return validation.validator({
|
|
360
|
-
fieldFormControl: control,
|
|
361
|
-
form: commonsFieldFormlyConfig.form,
|
|
362
|
-
fieldFormlyConfig: commonsFieldFormlyConfig,
|
|
363
|
-
formComponent: commonsFieldFormlyConfig.props?.formEditorComponent,
|
|
364
|
-
fieldComponent: commonsFieldFormlyConfig.props?.fieldComponent
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
if (validation.message != null) {
|
|
369
|
-
config[validation.name].message = validation.message;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
if (!Array.isArray(config.validation)) {
|
|
375
|
-
config.validation = [];
|
|
376
|
-
}
|
|
377
|
-
if (validation.options?.errorPath) {
|
|
378
|
-
config.validation.push({
|
|
379
|
-
name: validation.name,
|
|
380
|
-
options: { errorPath: validation.options.errorPath }
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
else {
|
|
384
|
-
config.validation.push(validation.name);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWZvcm1seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2hlbHBlcnMvZWRpdG9yLWZvcm1seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUtILHFCQUFxQixFQUdyQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFFL0IseUJBQXlCLEVBRXpCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDMUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFMUosTUFBTSxVQUFVLGdDQUFnQyxDQUM1QyxVQUFxQyxFQUNyQyxZQUEwQixFQUMxQixtQkFBK0M7SUFFL0MsTUFBTSxNQUFNLEdBQStCLEVBQUUsQ0FBQztJQUU5QyxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixVQUFVLEdBQUcsNEJBQTRCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hGLGdCQUFnQjtRQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcscUJBQXFCLENBQUMsVUFBVSxD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QUFFLE9BQU87d0JBQ3pCLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFpQjt3QkFDaEQsaUJBQWlCLEVBQUUsd0JBQXdCO3dCQUMzQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxFQUFFLG1CQUFtQjt3QkFDbEUsY0FBYyxFQUFFLHdCQUF3QixDQUFDLEtBQUssRUFBRSxjQUFjO3FCQUNqRSxDQUFDLENBQUM7Z0JBQ1AsQ0FBQzthQUNKLENBQUM7WUFDRixJQUFJLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDekQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsT0FBTyxFQUFFLEVBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDO2FBQ3JELENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtGb3JtbHlDb25maWd9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtWYWxpZGF0aW9uTWVzc2FnZU9wdGlvbn0gZnJvbSAnQG5neC1mb3JtbHkvY29yZS9saWIvbW9kZWxzJztcbmltcG9ydCB7Rm9ybWx5RmllbGRDb25maWd9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUvbGliL21vZGVscy9maWVsZGNvbmZpZyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNJbnRlcm5hbEVycm9yLCBDb21tb25zU2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge1xuICAgIEFGaWVsZERlc2NyaXB0b3IsXG4gICAgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgIENvbW1vbnNGb3JtbHlWYWxpZGF0aW9uLFxuICAgIEVkaXRvckRlc2NyaXB0b3JJbnN0LFxuICAgIEZpZWxkQWN0aW9uRGVzY3JpcHRvcixcbiAgICBGaWVsZEJhc2VWYWxpZGF0b3IsXG4gICAgRmllbGRHcm91cERlc2NyaXB0b3IsXG4gICAgRmllbGRJbnB1dERlc2NyaXB0b3IsXG4gICAgRmllbGRJbnB1dFR5cGVFbnVtLFxuICAgIEZpZWxkTG9va3VwRGVzY3JpcHRvcixcbiAgICBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yLFxuICAgIEZpZWxkTG9va3VwVHlwZUVudW0sXG4gICAgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcixcbiAgICBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yLFxuICAgIEZpZWxkVGFiR3JvdXBEZXNjcmlwdG9yLFxuICAgIEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3IsXG4gICAgSUZvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsXG4gICAgVGFibGV2aWV3RWRpdG9yVHlwZUVudW1cbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtlbWFpbFZhbGlkYXRpb25OYW1lLCBlbWFpbFZhbGlkYXRvciwgbWF4RGF0ZVZhbGlkYXRpb25OYW1lLCBtYXhEYXRlVmFsaWRhdG9yLCBtaW5EYXRlVmFsaWRhdGlvbk5hbWUsIG1pbkRhdGVWYWxpZGF0b3J9IGZyb20gJy4vZWRpdG9yLXZhbGlkYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5Q29uZmlnRnJvbURlc2NyaXB0b3I8SXRlbT4oXG4gICAgZGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8YW55PixcbiAgICBmb3JtbHlDb25maWc6IEZvcm1seUNvbmZpZyxcbiAgICBmb3JtRWRpdG9yQ29tcG9uZW50OiBJRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtPlxuKTogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgIGNvbnN0IGZpZWxkczogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcblxuICAgIGlmIChkZXNjcmlwdG9yLmlzTG9jYWxpemVkKSB7XG4gICAgICAgIGRlc2NyaXB0b3IgPSBjcmVhdGVGb3JtbHlMb2NhbGl6YXRpb25zVGFiKGRlc2NyaXB0b3IpO1xuICAgIH1cblxuICAgIGlmICghZGVzY3JpcHRvci5pc0xvY2FsaXplZCAmJiBkZXNjcmlwdG9yLnRhYnMubGVuZ3RoID09PSAxICYmIGRlc2NyaXB0b3IudGFic1swXS5kZWZhdWx0KSB7XG4gICAgICAgIC8vIGRvbnQgdXNlIHRhYnNcbiAgICAgICAgZmllbGRzLnB1c2goLi4uY3JlYXRlRm9ybWx5R3JvdXBUeXBlKGRlc2NyaXB0b3IudGFic1swXS5maWVsZHMsIGRlc2NyaXB0b3IsIGZvcm1seUNvbmZpZywgZm9ybUVkaXRvckNvbXBvbmVudCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkcy5wdXNoKC4uLmNyZWF0ZUZvcm1seVRhYlR5cGUoZGVzY3JpcHRvci50YWJzLCBkZXNjcmlwdG9yLCBmb3JtbHlDb25maWcsIGZvcm1FZGl0b3JDb21wb25lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmllbGRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5TG9jYWxpemF0aW9uc1RhYjxJdGVtPihkZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtPikge1xuICAgIGlmIChkZXNjcmlwdG9yLmlzTG9jYWxpemVkICYmIGRlc2NyaXB0b3IudGFibGV2aWV3RWRpdG9yVHlwZSAhPT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlscykge1xuICAgICAgICBpZiAoIWRlc2NyaXB0b3IubG9jYWxpemF0aW9uTW9kZWwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignTG9jYWxpemF0aW9uIG1vZGVsIG11c3QgYmUgZGVmaW5lZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvciA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxhbnksIG5ldmVyLCBuZXZlciwgSXRlbT4oZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Nb2RlbCk7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKCdMb2NhbGl6YXRpb24gbG9jYWxlIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZC4nKTtcbiAgICAgICAgfVxuICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5hZGRDb2x1bW4oZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSk7XG4gICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmVkaXRFZGl0b3IuYWRkRmllbGQoZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSkud2l0aERpc2FibGVkKHRydWUpO1xuICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5kZXRhaWxzRWRpdG9yLmFkZEZpZWxkKGRlc2NyaXB0b3IubG9jYWxpemF0aW9uTG9jYWxlUHJvcGVydHkpLndpdGhEaXNhYmxlZCh0cnVlKTtcbiAgICAgICAgbG9jYWxpemF0aW9uc1RhYmxlVmlld0Rlc2NyaXB0b3IuYWRkRWRpdG9yXG4gICAgICAgICAgICAuYWRkRmllbGRMb29rdXAoZGVzY3JpcHRvci5sb2NhbGl6YXRpb25Mb2NhbGVQcm9wZXJ0eSwge3NlcnZpY2VQcm92aWRlcjogbmV3IExvb2t1cERhdGFQcm92aWRlckluc3Q8c3RyaW5nLCBDb21tb25zU2VydmljZT4oQ29tbW9uc1NlcnZpY2UpfSlcbiAgICAgICAgICAgIC53aXRoTG9va3VwKChxcCwgc2VydmljZSkgPT4gc2VydmljZS5hcHBEYXRhTG9jYWxlcygpKVxuICAgICAgICAgICAgLndpdGhEaXNhYmxlZChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUmVxdWlyZWQoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaXNMb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvci5hZGRDb2x1bW4oZmllbGQucHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbnNUYWJsZVZpZXdEZXNjcmlwdG9yLmFkZEZpZWxkKGZpZWxkLnByb3BlcnR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3JXaXRoTG9jYWxpemF0aW9ucyA9IGRlc2NyaXB0b3IuY29weSgpO1xuICAgICAgICBkZXNjcmlwdG9yV2l0aExvY2FsaXphdGlvbnMuYWRkVGFiR3JvdXAoJ2xvY2FsaXphdGlvbnMnKTtcbiAgICAgICAgaWYgKCFkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoJ0xvY2FsaXphdGlvbiBsb2NhbGl6YXRpb24gcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgZGVzY3JpcHRvcldpdGhMb2NhbGl6YXRpb25zLmFkZEZpZWxkTWFueUVkaXRvclVuc2FmZShkZXNjcmlwdG9yLmxvY2FsaXphdGlvbkxvY2FsaXphdGlvblByb3BlcnR5LCBsb2NhbGl6YXRpb25zVGFibGVWaWV3RGVzY3JpcHRvcik7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3JXaXRoTG9jYWxpemF0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlUYWJUeXBlPEl0ZW0+KFxuICAgIHRhYkdyb3VwczogRmllbGRUYWJHcm91cERlc2NyaXB0b3I8YW55PltdLFxuICAgIGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgZm9ybUVkaXRvckNvbXBvbmVudDogSUZvcm1FZGl0b3JDb21wb25lbnQ8SXRlbT5cbik6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICBjb25zdCB0YWJzRmllbGQ6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgdHlwZTogJ3RhYnMnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGZvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZvciAoY29uc3QgdGFiIG9mIHRhYkdyb3Vwcykge1xuICAgICAgICBjb25zdCB0YWJGaWVsZDogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnID0ge1xuICAgICAgICAgICAgaWQ6IHRhYi5uYW1lLFxuICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3I6IHRhYixcbiAgICAgICAgICAgICAgICBlZGl0b3JEZXNjcmlwdG9yOiBlZGl0b3JEZXNjcmlwdG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHt9LFxuICAgICAgICAgICAgZmllbGRHcm91cDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRhYi50aXRsZSkge1xuICAgICAgICAgICAgdGFiRmllbGQucHJvcHMubGFiZWwgPSB0YWIudGl0bGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFiLmhpZGRlbkV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRhYkZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMuZ3JvdXBIaWRkZW4nXSA9IHRhYi5oaWRkZW5FeHByZXNzaW9uIGFzIHN0cmluZyB8ICgoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiBhbnkpIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgICB9XG5cbiAgICAgICAgdGFiRmllbGQuZmllbGRHcm91cCEucHVzaCguLi5jcmVhdGVGb3JtbHlHcm91cFR5cGUodGFiLmZpZWxkcywgZWRpdG9yRGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgICAgIHRhYnNGaWVsZC5maWVsZEdyb3VwIS5wdXNoKHRhYkZpZWxkKTtcbiAgICB9XG4gICAgcmV0dXJuIFt0YWJzRmllbGRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5R3JvdXBUeXBlPEl0ZW0+KFxuICAgIGdyb3VwczogRmllbGRHcm91cERlc2NyaXB0b3I8YW55PltdLFxuICAgIGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgZm9ybUVkaXRvckNvbXBvbmVudDogSUZvcm1FZGl0b3JDb21wb25lbnQ8SXRlbT5cbik6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICBpZiAoZ3JvdXBzLmxlbmd0aCA9PT0gMSAmJiBncm91cHNbMF0uZGVmYXVsdCkge1xuICAgICAgICAvLyBkb250IHVzZSBmaWVsZHNldCwganVzdCBjcmVhdGUgZmllbGRzXG4gICAgICAgIHJldHVybiBjcmVhdGVGb3JtbHlGaWVsZHMoZ3JvdXBzWzBdLCBlZGl0b3JEZXNjcmlwdG9yLCBmb3JtbHlDb25maWcsIGZvcm1FZGl0b3JDb21wb25lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdyb3Vwc0ZpZWxkOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcgPSB7XG4gICAgICAgICAgICB0eXBlOiAnZmllbGRzZXQnLFxuICAgICAgICAgICAgZmllbGRHcm91cDogW10sXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgIGZvcm1FZGl0b3JDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvcjogZWRpdG9yRGVzY3JpcHRvclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cEZpZWxkOiBDb21tb25zRm9ybWx5RmllbGRDb25maWc8YW55LCBJdGVtPiA9IHtcbiAgICAgICAgICAgICAgICBpZDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiBncm91cCxcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvcjogZWRpdG9yRGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnM6IHt9LFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGdyb3VwLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBGaWVsZC5wcm9wcy5sYWJlbCA9IGdyb3VwLnRpdGxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZ3JvdXAuaGlkZGVuRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGdyb3VwRmllbGQuZXhwcmVzc2lvbnMhWydwcm9wcy5ncm91cEhpZGRlbiddID0gZ3JvdXAuaGlkZGVuRXhwcmVzc2lvbiBhcyBzdHJpbmcgfCAoKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4gYW55KSB8IE9ic2VydmFibGU8YW55PjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ3JvdXBGaWVsZC5maWVsZEdyb3VwIS5wdXNoKC4uLmNyZWF0ZUZvcm1seUZpZWxkcyhncm91cCwgZWRpdG9yRGVzY3JpcHRvciwgZm9ybWx5Q29uZmlnLCBmb3JtRWRpdG9yQ29tcG9uZW50KSk7XG4gICAgICAgICAgICBncm91cHNGaWVsZC5maWVsZEdyb3VwIS5wdXNoKGdyb3VwRmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZ3JvdXBzRmllbGRdO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1seUZpZWxkczxJdGVtPihcbiAgICBkZXNjcmlwdG9yOiBGaWVsZEdyb3VwRGVzY3JpcHRvcjxhbnk+LFxuICAgIGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PGFueT4sXG4gICAgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcsXG4gICAgZm9ybUVkaXRvckNvbXBvbmVudDogSUZvcm1FZGl0b3JDb21wb25lbnQ8SXRlbT5cbik6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICBjb25zdCBmaWVsZHM6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBkZXNjcmlwdG9yRmllbGQgb2YgZGVzY3JpcHRvci5maWVsZHMpIHtcbiAgICAgICAgZmllbGRzLnB1c2goY3JlYXRlRm9ybWx5RmllbGQoZGVzY3JpcHRvckZpZWxkLCBlZGl0b3JEZXNjcmlwdG9yLCBmb3JtbHlDb25maWcsIGZvcm1FZGl0b3JDb21wb25lbnQpKTtcbiAgICB9XG4gICAgLy8gd3JhcCBpbiBncm91cCB0byBiZSBhYmxlIHRvIHVzZSBmbGV4IGdyaWRcbiAgICBjb25zdCB3cmFwcGVyR3JvdXA6IENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZyA9IHtcbiAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ3AtZmx1aWQgZm9ybWdyaWQgZ3JpZCcsXG4gICAgICAgIGZpZWxkR3JvdXA6IGZpZWxkcyxcbiAgICAgICAgcHJvcHM6IHt9XG4gICAgfTtcblxuICAgIGFkZFZhbGlkYXRpb25zVG9Gb3JtbHlGaWVsZCh3cmFwcGVyR3JvdXAsIGRlc2NyaXB0b3IudmFsaWRhdGlvbnMsIGZvcm1seUNvbmZpZyk7XG5cbiAgICByZXR1cm4gW3dyYXBwZXJHcm91cF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtbHlGaWVsZDxJdGVtPihcbiAgICBkZXNjcmlwdG9yOiBBRmllbGREZXNjcmlwdG9yPGFueSwgYW55PixcbiAgICBlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxhbnk+LFxuICAgIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnLFxuICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+XG4pOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcge1xuICAgIGNvbnN0IGZpZWxkOiBDb21tb25zRm9ybWx5RmllbGRDb25maWc8YW55LCBJdGVtPiA9IHtcbiAgICAgICAga2V5OiBkZXNjcmlwdG9yLnByb3BlcnR5LFxuICAgICAgICBtb2RlbE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHVwZGF0ZU9uOiBkZXNjcmlwdG9yLnVwZGF0ZU9uXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgICBvbkluaXQ6ICgpID0+IChkZXNjcmlwdG9yLm9uSW5pdCA/IGRlc2NyaXB0b3Iub25Jbml0KGZpZWxkKSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBvbkNoYW5nZXM6ICgpID0+IChkZXNjcmlwdG9yLm9uQ2hhbmdlcyA/IGRlc2NyaXB0b3Iub25DaGFuZ2VzKGZpZWxkKSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBhZnRlckNvbnRlbnRJbml0OiAoKSA9PiAoZGVzY3JpcHRvci5hZnRlckNvbnRlbnRJbml0ID8gZGVzY3JpcHRvci5hZnRlckNvbnRlbnRJbml0KGZpZWxkKSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBhZnRlclZpZXdJbml0OiAoKSA9PiAoZGVzY3JpcHRvci5hZnRlclZpZXdJbml0ID8gZGVzY3JpcHRvci5hZnRlclZpZXdJbml0KGZpZWxkKSA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBvbkRlc3Ryb3k6ICgpID0+IChkZXNjcmlwdG9yLm9uRGVzdHJveSA/IGRlc2NyaXB0b3Iub25EZXN0cm95KGZpZWxkKSA6IHVuZGVmaW5lZClcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IsXG4gICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvcjogZWRpdG9yRGVzY3JpcHRvcixcbiAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U6IGRlc2NyaXB0b3Iub25WYWx1ZUNoYW5nZVxuICAgICAgICB9LFxuICAgICAgICBleHByZXNzaW9uczoge31cbiAgICB9O1xuXG4gICAgbGV0IGNsYXNzTmFtZSA9IGRlc2NyaXB0b3IuY2xhc3NOYW1lO1xuICAgIGlmICghY2xhc3NOYW1lKSB7XG4gICAgICAgIC8vIGFzc2lnbiBkZWZhdWx0IGZpZWxkIHdpZHRoIHRocm91Z2ggZW50aXJlIHJvd1xuICAgICAgICBjbGFzc05hbWUgPSAnY29sLTEyJztcbiAgICB9XG4gICAgZmllbGQuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gICAgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZElucHV0RGVzY3JpcHRvcikge1xuICAgICAgICBzd2l0Y2ggKGRlc2NyaXB0b3IuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5IaWRkZW46XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5MYWJlbDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2xhYmVsJztcbiAgICAgICAgICAgICAgICBkZWxldGUgZmllbGQua2V5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uVGV4dGFyZWE6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICd0ZXh0YXJlYSc7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWF4TGVuZ3RoID0gZGVzY3JpcHRvci5tYXhMZW5ndGg7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWluTGVuZ3RoID0gZGVzY3JpcHRvci5taW5MZW5ndGg7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMucGF0dGVybiA9IGRlc2NyaXB0b3IucGF0dGVybjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ251bWJlcic7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWluID0gZGVzY3JpcHRvci5udW1iZXJNaW47XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWF4ID0gZGVzY3JpcHRvci5udW1iZXJNYXg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5DdXJyZW5jeTpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2N1cnJlbmN5JztcbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wcy5taW4gPSBkZXNjcmlwdG9yLm51bWJlck1pbjtcbiAgICAgICAgICAgICAgICBmaWVsZC5wcm9wcy5tYXggPSBkZXNjcmlwdG9yLm51bWJlck1heDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLlN3aXRjaDpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ3N3aXRjaCc7XG4gICAgICAgICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5SYWRpbzpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ3JhZGlvJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLkRhdGVwaWNrZXI6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdkYXRlcGlja2VyJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLk1hc2s6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdtYXNrJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLkZpbGU6XG4gICAgICAgICAgICBjYXNlIEZpZWxkSW5wdXRUeXBlRW51bS5JbWFnZUZpbGU6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdmaWxlJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmllbGRJbnB1dFR5cGVFbnVtLkltYWdlVXJsOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnaW1hZ2VVcmwnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZElucHV0VHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdjdXN0b20nO1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC5wcm9wc1snY3VzdG9tQ29tcG9uZW50VHlwZSddID0gZGVzY3JpcHRvci5jdXN0b21Db21wb25lbnRUeXBlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudFdyYXBwZXJzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQud3JhcHBlcnMgPSBkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudFdyYXBwZXJzO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB3cmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC53cmFwcGVycyA9IFsnZmllbGQnXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdpbnB1dCc7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWluTGVuZ3RoID0gZGVzY3JpcHRvci5taW5MZW5ndGg7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMubWF4TGVuZ3RoID0gZGVzY3JpcHRvci5tYXhMZW5ndGg7XG4gICAgICAgICAgICAgICAgZmllbGQucHJvcHMucGF0dGVybiA9IGRlc2NyaXB0b3IucGF0dGVybjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvciBpbnN0YW5jZW9mIEZpZWxkQWN0aW9uRGVzY3JpcHRvcikge1xuICAgICAgICBmaWVsZC50eXBlID0gJ2FjdGlvbic7XG4gICAgICAgIGZpZWxkLndyYXBwZXJzID0gZGVzY3JpcHRvci53cmFwcGVycztcbiAgICAgICAgZGVsZXRlIGZpZWxkLmtleTtcbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZExvb2t1cEVudW1EZXNjcmlwdG9yKSB7XG4gICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5sb29rdXBUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSBkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZW51bSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZExvb2t1cERlc2NyaXB0b3IpIHtcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLmxvb2t1cFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmllbGRMb29rdXBUeXBlRW51bS5BdXRvY29tcGxldGU6XG4gICAgICAgICAgICAgICAgZmllbGQudHlwZSA9ICdhdXRvY29tcGxldGUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWVsZExvb2t1cFR5cGVFbnVtLkRpYWxvZzpcbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID0gJ2RpYWxvZyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwVHlwZUVudW0uQ3VzdG9tOlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSBkZXNjcmlwdG9yLmN1c3RvbUNvbXBvbmVudE5hbWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpZWxkTG9va3VwVHlwZUVudW0uRHJvcGRvd246XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZpZWxkLnR5cGUgPSAnZHJvcGRvd24nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcikge1xuICAgICAgICBmaWVsZC50eXBlID0gJ3RhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdCc7XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRmllbGRNYW55RWRpdG9yRGVzY3JpcHRvcikge1xuICAgICAgICBmaWVsZC50eXBlID0gJ3RhYmxlLWRpYWxvZy1mb3JtJztcbiAgICB9XG5cbiAgICBpZiAoZGVzY3JpcHRvci5sYWJlbCkge1xuICAgICAgICBmaWVsZC5wcm9wcy5sYWJlbCA9IGRlc2NyaXB0b3IubGFiZWw7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IucmVxdWlyZWRFeHByZXNzaW9uKSB7XG4gICAgICAgIGZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMucmVxdWlyZWQnXSA9IGRlc2NyaXB0b3IucmVxdWlyZWRFeHByZXNzaW9uO1xuICAgIH1cbiAgICBpZiAoZGVzY3JpcHRvci5yZXF1aXJlZCkge1xuICAgICAgICBmaWVsZC5wcm9wcyEucmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICBpZiAoZGVzY3JpcHRvci5yZXF1aXJlZEhpZGVMYWJlbE1hcmtlcikge1xuICAgICAgICAgICAgZmllbGQucHJvcHMhWydoaWRlUmVxdWlyZWRNYXJrZXInXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVzY3JpcHRvci5oaWRkZW5FeHByZXNzaW9uKSB7XG4gICAgICAgIGZpZWxkLmV4cHJlc3Npb25zIVsnaGlkZSddID0gZGVzY3JpcHRvci5oaWRkZW5FeHByZXNzaW9uO1xuICAgICAgICBmaWVsZC5leHByZXNzaW9ucyFbJ3Jlc2V0T25IaWRlJ10gPSAoKSA9PiBkZXNjcmlwdG9yLmhpZGRlblJlc2V0T25IaWRlID8/IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IuZGlzYWJsZWRFeHByZXNzaW9uKSB7XG4gICAgICAgIGZpZWxkLmV4cHJlc3Npb25zIVsncHJvcHMuZGlzYWJsZWQnXSA9IGRlc2NyaXB0b3IuZGlzYWJsZWRFeHByZXNzaW9uO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5kaXNhYmxlZCkge1xuICAgICAgICBmaWVsZC5wcm9wcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGQuZXhwcmVzc2lvbnMhWydwcm9wcy5kaXNhYmxlZCddID0gJ2Zvcm1TdGF0ZS5kaXNhYmxlZCc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkZXNjcmlwdG9yLmRlZmF1bHRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlID0gZGVzY3JpcHRvci5kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBGaWVsZElucHV0RGVzY3JpcHRvcikge1xuICAgICAgICBpZiAoZGVzY3JpcHRvci52YWxpZGF0aW9uRW1haWwpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudmFsaWRhdGlvbnMucHVzaChuZXcgRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcihlbWFpbFZhbGlkYXRpb25OYW1lLCBlbWFpbFZhbGlkYXRvcigpIGFzIEZpZWxkQmFzZVZhbGlkYXRvcjxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBhbnk+KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1pbikge1xuICAgICAgICAgICAgZGVzY3JpcHRvci52YWxpZGF0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yKG1pbkRhdGVWYWxpZGF0aW9uTmFtZSwgbWluRGF0ZVZhbGlkYXRvcihkZXNjcmlwdG9yLmRhdGVQaWNrZXJNaW4pIGFzIEZpZWxkQmFzZVZhbGlkYXRvcjxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBhbnk+KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVzY3JpcHRvci5kYXRlUGlja2VyTWF4KSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IEZpZWxkVmFsaWRhdGlvbkRlc2NyaXB0b3IobWF4RGF0ZVZhbGlkYXRpb25OYW1lLCBtYXhEYXRlVmFsaWRhdG9yKGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1heCkgYXMgRmllbGRCYXNlVmFsaWRhdG9yPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIGFueT4pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkVmFsaWRhdGlvbnNUb0Zvcm1seUZpZWxkKGZpZWxkLCBkZXNjcmlwdG9yLnZhbGlkYXRpb25zLCBmb3JtbHlDb25maWcpO1xuICAgIGFkZEFzeW5jVmFsaWRhdGlvbnNUb0Zvcm1seUZpZWxkKGZpZWxkLCBkZXNjcmlwdG9yLmFzeW5jVmFsaWRhdGlvbnMsIGZvcm1seUNvbmZpZyk7XG5cbiAgICByZXR1cm4gZmllbGQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRWYWxpZGF0aW9uc1RvRm9ybWx5RmllbGQoY29uZmlnOiBDb21tb25zRm9ybWx5RmllbGRDb25maWcsIHZhbGlkYXRpb25zOiBBcnJheTxGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yPGFueSwgYW55Pj4sIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnKSB7XG4gICAgaWYgKCFjb25maWcudmFsaWRhdG9ycykge1xuICAgICAgICBjb25maWcudmFsaWRhdG9ycyA9IHt9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9ucykge1xuICAgICAgICBjcmVhdGVGb3JtbHlWYWxpZGF0aW9uKGNvbmZpZy52YWxpZGF0b3JzLCB2YWxpZGF0aW9uLCBmb3JtbHlDb25maWcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEFzeW5jVmFsaWRhdGlvbnNUb0Zvcm1seUZpZWxkKGNvbmZpZzogQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLCBhc3luY1ZhbGlkYXRpb25zOiBBcnJheTxGaWVsZFZhbGlkYXRpb25EZXNjcmlwdG9yPGFueSwgYW55Pj4sIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnKSB7XG4gICAgaWYgKCFjb25maWcuYXN5bmNWYWxpZGF0b3JzKSB7XG4gICAgICAgIGNvbmZpZy5hc3luY1ZhbGlkYXRvcnMgPSB7fTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgYXN5bmNWYWxpZGF0aW9ucykge1xuICAgICAgICBjcmVhdGVGb3JtbHlWYWxpZGF0aW9uKGNvbmZpZy5hc3luY1ZhbGlkYXRvcnMsIHZhbGlkYXRpb24sIGZvcm1seUNvbmZpZyk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybWx5VmFsaWRhdGlvbihjb25maWc6IE5vbk51bGxhYmxlPENvbW1vbnNGb3JtbHlWYWxpZGF0aW9uPiwgdmFsaWRhdGlvbjogRmllbGRWYWxpZGF0aW9uRGVzY3JpcHRvcjxhbnksIGFueT4sIGZvcm1seUNvbmZpZzogRm9ybWx5Q29uZmlnKSB7XG4gICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAodmFsaWRhdGlvbi5vcHRpb25zPy5lcnJvclBhdGggJiYgdmFsaWRhdGlvbi5tZXNzYWdlICE9IG51bGwpIHtcbiAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgdXNlZCwgdGhlIHZhbGlkYXRvciBhbmQgbWVzc2FnZSBtdXN0IGJlIHJlZ2lzdGVyZWQgZ2xvYmFsbHlcbiAgICAgICAgICAgIGlmICghZm9ybWx5Q29uZmlnLmdldFZhbGlkYXRvck1lc3NhZ2UodmFsaWRhdGlvbi5uYW1lKSkge1xuICAgICAgICAgICAgICAgIGZvcm1seUNvbmZpZy5hZGRWYWxpZGF0b3JNZXNzYWdlKHZhbGlkYXRpb24ubmFtZSwgdmFsaWRhdGlvbi5tZXNzYWdlIGFzIFZhbGlkYXRpb25NZXNzYWdlT3B0aW9uWydtZXNzYWdlJ10pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWZvcm1seUNvbmZpZy52YWxpZGF0b3JzW3ZhbGlkYXRpb24ubmFtZV0pIHtcbiAgICAgICAgICAgICAgICBmb3JtbHlDb25maWcuc2V0VmFsaWRhdG9yKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsaWRhdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiAoY29udHJvbCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZyA9IGZpZWxkIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uLnZhbGlkYXRvciEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkRm9ybUNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybTogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLmZvcm0gYXMgRm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkRm9ybWx5Q29uZmlnOiBmaWVsZCBhcyBDb21tb25zRm9ybWx5RmllbGRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbXBvbmVudDogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLnByb3BzPy5mb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkQ29tcG9uZW50OiBjb21tb25zRmllbGRGb3JtbHlDb25maWcucHJvcHM/LmZpZWxkQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogPFZhbGlkYXRvcnM+e1t2YWxpZGF0aW9uLm5hbWVdOiB0cnVlfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uZmlnLnZhbGlkYXRpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnZhbGlkYXRpb24gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IHZhbGlkYXRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7ZXJyb3JQYXRoOiB2YWxpZGF0aW9uLm9wdGlvbnMuZXJyb3JQYXRofVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWdbdmFsaWRhdGlvbi5uYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnID0gZmllbGQgYXMgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbi52YWxpZGF0b3IhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkRm9ybUNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtOiBjb21tb25zRmllbGRGb3JtbHlDb25maWcuZm9ybSBhcyBGb3JtR3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEZvcm1seUNvbmZpZzogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbXBvbmVudDogY29tbW9uc0ZpZWxkRm9ybWx5Q29uZmlnLnByb3BzPy5mb3JtRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRDb21wb25lbnQ6IGNvbW1vbnNGaWVsZEZvcm1seUNvbmZpZy5wcm9wcz8uZmllbGRDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uLm1lc3NhZ2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZ1t2YWxpZGF0aW9uLm5hbWVdLm1lc3NhZ2UgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uZmlnLnZhbGlkYXRpb24pKSB7XG4gICAgICAgICAgICBjb25maWcudmFsaWRhdGlvbiA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWxpZGF0aW9uLm9wdGlvbnM/LmVycm9yUGF0aCkge1xuICAgICAgICAgICAgY29uZmlnLnZhbGlkYXRpb24ucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogdmFsaWRhdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtlcnJvclBhdGg6IHZhbGlkYXRpb24ub3B0aW9ucy5lcnJvclBhdGh9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy52YWxpZGF0aW9uLnB1c2godmFsaWRhdGlvbi5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Validators } from '@angular/forms';
|
|
2
|
-
export const minDateValidationName = 'minDate';
|
|
3
|
-
export const minDateValidator = (min) => {
|
|
4
|
-
return ({ fieldFormControl, fieldFormlyConfig }) => {
|
|
5
|
-
const minDate = fieldFormlyConfig.props.minDate ?? min;
|
|
6
|
-
const date = fieldFormControl?.value == null ? undefined : new Date(fieldFormControl.value);
|
|
7
|
-
return !date || !minDate || !(minDate instanceof Date) || date >= minDate;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
export const maxDateValidationName = 'maxDate';
|
|
11
|
-
export const maxDateValidator = (max) => {
|
|
12
|
-
return ({ fieldFormControl, fieldFormlyConfig }) => {
|
|
13
|
-
const maxDate = fieldFormlyConfig.props.maxDate ?? max;
|
|
14
|
-
const date = fieldFormControl?.value == null ? undefined : new Date(fieldFormControl.value);
|
|
15
|
-
return !date || !maxDate || !(maxDate instanceof Date) || date <= maxDate;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export const emailValidationName = 'email';
|
|
19
|
-
export const emailValidator = () => {
|
|
20
|
-
return ({ fieldFormControl }) => {
|
|
21
|
-
const error = fieldFormControl ? Validators.email(fieldFormControl) : null;
|
|
22
|
-
return error === null;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9oZWxwZXJzL2VkaXRvci12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDNUIsR0FBZ0ssRUFDbEcsRUFBRTtJQUNoRSxPQUFPLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBQyxFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQXFCLGdCQUFnQixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUcsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxZQUFZLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzVCLEdBQWdLLEVBQ2xHLEVBQUU7SUFDaEUsT0FBTyxDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUMsRUFBRSxFQUFFO1FBQzdDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFxQixnQkFBZ0IsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlHLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzlFLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBbUQsRUFBRTtJQUMvRSxPQUFPLENBQUMsRUFBQyxnQkFBZ0IsRUFBQyxFQUFFLEVBQUU7UUFDMUIsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNFLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtGaWVsZElucHV0RGF0ZVBpY2tlckR5bmFtaWNNaW5NYXhGblR5cGUsIEZpZWxkVmFsaWRhdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5leHBvcnQgY29uc3QgbWluRGF0ZVZhbGlkYXRpb25OYW1lID0gJ21pbkRhdGUnO1xuZXhwb3J0IGNvbnN0IG1pbkRhdGVWYWxpZGF0b3IgPSAoXG4gICAgbWluOiBEYXRlIHwgRmllbGRJbnB1dERhdGVQaWNrZXJEeW5hbWljTWluTWF4Rm5UeXBlPERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsLCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZFxuKTogRmllbGRWYWxpZGF0b3I8RGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIGFueT4gPT4ge1xuICAgIHJldHVybiAoe2ZpZWxkRm9ybUNvbnRyb2wsIGZpZWxkRm9ybWx5Q29uZmlnfSkgPT4ge1xuICAgICAgICBjb25zdCBtaW5EYXRlID0gZmllbGRGb3JtbHlDb25maWcucHJvcHMubWluRGF0ZSA/PyBtaW47XG4gICAgICAgIGNvbnN0IGRhdGU6IERhdGUgfCB1bmRlZmluZWQgPSBmaWVsZEZvcm1Db250cm9sPy52YWx1ZSA9PSBudWxsID8gdW5kZWZpbmVkIDogbmV3IERhdGUoZmllbGRGb3JtQ29udHJvbC52YWx1ZSk7XG4gICAgICAgIHJldHVybiAhZGF0ZSB8fCAhbWluRGF0ZSB8fCAhKG1pbkRhdGUgaW5zdGFuY2VvZiBEYXRlKSB8fCBkYXRlID49IG1pbkRhdGU7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXhEYXRlVmFsaWRhdGlvbk5hbWUgPSAnbWF4RGF0ZSc7XG5leHBvcnQgY29uc3QgbWF4RGF0ZVZhbGlkYXRvciA9IChcbiAgICBtYXg6IERhdGUgfCBGaWVsZElucHV0RGF0ZVBpY2tlckR5bmFtaWNNaW5NYXhGblR5cGU8RGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwsIERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsLCB1bmRlZmluZWQ+IHwgdW5kZWZpbmVkXG4pOiBGaWVsZFZhbGlkYXRvcjxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgYW55PiA9PiB7XG4gICAgcmV0dXJuICh7ZmllbGRGb3JtQ29udHJvbCwgZmllbGRGb3JtbHlDb25maWd9KSA9PiB7XG4gICAgICAgIGNvbnN0IG1heERhdGUgPSBmaWVsZEZvcm1seUNvbmZpZy5wcm9wcy5tYXhEYXRlID8/IG1heDtcbiAgICAgICAgY29uc3QgZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCA9IGZpZWxkRm9ybUNvbnRyb2w/LnZhbHVlID09IG51bGwgPyB1bmRlZmluZWQgOiBuZXcgRGF0ZShmaWVsZEZvcm1Db250cm9sLnZhbHVlKTtcbiAgICAgICAgcmV0dXJuICFkYXRlIHx8ICFtYXhEYXRlIHx8ICEobWF4RGF0ZSBpbnN0YW5jZW9mIERhdGUpIHx8IGRhdGUgPD0gbWF4RGF0ZTtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVtYWlsVmFsaWRhdGlvbk5hbWUgPSAnZW1haWwnO1xuZXhwb3J0IGNvbnN0IGVtYWlsVmFsaWRhdG9yID0gKCk6IEZpZWxkVmFsaWRhdG9yPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIGFueT4gPT4ge1xuICAgIHJldHVybiAoe2ZpZWxkRm9ybUNvbnRyb2x9KSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZmllbGRGb3JtQ29udHJvbCA/IFZhbGlkYXRvcnMuZW1haWwoZmllbGRGb3JtQ29udHJvbCkgOiBudWxsO1xuICAgICAgICByZXR1cm4gZXJyb3IgPT09IG51bGw7XG4gICAgfTtcbn07XG4iXX0=
|