@mediusinc/mng-commons 5.0.0-rc.0-c31d5206 → 5.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/core/README.md +8 -0
- package/core/action/action-data.model.d.ts +3 -0
- package/core/action/action-parameters.model.d.ts +17 -0
- package/core/components/pages/error/error.page.component.d.ts +8 -0
- package/core/components/pages/not-found/not-found.page.component.d.ts +8 -0
- package/core/data-list/data-list-params-helpers.d.ts +82 -0
- package/core/data-providers/base.data-provider.d.ts +32 -0
- package/core/data-providers/lookup.data-provider.d.ts +10 -0
- package/core/descriptors/action.descriptor.d.ts +12 -0
- package/core/descriptors/column.descriptor.d.ts +3 -0
- package/core/descriptors/editor.descriptor.d.ts +11 -0
- package/core/descriptors/enum.descriptor.d.ts +6 -0
- package/core/descriptors/filter.descriptor.d.ts +3 -0
- package/core/descriptors/lookup.descriptor.d.ts +12 -0
- package/core/descriptors/model.descriptor.d.ts +8 -0
- package/core/descriptors/table.descriptor.d.ts +9 -0
- package/core/descriptors/tableview.descriptor.d.ts +11 -0
- package/core/directives/component.directive.d.ts +20 -0
- package/core/directives/dialog-keydown-handler.directive.d.ts +12 -0
- package/core/directives/template.directive.d.ts +12 -0
- package/core/enum/enum-helpers.d.ts +49 -0
- package/core/enum/enum.model.d.ts +8 -0
- package/core/error/error-handler.d.ts +6 -0
- package/core/error/error-helpers.d.ts +114 -0
- package/core/error/error.model.d.ts +47 -0
- package/core/helpers/coercion.d.ts +9 -0
- package/core/helpers/date.d.ts +14 -0
- package/core/helpers/notification.d.ts +2 -0
- package/core/helpers/object.d.ts +27 -0
- package/core/helpers/route.d.ts +35 -0
- package/core/helpers/string.d.ts +7 -0
- package/core/helpers/templates.d.ts +3 -0
- package/core/helpers/type-helpers.d.ts +16 -0
- package/core/i18n/i18n-common.d.ts +6 -0
- package/core/i18n/i18n-error.d.ts +4 -0
- package/core/i18n/i18n-type.d.ts +20 -0
- package/core/index.d.ts +83 -0
- package/core/log/log-publisher-console.service.d.ts +4 -0
- package/core/log/log.model.d.ts +40 -0
- package/core/log/logger.service.d.ts +33 -0
- package/core/models/class-service.model.d.ts +7 -0
- package/core/models/getter.model.d.ts +2 -0
- package/core/models/i18n.model.d.ts +1 -0
- package/core/models/menu.model.d.ts +32 -0
- package/core/models/user.model.d.ts +8 -0
- package/core/pipes/boolean.pipe.d.ts +7 -0
- package/core/pipes/class-map.pipe.d.ts +7 -0
- package/core/pipes/enum.pipe.d.ts +8 -0
- package/core/pipes/enumerate-async.pipe.d.ts +9 -0
- package/core/pipes/enumerate.pipe.d.ts +16 -0
- package/core/pipes/getter.pipe.d.ts +8 -0
- package/core/pipes/i18n-property.pipe.d.ts +8 -0
- package/core/pipes/json-path.pipe.d.ts +13 -0
- package/core/pipes/parametrize.pipe.d.ts +12 -0
- package/core/pipes/template.pipe.d.ts +8 -0
- package/core/provide.d.ts +12 -0
- package/core/reflect/type-enum-metadata.d.ts +32 -0
- package/core/registry/registry.model.d.ts +8 -0
- package/core/registry/type-registry.d.ts +27 -0
- package/core/router/route-builder.d.ts +65 -0
- package/core/router/router.model.d.ts +13 -0
- package/core/router/routes-builder.d.ts +18 -0
- package/core/rxjs/map-data-list-result-operator.d.ts +9 -0
- package/core/security/permission-helpers.d.ts +3 -0
- package/core/security/permission.guard.d.ts +2 -0
- package/core/security/permission.service.d.ts +16 -0
- package/core/security/permissions.model.d.ts +55 -0
- package/core/services/commons-configuration.service.d.ts +69 -0
- package/core/services/commons-init.service.d.ts +30 -0
- package/core/services/commons-router.service.d.ts +37 -0
- package/core/services/commons.service.d.ts +66 -0
- package/core/services/local-storage-config.service.d.ts +11 -0
- package/core/services/providers/commons-init.provider.d.ts +4 -0
- package/core/services/tokens/browser-storage.token.d.ts +2 -0
- package/core/services/tokens/commons-init.token.d.ts +3 -0
- package/core/services/tokens/log-publisher.token.d.ts +3 -0
- package/core/services/tokens/module-config.token.d.ts +34 -0
- package/core/styles/style-constants.d.ts +10 -0
- package/core/styles/style.model.d.ts +17 -0
- package/dev-scripts/version-info.js +1 -1
- package/esm2022/core/action/action-data.model.mjs +2 -0
- package/esm2022/core/action/action-parameters.model.mjs +2 -0
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +50 -0
- package/esm2022/core/components/pages/error/error.page.component.mjs +21 -0
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +21 -0
- package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
- package/esm2022/core/data-list/data-list.model.mjs +2 -0
- package/esm2022/core/data-list/filter-match.model.mjs +105 -0
- package/esm2022/core/data-providers/base.data-provider.mjs +48 -0
- package/esm2022/core/data-providers/lookup.data-provider.mjs +2 -0
- package/esm2022/core/descriptors/action.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/column.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/editor.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/filter.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/lookup.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/model.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/table.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/tableview.descriptor.mjs +2 -0
- package/esm2022/core/directives/component.directive.mjs +72 -0
- package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +49 -0
- package/esm2022/core/directives/template.directive.mjs +29 -0
- package/esm2022/core/enum/enum-helpers.mjs +81 -0
- package/esm2022/core/enum/enum.model.mjs +2 -0
- package/esm2022/core/error/error-handler.mjs +20 -0
- package/esm2022/core/error/error-helpers.mjs +247 -0
- package/esm2022/core/error/error.model.mjs +32 -0
- package/esm2022/core/helpers/coercion.mjs +52 -0
- package/esm2022/core/helpers/date.mjs +119 -0
- package/esm2022/core/helpers/notification.mjs +6 -0
- package/esm2022/core/helpers/object.mjs +145 -0
- package/esm2022/core/helpers/route.mjs +58 -0
- package/esm2022/core/helpers/string.mjs +57 -0
- package/esm2022/core/helpers/templates.mjs +4 -0
- package/esm2022/core/helpers/type-helpers.mjs +2 -0
- package/esm2022/core/i18n/i18n-common.mjs +24 -0
- package/esm2022/core/i18n/i18n-error.mjs +27 -0
- package/esm2022/core/i18n/i18n-type.mjs +79 -0
- package/esm2022/core/index.mjs +105 -0
- package/esm2022/core/log/log-publisher-console.service.mjs +40 -0
- package/esm2022/core/log/log.model.mjs +10 -0
- package/esm2022/core/log/logger.service.mjs +131 -0
- package/esm2022/core/mediusinc-mng-commons-core.mjs +5 -0
- package/esm2022/core/models/class-attribute.model.mjs +2 -0
- package/esm2022/core/models/class-service.model.mjs +2 -0
- package/esm2022/core/models/getter.model.mjs +2 -0
- package/esm2022/core/models/i18n.model.mjs +2 -0
- package/esm2022/core/models/menu.model.mjs +2 -0
- package/esm2022/core/models/user.model.mjs +2 -0
- package/esm2022/core/models/version.model.mjs +2 -0
- package/esm2022/core/pipes/boolean.pipe.mjs +28 -0
- package/esm2022/core/pipes/class-map.pipe.mjs +23 -0
- package/esm2022/core/pipes/enum.pipe.mjs +27 -0
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +36 -0
- package/esm2022/core/pipes/enumerate.pipe.mjs +49 -0
- package/esm2022/core/pipes/getter.pipe.mjs +21 -0
- package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
- package/esm2022/core/pipes/json-path.pipe.mjs +25 -0
- package/esm2022/core/pipes/parametrize.pipe.mjs +86 -0
- package/esm2022/core/pipes/template.pipe.mjs +25 -0
- package/esm2022/core/provide.mjs +78 -0
- package/esm2022/core/reflect/type-enum-decorator.mjs +12 -0
- package/esm2022/core/reflect/type-enum-metadata.mjs +62 -0
- package/esm2022/core/registry/registry.model.mjs +2 -0
- package/esm2022/core/registry/type-registry.mjs +106 -0
- package/esm2022/core/router/route-builder.mjs +320 -0
- package/esm2022/core/router/router.model.mjs +2 -0
- package/esm2022/core/router/routes-builder.mjs +54 -0
- package/esm2022/core/rxjs/map-data-list-result-operator.mjs +19 -0
- package/esm2022/core/security/permission-helpers.mjs +14 -0
- package/esm2022/core/security/permission.guard.mjs +15 -0
- package/esm2022/core/security/permission.service.mjs +49 -0
- package/esm2022/core/security/permissions.model.mjs +93 -0
- package/esm2022/core/services/commons-configuration.service.mjs +174 -0
- package/esm2022/core/services/commons-init.service.mjs +111 -0
- package/esm2022/core/services/commons-router.service.mjs +180 -0
- package/esm2022/core/services/commons.service.mjs +390 -0
- package/esm2022/core/services/local-storage-config.service.mjs +29 -0
- package/esm2022/core/services/providers/commons-init.provider.mjs +4 -0
- package/esm2022/core/services/tokens/browser-storage.token.mjs +3 -0
- package/esm2022/core/services/tokens/commons-init.token.mjs +3 -0
- package/esm2022/core/services/tokens/log-publisher.token.mjs +3 -0
- package/esm2022/core/services/tokens/module-config.token.mjs +3 -0
- package/esm2022/core/styles/style-constants.mjs +11 -0
- package/esm2022/core/styles/style.model.mjs +20 -0
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +185 -0
- package/esm2022/filter/descriptors/filter.descriptor.mjs +197 -0
- package/esm2022/filter/index.mjs +6 -0
- package/esm2022/filter/mediusinc-mng-commons-filter.mjs +5 -0
- package/esm2022/filter/models/filter.model.mjs +15 -0
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +45 -0
- package/esm2022/form/api/descriptors/action-button.descriptor.mjs +68 -0
- package/esm2022/form/api/descriptors/button-style.builder.mjs +174 -0
- package/esm2022/form/api/index.mjs +8 -0
- package/esm2022/form/api/mediusinc-mng-commons-form-api.mjs +5 -0
- package/esm2022/form/api/models/trim.model.mjs +2 -0
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +404 -0
- package/esm2022/form/components/date-range/date-range.component.mjs +110 -0
- package/esm2022/form/components/dropdown/dropdown.component.mjs +213 -0
- package/esm2022/form/directives/input-trim.directive.mjs +55 -0
- package/esm2022/form/index.mjs +7 -0
- package/esm2022/form/mediusinc-mng-commons-form.mjs +5 -0
- package/esm2022/index.mjs +2 -74
- package/esm2022/model/descriptors/enum.descriptor.mjs +31 -0
- package/esm2022/model/descriptors/model.descriptor.mjs +78 -0
- package/esm2022/model/descriptors/type.descriptor.mjs +21 -0
- package/esm2022/model/helpers/i18n.mjs +45 -0
- package/esm2022/model/helpers/model.mjs +71 -0
- package/esm2022/model/index.mjs +8 -0
- package/esm2022/model/mediusinc-mng-commons-model.mjs +5 -0
- package/esm2022/provide.mjs +6 -0
- package/esm2022/table/api/data-providers/table.data-provider.mjs +63 -0
- package/esm2022/table/api/descriptors/column.descriptor.mjs +359 -0
- package/esm2022/table/api/descriptors/sort.descriptor.mjs +45 -0
- package/esm2022/table/api/descriptors/table.descriptor.mjs +778 -0
- package/esm2022/table/api/helpers/class-attribute-converter.mjs +104 -0
- package/esm2022/table/api/index.mjs +16 -0
- package/esm2022/table/api/mediusinc-mng-commons-table-api.mjs +5 -0
- package/esm2022/table/api/models/class-table-attribute.model.mjs +2 -0
- package/esm2022/table/api/models/column-value.model.mjs +2 -0
- package/esm2022/table/api/models/column.model.mjs +21 -0
- package/esm2022/table/api/models/table-columns.model.mjs +2 -0
- package/esm2022/table/api/models/table-event.model.mjs +2 -0
- package/esm2022/table/api/models/table.model.mjs +22 -0
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +594 -0
- package/esm2022/table/components/column-value/column-value.component.mjs +86 -0
- package/esm2022/table/components/table/table.component.mjs +630 -0
- package/esm2022/table/helpers/notification.mjs +15 -0
- package/esm2022/table/helpers/table-layout-prefs.mjs +10 -0
- package/esm2022/table/index.mjs +13 -0
- package/esm2022/table/mediusinc-mng-commons-table.mjs +5 -0
- package/esm2022/table/models/column-preferences.model.mjs +2 -0
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +27 -0
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +25 -0
- package/esm2022/table/services/data-list.service.mjs +23 -0
- package/esm2022/tableview/action/components/action/action.component.mjs +323 -0
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +97 -0
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +398 -0
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +53 -0
- package/esm2022/tableview/action/components/route/action-route.component.mjs +152 -0
- package/esm2022/tableview/action/components/table/action-table.component.mjs +146 -0
- package/esm2022/tableview/action/guards/unsaved-changes.guard.mjs +4 -0
- package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
- package/esm2022/tableview/action/helpers/notification.mjs +17 -0
- package/esm2022/tableview/action/helpers/styles.mjs +32 -0
- package/esm2022/tableview/action/models/action-editor-dialog-data.model.mjs +2 -0
- package/esm2022/tableview/action/models/can-component-deactivate.model.mjs +2 -0
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +56 -0
- package/esm2022/tableview/action/models/execution/action-instance-state.model.mjs +32 -0
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +170 -0
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +20 -0
- package/esm2022/tableview/action/services/action-executor.service.mjs +767 -0
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +19 -0
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +26 -0
- package/esm2022/tableview/action/services/navigation.service.mjs +52 -0
- package/esm2022/tableview/action/services/providers/provide-action-executor.mjs +9 -0
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +17 -0
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +18 -0
- package/esm2022/tableview/action/services/tokens/action-editor.token.mjs +3 -0
- package/esm2022/tableview/action/services/view-container.service.mjs +56 -0
- package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +76 -0
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +264 -0
- package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +89 -0
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +385 -0
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +80 -0
- package/esm2022/tableview/api/action/models/action-component.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +2 -0
- package/esm2022/tableview/api/action/models/action-editor.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/action-error.model.mjs +14 -0
- package/esm2022/tableview/api/action/models/action.type.mjs +26 -0
- package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/execution/action-execution-error.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/execution/action-instance-state.model.mjs +32 -0
- package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +2 -0
- package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +11 -0
- package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +28 -0
- package/esm2022/tableview/api/action/services/tokens/data-language-dropdown.token.mjs +3 -0
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +104 -0
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +626 -0
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +49 -0
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +288 -0
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +97 -0
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +213 -0
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +153 -0
- package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +25 -0
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +343 -0
- package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +85 -0
- package/esm2022/tableview/api/editor/helpers/field-validators.mjs +33 -0
- package/esm2022/tableview/api/editor/models/class-tableview-attribute.model.mjs +2 -0
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +2 -0
- package/esm2022/tableview/api/editor/models/editor.model.mjs +9 -0
- package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +2 -0
- package/esm2022/tableview/api/editor/models/field.model.mjs +56 -0
- package/esm2022/tableview/api/editor/models/form-editor.event.mjs +27 -0
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +2 -0
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +69 -0
- package/esm2022/tableview/api/editor/models/formly-field.model.mjs +2 -0
- package/esm2022/tableview/api/editor/models/radio.model.mjs +2 -0
- package/esm2022/tableview/api/index.mjs +64 -0
- package/esm2022/tableview/api/mediusinc-mng-commons-tableview-api.mjs +5 -0
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +105 -0
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +672 -0
- package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +34 -0
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +34 -0
- package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +24 -0
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +240 -0
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +162 -0
- package/esm2022/tableview/api/tableview/models/class-tableview-attribute.model.mjs +2 -0
- package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +2 -0
- package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +2 -0
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +285 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +61 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +54 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +39 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +49 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +27 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +220 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +24 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +215 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +217 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +196 -0
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +18 -0
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +33 -0
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +30 -0
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +335 -0
- package/esm2022/tableview/editor/helpers/formly-config.mjs +260 -0
- package/esm2022/tableview/editor/helpers/notification.mjs +11 -0
- package/esm2022/tableview/editor/models/formly-config.model.mjs +2 -0
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +31 -0
- package/esm2022/tableview/index.mjs +62 -0
- package/esm2022/tableview/mediusinc-mng-commons-tableview.mjs +5 -0
- package/esm2022/tableview/provide.mjs +62 -0
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +15 -0
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +75 -0
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +201 -0
- package/esm2022/tableview/tableview/services/tableview-feature-config.token.mjs +3 -0
- package/fesm2022/mediusinc-mng-commons-core.mjs +3882 -0
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-filter.mjs +402 -0
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +294 -0
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-form.mjs +770 -0
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-model.mjs +251 -0
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +1391 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1376 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +4372 -0
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +4691 -0
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons.mjs +5 -18605
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/filter/README.md +9 -0
- package/filter/descriptors/filter-lookup.descriptor.d.ts +67 -0
- package/filter/descriptors/filter.descriptor.d.ts +67 -0
- package/filter/index.d.ts +3 -0
- package/form/README.md +8 -0
- package/form/api/README.md +7 -0
- package/form/api/data-providers/lookup.data-provider.d.ts +19 -0
- package/form/api/descriptors/action-button.descriptor.d.ts +25 -0
- package/form/api/descriptors/button-style.builder.d.ts +68 -0
- package/form/api/index.d.ts +4 -0
- package/form/components/autocomplete/autocomplete.component.d.ts +82 -0
- package/form/components/date-range/date-range.component.d.ts +28 -0
- package/form/components/dropdown/dropdown.component.d.ts +55 -0
- package/form/directives/input-trim.directive.d.ts +14 -0
- package/form/index.d.ts +4 -0
- package/index.d.ts +1 -50
- package/model/README.md +7 -0
- package/model/descriptors/enum.descriptor.d.ts +14 -0
- package/model/descriptors/model.descriptor.d.ts +31 -0
- package/model/descriptors/type.descriptor.d.ts +10 -0
- package/model/helpers/i18n.d.ts +10 -0
- package/model/helpers/model.d.ts +5 -0
- package/model/index.d.ts +5 -0
- package/package.json +61 -25
- package/provide.d.ts +7 -0
- package/table/README.md +11 -0
- package/table/api/README.md +9 -0
- package/table/api/data-providers/table.data-provider.d.ts +38 -0
- package/table/api/descriptors/column.descriptor.d.ts +148 -0
- package/table/api/descriptors/table.descriptor.d.ts +281 -0
- package/table/api/helpers/class-attribute-converter.d.ts +22 -0
- package/table/api/index.d.ts +11 -0
- package/table/api/models/class-table-attribute.model.d.ts +8 -0
- package/table/api/models/column-value.model.d.ts +7 -0
- package/table/api/models/table-columns.model.d.ts +42 -0
- package/table/api/models/table-event.model.d.ts +17 -0
- package/table/api/models/table.model.d.ts +35 -0
- package/table/components/column-filter-full/column-filter-full.component.d.ts +100 -0
- package/table/components/column-value/column-value.component.d.ts +32 -0
- package/table/components/table/table.component.d.ts +114 -0
- package/table/helpers/notification.d.ts +4 -0
- package/table/helpers/table-layout-prefs.d.ts +7 -0
- package/table/index.d.ts +8 -0
- package/table/models/column-preferences.model.d.ts +12 -0
- package/table/pipes/locale-default-row-class.pipe.d.ts +10 -0
- package/table/pipes/table-column-filter-class.pipe.d.ts +8 -0
- package/table/services/data-list.service.d.ts +16 -0
- package/tableview/README.md +13 -0
- package/tableview/action/components/action/action.component.d.ts +73 -0
- package/tableview/action/components/editor/action-editor.component.d.ts +31 -0
- package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +76 -0
- package/tableview/action/components/localization/data-language-dropdown.component.d.ts +22 -0
- package/tableview/action/components/route/action-route.component.d.ts +31 -0
- package/tableview/action/components/table/action-table.component.d.ts +48 -0
- package/tableview/action/guards/unsaved-changes.guard.d.ts +3 -0
- package/tableview/action/helpers/i18n.d.ts +22 -0
- package/tableview/action/helpers/notification.d.ts +6 -0
- package/tableview/action/helpers/styles.d.ts +5 -0
- package/tableview/action/models/action-editor-dialog-data.model.d.ts +11 -0
- package/tableview/action/models/execution/action-context.model.d.ts +36 -0
- package/tableview/action/models/execution/action-instance-state.model.d.ts +30 -0
- package/tableview/action/models/execution/action-instance.model.d.ts +56 -0
- package/tableview/action/services/action-error-mapper.service.d.ts +18 -0
- package/tableview/action/services/action-executor.service.d.ts +175 -0
- package/tableview/action/services/component-action-executor.service.d.ts +9 -0
- package/tableview/action/services/data-provider-executor.service.d.ts +23 -0
- package/tableview/action/services/navigation.service.d.ts +15 -0
- package/tableview/action/services/root-action-executor.service.d.ts +9 -0
- package/tableview/action/services/tokens/action-editor.token.d.ts +2 -0
- package/tableview/action/services/view-container.service.d.ts +30 -0
- package/tableview/api/README.md +11 -0
- package/tableview/api/action/descriptors/action-confirmation.descriptor.d.ts +36 -0
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +117 -0
- package/tableview/api/action/descriptors/action-link.descriptor.d.ts +34 -0
- package/tableview/api/action/descriptors/action.descriptor.d.ts +151 -0
- package/tableview/api/action/helpers/data-provider-executors.d.ts +18 -0
- package/tableview/api/action/models/action-component.model.d.ts +12 -0
- package/tableview/api/action/models/action-descriptor.types.d.ts +5 -0
- package/tableview/api/action/models/action-editor.model.d.ts +4 -0
- package/tableview/api/action/models/action-error.model.d.ts +14 -0
- package/tableview/api/action/models/action.type.d.ts +21 -0
- package/tableview/api/action/models/execution/action-context-validation.model.d.ts +11 -0
- package/tableview/api/action/models/execution/action-context.model.d.ts +24 -0
- package/tableview/api/action/models/execution/action-execution-error.model.d.ts +4 -0
- package/tableview/api/action/models/execution/action-instance-state.model.d.ts +30 -0
- package/tableview/api/action/models/execution/action-instance.model.d.ts +31 -0
- package/tableview/api/action/models/execution/view-container.model.d.ts +38 -0
- package/tableview/api/action/services/data-provider-executor.service.d.ts +38 -0
- package/tableview/api/action/services/tokens/data-language-dropdown.token.d.ts +2 -0
- package/tableview/api/editor/data-providers/editor.data-provider.d.ts +87 -0
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +366 -0
- package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +22 -0
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +120 -0
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +41 -0
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +80 -0
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +61 -0
- package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +19 -0
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +168 -0
- package/tableview/api/editor/helpers/class-attribute-converter.d.ts +21 -0
- package/tableview/api/editor/helpers/field-validators.d.ts +3 -0
- package/tableview/api/editor/models/class-tableview-attribute.model.d.ts +7 -0
- package/tableview/api/editor/models/editor-fields.model.d.ts +34 -0
- package/tableview/api/editor/models/editor.model.d.ts +7 -0
- package/tableview/api/editor/models/field-action-context.model.d.ts +24 -0
- package/tableview/api/editor/models/field.model.d.ts +66 -0
- package/tableview/api/editor/models/form-editor.event.d.ts +55 -0
- package/tableview/api/editor/models/formly-custom-field.model.d.ts +27 -0
- package/tableview/api/editor/models/formly-field.model.d.ts +18 -0
- package/tableview/api/index.d.ts +50 -0
- package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +43 -0
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +296 -0
- package/tableview/api/tableview/helpers/class-attribute-converter.d.ts +8 -0
- package/tableview/api/tableview/helpers/files-export.d.ts +4 -0
- package/tableview/api/tableview/helpers/tableview-create.d.ts +16 -0
- package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +38 -0
- package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +114 -0
- package/tableview/api/tableview/models/class-tableview-attribute.model.d.ts +3 -0
- package/tableview/api/tableview/models/tableview-input.model.d.ts +8 -0
- package/tableview/api/tableview/models/tableview-route.model.d.ts +20 -0
- package/tableview/editor/components/editor/form-editor.component.d.ts +50 -0
- package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +14 -0
- package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +15 -0
- package/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.d.ts +11 -0
- package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -0
- package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +12 -0
- package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +37 -0
- package/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.d.ts +11 -0
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +43 -0
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +23 -0
- package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +41 -0
- package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +7 -0
- package/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +11 -0
- package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +9 -0
- package/tableview/editor/helpers/editor-formly.d.ts +10 -0
- package/tableview/editor/helpers/formly-config.d.ts +18 -0
- package/tableview/editor/helpers/notification.d.ts +4 -0
- package/tableview/editor/models/formly-config.model.d.ts +5 -0
- package/tableview/editor/services/formly-config.provider.d.ts +5 -0
- package/tableview/index.d.ts +48 -0
- package/tableview/provide.d.ts +8 -0
- package/tableview/tableview/components/route/tableview-route.component.d.ts +7 -0
- package/tableview/tableview/components/tableview/tableview.component.d.ts +26 -0
- package/tableview/tableview/router/tableview-route-builder.d.ts +42 -0
- package/tableview/tableview/services/tableview-feature-config.token.d.ts +18 -0
- package/assets/fonts/poppins-v20-latin-500.woff +0 -0
- package/assets/fonts/poppins-v20-latin-500.woff2 +0 -0
- package/assets/fonts/poppins-v20-latin-600.woff +0 -0
- package/assets/fonts/poppins-v20-latin-600.woff2 +0 -0
- package/assets/fonts/poppins-v20-latin-700.woff +0 -0
- package/assets/fonts/poppins-v20-latin-700.woff2 +0 -0
- package/assets/fonts/poppins-v20-latin-regular.woff +0 -0
- package/assets/fonts/poppins-v20-latin-regular.woff2 +0 -0
- package/assets/images/effect-ondark.png +0 -0
- package/assets/images/effect-ondark.svg +0 -38
- package/assets/images/effect-ondark@2x.png +0 -0
- package/assets/images/effect-onlight.png +0 -0
- package/assets/images/effect-onlight.svg +0 -38
- package/assets/images/effect-onlight@2x.png +0 -0
- package/assets/images/pages/exception-ondark.png +0 -0
- package/assets/images/pages/exception-onlight.png +0 -0
- package/assets/images/pages/login-ondark.png +0 -0
- package/assets/images/pages/login-onlight.png +0 -0
- package/data-api/README.md +0 -3
- package/data-api/class-dto/README.md +0 -3
- package/data-api/class-dto/helpers/tableview-crud-create.d.ts +0 -40
- package/data-api/class-dto/index.d.ts +0 -7
- package/data-api/class-dto/models/query-result.model.d.ts +0 -13
- package/data-api/class-dto/obsolete/README.md +0 -3
- package/data-api/class-dto/obsolete/helpers/query-param-convert.d.ts +0 -23
- package/data-api/class-dto/obsolete/helpers/tableview-crud-create.d.ts +0 -22
- package/data-api/class-dto/obsolete/index.d.ts +0 -14
- package/data-api/class-dto/obsolete/models/builders/query-param.builder.d.ts +0 -36
- package/data-api/class-dto/obsolete/models/filter-match-type.model.d.ts +0 -25
- package/data-api/class-dto/obsolete/models/filter-param.model.d.ts +0 -23
- package/data-api/class-dto/obsolete/models/query-mode.model.d.ts +0 -16
- package/data-api/class-dto/obsolete/models/query-param.model.d.ts +0 -31
- package/data-api/class-dto/obsolete/models/query-result.model.d.ts +0 -24
- package/data-api/class-dto/obsolete/provide.d.ts +0 -9
- package/data-api/class-dto/obsolete/services/api.abstract.service.d.ts +0 -36
- package/data-api/class-dto/obsolete/services/crud-api.abstract.service.d.ts +0 -37
- package/data-api/class-dto/obsolete/services/get-all-api.abstract.service.d.ts +0 -30
- package/data-api/class-dto/obsolete/tableview/tableview-crud.data-provider.d.ts +0 -28
- package/data-api/class-dto/obsolete/utils/query-param-map.util.d.ts +0 -22
- package/data-api/class-dto/serder/object-serializer.d.ts +0 -26
- package/data-api/class-dto/services/api.abstract.service.d.ts +0 -22
- package/data-api/class-dto/services/crud-api.abstract.service.d.ts +0 -25
- package/data-api/class-dto/services/get-all-api.abstract.service.d.ts +0 -14
- package/data-api/class-dto/tableview/tableview-crud.data-provider.d.ts +0 -17
- package/data-api/helpers/get-all-params.d.ts +0 -69
- package/data-api/helpers/tableview-get-all-params-create.d.ts +0 -14
- package/data-api/index.d.ts +0 -5
- package/data-api/models/request-params.model.d.ts +0 -61
- package/data-api/rxjs/map-to-data-list.operator.d.ts +0 -9
- package/data-api/types/extract-get-all-params.type.d.ts +0 -14
- package/esm2022/data-api/class-dto/helpers/tableview-crud-create.mjs +0 -40
- package/esm2022/data-api/class-dto/index.mjs +0 -13
- package/esm2022/data-api/class-dto/mediusinc-mng-commons-data-api-class-dto.mjs +0 -5
- package/esm2022/data-api/class-dto/models/query-result.model.mjs +0 -24
- package/esm2022/data-api/class-dto/obsolete/helpers/query-param-convert.mjs +0 -103
- package/esm2022/data-api/class-dto/obsolete/helpers/tableview-crud-create.mjs +0 -21
- package/esm2022/data-api/class-dto/obsolete/index.mjs +0 -21
- package/esm2022/data-api/class-dto/obsolete/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs +0 -5
- package/esm2022/data-api/class-dto/obsolete/models/builders/query-param.builder.mjs +0 -83
- package/esm2022/data-api/class-dto/obsolete/models/filter-match-type.model.mjs +0 -27
- package/esm2022/data-api/class-dto/obsolete/models/filter-param.model.mjs +0 -33
- package/esm2022/data-api/class-dto/obsolete/models/query-mode.model.mjs +0 -18
- package/esm2022/data-api/class-dto/obsolete/models/query-param.model.mjs +0 -68
- package/esm2022/data-api/class-dto/obsolete/models/query-result.model.mjs +0 -24
- package/esm2022/data-api/class-dto/obsolete/provide.mjs +0 -40
- package/esm2022/data-api/class-dto/obsolete/services/api.abstract.service.mjs +0 -70
- package/esm2022/data-api/class-dto/obsolete/services/crud-api.abstract.service.mjs +0 -83
- package/esm2022/data-api/class-dto/obsolete/services/get-all-api.abstract.service.mjs +0 -38
- package/esm2022/data-api/class-dto/obsolete/tableview/tableview-crud.data-provider.mjs +0 -51
- package/esm2022/data-api/class-dto/obsolete/utils/query-param-map.util.mjs +0 -57
- package/esm2022/data-api/class-dto/serder/object-serializer.mjs +0 -184
- package/esm2022/data-api/class-dto/services/api.abstract.service.mjs +0 -55
- package/esm2022/data-api/class-dto/services/crud-api.abstract.service.mjs +0 -82
- package/esm2022/data-api/class-dto/services/get-all-api.abstract.service.mjs +0 -49
- package/esm2022/data-api/class-dto/tableview/tableview-crud.data-provider.mjs +0 -49
- package/esm2022/data-api/helpers/get-all-params.mjs +0 -180
- package/esm2022/data-api/helpers/tableview-get-all-params-create.mjs +0 -18
- package/esm2022/data-api/index.mjs +0 -10
- package/esm2022/data-api/mediusinc-mng-commons-data-api.mjs +0 -5
- package/esm2022/data-api/models/request-params.model.mjs +0 -2
- package/esm2022/data-api/rxjs/map-to-data-list.operator.mjs +0 -19
- package/esm2022/data-api/types/extract-get-all-params.type.mjs +0 -2
- package/esm2022/lib/components/action/action.component.mjs +0 -314
- package/esm2022/lib/components/action/editor/action-editor.component.mjs +0 -98
- package/esm2022/lib/components/action/editor/injector-context/action-editor-injector-context.component.mjs +0 -394
- package/esm2022/lib/components/action/index.mjs +0 -6
- package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +0 -53
- package/esm2022/lib/components/action/models/action-component.model.mjs +0 -2
- package/esm2022/lib/components/action/models/action-execution.model.mjs +0 -323
- package/esm2022/lib/components/action/models/index.mjs +0 -4
- package/esm2022/lib/components/action/models/tableview-action-default-categories.model.mjs +0 -11
- package/esm2022/lib/components/action/route/action-route.component.mjs +0 -141
- package/esm2022/lib/components/action/table/action-table.component.mjs +0 -152
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +0 -408
- package/esm2022/lib/components/form/date-range/date-range.component.mjs +0 -110
- package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +0 -210
- package/esm2022/lib/components/form/editor/form-editor.component.mjs +0 -281
- package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +0 -61
- package/esm2022/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -54
- package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +0 -69
- package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +0 -39
- package/esm2022/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -49
- package/esm2022/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -27
- package/esm2022/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -220
- package/esm2022/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +0 -24
- package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +0 -219
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -221
- package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -212
- package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -18
- package/esm2022/lib/components/form/formly/fields/index.mjs +0 -13
- package/esm2022/lib/components/form/formly/formly.config.mjs +0 -250
- package/esm2022/lib/components/form/formly/index.mjs +0 -2
- package/esm2022/lib/components/form/formly/models/formly-config.model.mjs +0 -2
- package/esm2022/lib/components/form/formly/models/formly-field.model.mjs +0 -2
- package/esm2022/lib/components/form/formly/models/index.mjs +0 -3
- package/esm2022/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +0 -33
- package/esm2022/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -31
- package/esm2022/lib/components/form/formly/wrappers/index.mjs +0 -3
- package/esm2022/lib/components/form/index.mjs +0 -5
- package/esm2022/lib/components/form/models/field-action-context.model.mjs +0 -2
- package/esm2022/lib/components/form/models/form-editor.event.mjs +0 -49
- package/esm2022/lib/components/form/models/form-editor.interface.mjs +0 -2
- package/esm2022/lib/components/form/models/index.mjs +0 -4
- package/esm2022/lib/components/layout/breadcrumb.component.mjs +0 -34
- package/esm2022/lib/components/layout/footer.component.mjs +0 -19
- package/esm2022/lib/components/layout/index.mjs +0 -9
- package/esm2022/lib/components/layout/main-layout.component.mjs +0 -53
- package/esm2022/lib/components/layout/menu-item.component.mjs +0 -296
- package/esm2022/lib/components/layout/menu.component.mjs +0 -34
- package/esm2022/lib/components/layout/services/index.mjs +0 -2
- package/esm2022/lib/components/layout/services/main-layout.component.service.mjs +0 -196
- package/esm2022/lib/components/layout/topbar-user.component.mjs +0 -46
- package/esm2022/lib/components/layout/topbar.component.mjs +0 -66
- package/esm2022/lib/components/layout/version.component.mjs +0 -60
- package/esm2022/lib/components/layoutV2/breadcrumb.component.mjs +0 -30
- package/esm2022/lib/components/layoutV2/footer.component.mjs +0 -29
- package/esm2022/lib/components/layoutV2/index.mjs +0 -8
- package/esm2022/lib/components/layoutV2/main-layout.component.mjs +0 -95
- package/esm2022/lib/components/layoutV2/menu-item.component.mjs +0 -275
- package/esm2022/lib/components/layoutV2/menu.component.mjs +0 -39
- package/esm2022/lib/components/layoutV2/model/index.mjs +0 -3
- package/esm2022/lib/components/layoutV2/model/layout-state.model.mjs +0 -2
- package/esm2022/lib/components/layoutV2/model/menu.model.mjs +0 -2
- package/esm2022/lib/components/layoutV2/services/index.mjs +0 -3
- package/esm2022/lib/components/layoutV2/services/main-layout.component.service.mjs +0 -71
- package/esm2022/lib/components/layoutV2/services/menu.service.mjs +0 -122
- package/esm2022/lib/components/layoutV2/sidebar.component.mjs +0 -62
- package/esm2022/lib/components/layoutV2/topbar-user.component.mjs +0 -40
- package/esm2022/lib/components/layoutV2/topbar.component.mjs +0 -69
- package/esm2022/lib/components/layoutV2/version.component.mjs +0 -63
- package/esm2022/lib/components/notification/notification-wrapper.component.mjs +0 -50
- package/esm2022/lib/components/pages/error/error.page.component.mjs +0 -21
- package/esm2022/lib/components/pages/index.mjs +0 -3
- package/esm2022/lib/components/pages/not-found/not-found.page.component.mjs +0 -21
- package/esm2022/lib/components/table/column-filter-full/column-filter-full.component.mjs +0 -597
- package/esm2022/lib/components/table/column-value/column-value.component.mjs +0 -90
- package/esm2022/lib/components/table/models/table.event.mjs +0 -16
- package/esm2022/lib/components/table/models/table.interface.mjs +0 -2
- package/esm2022/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.mjs +0 -25
- package/esm2022/lib/components/table/table.component.mjs +0 -643
- package/esm2022/lib/components/tableview/actions/tableview-default-actions.mjs +0 -215
- package/esm2022/lib/components/tableview/builders/tableview-builder.mjs +0 -162
- package/esm2022/lib/components/tableview/helpers/tableview-create.mjs +0 -24
- package/esm2022/lib/components/tableview/index.mjs +0 -7
- package/esm2022/lib/components/tableview/models/tableview.model.mjs +0 -2
- package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +0 -15
- package/esm2022/lib/components/tableview/tableview.component.mjs +0 -82
- package/esm2022/lib/data-providers/base.data-provider.mjs +0 -48
- package/esm2022/lib/data-providers/editor.data-provider.mjs +0 -105
- package/esm2022/lib/data-providers/index.mjs +0 -6
- package/esm2022/lib/data-providers/lookup.data-provider.mjs +0 -45
- package/esm2022/lib/data-providers/table.data-provider.mjs +0 -64
- package/esm2022/lib/data-providers/tableview.data-provider.mjs +0 -105
- package/esm2022/lib/descriptors/action/action-button.descriptor.mjs +0 -68
- package/esm2022/lib/descriptors/action/action-confirmation.descriptor.mjs +0 -77
- package/esm2022/lib/descriptors/action/action-editor.descriptor.mjs +0 -266
- package/esm2022/lib/descriptors/action/action-link.descriptor.mjs +0 -89
- package/esm2022/lib/descriptors/action/action.descriptor.mjs +0 -383
- package/esm2022/lib/descriptors/action/index.mjs +0 -6
- package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +0 -510
- package/esm2022/lib/descriptors/editor/field-action.descriptor.mjs +0 -50
- package/esm2022/lib/descriptors/editor/field-base.descriptor.mjs +0 -285
- package/esm2022/lib/descriptors/editor/field-group.descriptor.mjs +0 -97
- package/esm2022/lib/descriptors/editor/field-lookup.descriptor.mjs +0 -212
- package/esm2022/lib/descriptors/editor/field-many.descriptor.mjs +0 -153
- package/esm2022/lib/descriptors/editor/field-validation.descriptor.mjs +0 -25
- package/esm2022/lib/descriptors/editor/field.descriptor.mjs +0 -343
- package/esm2022/lib/descriptors/editor/index.mjs +0 -9
- package/esm2022/lib/descriptors/editor/internal/editor-fields.model.mjs +0 -2
- package/esm2022/lib/descriptors/editor/internal/editor.model.mjs +0 -2
- package/esm2022/lib/descriptors/filter/filter-lookup.descriptor.mjs +0 -186
- package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +0 -198
- package/esm2022/lib/descriptors/filter/index.mjs +0 -3
- package/esm2022/lib/descriptors/interfaces/field-config.interface.mjs +0 -2
- package/esm2022/lib/descriptors/interfaces/index.mjs +0 -3
- package/esm2022/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +0 -2
- package/esm2022/lib/descriptors/model/enum.descriptor.mjs +0 -31
- package/esm2022/lib/descriptors/model/index.mjs +0 -4
- package/esm2022/lib/descriptors/model/model.descriptor.mjs +0 -79
- package/esm2022/lib/descriptors/model/type.descriptor.mjs +0 -11
- package/esm2022/lib/descriptors/table/column.descriptor.mjs +0 -359
- package/esm2022/lib/descriptors/table/index.mjs +0 -4
- package/esm2022/lib/descriptors/table/internal/table-columns.model.mjs +0 -2
- package/esm2022/lib/descriptors/table/internal/table.model.mjs +0 -2
- package/esm2022/lib/descriptors/table/sort.descriptor.mjs +0 -45
- package/esm2022/lib/descriptors/table/table.descriptor.mjs +0 -751
- package/esm2022/lib/descriptors/tableview/index.mjs +0 -2
- package/esm2022/lib/descriptors/tableview/internal/tableview.model.mjs +0 -2
- package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +0 -558
- package/esm2022/lib/descriptors/types/action.type.mjs +0 -26
- package/esm2022/lib/descriptors/types/column.type.mjs +0 -21
- package/esm2022/lib/descriptors/types/editor.type.mjs +0 -8
- package/esm2022/lib/descriptors/types/field.type.mjs +0 -56
- package/esm2022/lib/descriptors/types/filter.type.mjs +0 -15
- package/esm2022/lib/descriptors/types/index.mjs +0 -8
- package/esm2022/lib/descriptors/types/table.type.mjs +0 -22
- package/esm2022/lib/descriptors/types/trim.type.mjs +0 -2
- package/esm2022/lib/directives/component.directive.mjs +0 -66
- package/esm2022/lib/directives/dialog-keydown-handler.directive.mjs +0 -49
- package/esm2022/lib/directives/index.mjs +0 -5
- package/esm2022/lib/directives/input-trim.directive.mjs +0 -55
- package/esm2022/lib/directives/template.directive.mjs +0 -29
- package/esm2022/lib/error/error.handler.mjs +0 -20
- package/esm2022/lib/error/index.mjs +0 -2
- package/esm2022/lib/guards/index.mjs +0 -2
- package/esm2022/lib/guards/unsaved-changes.guard.mjs +0 -4
- package/esm2022/lib/helpers/coercion.mjs +0 -52
- package/esm2022/lib/helpers/data-provider-executors.mjs +0 -80
- package/esm2022/lib/models/action-editor.model.mjs +0 -2
- package/esm2022/lib/models/can-component-deactivate.model.mjs +0 -2
- package/esm2022/lib/models/class.model.mjs +0 -2
- package/esm2022/lib/models/column-value.model.mjs +0 -2
- package/esm2022/lib/models/common-init-event-enum.model.mjs +0 -11
- package/esm2022/lib/models/config.model.mjs +0 -2
- package/esm2022/lib/models/data-list.model.mjs +0 -2
- package/esm2022/lib/models/enum.model.mjs +0 -2
- package/esm2022/lib/models/error.model.mjs +0 -44
- package/esm2022/lib/models/filter-match.model.mjs +0 -105
- package/esm2022/lib/models/index.mjs +0 -20
- package/esm2022/lib/models/layout-config.model.mjs +0 -2
- package/esm2022/lib/models/log.model.mjs +0 -10
- package/esm2022/lib/models/menu.model.mjs +0 -2
- package/esm2022/lib/models/radio.model.mjs +0 -2
- package/esm2022/lib/models/tableview-attr.model.mjs +0 -2
- package/esm2022/lib/models/type-registry.model.mjs +0 -2
- package/esm2022/lib/models/user.model.mjs +0 -2
- package/esm2022/lib/models/version.model.mjs +0 -2
- package/esm2022/lib/models/view-container.model.mjs +0 -2
- package/esm2022/lib/pipes/boolean.pipe.mjs +0 -28
- package/esm2022/lib/pipes/class-map.pipe.mjs +0 -23
- package/esm2022/lib/pipes/enum.pipe.mjs +0 -26
- package/esm2022/lib/pipes/enumerate-async.pipe.mjs +0 -41
- package/esm2022/lib/pipes/enumerate.pipe.mjs +0 -58
- package/esm2022/lib/pipes/getter.pipe.mjs +0 -21
- package/esm2022/lib/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/lib/pipes/index.mjs +0 -12
- package/esm2022/lib/pipes/json-path.pipe.mjs +0 -25
- package/esm2022/lib/pipes/locale-default-row-class.pipe.mjs +0 -27
- package/esm2022/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +0 -2
- package/esm2022/lib/pipes/models/internal/index.mjs +0 -2
- package/esm2022/lib/pipes/parametrize.pipe.mjs +0 -86
- package/esm2022/lib/pipes/template.pipe.mjs +0 -26
- package/esm2022/lib/provide.mjs +0 -101
- package/esm2022/lib/registry/type.registry.mjs +0 -106
- package/esm2022/lib/router/index.mjs +0 -4
- package/esm2022/lib/router/models/index.mjs +0 -2
- package/esm2022/lib/router/models/router.model.mjs +0 -2
- package/esm2022/lib/router/route-builder.mjs +0 -347
- package/esm2022/lib/router/routes-builder.mjs +0 -69
- package/esm2022/lib/router/tableview-route-builder.mjs +0 -201
- package/esm2022/lib/security/authorization.guard.mjs +0 -15
- package/esm2022/lib/security/authorization.service.mjs +0 -51
- package/esm2022/lib/security/authorization.util.mjs +0 -16
- package/esm2022/lib/security/index.mjs +0 -4
- package/esm2022/lib/security/model/authorization.type.mjs +0 -8
- package/esm2022/lib/security/model/index.mjs +0 -4
- package/esm2022/lib/security/model/permission-service.interface.mjs +0 -2
- package/esm2022/lib/security/model/permissions.model.mjs +0 -87
- package/esm2022/lib/services/action/action-executor.service.mjs +0 -747
- package/esm2022/lib/services/action/component-action-executor.service.mjs +0 -19
- package/esm2022/lib/services/action/index.mjs +0 -5
- package/esm2022/lib/services/action/provide-action-executor.mjs +0 -9
- package/esm2022/lib/services/action/root-action-executor.service.mjs +0 -18
- package/esm2022/lib/services/action-error-mapper.service.mjs +0 -20
- package/esm2022/lib/services/commons-init.service.mjs +0 -100
- package/esm2022/lib/services/commons.service.mjs +0 -459
- package/esm2022/lib/services/configuration.service.mjs +0 -174
- package/esm2022/lib/services/data-provider-executor.service.mjs +0 -52
- package/esm2022/lib/services/index.mjs +0 -12
- package/esm2022/lib/services/internal/commons-init.provider.mjs +0 -4
- package/esm2022/lib/services/internal/index.mjs +0 -2
- package/esm2022/lib/services/log-publisher-console.service.mjs +0 -40
- package/esm2022/lib/services/logger.service.mjs +0 -130
- package/esm2022/lib/services/mng-localstorage-config.service.mjs +0 -30
- package/esm2022/lib/services/navigation.service.mjs +0 -55
- package/esm2022/lib/services/providers/formly-config.provider.mjs +0 -31
- package/esm2022/lib/services/providers/index.mjs +0 -2
- package/esm2022/lib/services/router.service.mjs +0 -183
- package/esm2022/lib/services/tokens/browser-storage.token.mjs +0 -6
- package/esm2022/lib/services/tokens/commons-init.token.mjs +0 -3
- package/esm2022/lib/services/tokens/default-setting.token.mjs +0 -3
- package/esm2022/lib/services/tokens/index.mjs +0 -6
- package/esm2022/lib/services/tokens/log-publisher.token.mjs +0 -3
- package/esm2022/lib/services/tokens/module-config.token.mjs +0 -3
- package/esm2022/lib/services/version.service.mjs +0 -49
- package/esm2022/lib/services/view/index.mjs +0 -3
- package/esm2022/lib/services/view/provide-view-container.mjs +0 -17
- package/esm2022/lib/services/view/view-container.service.mjs +0 -59
- package/esm2022/lib/styles/button-style.builder.mjs +0 -174
- package/esm2022/lib/styles/index.mjs +0 -3
- package/esm2022/lib/styles/models/index.mjs +0 -3
- package/esm2022/lib/styles/models/style-level.enum.mjs +0 -12
- package/esm2022/lib/styles/models/style-size.enum.mjs +0 -9
- package/esm2022/lib/styles/styles.util.mjs +0 -42
- package/esm2022/lib/types/action-descriptor.types.mjs +0 -2
- package/esm2022/lib/types/data-provider.types.mjs +0 -2
- package/esm2022/lib/types/getter.type.mjs +0 -2
- package/esm2022/lib/types/i18n.type.mjs +0 -2
- package/esm2022/lib/types/index.mjs +0 -8
- package/esm2022/lib/types/localstorage-config-value.type.mjs +0 -2
- package/esm2022/lib/types/type.decorator.mjs +0 -12
- package/esm2022/lib/types/type.model.mjs +0 -2
- package/esm2022/lib/utils/data-list-params.util.mjs +0 -416
- package/esm2022/lib/utils/date.util.mjs +0 -136
- package/esm2022/lib/utils/decorator-metadata.util.mjs +0 -61
- package/esm2022/lib/utils/editor-formly.util.mjs +0 -339
- package/esm2022/lib/utils/enum.util.mjs +0 -83
- package/esm2022/lib/utils/error.util.mjs +0 -247
- package/esm2022/lib/utils/export.util.mjs +0 -21
- package/esm2022/lib/utils/file.util.mjs +0 -18
- package/esm2022/lib/utils/i18n.util.mjs +0 -274
- package/esm2022/lib/utils/index.mjs +0 -14
- package/esm2022/lib/utils/model.util.mjs +0 -73
- package/esm2022/lib/utils/notification.util.mjs +0 -45
- package/esm2022/lib/utils/object.util.mjs +0 -135
- package/esm2022/lib/utils/route.util.mjs +0 -60
- package/esm2022/lib/utils/string.util.mjs +0 -59
- package/esm2022/lib/utils/tableview.util.mjs +0 -193
- package/esm2022/lib/validators/field.validator.mjs +0 -33
- package/esm2022/lib/validators/index.mjs +0 -2
- package/fesm2022/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs +0 -698
- package/fesm2022/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-data-api-class-dto.mjs +0 -480
- package/fesm2022/mediusinc-mng-commons-data-api-class-dto.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-data-api.mjs +0 -224
- package/fesm2022/mediusinc-mng-commons-data-api.mjs.map +0 -1
- package/lib/components/action/action.component.d.ts +0 -76
- package/lib/components/action/editor/action-editor.component.d.ts +0 -33
- package/lib/components/action/editor/injector-context/action-editor-injector-context.component.d.ts +0 -80
- package/lib/components/action/index.d.ts +0 -5
- package/lib/components/action/localization/data-language-dropdown.component.d.ts +0 -24
- package/lib/components/action/models/action-component.model.d.ts +0 -13
- package/lib/components/action/models/action-execution.model.d.ts +0 -169
- package/lib/components/action/models/index.d.ts +0 -3
- package/lib/components/action/route/action-route.component.d.ts +0 -31
- package/lib/components/action/table/action-table.component.d.ts +0 -49
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +0 -83
- package/lib/components/form/date-range/date-range.component.d.ts +0 -28
- package/lib/components/form/dropdown/dropdown.component.d.ts +0 -54
- package/lib/components/form/editor/form-editor.component.d.ts +0 -51
- package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +0 -16
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +0 -16
- package/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.d.ts +0 -27
- package/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.d.ts +0 -12
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +0 -15
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +0 -14
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +0 -39
- package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +0 -11
- package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +0 -45
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +0 -25
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -42
- package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +0 -7
- package/lib/components/form/formly/fields/index.d.ts +0 -12
- package/lib/components/form/formly/formly.config.d.ts +0 -17
- package/lib/components/form/formly/index.d.ts +0 -1
- package/lib/components/form/formly/models/formly-config.model.d.ts +0 -11
- package/lib/components/form/formly/models/formly-field.model.d.ts +0 -17
- package/lib/components/form/formly/models/index.d.ts +0 -2
- package/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +0 -11
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +0 -11
- package/lib/components/form/formly/wrappers/index.d.ts +0 -2
- package/lib/components/form/index.d.ts +0 -4
- package/lib/components/form/models/field-action-context.model.d.ts +0 -24
- package/lib/components/form/models/form-editor.event.d.ts +0 -58
- package/lib/components/form/models/index.d.ts +0 -3
- package/lib/components/layout/breadcrumb.component.d.ts +0 -13
- package/lib/components/layout/footer.component.d.ts +0 -9
- package/lib/components/layout/index.d.ts +0 -8
- package/lib/components/layout/main-layout.component.d.ts +0 -19
- package/lib/components/layout/menu-item.component.d.ts +0 -55
- package/lib/components/layout/menu.component.d.ts +0 -16
- package/lib/components/layout/services/index.d.ts +0 -1
- package/lib/components/layout/services/main-layout.component.service.d.ts +0 -65
- package/lib/components/layout/topbar-user.component.d.ts +0 -22
- package/lib/components/layout/topbar.component.d.ts +0 -26
- package/lib/components/layout/version.component.d.ts +0 -19
- package/lib/components/layoutV2/breadcrumb.component.d.ts +0 -10
- package/lib/components/layoutV2/footer.component.d.ts +0 -12
- package/lib/components/layoutV2/index.d.ts +0 -7
- package/lib/components/layoutV2/main-layout.component.d.ts +0 -24
- package/lib/components/layoutV2/menu-item.component.d.ts +0 -42
- package/lib/components/layoutV2/menu.component.d.ts +0 -14
- package/lib/components/layoutV2/model/index.d.ts +0 -2
- package/lib/components/layoutV2/model/layout-state.model.d.ts +0 -10
- package/lib/components/layoutV2/model/menu.model.d.ts +0 -4
- package/lib/components/layoutV2/services/index.d.ts +0 -2
- package/lib/components/layoutV2/services/main-layout.component.service.d.ts +0 -17
- package/lib/components/layoutV2/services/menu.service.d.ts +0 -22
- package/lib/components/layoutV2/sidebar.component.d.ts +0 -19
- package/lib/components/layoutV2/topbar-user.component.d.ts +0 -16
- package/lib/components/layoutV2/topbar.component.d.ts +0 -22
- package/lib/components/layoutV2/version.component.d.ts +0 -19
- package/lib/components/pages/error/error.page.component.d.ts +0 -8
- package/lib/components/pages/index.d.ts +0 -2
- package/lib/components/pages/not-found/not-found.page.component.d.ts +0 -8
- package/lib/components/table/column-filter-full/column-filter-full.component.d.ts +0 -101
- package/lib/components/table/column-value/column-value.component.d.ts +0 -35
- package/lib/components/table/models/table.event.d.ts +0 -17
- package/lib/components/table/models/table.interface.d.ts +0 -17
- package/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.d.ts +0 -8
- package/lib/components/table/table.component.d.ts +0 -123
- package/lib/components/tableview/actions/tableview-default-actions.d.ts +0 -36
- package/lib/components/tableview/builders/tableview-builder.d.ts +0 -115
- package/lib/components/tableview/helpers/tableview-create.d.ts +0 -16
- package/lib/components/tableview/index.d.ts +0 -6
- package/lib/components/tableview/models/tableview.model.d.ts +0 -8
- package/lib/components/tableview/route/tableview-route.component.d.ts +0 -7
- package/lib/components/tableview/tableview.component.d.ts +0 -29
- package/lib/data-providers/base.data-provider.d.ts +0 -32
- package/lib/data-providers/editor.data-provider.d.ts +0 -88
- package/lib/data-providers/index.d.ts +0 -5
- package/lib/data-providers/lookup.data-provider.d.ts +0 -27
- package/lib/data-providers/table.data-provider.d.ts +0 -40
- package/lib/data-providers/tableview.data-provider.d.ts +0 -45
- package/lib/descriptors/action/action-button.descriptor.d.ts +0 -25
- package/lib/descriptors/action/action-confirmation.descriptor.d.ts +0 -36
- package/lib/descriptors/action/action-editor.descriptor.d.ts +0 -118
- package/lib/descriptors/action/action-link.descriptor.d.ts +0 -34
- package/lib/descriptors/action/action.descriptor.d.ts +0 -149
- package/lib/descriptors/action/index.d.ts +0 -5
- package/lib/descriptors/editor/editor.descriptor.d.ts +0 -270
- package/lib/descriptors/editor/field-action.descriptor.d.ts +0 -23
- package/lib/descriptors/editor/field-base.descriptor.d.ts +0 -122
- package/lib/descriptors/editor/field-group.descriptor.d.ts +0 -42
- package/lib/descriptors/editor/field-lookup.descriptor.d.ts +0 -83
- package/lib/descriptors/editor/field-many.descriptor.d.ts +0 -63
- package/lib/descriptors/editor/field-validation.descriptor.d.ts +0 -19
- package/lib/descriptors/editor/field.descriptor.d.ts +0 -167
- package/lib/descriptors/editor/index.d.ts +0 -8
- package/lib/descriptors/editor/internal/editor-fields.model.d.ts +0 -33
- package/lib/descriptors/editor/internal/editor.model.d.ts +0 -15
- package/lib/descriptors/filter/filter-lookup.descriptor.d.ts +0 -70
- package/lib/descriptors/filter/filter.descriptor.d.ts +0 -66
- package/lib/descriptors/filter/index.d.ts +0 -2
- package/lib/descriptors/interfaces/field-config.interface.d.ts +0 -9
- package/lib/descriptors/interfaces/index.d.ts +0 -2
- package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +0 -12
- package/lib/descriptors/model/enum.descriptor.d.ts +0 -14
- package/lib/descriptors/model/index.d.ts +0 -3
- package/lib/descriptors/model/model.descriptor.d.ts +0 -31
- package/lib/descriptors/model/type.descriptor.d.ts +0 -5
- package/lib/descriptors/table/column.descriptor.d.ts +0 -148
- package/lib/descriptors/table/index.d.ts +0 -3
- package/lib/descriptors/table/internal/table-columns.model.d.ts +0 -42
- package/lib/descriptors/table/internal/table.model.d.ts +0 -12
- package/lib/descriptors/table/table.descriptor.d.ts +0 -272
- package/lib/descriptors/tableview/index.d.ts +0 -1
- package/lib/descriptors/tableview/internal/tableview.model.d.ts +0 -11
- package/lib/descriptors/tableview/tableview.descriptor.d.ts +0 -193
- package/lib/descriptors/types/action.type.d.ts +0 -21
- package/lib/descriptors/types/editor.type.d.ts +0 -6
- package/lib/descriptors/types/field.type.d.ts +0 -47
- package/lib/descriptors/types/index.d.ts +0 -7
- package/lib/descriptors/types/table.type.d.ts +0 -18
- package/lib/directives/component.directive.d.ts +0 -20
- package/lib/directives/dialog-keydown-handler.directive.d.ts +0 -12
- package/lib/directives/index.d.ts +0 -4
- package/lib/directives/input-trim.directive.d.ts +0 -14
- package/lib/directives/template.directive.d.ts +0 -12
- package/lib/error/error.handler.d.ts +0 -6
- package/lib/error/index.d.ts +0 -1
- package/lib/guards/index.d.ts +0 -1
- package/lib/guards/unsaved-changes.guard.d.ts +0 -3
- package/lib/helpers/coercion.d.ts +0 -9
- package/lib/helpers/data-provider-executors.d.ts +0 -19
- package/lib/models/action-editor.model.d.ts +0 -15
- package/lib/models/column-value.model.d.ts +0 -4
- package/lib/models/common-init-event-enum.model.d.ts +0 -9
- package/lib/models/config.model.d.ts +0 -53
- package/lib/models/enum.model.d.ts +0 -7
- package/lib/models/error.model.d.ts +0 -50
- package/lib/models/index.d.ts +0 -19
- package/lib/models/layout-config.model.d.ts +0 -34
- package/lib/models/log.model.d.ts +0 -40
- package/lib/models/menu.model.d.ts +0 -32
- package/lib/models/tableview-attr.model.d.ts +0 -10
- package/lib/models/type-registry.model.d.ts +0 -7
- package/lib/models/user.model.d.ts +0 -8
- package/lib/models/view-container.model.d.ts +0 -24
- package/lib/pipes/boolean.pipe.d.ts +0 -7
- package/lib/pipes/class-map.pipe.d.ts +0 -7
- package/lib/pipes/enum.pipe.d.ts +0 -8
- package/lib/pipes/enumerate-async.pipe.d.ts +0 -14
- package/lib/pipes/enumerate.pipe.d.ts +0 -21
- package/lib/pipes/getter.pipe.d.ts +0 -8
- package/lib/pipes/i18n-property.pipe.d.ts +0 -8
- package/lib/pipes/index.d.ts +0 -11
- package/lib/pipes/json-path.pipe.d.ts +0 -13
- package/lib/pipes/locale-default-row-class.pipe.d.ts +0 -10
- package/lib/pipes/models/internal/enumrate-pipe-i18n.model.d.ts +0 -5
- package/lib/pipes/models/internal/index.d.ts +0 -1
- package/lib/pipes/parametrize.pipe.d.ts +0 -13
- package/lib/pipes/template.pipe.d.ts +0 -10
- package/lib/provide.d.ts +0 -10
- package/lib/registry/type.registry.d.ts +0 -25
- package/lib/router/index.d.ts +0 -3
- package/lib/router/models/index.d.ts +0 -1
- package/lib/router/models/router.model.d.ts +0 -31
- package/lib/router/route-builder.d.ts +0 -75
- package/lib/router/routes-builder.d.ts +0 -28
- package/lib/router/tableview-route-builder.d.ts +0 -44
- package/lib/security/authorization.guard.d.ts +0 -2
- package/lib/security/authorization.service.d.ts +0 -17
- package/lib/security/authorization.util.d.ts +0 -5
- package/lib/security/index.d.ts +0 -3
- package/lib/security/model/authorization.type.d.ts +0 -6
- package/lib/security/model/index.d.ts +0 -3
- package/lib/security/model/permission-service.interface.d.ts +0 -6
- package/lib/security/model/permissions.model.d.ts +0 -37
- package/lib/services/action/action-executor.service.d.ts +0 -177
- package/lib/services/action/component-action-executor.service.d.ts +0 -9
- package/lib/services/action/index.d.ts +0 -4
- package/lib/services/action/root-action-executor.service.d.ts +0 -9
- package/lib/services/action-error-mapper.service.d.ts +0 -18
- package/lib/services/commons-init.service.d.ts +0 -22
- package/lib/services/commons.service.d.ts +0 -90
- package/lib/services/configuration.service.d.ts +0 -68
- package/lib/services/data-provider-executor.service.d.ts +0 -60
- package/lib/services/index.d.ts +0 -11
- package/lib/services/internal/commons-init.provider.d.ts +0 -4
- package/lib/services/internal/index.d.ts +0 -1
- package/lib/services/log-publisher-console.service.d.ts +0 -4
- package/lib/services/logger.service.d.ts +0 -33
- package/lib/services/mng-localstorage-config.service.d.ts +0 -11
- package/lib/services/navigation.service.d.ts +0 -15
- package/lib/services/providers/formly-config.provider.d.ts +0 -5
- package/lib/services/providers/index.d.ts +0 -1
- package/lib/services/router.service.d.ts +0 -37
- package/lib/services/tokens/browser-storage.token.d.ts +0 -2
- package/lib/services/tokens/commons-init.token.d.ts +0 -3
- package/lib/services/tokens/default-setting.token.d.ts +0 -2
- package/lib/services/tokens/index.d.ts +0 -5
- package/lib/services/tokens/log-publisher.token.d.ts +0 -3
- package/lib/services/tokens/module-config.token.d.ts +0 -3
- package/lib/services/version.service.d.ts +0 -14
- package/lib/services/view/index.d.ts +0 -2
- package/lib/services/view/view-container.service.d.ts +0 -32
- package/lib/styles/button-style.builder.d.ts +0 -68
- package/lib/styles/index.d.ts +0 -2
- package/lib/styles/models/index.d.ts +0 -2
- package/lib/styles/models/style-level.enum.d.ts +0 -10
- package/lib/styles/models/style-size.enum.d.ts +0 -7
- package/lib/styles/styles.util.d.ts +0 -15
- package/lib/types/action-descriptor.types.d.ts +0 -4
- package/lib/types/data-provider.types.d.ts +0 -3
- package/lib/types/getter.type.d.ts +0 -2
- package/lib/types/i18n.type.d.ts +0 -1
- package/lib/types/index.d.ts +0 -7
- package/lib/types/localstorage-config-value.type.d.ts +0 -1
- package/lib/types/type.model.d.ts +0 -31
- package/lib/utils/data-list-params.util.d.ts +0 -84
- package/lib/utils/date.util.d.ts +0 -20
- package/lib/utils/decorator-metadata.util.d.ts +0 -33
- package/lib/utils/editor-formly.util.d.ts +0 -13
- package/lib/utils/enum.util.d.ts +0 -51
- package/lib/utils/error.util.d.ts +0 -116
- package/lib/utils/export.util.d.ts +0 -5
- package/lib/utils/file.util.d.ts +0 -3
- package/lib/utils/i18n.util.d.ts +0 -85
- package/lib/utils/index.d.ts +0 -13
- package/lib/utils/model.util.d.ts +0 -10
- package/lib/utils/notification.util.d.ts +0 -13
- package/lib/utils/object.util.d.ts +0 -30
- package/lib/utils/route.util.d.ts +0 -37
- package/lib/utils/string.util.d.ts +0 -9
- package/lib/utils/tableview.util.d.ts +0 -53
- package/lib/validators/field.validator.d.ts +0 -3
- package/lib/validators/index.d.ts +0 -1
- package/openapi/angular/README.mustache +0 -226
- package/openapi/angular/api.module.mustache +0 -39
- package/openapi/angular/api.service.mustache +0 -253
- package/openapi/angular/apiInterface.mustache +0 -47
- package/openapi/angular/apis.mustache +0 -12
- package/openapi/angular/config.yaml +0 -23
- package/openapi/angular/configuration.mustache +0 -128
- package/openapi/angular/custom/base-api.service.mustache +0 -14
- package/openapi/angular/custom/helpers.mustache +0 -71
- package/openapi/angular/custom/modelSchema.mustache +0 -46
- package/openapi/angular/custom/schema.mustache +0 -18
- package/openapi/angular/encoder.mustache +0 -20
- package/openapi/angular/git_push.sh.mustache +0 -57
- package/openapi/angular/index.mustache +0 -0
- package/openapi/angular/licenseInfo.mustache +0 -11
- package/openapi/angular/model.mustache +0 -16
- package/openapi/angular/modelAlias.mustache +0 -1
- package/openapi/angular/modelEnum.mustache +0 -21
- package/openapi/angular/modelGeneric.mustache +0 -14
- package/openapi/angular/modelGenericAdditionalProperties.mustache +0 -5
- package/openapi/angular/modelGenericEnums.mustache +0 -30
- package/openapi/angular/modelOneOf.mustache +0 -14
- package/openapi/angular/modelTaggedUnion.mustache +0 -21
- package/openapi/angular/models.mustache +0 -5
- package/openapi/angular/ng-package.mustache +0 -6
- package/openapi/angular/package.mustache +0 -39
- package/openapi/angular/param.mustache +0 -69
- package/openapi/angular/tsconfig.mustache +0 -28
- package/openapi/angular/variables.mustache +0 -9
- package/openapi/node/model.mustache +0 -83
- package/openapi/node/models.mustache +0 -6
- package/scss/common/layout/_breadcrumb.scss +0 -99
- package/scss/common/layout/_config.scss +0 -100
- package/scss/common/layout/_dashboard.scss +0 -16
- package/scss/common/layout/_exception.scss +0 -133
- package/scss/common/layout/_footer.scss +0 -29
- package/scss/common/layout/_help.scss +0 -156
- package/scss/common/layout/_inlinemenu.scss +0 -68
- package/scss/common/layout/_invoice.scss +0 -176
- package/scss/common/layout/_landing.scss +0 -636
- package/scss/common/layout/_layout_dark.scss +0 -23
- package/scss/common/layout/_layout_light.scss +0 -23
- package/scss/common/layout/_loader.scss +0 -17
- package/scss/common/layout/_login.scss +0 -106
- package/scss/common/layout/_main.scss +0 -45
- package/scss/common/layout/_mixins.scss +0 -222
- package/scss/common/layout/_rightmenu.scss +0 -130
- package/scss/common/layout/_topbar.scss +0 -191
- package/scss/common/layout/_typography.scss +0 -68
- package/scss/common/layout/_utils.scss +0 -96
- package/scss/common/layout/_widgets.scss +0 -392
- package/scss/common/layout/menu/_menu.scss +0 -7
- package/scss/common/layout/menu/_menu_common.scss +0 -183
- package/scss/common/layout/menu/_menu_overlay.scss +0 -52
- package/scss/common/layout/menu/_menu_sidebar.scss +0 -233
- package/scss/common/layout/menu/_menu_slim.scss +0 -137
- package/scss/common/layout/menu/_menu_static.scss +0 -70
- package/scss/common/layout/menu/_menu_theme.scss +0 -364
- package/scss/common/theme/_theme_dark.scss +0 -5
- package/scss/common/theme/_theme_light.scss +0 -5
- package/scss/common/theme/designer/_colors.scss +0 -17
- package/scss/common/theme/designer/_common.scss +0 -41
- package/scss/common/theme/designer/_components.scss +0 -102
- package/scss/common/theme/designer/_mixins.scss +0 -203
- package/scss/common/theme/designer/components/button/_button.scss +0 -572
- package/scss/common/theme/designer/components/button/_speeddial.scss +0 -81
- package/scss/common/theme/designer/components/button/_splitbutton.scss +0 -2
- package/scss/common/theme/designer/components/data/_carousel.scss +0 -37
- package/scss/common/theme/designer/components/data/_datatable.scss +0 -266
- package/scss/common/theme/designer/components/data/_dataview.scss +0 -55
- package/scss/common/theme/designer/components/data/_filter.scss +0 -137
- package/scss/common/theme/designer/components/data/_fullcalendar.scss +0 -324
- package/scss/common/theme/designer/components/data/_orderlist.scss +0 -91
- package/scss/common/theme/designer/components/data/_organizationchart.scss +0 -50
- package/scss/common/theme/designer/components/data/_paginator.scss +0 -83
- package/scss/common/theme/designer/components/data/_picklist.scss +0 -91
- package/scss/common/theme/designer/components/data/_timeline.scss +0 -35
- package/scss/common/theme/designer/components/data/_tree.scss +0 -144
- package/scss/common/theme/designer/components/data/_treetable.scss +0 -241
- package/scss/common/theme/designer/components/data/_virtualscroller.scss +0 -28
- package/scss/common/theme/designer/components/file/_fileupload.scss +0 -58
- package/scss/common/theme/designer/components/input/_autocomplete.scss +0 -105
- package/scss/common/theme/designer/components/input/_calendar.scss +0 -212
- package/scss/common/theme/designer/components/input/_cascadeselect.scss +0 -98
- package/scss/common/theme/designer/components/input/_checkbox.scss +0 -85
- package/scss/common/theme/designer/components/input/_chips.scss +0 -43
- package/scss/common/theme/designer/components/input/_colorpicker.scss +0 -19
- package/scss/common/theme/designer/components/input/_dropdown.scss +0 -136
- package/scss/common/theme/designer/components/input/_editor.scss +0 -122
- package/scss/common/theme/designer/components/input/_inputgroup.scss +0 -69
- package/scss/common/theme/designer/components/input/_inputmask.scss +0 -3
- package/scss/common/theme/designer/components/input/_inputnumber.scss +0 -3
- package/scss/common/theme/designer/components/input/_inputswitch.scss +0 -60
- package/scss/common/theme/designer/components/input/_inputtext.scss +0 -97
- package/scss/common/theme/designer/components/input/_listbox.scss +0 -82
- package/scss/common/theme/designer/components/input/_multiselect.scss +0 -165
- package/scss/common/theme/designer/components/input/_password.scss +0 -33
- package/scss/common/theme/designer/components/input/_radiobutton.scss +0 -78
- package/scss/common/theme/designer/components/input/_rating.scss +0 -48
- package/scss/common/theme/designer/components/input/_selectbutton.scss +0 -50
- package/scss/common/theme/designer/components/input/_slider.scss +0 -71
- package/scss/common/theme/designer/components/input/_togglebutton.scss +0 -48
- package/scss/common/theme/designer/components/input/_treeselect.scss +0 -91
- package/scss/common/theme/designer/components/menu/_breadcrumb.scss +0 -42
- package/scss/common/theme/designer/components/menu/_contextmenu.scss +0 -51
- package/scss/common/theme/designer/components/menu/_dock.scss +0 -51
- package/scss/common/theme/designer/components/menu/_megamenu.scss +0 -103
- package/scss/common/theme/designer/components/menu/_menu.scss +0 -41
- package/scss/common/theme/designer/components/menu/_menubar.scss +0 -180
- package/scss/common/theme/designer/components/menu/_panelmenu.scss +0 -136
- package/scss/common/theme/designer/components/menu/_slidemenu.scss +0 -56
- package/scss/common/theme/designer/components/menu/_steps.scss +0 -56
- package/scss/common/theme/designer/components/menu/_tabmenu.scss +0 -49
- package/scss/common/theme/designer/components/menu/_tieredmenu.scss +0 -57
- package/scss/common/theme/designer/components/messages/_inlinemessage.scss +0 -64
- package/scss/common/theme/designer/components/messages/_message.scss +0 -102
- package/scss/common/theme/designer/components/messages/_toast.scss +0 -94
- package/scss/common/theme/designer/components/misc/_avatar.scss +0 -30
- package/scss/common/theme/designer/components/misc/_badge.scss +0 -48
- package/scss/common/theme/designer/components/misc/_blockui.scss +0 -3
- package/scss/common/theme/designer/components/misc/_chip.scss +0 -38
- package/scss/common/theme/designer/components/misc/_inplace.scss +0 -16
- package/scss/common/theme/designer/components/misc/_progressbar.scss +0 -17
- package/scss/common/theme/designer/components/misc/_scrolltop.scss +0 -20
- package/scss/common/theme/designer/components/misc/_skeleton.scss +0 -8
- package/scss/common/theme/designer/components/misc/_tag.scss +0 -35
- package/scss/common/theme/designer/components/misc/_terminal.scss +0 -11
- package/scss/common/theme/designer/components/multimedia/_galleria.scss +0 -141
- package/scss/common/theme/designer/components/multimedia/_image.scss +0 -44
- package/scss/common/theme/designer/components/overlay/_confirmpopup.scss +0 -65
- package/scss/common/theme/designer/components/overlay/_dialog.scss +0 -63
- package/scss/common/theme/designer/components/overlay/_overlaypanel.scss +0 -62
- package/scss/common/theme/designer/components/overlay/_sidebar.scss +0 -27
- package/scss/common/theme/designer/components/overlay/_tooltip.scss +0 -33
- package/scss/common/theme/designer/components/panel/_accordion.scss +0 -119
- package/scss/common/theme/designer/components/panel/_card.scss +0 -30
- package/scss/common/theme/designer/components/panel/_divider.scss +0 -31
- package/scss/common/theme/designer/components/panel/_fieldset.scss +0 -47
- package/scss/common/theme/designer/components/panel/_panel.scss +0 -42
- package/scss/common/theme/designer/components/panel/_scrollpanel.scss +0 -6
- package/scss/common/theme/designer/components/panel/_splitter.scss +0 -19
- package/scss/common/theme/designer/components/panel/_tabview.scss +0 -66
- package/scss/common/theme/designer/components/panel/_toolbar.scss +0 -10
- package/scss/common/theme/extensions/_button.scss +0 -111
- package/scss/common/theme/extensions/_calendar.scss +0 -18
- package/scss/common/theme/extensions/_card.scss +0 -6
- package/scss/common/theme/extensions/_carousel.scss +0 -13
- package/scss/common/theme/extensions/_checkbox.scss +0 -10
- package/scss/common/theme/extensions/_contextmenu.scss +0 -16
- package/scss/common/theme/extensions/_datatable.scss +0 -83
- package/scss/common/theme/extensions/_dialog.scss +0 -14
- package/scss/common/theme/extensions/_fieldset.scss +0 -6
- package/scss/common/theme/extensions/_galleria.scss +0 -25
- package/scss/common/theme/extensions/_megamenu.scss +0 -18
- package/scss/common/theme/extensions/_menu.scss +0 -14
- package/scss/common/theme/extensions/_menubar.scss +0 -14
- package/scss/common/theme/extensions/_orderlist.scss +0 -37
- package/scss/common/theme/extensions/_paginator.scss +0 -19
- package/scss/common/theme/extensions/_panelmenu.scss +0 -20
- package/scss/common/theme/extensions/_password.scss +0 -5
- package/scss/common/theme/extensions/_picklist.scss +0 -37
- package/scss/common/theme/extensions/_radiobutton.scss +0 -8
- package/scss/common/theme/extensions/_sidebar.scss +0 -19
- package/scss/common/theme/extensions/_slidemenu.scss +0 -10
- package/scss/common/theme/extensions/_slider.scss +0 -6
- package/scss/common/theme/extensions/_steps.scss +0 -50
- package/scss/common/theme/extensions/_tieredmenu.scss +0 -14
- package/scss/common/theme/extensions/_toast.scss +0 -6
- package/scss/common/theme/extensions/_tree.scss +0 -35
- package/scss/common/theme/extensions/_treetable.scss +0 -35
- package/scss/common/theme/extensions/_vendor_extensions.scss +0 -27
- package/scss/common/variables/layout/_common.scss +0 -12
- package/scss/common/variables/layout/_layout_dark.scss +0 -70
- package/scss/common/variables/layout/_layout_light.scss +0 -70
- package/scss/common/variables/theme/_theme_dark.scss +0 -937
- package/scss/common/variables/theme/_theme_light.scss +0 -936
- package/scss/layout/default/_mng-variables-layout-dark.scss +0 -2
- package/scss/layout/default/_mng-variables-layout-light.scss +0 -2
- package/scss/layout/default/layout-dark.scss +0 -2
- package/scss/layout/default/layout-light.scss +0 -2
- package/scss/mng-commons-dark-v2.scss +0 -9
- package/scss/mng-commons-dark.scss +0 -5
- package/scss/mng-commons-light-v2.scss +0 -9
- package/scss/mng-commons-light.scss +0 -8
- package/scss/mng-overrides/_layout_action.scss +0 -10
- package/scss/mng-overrides/_layout_dialog.scss +0 -91
- package/scss/mng-overrides/_layout_forms.scss +0 -38
- package/scss/mng-overrides/_layout_menu.scss +0 -10
- package/scss/mng-overrides/_layout_radio.scss +0 -3
- package/scss/mng-overrides/_layout_styles.scss +0 -35
- package/scss/mng-overrides/_layout_topbar.scss +0 -21
- package/scss/mng-overrides/_mixins.scss +0 -69
- package/scss/mng-overrides/_theme_autocomplete.scss +0 -29
- package/scss/mng-overrides/_theme_button.scss +0 -61
- package/scss/mng-overrides/_theme_datatable.scss +0 -160
- package/scss/mng-overrides/_theme_datepicker.scss +0 -21
- package/scss/mng-overrides/_theme_dialog.scss +0 -108
- package/scss/mng-overrides/_theme_dropdown.scss +0 -22
- package/scss/mng-overrides/_theme_fileupload.scss +0 -24
- package/scss/mng-overrides/_theme_forms.scss +0 -29
- package/scss/mng-overrides/_theme_image.scss +0 -27
- package/scss/mng-overrides/_theme_input.scss +0 -27
- package/scss/mng-overrides/_theme_menu.scss +0 -5
- package/scss/mng-overrides/_theme_multiselect.scss +0 -20
- package/scss/mng-overrides/_theme_styles.scss +0 -17
- package/scss/mng-overrides/_theme_tableview.scss +0 -79
- package/scss/mng-overrides/_theme_tabview.scss +0 -11
- package/scss/mng-overrides/_theme_toast.scss +0 -3
- package/scss/mng-overrides/_theme_toolbar.scss +0 -5
- package/scss/mng-overrides/_variables.scss +0 -15
- package/scss/theme/default/_mng-variables-theme-dark.scss +0 -11
- package/scss/theme/default/_mng-variables-theme-light.scss +0 -13
- package/scss/theme/default/theme-dark.scss +0 -2
- package/scss/theme/default/theme-light.scss +0 -2
- package/scss/v2/layout/_animation.scss +0 -53
- package/scss/v2/layout/_breadcrumb.scss +0 -97
- package/scss/v2/layout/_config.scss +0 -42
- package/scss/v2/layout/_content.scss +0 -3
- package/scss/v2/layout/_fonts.scss +0 -32
- package/scss/v2/layout/_layout_dark.scss +0 -12
- package/scss/v2/layout/_layout_light.scss +0 -12
- package/scss/v2/layout/_main.scss +0 -54
- package/scss/v2/layout/_profile.scss +0 -10
- package/scss/v2/layout/_responsive.scss +0 -131
- package/scss/v2/layout/_sidebar_drawer.scss +0 -283
- package/scss/v2/layout/_sidebar_horizontal.scss +0 -168
- package/scss/v2/layout/_sidebar_reveal.scss +0 -201
- package/scss/v2/layout/_sidebar_slim.scss +0 -157
- package/scss/v2/layout/_sidebar_slim_plus.scss +0 -167
- package/scss/v2/layout/_sidebar_vertical.scss +0 -176
- package/scss/v2/layout/_topbar.scss +0 -174
- package/scss/v2/layout/_typography.scss +0 -62
- package/scss/v2/layout/_utils.scss +0 -33
- package/scss/v2/layout/layout.scss +0 -24
- package/scss/v2/layout/mng/_mng_layout_footer.scss +0 -39
- package/scss/v2/layout/mng/_mng_layout_menu.scss +0 -10
- package/scss/v2/layout/mng/_mng_layout_styles.scss +0 -3
- package/scss/v2/layout/mng/_mng_layout_topbar.scss +0 -18
- package/scss/v2/layout/preloading.scss +0 -84
- package/scss/v2/theme/extensions/_fullcalendar.scss +0 -328
- package/scss/v2/theme/theme-base/_colors.scss +0 -17
- package/scss/v2/theme/theme-base/_common.scss +0 -76
- package/scss/v2/theme/theme-base/_components.scss +0 -110
- package/scss/v2/theme/theme-base/_mixins.scss +0 -337
- package/scss/v2/theme/theme-base/components/button/_button.scss +0 -576
- package/scss/v2/theme/theme-base/components/button/_speeddial.scss +0 -96
- package/scss/v2/theme/theme-base/components/button/_splitbutton.scss +0 -348
- package/scss/v2/theme/theme-base/components/data/_carousel.scss +0 -37
- package/scss/v2/theme/theme-base/components/data/_datatable.scss +0 -338
- package/scss/v2/theme/theme-base/components/data/_dataview.scss +0 -46
- package/scss/v2/theme/theme-base/components/data/_filter.scss +0 -137
- package/scss/v2/theme/theme-base/components/data/_orderlist.scss +0 -114
- package/scss/v2/theme/theme-base/components/data/_organizationchart.scss +0 -50
- package/scss/v2/theme/theme-base/components/data/_paginator.scss +0 -92
- package/scss/v2/theme/theme-base/components/data/_picklist.scss +0 -114
- package/scss/v2/theme/theme-base/components/data/_timeline.scss +0 -35
- package/scss/v2/theme/theme-base/components/data/_tree.scss +0 -150
- package/scss/v2/theme/theme-base/components/data/_treetable.scss +0 -255
- package/scss/v2/theme/theme-base/components/data/_virtualscroller.scss +0 -28
- package/scss/v2/theme/theme-base/components/file/_fileupload.scss +0 -64
- package/scss/v2/theme/theme-base/components/input/_autocomplete.scss +0 -136
- package/scss/v2/theme/theme-base/components/input/_calendar.scss +0 -267
- package/scss/v2/theme/theme-base/components/input/_cascadeselect.scss +0 -135
- package/scss/v2/theme/theme-base/components/input/_checkbox.scss +0 -94
- package/scss/v2/theme/theme-base/components/input/_chips.scss +0 -65
- package/scss/v2/theme/theme-base/components/input/_colorpicker.scss +0 -19
- package/scss/v2/theme/theme-base/components/input/_dropdown.scss +0 -151
- package/scss/v2/theme/theme-base/components/input/_editor.scss +0 -122
- package/scss/v2/theme/theme-base/components/input/_inputgroup.scss +0 -74
- package/scss/v2/theme/theme-base/components/input/_inputmask.scss +0 -16
- package/scss/v2/theme/theme-base/components/input/_inputnumber.scss +0 -28
- package/scss/v2/theme/theme-base/components/input/_inputswitch.scss +0 -60
- package/scss/v2/theme/theme-base/components/input/_inputtext.scss +0 -100
- package/scss/v2/theme/theme-base/components/input/_listbox.scss +0 -97
- package/scss/v2/theme/theme-base/components/input/_multiselect.scss +0 -177
- package/scss/v2/theme/theme-base/components/input/_password.scss +0 -52
- package/scss/v2/theme/theme-base/components/input/_radiobutton.scss +0 -78
- package/scss/v2/theme/theme-base/components/input/_rating.scss +0 -60
- package/scss/v2/theme/theme-base/components/input/_selectbutton.scss +0 -50
- package/scss/v2/theme/theme-base/components/input/_slider.scss +0 -71
- package/scss/v2/theme/theme-base/components/input/_togglebutton.scss +0 -48
- package/scss/v2/theme/theme-base/components/input/_treeselect.scss +0 -139
- package/scss/v2/theme/theme-base/components/menu/_breadcrumb.scss +0 -42
- package/scss/v2/theme/theme-base/components/menu/_contextmenu.scss +0 -39
- package/scss/v2/theme/theme-base/components/menu/_dock.scss +0 -95
- package/scss/v2/theme/theme-base/components/menu/_megamenu.scss +0 -55
- package/scss/v2/theme/theme-base/components/menu/_menu.scss +0 -37
- package/scss/v2/theme/theme-base/components/menu/_menubar.scss +0 -140
- package/scss/v2/theme/theme-base/components/menu/_panelmenu.scss +0 -153
- package/scss/v2/theme/theme-base/components/menu/_slidemenu.scss +0 -59
- package/scss/v2/theme/theme-base/components/menu/_steps.scss +0 -56
- package/scss/v2/theme/theme-base/components/menu/_tabmenu.scss +0 -73
- package/scss/v2/theme/theme-base/components/menu/_tieredmenu.scss +0 -43
- package/scss/v2/theme/theme-base/components/messages/_inlinemessage.scss +0 -69
- package/scss/v2/theme/theme-base/components/messages/_message.scss +0 -107
- package/scss/v2/theme/theme-base/components/messages/_toast.scss +0 -99
- package/scss/v2/theme/theme-base/components/misc/_avatar.scss +0 -30
- package/scss/v2/theme/theme-base/components/misc/_badge.scss +0 -48
- package/scss/v2/theme/theme-base/components/misc/_blockui.scss +0 -0
- package/scss/v2/theme/theme-base/components/misc/_chip.scss +0 -42
- package/scss/v2/theme/theme-base/components/misc/_inplace.scss +0 -16
- package/scss/v2/theme/theme-base/components/misc/_progressbar.scss +0 -17
- package/scss/v2/theme/theme-base/components/misc/_scrolltop.scss +0 -25
- package/scss/v2/theme/theme-base/components/misc/_skeleton.scss +0 -8
- package/scss/v2/theme/theme-base/components/misc/_tag.scss +0 -40
- package/scss/v2/theme/theme-base/components/misc/_terminal.scss +0 -12
- package/scss/v2/theme/theme-base/components/multimedia/_galleria.scss +0 -155
- package/scss/v2/theme/theme-base/components/multimedia/_image.scss +0 -49
- package/scss/v2/theme/theme-base/components/overlay/_confirmpopup.scss +0 -70
- package/scss/v2/theme/theme-base/components/overlay/_dialog.scss +0 -69
- package/scss/v2/theme/theme-base/components/overlay/_overlaypanel.scss +0 -64
- package/scss/v2/theme/theme-base/components/overlay/_sidebar.scss +0 -27
- package/scss/v2/theme/theme-base/components/overlay/_tooltip.scss +0 -33
- package/scss/v2/theme/theme-base/components/panel/_accordion.scss +0 -119
- package/scss/v2/theme/theme-base/components/panel/_card.scss +0 -30
- package/scss/v2/theme/theme-base/components/panel/_divider.scss +0 -31
- package/scss/v2/theme/theme-base/components/panel/_fieldset.scss +0 -47
- package/scss/v2/theme/theme-base/components/panel/_panel.scss +0 -63
- package/scss/v2/theme/theme-base/components/panel/_scrollpanel.scss +0 -6
- package/scss/v2/theme/theme-base/components/panel/_splitter.scss +0 -19
- package/scss/v2/theme/theme-base/components/panel/_tabview.scss +0 -82
- package/scss/v2/theme/theme-base/components/panel/_toolbar.scss +0 -11
- package/scss/v2/theme/theme-base/mng/_mng_mixins.scss +0 -69
- package/scss/v2/theme/theme-base/mng/_mng_theme_autocomplete.scss +0 -34
- package/scss/v2/theme/theme-base/mng/_mng_theme_button.scss +0 -68
- package/scss/v2/theme/theme-base/mng/_mng_theme_datatable.scss +0 -153
- package/scss/v2/theme/theme-base/mng/_mng_theme_datepicker.scss +0 -21
- package/scss/v2/theme/theme-base/mng/_mng_theme_dialog.scss +0 -206
- package/scss/v2/theme/theme-base/mng/_mng_theme_dropdown.scss +0 -32
- package/scss/v2/theme/theme-base/mng/_mng_theme_fileupload.scss +0 -24
- package/scss/v2/theme/theme-base/mng/_mng_theme_forms.scss +0 -66
- package/scss/v2/theme/theme-base/mng/_mng_theme_image.scss +0 -27
- package/scss/v2/theme/theme-base/mng/_mng_theme_input.scss +0 -31
- package/scss/v2/theme/theme-base/mng/_mng_theme_menu.scss +0 -5
- package/scss/v2/theme/theme-base/mng/_mng_theme_multiselect.scss +0 -20
- package/scss/v2/theme/theme-base/mng/_mng_theme_styles.scss +0 -17
- package/scss/v2/theme/theme-base/mng/_mng_theme_tableview.scss +0 -97
- package/scss/v2/theme/theme-base/mng/_mng_theme_tabview.scss +0 -11
- package/scss/v2/theme/theme-base/mng/_mng_theme_toast.scss +0 -3
- package/scss/v2/theme/theme-base/mng/_mng_theme_toolbar.scss +0 -5
- package/scss/v2/theme/theme-base/mng/_mng_variables.scss +0 -15
- package/scss/v2/theme/theme-dark/_extensions.scss +0 -100
- package/scss/v2/theme/theme-dark/_variables.scss +0 -940
- package/scss/v2/theme/theme-dark/blue/theme.scss +0 -14
- package/scss/v2/theme/theme-light/_extensions.scss +0 -100
- package/scss/v2/theme/theme-light/_variables.scss +0 -936
- package/scss/v2/theme/theme-light/blue/theme.scss +0 -14
- /package/{lib → core}/components/notification/notification-wrapper.component.d.ts +0 -0
- /package/{lib/models → core/data-list}/data-list.model.d.ts +0 -0
- /package/{lib/models → core/data-list}/filter-match.model.d.ts +0 -0
- /package/{lib/models/class.model.d.ts → core/models/class-attribute.model.d.ts} +0 -0
- /package/{lib → core}/models/version.model.d.ts +0 -0
- /package/{lib/types/type.decorator.d.ts → core/reflect/type-enum-decorator.d.ts} +0 -0
- /package/{lib/descriptors/types/filter.type.d.ts → filter/models/filter.model.d.ts} +0 -0
- /package/{lib/descriptors/types/trim.type.d.ts → form/api/models/trim.model.d.ts} +0 -0
- /package/{assets/i18n → i18n}/en.json +0 -0
- /package/{assets/i18n → i18n}/sl.json +0 -0
- /package/{lib/descriptors/table → table/api/descriptors}/sort.descriptor.d.ts +0 -0
- /package/{lib/descriptors/types/column.type.d.ts → table/api/models/column.model.d.ts} +0 -0
- /package/{lib → tableview/action}/models/can-component-deactivate.model.d.ts +0 -0
- /package/{lib/services/action → tableview/action/services/providers}/provide-action-executor.d.ts +0 -0
- /package/{lib/services/view → tableview/action/services/providers}/provide-view-container.d.ts +0 -0
- /package/{lib/components → tableview/api}/action/models/tableview-action-default-categories.model.d.ts +0 -0
- /package/{lib/components/form → tableview/api/editor}/models/form-editor.interface.d.ts +0 -0
- /package/{lib → tableview/api/editor}/models/radio.model.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-tableview.mjs","sources":["../../tableview/src/action/helpers/i18n.ts","../../tableview/src/action/models/execution/action-instance-state.model.ts","../../tableview/src/tableview/services/tableview-feature-config.token.ts","../../tableview/src/action/helpers/notification.ts","../../tableview/src/action/models/execution/action-context.model.ts","../../tableview/src/action/models/execution/action-instance.model.ts","../../tableview/src/action/services/action-error-mapper.service.ts","../../tableview/src/action/services/navigation.service.ts","../../tableview/src/action/services/tokens/action-editor.token.ts","../../tableview/src/action/services/view-container.service.ts","../../tableview/src/action/services/action-executor.service.ts","../../tableview/src/action/services/root-action-executor.service.ts","../../tableview/src/action/services/component-action-executor.service.ts","../../tableview/src/action/services/providers/provide-action-executor.ts","../../tableview/src/action/components/action/action.component.ts","../../tableview/src/action/components/action/action.component.html","../../tableview/src/editor/helpers/editor-formly.ts","../../tableview/src/editor/helpers/notification.ts","../../tableview/src/editor/components/editor/form-editor.component.ts","../../tableview/src/editor/components/editor/form-editor.component.html","../../tableview/src/action/components/editor/injector-context/action-editor-injector-context.component.ts","../../tableview/src/action/components/editor/injector-context/action-editor-injector-context.component.html","../../tableview/src/action/components/editor/action-editor.component.ts","../../tableview/src/action/components/editor/action-editor.component.html","../../tableview/src/action/components/localization/data-language-dropdown.component.ts","../../tableview/src/action/components/localization/data-language-dropdown.component.html","../../tableview/src/action/components/route/action-route.component.ts","../../tableview/src/action/components/route/action-route.component.html","../../tableview/src/action/helpers/styles.ts","../../tableview/src/action/components/table/action-table.component.ts","../../tableview/src/action/components/table/action-table.component.html","../../tableview/src/action/guards/unsaved-changes.guard.ts","../../tableview/src/action/services/providers/provide-view-container.ts","../../tableview/src/action/services/data-provider-executor.service.ts","../../tableview/src/editor/components/formly/fields/formly-field-action/formly-field-action.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-action/formly-field-action.component.html","../../tableview/src/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.html","../../tableview/src/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.html","../../tableview/src/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.html","../../tableview/src/editor/components/formly/fields/formly-field-input/formly-field-input.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-input/formly-field-input.component.html","../../tableview/src/editor/components/formly/fields/formly-field-label/formly-field-label.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-label/formly-field-label.component.html","../../tableview/src/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.html","../../tableview/src/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.html","../../tableview/src/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.html","../../tableview/src/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.ts","../../tableview/src/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.html","../../tableview/src/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.ts","../../tableview/src/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.html","../../tableview/src/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.ts","../../tableview/src/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.html","../../tableview/src/editor/helpers/formly-config.ts","../../tableview/src/editor/services/formly-config.provider.ts","../../tableview/src/tableview/components/tableview/tableview.component.ts","../../tableview/src/tableview/components/tableview/tableview.component.html","../../tableview/src/tableview/components/route/tableview-route.component.ts","../../tableview/src/tableview/components/route/tableview-route.component.html","../../tableview/src/tableview/router/tableview-route-builder.ts","../../tableview/src/provide.ts","../../tableview/src/index.ts","../../tableview/src/mediusinc-mng-commons-tableview.ts"],"sourcesContent":["import {TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\nimport {map, mergeMap} from 'rxjs/operators';\n\nimport {I18nMissingTranslationStrategy, getI18n, getI18nAsync} from '@mediusinc/mng-commons/core';\nimport {getI18nModelParams, getI18nModelParamsAsync} from '@mediusinc/mng-commons/model';\nimport {ActionDescriptorInst, ActionEditorDescriptorInst} from '@mediusinc/mng-commons/tableview/api';\n\nexport function getI18nForAction(\n translate: TranslateService,\n action: ActionDescriptorInst<any>,\n actionPathKeys: string | Array<string>,\n customKey?: string,\n item?: any,\n fallbackKey?: string,\n params?: any,\n missingTranslationStrategy: I18nMissingTranslationStrategy = 'returnFirstKey'\n): string | null {\n const keys = getKeysByPriority(action, actionPathKeys, customKey, fallbackKey);\n const i18nParams = getI18nActionParams(translate, action, item, params);\n const i18nValue = getI18n(translate, i18nParams, ...keys);\n return getTranslationDependingOnStrategy(missingTranslationStrategy, {i18nValue, firstKey: keys[0], fallbackKey});\n}\n\n/**\n * Returns async translation for given keys with given params.\n * @param translate TranslateService\n * @param action action descriptor\n * @param actionPathKeys action path keys\n * @param customKey custom key\n * @param item item\n * @param fallbackKey fallback key, used as fallback key\n * @param params additional params for translation\n * @param missingTranslationStrategy strategy when no translation is found\n */\nexport function getI18nForActionAsync(\n translate: TranslateService,\n action: ActionDescriptorInst<any>,\n actionPathKeys: string | Array<string>,\n customKey?: string,\n item?: any,\n fallbackKey?: string,\n params?: any,\n missingTranslationStrategy: I18nMissingTranslationStrategy = 'returnFirstKey'\n): Observable<string | null> {\n return getI18nActionParamsAsync(translate, action, item, params).pipe(\n mergeMap(i18nParams => {\n const keys = getKeysByPriority(action, actionPathKeys, customKey, fallbackKey);\n return getI18nAsync(translate, i18nParams, ...keys).pipe(\n map(i18nValue => getTranslationDependingOnStrategy(missingTranslationStrategy, {i18nValue, firstKey: keys[0], fallbackKey}))\n );\n })\n );\n}\n\n/**\n * Returns translation depending on missingTranslationStrategy\n * @param missingTranslationStrategy strategy when no translation is found\n * @param values object with values, i18nValue is translation, firstKey is first key in array of keys, fallbackKey is fallback key\n */\nfunction getTranslationDependingOnStrategy(\n missingTranslationStrategy: I18nMissingTranslationStrategy,\n {i18nValue, firstKey, fallbackKey}: {i18nValue: string | null; firstKey?: string; fallbackKey?: string}\n): string | null {\n if (i18nValue !== null) {\n return i18nValue;\n } else {\n switch (missingTranslationStrategy) {\n case 'returnNull':\n return null;\n case 'returnFallbackKey':\n return fallbackKey ?? null;\n case 'returnFirstKey':\n return firstKey ?? null;\n }\n }\n}\n\nexport function getI18nActionTitleAsync(translate: TranslateService, action: ActionDescriptorInst<any>, item?: any): Observable<string | null> {\n return getI18nForActionAsync(translate, action, 'title', undefined, item);\n}\n\nexport function getI18nActionEditorTitleAsync(translate: TranslateService, action: ActionEditorDescriptorInst<any>, item?: any): Observable<string | null> {\n return getI18nForActionAsync(translate, action, ['editor.title', 'title'], action.editorTitle ?? undefined, item, undefined, action.editorTitleParams ?? undefined);\n}\n\nexport function getI18nActionParams(translate: TranslateService, action: ActionDescriptorInst<any>, item?: any, params: any = {}): any {\n const i18nParams = getI18nModelParams(translate, action.model ?? undefined, item, params);\n return populateI18nActionParams(i18nParams);\n}\n\nexport function getI18nActionParamsAsync(translate: TranslateService, action: ActionDescriptorInst<any>, item?: any, params: any = {}): Observable<any> {\n return getI18nModelParamsAsync(translate, action.model ?? undefined, item, params).pipe(map(i18nParams => populateI18nActionParams(i18nParams)));\n}\n\nexport function populateI18nActionParams(params: any = {}): any {\n params = {...params};\n return params;\n}\n\nfunction getKeysByPriority(action: ActionDescriptorInst<any>, actionPathKeys: string | Array<string>, customKey?: string, fallbackKey?: string) {\n const keys = [];\n if (customKey) {\n keys.push(customKey);\n }\n if (!Array.isArray(actionPathKeys)) {\n actionPathKeys = [actionPathKeys];\n }\n actionPathKeys.forEach(k => {\n const modelActionKey = `${action.i18nModelActionBaseKey}.${k}`;\n const actionKey = `${action.actionName}.${k}`;\n keys.push(modelActionKey, actionKey);\n });\n if (fallbackKey) {\n keys.push(fallbackKey);\n }\n return keys;\n}\n","/**\n * States of action. Enums ending with `*Final` are supposed to be final.\n */\nexport enum ActionInstanceStateEnum {\n TriggerStart, // action was triggered (click or direct)\n TriggerEnd,\n ActivationStart, // action activation started (direct, event or editor)\n ActivationEnd, // action activation ended\n FetchStart, // fetch started\n FetchEnd, // fetch ended\n FetchError, // fetch error\n RunConfirmationStart, // confirmation for run is started\n RunConfirmationEndAccept, // confirmation accepted\n RunConfirmationEndReject, // confirmation rejected\n RunStart, // action was run by calling main function\n RunEnd, // action run function executed\n RunError, // action run function executed with error\n NextActionStart, // next action started\n NextActionEnd, // next action finished\n ErrorActionStart, // error action started\n ErrorActionEnd, // error action finished\n FinishSuccessFinal, // action executed successfully\n FinishErrorFinal, // action executed with error\n FinishDismissedFinal, // action was dismissed by user\n FinishSuccessReactivateFinal, // action executed successfully, another instance will directly start from previous\n FinishComponentDestroyFinal, // action was dismissed by destroying component that was executing it\n FinishRouteUntriggerStart,\n FinishRouteUntriggerEndFinal,\n FinishRouteUntriggerTimeoutFinal\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {ValidatorOption, WrapperOption} from '@ngx-formly/core/lib/models';\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {CommonsFormlyTypeConfig} from '../../editor/models/formly-config.model';\n\nexport interface TableviewFeatureConfig {\n formly?: {\n skip?: boolean;\n merge?: boolean;\n types?: CommonsFormlyTypeConfig[];\n wrappers?: WrapperOption[];\n validators?: ValidatorOption[];\n getValidationMessages?: (translate: TranslateService) => any[];\n };\n actions?: {\n debugInstances?: boolean;\n };\n}\n\nexport const COMMONS_TABLEVIEW_FEATURE_CONFIG_IT = new InjectionToken<TableviewFeatureConfig>('COMMONS_TABLEVIEW_FEATURE_CONFIG');\n","import {TranslateService} from '@ngx-translate/core';\nimport {Message, MessageService} from 'primeng/api';\n\nimport {ICommonsError, getI18nForError, toastMessage} from '@mediusinc/mng-commons/core';\nimport {ActionDescriptorInst} from '@mediusinc/mng-commons/tableview/api';\n\nimport {getI18nForAction} from './i18n';\n\nexport function actionNotificationSuccess(\n translate: TranslateService,\n action: ActionDescriptorInst<any>,\n functionName: string,\n messageService: MessageService,\n customTitleKey?: string,\n customMessageKey?: string,\n item?: any\n): Message {\n const actionSuccessTitle = getI18nForAction(translate, action, 'success.title', customTitleKey, item, 'general.success', functionName) ?? undefined;\n const actionSuccessMessage = getI18nForAction(translate, action, 'success.message', customMessageKey, item, 'general.successMessage', functionName) ?? undefined;\n return toastMessage(messageService, actionSuccessTitle, actionSuccessMessage);\n}\n\nexport function actionNotificationError(\n translate: TranslateService,\n action: ActionDescriptorInst<any>,\n error: ICommonsError,\n functionName: string,\n messageService: MessageService,\n item?: any,\n severity: 'warn' | 'error' = 'error'\n): Message {\n const params = {\n errorMessage: getI18nForError(translate, error) ?? error.message\n };\n const actionErrorTitle =\n getI18nForAction(translate, action, [`error.${functionName}.title`, 'error.title'], action.runNotificationErrorTitle, item, 'general.error', params) ?? undefined;\n const actionErrorMessage =\n getI18nForAction(translate, action, [`error.${functionName}.message`, 'error.message'], action.runNotificationErrorMessage, item, 'general.errorMessage', params) ??\n undefined;\n return toastMessage(messageService, actionErrorTitle, actionErrorMessage, severity, 'pi-exclamation-triangle');\n}\n","import {Injector} from '@angular/core';\n\nimport {Confirmation, Message} from 'primeng/api';\nimport {BehaviorSubject, ReplaySubject, Subscription, distinctUntilChanged} from 'rxjs';\n\nimport {ActionParameters, ICommonsError, IDataProvider, LoggerService} from '@mediusinc/mng-commons/core';\nimport {IActionContext, IActionInstance} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ViewContainer} from '../../services/view-container.service';\nimport {ActionInstance} from './action-instance.model';\n\n/**\n * Class containing all main data for action to be executed in run/fetch/submit states.\n */\nexport class ActionContext<Item, Service = undefined> implements IActionContext<Item, Service, ActionInstance<Item, Service>, ViewContainer<Item, Service>> {\n private readonly logger = LoggerService.get().create('ActionContext');\n public readonly contextLongName: string;\n public previousActionInstance?: IActionInstance<any, any>;\n public confirmation?: Confirmation;\n public notification?: Message;\n public runSubscription?: Subscription;\n\n constructor(\n public readonly injector: Injector,\n public readonly instance: ActionInstance<Item, Service>,\n public readonly parameters: ActionParameters<Item>,\n public readonly functionName: 'run' | 'fetch' | 'submit',\n public readonly serviceInstance: Service,\n public readonly dataProvider?: IDataProvider<Item, Service>,\n public readonly viewContainer?: ViewContainer<Item, Service>,\n private readonly executionSubject = new ReplaySubject<Item | null | undefined>(1),\n private readonly executionIsRunningSubject = new BehaviorSubject(false)\n ) {\n this.contextLongName = `${this.instance.instanceLongName}_${functionName}`;\n }\n\n public get execution$() {\n return this.executionSubject.asObservable();\n }\n\n public get executionIsRunning$() {\n return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n public executionStart() {\n this.logger.trace(`Context ${this.contextLongName} - execution start`);\n this.executionIsRunningSubject.next(true);\n }\n\n public executionNext(next: Item | null | undefined, finish = true) {\n this.logger.trace(`Context ${this.contextLongName} - execution next event`, next, finish);\n\n this.executionSubject.next(next);\n if (finish) {\n this.executionComplete();\n }\n }\n\n public executionComplete() {\n this.logger.trace(`Context ${this.contextLongName} - execution complete`);\n\n this.executionSubject.complete();\n this.executionIsRunningSubject.next(false);\n }\n\n public executionError(err: ICommonsError) {\n this.logger.trace(`Context ${this.contextLongName} - execution error`, err);\n this.executionSubject.error(err);\n this.executionIsRunningSubject.next(false);\n }\n\n public finish() {\n this.runSubscription?.unsubscribe();\n this.executionSubject.complete();\n this.executionIsRunningSubject.complete();\n }\n\n public isClosed() {\n return this.executionSubject.isStopped && this.executionIsRunningSubject.isStopped && (this.runSubscription?.closed ?? true);\n }\n}\n","import {DynamicDialogRef} from 'primeng/dynamicdialog';\nimport {BehaviorSubject, Observable, ReplaySubject, Subject, Subscription, distinctUntilChanged, take} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\n\nimport {ActionParameters, LoggerService} from '@mediusinc/mng-commons/core';\nimport {\n ActionActivationTriggerEnum,\n ActionDescriptorInst,\n ActionExecutionError,\n ActionTypeEnum,\n IActionEditorComponent,\n IActionInstance\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionContext} from './action-context.model';\nimport {ActionInstanceStateEnum} from './action-instance-state.model';\n\n/**\n * Action execution instance containing data about execution state of action\n */\nexport class ActionInstance<Item, Service = undefined> implements IActionInstance<Item, Service> {\n public readonly instanceId: string;\n public readonly instanceLongName: string;\n public readonly action: ActionDescriptorInst<Item>;\n public readonly createdDate: Date = new Date();\n private readonly logger = LoggerService.get().create('ActionInstance');\n\n // function execution\n public readonly isRunLoadingSubject = new BehaviorSubject(false);\n\n // parameters, contexts, states\n public triggerParameters?: ActionParameters<Item>;\n public activationParameters?: ActionParameters<Item>;\n private readonly contexts: Array<ActionContext<Item, Service>> = [];\n private readonly executionSubject = new Subject<Item | null | undefined>();\n private readonly executionIsRunningSubject = new BehaviorSubject(false);\n private readonly stateSubject = new BehaviorSubject<ActionInstanceStateEnum>(1);\n private readonly resultSubject = new ReplaySubject<Item | null>(1);\n private readonly errorSubject = new ReplaySubject<ActionExecutionError>(1);\n\n private contextExecutionSubscriptions: Array<Subscription> = [];\n\n // result or error\n private _result?: Item | null;\n private _error?: ActionExecutionError;\n\n // additional data from trigger/activation\n public activationDialogRef?: DynamicDialogRef;\n public activationEditorComponentRef?: IActionEditorComponent;\n\n // linked actions\n private _reactivationInstanceSubject = new BehaviorSubject<IActionInstance<Item, Service> | undefined>(undefined); // editor action with resubmit enabled\n public previousInstance?: IActionInstance<Item, Service>;\n public nextActionInstance?: IActionInstance<any, any>; // as defined in action descriptor\n public errorActionInstance?: IActionInstance<Item, Service>; // error action must rely on same type, as defined in action descriptor\n\n constructor(action: ActionDescriptorInst<Item>, state = ActionInstanceStateEnum.TriggerStart) {\n this.instanceId = Math.random().toString(36).substring(2);\n this.instanceLongName = `${action.actionNameLong}_${this.instanceId}`;\n this.action = action;\n this.state = state;\n }\n\n public get isRunLoading$() {\n return this.isRunLoadingSubject.asObservable();\n }\n\n public get context() {\n return this.contexts.length === 0 ? undefined : this.contexts[this.contexts.length - 1];\n }\n\n public get execution$() {\n return this.executionSubject.asObservable();\n }\n\n public get executionIsRunning$() {\n return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n public get state() {\n return this.stateSubject.value;\n }\n\n public set state(state: ActionInstanceStateEnum) {\n if (state > this.stateSubject.value || (this.stateSubject.value === ActionInstanceStateEnum.RunError && state === ActionInstanceStateEnum.RunStart)) {\n this.logger.trace(`Instance ${this.instanceLongName} - state #${state}: ${ActionInstanceStateEnum[state]}`);\n this.stateSubject.next(state);\n switch (state) {\n case ActionInstanceStateEnum.FinishSuccessFinal:\n case ActionInstanceStateEnum.FinishErrorFinal:\n case ActionInstanceStateEnum.FinishDismissedFinal:\n if (this.action.activationTrigger === ActionActivationTriggerEnum.OnClick) {\n this.finish();\n }\n break;\n case ActionInstanceStateEnum.FinishSuccessReactivateFinal:\n // partially finish reactivation because new instance event must still be emitted\n if (this.action.type === ActionTypeEnum.Editor) {\n this.finish(true);\n }\n break;\n case ActionInstanceStateEnum.FinishComponentDestroyFinal:\n this.finish();\n break;\n case ActionInstanceStateEnum.FinishRouteUntriggerEndFinal:\n case ActionInstanceStateEnum.FinishRouteUntriggerTimeoutFinal:\n if (this.action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n this.finish();\n }\n break;\n }\n }\n }\n\n public get state$() {\n return this.stateSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n public get result() {\n return this._result;\n }\n\n public set result(result: Item | null | undefined) {\n if (typeof result === 'undefined') {\n return;\n }\n\n this.logger.trace(`Instance ${this.instanceLongName} - result`, result);\n\n this._result = result;\n this.resultSubject.next(result);\n }\n\n public get result$() {\n return this.resultSubject.asObservable();\n }\n\n public get error() {\n return this._error;\n }\n\n public set error(error: ActionExecutionError | undefined) {\n if (typeof error === 'undefined') {\n return;\n }\n\n this.logger.trace(`Instance ${this.instanceLongName} - error`, error);\n\n this._error = error;\n this.errorSubject.next(error);\n }\n\n public get error$() {\n return this.errorSubject.asObservable();\n }\n\n public set reactivationInstance(instance: IActionInstance<Item, Service> | undefined) {\n // this is allowed to only be executed once for subject and must be in correct status!\n if (this.state !== ActionInstanceStateEnum.FinishSuccessReactivateFinal) {\n return;\n }\n this._reactivationInstanceSubject.next(instance);\n this._reactivationInstanceSubject.complete();\n }\n\n public get reactivationInstance() {\n return this._reactivationInstanceSubject.value;\n }\n\n public get reactivationInstance$(): Observable<IActionInstance<Item, Service>> {\n return this._reactivationInstanceSubject.asObservable().pipe(\n filter(i => !!i), // ignore undefined events (usually initial)\n map(i => i!),\n take(1)\n );\n }\n\n public contextAt(idx: number) {\n return idx < this.contexts.length ? this.contexts[idx] : undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public newContext(context: ActionContext<Item, Service>, finishPrevious = true) {\n this.logger.trace(`Instance ${this.instanceLongName} - new context ${context.contextLongName}`);\n\n const currentContext = this.context;\n if (currentContext) {\n currentContext.executionComplete();\n }\n this.contextExecutionSubscriptions.forEach(s => s.unsubscribe());\n this.contextExecutionSubscriptions = [];\n this.contextExecutionSubscriptions.push(\n context.execution$.subscribe({\n next: next => this.executionSubject.next(next),\n error: error => this.executionSubject.error(error)\n })\n );\n this.contextExecutionSubscriptions.push(\n context.executionIsRunning$.subscribe({\n next: next => this.executionIsRunningSubject.next(next)\n })\n );\n this.contexts.push(context);\n }\n\n public forceFinish() {\n this.logger.warn(`Force finishing instance '${this.instanceLongName}'. Try completing instance with states instead.`);\n this.state = ActionInstanceStateEnum.FinishDismissedFinal;\n this.finish();\n }\n\n private finish(reactivate = false) {\n // complete all subjects\n this.contexts.forEach(c => c.finish());\n this.executionSubject.complete();\n this.executionIsRunningSubject.complete();\n this.stateSubject.complete();\n this.resultSubject.complete();\n this.errorSubject.complete();\n if (!reactivate) {\n // allow reactivation instance to be emitted separately\n this._reactivationInstanceSubject.complete();\n }\n }\n\n public isClosed(): boolean {\n return (\n this.executionSubject.isStopped &&\n this.executionIsRunningSubject.isStopped &&\n this.stateSubject.isStopped &&\n this.resultSubject.isStopped &&\n this.errorSubject.isStopped &&\n this._reactivationInstanceSubject.isStopped &&\n this.contextExecutionSubscriptions.every(s => s.closed) &&\n this.contexts.every(c => c.isClosed())\n );\n }\n}\n","import {ICommonsError} from '@mediusinc/mng-commons/core';\n\n/**\n * Service for transforming errors in action execution.\n * Can be used to transform errors to Commons Error interface for correct error message display.\n */\nexport abstract class ActionErrorMapperService {\n /**\n * Can be used to enrich data from error and make it more \"stable\". Most use cases cover extracting message or message code of an\n * error out of http response body/headers.\n *\n * @param error Original error (cause).\n * @param commonsError Commons error that wraps original error.\n */\n abstract toCommonsError(error?: any, commonsError?: ICommonsError): ICommonsError;\n}\n\nexport class DefaultActionErrorMapperService extends ActionErrorMapperService {\n toCommonsError(error?: any, commonsError?: ICommonsError): ICommonsError {\n if (!commonsError) {\n commonsError = {\n type: 'CommonsActionError',\n name: error?.name ?? 'UnknownError',\n message: error.message ?? 'Unknown error',\n cause: error\n };\n }\n\n return commonsError;\n }\n}\n","import {Location} from '@angular/common';\nimport {Injectable} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\n\n@Injectable()\nexport class NavigationService {\n private history: Array<string> = [];\n\n constructor(\n private router: Router,\n private location: Location\n ) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n public getCurrentLocationFromHistory(): string | null {\n if (this.history.length > 0) {\n return this.history[this.history.length - 1];\n } else {\n return null;\n }\n }\n\n public getCurrentLocationFromUrl() {\n return this.location.path(true);\n }\n\n public getPreviousLocationFromHistory(): string | null {\n if (this.history.length > 1) {\n return this.history[this.history.length - 2];\n } else {\n return null;\n }\n }\n\n public back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/');\n }\n }\n}\n","import {InjectionToken, Type} from '@angular/core';\n\nexport const ACTION_EDITOR_COMPONENT_IT: InjectionToken<Type<any>> = new InjectionToken<Type<any>>('ACTION_EDITOR_COMPONENT');\n","import {Injectable} from '@angular/core';\n\nimport {Observable, Subject} from 'rxjs';\n\nimport {IDataProvider} from '@mediusinc/mng-commons/core';\nimport {\n ActionDescriptorInst,\n IViewContainer,\n ViewContainerEditorCloseEvent,\n ViewContainerEditorResetEvent,\n ViewContainerTableReloadEvent\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionInstance} from '../models/execution/action-instance.model';\n\n/**\n * Should be used with providers defined within component.\n */\n@Injectable()\nexport class ViewContainer<Item, Service = undefined> implements IViewContainer<Item, Service, ActionInstance<Item, Service>> {\n private _dataProvider?: IDataProvider<Item, Service>;\n private _routeTriggeredActionInstance?: ActionInstance<Item, Service>;\n private _actions: Array<ActionDescriptorInst<Item>> = [];\n\n private _tableReloadSubject: Subject<ViewContainerTableReloadEvent> = new Subject();\n private _editorResetSubject: Subject<ViewContainerEditorResetEvent<Item>> = new Subject();\n private _editorCloseSubject: Subject<ViewContainerEditorCloseEvent<Item>> = new Subject();\n\n public set dataProvider(dataProvider: IDataProvider<Item, Service>) {\n this._dataProvider = dataProvider;\n }\n\n public get dataProvider(): IDataProvider<Item, Service> | undefined {\n return this._dataProvider;\n }\n\n public get actions(): Array<ActionDescriptorInst<Item>> {\n return this._actions;\n }\n\n public set actions(actions: Array<ActionDescriptorInst<Item>>) {\n this._actions = actions;\n }\n\n public get tableReload$(): Observable<ViewContainerTableReloadEvent> {\n return this._tableReloadSubject.asObservable();\n }\n\n public reloadTable(event?: ViewContainerTableReloadEvent): void {\n this._tableReloadSubject.next(event ?? {});\n }\n\n public get editorReset$(): Observable<ViewContainerEditorResetEvent<Item>> {\n return this._editorResetSubject.asObservable();\n }\n\n public resetEditor(event?: ViewContainerEditorResetEvent<Item> | undefined): void {\n this._editorResetSubject.next(event ?? {});\n }\n\n public get editorClose$(): Observable<ViewContainerEditorCloseEvent<Item>> {\n return this._editorCloseSubject.asObservable();\n }\n\n public closeEditor(event?: ViewContainerEditorCloseEvent<Item>): void {\n this._editorCloseSubject.next(event ?? {});\n }\n\n public get routeTriggeredActionInstance(): ActionInstance<Item, Service> | undefined {\n return this._routeTriggeredActionInstance;\n }\n\n public set routeTriggeredActionInstance(instance: ActionInstance<Item, Service> | undefined) {\n this._routeTriggeredActionInstance = instance;\n }\n}\n","import {HttpErrorResponse} from '@angular/common/http';\nimport {Injector, inject} from '@angular/core';\nimport {Router, UrlTree} from '@angular/router';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {Confirmation, ConfirmationService, MessageService} from 'primeng/api';\nimport {DialogService, DynamicDialogConfig} from 'primeng/dynamicdialog';\nimport {Observable, from, mergeMap, of, switchMap, take, timeout} from 'rxjs';\nimport {catchError, filter, first, map, startWith} from 'rxjs/operators';\n\nimport {\n ActionParameters,\n CommonsHttpError,\n CommonsInternalError,\n CommonsService,\n ICommonsError,\n IDataProvider,\n LoggerService,\n ParametrizePipe,\n StyleSizeEnum,\n escapeHtmlAny,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {\n ActionActivationTriggerEnum,\n ActionConfirmationDescriptor,\n ActionContextValidation,\n ActionDeleteDescriptorInst,\n ActionDescriptorInst,\n ActionEditorAddDescriptorInst,\n ActionEditorDescriptorInst,\n ActionEditorEditDescriptorInst,\n ActionRunFnType,\n ActionTypeEnum,\n CommonsActionError,\n CommonsActionErrorOptions,\n DataProviderExecutor,\n IActionEditorComponent,\n IActionInstance\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {COMMONS_TABLEVIEW_FEATURE_CONFIG_IT} from '../../tableview/services/tableview-feature-config.token';\nimport {getI18nForAction} from '../helpers/i18n';\nimport {actionNotificationError, actionNotificationSuccess} from '../helpers/notification';\nimport {ActionEditorDialogData} from '../models/action-editor-dialog-data.model';\nimport {ActionContext} from '../models/execution/action-context.model';\nimport {ActionInstanceStateEnum} from '../models/execution/action-instance-state.model';\nimport {ActionInstance} from '../models/execution/action-instance.model';\nimport {ActionErrorMapperService} from './action-error-mapper.service';\nimport {NavigationService} from './navigation.service';\nimport {ACTION_EDITOR_COMPONENT_IT} from './tokens/action-editor.token';\nimport {ViewContainer} from './view-container.service';\n\nexport abstract class ActionExecutorService {\n protected readonly injector = inject(Injector);\n protected readonly router = inject(Router);\n protected readonly dialogService = inject(DialogService);\n protected readonly translate = inject(TranslateService);\n protected readonly commons = inject(CommonsService);\n protected readonly dataProviderExecutor = inject(DataProviderExecutor);\n protected readonly navigationService = inject(NavigationService);\n protected readonly errorMapper = inject(ActionErrorMapperService);\n protected readonly config = inject(COMMONS_TABLEVIEW_FEATURE_CONFIG_IT, {optional: true});\n protected readonly defaultEditorDialogComponent = inject(ACTION_EDITOR_COMPONENT_IT);\n protected readonly messageService = inject(MessageService);\n protected readonly confirmationService = inject(ConfirmationService);\n protected readonly viewContainer = inject(ViewContainer, {optional: true});\n protected readonly parametrize = new ParametrizePipe();\n\n protected readonly instancesBufferMax = 100;\n protected logger = inject(LoggerService).create('ActionExecutorService');\n\n public abstract get instances(): ActionInstance<any, any>[];\n\n /**\n * Prepares action context for usage in validation.\n * @param action Action descriptor.\n * @param parameters Action parameters.\n * @param dataProvider Data provider.\n */\n public prepareActionContextValidation<Item, Service>(\n action: ActionDescriptorInst<Item>,\n parameters: ActionParameters<Item>,\n dataProvider?: IDataProvider<Item, Service>\n ): ActionContextValidation<Item, Service> {\n const ctxDataProvider = dataProvider ?? action.dataProvider ?? this.viewContainer?.dataProvider;\n return <ActionContextValidation<Item, Service>>{\n descriptor: action,\n parameters: parameters,\n serviceInstance: this.dataProviderExecutor.getDataProviderService(this.injector, ctxDataProvider) ?? undefined,\n dataProvider: ctxDataProvider\n };\n }\n\n /**\n * Runs action context by submitting execution results/errors to context, watching over instance results/errors, displaying notifications,\n * running next/error action and triggering dismiss of action. Confirmation is also processed here.\n *\n * @param ctx Action context to run.\n */\n public run<Item, Service = undefined>(ctx: ActionContext<Item, Service>) {\n const isMainRunFn = ctx.functionName === 'submit' || ctx.functionName === 'run';\n\n // if (ctx.instance.action.type === ActionTypeEnum.Direct && ctx.instance.action.hasRunConfirmation) {\n if (isMainRunFn && ctx.instance.action.hasRunConfirmation) {\n // only direct action can be configured with run confirmation\n // if editor, then run confirmation is mapped to submit action and ignored as editor run\n const confirmationDescriptor = ctx.instance.action.runConfirmationDialogDescriptor as ActionConfirmationDescriptor<Item>;\n\n const item = ctx.parameters.item;\n let confirmParams: Confirmation = {\n icon: confirmationDescriptor.icon,\n acceptVisible: true,\n acceptIcon: confirmationDescriptor.acceptButton.icon ?? undefined,\n acceptButtonStyleClass: confirmationDescriptor.acceptButton.styleClass.build(),\n rejectVisible: true,\n rejectIcon: confirmationDescriptor.rejectButton?.icon ?? undefined,\n rejectButtonStyleClass: confirmationDescriptor.rejectButton?.styleClass.build(),\n closeOnEscape: confirmationDescriptor.closeOnEscape\n };\n\n if (confirmationDescriptor.title !== null) {\n confirmParams.header =\n getI18nForAction(this.translate, ctx.instance.action, 'confirm.title', confirmationDescriptor.title, item, 'general.confirmation') ?? undefined;\n }\n\n if (confirmationDescriptor.message !== null) {\n confirmParams.message =\n getI18nForAction(this.translate, ctx.instance.action, 'confirm.message', confirmationDescriptor.message, escapeHtmlAny(item), 'general.confirmation') ??\n undefined;\n }\n\n if (confirmationDescriptor.acceptButton.label !== null) {\n confirmParams.acceptLabel =\n getI18nForAction(this.translate, ctx.instance.action, 'confirm.accept', confirmationDescriptor.acceptButton.label, item, 'general.yes') ?? undefined;\n }\n\n if (confirmationDescriptor.acceptButton.icon !== null) {\n confirmParams.acceptIcon = confirmationDescriptor.acceptButton.icon;\n }\n\n if (confirmationDescriptor.rejectButton?.icon !== null) {\n confirmParams.rejectIcon = confirmationDescriptor.rejectButton?.icon;\n }\n\n if (confirmationDescriptor.rejectButton?.label !== null) {\n confirmParams.rejectLabel =\n getI18nForAction(this.translate, ctx.instance.action, 'confirm.reject', confirmationDescriptor.rejectButton?.label, item, 'general.no') ?? undefined;\n }\n\n if (confirmationDescriptor.rejectButton == null || (confirmationDescriptor.rejectButton.label === null && confirmationDescriptor.rejectButton.icon === null)) {\n confirmParams.rejectVisible = false;\n }\n\n confirmParams.accept = () => {\n ctx.instance.state = ActionInstanceStateEnum.RunConfirmationEndAccept;\n this.runWithoutConfirmation(ctx);\n };\n\n confirmParams.reject = () => {\n ctx.instance.state = ActionInstanceStateEnum.RunConfirmationEndReject;\n if (ctx.instance.action.type !== ActionTypeEnum.Editor) {\n // if not editor, the it can be closed\n this.finishAction(ctx.instance);\n }\n };\n\n if (confirmationDescriptor.runConfirmationConfigMapFn) {\n confirmParams = confirmationDescriptor.runConfirmationConfigMapFn(ctx, confirmParams);\n }\n\n ctx.confirmation = confirmParams;\n ctx.instance.state = ActionInstanceStateEnum.RunConfirmationStart;\n\n this.confirmationService.confirm(confirmParams);\n } else {\n this.runWithoutConfirmation(ctx);\n }\n }\n\n /**\n * Runs action context by submitting execution results/errors to context, watching over instance results/errors, displaying notifications,\n * running next/error action and triggering dismiss of action. Confirmation\n *\n * @param ctx Action context to run.\n *\n * @returns Action context for submit (=run) function.\n */\n private runWithoutConfirmation<Item, Service = undefined>(ctx: ActionContext<Item, Service>): Observable<Item | null | undefined> {\n const isMainRunFn = ctx.functionName === 'submit' || ctx.functionName === 'run';\n const isErrorCriticalRunFn = ctx.functionName === 'run';\n let actionEditor: ActionEditorDescriptorInst<Item>;\n\n let fnObs: ActionRunFnType<Item, Service>;\n switch (ctx.functionName) {\n case 'submit':\n actionEditor = ctx.instance.action as ActionEditorDescriptorInst<Item>;\n if (typeof actionEditor.submitFunction !== 'function') {\n if (actionEditor instanceof ActionEditorAddDescriptorInst) {\n fnObs = this.dataProviderExecutor.runCreateOrFail.bind(this.dataProviderExecutor);\n } else if (actionEditor instanceof ActionEditorEditDescriptorInst) {\n fnObs = this.dataProviderExecutor.runUpdateOrFail.bind(this.dataProviderExecutor);\n } else {\n // try to guess this one\n const defaultSubmit = of(ctx.parameters?.item ? ctx.parameters.item : undefined);\n fnObs = ctx => {\n if (ctx.parameters.itemId) {\n return this.dataProviderExecutor.runUpdate(ctx, defaultSubmit);\n } else {\n return this.dataProviderExecutor.runCreate(ctx, defaultSubmit);\n }\n };\n }\n } else {\n fnObs = actionEditor.submitFunction;\n }\n break;\n case 'fetch':\n actionEditor = ctx.instance.action as ActionEditorDescriptorInst<Item>;\n if (typeof actionEditor.fetchFunction !== 'function') {\n if (actionEditor instanceof ActionEditorEditDescriptorInst) {\n fnObs = this.dataProviderExecutor.runFetchOrFail.bind(this.dataProviderExecutor);\n } else {\n const defaultFetch = of(ctx.parameters?.item ? ctx.parameters.item : undefined);\n fnObs = ctx => {\n if (ctx.parameters.itemId || typeof ctx.parameters.item === 'object') {\n return this.dataProviderExecutor.runFetch(ctx, defaultFetch);\n }\n return defaultFetch;\n };\n }\n } else {\n fnObs = actionEditor.fetchFunction;\n }\n break;\n case 'run':\n default:\n if (!ctx.instance.action.hasRunFunction && ctx.instance.action instanceof ActionDeleteDescriptorInst) {\n fnObs = this.dataProviderExecutor.runDeleteOrFail.bind(this.dataProviderExecutor);\n } else {\n fnObs = ctx.instance.action.runFunction;\n }\n break;\n }\n\n const retObs = of(void 0).pipe(\n take(1),\n switchMap(() => {\n if (isMainRunFn) {\n // if main run function, also set loading to true\n ctx.instance.state = ActionInstanceStateEnum.RunStart;\n ctx.instance.isRunLoadingSubject.next(true);\n } else {\n ctx.instance.state = ActionInstanceStateEnum.FetchStart;\n }\n // start context execution to mark execution loading\n ctx.executionStart();\n\n return toObservable(fnObs(ctx));\n }),\n mergeMap(runResult => {\n // set next state depending on run\n ctx.instance.state = isMainRunFn ? ActionInstanceStateEnum.RunEnd : ActionInstanceStateEnum.FetchEnd;\n // set execution result\n ctx.executionNext(runResult, isMainRunFn);\n\n if (isMainRunFn) {\n // set instance final result on main run execution\n ctx.instance.result = runResult;\n ctx.instance.isRunLoadingSubject.next(false);\n\n // handle notification\n if (ctx.instance.action.hasRunNotificationSuccess) {\n ctx.notification = actionNotificationSuccess(\n this.translate,\n ctx.instance.action,\n ctx.functionName,\n this.messageService,\n ctx.instance.action.runNotificationSuccessTitle,\n ctx.instance.action.runNotificationSuccessMessage,\n {\n ...ctx.parameters?.item,\n ...runResult\n }\n );\n }\n\n // handle possible after run action\n if (ctx.instance.action.afterRunAction) {\n // mark new state for next action start\n const afterRunAction =\n typeof ctx.instance.action.afterRunAction === 'function' ? ctx.instance.action.afterRunAction(ctx) : ctx.instance.action.afterRunAction;\n const nextActionInstance = this.activateAction(\n afterRunAction,\n <ActionParameters<unknown>>{\n itemId: ctx.parameters.itemId,\n item: runResult,\n actionData: ctx.parameters.actionData,\n route: ctx.parameters.route,\n sourceComponent: ctx.parameters.sourceComponent\n },\n undefined,\n ctx.instance as ActionInstance<unknown, unknown>,\n true\n );\n ctx.instance.nextActionInstance = nextActionInstance;\n\n ctx.instance.state = ActionInstanceStateEnum.NextActionStart;\n\n // finish current action when next action finishes\n return nextActionInstance.state$.pipe(\n startWith(nextActionInstance.state), // provide first state cause it might be finished already\n filter(state => state >= ActionInstanceStateEnum.FinishSuccessFinal),\n take(1),\n map(() => {\n ctx.instance.state = ActionInstanceStateEnum.NextActionEnd;\n return runResult;\n })\n );\n }\n } else {\n if (actionEditor.hasFetchNotificationSuccess) {\n actionNotificationSuccess(\n this.translate,\n actionEditor,\n 'fetch',\n this.messageService,\n actionEditor.fetchNotificationSuccessTitle,\n actionEditor.fetchNotificationSuccessMessage,\n ctx.parameters.item\n );\n }\n }\n\n return of(runResult);\n }),\n map(runResult => {\n if (isMainRunFn) {\n // deactivate action\n this.finishAction(ctx.instance);\n }\n return runResult;\n }),\n catchError(err => {\n // transform error to action error\n const actionError = this.toActionError(err, ctx);\n\n // set instance state to error\n ctx.instance.state = isMainRunFn ? ActionInstanceStateEnum.RunError : ActionInstanceStateEnum.FetchError;\n // mark execution error on context\n ctx.executionError(actionError);\n\n if (ctx.instance.action.hasRunNotificationError) {\n actionNotificationError(this.translate, ctx.instance.action, actionError, 'fetch', this.messageService, ctx.parameters.item);\n }\n\n let errorObs = of(void 0);\n if (isMainRunFn) {\n ctx.instance.error = err;\n ctx.instance.isRunLoadingSubject.next(false);\n\n // handle possible error action if run\n if (isMainRunFn && ctx.instance.action.onRunErrorAction) {\n const onRunErrorAction =\n typeof ctx.instance.action.onRunErrorAction === 'function' ? ctx.instance.action.onRunErrorAction(ctx) : ctx.instance.action.onRunErrorAction;\n // cannot start with trigger, because routing might be problematic (lousing previous results etc.)\n const errorActionInstance = this.activateAction<Item, Service>(\n onRunErrorAction,\n <ActionParameters<Item>>{\n itemId: ctx.parameters.itemId,\n item: ctx.parameters.item,\n actionData: ctx.parameters.actionData,\n route: ctx.parameters.route,\n sourceComponent: ctx.parameters.sourceComponent\n },\n undefined,\n undefined,\n true\n );\n ctx.instance.errorActionInstance = errorActionInstance;\n\n ctx.instance.state = ActionInstanceStateEnum.ErrorActionStart;\n\n errorObs = errorActionInstance.state$.pipe(\n startWith(errorActionInstance.state), // provide first state cause it might be finished already\n filter(state => state >= ActionInstanceStateEnum.FinishSuccessFinal),\n take(1),\n map(() => {\n ctx.instance.state = ActionInstanceStateEnum.ErrorActionEnd;\n return void 0;\n })\n );\n }\n }\n\n // list and map only to mark instance state as finished error state\n return errorObs.pipe(\n map(() => {\n // deactivate action only if critical (fetch on editor or run on button actions)\n if (isErrorCriticalRunFn) {\n this.finishAction(ctx.instance);\n }\n // rethrow error to propagate further\n throw actionError;\n })\n );\n })\n );\n\n ctx.runSubscription = retObs.subscribe({\n next: res => {\n this.logger.debug(`ActionContext ${ctx.contextLongName} execution next event`, res);\n },\n error: err => {\n if ((err as ICommonsError | undefined)?.type !== 'CommonsActionError') {\n this.logger.error(`Non action error occurred`, err);\n } else {\n this.logger.debug(`Action context ${ctx.contextLongName} execution error event`, err);\n }\n }\n });\n\n return retObs;\n }\n\n /**\n * Prepares editor action's fetch function by creating new action context for action instance.\n *\n * @param action Action descriptor.\n * @param parameters Action parameters for context.\n * @param dataProvider Editor data provider for context.\n * @param instance Optional existing action instance (if non provided, new will be created).\n * @param previousActionInstance Optional previous action instance to link in next instance.\n *\n * @returns Action context for fetch function.\n */\n public prepareContextForEditorFetch<Item, Service>(\n action: ActionEditorDescriptorInst<Item>,\n parameters: ActionParameters<Item>,\n dataProvider?: IDataProvider<Item, Service>,\n instance?: ActionInstance<Item, Service>,\n previousActionInstance?: IActionInstance<any, any>\n ): ActionContext<Item, Service> {\n instance = this.getOrCreateInstance(instance, action, parameters, ActionInstanceStateEnum.ActivationEnd);\n return this.prepareContextForEditor(instance, parameters, 'fetch', dataProvider, previousActionInstance);\n }\n\n /**\n * Runs editor action's submit (=main run) function by creating new action context for action instance.\n *\n * @param action Action descriptor.\n * @param parameters Action parameters for context.\n * @param dataProvider Editor data provider for context.\n * @param instance Optional existing action instance (if non provided, new will be created).\n * @param previousActionInstance Optional previous action instance to link in next instance.\n *\n * @returns Action context for submit (=run) function.\n */\n public prepareContextForEditorSubmit<Item, Service>(\n action: ActionEditorDescriptorInst<Item>,\n parameters: ActionParameters<Item>,\n dataProvider?: IDataProvider<Item, Service>,\n instance?: ActionInstance<Item, Service>,\n previousActionInstance?: IActionInstance<any, any>\n ): ActionContext<Item, Service> {\n instance = this.getOrCreateInstance(instance, action, parameters, ActionInstanceStateEnum.ActivationEnd);\n return this.prepareContextForEditor(instance, parameters, 'submit', dataProvider, previousActionInstance);\n }\n\n /**\n * Prepares action exec context for action of type editor.\n *\n * @param instance Action instance.\n * @param parameters Action parameters for context.\n * @param functionName Action function name parameter.\n * @param dataProvider Optional data provider. If not provided data provider from either the action editor or view container will be used.\n * @param previousActionInstance Optional previous action instance to link in next instance.\n */\n private prepareContextForEditor<Item, Service>(\n instance: ActionInstance<Item, Service>,\n parameters: ActionParameters<Item>,\n functionName: 'submit' | 'fetch',\n dataProvider?: IDataProvider,\n previousActionInstance?: IActionInstance<any, any>\n ): ActionContext<Item, Service> {\n if (instance.action.type !== ActionTypeEnum.Editor) {\n throw new CommonsInternalError(`Cannot create editor context for action ${instance.action.actionNameLong} of type ${instance.action.type}.`);\n }\n const editorAction = instance.action as ActionEditorDescriptorInst<Item>;\n let ctxDataProvider = dataProvider;\n if (!ctxDataProvider && editorAction.dataProvider) {\n ctxDataProvider = editorAction.dataProvider;\n }\n if (!ctxDataProvider) {\n const viewContainerDataProvider = this.viewContainer?.dataProvider;\n if (viewContainerDataProvider) {\n ctxDataProvider = viewContainerDataProvider;\n }\n }\n const ctx = new ActionContext<Item, Service>(\n this.injector,\n instance,\n parameters,\n functionName,\n this.dataProviderExecutor.getDataProviderService(this.injector, ctxDataProvider) ?? undefined,\n ctxDataProvider,\n this.viewContainer ?? undefined\n );\n ctx.previousActionInstance = previousActionInstance;\n instance.newContext(ctx);\n return ctx;\n }\n\n /**\n * Runs action's main run function by creating new action context for action instance.\n *\n * @param action Action descriptor.\n * @param parameters Action parameters for context run.\n * @param dataProvider Data provider for context run.\n * @param instance Optional existing action instance (if non provided, new will be created).\n * @param previousActionInstance Optional previous action instance to link in next instance.\n *\n * @returns Action context for run function.\n */\n private prepareContext<Item, Service = undefined>(\n action: ActionDescriptorInst<Item, Service>,\n parameters: ActionParameters<Item>,\n dataProvider?: IDataProvider<Item, Service>,\n instance?: ActionInstance<Item, Service>,\n previousActionInstance?: ActionInstance<any, any>\n ): ActionContext<Item, Service> {\n instance = this.getOrCreateInstance<Item, Service>(instance, action, parameters, ActionInstanceStateEnum.ActivationEnd);\n\n const ctxDataProvider = dataProvider ?? instance.action.dataProvider ?? this.viewContainer?.dataProvider;\n let service: Service | undefined = undefined;\n if (ctxDataProvider != null) {\n const dataProviderService = this.dataProviderExecutor.getDataProviderService<Item, Service>(this.injector, ctxDataProvider);\n if (!dataProviderService) {\n throw new CommonsInternalError('');\n }\n service = dataProviderService;\n }\n const ctx = new ActionContext<Item, Service>(this.injector, instance, parameters, 'run', service as Service, ctxDataProvider, this.viewContainer ?? undefined);\n ctx.previousActionInstance = previousActionInstance;\n instance.newContext(ctx);\n\n return ctx;\n }\n\n /**\n * Activates action (in case of dialog, dialog will be opened).\n *\n * @param action Action descriptor.\n * @param parameters Action parameters for activation of action instance.\n * @param instance Optional existing action instance (if non provided, new will be created).\n * @param previousActionInstance Optional previous action instance to link in next instance.\n * @param runContext Marks if context should be run.\n *\n * @returns Action instance - if non provided in parameters, the newly created will be returned.\n */\n public activateAction<Item, Service = undefined>(\n action: ActionDescriptorInst<Item>,\n parameters: ActionParameters<Item>,\n instance?: ActionInstance<Item, Service>,\n previousActionInstance?: ActionInstance<any, any>,\n runContext = false\n ): ActionInstance<Item, Service> {\n instance = this.getOrCreateInstance<Item, Service>(instance, action, parameters, ActionInstanceStateEnum.ActivationStart);\n instance.state = ActionInstanceStateEnum.ActivationStart;\n instance.activationParameters = parameters;\n // start activation instance\n if (action.type === ActionTypeEnum.Editor) {\n let dialogComponent = this.defaultEditorDialogComponent;\n const dialogClassNames = ['mng-dialog'];\n const dialogConfig: DynamicDialogConfig = {\n duplicate: true\n };\n\n if (action instanceof ActionEditorDescriptorInst) {\n dialogClassNames.push(action.dialogClassName ?? 'mng-action-editor-dialog');\n switch (action.dialogSize) {\n case StyleSizeEnum.ExtraSmall:\n dialogClassNames.push('mng-dialog-xs');\n break;\n case StyleSizeEnum.Small:\n dialogClassNames.push('mng-dialog-sm');\n break;\n case StyleSizeEnum.Large:\n dialogClassNames.push('mng-dialog-lg');\n break;\n case StyleSizeEnum.ExtraLarge:\n dialogClassNames.push('mng-dialog-xl');\n break;\n case StyleSizeEnum.Normal:\n default:\n break;\n }\n if (action.editorComponent) {\n dialogComponent = action.editorComponent;\n }\n dialogConfig.data = <ActionEditorDialogData<Item, Service>>{\n action: {\n descriptor: action,\n instance: instance,\n previousInstance: previousActionInstance\n },\n injector: this.injector\n };\n }\n\n dialogConfig.styleClass = dialogClassNames.join(' ');\n\n if (action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n dialogConfig.closable = false;\n dialogConfig.closeOnEscape = false;\n }\n\n const dialogRef = this.dialogService.open(dialogComponent, dialogConfig);\n dialogRef.onClose.pipe(take(1)).subscribe(() => {\n // to close dialog on 'X' click or esc button\n this.finishAction(instance!);\n });\n instance.activationDialogRef = dialogRef;\n return instance;\n } else {\n // directly execute action\n instance.state = ActionInstanceStateEnum.ActivationEnd;\n const context = this.prepareContext<Item, Service>(action, parameters, undefined, instance, previousActionInstance);\n\n if (runContext) {\n this.run(context);\n }\n\n return context.instance;\n }\n }\n\n /**\n * To be called when action editor is initialized to correctly activate action.\n * @param action Action descriptor.\n * @param instance Action instance (if available).\n * @param componentRef Optional action editor component reference.\n */\n public onActionEditorInit<T, S>(action: ActionDescriptorInst<T>, instance?: ActionInstance<T, S>, componentRef?: IActionEditorComponent): ActionInstance<T, S> {\n if (action.type !== ActionTypeEnum.Editor) {\n throw new Error(`Action ${action.actionName} is not of type editor, cannot be activated through \"onActionEditorOnInit\"`);\n }\n if (instance && action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n const triggeredInstance = this.viewContainer?.routeTriggeredActionInstance;\n if (triggeredInstance && triggeredInstance.instanceLongName !== instance.instanceLongName) {\n this.logger.debug(\n `WARNING: Found triggered parameters view container instance ${triggeredInstance.instanceLongName} and it does not match instance ${instance.instanceLongName} retrieved on editor init.`\n );\n }\n }\n instance = this.getOrCreateInstance(instance, action, undefined, ActionInstanceStateEnum.ActivationStart);\n instance.state = ActionInstanceStateEnum.ActivationEnd;\n instance.activationEditorComponentRef = componentRef;\n\n return instance;\n }\n\n /**\n * To be called when action editor cmp is being destroyed to correctly finish action.\n * @param instance Action instance.\n */\n public onActionDestroy<T, S>(instance?: ActionInstance<T, S>): void {\n if (!instance) {\n return;\n }\n instance = this.getOrCreateInstance(instance);\n if (instance.action.activationTrigger !== ActionActivationTriggerEnum.OnClick) {\n return;\n }\n this.finishAction(instance, true);\n }\n\n /**\n * To be called when action editor cmp is being destroyed to correctly finish action.\n * @param instance Action instance.\n */\n public onActionEditorDestroy<T, S>(instance?: ActionInstance<T, S>): void {\n if (!instance) {\n return;\n }\n instance = this.getOrCreateInstance(instance);\n if (instance.action.type !== ActionTypeEnum.Editor) {\n throw new Error(`Action instance ${instance.instanceLongName} is not of type editor, cannot be deactivated through \"onActionEditorOnDestroy\"`);\n }\n if (instance.action.activationTrigger !== ActionActivationTriggerEnum.OnRoute) {\n this.finishAction(instance, true);\n }\n }\n\n /**\n * To be called when action route cmp is being destroyed to correctly finish action.\n * @param instance Action instance.\n */\n public onActionRouteDestroy<T, S>(instance?: ActionInstance<T, S>): void {\n if (!instance) {\n return;\n }\n instance = this.getOrCreateInstance(instance);\n if (instance.action.activationTrigger !== ActionActivationTriggerEnum.OnRoute) {\n throw new Error(`Action instance ${instance.instanceLongName} is not triggered on route, cannot be deactivated through \"onActionRouteOnDestroy\"`);\n }\n this.finishAction(instance, true);\n }\n\n /**\n * Deactivates action by choosing final state, closing dialog and completing all subjects in instance and contexts.\n *\n * @param instance Action instance.\n * @param onDestroy Marks if finish is called on component destroy lifecycle hook.\n */\n public finishAction<Item, Service = undefined>(instance: ActionInstance<Item, Service>, onDestroy = false) {\n instance = this.getOrCreateInstance(instance);\n if (instance.state >= ActionInstanceStateEnum.FinishSuccessFinal) {\n this.logger.trace(`ActionInstance ${instance.instanceLongName} already finished`);\n return;\n }\n\n let finalState: ActionInstanceStateEnum;\n if (typeof instance.result !== 'undefined') {\n finalState = ActionInstanceStateEnum.FinishSuccessFinal;\n } else if (typeof instance.error !== 'undefined') {\n finalState = ActionInstanceStateEnum.FinishErrorFinal;\n } else if (onDestroy) {\n finalState = ActionInstanceStateEnum.FinishComponentDestroyFinal;\n } else {\n finalState = ActionInstanceStateEnum.FinishDismissedFinal;\n }\n\n if (instance.action.type === ActionTypeEnum.Editor) {\n const hasDialog = typeof instance.activationDialogRef !== 'undefined';\n const resubmitEnabled = (instance.action as ActionEditorDescriptorInst<Item>).resubmitEnabled;\n\n if (finalState === ActionInstanceStateEnum.FinishSuccessFinal) {\n if ((hasDialog && resubmitEnabled === true) || (!hasDialog && resubmitEnabled !== false)) {\n finalState = ActionInstanceStateEnum.FinishSuccessReactivateFinal;\n }\n }\n\n if (hasDialog && finalState !== ActionInstanceStateEnum.FinishSuccessReactivateFinal) {\n // if state is finish and not called from dialog listener, close the dialog first which will retrigger this function, then finish it\n instance.activationDialogRef!.close(instance.result);\n }\n }\n\n // unset instance in view container\n if (this.viewContainer) {\n this.viewContainer.routeTriggeredActionInstance = undefined;\n }\n\n // set final state on instance\n instance.state = finalState;\n\n if (finalState === ActionInstanceStateEnum.FinishSuccessReactivateFinal) {\n // prepare reactivation instance\n const newInstanceStatus = (instance.action as ActionEditorDescriptorInst<Item>).resubmitRefetch\n ? ActionInstanceStateEnum.ActivationEnd\n : ActionInstanceStateEnum.FetchEnd;\n // must skip initialization from view container, because it would only get old instance.\n // we need new instance before we can set new one on the view container.\n const newInstance = this.getOrCreateInstance<Item, Service>(undefined, instance.action, undefined, newInstanceStatus, true);\n newInstance.previousInstance = instance;\n // copy some additional settings\n newInstance.activationDialogRef = instance.activationDialogRef;\n newInstance.triggerParameters = instance.triggerParameters;\n newInstance.activationParameters = instance.activationParameters;\n\n if (this.viewContainer) {\n this.viewContainer.routeTriggeredActionInstance = newInstance;\n }\n\n instance.reactivationInstance = newInstance;\n }\n\n // finish related actions\n if (instance.nextActionInstance && instance.nextActionInstance instanceof ActionInstance) {\n this.logger.debug(`Finishing instance ${instance.instanceLongName} related next action instance: ${instance.nextActionInstance.instanceLongName}`);\n this.finishAction(instance.nextActionInstance, onDestroy);\n }\n if (instance.errorActionInstance && instance.errorActionInstance instanceof ActionInstance) {\n this.logger.debug(`Finishing instance ${instance.instanceLongName} related error action instance: ${instance.errorActionInstance.instanceLongName}`);\n this.finishAction(instance.errorActionInstance, onDestroy);\n }\n }\n\n /**\n * Triggers action with parameters.\n *\n * @param action Action descriptor.\n * @param parameters Action parameters for action execution to construct new route.\n * @param runContext Marks if context should be run.\n *\n * @returns Action instance - if non provided in parameters, the newly created will be returned.\n */\n public triggerAction<Item, Service = undefined>(action: ActionDescriptorInst<Item>, parameters: ActionParameters<Item>, runContext = false): ActionInstance<Item, Service> {\n const instance = this.getOrCreateInstance<Item, Service>(undefined, action, parameters);\n instance.triggerParameters = parameters;\n instance.state = ActionInstanceStateEnum.TriggerStart;\n if (action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n const baseUrl = this.router.url.split('?')[0];\n const parsedUrl: UrlTree = this.router.parseUrl(this.router.url);\n let actionUrl = action.routeUrl ?? '';\n if (actionUrl.startsWith('/')) {\n actionUrl = actionUrl.substring(1);\n }\n\n const actionUrlSegments = this.parametrize.transform(actionUrl, parameters.itemId, parameters.item, parameters.actionData).split('/');\n\n // set instance in view container\n if (this.viewContainer) {\n this.viewContainer.routeTriggeredActionInstance = instance;\n }\n\n from(this.router.navigate([baseUrl, ...actionUrlSegments], {relativeTo: parameters.route, queryParams: parsedUrl.queryParams}))\n .pipe(take(1))\n .subscribe(() => (instance.state = ActionInstanceStateEnum.TriggerEnd));\n\n return instance;\n } else {\n instance.state = ActionInstanceStateEnum.TriggerEnd;\n this.activateAction(action, parameters, instance);\n\n if (runContext) {\n const context = instance.context;\n if (context) {\n this.run(context);\n }\n }\n\n return instance;\n }\n }\n\n /**\n * Deactivates on route triggered action by trying to reroute back to location where action was triggered.\n * @param instance Action instance.\n */\n public finishActionRouteUntrigger<Item, Service = undefined>(instance: ActionInstance<Item, Service>) {\n if (instance.action.activationTrigger !== ActionActivationTriggerEnum.OnRoute) {\n return;\n }\n\n instance = this.getOrCreateInstance<Item, Service>(instance);\n\n instance.state = ActionInstanceStateEnum.FinishRouteUntriggerStart;\n\n let url = this.navigationService.getCurrentLocationFromHistory() ?? this.navigationService.getCurrentLocationFromUrl();\n if (!url) {\n this.navigationService.back();\n } else {\n if (url.startsWith('/')) {\n url = url.substring(1);\n }\n\n const splitUrlQueryParam = url.split('?');\n const urlPathSegments = splitUrlQueryParam[0].split('#')[0].split('/');\n const queryParam = splitUrlQueryParam[1]?.split('#')[0];\n\n let actionUrl = instance.action?.routeUrl ?? '';\n if (actionUrl.startsWith('/')) {\n actionUrl = actionUrl.substring(1);\n }\n const actionUrlSegments = actionUrl.split('/');\n let redirectUrl = '/' + urlPathSegments.slice(0, urlPathSegments.length - actionUrlSegments.length).join('/');\n if (typeof queryParam !== 'undefined') {\n redirectUrl = `${redirectUrl}?${queryParam}`;\n }\n\n // No URL replaces, probably ok, to allow going back\n from(this.router.navigateByUrl(redirectUrl))\n .pipe(first(), timeout(1000))\n .subscribe({\n next: () => (instance.state = ActionInstanceStateEnum.FinishRouteUntriggerEndFinal),\n error: () => (instance.state = ActionInstanceStateEnum.FinishRouteUntriggerTimeoutFinal)\n });\n }\n }\n\n /**\n * Transform error of any type to error by using error mapper that could be provided by final project.\n * @param error error of any type.\n * @param context Action context.\n *\n * @returns mapped ICommonsError.\n */\n public toActionError(error?: any, context?: ActionContext<any, any>): ICommonsError {\n let commonsError: ICommonsError;\n if (context) {\n const options: CommonsActionErrorOptions = {\n cause: error,\n location: this.router.url\n };\n if (error instanceof HttpErrorResponse) {\n options.httpError = error;\n }\n\n commonsError = new CommonsActionError(error?.message ?? 'Unknown error', context.contextLongName);\n } else if (error instanceof HttpErrorResponse) {\n // should not really happen (should always be wrapped in MngActionError), just in case\n commonsError = new CommonsHttpError(`Http Error occurred in action`, error, {\n location: this.router.url\n });\n } else {\n // not from action, so unknown source of error\n commonsError = new CommonsInternalError(error?.message ?? 'Unknown error', {\n name: error?.name ?? 'UnknownError',\n location: this.router.url,\n cause: error\n });\n }\n\n // just trace it, allow user to set if this is error or not\n this.logger.trace(commonsError);\n\n return this.errorMapper.toCommonsError(error, commonsError);\n }\n\n /**\n * Creates or gets existing action instance.\n * @param instance Action instance.\n * @param action Action descriptor.\n * @param parameters Action parameters.\n * @param instanceInitialStatus Action instance initial status.\n * @param skipInitializationFromViewContainer If initialization of instance from view container should be skipped.\n * @private\n */\n protected getOrCreateInstance<Item, Service = undefined>(\n instance: ActionInstance<Item, Service> | undefined,\n action?: ActionDescriptorInst<Item, Service>,\n parameters?: ActionParameters<Item>,\n instanceInitialStatus?: ActionInstanceStateEnum,\n skipInitializationFromViewContainer = false\n ): ActionInstance<Item, Service> {\n if (!skipInitializationFromViewContainer && !instance && action?.activationTrigger === ActionActivationTriggerEnum.OnRoute && parameters) {\n instance = this.viewContainer?.routeTriggeredActionInstance;\n }\n if (!instance) {\n if (!action) {\n throw new CommonsInternalError('Action descriptor is not provided, instance cannot be created.', {name: 'ActionExecutorServiceError'});\n }\n // create new instance if non provided\n instance = new ActionInstance<Item, Service>(action, instanceInitialStatus);\n }\n\n if (this.config?.actions?.debugInstances && !this.instances.some(i => i.instanceLongName === instance!.instanceLongName)) {\n if (this.instances.length >= this.instancesBufferMax) {\n const lastInstance = this.instances.shift();\n\n if (lastInstance!.state < ActionInstanceStateEnum.FinishSuccessFinal) {\n this.logger.debug(`ERROR: Not all instances are finished! Finishing instance ${instance.instanceLongName} with dismissal.`);\n lastInstance!.forceFinish();\n }\n }\n\n this.instances.push(instance);\n }\n\n return instance;\n }\n}\n","import {Injectable} from '@angular/core';\n\nimport {ActionInstance} from '../models/execution/action-instance.model';\nimport {ActionExecutorService} from './action-executor.service';\n\n@Injectable()\nexport class RootActionExecutorService extends ActionExecutorService {\n private readonly _instances: ActionInstance<any, any>[] = [];\n\n public get instances(): ActionInstance<any, any>[] {\n return this._instances;\n }\n}\n","import {Injectable, inject} from '@angular/core';\n\nimport {ActionInstance} from '../models/execution/action-instance.model';\nimport {ActionExecutorService} from './action-executor.service';\nimport {RootActionExecutorService} from './root-action-executor.service';\n\n@Injectable()\nexport class ComponentActionExecutorService extends ActionExecutorService {\n private readonly rootActionExecutorService = inject(RootActionExecutorService);\n\n public get instances(): ActionInstance<any, any>[] {\n return this.rootActionExecutorService.instances;\n }\n}\n","import {Provider} from '@angular/core';\n\nimport {ActionExecutorService} from '../action-executor.service';\nimport {ComponentActionExecutorService} from '../component-action-executor.service';\n\nexport function provideActionExecutor(): Provider {\n return {\n provide: ActionExecutorService,\n useClass: ComponentActionExecutorService\n };\n}\n","import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Optional, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {MenuItem} from 'primeng/api';\nimport {ButtonModule} from 'primeng/button';\nimport {Menu, MenuModule} from 'primeng/menu';\nimport {RippleModule} from 'primeng/ripple';\nimport {SplitButtonModule} from 'primeng/splitbutton';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {Observable, ReplaySubject, Subscription, combineLatest, distinctUntilChanged, of} from 'rxjs';\n\nimport {\n APermissions,\n ActionData,\n ActionParameters,\n ComponentDirective,\n DataListParams,\n IDataProvider,\n IdType,\n ParametrizePipe,\n PermissionService,\n Permissions,\n boolean$Attribute,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {ActionContextValidation, ActionDescriptorInst, ActionLinkDescriptorInst, ActionTypeEnum, IActionComponent, TableviewRouteData} from '@mediusinc/mng-commons/tableview/api';\n\nimport {getI18nForActionAsync} from '../../helpers/i18n';\nimport {ActionInstanceStateEnum} from '../../models/execution/action-instance-state.model';\nimport {ActionInstance} from '../../models/execution/action-instance.model';\nimport {ActionExecutorService} from '../../services/action-executor.service';\nimport {provideActionExecutor} from '../../services/providers/provide-action-executor';\nimport {ViewContainer} from '../../services/view-container.service';\n\n@Component({\n standalone: true,\n selector: 'mng-action',\n templateUrl: './action.component.html',\n styleUrls: ['./action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, ButtonModule, RippleModule, TooltipModule, ParametrizePipe, ComponentDirective, SplitButtonModule, MenuModule],\n providers: [provideActionExecutor()]\n})\nexport class ActionComponent<Item = any, Service = undefined> implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class') hostClass = 'mng-action-button';\n @HostBinding('class.m-0') isHostHidden = false;\n\n // metadata and editor mode input\n @Input({required: true}) public action!: ActionDescriptorInst<Item, Service>;\n @Input() public item?: Item;\n @Input() public itemId?: IdType;\n @Input() public actionData?: ActionData;\n @Input() public dataListParams?: DataListParams;\n @Input() public dataProvider?: IDataProvider<Item, Service>;\n @Input() public hostComponent?: unknown;\n @Input('route') public routeInit?: ActivatedRoute;\n @Input({alias: 'disabled', transform: boolean$Attribute}) public inputDisabled: Observable<boolean> = of(false);\n @Input({alias: 'loading', transform: boolean$Attribute}) public inputLoading: Observable<boolean> = of(false);\n @Input() public selectedItems: Array<Item> = [];\n\n @Output('finish') public finishEventEmitter = new EventEmitter<ActionInstance<Item, Service>>();\n\n @ViewChild('subactionsMenu') public subactionsMenu?: Menu;\n\n private loadingSubject = new ReplaySubject<boolean>(1);\n public $loading: Observable<boolean> = this.loadingSubject.asObservable();\n\n private isVisibleSubject = new ReplaySubject<boolean>(1);\n private isVisibleSubscription?: Subscription;\n public $isVisible = this.isVisibleSubject.asObservable().pipe(distinctUntilChanged());\n private isPermittedSubject = new ReplaySubject<boolean>(1);\n private isPermittedSubscription?: Subscription;\n public $isPermitted = this.isPermittedSubject.asObservable().pipe(distinctUntilChanged());\n private isEnabledSubject = new ReplaySubject<boolean>(1);\n private isEnabledSubscription?: Subscription;\n public $isEnabled = this.isEnabledSubject.asObservable().pipe(distinctUntilChanged());\n private labelSubject = new ReplaySubject<string | null>(1);\n private labelSubscription?: Subscription;\n public $label = this.labelSubject.asObservable().pipe(distinctUntilChanged());\n private tooltipSubject = new ReplaySubject<string | null>(1);\n private tooltipSubscription?: Subscription;\n public $tooltip = this.tooltipSubject.asObservable().pipe(distinctUntilChanged());\n\n public actionLink?: ActionLinkDescriptorInst<Item>;\n public hasNoTitle = false;\n\n private subscriptions: Subscription[] = [];\n\n public route!: ActivatedRoute; // value will be determined in ngOnInit\n private routePermissions?: APermissions;\n\n public buttonClass = 'p-button-primary';\n public subactions: MenuItem[] = [];\n private subactionSubscriptions: Subscription[] = [];\n public actionOrSubactionHasRunConfirmation = false;\n\n private instance?: ActionInstance<Item, Service>;\n\n constructor(\n private routeService: ActivatedRoute,\n private translate: TranslateService,\n private authorization: PermissionService,\n private actionExecutor: ActionExecutorService,\n @Optional() private viewContainer: ViewContainer<Item, Service> | null\n ) {\n this.loadingSubject.next(false);\n }\n\n public ngOnInit() {\n this.route = this.routeInit ?? this.routeService;\n\n this.hasNoTitle = this.action.button.label === null;\n this.isEnabledSubject.next(true);\n this.isVisibleSubject.next(true);\n this.isPermittedSubject.next(true);\n this.labelSubject.next(null);\n this.tooltipSubject.next(null);\n\n const routeData = this.route.snapshot.data as TableviewRouteData;\n if (this.action instanceof ActionLinkDescriptorInst) {\n this.actionLink = this.action;\n }\n\n if (this.action.tableviewCategory && routeData.tableviewPermissions) {\n if (routeData.tableviewPermissions[this.action.tableviewCategory]) {\n this.routePermissions = routeData.tableviewPermissions[this.action.tableviewCategory];\n }\n }\n this.processSubscriptions();\n\n if (this.action.className) {\n this.hostClass = this.action.className;\n }\n const hostVisibilitySubscription = combineLatest([this.$isVisible, this.$isPermitted]).subscribe(([isVisible, isPermitted]) => {\n this.isHostHidden = !isVisible || !isPermitted;\n });\n this.subscriptions.push(hostVisibilitySubscription);\n\n this.buttonClass = this.action.button.styleClass.build(this.hasNoTitle);\n\n // Here we check if an action or any subaction has confirmation dialog\n this.actionOrSubactionHasRunConfirmation = this.action.subactions.some(sub => sub.hasRunConfirmation) || this.action.hasRunConfirmation;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n !(changes['item']?.firstChange ?? true) ||\n !(changes['itemId']?.firstChange ?? true) ||\n !(changes['actionData']?.firstChange ?? true) ||\n (this.action.hasItemsSelection && !(changes['selectedItems']?.firstChange ?? true))\n ) {\n this.processSubscriptions();\n }\n }\n\n ngOnDestroy(): void {\n this.actionExecutor.onActionDestroy(this.instance);\n this.isVisibleSubscription?.unsubscribe();\n this.isPermittedSubscription?.unsubscribe();\n this.isEnabledSubscription?.unsubscribe();\n this.labelSubscription?.unsubscribe();\n this.tooltipSubscription?.unsubscribe();\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subactionSubscriptions.forEach(s => s.unsubscribe());\n }\n\n public triggerAction(action: ActionDescriptorInst<Item, Service>, parameters?: ActionParameters<Item>, event?: Event) {\n if (action.subactionsAsMenu) {\n this.subactionsMenu?.toggle(event ?? new Event('trigger'));\n return;\n }\n\n const actionData = this.actionData ? this.actionData : {};\n\n parameters ??= {\n itemId: this.itemId,\n item: this.item,\n actionData: actionData,\n dataListParams: this.dataListParams,\n route: this.route,\n sourceComponent: this,\n hostComponent: this.hostComponent,\n selectedItems: this.selectedItems\n };\n\n const instance = this.actionExecutor.triggerAction<Item, Service>(action, parameters);\n this.instance = instance;\n const context = instance.context;\n if (!context) {\n // no context is provided if routing is triggered or editor is opened via dialog\n // it is in another component jurisdiction to handle contexts\n return;\n }\n\n this.subscriptions.push(\n instance.result$.subscribe({\n next: () => {\n this.finishEventEmitter.next(instance);\n if (action.hasItemsSelection) {\n this.viewContainer?.reloadTable({data: {event: event}});\n }\n }\n })\n );\n this.subscriptions.push(\n instance.error$.subscribe({\n next: () => {\n this.finishEventEmitter.next(instance);\n }\n })\n );\n\n this.subscriptions.push(\n this.instance.state$.subscribe(s => {\n switch (s) {\n case ActionInstanceStateEnum.RunStart:\n this.loadingSubject.next(true);\n break;\n case ActionInstanceStateEnum.RunEnd:\n case ActionInstanceStateEnum.RunError:\n this.loadingSubject.next(false);\n break;\n case ActionInstanceStateEnum.NextActionStart:\n if (this.instance?.nextActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.loadingSubject.next(true);\n }\n break;\n case ActionInstanceStateEnum.NextActionEnd:\n if (this.instance?.nextActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.loadingSubject.next(false);\n }\n break;\n case ActionInstanceStateEnum.ErrorActionStart:\n if (this.instance?.errorActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.loadingSubject.next(true);\n }\n break;\n case ActionInstanceStateEnum.ErrorActionEnd:\n if (this.instance?.errorActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.loadingSubject.next(false);\n }\n break;\n }\n })\n );\n\n this.actionExecutor.run(context);\n }\n\n public onCustomActionCmpInst(instance: IActionComponent<Item>) {\n const cmpInstSubscription = instance.triggerActionEventEmitter.subscribe(params => this.triggerAction(this.action, params));\n this.subscriptions.push(cmpInstSubscription);\n }\n\n private processSubactions(): MenuItem[] {\n this.subactionSubscriptions.forEach(s => s.unsubscribe());\n this.subactionSubscriptions = [];\n\n const menuItems: MenuItem[] = [];\n for (const subaction of this.action.subactions) {\n const menuItem = {} as MenuItem;\n\n menuItem.icon = subaction.button.icon ?? undefined;\n this.subactionSubscriptions.push(\n getI18nForActionAsync(this.translate, subaction, 'title', subaction.button.label ?? undefined, this.item).subscribe({\n next: res => (menuItem.label = res!)\n })\n );\n this.subactionSubscriptions.push(\n getI18nForActionAsync(this.translate, subaction, 'tooltip', this.action.button.tooltip, this.item).subscribe({\n next: res => (menuItem.tooltip = res!)\n })\n );\n\n const parameters: ActionParameters<Item> = {\n itemId: this.itemId,\n item: this.item,\n actionData: this.actionData,\n sourceComponent: this\n };\n\n if (subaction.hasItemsSelection) {\n parameters.selectedItems = this.selectedItems;\n }\n\n const context = this.actionExecutor.prepareActionContextValidation(subaction, parameters, this.dataProvider);\n\n if (typeof subaction.isEnabledFunction === 'function') {\n this.subactionSubscriptions.push(\n toObservable(subaction.isEnabledFunction(context)).subscribe({\n next: res => (menuItem.disabled = !res)\n })\n );\n }\n\n const visibilityObservables: Observable<boolean>[] = [];\n if (typeof subaction.isVisibleFunction === 'function') {\n visibilityObservables.push(toObservable(subaction.isVisibleFunction(context)));\n }\n if (typeof subaction.permissions !== 'undefined') {\n visibilityObservables.push(this.authorization.isPermitted(subaction.permissions, this.route.snapshot, context as ActionContextValidation<unknown, unknown>));\n }\n\n const routeData = this.route.snapshot.data as TableviewRouteData;\n if (subaction.tableviewCategory && routeData.tableviewPermissions && routeData.tableviewPermissions[subaction.tableviewCategory]) {\n const routePermissions = routeData.tableviewPermissions[subaction.tableviewCategory];\n visibilityObservables.push(this.authorization.isPermitted(routePermissions, this.route.snapshot, context as ActionContextValidation<unknown, unknown>));\n }\n\n this.subactionSubscriptions.push(\n combineLatest(visibilityObservables).subscribe(visibilities => {\n menuItem.visible = visibilities.every(value => value);\n })\n );\n\n menuItem.command = () => this.triggerAction(subaction);\n\n menuItems.push(menuItem);\n }\n return menuItems;\n }\n\n private processSubscriptions() {\n const parameters: ActionParameters<Item> = {\n itemId: this.itemId,\n item: this.item,\n actionData: this.actionData,\n sourceComponent: this\n };\n\n if (this.action.hasItemsSelection) {\n parameters.selectedItems = this.selectedItems;\n }\n\n const context = this.actionExecutor.prepareActionContextValidation(this.action, parameters, this.dataProvider);\n\n if (typeof this.action.isVisibleFunction === 'function') {\n this.isVisibleSubscription?.unsubscribe();\n this.isVisibleSubscription = toObservable(this.action.isVisibleFunction(context)).subscribe({\n next: res => this.isVisibleSubject.next(res)\n });\n }\n if (typeof this.action.permissions !== 'undefined' || typeof this.routePermissions !== 'undefined') {\n this.isPermittedSubscription?.unsubscribe();\n const permissions =\n this.action.permissions && this.routePermissions\n ? Permissions.All.of(this.routePermissions, this.action.permissions)\n : this.routePermissions ?? this.action.permissions!;\n this.isVisibleSubscription = this.authorization.isPermitted(permissions, this.route.snapshot, context as ActionContextValidation<unknown, unknown>).subscribe({\n next: res => this.isPermittedSubject.next(res)\n });\n }\n if (typeof this.action.isEnabledFunction === 'function') {\n this.isEnabledSubscription?.unsubscribe();\n this.isEnabledSubscription = toObservable(this.action.isEnabledFunction(context)).subscribe({\n next: res => this.isEnabledSubject.next(res)\n });\n }\n\n if (!this.hasNoTitle) {\n this.labelSubscription?.unsubscribe();\n this.labelSubscription = getI18nForActionAsync(this.translate, this.action, 'title', this.action.button.label ?? undefined, this.item).subscribe({\n next: i18n => this.labelSubject.next(i18n)\n });\n }\n\n this.tooltipSubscription?.unsubscribe();\n if (this.action.button.tooltip) {\n this.tooltipSubscription = getI18nForActionAsync(this.translate, this.action, 'tooltip', this.action.button.tooltip, this.item, undefined, undefined).subscribe({\n next: i18n => this.tooltipSubject.next(i18n)\n });\n }\n\n this.subactions = this.processSubactions();\n }\n}\n","@if (($isVisible | async) && ($isPermitted | async)) {\n @if (actionLink && actionLink.url !== '') {\n <a\n pButton\n pRipple\n [label]=\"($label | async) ?? ''\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [href]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.url | mngParametrize: itemId : item : actionData)\"\n [target]=\"actionLink.target\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (actionLink) {\n <a\n pButton\n pRipple\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [target]=\"actionLink.target\"\n [replaceUrl]=\"actionLink.replaceUrl\"\n [routerLink]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false) ? null : (actionLink.pathSegments | mngParametrize: itemId : item : actionData)\"\n [relativeTo]=\"route\"\n [queryParams]=\"actionLink.queryParams | mngParametrize: itemId : item : actionData\"\n [queryParamsHandling]=\"actionLink.queryParamsHandling\"\n [class.disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [class]=\"buttonClass\"></a>\n } @else if (action.component || action.componentFromDi) {\n <ng-container\n [mngComponent]=\"action.component\"\n [injectionToken]=\"action.componentFromDi\"\n [inputs]=\"{\n action: action,\n item: item,\n itemId: itemId,\n actionData: actionData,\n enabled: $isEnabled,\n loading: $loading\n }\"\n (instanceCreated)=\"onCustomActionCmpInst($event)\">\n </ng-container>\n } @else if (action.subactions.length > 0 && !action.subactionsAsMenu) {\n <p-splitButton\n [icon]=\"action.button.icon ?? undefined\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (onClick)=\"triggerAction(action)\"\n [class]=\"buttonClass\"\n [model]=\"subactions\">\n </p-splitButton>\n } @else {\n <button\n pButton\n pRipple\n type=\"button\"\n [icon]=\"$any(action.button.icon)\"\n [iconPos]=\"action.button.iconPosition\"\n [label]=\"($label | async) ?? ''\"\n [pTooltip]=\"($tooltip | async) ?? undefined\"\n [tooltipPosition]=\"action.button.tooltipPosition ?? undefined\"\n [loading]=\"(($loading | async) ?? false) || ((inputLoading | async) ?? false)\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"($isEnabled | async) === false || ((inputDisabled | async) ?? false)\"\n (click)=\"triggerAction(action, undefined, $event)\"\n [class]=\"buttonClass\"></button>\n <p-menu #subactionsMenu [model]=\"subactions\" [popup]=\"true\" appendTo=\"body\" styleClass=\"mng-action-menu\"></p-menu>\n }\n}\n","import {AbstractControl, ValidationErrors} from '@angular/forms';\n\nimport {FormlyFieldConfig} from '@ngx-formly/core';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {CommonsInternalError, CommonsService} from '@mediusinc/mng-commons/core';\nimport {type} from '@mediusinc/mng-commons/model';\nimport {\n AFieldDescriptor,\n CommonsFormlyFieldConfig,\n EditorDescriptorInst,\n FieldActionDescriptor,\n FieldAsyncValidator,\n FieldGroupDescriptor,\n FieldInputDescriptor,\n FieldInputTypeEnum,\n FieldLookupDescriptor,\n FieldLookupEnumDescriptor,\n FieldLookupTypeEnum,\n FieldManyEditorDescriptor,\n FieldManyToManyEditorDescriptor,\n FieldTabGroupDescriptor,\n FieldValidationDescriptor,\n IFormEditorComponent,\n TableviewDescriptor,\n TableviewEditorTypeEnum\n} from '@mediusinc/mng-commons/tableview/api';\n\nexport function createFormlyConfigFromDescriptor(descriptor: EditorDescriptorInst<any>, formEditorComponent: IFormEditorComponent<unknown>): FormlyFieldConfig[] {\n const fields: FormlyFieldConfig[] = [];\n\n if (descriptor.isLocalized) {\n descriptor = createFormlyLocalizationsTab(descriptor);\n }\n\n if (!descriptor.isLocalized && descriptor.tabs.length === 1 && descriptor.tabs[0].default) {\n // dont use tabs\n fields.push(...createFormlyGroupType(descriptor.tabs[0].fields, formEditorComponent));\n } else {\n fields.push(...createFormlyTabType(descriptor.tabs, formEditorComponent));\n }\n\n return fields;\n}\nexport function createFormlyLocalizationsTab(descriptor: EditorDescriptorInst<any>) {\n if (descriptor.isLocalized && descriptor.tableviewEditorType !== TableviewEditorTypeEnum.Details) {\n if (!descriptor.localizationModel) {\n throw new CommonsInternalError('Localization model must be defined.');\n }\n const localizationsTableViewDescriptor = TableviewDescriptor.fromModel(descriptor.localizationModel);\n if (!descriptor.localizationLocaleProperty) {\n throw new CommonsInternalError('Localization locale property must be defined.');\n }\n localizationsTableViewDescriptor.addColumn(descriptor.localizationLocaleProperty);\n localizationsTableViewDescriptor.editEditor.addField(descriptor.localizationLocaleProperty).withDisabled(true);\n localizationsTableViewDescriptor.detailsEditor.addField(descriptor.localizationLocaleProperty).withDisabled(true);\n localizationsTableViewDescriptor.addEditor\n .addFieldLookupWithProvider(descriptor.localizationLocaleProperty, CommonsService, type<string>())\n .withLookup((qp, service) => service.appDataLanguages)\n .withDisabled(false)\n .withRequired();\n descriptor.fields.forEach(field => {\n if (field.isLocalized) {\n localizationsTableViewDescriptor.addColumn(field.property);\n localizationsTableViewDescriptor.addField(field.property);\n }\n });\n const descriptorWithLocalizations = descriptor.copy();\n descriptorWithLocalizations.createTabGroup('localizations');\n if (!descriptor.localizationLocalizationProperty) {\n throw new CommonsInternalError('Localization localization property must be defined');\n }\n descriptorWithLocalizations.addFieldManyEditor(descriptor.localizationLocalizationProperty, localizationsTableViewDescriptor);\n\n return descriptorWithLocalizations;\n }\n return descriptor;\n}\nexport function createFormlyTabType(tabGroups: FieldTabGroupDescriptor<any>[], formEditorComponent: IFormEditorComponent<unknown>): FormlyFieldConfig[] {\n const tabsField: FormlyFieldConfig = {\n type: 'tabs',\n fieldGroup: [],\n props: {\n formEditorComponent\n }\n };\n for (const tab of tabGroups) {\n const tabField: CommonsFormlyFieldConfig = {\n id: tab.name,\n props: {\n formEditorComponent\n },\n expressions: {},\n fieldGroup: []\n };\n if (tab.title) {\n tabField.props.label = tab.title;\n }\n tabField.fieldGroup!.push(...createFormlyGroupType(tab.fields, formEditorComponent));\n tabsField.fieldGroup!.push(tabField);\n }\n return [tabsField];\n}\n\nexport function createFormlyGroupType(groups: FieldGroupDescriptor<any>[], formEditorComponent: IFormEditorComponent<unknown>): FormlyFieldConfig[] {\n if (groups.length === 1 && groups[0].default) {\n // dont use fieldset, just create fields\n return createFormlyFields(groups[0], formEditorComponent);\n } else {\n const groupsField: CommonsFormlyFieldConfig = {\n type: 'fieldset',\n fieldGroup: [],\n props: {\n formEditorComponent\n },\n expressions: {}\n };\n for (const group of groups) {\n const groupField: CommonsFormlyFieldConfig = {\n id: group.name,\n props: {\n descriptor: group\n },\n expressions: {},\n fieldGroup: []\n };\n if (group.title) {\n groupField.props.label = group.title;\n }\n groupField.fieldGroup!.push(...createFormlyFields(group, formEditorComponent));\n groupsField.fieldGroup!.push(groupField);\n }\n return [groupsField];\n }\n}\n\nexport function createFormlyFields(descriptor: FieldGroupDescriptor<any>, formEditorComponent: IFormEditorComponent<unknown>): FormlyFieldConfig[] {\n const fields: FormlyFieldConfig[] = [];\n for (const descriptorField of descriptor.fields) {\n fields.push(createFormlyField(descriptorField, formEditorComponent));\n }\n // wrap in group to be able to use flex grid\n const wrapperGroup: FormlyFieldConfig = {\n fieldGroupClassName: 'p-fluid formgrid grid',\n fieldGroup: fields\n };\n\n addValidationsToFormlyField(wrapperGroup, descriptor.validations);\n\n return [wrapperGroup];\n}\n\nexport function createFormlyField(descriptor: AFieldDescriptor<any, any>, formEditorComponent: IFormEditorComponent<unknown>): FormlyFieldConfig {\n const field: CommonsFormlyFieldConfig = {\n key: descriptor.property,\n modelOptions: {\n updateOn: descriptor.updateOn\n },\n hooks: {\n onInit: () => (descriptor.onInit ? descriptor.onInit(field) : undefined),\n onChanges: () => (descriptor.onChanges ? descriptor.onChanges(field) : undefined),\n afterContentInit: () => (descriptor.afterContentInit ? descriptor.afterContentInit(field) : undefined),\n afterViewInit: () => (descriptor.afterViewInit ? descriptor.afterViewInit(field) : undefined),\n onDestroy: () => (descriptor.onDestroy ? descriptor.onDestroy(field) : undefined)\n },\n props: {\n descriptor,\n formEditorComponent,\n onValueChange: descriptor.onValueChange\n },\n expressions: {}\n };\n\n let className = descriptor.className;\n if (!className) {\n // assign default field width through entire row\n className = 'col-12';\n }\n field.className = className;\n\n if (descriptor instanceof FieldInputDescriptor) {\n switch (descriptor.fieldType) {\n case FieldInputTypeEnum.Hidden:\n break;\n case FieldInputTypeEnum.Label:\n field.type = 'label';\n delete field.key;\n break;\n case FieldInputTypeEnum.Textarea:\n field.type = 'textarea';\n field.props.maxLength = descriptor.maxLength;\n field.props.minLength = descriptor.minLength;\n field.props.pattern = descriptor.pattern;\n break;\n case FieldInputTypeEnum.Number:\n field.type = 'number';\n field.props.min = descriptor.numberMin;\n field.props.max = descriptor.numberMax;\n break;\n case FieldInputTypeEnum.Currency:\n field.type = 'currency';\n field.props.min = descriptor.numberMin;\n field.props.max = descriptor.numberMax;\n break;\n case FieldInputTypeEnum.Switch:\n field.type = 'switch';\n field.defaultValue = false;\n break;\n case FieldInputTypeEnum.Radio:\n field.type = 'radio';\n break;\n case FieldInputTypeEnum.Datepicker:\n field.type = 'datepicker';\n break;\n case FieldInputTypeEnum.Mask:\n field.type = 'mask';\n break;\n case FieldInputTypeEnum.File:\n case FieldInputTypeEnum.ImageFile:\n field.type = 'file';\n break;\n case FieldInputTypeEnum.ImageUrl:\n field.type = 'imageUrl';\n break;\n case FieldInputTypeEnum.Custom:\n if (descriptor.customComponentType) {\n field.type = 'custom';\n field.props['customComponentType'] = descriptor.customComponentType;\n if (Array.isArray(descriptor.customComponentWrappers)) {\n field.wrappers = descriptor.customComponentWrappers;\n } else {\n // default wrapper\n field.wrappers = ['field'];\n }\n }\n break;\n default:\n field.type = 'input';\n field.props.minLength = descriptor.minLength;\n field.props.maxLength = descriptor.maxLength;\n field.props.pattern = descriptor.pattern;\n break;\n }\n } else if (descriptor instanceof FieldActionDescriptor) {\n field.type = 'action';\n field.wrappers = descriptor.wrappers;\n delete field.key;\n } else if (descriptor instanceof FieldLookupEnumDescriptor) {\n switch (descriptor.lookupType) {\n case FieldLookupTypeEnum.Custom:\n field.type = descriptor.customComponentName;\n break;\n default:\n field.type = 'enum';\n break;\n }\n } else if (descriptor instanceof FieldLookupDescriptor) {\n switch (descriptor.lookupType) {\n case FieldLookupTypeEnum.Autocomplete:\n field.type = 'autocomplete';\n break;\n case FieldLookupTypeEnum.Dialog:\n field.type = 'dialog';\n break;\n case FieldLookupTypeEnum.Custom:\n field.type = descriptor.customComponentName;\n break;\n case FieldLookupTypeEnum.Dropdown:\n default:\n field.type = 'dropdown';\n break;\n }\n } else if (descriptor instanceof FieldManyToManyEditorDescriptor) {\n field.type = 'table-dialog-multiselect';\n } else if (descriptor instanceof FieldManyEditorDescriptor) {\n field.type = 'table-dialog-form';\n }\n\n if (descriptor.label) {\n field.props.label = descriptor.label;\n }\n\n if (descriptor.requiredExpression) {\n field.expressions!['props.required'] = descriptor.requiredExpression;\n }\n if (descriptor.required) {\n field.props!.required = true;\n if (descriptor.requiredHideLabelMarker) {\n field.props!['hideRequiredMarker'] = true;\n }\n }\n\n if (descriptor.hiddenExpression) {\n field.expressions!['hide'] = descriptor.hiddenExpression;\n }\n\n if (descriptor.disabledExpression) {\n field.expressions!['props.disabled'] = descriptor.disabledExpression;\n } else if (descriptor.disabled) {\n field.props.disabled = true;\n } else {\n field.expressions!['props.disabled'] = 'formState.disabled';\n }\n\n if (typeof descriptor.defaultValue !== 'undefined') {\n field.defaultValue = descriptor.defaultValue;\n }\n\n addValidationsToFormlyField(field, descriptor.validations);\n addAsyncValidationsToFormlyField(field, descriptor.asyncValidations);\n\n return field;\n}\n\nexport function addValidationsToFormlyField(config: FormlyFieldConfig, validations: Array<FieldValidationDescriptor>) {\n if (!config.validators) {\n config.validators = {};\n }\n\n for (const validation of validations) {\n if (typeof validation.validator === 'function') {\n config.validators[validation.name] = {\n expression: (\n control: AbstractControl,\n field: FormlyFieldConfig,\n options?: {\n [id: string]: any;\n }\n ) => {\n const validatorRes = validation.validator!(control, field, options);\n // formly validator only excepts true/false for validation\n // map possible angular validator result to true/false\n return typeof validatorRes === 'boolean' ? validatorRes : validatorRes === null;\n }\n };\n if (typeof validation.message === 'function') {\n config.validators[validation.name].message = validation.message;\n }\n } else {\n if (!Array.isArray(config.validators.validation)) {\n config.validators.validation = [];\n }\n config.validators.validation.push(validation.name);\n }\n }\n}\n\nexport function addAsyncValidationsToFormlyField(config: FormlyFieldConfig, asyncValidations: Array<FieldValidationDescriptor>) {\n if (!config.asyncValidators) {\n config.asyncValidators = {};\n }\n\n for (const validation of asyncValidations) {\n if (typeof validation.validator === 'function') {\n config.asyncValidators[validation.name] = {\n expression: (\n control: AbstractControl,\n field: FormlyFieldConfig,\n options?: {\n [id: string]: any;\n }\n ) => {\n const validator = <FieldAsyncValidator>validation.validator;\n\n const validatorObs: Observable<ValidationErrors | boolean | null> = validator(control, field, options);\n // formly validator only excepts true/false for validation\n // map possible angular validator result to true/false\n return validatorObs.pipe(map(value => (typeof value === 'boolean' ? value : value === null)));\n }\n };\n if (typeof validation.message === 'function') {\n config.asyncValidators[validation.name].message = validation.message;\n }\n } else {\n if (!Array.isArray(config.asyncValidators.validation)) {\n config.asyncValidators.validation = [];\n }\n config.asyncValidators.validation.push(validation.name);\n }\n }\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {Message} from 'primeng/api';\n\nexport function getFormEditorInfoMessage(translate: TranslateService, title: string, message: string, params?: any): Message {\n const actionErrorTitle = translate.instant(title) ?? undefined;\n const actionErrorMessage = translate.instant(message, params) ?? undefined;\n return {severity: 'info', summary: actionErrorTitle, detail: actionErrorMessage};\n}\n\nexport function getFormEditorWarningMessage(translate: TranslateService, title: string, message: string): Message {\n const actionErrorTitle = translate.instant(title) ?? undefined;\n const actionErrorMessage = translate.instant(message) ?? undefined;\n return {severity: 'warn', summary: actionErrorTitle, detail: actionErrorMessage};\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n Type,\n ViewChild,\n inject\n} from '@angular/core';\nimport {AbstractControl, FormArray, FormGroup, ReactiveFormsModule} from '@angular/forms';\n\nimport {FormlyFieldConfig, FormlyFormOptions, FormlyModule} from '@ngx-formly/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Message} from 'primeng/api';\nimport {ButtonModule} from 'primeng/button';\nimport {MessagesModule} from 'primeng/messages';\nimport {Observable, Subscription, debounceTime, distinctUntilChanged, of} from 'rxjs';\n\nimport {CommonsService, LoggerService, TemplateDirective, objectDeepCopy} from '@mediusinc/mng-commons/core';\nimport {\n CommonsFormlyFieldConfig,\n EditorDescriptorInst,\n FormEditorSubmitEvent,\n FormEventTypeEnum,\n FormFieldEventComponentSubtype,\n IFormEditorComponent,\n TableviewEditorTypeEnum\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ViewContainer} from '../../../action/services/view-container.service';\nimport {createFormlyConfigFromDescriptor} from '../../helpers/editor-formly';\nimport {getFormEditorInfoMessage, getFormEditorWarningMessage} from '../../helpers/notification';\n\n@Component({\n standalone: true,\n selector: 'mng-form-editor',\n templateUrl: './form-editor.component.html',\n imports: [FormlyModule, ReactiveFormsModule, MessagesModule, AsyncPipe, ButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormEditorComponent<Item = any> implements IFormEditorComponent<Item>, OnInit, OnChanges, OnDestroy {\n private readonly translateService = inject(TranslateService);\n private readonly commons = inject(CommonsService);\n private readonly logger = inject(LoggerService).create('FormEditorComponent');\n private viewContainer = inject(ViewContainer, {optional: true});\n\n // metadata and editor mode input\n @Input() public descriptor?: EditorDescriptorInst<Item>;\n @Input() public submitLoading: Observable<boolean> | boolean = false;\n\n // data source inputs;\n @Input() public item?: Item;\n\n // extra features input\n @Input() public isFormDisabled = false;\n\n // event outputs\n @Output('formSubmit') public formSubmitEventEmitter = new EventEmitter<FormEditorSubmitEvent<Item>>();\n\n // content and view queries\n @ContentChildren(TemplateDirective) public templates!: QueryList<TemplateDirective>;\n @ViewChild('submitButton') public submitButtonElementRef?: ElementRef;\n\n public form: FormGroup = new FormGroup({});\n public formOptions: FormlyFormOptions = {\n formState: {\n add: false,\n edit: false,\n disabled: false\n }\n };\n public formFields!: FormlyFieldConfig[];\n public formModel: any = {};\n public formMessages: Message[] = [];\n public submitLoading$!: Observable<boolean>;\n private originalItemPrototype?: Type<Item>;\n\n private subscriptions: Subscription[] = [];\n\n public ngOnInit() {\n this.setInitialFormState();\n this.resetFormModel(this.item);\n this.submitLoading$ = this.submitLoading instanceof Observable ? this.submitLoading : of(this.submitLoading);\n\n if (this.descriptor) {\n // init fields for formly\n this.formFields = createFormlyConfigFromDescriptor(this.descriptor, this);\n this.updateFormState();\n\n // let the user know, that adding new value in table view with localizations is only supported in the default language\n if (\n this.descriptor.isLocalized &&\n (this.descriptor.tableviewEditorType === TableviewEditorTypeEnum.Add || this.descriptor.tableviewEditorType === TableviewEditorTypeEnum.Edit)\n ) {\n this.formMessages.push(\n getFormEditorInfoMessage(\n this.translateService,\n 'mngEditor.localizations.addInDefaultLanguageTitle',\n 'mngEditor.localizations.addInDefaultLanguageDescription',\n {defaultLanguage: this.commons.defaultDataLanguage}\n )\n );\n }\n }\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormEventTypeEnum.ComponentLifecycle, FormEditorComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n this.subscriptions.push(\n this.form.valueChanges.pipe(debounceTime(250), distinctUntilChanged()).subscribe(v => {\n this.descriptor?.nextEvent(FormEventTypeEnum.ValueChange, FormEditorComponent, this, {\n value: v,\n formValue: () => this.getFormValue()\n });\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['isFormDisabled'] && !changes['isFormDisabled'].firstChange) {\n this.updateFormState();\n }\n if (changes['item'] && !changes['item'].firstChange) {\n this.resetFormModel(this.item);\n }\n }\n\n public ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormEventTypeEnum.ComponentLifecycle, FormEditorComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n // complete emitting events\n this.descriptor?.completeEvents();\n }\n\n public submit() {\n this.submitButtonElementRef?.nativeElement.click();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onSubmit(event: Event) {\n this.formOptions.formState.submittedOn = Date.now();\n this.formMessages = [];\n\n const formSubmitItem = this.getFormValue();\n if (this.form.valid) {\n this.formSubmitEventEmitter.next({\n success: true,\n formItem: formSubmitItem\n });\n this.descriptor?.nextEvent(FormEventTypeEnum.Submit, FormEditorComponent, this, {\n submitValid: true,\n submitValue: formSubmitItem\n });\n } else {\n // find and mark invalid tabs\n if (this.formFields[0].type === 'tabs' && this.formFields[0].fieldGroup) {\n for (const tab of this.formFields[0].fieldGroup) {\n const isInvalid = this.isAnyFieldInvalid(tab.fieldGroup);\n this.formOptions.formState['tab_' + (tab.id ? tab.id : (tab.props as CommonsFormlyFieldConfig).props.label) + '_invalid'] = isInvalid;\n }\n }\n const event: FormEditorSubmitEvent<Item> = {success: false, formItem: formSubmitItem};\n event.success = false;\n this.formMessages.push(getFormEditorWarningMessage(this.translateService, 'mngEditor.invalidFormToastTitle', 'mngEditor.invalidFormToastMessage'));\n\n this.formSubmitEventEmitter.next(event);\n this.descriptor?.nextEvent(FormEventTypeEnum.Submit, FormEditorComponent, this, {\n submitValid: false,\n submitValue: formSubmitItem\n });\n }\n }\n\n public getFormValue(): Item {\n const formValue = objectDeepCopy(this.form.getRawValue(), {mapGettersToProperties: true});\n\n this.descriptor?.fields.forEach(field => {\n if (field && field.setter) {\n const splitPath = field.property.split('.');\n let fieldValue = formValue;\n for (let i = 0; i < splitPath.length - 1; i++) {\n const currentSubPath = splitPath[i];\n if (typeof fieldValue[currentSubPath] !== 'object') {\n fieldValue[currentSubPath] = {};\n }\n\n fieldValue = fieldValue[currentSubPath];\n }\n\n fieldValue = fieldValue[splitPath[splitPath.length - 1]];\n field.setter(formValue, fieldValue);\n }\n });\n return formValue;\n }\n\n public resetFormModel(item?: Item, markAsPristine = true) {\n if (typeof item !== 'undefined') {\n this.originalItemPrototype = Object.getPrototypeOf(item);\n }\n\n const formModel = (objectDeepCopy(item, {mapGettersToProperties: true}) as Record<string, any>) ?? {};\n\n this.descriptor?.fields.forEach(field => {\n if (field.getter && item) {\n const splitPath = field.property.split('.');\n let currentObject = formModel;\n\n for (let i = 0; i < splitPath.length; i++) {\n const currentSubPath = splitPath[i];\n if (i === splitPath.length - 1) {\n currentObject[currentSubPath] = field.getter(item?.[field.property as keyof object], item);\n } else {\n if (typeof currentObject[currentSubPath] !== 'object') {\n currentObject[currentSubPath] = {};\n }\n\n currentObject = currentObject[currentSubPath];\n }\n }\n }\n });\n if (typeof this.formOptions.resetModel === 'function') {\n // could not be initiated yet\n this.formOptions.resetModel(this.formModel);\n }\n this.formModel = formModel;\n if (markAsPristine) {\n this.form.markAsPristine();\n }\n }\n\n public getFormField(key: string) {\n return this.findFormField(this.form, key.split('.'));\n }\n\n public setFormFieldValue(key: string, value: any) {\n const control = this.getFormField(key);\n if (control) {\n control.setValue(value);\n return true;\n } else {\n this.logger.warn(`Value was not set, because field ${key} was not found.`);\n return false;\n }\n }\n\n public patchFormFieldValue(key: string, value: any) {\n const control = this.getFormField(key);\n if (control) {\n control.patchValue(value);\n return true;\n } else {\n this.logger.warn(`Value was not set, because field ${key} was not found.`);\n return false;\n }\n }\n\n public resetFormFieldValue(key: string, value?: any) {\n const control = this.getFormField(key);\n if (control) {\n control.reset(value);\n return true;\n } else {\n this.logger.warn(`Value was not set, because field ${key} was not found.`);\n return false;\n }\n }\n\n private findFormField(control: AbstractControl, keyPath: string[]): AbstractControl | null {\n if (keyPath.length === 0) {\n return control;\n }\n if (keyPath.length === 1) {\n return control.get(keyPath[0]);\n }\n let nextControl: AbstractControl | null = null;\n if (control instanceof FormGroup) {\n nextControl = control.get(keyPath[0]);\n } else if (control instanceof FormArray) {\n const idx = +keyPath[0];\n if (!isNaN(idx)) {\n nextControl = control.at(idx);\n }\n }\n\n if (!control) {\n return null;\n }\n return this.findFormField(nextControl!, keyPath.slice(1));\n }\n\n private isAnyFieldInvalid(fields: FormlyFieldConfig[] = []): boolean {\n for (const field of fields) {\n let fieldInvalid = false;\n if (Array.isArray(field.fieldGroup)) {\n fieldInvalid = this.isAnyFieldInvalid(field.fieldGroup);\n } else if (typeof field.type !== 'undefined') {\n fieldInvalid = !field.formControl?.valid;\n }\n if (fieldInvalid) {\n return true;\n }\n }\n return false;\n }\n\n private updateFormState() {\n const isDisabled = this.isFormDisabled || this.descriptor?.disabled === true || this.descriptor?.tableviewEditorType === TableviewEditorTypeEnum.Details;\n this.formOptions.formState.disabled = isDisabled;\n }\n\n /**\n * @private Sets form state based on editor descriptor type.\n * Possible options are: disabled, add or edit.\n */\n private setInitialFormState(): void {\n if (this.descriptor?.tableviewEditorType === TableviewEditorTypeEnum.Add) {\n this.formOptions.formState.add = true;\n } else if (this.descriptor?.tableviewEditorType === TableviewEditorTypeEnum.Edit) {\n this.formOptions.formState.edit = true;\n }\n this.updateFormState();\n }\n}\n","<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formFields\" [options]=\"formOptions\" [model]=\"formModel\"></formly-form>\n <button\n #submitButton\n pButton\n type=\"submit\"\n class=\"hidden\"\n [disabled]=\"form.disabled\"\n [loading]=\"(submitLoading$ | async) ?? false\"\n loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages\" [enableService]=\"false\"></p-messages>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n WritableSignal,\n effect,\n inject,\n signal\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute} from '@angular/router';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfirmationService} from 'primeng/api';\nimport {DialogService, DynamicDialogConfig} from 'primeng/dynamicdialog';\nimport {ProgressSpinnerModule} from 'primeng/progressspinner';\nimport {ToolbarModule} from 'primeng/toolbar';\nimport {ZIndexUtils} from 'primeng/utils';\nimport {Observable, Subject, Subscription, of} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nimport {ActionData, ActionParameters, CommonsInternalError, CommonsService, ComponentDirective, IDataProvider, IdType, LoggerService} from '@mediusinc/mng-commons/core';\nimport {\n ActionActivationTriggerEnum,\n ActionDescriptorInst,\n ActionEditorDescriptorInst,\n ActionEditorSubmitDescriptorInst,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n ActionTypeEnum,\n FormEditorSubmitEvent,\n IActionEditorComponent,\n IActionInstance\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {FormEditorComponent} from '../../../../editor/components/editor/form-editor.component';\nimport {getI18nActionEditorTitleAsync} from '../../../helpers/i18n';\nimport {ActionInstanceStateEnum} from '../../../models/execution/action-instance-state.model';\nimport {ActionInstance} from '../../../models/execution/action-instance.model';\nimport {ActionExecutorService} from '../../../services/action-executor.service';\nimport {provideActionExecutor} from '../../../services/providers/provide-action-executor';\nimport {ViewContainer} from '../../../services/view-container.service';\nimport {ActionComponent} from '../../action/action.component';\n\n@Component({\n standalone: true,\n selector: 'mng-action-editor-injector-context',\n templateUrl: './action-editor-injector-context.component.html',\n styleUrls: ['action-editor-injector-context.component.scss'],\n imports: [ActionComponent, ProgressSpinnerModule, FormEditorComponent, ComponentDirective, ToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideActionExecutor()]\n})\nexport class ActionEditorInjectorContextComponent<Item = any, Service = any> implements OnInit, OnDestroy, IActionEditorComponent {\n protected readonly ActionActivationTriggerEnum = ActionActivationTriggerEnum;\n public readonly actionEditorSubmitTypeSubmit = ActionEditorSubmitTypeEnum.Submit;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly route = inject(ActivatedRoute);\n private readonly translate = inject(TranslateService);\n private readonly confirmationService = inject(ConfirmationService);\n private readonly dialogService = inject(DialogService);\n private readonly logger = inject(LoggerService).create('ActionEditorInjectorContextComponent');\n private readonly commonsService = inject(CommonsService);\n private readonly actionExecutor = inject(ActionExecutorService);\n private readonly viewContainer = inject(ViewContainer, {optional: true});\n\n // metadata and editor mode input\n @Input({required: true}) data!: ActionEditorInjectorContextInputData<Item, Service>;\n\n @Output('actionSubmit') public actionRunEventEmitter = new EventEmitter<Item | null | undefined>();\n @Output('actionCancel') public actionCancelEventEmitter = new EventEmitter<Item | null | undefined>();\n\n // content and view queries\n @ViewChild('submitButton') public submitButtonElementRef!: ElementRef;\n @ViewChild(FormEditorComponent) public formEditorCmp?: FormEditorComponent;\n\n public title: WritableSignal<string | undefined> = signal(undefined);\n public isFormDisabled = signal(false);\n\n // data\n public item: WritableSignal<Item | undefined> = signal(undefined);\n public itemId: WritableSignal<IdType | undefined> = signal(undefined);\n public actionData: WritableSignal<ActionData | undefined> = signal(undefined);\n\n // actions\n public toolbarLeftActions: WritableSignal<ActionDescriptorInst<Item, Service>[]> = signal([]);\n public toolbarRightActions: WritableSignal<ActionDescriptorInst<Item, Service>[]> = signal([]);\n public footerLeftActions: WritableSignal<ActionDescriptorInst<Item, Service>[]> = signal([]);\n public footerRightActions: WritableSignal<ActionDescriptorInst<Item, Service>[]> = signal([]);\n private instance?: ActionInstance<Item, Service>;\n private instanceStateSubscription?: Subscription;\n private instanceReactivationSubscription?: Subscription;\n private instanceSubmitFormItem?: Item | null;\n private instanceSubmitResult?: Item | null;\n\n public loading = signal(false);\n private fetchExecutionSubscription?: Subscription;\n public submitLoading = signal(false);\n private submitExecutionSubscription?: Subscription;\n\n constructor() {\n effect(() => {\n const title = this.title();\n requestAnimationFrame(() => {\n if (this.data.dialogConfig) {\n this.data.dialogConfig.header = title;\n }\n if (this.data.descriptor.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n this.commonsService.setPageTitle(title);\n }\n });\n });\n }\n\n ngOnInit() {\n if (this.data.actionInstance) {\n this.processActionInstance(this.data.actionInstance);\n }\n\n if (!this.data.dataProvider) {\n this.data.dataProvider = this.viewContainer?.dataProvider;\n }\n\n this.item.set(this.data.item);\n this.itemId.set(this.data.itemId);\n this.actionData.set(this.data.actionData);\n\n // arrange the sub-actions\n this.initializeSubActions();\n\n // notify executor to for activation to end\n this.processActionInstance(this.actionExecutor.onActionEditorInit(this.data.descriptor, this.instance, this));\n\n // set title\n this.updateTitle();\n\n // subscribe to events that could be triggered from outside from any reason\n this.viewContainer?.editorReset$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: e => {\n if (e.fetch) {\n this.fetchItem();\n } else if (e.item) {\n this.formEditorCmp?.resetFormModel(e.item);\n } else if (e.fields) {\n for (const key in e.fields) {\n this.formEditorCmp?.resetFormFieldValue(key, e.fields[key]);\n }\n }\n }\n });\n\n this.viewContainer?.editorClose$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n next: () => {\n this.cancel();\n }\n });\n }\n\n public ngOnDestroy() {\n this.fetchExecutionSubscription?.unsubscribe();\n this.submitExecutionSubscription?.unsubscribe();\n const instance = this.instance;\n this.unsetInstance();\n this.actionExecutor.onActionEditorDestroy(instance);\n }\n\n public onSubmit(event: FormEditorSubmitEvent<Item>) {\n if (!this.instance) {\n throw new CommonsInternalError(`Action is not instantiated in action editor for action ${this.data.descriptor.actionName}.`);\n }\n if (event.success) {\n this.instanceSubmitFormItem = event.formItem;\n\n // prepare parameters\n const actionParameters: ActionParameters<Item> = {\n itemId: this.itemId(),\n item: event.formItem,\n actionData: this.actionData()\n };\n if (this.data.descriptor.editorDescriptor.isLocalized) {\n actionParameters.locale = this.commonsService.appDataLanguageDefault;\n }\n\n const context = this.actionExecutor.prepareContextForEditorSubmit(\n this.data.descriptor,\n actionParameters,\n this.data.dataProvider,\n this.instance,\n this.data.previousActionInstance\n );\n\n this.submitExecutionSubscription?.unsubscribe();\n this.submitExecutionSubscription = context.execution$.pipe(take(1)).subscribe({\n next: res => {\n if (res && typeof res === 'object' && !this.itemId() && this.data.descriptor.model?.idProperty) {\n // to cover creation!\n this.updateItemId(res[this.data.descriptor.model.idProperty as keyof object]);\n }\n this.actionRunEventEmitter.next(res);\n this.instanceSubmitResult = res;\n }\n });\n\n this.actionExecutor.run(context);\n }\n }\n\n public cancel() {\n if (!this.instance) {\n this.logger.warn(`Action editor cannot be canceled for ${this.data.descriptor.actionName}, because no action instance is present`);\n return;\n }\n this.actionCancelEventEmitter.next(undefined);\n this.actionExecutor.finishAction(this.instance);\n }\n\n public updateItemId(itemId: IdType | undefined) {\n this.itemId.set(itemId);\n }\n\n public updateItem(item: Item | undefined) {\n this.item.set(item);\n }\n\n public triggerSubmit() {\n this.formEditorCmp?.submit();\n }\n\n private initializeSubActions() {\n for (const action of this.data.descriptor.editorActions) {\n if (action instanceof ActionEditorSubmitDescriptorInst) {\n if (typeof action.button.icon === 'undefined') {\n action.button.withIcon(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'pi pi-check' : 'pi pi-times');\n }\n if (typeof action.button.label === 'undefined') {\n action.button.withLabel(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'general.save' : this.data.isDialog ? 'general.close' : 'general.cancel');\n }\n\n // assign run operations\n action.withRunNotificationSuccess(undefined, undefined, false);\n if (action.submitType === ActionEditorSubmitTypeEnum.Submit) {\n action.withRunFunction(() => {\n this.triggerSubmit();\n return of(null);\n });\n } else {\n action.withRunFunction(() => {\n this.closeWithUnsavedChangesConfirmation();\n return of(null);\n });\n }\n }\n this.placeActionsOnPositions(action);\n }\n\n for (const action of this.viewContainer?.actions.filter(value => value.positionTableviewCategories?.includes(this.data.descriptor.tableviewCategory!)) ?? []) {\n this.placeActionsOnPositions(action);\n }\n\n this.toolbarRightActions.update(v => v.reverse());\n this.footerRightActions.update(v => v.reverse());\n }\n\n private fetchItem() {\n if (!this.instance) {\n throw new CommonsInternalError(`Action is not instantiated in action editor for action ${this.data.descriptor.actionName}.`);\n }\n\n const actionParameters: ActionParameters<Item> = {\n itemId: this.itemId(),\n item: this.item(),\n actionData: this.actionData()\n };\n if (this.data.descriptor.editorDescriptor.isLocalized) {\n if (this.data.descriptor.editorDescriptor.disabled) {\n actionParameters.locale = this.commonsService.appDataLanguage!;\n } else {\n actionParameters.locale = this.commonsService.appDataLanguageDefault;\n }\n }\n if (this.instance?.previousInstance instanceof ActionInstance && this.instance.previousInstance.context?.parameters.item) {\n actionParameters.formItem = this.instance.previousInstance.context.parameters.item;\n }\n if (typeof this.instance?.previousInstance?.result !== 'undefined') {\n actionParameters.submitResult = this.instance?.previousInstance?.result;\n }\n\n const context = this.actionExecutor.prepareContextForEditorFetch(\n this.data.descriptor,\n actionParameters,\n this.data.dataProvider,\n this.instance,\n this.data.previousActionInstance\n );\n this.fetchExecutionSubscription?.unsubscribe();\n this.fetchExecutionSubscription = context.execution$.pipe(take(1)).subscribe(res => {\n this.updateItem(res ?? undefined);\n this.updateTitle();\n });\n\n this.actionExecutor.run(context);\n }\n\n private updateTitle() {\n if (this.data.descriptor.editorTitle === null) {\n this.title.set(undefined);\n return;\n }\n getI18nActionEditorTitleAsync(this.translate, this.data.descriptor, this.item()).subscribe(t => {\n this.title.set(t ?? undefined);\n });\n }\n\n private placeActionsOnPositions(action: ActionDescriptorInst<any>) {\n switch (action.position) {\n case ActionPositionEnum.ToolbarLeft:\n this.toolbarLeftActions.update(v => [...v, action]);\n break;\n case ActionPositionEnum.ToolbarRight:\n this.toolbarRightActions.update(v => [...v, action]);\n break;\n case ActionPositionEnum.FooterLeft:\n this.footerLeftActions.update(v => [...v, action]);\n break;\n case ActionPositionEnum.FooterRight:\n this.footerRightActions.update(v => [...v, action]);\n break;\n }\n }\n\n private setEditorEnabled(isEnabled = true) {\n this.isFormDisabled.set(!isEnabled);\n }\n\n private processActionInstance(instance: IActionInstance<Item, Service>) {\n if (!(instance instanceof ActionInstance)) {\n throw new CommonsInternalError('Unknown type of action instance received', {details: instance});\n }\n if (!this.instance || this.instance.instanceLongName !== instance.instanceLongName) {\n this.unsetInstance();\n this.instance = instance;\n\n this.instanceStateSubscription = this.instance.state$.subscribe(s => {\n switch (s) {\n case ActionInstanceStateEnum.ActivationEnd:\n this.fetchItem();\n break;\n case ActionInstanceStateEnum.FetchStart:\n this.setEditorEnabled(false);\n this.loading.set(true);\n break;\n case ActionInstanceStateEnum.FetchError:\n this.loading.set(false);\n break;\n case ActionInstanceStateEnum.FetchEnd:\n this.setEditorEnabled(true);\n this.loading.set(false);\n break;\n case ActionInstanceStateEnum.RunStart:\n this.setEditorEnabled(false);\n this.submitLoading.set(true);\n break;\n case ActionInstanceStateEnum.RunEnd:\n case ActionInstanceStateEnum.RunError:\n this.setEditorEnabled(true);\n this.submitLoading.set(false);\n break;\n case ActionInstanceStateEnum.NextActionStart:\n if (this.instance?.nextActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.submitLoading.set(true);\n }\n break;\n case ActionInstanceStateEnum.NextActionEnd:\n if (this.instance?.nextActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.submitLoading.set(false);\n }\n break;\n case ActionInstanceStateEnum.ErrorActionStart:\n if (this.instance?.errorActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.submitLoading.set(true);\n }\n break;\n case ActionInstanceStateEnum.ErrorActionEnd:\n if (this.instance?.errorActionInstance?.action.type === ActionTypeEnum.Direct) {\n this.submitLoading.set(false);\n }\n break;\n case ActionInstanceStateEnum.FinishErrorFinal:\n this.setEditorEnabled(false);\n break;\n case ActionInstanceStateEnum.FinishSuccessFinal:\n case ActionInstanceStateEnum.FinishDismissedFinal:\n this.setEditorEnabled(false);\n this.unsetInstance();\n break;\n case ActionInstanceStateEnum.FinishSuccessReactivateFinal:\n this.setEditorEnabled(false);\n // should also unsetInstance, but let this for reactivationInstance$ listener to not interfere\n break;\n }\n });\n\n this.instanceReactivationSubscription = this.instance.reactivationInstance$.subscribe(newInstance => {\n this.processActionInstance(newInstance);\n });\n }\n }\n\n private unsetInstance() {\n this.instance = undefined;\n this.instanceStateSubscription?.unsubscribe();\n this.instanceReactivationSubscription?.unsubscribe();\n }\n\n @HostListener('window:beforeunload')\n private beforeWindowUnload() {\n if (this.data.isDialog && this.formEditorCmp?.form.pristine === false) {\n return confirm(this.translate.instant('mngEditor.unsavedChangesConfirmation.message'));\n }\n return true;\n }\n\n @HostListener('window:keydown.Escape')\n private onEscapePressed() {\n if (\n this.data.isDialog &&\n this.data.descriptor.activationTrigger === ActionActivationTriggerEnum.OnRoute &&\n this.instance?.activationDialogRef &&\n parseInt(this.dialogService.dialogComponentRefMap.get(this.instance?.activationDialogRef)?.instance.container?.style.zIndex ?? '') === ZIndexUtils.getCurrent()\n )\n this.closeWithUnsavedChangesConfirmation();\n }\n\n private showUnsavedChangesConfirmationDialog(callFromGuard: boolean): Observable<boolean> {\n const subject = new Subject<boolean>();\n this.confirmationService.confirm({\n header: this.translate.instant('mngEditor.unsavedChangesConfirmation.header'),\n message: this.translate.instant('mngEditor.unsavedChangesConfirmation.message'),\n acceptLabel: this.translate.instant('general.yes'),\n rejectLabel: this.translate.instant('general.no'),\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n if (!callFromGuard) {\n this.cancel();\n }\n subject.next(true);\n subject.complete();\n },\n reject: () => {\n subject.next(false);\n subject.complete();\n }\n });\n return subject.asObservable();\n }\n\n public closeWithUnsavedChangesConfirmation(callFromGuard = false): Observable<boolean> {\n if (this.formEditorCmp?.form.pristine === false && this.data.descriptor.unsavedChangesConfirmation) {\n return this.showUnsavedChangesConfirmationDialog(callFromGuard);\n } else {\n if (!callFromGuard) {\n this.cancel();\n }\n }\n\n return of(true);\n }\n}\n\nexport interface ActionEditorInjectorContextInputData<Item, Service> {\n descriptor: ActionEditorDescriptorInst<Item, Service>;\n isDialog: boolean;\n dialogConfig?: DynamicDialogConfig;\n itemId?: IdType;\n item?: Item;\n actionData?: ActionData;\n dataProvider?: IDataProvider<Item, Service>;\n actionInstance?: ActionInstance<Item, Service>;\n previousActionInstance?: IActionInstance<any, any>;\n}\n","@if (!data.isDialog && title()) {\n <h5>{{ title() }}</h5>\n}\n@if (data.isDialog && data.descriptor.activationTrigger === ActionActivationTriggerEnum.OnRoute) {\n <span class=\"p-dialog-header dialog-close-button-wrapper\">\n <button\n class=\"p-dialog-header-icon p-dialog-header-maximize p-link\"\n type=\"button\"\n (click)=\"closeWithUnsavedChangesConfirmation()\"\n (keydown.enter)=\"closeWithUnsavedChangesConfirmation()\">\n <span class=\"p-dialog-header-close-icon pi pi-times\"></span>\n </button>\n </span>\n}\n<div class=\"h-full flex flex-column\">\n @if (toolbarLeftActions().length > 0 || toolbarRightActions().length > 0) {\n <div class=\"flex-grow-1 mng-action-editor-toolbar-container\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template pTemplate=\"left\">\n @for (action of toolbarLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n <ng-template pTemplate=\"right\">\n @for (action of toolbarRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n </div>\n }\n\n <div class=\"flex-grow-1 mng-action-editor-form-container\">\n @if (loading()) {\n <div class=\"text-center\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n }\n @if (data.descriptor.editorDescriptor && !loading()) {\n <mng-form-editor [descriptor]=\"data.descriptor.editorDescriptor\" [item]=\"item()\" [isFormDisabled]=\"isFormDisabled()\" (formSubmit)=\"onSubmit($event)\"> </mng-form-editor>\n }\n </div>\n\n <div class=\"flex flex-row justify-content-between mng-action-editor-footer-container\">\n <div>\n @for (action of footerLeftActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n <div>\n @for (action of footerRightActions(); track action) {\n <mng-action\n [action]=\"action\"\n [disabled]=\"submitLoading()\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading() : false\"\n [hostComponent]=\"this\"\n [item]=\"item()\"\n [itemId]=\"itemId()\"></mng-action>\n }\n </div>\n </div>\n</div>\n","import {ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Injector, Input, OnChanges, OnInit, Output, SimpleChanges, Type, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {DynamicDialogConfig} from 'primeng/dynamicdialog';\n\nimport {ActionData, CommonsInternalError, ComponentDirective, DialogKeydownHandlerDirective, IDataProvider, IdType} from '@mediusinc/mng-commons/core';\nimport {ActionEditorDescriptorInst} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionEditorDialogData} from '../../models/action-editor-dialog-data.model';\nimport {ActionEditorInjectorContextComponent, ActionEditorInjectorContextInputData} from './injector-context/action-editor-injector-context.component';\n\n@Component({\n standalone: true,\n selector: 'mng-action-editor',\n templateUrl: './action-editor.component.html',\n imports: [ComponentDirective],\n hostDirectives: [DialogKeydownHandlerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionEditorComponent<T = any, S = any> implements OnInit, OnChanges {\n public readonly injContextCmpType = ActionEditorInjectorContextComponent as Type<any>;\n\n public injector = inject(Injector);\n public readonly destroyRef = inject(DestroyRef);\n private readonly dialogConfig = inject(DynamicDialogConfig, {optional: true});\n\n // metadata and editor mode input\n @Input({required: true}) public action!: ActionEditorDescriptorInst<T, S>;\n\n // data source inputs\n @Input('itemId') public itemIdInput?: IdType;\n @Input('item') public itemInput?: T;\n @Input() public actionData?: ActionData;\n @Input() public dataProvider?: IDataProvider<T, S>;\n\n @Output('actionSubmit') public actionRunEventEmitter = new EventEmitter<T | null | undefined>();\n @Output('actionCancel') public actionCancelEventEmitter = new EventEmitter<T | null | undefined>();\n\n private actionEditorWInjContextCmp?: ActionEditorInjectorContextComponent<T, S>;\n public actionEditorWInjContextInputData?: ActionEditorInjectorContextInputData<T, S>;\n\n private isDialog = false;\n\n public get actionEditor() {\n return this.actionEditorWInjContextCmp;\n }\n\n public get formEditorCmp() {\n return this.actionEditor?.formEditorCmp;\n }\n\n ngOnInit() {\n let dialogData: ActionEditorDialogData<T, S> | undefined = undefined;\n\n if (this.dialogConfig?.data) {\n dialogData = this.dialogConfig.data as ActionEditorDialogData<T, S>;\n this.isDialog = true;\n\n // set injector from provided one\n this.injector = dialogData.injector;\n }\n\n this.actionEditorWInjContextInputData = {\n isDialog: this.isDialog,\n dialogConfig: this.dialogConfig ?? undefined,\n descriptor: dialogData?.action.descriptor ?? this.action,\n actionInstance: dialogData?.action.instance,\n previousActionInstance: dialogData?.action.previousInstance,\n itemId: dialogData?.action.instance.activationParameters?.itemId ?? this.itemIdInput,\n item: dialogData?.action.instance.activationParameters?.item ?? this.itemInput,\n actionData: dialogData?.action.instance.activationParameters?.actionData ?? this.actionData,\n dataProvider: this.dataProvider\n };\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['itemIdInput'] && !changes['itemIdInput'].firstChange) {\n this.actionEditorWInjContextCmp?.updateItemId(this.itemIdInput);\n }\n if (changes['itemInput'] && !changes['itemInput'].firstChange) {\n this.actionEditorWInjContextCmp?.updateItem(this.itemInput);\n }\n }\n\n public onActionEditorWInjContextCmp(cmp: ActionEditorInjectorContextComponent<T, S>) {\n if (this.actionEditorWInjContextCmp) {\n throw new CommonsInternalError('Action editor injection context component is already initialized');\n }\n this.actionEditorWInjContextCmp = cmp;\n this.actionEditorWInjContextCmp.actionCancelEventEmitter.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(action => {\n this.actionCancelEventEmitter.emit(action);\n });\n this.actionEditorWInjContextCmp.actionRunEventEmitter.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(action => {\n this.actionRunEventEmitter.emit(action);\n });\n }\n\n public cancel() {\n this.actionEditorWInjContextCmp?.cancel();\n }\n\n public triggerSubmit() {\n this.actionEditorWInjContextCmp?.triggerSubmit();\n }\n}\n","<div\n [mngComponent]=\"injContextCmpType\"\n [inputs]=\"{\n data: actionEditorWInjContextInputData\n }\"\n [nodeInjector]=\"injector\"\n (instanceCreated)=\"onActionEditorWInjContextCmp($event)\"></div>\n","import {Component, EventEmitter, Input, Output, ViewChild, inject} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\n\nimport {of} from 'rxjs';\n\nimport {ActionData, ActionParameters, CommonsService, IdType} from '@mediusinc/mng-commons/core';\nimport {DropdownComponent} from '@mediusinc/mng-commons/form';\nimport {LookupDataProvider, LookupDataProviderInst} from '@mediusinc/mng-commons/form/api';\nimport {ActionDescriptorInst, IActionComponent} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ViewContainer} from '../../services/view-container.service';\n\n@Component({\n standalone: true,\n selector: 'mng-data-language-dropdown',\n imports: [DropdownComponent, FormsModule],\n templateUrl: 'data-language-dropdown.component.html'\n})\nexport class DataLanguageDropdownComponent<T = any> implements IActionComponent<T> {\n private readonly viewContainer = inject(ViewContainer, {optional: true});\n\n @Input({required: true}) public action!: ActionDescriptorInst<T>;\n @Input({required: true}) public actionData!: ActionData;\n @Input({required: true}) public item!: T;\n @Input({required: true}) public itemId!: IdType;\n @Input({required: true}) public enabled!: boolean;\n @Input({required: true}) public loading!: boolean;\n\n @Output() public triggerActionEventEmitter: EventEmitter<ActionParameters<T>> = new EventEmitter<ActionParameters<T>>();\n @ViewChild(DropdownComponent) private dropdown?: DropdownComponent;\n\n // dropdown properties\n public selectionItemsDataProvider: LookupDataProviderInst<string>;\n\n constructor(public commons: CommonsService) {\n this.selectionItemsDataProvider = LookupDataProvider.create<string>().withLookup(() => of(commons.appDataLanguages));\n }\n\n public updateDataLanguage(dataLang: string): void {\n this.commons.appDataLanguage = dataLang;\n this.viewContainer?.reloadTable({});\n }\n}\n","<mng-dropdown [dataProvider]=\"selectionItemsDataProvider\" [ngModel]=\"commons.appDataLanguage\" [showClear]=\"false\" (valueChange)=\"updateDataLanguage($event)\"></mng-dropdown>\n","import {ChangeDetectionStrategy, Component, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationSkipped, NavigationStart, Params, Router} from '@angular/router';\n\nimport {Observable, Subscription, of} from 'rxjs';\n\nimport {ActionData, ActionParameters, CommonsInternalError} from '@mediusinc/mng-commons/core';\nimport {ActionActivationTriggerEnum, ActionDescriptorInst, ActionTypeEnum, IActionInstance} from '@mediusinc/mng-commons/tableview/api';\n\nimport {CanComponentDeactivate} from '../../models/can-component-deactivate.model';\nimport {ActionInstanceStateEnum} from '../../models/execution/action-instance-state.model';\nimport {ActionInstance} from '../../models/execution/action-instance.model';\nimport {ActionExecutorService} from '../../services/action-executor.service';\nimport {provideActionExecutor} from '../../services/providers/provide-action-executor';\nimport {ViewContainer} from '../../services/view-container.service';\n\n@Component({\n standalone: true,\n selector: 'mng-action-route',\n templateUrl: './action-route.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideActionExecutor()]\n})\nexport class ActionRouteComponent<Item, Service> implements OnInit, OnDestroy, CanComponentDeactivate {\n public cmpId: string = Math.random().toString(36).substring(2);\n private actions: Array<ActionDescriptorInst<any>> = [];\n private instance?: ActionInstance<Item, Service>;\n private instanceStateSubscription?: Subscription;\n private instanceReactivationSubscription?: Subscription;\n\n private subscriptions: Array<Subscription> = [];\n private isRouterNavigationInProgress = false;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private actionExecutor: ActionExecutorService,\n @Optional() private viewContainer: ViewContainer<Item, Service> | null\n ) {}\n\n public ngOnInit() {\n this.actions = this.viewContainer?.actions.filter(a => a.activationTrigger === ActionActivationTriggerEnum.OnRoute) ?? [];\n this.subscriptions.push(\n this.route.params.subscribe(p => {\n const action = this.findActionForRoute(p) ?? undefined;\n if (action) {\n this.activateAction(action, p, this.route.snapshot.queryParams);\n }\n })\n );\n this.subscriptions.push(\n this.router.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n this.isRouterNavigationInProgress = true;\n } else if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError || e instanceof NavigationSkipped) {\n this.isRouterNavigationInProgress = false;\n }\n })\n );\n }\n\n public ngOnDestroy() {\n const instance = this.instance;\n this.unsetInstance();\n this.actionExecutor.onActionRouteDestroy(instance);\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n private activateAction(action: ActionDescriptorInst<any>, p: Params, qp: Params) {\n const itemId = p['itemId'];\n const actionData: ActionData = {};\n for (const key in p) {\n if (key === 'itemId') {\n continue;\n }\n actionData[key] = p[key];\n }\n for (const key in qp) {\n actionData[key] = p[key];\n }\n\n this.processActionInstance(\n this.actionExecutor.activateAction(action, <ActionParameters<Item>>{\n itemId: itemId,\n actionData: actionData,\n sourceComponent: this,\n route: this.route\n })\n );\n }\n\n private untriggerAction() {\n if (!this.instance || this.isRouterNavigationInProgress) {\n return;\n }\n const instance = this.instance;\n this.unsetInstance();\n this.actionExecutor.finishActionRouteUntrigger(instance);\n }\n\n private findActionForRoute(params: Params): ActionDescriptorInst<any> | null {\n const urlSegments = this.route.snapshot.url;\n for (const action of this.actions) {\n let actionUrl = action.routeUrl ?? '';\n if (actionUrl.startsWith('/')) {\n actionUrl = actionUrl.substring(1);\n }\n const actionUrlSegments = actionUrl.split('/');\n if (actionUrlSegments.length !== urlSegments.length) {\n continue;\n }\n let isMatch = true;\n for (let i = 0; i < actionUrlSegments.length; i++) {\n if (actionUrlSegments[i].startsWith(':')) {\n const paramName = actionUrlSegments[i].substring(1);\n if (!params[paramName]) {\n isMatch = false;\n break;\n }\n } else if (actionUrlSegments[i] !== urlSegments[i].path) {\n isMatch = false;\n break;\n }\n }\n if (isMatch) {\n return action;\n }\n }\n return null;\n }\n\n private processActionInstance(instance: IActionInstance<Item, Service>) {\n if (!(instance instanceof ActionInstance)) {\n throw new CommonsInternalError('Unknown type of action instance received', {details: instance});\n }\n\n if (!this.instance || this.instance.instanceLongName !== instance.instanceLongName) {\n this.unsetInstance();\n this.instance = instance;\n\n this.instanceStateSubscription = this.instance.state$.subscribe(s => {\n switch (s) {\n case ActionInstanceStateEnum.FinishSuccessReactivateFinal:\n this.viewContainer?.reloadTable(); // reload only if no error in action and\n break;\n case ActionInstanceStateEnum.FinishSuccessFinal:\n this.viewContainer?.reloadTable(); // reload only if no error in action and\n this.untriggerAction();\n break;\n case ActionInstanceStateEnum.FinishDismissedFinal:\n this.untriggerAction();\n break;\n }\n });\n\n this.instanceReactivationSubscription = this.instance.reactivationInstance$.subscribe(newInstance => {\n this.processActionInstance(newInstance);\n });\n }\n }\n\n public canDeactivate(): Observable<boolean> {\n if (this.instance?.action.type === ActionTypeEnum.Editor && this.instance.activationEditorComponentRef) {\n return this.instance.activationEditorComponentRef.closeWithUnsavedChangesConfirmation(true);\n }\n\n return of(true);\n }\n\n private unsetInstance() {\n this.instance = undefined;\n this.instanceStateSubscription?.unsubscribe();\n this.instanceReactivationSubscription?.unsubscribe();\n }\n}\n","","import {StyleSizeEnum, Styles} from '@mediusinc/mng-commons/core';\nimport {TableDescriptorInst, TableSizeEnum} from '@mediusinc/mng-commons/table/api';\nimport {ActionDescriptorInst} from '@mediusinc/mng-commons/tableview/api';\n\nexport function calculateTableColumnActionWidth(table: TableDescriptorInst<unknown>, actions: Array<ActionDescriptorInst<unknown>>): number {\n const buttonsWidth = actions.reduce((acc, action) => acc + getActionButtonRoundedWidth(action) + 2 * Styles.ACTION_BUTTON_MARGIN_X, 0);\n const tablePadding = getTableCellPaddingX(table);\n return buttonsWidth + 2 * tablePadding;\n}\n\nexport function getTableCellPaddingX(table: TableDescriptorInst<unknown>): number {\n switch (table.size) {\n case TableSizeEnum.Small:\n return Styles.TABLE_CELL_PADDING_X_SM;\n case TableSizeEnum.Large:\n return Styles.TABLE_CELL_PADDING_X_LG;\n default:\n return Styles.TABLE_CELL_PADDING_X;\n }\n}\n\nexport function getActionButtonRoundedWidth(action: ActionDescriptorInst<any>): number {\n switch (action.button.styleClass.size) {\n case StyleSizeEnum.ExtraSmall:\n return Styles.BUTTON_ROUNDED_WIDTH_XS;\n case StyleSizeEnum.Small:\n return Styles.BUTTON_ROUNDED_WIDTH_SM;\n case StyleSizeEnum.Large:\n case StyleSizeEnum.ExtraLarge:\n return Styles.BUTTON_ROUNDED_WIDTH_LG;\n case StyleSizeEnum.Normal:\n default:\n return Styles.BUTTON_ROUNDED_WIDTH;\n }\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n Signal,\n TemplateRef,\n Type,\n ViewChild,\n ViewChildren,\n WritableSignal,\n computed,\n contentChildren,\n inject,\n signal\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute} from '@angular/router';\n\nimport {Observable, isObservable, of} from 'rxjs';\n\nimport {ActionParameters, ComponentDirective, DataListResult, TemplateDirective, boolean$Attribute, findTemplateByName} from '@mediusinc/mng-commons/core';\nimport {TableComponent} from '@mediusinc/mng-commons/table';\nimport {ITableDataProvider, TableCellClickEvent, TableDescriptorInst, TableLoadEvent} from '@mediusinc/mng-commons/table/api';\nimport {ActionDescriptorInst, ActionPositionEnum} from '@mediusinc/mng-commons/tableview/api';\n\nimport {calculateTableColumnActionWidth} from '../../helpers/styles';\nimport {ActionInstance} from '../../models/execution/action-instance.model';\nimport {ActionExecutorService} from '../../services/action-executor.service';\nimport {provideActionExecutor} from '../../services/providers/provide-action-executor';\nimport {ViewContainer} from '../../services/view-container.service';\nimport {ActionComponent} from '../action/action.component';\n\n@Component({\n standalone: true,\n selector: 'mng-action-table',\n templateUrl: './action-table.component.html',\n imports: [TableComponent, ActionComponent, TemplateDirective, NgTemplateOutlet],\n providers: [provideActionExecutor()],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionTableComponent<Item = any, Service = undefined, Sorts = keyof Item, Filters extends keyof any = keyof Item> implements OnInit {\n private readonly route = inject(ActivatedRoute);\n private readonly actionExecutor = inject(ActionExecutorService);\n private readonly viewContainer = inject(ViewContainer<Item, Service>, {optional: true});\n\n // metadata input\n @Input({required: true}) public descriptor!: TableDescriptorInst<Item, Sorts, Filters>;\n\n // data source inputs\n @Input() public items?: Observable<Array<Item>> | Array<Item>;\n @Input({transform: (value: unknown) => (isObservable(value) ? (value as Observable<DataListResult<Item>>) : of(value as DataListResult<Item>))})\n public result?: Observable<DataListResult<Item>>;\n @Input({transform: boolean$Attribute}) public loading?: Observable<boolean>;\n @Input() public dataProvider?: ITableDataProvider<Item, Service, Sorts, Filters>;\n @Input() public useQueryParams = false;\n\n // extra features input\n @Input() public selectionMode: 'single' | 'multiple' = 'multiple';\n @Input() public selectionEnabled = false;\n @Input() public globalFilterFields?: string[];\n\n // actions\n @Input() public actions: Array<ActionDescriptorInst<any>> = []; // can be anything\n\n // component inputs\n @Input() public captionComponent?: Type<any>;\n @Input() public columnActionComponent?: Type<any>;\n @Input() public columnActionMinWidth?: number;\n\n // event outputs\n @Output('tableLoad') public loadEventEmitter = new EventEmitter<TableLoadEvent>();\n @Output('selectionChange') public selectionChangeEventEmitter = new EventEmitter<Array<Item>>();\n @Output('captionComponentInstance') public captionCmpInstEventEmitter = new EventEmitter<any>();\n @Output('columnActionComponentInstance') public columnActionCmpInstEventEmitter = new EventEmitter<any>();\n\n // content and view queries\n public templates = contentChildren(TemplateDirective);\n @ViewChildren(ComponentDirective) public components!: QueryList<ComponentDirective<any>>;\n @ViewChild(TableComponent) public table!: TableComponent;\n\n // templates\n public captionTemplate: Signal<TemplateRef<any> | null> = computed(() => findTemplateByName([...this.templates()], 'caption'));\n public footerTemplate: Signal<TemplateRef<any> | null> = computed(() => findTemplateByName([...this.templates()], 'footer'));\n public rowExpandTemplate: Signal<TemplateRef<any> | null> = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'));\n\n // actions\n public rowClickActions: WritableSignal<ActionDescriptorInst<Item>[]> = signal([]);\n public rowInlineActions: WritableSignal<ActionDescriptorInst<Item>[]> = signal([]);\n\n constructor() {\n this.viewContainer?.tableReload$.pipe(takeUntilDestroyed()).subscribe(e => this.reload(e.emitEvent, e.resetParams));\n }\n\n public ngOnInit() {\n // process actions\n const rowClickActions: ActionDescriptorInst<Item>[] = [];\n const rowInlineActions: ActionDescriptorInst<Item>[] = [];\n for (const action of this.actions) {\n switch (action.position) {\n case ActionPositionEnum.RowClick:\n rowClickActions.push(action);\n break;\n case ActionPositionEnum.RowInline:\n rowInlineActions.push(action);\n break;\n }\n }\n this.rowClickActions.set(rowClickActions);\n this.rowInlineActions.set(rowInlineActions);\n\n // define all styles\n if (this.descriptor && !this.columnActionMinWidth) {\n this.columnActionMinWidth = calculateTableColumnActionWidth(this.descriptor as TableDescriptorInst<any>, this.rowInlineActions() as Array<ActionDescriptorInst<any>>);\n }\n }\n\n public reload(emitEvent = false, resetParams = false) {\n this.table.reload(emitEvent, resetParams);\n }\n\n public onCellClick(event: TableCellClickEvent<Item>) {\n if (this.rowClickActions().length) {\n for (const action of this.rowClickActions()) {\n const idProp = this.descriptor?.trackProperty ?? action?.model?.idProperty;\n const parameters: ActionParameters<Item> = {\n itemId: idProp ? event.rowItem[idProp as keyof object] : undefined,\n item: event.rowItem,\n actionData: {\n itemIndex: event.rowIndex\n },\n route: this.route,\n sourceComponent: this\n };\n this.actionExecutor.triggerAction(action, parameters, true);\n }\n }\n }\n\n public onSelectionChange(items: Array<Item>) {\n this.selectionChangeEventEmitter.next(items);\n }\n\n public onActionFinish(runResult: ActionInstance<Item, Service>) {\n if (!runResult.error) {\n this.reload();\n }\n }\n}\n","<mng-table\n [descriptor]=\"descriptor\"\n [items]=\"items\"\n [result]=\"result\"\n [loading]=\"loading\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"useQueryParams\"\n [selectionMode]=\"selectionMode\"\n [selectionEnabled]=\"selectionEnabled\"\n [globalFilterFields]=\"globalFilterFields\"\n [captionComponent]=\"captionComponent\"\n [columnCustomLastComponent]=\"columnActionComponent\"\n [columnLastMinWidth]=\"columnActionMinWidth\"\n (tableLoad)=\"loadEventEmitter.next($event)\"\n (cellClick)=\"onCellClick($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"captionCmpInstEventEmitter.next($event)\"\n (columnCustomLastComponentInstance)=\"columnActionCmpInstEventEmitter.next($event)\">\n @if (!columnActionComponent && rowInlineActions().length > 0) {\n <ng-template mngTemplate=\"columnCustomLast\" let-item=\"rowItem\" let-idx=\"rowIndex\">\n @for (action of rowInlineActions(); track action.actionNameLong) {\n <mng-action\n [action]=\"action\"\n [item]=\"item\"\n [hostComponent]=\"this\"\n [itemId]=\"descriptor.model.idProperty ? item[descriptor.model.idProperty!] : null\"\n [actionData]=\"{itemIndex: idx}\"\n (finish)=\"onActionFinish($event)\">\n </mng-action>\n }\n </ng-template>\n }\n @if (captionTemplate() && !captionComponent) {\n <ng-template mngTemplate=\"caption\">\n <ng-container *ngTemplateOutlet=\"captionTemplate()\"></ng-container>\n </ng-template>\n }\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n</mng-table>\n","import {CanDeactivateFn} from '@angular/router';\n\nimport {CanComponentDeactivate} from '../models/can-component-deactivate.model';\n\nexport const unsavedChangesGuard: CanDeactivateFn<CanComponentDeactivate> = (component: CanComponentDeactivate) => {\n return component.canDeactivate();\n};\n","import {Injector, Provider} from '@angular/core';\n\nimport {ViewContainer} from '../view-container.service';\n\nexport function provideViewContainer(provideParentIfPresent = true): Provider {\n return {\n provide: ViewContainer,\n useFactory: (injector: Injector) => {\n if (provideParentIfPresent) {\n return injector.get(ViewContainer, null, {optional: true, skipSelf: true}) ?? new ViewContainer();\n } else {\n return new ViewContainer();\n }\n },\n deps: [Injector]\n };\n}\n","import {Injectable} from '@angular/core';\n\nimport {Observable} from 'rxjs';\n\nimport {DataListResult, Nullable} from '@mediusinc/mng-commons/core';\nimport {\n DataProviderExecutor,\n IActionContext,\n runCreateFromDataProvider,\n runDeleteFromDataProvider,\n runFetchFromDataProvider,\n runFnFromDataProviderOrFallback,\n runGetAllFromDataProvider,\n runUpdateFromDataProvider\n} from '@mediusinc/mng-commons/tableview/api';\n\n@Injectable()\nexport class DefaultDataProviderExecutor extends DataProviderExecutor {\n public override runGetAll<Item, Service>(ctx: IActionContext<Item, Service>): Observable<DataListResult<Item>> | null;\n public override runGetAll<Item, Service>(ctx: IActionContext<Item, Service>, fallback: Observable<DataListResult<Item>>): Observable<DataListResult<Item>>;\n public override runGetAll<Item, Service>(ctx: IActionContext<Item, Service>, fallback: undefined): Observable<DataListResult<Item>> | null;\n public override runGetAll<Item, Service>(ctx: IActionContext<Item, Service>, fallback?: Observable<DataListResult<Item>>): Observable<DataListResult<Item>> | null {\n return fallback ? runFnFromDataProviderOrFallback(ctx, runGetAllFromDataProvider, fallback) : runGetAllFromDataProvider(ctx);\n }\n\n public override runFetch<Item, Service>(ctx: IActionContext<Item, Service>): Observable<Item> | null;\n public override runFetch<Item, Service>(ctx: IActionContext<Item, Service>, fallback: Observable<Nullable<Item>>): Observable<Nullable<Item>>;\n public override runFetch<Item, Service>(ctx: IActionContext<Item, Service>, fallback: undefined): Observable<Nullable<Item>> | null;\n public override runFetch<Item, Service>(ctx: IActionContext<Item, Service>, fallback?: Observable<Nullable<Item>>): Observable<Nullable<Item>> | null {\n return fallback ? runFnFromDataProviderOrFallback(ctx, runFetchFromDataProvider, fallback) : runFetchFromDataProvider(ctx);\n }\n\n public override runCreate<Item, Service>(ctx: IActionContext<Item, Service>): Observable<Item> | null;\n public override runCreate<Item, Service>(ctx: IActionContext<Item, Service>, fallback: Observable<Nullable<Item>>): Observable<Nullable<Item>>;\n public override runCreate<Item, Service>(ctx: IActionContext<Item, Service>, fallback: undefined): Observable<Nullable<Item>> | null;\n public override runCreate<Item, Service>(ctx: IActionContext<Item, Service>, fallback?: Observable<Nullable<Item>>): Observable<Nullable<Item>> | null {\n return fallback ? runFnFromDataProviderOrFallback(ctx, runCreateFromDataProvider, fallback) : runCreateFromDataProvider(ctx);\n }\n\n public override runUpdate<Item, Service>(ctx: IActionContext<Item, Service>): Observable<Item> | null;\n public override runUpdate<Item, Service>(ctx: IActionContext<Item, Service>, fallback: Observable<Nullable<Item>>): Observable<Nullable<Item>>;\n public override runUpdate<Item, Service>(ctx: IActionContext<Item, Service>, fallback: undefined): Observable<Nullable<Item>> | null;\n public override runUpdate<Item, Service>(ctx: IActionContext<Item, Service>, fallback?: Observable<Nullable<Item>>): Observable<Nullable<Item>> | null {\n return fallback ? runFnFromDataProviderOrFallback(ctx, runUpdateFromDataProvider, fallback) : runUpdateFromDataProvider(ctx);\n }\n\n public override runDelete<Item, Service>(ctx: IActionContext<Item, Service>): Observable<Nullable<Item>> | null;\n public override runDelete<Item, Service>(ctx: IActionContext<Item, Service>, fallback: Observable<Nullable<Item>>): Observable<Nullable<Item>>;\n public override runDelete<Item, Service>(ctx: IActionContext<Item, Service>, fallback: undefined): Observable<Nullable<Item>> | null;\n public override runDelete<Item, Service>(ctx: IActionContext<Item, Service>, fallback?: Observable<Nullable<Item>>): Observable<Nullable<Item>> | null {\n return fallback ? runFnFromDataProviderOrFallback(ctx, runDeleteFromDataProvider, fallback) : runDeleteFromDataProvider(ctx);\n }\n}\n","import {JsonPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule} from 'primeng/button';\nimport {MessageModule} from 'primeng/message';\nimport {RippleModule} from 'primeng/ripple';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {isObservable} from 'rxjs';\n\nimport {CommonsFormlyFieldConfig, FieldActionDescriptor, FieldActionResult, FieldActionResultMessage, IFormEditorComponent} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-action',\n templateUrl: './formly-field-action.component.html',\n imports: [ButtonModule, RippleModule, TranslateModule, TooltipModule, JsonPipe, MessageModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldActionComponent<ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit {\n public descriptor!: FieldActionDescriptor<ET>;\n\n public buttonClass = 'p-button-primary';\n\n public actionMessage?: FieldActionResultMessage;\n\n ngOnInit(): void {\n this.descriptor = this.props.descriptor as FieldActionDescriptor<ET>;\n this.props.fieldComponent = this;\n this.buttonClass = this.descriptor.button.styleClass.build();\n }\n\n onClick() {\n this.actionMessage = undefined;\n\n const result = this.descriptor.runFunction?.({\n descriptor: this.descriptor,\n formEditorComponent: this.props.formEditorComponent as IFormEditorComponent<ET>,\n formly: {\n model: this.model,\n formControl: this.formControl,\n form: this.form,\n formState: this.formState,\n options: this.options,\n props: this.props\n }\n });\n\n if (result) {\n if (isObservable(result)) {\n result.subscribe(res => this.processResult(res));\n } else {\n this.processResult(result);\n }\n }\n }\n\n private processResult(res: FieldActionResult) {\n if (res.message) {\n this.actionMessage = res.message;\n }\n }\n}\n","<div class=\"flex\">\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(descriptor.button.icon)\"\n [label]=\"$any(descriptor.button.label === null ? null : descriptor.button.label ?? props!.label) | translate\"\n [pTooltip]=\"$any(descriptor.button.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass + (actionMessage ? ' mr-2' : '')\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\"></p-message>\n }\n</div>\n","import {AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {Subscription, distinctUntilChanged} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\nimport {AutocompleteComponent} from '@mediusinc/mng-commons/form';\nimport {CommonsFormlyFieldConfig, FieldLookupDescriptor, FormFieldEventComponentSubtype, FormFieldEventTypeEnum} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-autocomplete',\n templateUrl: './formly-field-autocomplete.component.html',\n imports: [AutocompleteComponent, ReactiveFormsModule, FormlyModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldAutocompleteComponent<T, ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit, AfterViewInit, OnDestroy {\n public aFormControl!: FormControl;\n public descriptor!: FieldLookupDescriptor<T, ET>;\n\n private subscriptions: Subscription[] = [];\n\n public ngOnInit() {\n this.aFormControl = this.formControl as FormControl;\n this.descriptor = this.props.descriptor as FieldLookupDescriptor<T, ET>;\n this.props.fieldComponent = this;\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n const subscription = this.aFormControl.valueChanges.pipe(startWith(this.aFormControl.value), distinctUntilChanged()).subscribe(v => {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldAutocompleteComponent, this, {\n value: v\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v);\n }\n });\n this.subscriptions.push(subscription);\n }\n\n public ngAfterViewInit() {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_VIEW_INIT\n });\n }\n\n public ngOnDestroy() {\n // warning: formly calls on destroy before on init\n\n this.subscriptions.forEach(value => value.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n}\n","<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\n\nimport {ComponentDirective} from '@mediusinc/mng-commons/core';\nimport {CommonsFormlyFieldConfig, FieldInputDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-custom',\n template: ` <ng-container [mngComponent]=\"descriptor.customComponentType!\" [inputs]=\"inputs\"></ng-container> `,\n imports: [ComponentDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldCustomComponent<ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit {\n public descriptor!: FieldInputDescriptor<ET>;\n\n public inputs: Record<string, any> = {};\n\n ngOnInit() {\n this.descriptor = this.props.descriptor as FieldInputDescriptor<ET>;\n this.inputs = {\n field: this.field,\n model: this.model,\n form: this.form,\n options: this.options,\n key: this.key,\n formControl: this.formControl,\n props: this.props,\n showError: this.showError,\n id: this.id,\n formState: this.formState,\n ...this.descriptor.customComponentInputs\n };\n }\n}\n","import {ChangeDetectionStrategy, Component, OnDestroy, OnInit} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {Subscription, distinctUntilChanged} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\nimport {DropdownComponent} from '@mediusinc/mng-commons/form';\nimport {CommonsFormlyFieldConfig, FieldLookupDescriptor, FormFieldEventComponentSubtype, FormFieldEventTypeEnum} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-dropdown',\n templateUrl: './formly-field-dropdown.component.html',\n imports: [DropdownComponent, ReactiveFormsModule, FormlyModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldDropdownComponent<T, ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit, OnDestroy {\n public dFormControl!: FormControl;\n public descriptor!: FieldLookupDescriptor<T, ET>;\n\n private subscriptions: Subscription[] = [];\n\n public ngOnInit() {\n this.dFormControl = this.formControl as FormControl;\n this.descriptor = this.props.descriptor as FieldLookupDescriptor<T, ET>;\n this.props.fieldComponent = this;\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldDropdownComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n const subscription = this.dFormControl.valueChanges.pipe(startWith(this.dFormControl.value), distinctUntilChanged()).subscribe(v => {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldDropdownComponent, this, {\n value: v\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v);\n }\n });\n this.subscriptions.push(subscription);\n }\n\n ngOnDestroy(): void {\n // warning: formly calls on destroy before on init\n\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldDropdownComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n}\n","<mng-dropdown\n [id]=\"$any(key)\"\n [formControl]=\"dFormControl\"\n [formlyAttributes]=\"field\"\n [placeholder]=\"descriptor.placeholder\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsLabelTranslate]=\"descriptor.optionsLabelTranslate\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [optionsDisabledProperty]=\"descriptor.optionsDisabledProperty\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [showClear]=\"!props.required\"\n [className]=\"descriptor.inputClassName\">\n</mng-dropdown>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FieldsetModule} from 'primeng/fieldset';\n\nimport {CommonsFormlyFieldConfig, FieldGroupDescriptor, FieldGroupTypeEnum} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-fieldset',\n templateUrl: './formly-field-fieldset.component.html',\n imports: [FieldsetModule, FormlyModule, TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldFieldsetComponent<ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit {\n public readonly typeFieldset = FieldGroupTypeEnum.Fieldset;\n public readonly typeLogical = FieldGroupTypeEnum.Logical;\n public descriptor?: FieldGroupDescriptor<ET>;\n\n ngOnInit() {\n this.descriptor = this.props.descriptor as FieldGroupDescriptor<ET>;\n this.props.fieldComponent = this;\n }\n}\n","@for (group of field.fieldGroup; track group) {\n @switch (group?.props?.['descriptor']?.type) {\n @case (typeFieldset) {\n <p-fieldset [legend]=\"group.props?.label! | translate\">\n <formly-field [field]=\"group\"></formly-field>\n </p-fieldset>\n }\n @default {\n <formly-field [field]=\"group\"></formly-field>\n }\n }\n}\n","import {ChangeDetectionStrategy, Component, Inject, LOCALE_ID, OnDestroy, OnInit} from '@angular/core';\nimport {FormArray, FormBuilder, FormControl, ReactiveFormsModule, ValidatorFn, Validators} from '@angular/forms';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {CalendarModule} from 'primeng/calendar';\nimport {FileUploadModule} from 'primeng/fileupload';\nimport {TimesIcon} from 'primeng/icons/times';\nimport {ImageModule} from 'primeng/image';\nimport {InputMaskModule} from 'primeng/inputmask';\nimport {InputNumberModule} from 'primeng/inputnumber';\nimport {InputSwitchModule} from 'primeng/inputswitch';\nimport {InputTextModule} from 'primeng/inputtext';\nimport {InputTextareaModule} from 'primeng/inputtextarea';\nimport {RadioButtonModule} from 'primeng/radiobutton';\nimport {RippleModule} from 'primeng/ripple';\nimport {Subscription, distinctUntilChanged} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\nimport {InputTrimDirective} from '@mediusinc/mng-commons/form';\nimport {CommonsFormlyFieldConfig, FieldInputDescriptor, FieldInputTypeEnum, FormFieldEventComponentSubtype, FormFieldEventTypeEnum} from '@mediusinc/mng-commons/tableview/api';\n\nimport {getFormEditorWarningMessage} from '../../../../helpers/notification';\nimport {FormEditorComponent} from '../../../editor/form-editor.component';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-input',\n templateUrl: './formly-field-input.component.html',\n imports: [\n InputNumberModule,\n ReactiveFormsModule,\n FormlyModule,\n TranslateModule,\n InputSwitchModule,\n RadioButtonModule,\n CalendarModule,\n InputMaskModule,\n FileUploadModule,\n ImageModule,\n InputTextareaModule,\n InputTextModule,\n RippleModule,\n TimesIcon,\n InputTrimDirective\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldInputComponent<ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit, OnDestroy {\n public readonly NUMBER_MIN_SAFE = Number.MIN_SAFE_INTEGER;\n public readonly NUMBER_MAX_SAFE = Number.MAX_SAFE_INTEGER;\n public readonly DESC_INPUT_TYPE_IMAGE_FILE = FieldInputTypeEnum.ImageFile;\n\n public iFormControl!: FormControl;\n public descriptor!: FieldInputDescriptor<ET>;\n public numberFieldMode: 'decimal' | 'currency' = 'decimal';\n public currency?: string;\n\n private files: File[] = [];\n public imageFormArray!: FormArray;\n private subscriptions: Subscription[] = [];\n\n public formEditorComponent?: FormEditorComponent<unknown>;\n\n constructor(\n @Inject(LOCALE_ID) public applicationLocale: string,\n private formBuilder: FormBuilder,\n private translateService: TranslateService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.iFormControl = this.formControl as FormControl;\n this.descriptor = this.props.descriptor as FieldInputDescriptor<ET>;\n this.props.fieldComponent = this;\n this.formEditorComponent = this.props.formEditorComponent as FormEditorComponent<unknown>;\n\n this.imageFormArray = this.formBuilder.array([]);\n\n if (this.descriptor.fieldType === FieldInputTypeEnum.Currency) {\n this.numberFieldMode = 'currency';\n\n if (this.descriptor.currencyFromProperty) {\n const currencyFromPropSubscription = this.iFormControl\n .get(this.descriptor.currencyFromProperty)!\n .valueChanges.pipe(startWith(this.model[this.descriptor.currencyFromProperty]), distinctUntilChanged())\n .subscribe(c => {\n this.currency = c;\n });\n this.subscriptions.push(currencyFromPropSubscription);\n } else {\n this.currency = this.descriptor.currency ?? 'EUR';\n }\n }\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldInputComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n // init values\n if (this.props.type === 'datepicker' && typeof this.iFormControl.value === 'string') {\n const dateObject = new Date(this.iFormControl.value);\n this.iFormControl.setValue(dateObject);\n this.iFormControl.markAsPristine();\n }\n\n const subscription = this.formControl!.valueChanges.pipe(startWith(this.formControl!.value), distinctUntilChanged()).subscribe(v => {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldInputComponent, this, {\n value: v\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v);\n }\n });\n this.subscriptions.push(subscription);\n\n if (this.props.type === 'imageUrl') {\n const startValue = this.iFormControl.value;\n if (this.descriptor.fileMultiple) {\n if (Array.isArray(startValue) && startValue.length > 0) {\n startValue.forEach(v => this.addImageUrl(v));\n } else if (typeof startValue === 'string' && startValue.length > 0) {\n this.addImageUrl(startValue);\n } else {\n this.addImageUrl();\n }\n } else {\n if (typeof startValue === 'string' && startValue.length > 0) {\n this.addImageUrl(startValue);\n } else {\n this.addImageUrl();\n }\n }\n\n const subscription = this.imageFormArray!.valueChanges.pipe(distinctUntilChanged()).subscribe(v => {\n const fcv = v.filter((i: string) => !!i && typeof i === 'string' && i.length > 0);\n this.iFormControl.setValue(fcv.length > 0 ? (this.descriptor.fileMultiple ? fcv : fcv[0]) : undefined);\n this.iFormControl.updateValueAndValidity();\n });\n this.subscriptions.push(subscription);\n }\n }\n\n ngOnDestroy(): void {\n // warning: formly calls on destroy before on init\n\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldInputComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n\n public onFileSelect(event: any) {\n const files = event.files as File[];\n if (this.descriptor.fileMultiple) {\n this.files = [...this.files, ...files];\n } else {\n this.files = [...files];\n }\n this.updateFileFormControl();\n }\n\n public onFileRemove(event: any) {\n const file = event.file as File;\n this.files = this.files.filter(f => f !== file);\n this.updateFileFormControl();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onFileClear(event: Event) {\n this.files = [];\n this.updateFileFormControl();\n }\n\n public addImageUrl(value: string | null = null) {\n const validators: ValidatorFn[] = [];\n validators.push(Validators.pattern(/^(http|https):\\/\\/[^ \"]+$/));\n validators.push(Validators.minLength(1));\n this.imageFormArray.push(this.formBuilder.control(value, validators));\n }\n\n public removeImageUrlAt(idx: number) {\n this.imageFormArray.removeAt(idx);\n }\n\n public onImageUrlLoadError() {\n if (this.formEditorComponent) {\n const message = getFormEditorWarningMessage(this.translateService, 'general.error', 'mngEditor.imageLoadError');\n this.formEditorComponent.formMessages = [...this.formEditorComponent.formMessages, message];\n }\n }\n\n private updateFileFormControl() {\n const value = this.files.length > 0 ? [...this.files] : null;\n this.iFormControl.setValue(value);\n if (typeof this.descriptor.fileOnSelectHandler === 'function') {\n this.descriptor.fileOnSelectHandler(value, this.iFormControl);\n }\n }\n\n public isFileImageSvg(file: File) {\n return /^image\\/svg/.test(file.type);\n }\n\n public getFileDocumentTypeIcon(file: File) {\n if (/^video\\//.test(file.type)) {\n return 'pi-video';\n }\n if (/^audio\\//.test(file.type)) {\n return 'pi-volume-up';\n }\n switch (file.type) {\n case 'application/pdf':\n return 'pi-file-pdf';\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n case 'application/vnd.oasis.opendocument.presentation':\n return 'pi-file-word';\n case 'application/vnd.oasis.opendocument.spreadsheet':\n case 'application/vnd.ms-excel':\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n return 'pi-file-excel';\n default:\n return 'pi-file';\n }\n }\n}\n","@switch (props.type) {\n @case ('number') {\n <p-inputNumber\n [id]=\"$any(key)\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [min]=\"descriptor.numberAutoCorrect ? descriptor.numberMin ?? NUMBER_MIN_SAFE : undefined\"\n [max]=\"descriptor.numberAutoCorrect ? descriptor.numberMax ?? NUMBER_MAX_SAFE : undefined\"\n [step]=\"$any(descriptor.numberStep)\"\n [useGrouping]=\"descriptor.numberUseGrouping\"\n [minFractionDigits]=\"descriptor.numberMinFractionDigits || 0\"\n [maxFractionDigits]=\"descriptor.numberMaxFractionDigits || 0\"\n [inputStyleClass]=\"descriptor.inputClassName\"\n [locale]=\"descriptor.locale ?? applicationLocale\"\n [mode]=\"numberFieldMode\"\n [currency]=\"currency\"\n [currencyDisplay]=\"descriptor.currencyDisplay\">\n </p-inputNumber>\n }\n\n @case ('switch') {\n <div class=\"field flex flex-column\">\n <label [for]=\"key\" [class]=\"descriptor.labelClassName\"\n >{{ props.label! | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n <p-inputSwitch [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [styleClass]=\"descriptor.inputClassName\"></p-inputSwitch>\n @if (showError) {\n <small class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n }\n @case ('radio') {\n @for (option of descriptor.radioOptions; track option) {\n <div [id]=\"$any(key)\" class=\"field-radiobutton\">\n <p-radioButton\n [name]=\"$any(key)\"\n [value]=\"option.value\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [styleClass]=\"descriptor.inputClassName\"></p-radioButton>\n <label [for]=\"option.value\" [class]=\"'mng-radio-button-label ' + descriptor.labelClassName\">{{ option.title | translate }}</label>\n </div>\n }\n }\n @case ('textarea') {\n <textarea [id]=\"$any(key)\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [rows]=\"descriptor.rows ?? 3\" pInputTextarea [class]=\"descriptor.inputClassName\">\n </textarea>\n }\n @case ('datepicker') {\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime ?? false\"\n [showSeconds]=\"descriptor.datePickerShowSeconds ?? false\"\n [showIcon]=\"true\"\n [inputStyleClass]=\"descriptor.inputClassName\"\n [firstDayOfWeek]=\"1\">\n </p-calendar>\n }\n @case ('mask') {\n <p-inputMask\n [formControl]=\"iFormControl\"\n [formlyAttributes]=\"field\"\n [mask]=\"descriptor.mask\"\n [placeholder]=\"descriptor.placeholder\"\n [slotChar]=\"$any(descriptor.slotChar)\"\n [styleClass]=\"descriptor.inputClassName\">\n </p-inputMask>\n }\n @case ('file') {\n <p-fileUpload\n #fileUploadInput\n [disabled]=\"iFormControl.disabled\"\n [multiple]=\"descriptor.fileMultiple ?? false\"\n [accept]=\"descriptor.fileAccept ?? (descriptor.fieldType === DESC_INPUT_TYPE_IMAGE_FILE ? 'image/*' : undefined)\"\n [maxFileSize]=\"descriptor.fileMaxFileSize ?? 500000\"\n [showUploadButton]=\"false\"\n (onSelect)=\"onFileSelect($event)\"\n (onRemove)=\"onFileRemove($event)\"\n (onClear)=\"onFileClear($event)\">\n <ng-template let-file let-idx=\"index\" pTemplate=\"file\">\n <div class=\"p-fileupload-row\">\n <div>\n @if (fileUploadInput.isImage(file)) {\n @if (isFileImageSvg(file)) {\n <span class=\"flex align-items-center justify-content-center\">\n <i class=\"pi pi-image text-2xl\"></i>\n </span>\n } @else {\n <img [src]=\"file.objectURL\" [width]=\"fileUploadInput.previewWidth\" (error)=\"fileUploadInput.imageError($event)\" />\n }\n } @else {\n <span class=\"flex align-items-center justify-content-center\">\n <i [class]=\"'pi ' + getFileDocumentTypeIcon(file) + ' text-2xl'\"></i>\n </span>\n }\n </div>\n <div class=\"p-fileupload-filename\">{{ file.name }}</div>\n <div>{{ fileUploadInput.formatSize(file.size) }}</div>\n <div>\n <button\n type=\"button\"\n pButton\n (click)=\"fileUploadInput.remove($event, idx)\"\n [disabled]=\"fileUploadInput.uploading\"\n class=\"p-button-icon-only\"\n [class]=\"fileUploadInput.removeStyleClass\">\n @if (!fileUploadInput.cancelIconTemplate) {\n <TimesIcon />\n }\n </button>\n </div>\n </div>\n </ng-template>\n <ng-template pTemplate=\"content\" let-files>\n @if (files.length === 0) {\n <div class=\"text-gray-300 dropdown-area\">\n <span><i class=\"pi pi-file-import mr-2\"></i>{{ 'fileUpload.dragAndDrop' | translate }}</span>\n </div>\n }\n </ng-template>\n </p-fileUpload>\n }\n @case ('imageUrl') {\n <div>\n @if (descriptor.imagePreview) {\n <div class=\"flex flex-wrap justify-content-start\">\n @for (image of imageFormArray.controls; track image; let idx = $index) {\n @if (imageFormArray.at(idx).valid && imageFormArray.at(idx).value) {\n <p-image [src]=\"imageFormArray.at(idx).value\" [preview]=\"true\" (onImageError)=\"onImageUrlLoadError()\" styleClass=\"mng-image m-2\"></p-image>\n } @else {\n <span class=\"mng-image m-2 p-image-preview-container no-image\">\n <div class=\"p-image-preview-indicator\">\n <i class=\"p-image-preview-icon pi pi-ban\"></i>\n </div>\n </span>\n }\n }\n </div>\n }\n @if (!descriptor.imagePreview || descriptor.imageUrlInputVisibleOnDisabled || !iFormControl.disabled) {\n @for (imageCtrlName of imageFormArray.controls; track imageCtrlName; let idx = $index) {\n <div class=\"p-inputgroup mt-1\">\n <input\n pInputText\n [placeholder]=\"'mngEditor.imageUrlPlaceholder' | translate\"\n [id]=\"$any(key)\"\n type=\"text\"\n [formControl]=\"$any(imageFormArray.at(idx))\"\n [formlyAttributes]=\"field\" />\n @if (descriptor.fileMultiple && !iFormControl.disabled) {\n <button type=\"button\" pButton pRipple icon=\"pi pi-minus\" (click)=\"removeImageUrlAt(idx)\"></button>\n }\n </div>\n }\n @if (descriptor.fileMultiple && !iFormControl.disabled) {\n <button\n type=\"button\"\n pButton\n pRipple\n icon=\"pi pi-plus\"\n class=\"p-button-primary w-auto mt-1\"\n [label]=\"'mngEditor.imageUrlAdd' | translate\"\n (click)=\"addImageUrl()\"></button>\n }\n }\n </div>\n }\n @default {\n <input pInputText [id]=\"$any(key)\" [type]=\"props.type || 'text'\" [formControl]=\"iFormControl\" [formlyAttributes]=\"field\" [mngInputTrim]=\"descriptor.trimOption\" />\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, OnInit} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\n\nimport {CommonsFormlyFieldConfig, FieldInputDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-label',\n templateUrl: './formly-field-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldLabelComponent<ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit {\n @HostBinding('class') public className = 'hidden';\n\n private descriptor!: FieldInputDescriptor<any>;\n\n public ngOnInit() {\n this.descriptor = this.props.descriptor as FieldInputDescriptor<ET>;\n this.props.fieldComponent = this;\n this.formControl?.patchValue(this.descriptor.label);\n }\n}\n","","import {AsyncPipe} from '@angular/common';\nimport {AfterViewInit, ChangeDetectionStrategy, Component, Injector, OnDestroy, OnInit, ViewChild, inject} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {Message} from 'primeng/api';\nimport {ButtonModule} from 'primeng/button';\nimport {DialogModule} from 'primeng/dialog';\nimport {InputTextModule} from 'primeng/inputtext';\nimport {MessagesModule} from 'primeng/messages';\nimport {RippleModule} from 'primeng/ripple';\nimport {Observable, ReplaySubject, Subject, Subscription, distinctUntilChanged} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\nimport {\n CommonsInternalError,\n DataListParams,\n DataListResult,\n DialogKeydownHandlerDirective,\n LoggerService,\n fromSubscribeError,\n getErrorLogLevel,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {TableComponent} from '@mediusinc/mng-commons/table';\nimport {\n CommonsFormlyFieldConfig,\n FieldLookupConfig,\n FieldLookupDescriptor,\n FormFieldEventComponentSubtype,\n FormFieldEventDialogSubtype,\n FormFieldEventTypeEnum\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {provideViewContainer} from '../../../../../action/services/providers/provide-view-container';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-lookup-dialog',\n templateUrl: 'formly-field-lookup-dialog.component.html',\n imports: [\n TranslateModule,\n FormlyModule,\n ReactiveFormsModule,\n ButtonModule,\n RippleModule,\n DialogModule,\n AsyncPipe,\n TableComponent,\n MessagesModule,\n InputTextModule,\n DialogKeydownHandlerDirective\n ],\n providers: [provideViewContainer(false)],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldLookupDialogComponent<T, ET> extends FieldType<CommonsFormlyFieldConfig> implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild(TableComponent) public table?: TableComponent;\n\n private readonly logger = inject(LoggerService).create('FormlyFieldLookupDialogComponent');\n\n public descriptor!: FieldLookupDescriptor<T, ET>;\n public config!: FieldLookupConfig;\n public fieldLabelFormControl: FormControl = new FormControl();\n\n public addItemsSubject: Subject<DataListResult<T>> = new ReplaySubject(1);\n public addItemsAsync: Observable<DataListResult<T>> = this.addItemsSubject.asObservable();\n\n public dialogUseDataProvider = false;\n private dialogDataProviderService: any = null;\n private dialogIsLoadingSubject = new ReplaySubject<boolean>(1);\n\n public isDialogVisible = false;\n public dialogAreItemsLoaded = false;\n public dialogSelectedItem: any = null;\n public dialogMessages: Message[] = [];\n public dialogIsLoading$ = this.dialogIsLoadingSubject.asObservable();\n\n private lookupDataProviderSubscription?: Subscription;\n private subscriptions: Subscription[] = [];\n\n constructor(private injector: Injector) {\n super();\n }\n\n ngOnInit(): void {\n this.descriptor = this.props.descriptor as FieldLookupDescriptor<T, ET>;\n this.props.fieldComponent = this;\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n this.config = this.descriptor.config as FieldLookupConfig;\n if (!this.descriptor.dialogTableDataProvider && this.descriptor.dataProvider?.serviceType) {\n this.dialogUseDataProvider = true;\n this.dialogDataProviderService = this.injector.get<any>(this.descriptor.dataProvider.serviceType);\n }\n\n // init values\n this.setFieldLabelValue(this.formControl!.value);\n const subscription = this.formControl!.valueChanges.pipe(\n startWith(this.formControl!.value),\n distinctUntilChanged((prev, curr) => {\n const compareProp = this.descriptor.dialogTableDescriptor!.trackProperty ?? this.descriptor.dialogTableDescriptor!.model.idProperty;\n if (compareProp && typeof prev === 'object' && typeof curr === 'object') {\n return prev[compareProp] === curr[compareProp];\n } else {\n return prev === curr;\n }\n })\n ).subscribe(v => {\n this.setFieldLabelValue(v);\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldLookupDialogComponent, this, {\n value: v\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v);\n }\n });\n this.subscriptions.push(subscription);\n }\n\n ngAfterViewInit() {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_VIEW_INIT\n });\n }\n\n ngOnDestroy(): void {\n // warning: formly calls on destroy before on init\n\n this.lookupDataProviderSubscription?.unsubscribe();\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n\n openSelectDialog() {\n if (!this.dialogAreItemsLoaded && this.dialogUseDataProvider) {\n this.dialogIsLoadingSubject.next(true);\n\n const params: DataListParams = {\n limit: 50,\n sort: this.descriptor\n .dialogTableDescriptor!.sorts.filter(s => s.defaultIsEnabled)\n .map(s => ({\n property: s.property,\n ascending: s.defaultIsAscending\n }))\n };\n\n this.lookupDataProviderSubscription = toObservable(this.descriptor.dataProvider?.lookup(params, this.dialogDataProviderService)).subscribe({\n next: res => {\n const dataList = {\n data: res ?? [],\n totalCount: res?.length ?? 0\n };\n this.addItemsSubject.next(dataList);\n this.dialogAreItemsLoaded = true;\n this.dialogIsLoadingSubject.next(false);\n\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DataProvider, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: 'LookupNext',\n queryResult: dataList\n });\n },\n error: err => {\n this.dialogIsLoadingSubject.next(false);\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DataProvider, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: 'LookupError',\n queryResult: err\n });\n\n const error = fromSubscribeError(err, 'FormlyFieldLookupDialogComponentError', {\n params: params\n });\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n }\n this.dialogSelectedItem = null;\n this.isDialogVisible = true;\n\n this.formControl.markAsTouched();\n\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.VISIBILITY,\n dialogVisible: true\n });\n }\n\n onSelectionChange(item: any) {\n this.dialogSelectedItem = item;\n }\n\n onCaptionCmpInst(instance: any) {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.TABLE_CAPTION_COMPONENT_INSTANCE,\n captionComponentInstance: instance\n });\n }\n\n onColumnActionCmpInst(instance: any) {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.TABLE_COLUMN_ACTIONS_COMPONENT_INSTANCE,\n captionComponentInstance: instance\n });\n }\n\n clear() {\n this.formControl.setValue(undefined);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n this.dialogSelectedItem = null;\n this.dialogAreItemsLoaded = false;\n this.hideDialog();\n }\n\n hideDialog() {\n this.isDialogVisible = false;\n\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldLookupDialogComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.VISIBILITY,\n dialogVisible: false\n });\n }\n\n addItem() {\n this.formControl.setValue(this.dialogSelectedItem);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n this.dialogSelectedItem = null;\n this.dialogAreItemsLoaded = false;\n this.hideDialog();\n }\n\n private setFieldLabelValue(value: T) {\n if (!value) {\n this.fieldLabelFormControl.setValue('');\n return;\n }\n if (typeof value === 'object') {\n const labelProperty = this.descriptor.optionsLabelProperty ?? this.descriptor.dialogTableDescriptor?.model.titleProperty;\n if (!labelProperty) {\n throw new CommonsInternalError('Could not determine label property.', {name: 'FormlyFieldLookupDialogError'});\n }\n this.fieldLabelFormControl.setValue(value[labelProperty as keyof object]);\n } else {\n this.fieldLabelFormControl.setValue(value);\n }\n }\n}\n","<div [class]=\"'p-inputgroup mng-dropdown-dialog' + descriptor.inputClassName\" [class.p-inputtext-sm]=\"descriptor.isSizeSmall\" [class.p-inputtext-lg]=\"descriptor.isSizeLarge\">\n <input pInputText type=\"text\" [id]=\"$any(key)\" [readonly]=\"true\" [formlyAttributes]=\"field\" [formControl]=\"fieldLabelFormControl\" />\n @if (!props.required && formControl.value && !formControl.disabled) {\n <i class=\"mng-dropdown-clear-icon pi pi-times\" (click)=\"clear()\"></i>\n }\n <button\n pButton\n pRipple\n class=\"mng-dropdown-dialog-search-button\"\n type=\"button\"\n [label]=\"'general.search' | translate: {item: ''}\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openSelectDialog()\"></button>\n</div>\n\n<p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.search' | translate: {item: props.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-dialog mng-formly-field-lookup-dialog\">\n <ng-template pTemplate=\"content\" mngDialogKeydownHandler>\n <mng-table\n [descriptor]=\"descriptor.dialogTableDescriptor!\"\n [dataProvider]=\"descriptor.dialogTableDataProvider\"\n [result]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [selectionMode]=\"'single'\"\n [loading]=\"dialogIsLoading$\"\n [captionComponent]=\"config.table?.captionComponent\"\n [columnCustomLastComponent]=\"config.table?.columnActionComponent\"\n (selectionChange)=\"onSelectionChange($event)\"\n (captionComponentInstance)=\"onCaptionCmpInst($event)\"\n (columnCustomLastComponentInstance)=\"onColumnActionCmpInst($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.select' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItem()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n","import {AfterViewInit, ChangeDetectionStrategy, Component, Injector, OnDestroy, OnInit} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {BehaviorSubject, Observable, ReplaySubject, Subject, Subscription, distinctUntilChanged, of, throwError} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nimport {CommonsInternalError, CommonsService, StyleLevelEnum, StyleSizeEnum, TemplateDirective} from '@mediusinc/mng-commons/core';\nimport {ActionButtonDescriptor, ButtonStyleBuilder} from '@mediusinc/mng-commons/form/api';\nimport {\n ActionContextValidation,\n ActionDescriptor,\n ActionDescriptorInst,\n ActionEditorDescriptor,\n ActionEditorSubmitDescriptor,\n ActionEditorSubmitTypeEnum,\n ActionPositionEnum,\n CommonsFormlyFieldConfig,\n FieldManyEditorActionEnum,\n FieldManyEditorDescriptor,\n FormFieldEventComponentSubtype,\n FormFieldEventTypeEnum\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionComponent} from '../../../../../action/components/action/action.component';\nimport {ActionTableComponent} from '../../../../../action/components/table/action-table.component';\nimport {provideViewContainer} from '../../../../../action/services/providers/provide-view-container';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-table-dialog-form-field',\n templateUrl: './formly-field-table-dialog-form.component.html',\n styleUrls: ['./formly-field-table-dialog-form.component.scss'],\n imports: [TranslateModule, ActionComponent, ActionTableComponent, TemplateDirective],\n providers: [provideViewContainer(false)],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldTableDialogFormComponent<T = any, ET = any> extends FieldType<CommonsFormlyFieldConfig> implements OnInit, AfterViewInit, OnDestroy {\n public descriptor!: FieldManyEditorDescriptor<T, ET>;\n\n public itemsSubject: Subject<Array<T>> = new ReplaySubject(1);\n public items$: Observable<Array<T>> = this.itemsSubject.asObservable();\n\n public actions: Array<ActionDescriptorInst<T>> = [];\n public toolbarRightActions: Array<ActionDescriptorInst<T>> = [];\n\n private subscriptions: Subscription[] = [];\n private isDisabledSubject = new BehaviorSubject<boolean>(false);\n private isEnabled$ = this.isDisabledSubject.asObservable().pipe(\n distinctUntilChanged(),\n map(e => !e)\n );\n\n constructor(private injector: Injector) {\n super();\n }\n\n public ngOnInit() {\n this.descriptor = this.props.descriptor as FieldManyEditorDescriptor<T, ET>;\n this.props.fieldComponent = this;\n\n const hasViewAction = this.descriptor.fieldActions.some(a => a === FieldManyEditorActionEnum.View);\n const hasAddAction = this.descriptor.fieldActions.some(a => a === FieldManyEditorActionEnum.Add);\n const hasEditAction = this.descriptor.fieldActions.some(a => a === FieldManyEditorActionEnum.Edit);\n const hasDeleteAction = this.descriptor.fieldActions.some(a => a === FieldManyEditorActionEnum.Delete);\n\n if (hasViewAction) {\n const viewAction = ActionEditorDescriptor.create(this.descriptor.tableviewDescriptor.detailsEditor, 'details', {\n parentType: this.descriptor.editor.model.type,\n parentProperty: this.descriptor.property\n })\n .withPosition(ActionPositionEnum.RowClick)\n .withDialogSize(StyleSizeEnum.Small)\n .withFetchFunction(ctx => {\n this.formControl.markAsTouched();\n return of(ctx.parameters.item || ({} as T));\n });\n viewAction.withEditorActions([ActionEditorSubmitDescriptor.forSecondary(viewAction, ActionEditorSubmitTypeEnum.Cancel)]);\n viewAction.button.withLabel(null);\n this.actions.push(viewAction);\n }\n\n if (hasAddAction) {\n const addAction = ActionEditorDescriptor.create(this.descriptor.tableviewDescriptor.addEditor, 'add', {\n parentType: this.descriptor.editor.model.type,\n parentProperty: this.descriptor.property\n })\n .withPosition(ActionPositionEnum.ToolbarRight)\n .withDialogSize(StyleSizeEnum.Small)\n .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(StyleSizeEnum.ExtraSmall)))\n .withFetchFunction(ctx => {\n setTimeout(this.formControl.markAsTouched, 0);\n return of(ctx.parameters.item || ({} as T));\n })\n .withSubmitFunction(ctx => {\n if (!ctx.parameters.item) {\n return throwError(\n () => new CommonsInternalError(`No item was provided in context, add cannot be done.`, {name: 'FormlyFieldTableDialogFormComponentError'})\n );\n }\n this.formState.submittedOn = Date.now();\n let value = this.formControl.value;\n value = [...value, ctx.parameters.item];\n this.formControl.patchValue(value);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n return of(ctx.parameters.item);\n })\n .withRunNotificationSuccess(undefined, undefined, false)\n .withRunNotificationError(undefined, undefined, false)\n .withIsVisibleFunction(() => of(!this.options?.formState.disabled))\n .withIsEnabledFunction(() => this.isEnabled$);\n addAction.button.withLabel(null).withIcon('pi pi-plus');\n this.actions.push(addAction);\n }\n if (hasEditAction) {\n const editAction = ActionEditorDescriptor.create(this.descriptor.tableviewDescriptor.editEditor, 'edit', {\n parentType: this.descriptor.editor.model.type,\n parentProperty: this.descriptor.property\n })\n .withPosition(ActionPositionEnum.RowInline)\n .withDialogSize(StyleSizeEnum.Small)\n .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder().withSize(StyleSizeEnum.ExtraSmall)))\n .withFetchFunction(ctx => {\n this.formControl.markAsTouched();\n return of(ctx.parameters.item || ({} as T));\n })\n .withSubmitFunction(ctx => {\n if (!ctx.parameters.item) {\n return throwError(\n () => new CommonsInternalError(`No item was provided in context, edit cannot be done.`, {name: 'FormlyFieldTableDialogFormComponentError'})\n );\n }\n this.formState.submittedOn = Date.now();\n const formControlValue = [...this.formControl.value];\n formControlValue[ctx.parameters.actionData?.['itemIndex']] = ctx.parameters.item;\n this.formControl.patchValue(formControlValue);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n return of(ctx.parameters.item);\n })\n .withRunNotificationSuccess(undefined, undefined, false)\n .withRunNotificationError(undefined, undefined, false)\n .withIsVisibleFunction(ctx => (this.hideActionsForRowWithDefaultLocalization(ctx) ? of(false) : of(!this.formControl?.disabled)))\n .withIsEnabledFunction(() => this.isEnabled$);\n editAction.button.withLabel(null).withIcon('pi pi-pencil');\n this.actions.push(editAction);\n }\n if (hasDeleteAction) {\n const deleteAction = ActionDescriptor.fromModel(this.descriptor.tableviewDescriptor.model, 'delete', {\n parentType: this.descriptor.editor.model.type,\n parentProperty: this.descriptor.property\n })\n .withPosition(ActionPositionEnum.RowInline)\n .withButtonDescriptor(new ActionButtonDescriptor().withStyleClass(new ButtonStyleBuilder(StyleLevelEnum.Danger).withSize(StyleSizeEnum.ExtraSmall)))\n .withRunFunction(ctx => {\n if (!ctx.parameters.item) {\n return throwError(\n () => new CommonsInternalError(`No item was provided in context, delete cannot be done.`, {name: 'FormlyFieldTableDialogFormComponentError'})\n );\n }\n let formControlValue = this.formControl.value as Array<T>;\n const compareProperty = this.descriptor.tableDescriptor.trackProperty\n ? this.descriptor.tableDescriptor.trackProperty\n : this.descriptor.tableDescriptor.model.idProperty;\n const ctxItem: any = ctx.parameters.item;\n if (compareProperty && ctxItem?.[compareProperty]) {\n formControlValue = formControlValue.filter((i: any) => i[compareProperty] !== ctxItem[compareProperty]);\n this.formControl.patchValue(formControlValue);\n this.formControl.markAsDirty();\n } else if (typeof ctx.parameters.actionData?.['itemIndex'] === 'number') {\n formControlValue.splice(ctx.parameters.actionData['itemIndex'], 1);\n this.formControl.patchValue([...formControlValue]);\n this.formControl.markAsDirty();\n } else {\n return throwError(\n () =>\n new CommonsInternalError('Cannot compare items, please provide main table data key property or model id property.', {\n name: 'FormlyFieldTableDialogFormComponentError'\n })\n );\n }\n\n this.formControl.markAsTouched();\n\n return of(ctxItem);\n })\n .withRunNotificationSuccess(undefined, undefined, false)\n .withRunNotificationError(undefined, undefined, false)\n .withIsVisibleFunction(ctx => (this.hideActionsForRowWithDefaultLocalization(ctx) ? of(false) : of(!this.options?.formState.disabled)))\n .withIsEnabledFunction(() => this.isEnabled$);\n deleteAction.button.withLabel(null).withIcon('pi pi-trash');\n this.actions.push(deleteAction);\n }\n\n this.actions.push(...this.descriptor.actions);\n for (const action of this.actions) {\n switch (action.position) {\n case ActionPositionEnum.ToolbarRight:\n this.toolbarRightActions.push(action);\n break;\n }\n }\n\n // init values\n if (typeof this.formControl.value === 'undefined' || this.formControl.value === null) {\n this.formControl.patchValue([]);\n }\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogFormComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n let subscription = this.formControl.valueChanges.pipe(startWith(this.formControl.value)).subscribe(v => {\n this.itemsSubject.next(v);\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldTableDialogFormComponent, this, {\n value: v\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v);\n }\n });\n this.subscriptions.push(subscription);\n\n this.isDisabledSubject.next(this.formControl.disabled);\n subscription = this.formControl.statusChanges.pipe().subscribe(status => {\n if (status === 'DISABLED' && !this.isDisabledSubject.value) {\n this.isDisabledSubject.next(true);\n } else if (status !== 'DISABLED' && this.isDisabledSubject.value) {\n this.isDisabledSubject.next(false);\n }\n });\n this.subscriptions.push(subscription);\n }\n\n public ngAfterViewInit() {\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogFormComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_VIEW_INIT\n });\n }\n\n public ngOnDestroy() {\n // warning: formly calls on destroy before on init\n\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogFormComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n\n private hideActionsForRowWithDefaultLocalization(ctx: ActionContextValidation<T>) {\n if (this.descriptor.tableDescriptor.isLocalized) {\n if ((ctx.parameters.item as any)[this.descriptor.tableDescriptor.localizationLocaleProperty!] === this.injector.get(CommonsService).defaultDataLanguage) {\n return true;\n }\n }\n return false;\n }\n}\n","<mng-action-table [descriptor]=\"descriptor.tableDescriptor\" [items]=\"items$\" [actions]=\"actions\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-row justify-content-end align-items-center table-header\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\"\n >{{ props.label! | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\"></mng-action>\n }\n </div>\n </ng-template>\n</mng-action-table>\n","import {AsyncPipe, NgStyle} from '@angular/common';\nimport {AfterViewInit, ChangeDetectionStrategy, Component, Injector, OnDestroy, OnInit, ViewChild, inject} from '@angular/core';\n\nimport {FieldType} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule} from 'primeng/button';\nimport {DialogModule} from 'primeng/dialog';\nimport {InputTextModule} from 'primeng/inputtext';\nimport {RippleModule} from 'primeng/ripple';\nimport {Observable, ReplaySubject, Subject, Subscription, debounceTime, distinctUntilChanged} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\nimport {\n CommonsInternalError,\n DataListParams,\n DataListResult,\n DialogKeydownHandlerDirective,\n FilterMatchMode,\n LoggerService,\n TemplateDirective,\n fromSubscribeError,\n getErrorLogLevel,\n getObjectPropertyByPath,\n toObservable\n} from '@mediusinc/mng-commons/core';\nimport {TableComponent} from '@mediusinc/mng-commons/table';\nimport {\n CommonsFormlyFieldConfig,\n FieldManyToManyEditorActionEnum,\n FieldManyToManyEditorDescriptor,\n FormFieldEventComponentSubtype,\n FormFieldEventDialogSubtype,\n FormFieldEventTypeEnum\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {provideViewContainer} from '../../../../../action/services/providers/provide-view-container';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-table-multiselect-add-field',\n templateUrl: './formly-field-table-dialog-multiselect.component.html',\n styleUrls: ['./formly-field-table-dialog-multiselect.component.scss'],\n imports: [TranslateModule, AsyncPipe, TableComponent, DialogModule, ButtonModule, RippleModule, TemplateDirective, InputTextModule, NgStyle, DialogKeydownHandlerDirective],\n providers: [provideViewContainer(false)],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldTableDialogMultiselectComponent extends FieldType<CommonsFormlyFieldConfig> implements OnInit, AfterViewInit, OnDestroy {\n private readonly logger = inject(LoggerService).create('FormlyFieldTableDialogMultiselectComponent');\n\n public descriptor!: FieldManyToManyEditorDescriptor<any, any>;\n\n public itemsSubject: Subject<Array<any>> = new ReplaySubject(1);\n public itemsAsync: Observable<Array<any>> = this.itemsSubject.asObservable();\n public addItemsSubject: Subject<DataListResult> = new ReplaySubject(1);\n public addItemsAsync: Observable<DataListResult> = this.addItemsSubject.asObservable();\n\n public dialogUseDataProvider = false;\n private dialogDataProviderService: any = null;\n private dialogIsLoadingSubject = new ReplaySubject<boolean>(1);\n\n public isDialogVisible = false;\n public dialogAreItemsLoaded = false;\n public dialogSelectedAddItems: Array<any> = [];\n public dialogIsLoading$ = this.dialogIsLoadingSubject.asObservable();\n\n public hasAddAction = false;\n public hasDeleteAction = false;\n\n private searchDebounceSubject = new Subject<string>();\n\n private lookupDataProviderSubscription?: Subscription;\n private subscriptions: Subscription[] = [];\n\n @ViewChild('addTableComponent') addTableComponent?: TableComponent;\n\n constructor(private injector: Injector) {\n super();\n }\n\n public ngOnInit() {\n this.descriptor = this.props.descriptor as FieldManyToManyEditorDescriptor<any, any>;\n this.props.fieldComponent = this;\n\n this.dialogIsLoadingSubject.next(false);\n\n if (this.descriptor.lookupTableDataProvider?.serviceType) {\n this.dialogUseDataProvider = true;\n this.dialogDataProviderService = this.injector.get<any>(this.descriptor.lookupTableDataProvider.serviceType);\n }\n this.hasAddAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Add);\n this.hasDeleteAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Delete);\n\n // init values\n if (typeof this.formControl.value === 'undefined' || this.formControl.value === null) {\n this.formControl.patchValue([]);\n }\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogMultiselectComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_INIT\n });\n\n const subscription = this.formControl.valueChanges.pipe(startWith(this.formControl.value), distinctUntilChanged()).subscribe(v => {\n this.itemsSubject.next(v ?? []);\n\n // emit lifecycle event\n this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldTableDialogMultiselectComponent, this, {\n value: v ?? []\n });\n\n if (this.props['onValueChange']) {\n this.props['onValueChange'](this.field, v ?? []);\n }\n });\n\n this.subscriptions.push(\n this.searchDebounceSubject.pipe(debounceTime(200), distinctUntilChanged()).subscribe(query => {\n this.addTableComponent?.primeTable.filterGlobal(query, 'contains');\n })\n );\n\n this.subscriptions.push(subscription);\n }\n\n public ngAfterViewInit() {\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogMultiselectComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_VIEW_INIT\n });\n }\n\n public ngOnDestroy() {\n // warning: formly calls on destroy before on init\n\n this.lookupDataProviderSubscription?.unsubscribe();\n this.subscriptions.forEach(s => s.unsubscribe());\n\n // emit lifecycle event\n this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldTableDialogMultiselectComponent, this, {\n eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY\n });\n }\n\n openAddDialog() {\n this.dialogSelectedAddItems = [];\n this.isDialogVisible = true;\n\n if (!this.dialogAreItemsLoaded && this.dialogUseDataProvider) {\n // wrapped in request animation frame due to primeng bug: https://github.com/primefaces/primeng/issues/12980\n requestAnimationFrame(() => {\n this.dialogIsLoadingSubject.next(true);\n const params: DataListParams = {limit: 50, sort: []};\n if (this.descriptor.lookupTableDescriptor.sorts.some(s => s.defaultIsEnabled)) {\n this.descriptor.lookupTableDescriptor.sorts.forEach(s => {\n if (s.defaultIsEnabled) {\n params.sort?.push({\n property: s.property,\n ascending: s.defaultIsAscending\n });\n }\n });\n }\n if (this.descriptor.hasLookupExcludeValues) {\n const filterValues = this.formControl.value.map((i: any) => getObjectPropertyByPath(i, this.descriptor.excludeValueProperty));\n params.filters = {\n [this.descriptor.excludeFilterProperty as keyof object]: {\n matchMode: FilterMatchMode.NotIn,\n value: filterValues\n }\n };\n }\n this.lookupDataProviderSubscription = toObservable(this.descriptor.lookupTableDataProvider?.getAll(params, this.dialogDataProviderService)).subscribe({\n next: res => {\n this.addItemsSubject.next(res);\n this.dialogAreItemsLoaded = true;\n this.dialogIsLoadingSubject.next(false);\n },\n error: err => {\n this.dialogIsLoadingSubject.next(false);\n\n const error = fromSubscribeError(err, 'FormlyFieldTableDialogMultiselectComponent', {\n params: params\n });\n this.logger.log(error, getErrorLogLevel(error));\n }\n });\n });\n }\n\n this.formControl.markAsTouched();\n\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldTableDialogMultiselectComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.VISIBILITY,\n dialogVisible: true\n });\n }\n\n onSelectionChange(items: Array<any>) {\n this.dialogSelectedAddItems = items;\n }\n\n hideDialog() {\n this.isDialogVisible = false;\n\n this.descriptor.nextEvent(FormFieldEventTypeEnum.DialogLifecycle, FormlyFieldTableDialogMultiselectComponent, this, {\n eventSubtype: FormFieldEventDialogSubtype.VISIBILITY,\n dialogVisible: false\n });\n }\n\n addItems() {\n let value = this.formControl.value;\n if (!Array.isArray(value)) {\n value = [];\n }\n value = [...value, ...this.dialogSelectedAddItems];\n this.formControl.patchValue(value);\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n this.dialogSelectedAddItems = [];\n this.dialogAreItemsLoaded = false;\n this.hideDialog();\n }\n\n removeItem(item: any) {\n let value = this.formControl.value;\n if (!Array.isArray(value)) {\n value = [];\n }\n const compareProperty = this.descriptor.mainTableDescriptor.trackProperty\n ? this.descriptor.mainTableDescriptor.trackProperty\n : this.descriptor.mainTableDescriptor.model.idProperty;\n if (!compareProperty) {\n throw new CommonsInternalError('Cannot compare items, please provide main table data key property or model id property.', {\n name: 'FormlyFieldTableDialogMultiselectComponentError'\n });\n }\n value = value.filter((i: any) => getObjectPropertyByPath(i, compareProperty) !== getObjectPropertyByPath(item, compareProperty));\n this.formControl.patchValue(value);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n this.dialogAreItemsLoaded = false;\n }\n\n public onSearch(event: Event) {\n const query = (event.target as HTMLInputElement).value;\n this.searchDebounceSubject.next(query);\n }\n}\n","<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-row justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\"\n >{{ props.label! | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n @if (hasAddAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n @if (hasDeleteAction && !options.formState?.disabled) {\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n }\n </ng-template>\n</mng-table>\n\n@if (hasAddAction) {\n <p-dialog\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: props.label! | translate}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-dialog mng-dialog-sm mng-formly-field-table-multiselect-dialog\">\n <ng-template pTemplate=\"content\" class=\"table-container\" mngDialogKeydownHandler>\n <div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 formly-field-table-multiselect-dialog-form-container\">\n <div class=\"mng-formly-field-table-multiselect-dialog-table\">\n <mng-table\n #addTableComponent\n [descriptor]=\"descriptor.lookupTableDescriptor\"\n [globalFilterFields]=\"descriptor.searchFields\"\n [result]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n @if (descriptor.searchEnabled) {\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex\">\n <span class=\"p-input-icon-left ml-auto\" [ngStyle]=\"{width: 'unset'}\">\n <i class=\"pi pi-search\"></i>\n <input pInputText type=\"text\" (input)=\"onSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n </span>\n </div>\n </ng-template>\n }\n </mng-table>\n </div>\n </div>\n <div class=\"flex flex-row justify-content-end mng-formly-field-table-multiselect-dialog-footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-primary\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n loadingIcon=\"pi pi-spin pi-spinner\"\n [disabled]=\"form.disabled\"></button>\n </div>\n </div>\n </ng-template>\n </p-dialog>\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\nimport {FieldType, FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TabViewModule} from 'primeng/tabview';\n\nimport {CommonsFormlyFieldConfig} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-tabs',\n templateUrl: './formly-field-tabs.component.html',\n imports: [TabViewModule, TranslateModule, FormlyModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldTabsComponent extends FieldType<CommonsFormlyFieldConfig> {}\n","<p-tabView [scrollable]=\"true\">\n @for (tab of field.fieldGroup; track tab) {\n <p-tabPanel [header]=\"tab.props?.label! | translate\" [headerStyleClass]=\"formControl!.valid ? 'p-tabview-title' : undefined\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.props?.label!) + '_invalid']\">{{\n tab.props?.label! | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n }\n</p-tabView>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\nimport {FieldWrapper, FormlyModule} from '@ngx-formly/core';\nimport {FormlyFieldConfig} from '@ngx-formly/core/lib/models/fieldconfig';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-no-label-wrapper',\n templateUrl: './formly-field-no-label-wrapper.component.html',\n imports: [FormlyModule, TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldNoLabelWrapperComponent extends FieldWrapper {\n public shouldShowError() {\n if (this.field.type !== 'formly-group' || (this.field.validators && Object.keys(this.field.validators).length > 0)) {\n return true;\n }\n return false;\n }\n\n public sanitizeErrorsForGroups(field: FormlyFieldConfig) {\n if (field.type === 'formly-group' && field.formControl?.errors && field.validators) {\n const errors: {[key: string]: any} = {};\n for (const key of Object.keys(field.formControl.errors)) {\n if (Object.prototype.hasOwnProperty.call(field.validators, key)) {\n errors[key] = field.validators[key];\n }\n }\n\n return {...field, formControl: {...field.formControl, errors}} as FormlyFieldConfig;\n }\n\n return field;\n }\n}\n","<div [class]=\"props['descriptor']?.['fieldClassName'] ?? 'field table'\">\n <ng-container #fieldComponent></ng-container>\n @if (props['descriptor']?.['helpText']) {\n <small class=\"block\">{{ props['descriptor']?.['helpText'] | translate }}</small>\n }\n @if (showError && shouldShowError()) {\n <small class=\"block p-error\">\n <formly-validation-message [field]=\"sanitizeErrorsForGroups(field)\"></formly-validation-message>\n </small>\n }\n</div>\n","import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core';\n\nimport {FieldWrapper, FormlyModule} from '@ngx-formly/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\nimport {AFieldDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\n@Component({\n standalone: true,\n selector: 'mng-formly-field-wrapper',\n templateUrl: './formly-field-wrapper.component.html',\n imports: [TranslateModule, FormlyModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyFieldWrapperComponent extends FieldWrapper implements OnInit {\n public ngOnInit() {\n const descriptor = this.props?.['descriptor'] as AFieldDescriptor<any, any>;\n if (this.formState.disabled && descriptor.isLocalized) {\n this.addMissingTranslationHelperText();\n }\n }\n\n private addMissingTranslationHelperText(): void {\n if (!this.model[this.props?.['descriptor'].property + 'Translated'] && this.props?.['descriptor']?.property !== 'id') {\n this.props?.['descriptor']?.withHelpText('mngEditor.localizations.missingTranslation');\n this.field.className += ' localized-input-border-orange';\n } else {\n this.props?.['descriptor']?.withHelpText('');\n }\n }\n}\n","<div [class]=\"props['descriptor']?.['fieldClassName'] ?? 'field'\">\n <div class=\"grid mt-0\">\n @if (props.label) {\n <label [for]=\"key\" class=\"col\" [class]=\"props['descriptor']?.['labelClassName'] ?? ''\"\n >{{ props!.label! | translate }}\n @if (props.required && props['hideRequiredMarker'] !== true) {\n <span>*</span>\n }\n </label>\n }\n </div>\n <ng-container #fieldComponent></ng-container>\n @if (props['descriptor']?.['helpText']) {\n <small class=\"block\">{{ props['descriptor']?.['helpText'] | translate }}</small>\n }\n @if (showError) {\n <small class=\"p-error block\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n</div>\n","import {DatePipe} from '@angular/common';\n\nimport {WrapperOption} from '@ngx-formly/core/lib/models/config';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Observable} from 'rxjs';\n\nimport {CommonsFormlyFieldConfig, FieldInputDescriptor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {FormlyFieldActionComponent} from '../components/formly/fields/formly-field-action/formly-field-action.component';\nimport {FormlyFieldAutocompleteComponent} from '../components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component';\nimport {FormlyFieldCustomComponent} from '../components/formly/fields/formly-field-custom/formly-field-custom.component';\nimport {FormlyFieldDropdownComponent} from '../components/formly/fields/formly-field-dropdown/formly-field-dropdown.component';\nimport {FormlyFieldFieldsetComponent} from '../components/formly/fields/formly-field-fieldset/formly-field-fieldset.component';\nimport {FormlyFieldInputComponent} from '../components/formly/fields/formly-field-input/formly-field-input.component';\nimport {FormlyFieldLabelComponent} from '../components/formly/fields/formly-field-label/formly-field-label.component';\nimport {FormlyFieldLookupDialogComponent} from '../components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component';\nimport {FormlyFieldTableDialogFormComponent} from '../components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component';\nimport {FormlyFieldTableDialogMultiselectComponent} from '../components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';\nimport {FormlyFieldTabsComponent} from '../components/formly/fields/formly-field-tabs/formly-field-tabs.component';\nimport {FormlyFieldNoLabelWrapperComponent} from '../components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component';\nimport {FormlyFieldWrapperComponent} from '../components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component';\nimport {CommonsFormlyTypeConfig} from '../models/formly-config.model';\n\nexport const formlyWrappersConfig: WrapperOption[] = [\n {name: 'field', component: FormlyFieldWrapperComponent},\n {name: 'field-no-label', component: FormlyFieldNoLabelWrapperComponent}\n];\n\nexport const formlyTypesConfig: CommonsFormlyTypeConfig[] = [\n {\n name: 'label',\n component: FormlyFieldLabelComponent,\n wrappers: ['field']\n },\n {\n name: 'input',\n component: FormlyFieldInputComponent,\n wrappers: ['field']\n },\n {name: 'string', extends: 'input'},\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n },\n {\n name: 'currency',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n },\n {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n },\n {\n name: 'textarea',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'textarea'\n }\n }\n },\n {\n name: 'switch',\n component: FormlyFieldInputComponent,\n defaultOptions: {\n props: {\n type: 'switch'\n }\n }\n },\n {\n name: 'radio',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'radio'\n }\n }\n },\n {\n name: 'datepicker',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'datepicker'\n }\n }\n },\n {\n name: 'mask',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'mask'\n }\n }\n },\n {\n name: 'file',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'file'\n }\n }\n },\n {\n name: 'imageUrl',\n component: FormlyFieldInputComponent,\n defaultOptions: {\n props: {\n type: 'imageUrl'\n }\n },\n wrappers: ['field']\n },\n {\n name: 'dropdown',\n component: FormlyFieldDropdownComponent,\n wrappers: ['field']\n },\n {name: 'enum', extends: 'dropdown'},\n {\n name: 'autocomplete',\n component: FormlyFieldAutocompleteComponent,\n wrappers: ['field']\n },\n {\n name: 'action',\n component: FormlyFieldActionComponent,\n wrappers: ['field-no-label']\n },\n {\n name: 'dialog',\n component: FormlyFieldLookupDialogComponent,\n wrappers: ['field']\n },\n {\n name: 'table-dialog-multiselect',\n component: FormlyFieldTableDialogMultiselectComponent,\n wrappers: ['field-no-label']\n },\n {\n name: 'table-dialog-form',\n component: FormlyFieldTableDialogFormComponent,\n wrappers: ['field-no-label']\n },\n {\n name: 'tabs',\n component: FormlyFieldTabsComponent,\n wrappers: []\n },\n {\n name: 'fieldset',\n component: FormlyFieldFieldsetComponent,\n wrappers: []\n },\n {\n name: 'formly-group',\n wrappers: ['field-no-label']\n },\n {\n name: 'custom',\n component: FormlyFieldCustomComponent,\n wrappers: []\n }\n];\n\nexport function getRequiredValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label || 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.required', {field: fieldName});\n };\n}\n\nexport function getMinLengthValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label ?? 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.minLength', {field: fieldName, minLength: field.props.minLength});\n };\n}\n\nexport function getMaxLengthValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label || 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.maxLength', {field: fieldName, maxLength: field.props.maxLength});\n };\n}\n\nexport function getMinValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label ?? 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.min', {field: fieldName, min: field.props.min});\n };\n}\n\nexport function getMaxValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label || 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.max', {field: fieldName, max: field.props.max});\n };\n}\n\nexport function getTextPatternValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label ?? 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.pattern', {field: fieldName, pattern: field.props.pattern});\n };\n}\n\nexport function getEmailValidationMessage(translate: TranslateService): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const fieldLabel = field.props.label || 'field';\n const fieldName = translate.instant(fieldLabel);\n return translate.instant('mngEditor.validation.email', {field: fieldName});\n };\n}\n\nexport function getMinDateValidationMessage(translate: TranslateService, datePipe: DatePipe): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const inputDescriptor = field.props.descriptor as FieldInputDescriptor<any>;\n const minDate = inputDescriptor.datePickerMin;\n\n if (!minDate) return '';\n let dateString = datePipe.transform(minDate, 'dd. MM. yyyy') ?? '';\n\n if (inputDescriptor.datePickerShowTime) {\n dateString += datePipe.transform(minDate, ' HH:mm:ss');\n }\n\n return translate.instant('mngEditor.validation.minDate', {min: dateString});\n };\n}\n\nexport function getMaxDateValidationMessage(translate: TranslateService, datePipe: DatePipe): (error: any, field: CommonsFormlyFieldConfig) => Observable<string> | undefined {\n return (error: any, field: CommonsFormlyFieldConfig) => {\n const inputDescriptor = field.props.descriptor as FieldInputDescriptor<any>;\n const maxDate = inputDescriptor.datePickerMax;\n\n if (!maxDate) return '';\n let dateString = datePipe.transform(maxDate, 'dd. MM. yyyy') ?? '';\n\n if (inputDescriptor.datePickerShowTime) {\n dateString += datePipe.transform(maxDate, ' HH:mm:ss');\n }\n\n return translate.instant('mngEditor.validation.maxDate', {max: dateString});\n };\n}\n\nexport const getFormlyValidationMessages = (translate: TranslateService, datePipe: DatePipe): any[] => {\n return [\n {name: 'required', message: getRequiredValidationMessage(translate)},\n {name: 'minLength', message: getMinLengthValidationMessage(translate)},\n {name: 'maxLength', message: getMaxLengthValidationMessage(translate)},\n {name: 'min', message: getMinValidationMessage(translate)},\n {name: 'max', message: getMaxValidationMessage(translate)},\n {name: 'pattern', message: getTextPatternValidationMessage(translate)},\n {name: 'email', message: getEmailValidationMessage(translate)},\n {name: 'minDate', message: getMinDateValidationMessage(translate, datePipe)},\n {name: 'maxDate', message: getMaxDateValidationMessage(translate, datePipe)}\n ];\n};\n","import {DatePipe} from '@angular/common';\n\nimport {ConfigOption} from '@ngx-formly/core';\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {TableviewFeatureConfig} from '../../tableview/services/tableview-feature-config.token';\nimport {formlyTypesConfig, formlyWrappersConfig, getFormlyValidationMessages} from '../helpers/formly-config';\n\nexport function commonsFormlyConfigProvider(translate: TranslateService, datePipe: DatePipe, config: TableviewFeatureConfig = {}): ConfigOption {\n const merge = config.formly?.merge ?? true;\n\n let types = formlyTypesConfig;\n if (config.formly?.types) {\n if (!merge) {\n types = [];\n }\n types = [...types, ...config.formly.types];\n }\n\n let wrappers = formlyWrappersConfig;\n if (config.formly?.wrappers) {\n if (!merge) {\n wrappers = [];\n }\n wrappers = [...wrappers, ...config.formly.wrappers];\n }\n\n let validationMessages = getFormlyValidationMessages(translate, datePipe);\n if (typeof config.formly?.getValidationMessages === 'function') {\n if (!merge) {\n validationMessages = [];\n }\n validationMessages = [...validationMessages, ...config.formly.getValidationMessages(translate)];\n }\n\n return {\n types: types,\n wrappers: wrappers,\n validationMessages: validationMessages\n };\n}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {Component, Input, OnInit, Signal, TemplateRef, computed, contentChildren, inject} from '@angular/core';\nimport {RouterOutlet} from '@angular/router';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SharedModule} from 'primeng/api';\nimport {ToolbarModule} from 'primeng/toolbar';\n\nimport {DataListParams, TemplateDirective, findTemplateByName} from '@mediusinc/mng-commons/core';\nimport {TableLoadEvent} from '@mediusinc/mng-commons/table/api';\nimport {ActionDescriptorInst, ActionPositionEnum, ITableviewDataProvider, TableviewActionDefaultCategories, TableviewDescriptorInst} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionComponent} from '../../../action/components/action/action.component';\nimport {ActionTableComponent} from '../../../action/components/table/action-table.component';\nimport {provideViewContainer} from '../../../action/services/providers/provide-view-container';\nimport {ViewContainer} from '../../../action/services/view-container.service';\n\n@Component({\n standalone: true,\n selector: 'mng-tableview',\n templateUrl: './tableview.component.html',\n imports: [ToolbarModule, SharedModule, TranslateModule, NgTemplateOutlet, ActionComponent, ActionTableComponent, TemplateDirective, RouterOutlet],\n providers: [provideViewContainer()]\n})\nexport class TableviewComponent<Item = any, Service = undefined, Sorts = keyof Item, Filters extends keyof any = keyof Item> implements OnInit {\n public readonly viewContainer = inject(ViewContainer, {optional: true});\n\n @Input({required: true}) public descriptor!: TableviewDescriptorInst<Item, Sorts, Filters>;\n @Input() public dataProvider?: ITableviewDataProvider<Item, Service, Sorts, Filters>;\n @Input() public actions: Array<ActionDescriptorInst<any>> = [];\n\n public tableActions: ActionDescriptorInst<Item>[] = [];\n public toolbarLeftActions: ActionDescriptorInst<Item>[] = [];\n public toolbarRightActions: ActionDescriptorInst<Item>[] = [];\n\n public tableParams?: DataListParams;\n\n public hasItemSelectionAction = false;\n public selectedItems: Item[] = [];\n\n public templates = contentChildren(TemplateDirective);\n public footerTemplate: Signal<TemplateRef<any> | null> = computed(() => findTemplateByName([...this.templates()], 'footer'));\n public rowExpandTemplate: Signal<TemplateRef<any> | null> = computed(() => findTemplateByName([...this.templates()], 'rowExpandContent'));\n\n ngOnInit() {\n if (this.viewContainer) {\n this.viewContainer.actions = this.actions;\n }\n\n if (this.viewContainer && this.dataProvider) {\n this.viewContainer.dataProvider = this.dataProvider;\n }\n\n for (const action of this.actions.filter(value => value.positionTableviewCategories?.includes(TableviewActionDefaultCategories.READ) ?? true)) {\n switch (action.position) {\n case ActionPositionEnum.ToolbarLeft:\n this.toolbarLeftActions.push(action);\n break;\n case ActionPositionEnum.ToolbarRight:\n this.toolbarRightActions.push(action);\n break;\n case ActionPositionEnum.TableHeader:\n case ActionPositionEnum.RowInline:\n case ActionPositionEnum.RowClick:\n this.tableActions.push(action);\n break;\n }\n }\n\n this.toolbarRightActions = this.toolbarRightActions.reverse();\n\n this.hasItemSelectionAction = [...this.toolbarLeftActions, ...this.toolbarRightActions].some(e => e.hasItemsSelection);\n }\n\n public onTableLoad(event: TableLoadEvent) {\n this.tableParams = event.params;\n }\n\n public selectionChange(selectedItems: Array<Item>): void {\n this.selectedItems = selectedItems;\n }\n}\n","<div class=\"mng-tableview\">\n <div class=\"card\">\n @if (toolbarLeftActions.length > 0 || toolbarRightActions.length > 0) {\n <p-toolbar styleClass=\"mb-4\">\n <ng-template pTemplate=\"left\">\n @for (action of toolbarLeftActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n <ng-template pTemplate=\"right\">\n @for (action of toolbarRightActions; track action) {\n <mng-action [action]=\"action\" [dataListParams]=\"tableParams\" [hostComponent]=\"this\" [selectedItems]=\"selectedItems\"></mng-action>\n }\n </ng-template>\n </p-toolbar>\n }\n\n <mng-action-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n @if (rowExpandTemplate()) {\n <ng-template mngTemplate=\"rowExpandContent\" let-item=\"rowItem\">\n <ng-container *ngTemplateOutlet=\"rowExpandTemplate(); context: {rowItem: item}\"></ng-container>\n </ng-template>\n }\n\n @if (footerTemplate()) {\n <ng-template mngTemplate=\"footer\" let-data=\"data\" let-totalCount=\"totalCount\">\n <ng-container *ngTemplateOutlet=\"footerTemplate(); context: {data, totalCount}\"></ng-container>\n </ng-template>\n }\n </mng-action-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n","import {Component, Input} from '@angular/core';\n\nimport {TableviewInput} from '@mediusinc/mng-commons/tableview/api';\n\nimport {TableviewComponent} from '../tableview/tableview.component';\n\n@Component({\n standalone: true,\n selector: 'mng-tableview-route',\n imports: [TableviewComponent],\n templateUrl: './tableview-route.component.html'\n})\nexport class TableviewRouteComponent<Item, Service = undefined, Sorts = keyof Item, Filters extends keyof any = keyof Item> {\n @Input({required: true}) public tableview!: TableviewInput<Item, Service, Sorts, Filters>;\n}\n","<mng-tableview [descriptor]=\"tableview.descriptor\" [dataProvider]=\"tableview.dataProvider\" [actions]=\"tableview.actions\"> </mng-tableview>\n","import {Type} from '@angular/core';\nimport {Route} from '@angular/router';\n\nimport {APermissions, CommonsRouteData, RouteBuilder} from '@mediusinc/mng-commons/core';\nimport {\n ActionDescriptorInst,\n ActionEditorAddDescriptorInst,\n ActionEditorDetailsDescriptorInst,\n ActionEditorEditDescriptorInst,\n ITableviewDataProvider,\n TableviewActionDefaultCategories,\n TableviewDescriptorInst,\n TableviewRouteData\n} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionRouteComponent} from '../../action/components/route/action-route.component';\nimport {unsavedChangesGuard} from '../../action/guards/unsaved-changes.guard';\n\nexport class TableviewRouteBuilderInternal extends RouteBuilder {\n private readonly descriptor?: TableviewDescriptorInst<any>;\n private readonly dataProvider?: ITableviewDataProvider;\n private readonly actions?: Array<ActionDescriptorInst<any>>;\n private readonly isFromComponent: boolean = true;\n\n protected override routeData: TableviewRouteData = {breadcrumb: null};\n private hasDetails = true;\n private detailsPath = ':itemId';\n private hasEdit = true;\n private editPath = ':itemId/edit';\n private hasAdd = true;\n private addPath = 'add';\n private hasDelete = true;\n\n private tableviewPermissions?: {\n [key: string]: APermissions;\n };\n\n public constructor(\n private path: string,\n options: Partial<{\n component: Type<any>;\n descriptor: TableviewDescriptorInst<any>;\n dataProvider: ITableviewDataProvider;\n actions: Array<ActionDescriptorInst<any>>;\n }>\n ) {\n super({path: path, component: options.component ?? TableviewRouteBuilder});\n\n if (!options.component) {\n this.isFromComponent = false;\n this.descriptor = options.descriptor;\n this.dataProvider = options.dataProvider;\n this.actions = options.actions;\n\n this.hasDetails = false;\n this.hasAdd = false;\n this.hasEdit = false;\n if (this.actions) {\n for (const action of this.actions) {\n if (action instanceof ActionEditorDetailsDescriptorInst) {\n this.hasDetails = true;\n } else if (action instanceof ActionEditorAddDescriptorInst) {\n this.hasAdd = true;\n } else if (action instanceof ActionEditorEditDescriptorInst) {\n this.hasEdit = true;\n }\n }\n }\n }\n }\n\n public withReadOnly(permissions?: APermissions): this {\n if (permissions) {\n this.withPermissions(permissions);\n }\n this.withAdd(false);\n this.withEdit(false);\n this.withDelete(false);\n return this;\n }\n\n public withDetails(hasDetails = true, permissions?: APermissions, path?: string): this {\n this.hasDetails = hasDetails;\n if (permissions) {\n this.withPermissions(undefined, undefined, undefined, undefined, permissions);\n }\n if (path) {\n this.detailsPath = path;\n }\n return this;\n }\n\n public withAdd(hasAdd = true, permissions?: APermissions, path?: string): this {\n this.hasAdd = hasAdd;\n if (permissions) {\n this.withPermissions(undefined, permissions);\n }\n if (path) {\n this.addPath = path;\n }\n return this;\n }\n\n public withEdit(hasEdit = true, permissions?: APermissions, path?: string): this {\n this.hasEdit = hasEdit;\n if (permissions) {\n this.withPermissions(undefined, undefined, permissions);\n }\n if (path) {\n this.editPath = path;\n }\n return this;\n }\n\n public withDelete(hasDelete = true, permissions?: APermissions): this {\n this.hasDelete = hasDelete;\n if (permissions) {\n this.withPermissions(undefined, undefined, undefined, permissions);\n }\n return this;\n }\n\n public override withPermissions(read?: APermissions, add?: APermissions, edit?: APermissions, delet?: APermissions, details?: APermissions): this {\n if (!this.tableviewPermissions) {\n this.tableviewPermissions = {};\n }\n if (read) {\n this.tableviewPermissions[TableviewActionDefaultCategories.READ] = read;\n }\n if (add) {\n this.tableviewPermissions[TableviewActionDefaultCategories.ADD] = add;\n }\n if (edit) {\n this.tableviewPermissions[TableviewActionDefaultCategories.EDIT] = edit;\n }\n if (delet) {\n this.tableviewPermissions[TableviewActionDefaultCategories.DELETE] = delet;\n }\n if (details) {\n this.tableviewPermissions[TableviewActionDefaultCategories.DETAILS] = details;\n }\n return this;\n }\n\n public withPermissionByCategory(key: string, permissions: APermissions): this {\n if (!this.tableviewPermissions) {\n this.tableviewPermissions = {};\n }\n this.tableviewPermissions[key] = permissions;\n return this;\n }\n\n public withPermissionsObject(permissions: {[key: string]: APermissions}): this {\n this.tableviewPermissions = permissions;\n return this;\n }\n\n public override build(): Route {\n if (!this.isFromComponent) {\n this.routeData.tableview = {\n descriptor: this.descriptor!,\n dataProvider: this.dataProvider!\n };\n if (this.actions) {\n this.routeData.tableview.actions = this.actions;\n }\n }\n if (this.tableviewPermissions) {\n this.routeData.tableviewPermissions = {...this.tableviewPermissions};\n }\n this.routeData.tableviewActions = {\n hasAdd: this.hasAdd,\n hasEdit: this.hasEdit,\n hasDetails: this.hasDetails,\n hasDelete: this.hasDelete\n };\n this.withData(this.routeData);\n if (this.tableviewPermissions?.[TableviewActionDefaultCategories.READ]) {\n this.routeData.permissions = this.tableviewPermissions[TableviewActionDefaultCategories.READ];\n }\n\n // copy route data for children, reset breadcrumbs menu items and permission\n const childrenRouteData: CommonsRouteData = {\n ...this.routeData,\n breadcrumb: null,\n menuItems: undefined,\n permissions: undefined\n };\n\n // list route\n const rootChildRouteBuilder = RouteBuilder.create('', ActionRouteComponent);\n rootChildRouteBuilder.withData({...childrenRouteData});\n if (this.tableviewPermissions?.[TableviewActionDefaultCategories.READ]) {\n rootChildRouteBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.READ]);\n }\n this.addChildBuilder(rootChildRouteBuilder);\n\n // add route\n if (this.hasAdd) {\n const routeBuilder = RouteBuilder.create(this.addPath, ActionRouteComponent);\n routeBuilder.withData({...childrenRouteData});\n if (this.tableviewPermissions?.[TableviewActionDefaultCategories.ADD]) {\n routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.ADD]);\n }\n this.addChildBuilder(routeBuilder);\n routeBuilder.withCanDeactivate(unsavedChangesGuard);\n }\n if (this.hasDetails) {\n const routeBuilder = RouteBuilder.create(this.detailsPath, ActionRouteComponent);\n routeBuilder.withData({...childrenRouteData});\n if (this.tableviewPermissions?.[TableviewActionDefaultCategories.DETAILS]) {\n routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.DETAILS]);\n }\n this.addChildBuilder(routeBuilder);\n }\n if (this.hasEdit) {\n const routeBuilder = RouteBuilder.create(this.editPath, ActionRouteComponent);\n routeBuilder.withData({...childrenRouteData});\n if (this.tableviewPermissions?.[TableviewActionDefaultCategories.EDIT]) {\n routeBuilder.withPermissions(this.tableviewPermissions[TableviewActionDefaultCategories.EDIT]);\n }\n this.addChildBuilder(routeBuilder);\n routeBuilder.withCanDeactivate(unsavedChangesGuard);\n }\n\n return super.build();\n }\n\n protected override findMenuItemPermissions() {\n const menuItemPermission = super.findMenuItemPermissions();\n if (!menuItemPermission) {\n return this.tableviewPermissions?.[TableviewActionDefaultCategories.READ];\n }\n return menuItemPermission;\n }\n}\n\nexport class TableviewRouteBuilder {\n public static fromComponent<C>(path: string, component: Type<C>): TableviewRouteBuilderInternal {\n return new TableviewRouteBuilderInternal(path, {component});\n }\n\n public static from(\n path: string,\n descriptor: TableviewDescriptorInst<any>,\n dataProvider: ITableviewDataProvider,\n actions: Array<ActionDescriptorInst<any>>\n ): TableviewRouteBuilderInternal {\n return new TableviewRouteBuilderInternal(path, {descriptor, dataProvider, actions});\n }\n}\n","import {DatePipe} from '@angular/common';\n\nimport {FORMLY_CONFIG} from '@ngx-formly/core';\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {CommonsFeature, CommonsFeatureTypeEnum} from '@mediusinc/mng-commons/core';\nimport {DATA_LANGUAGE_DROPDOWN_COMPONENT_IT, DataProviderExecutor} from '@mediusinc/mng-commons/tableview/api';\n\nimport {ActionEditorComponent} from './action/components/editor/action-editor.component';\nimport {DataLanguageDropdownComponent} from './action/components/localization/data-language-dropdown.component';\nimport {ActionErrorMapperService, DefaultActionErrorMapperService} from './action/services/action-error-mapper.service';\nimport {ActionExecutorService} from './action/services/action-executor.service';\nimport {DefaultDataProviderExecutor} from './action/services/data-provider-executor.service';\nimport {NavigationService} from './action/services/navigation.service';\nimport {RootActionExecutorService} from './action/services/root-action-executor.service';\nimport {ACTION_EDITOR_COMPONENT_IT} from './action/services/tokens/action-editor.token';\nimport {commonsFormlyConfigProvider} from './editor/services/formly-config.provider';\nimport {COMMONS_TABLEVIEW_FEATURE_CONFIG_IT, TableviewFeatureConfig} from './tableview/services/tableview-feature-config.token';\n\n/**\n * Prepares providers for usage of the tableview functionalities.\n *\n * @returns {CommonsFeature} The `CommonsFeature` object with the layout configuration.\n */\nexport function withTableview(config?: TableviewFeatureConfig): CommonsFeature {\n return {\n type: CommonsFeatureTypeEnum.Tableview,\n providers: [\n DatePipe,\n NavigationService,\n {\n provide: COMMONS_TABLEVIEW_FEATURE_CONFIG_IT,\n useValue: config\n },\n {\n provide: FORMLY_CONFIG,\n multi: true,\n useFactory: commonsFormlyConfigProvider,\n deps: [TranslateService, DatePipe, COMMONS_TABLEVIEW_FEATURE_CONFIG_IT]\n },\n {\n provide: ACTION_EDITOR_COMPONENT_IT,\n useValue: ActionEditorComponent\n },\n {\n provide: DATA_LANGUAGE_DROPDOWN_COMPONENT_IT,\n useValue: DataLanguageDropdownComponent\n },\n {\n provide: ActionErrorMapperService,\n useClass: DefaultActionErrorMapperService\n },\n RootActionExecutorService,\n {\n provide: ActionExecutorService,\n useExisting: RootActionExecutorService\n },\n DefaultDataProviderExecutor,\n {\n provide: DataProviderExecutor,\n useExisting: DefaultDataProviderExecutor\n }\n ]\n };\n}\n","// action components\nexport * from './action/components/action/action.component';\nexport * from './action/components/editor/action-editor.component';\nexport * from './action/components/localization/data-language-dropdown.component';\nexport * from './action/components/route/action-route.component';\nexport * from './action/components/table/action-table.component';\n\n// action guards\nexport * from './action/guards/unsaved-changes.guard';\n\n// action helpers\nexport * from './action/helpers/i18n';\nexport * from './action/helpers/notification';\nexport * from './action/helpers/styles';\n\n// action models\nexport * from './action/models/execution/action-context.model';\nexport * from './action/models/execution/action-instance.model';\nexport * from './action/models/execution/action-instance-state.model';\nexport * from './action/models/action-editor-dialog-data.model';\nexport * from './action/models/can-component-deactivate.model';\n\n// action services\nexport * from './action/services/providers/provide-action-executor';\nexport * from './action/services/providers/provide-view-container';\nexport * from './action/services/tokens/action-editor.token';\nexport * from './action/services/action-error-mapper.service';\nexport * from './action/services/action-executor.service';\nexport * from './action/services/component-action-executor.service';\nexport * from './action/services/data-provider-executor.service';\nexport * from './action/services/navigation.service';\nexport * from './action/services/root-action-executor.service';\nexport * from './action/services/view-container.service';\n\n// editor components\nexport * from './editor/components/editor/form-editor.component';\nexport * from './editor/components/formly/fields/formly-field-action/formly-field-action.component';\nexport * from './editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component';\nexport * from './editor/components/formly/fields/formly-field-custom/formly-field-custom.component';\nexport * from './editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component';\nexport * from './editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component';\nexport * from './editor/components/formly/fields/formly-field-input/formly-field-input.component';\nexport * from './editor/components/formly/fields/formly-field-label/formly-field-label.component';\nexport * from './editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component';\nexport * from './editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component';\nexport * from './editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';\nexport * from './editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component';\nexport * from './editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component';\nexport * from './editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component';\n\n// editor helpers\nexport * from './editor/helpers/editor-formly';\nexport * from './editor/helpers/formly-config';\nexport * from './editor/helpers/notification';\n\n// editor models\nexport * from './editor/models/formly-config.model';\n\n// editor services\nexport * from './editor/services/formly-config.provider';\n\n// tableview components\nexport * from './tableview/components/route/tableview-route.component';\nexport * from './tableview/components/tableview/tableview.component';\n\n// tableview router\nexport * from './tableview/router/tableview-route-builder';\n\n// tableview services\nexport * from './tableview/services/tableview-feature-config.token';\n\n// provide\nexport * from './provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["mergeMap","i2","i3","i4.ActionExecutorService","i5.ViewContainer","i6","i1","take","i2.ActionExecutorService","i3.ViewContainer","i4","i5","i7","i8","i9","i10","i15"],"mappings":"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"}
|