@mediusinc/mng-commons 5.0.0-rc.0-c31d5206 → 5.0.0-rc.0
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.util.d.ts +84 -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/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.model.d.ts +8 -0
- package/core/enum/enum.util.d.ts +51 -0
- package/core/error/error-handler.d.ts +6 -0
- package/core/error/error.model.d.ts +47 -0
- package/core/error/error.util.d.ts +116 -0
- package/core/helpers/coercion.d.ts +9 -0
- package/core/helpers/notification.d.ts +2 -0
- package/core/helpers/type-helpers.d.ts +16 -0
- package/core/index.d.ts +77 -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/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/json-path.pipe.d.ts +13 -0
- package/core/pipes/parametrize.pipe.d.ts +12 -0
- package/core/pipes/template.pipe.d.ts +10 -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 +67 -0
- package/core/router/router.model.d.ts +13 -0
- package/core/router/routes-builder.d.ts +19 -0
- package/core/rxjs/map-data-list-result-operator.d.ts +9 -0
- package/core/security/permission.guard.d.ts +2 -0
- package/core/security/permission.service.d.ts +16 -0
- package/core/security/permission.util.d.ts +5 -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/core/utils/i18n.util.d.ts +36 -0
- package/core/utils/object.util.d.ts +31 -0
- package/core/utils/route.util.d.ts +37 -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.util.mjs +417 -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/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.model.mjs +2 -0
- package/esm2022/core/enum/enum.util.mjs +83 -0
- package/esm2022/core/error/error-handler.mjs +20 -0
- package/esm2022/core/error/error.model.mjs +32 -0
- package/esm2022/core/error/error.util.mjs +249 -0
- package/esm2022/core/helpers/coercion.mjs +52 -0
- package/esm2022/core/helpers/notification.mjs +6 -0
- package/esm2022/core/helpers/type-helpers.mjs +2 -0
- package/esm2022/core/index.mjs +99 -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/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/json-path.pipe.mjs +25 -0
- package/esm2022/core/pipes/parametrize.pipe.mjs +86 -0
- package/esm2022/core/pipes/template.pipe.mjs +26 -0
- package/esm2022/core/provide.mjs +98 -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 +336 -0
- package/esm2022/core/router/router.model.mjs +2 -0
- package/esm2022/core/router/routes-builder.mjs +53 -0
- package/esm2022/core/rxjs/map-data-list-result-operator.mjs +19 -0
- package/esm2022/core/security/permission.guard.mjs +15 -0
- package/esm2022/core/security/permission.service.mjs +49 -0
- package/esm2022/core/security/permission.util.mjs +16 -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/core/utils/date.util.mjs +136 -0
- package/esm2022/core/utils/i18n.util.mjs +137 -0
- package/esm2022/core/utils/object.util.mjs +147 -0
- package/esm2022/core/utils/route.util.mjs +60 -0
- package/esm2022/core/utils/string.util.mjs +59 -0
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +186 -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/index.mjs +11 -0
- package/esm2022/model/mediusinc-mng-commons-model.mjs +5 -0
- package/esm2022/model/pipes/enum.pipe.mjs +26 -0
- package/esm2022/model/pipes/i18n-property.pipe.mjs +19 -0
- package/esm2022/model/utils/i18n.util.mjs +51 -0
- package/esm2022/model/utils/model.util.mjs +73 -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 +750 -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 +88 -0
- package/esm2022/table/components/table/table.component.mjs +647 -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 +158 -0
- package/esm2022/tableview/action/guards/unsaved-changes.guard.mjs +4 -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 +766 -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/action/utils/i18n.util.mjs +126 -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/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/editor/utils/editor-formly.util.mjs +337 -0
- package/esm2022/tableview/index.mjs +64 -0
- package/esm2022/tableview/mediusinc-mng-commons-tableview.mjs +5 -0
- package/esm2022/tableview/provide.mjs +61 -0
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +15 -0
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +84 -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 +3904 -0
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-filter.mjs +403 -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 +300 -0
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +1363 -0
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1393 -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 +4756 -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/index.d.ts +7 -0
- package/model/pipes/enum.pipe.d.ts +8 -0
- package/model/pipes/i18n-property.pipe.d.ts +8 -0
- package/model/utils/i18n.util.d.ts +15 -0
- package/model/utils/model.util.d.ts +8 -0
- package/package.json +55 -19
- 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 +271 -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 +33 -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/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/action/utils/i18n.util.d.ts +48 -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/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/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/editor/utils/editor-formly.util.d.ts +12 -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/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/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/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 → core}/utils/date.util.d.ts +0 -0
- /package/{lib → core}/utils/string.util.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/descriptors/types → tableview/api/action/models}/action.type.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-core.mjs","sources":["../../core/src/directives/dialog-keydown-handler.directive.ts","../../core/src/components/notification/notification-wrapper.component.ts","../../core/src/components/notification/notification-wrapper.component.html","../../core/src/error/error.model.ts","../../core/src/utils/date.util.ts","../../core/src/log/log.model.ts","../../core/src/log/logger.service.ts","../../core/src/services/tokens/browser-storage.token.ts","../../core/src/services/tokens/module-config.token.ts","../../core/src/services/commons.service.ts","../../core/src/components/pages/error/error.page.component.ts","../../core/src/components/pages/error/error.page.component.html","../../core/src/components/pages/not-found/not-found.page.component.ts","../../core/src/components/pages/not-found/not-found.page.component.html","../../core/src/data-list/filter-match.model.ts","../../core/src/data-list/data-list-params.util.ts","../../core/src/data-providers/base.data-provider.ts","../../core/src/directives/component.directive.ts","../../core/src/directives/template.directive.ts","../../core/src/enum/enum.util.ts","../../core/src/utils/object.util.ts","../../core/src/utils/string.util.ts","../../core/src/error/error.util.ts","../../core/src/error/error-handler.ts","../../core/src/helpers/coercion.ts","../../core/src/helpers/notification.ts","../../core/src/log/log-publisher-console.service.ts","../../core/src/pipes/boolean.pipe.ts","../../core/src/pipes/class-map.pipe.ts","../../core/src/pipes/json-path.pipe.ts","../../core/src/pipes/enumerate.pipe.ts","../../core/src/pipes/enumerate-async.pipe.ts","../../core/src/pipes/getter.pipe.ts","../../core/src/pipes/parametrize.pipe.ts","../../core/src/pipes/template.pipe.ts","../../core/src/reflect/type-enum-metadata.ts","../../core/src/reflect/type-enum-decorator.ts","../../core/src/registry/type-registry.ts","../../core/src/security/permissions.model.ts","../../core/src/security/permission.util.ts","../../core/src/security/permission.service.ts","../../core/src/security/permission.guard.ts","../../core/src/utils/route.util.ts","../../core/src/router/route-builder.ts","../../core/src/router/routes-builder.ts","../../core/src/rxjs/map-data-list-result-operator.ts","../../core/src/services/providers/commons-init.provider.ts","../../core/src/services/tokens/commons-init.token.ts","../../core/src/services/tokens/log-publisher.token.ts","../../core/src/services/commons-configuration.service.ts","../../core/src/services/commons-router.service.ts","../../core/src/services/commons-init.service.ts","../../core/src/services/local-storage-config.service.ts","../../core/src/styles/style.model.ts","../../core/src/styles/style-constants.ts","../../core/src/utils/i18n.util.ts","../../core/src/provide.ts","../../core/src/index.ts","../../core/src/mediusinc-mng-commons-core.ts"],"sourcesContent":["import {Directive, OnDestroy, OnInit, inject} from '@angular/core';\n\nimport {Dialog} from 'primeng/dialog';\nimport {DialogService, DynamicDialogComponent} from 'primeng/dynamicdialog';\n\n@Directive({\n standalone: true,\n selector: '[mngDialogKeydownHandler]'\n})\nexport class DialogKeydownHandlerDirective implements OnInit, OnDestroy {\n private readonly dialogService = inject(DialogService);\n private readonly dynamicDialog = inject(DynamicDialogComponent, {optional: true});\n private readonly dialog = inject(Dialog, {optional: true});\n private readonly dialogsWithKeydownListener: DynamicDialogComponent[] = [];\n\n ngOnInit(): void {\n if (!this.dialog && !this.dynamicDialog) {\n // not a dialog, return\n return;\n }\n\n this.dialogService.dialogComponentRefMap.forEach(v => {\n if ((this.dialog || v.instance !== this.dynamicDialog) && v.instance.documentKeydownListener) {\n // exclude self dynamic dialog\n this.dialogsWithKeydownListener.push(v.instance);\n v.instance.unbindDocumentKeydownListener();\n }\n });\n\n if (!this.dialog) {\n // if dialog is present, then do not bind (because it will bind on unbind-ed dynamic dialog\n this.dynamicDialog?.bindDocumentKeydownListener();\n }\n }\n\n ngOnDestroy(): void {\n if (!this.dialog && !this.dynamicDialog) {\n // not a dialog, return\n return;\n }\n\n if (!this.dialog) {\n this.dynamicDialog?.unbindDocumentKeydownListener();\n }\n\n this.dialogsWithKeydownListener.forEach(c => c.bindDocumentKeydownListener());\n }\n}\n","import {ChangeDetectionStrategy, Component, computed, signal} from '@angular/core';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {Message} from 'primeng/api';\nimport {ConfirmDialogModule} from 'primeng/confirmdialog';\nimport {DialogModule} from 'primeng/dialog';\nimport {ToastModule} from 'primeng/toast';\n\nimport {DialogKeydownHandlerDirective} from '../../directives/dialog-keydown-handler.directive';\n\n@Component({\n selector: 'mng-notification-wrapper',\n standalone: true,\n templateUrl: 'notification-wrapper.component.html',\n imports: [ToastModule, ConfirmDialogModule, TranslateModule, DialogModule, DialogKeydownHandlerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotificationWrapperComponent {\n public readonly notificationCutoff = 70;\n public isDialogNotificationVisible = computed(() => this.dialogNotification() !== null);\n public dialogNotification = signal<Message | null>(null);\n\n public getNotificationIconClass(message: Message | null): string {\n if (message?.icon) return message.icon;\n\n switch (message?.severity) {\n case 'info':\n return 'pi-info-circle';\n case 'warning':\n return 'pi-exclamation-triangle';\n case 'error':\n return 'pi-times-circle';\n case 'success':\n return 'pi-check';\n default:\n return '';\n }\n }\n\n public onShowNotificationInDialog(message: Message) {\n this.dialogNotification.set(message);\n }\n\n public onDialogNotificationVisibilityChange(visible: boolean) {\n if (!visible) {\n this.dialogNotification.set(null);\n }\n }\n}\n","<ng-content></ng-content>\n<p-confirmDialog appendTo=\"body\" [baseZIndex]=\"50\"></p-confirmDialog>\n\n<p-toast [baseZIndex]=\"50\">\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getNotificationIconClass(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n @if (message.detail.length > notificationCutoff) {\n <div (click)=\"onShowNotificationInDialog(message)\" class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n }\n </div>\n </ng-template>\n</p-toast>\n\n<p-dialog\n [visible]=\"isDialogNotificationVisible()\"\n (visibleChange)=\"onDialogNotificationVisibilityChange($event)\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification()?.severity ?? '')\">\n <ng-template pTemplate=\"header\" mngDialogKeydownHandler>\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + getNotificationIconClass(dialogNotification())\"></span>\n {{ dialogNotification()?.summary ?? '' }}\n </span>\n </ng-template>\n <div>\n {{ dialogNotification()?.detail ?? '' }}\n </div>\n</p-dialog>\n","import {HttpErrorResponse} from '@angular/common/http';\n\nimport {ActionParameters} from '../action/action-parameters.model';\n\nexport type ErrorTypes = 'CommonsInternalError' | 'CommonsActionError' | 'CommonsHttpError';\n\n/**\n * Main use for commons error from action execution.\n * If http error is thrown, add it in cause.\n */\nexport interface ICommonsError extends Error {\n type: ErrorTypes;\n messageCode?: number | string;\n message: string;\n details?: any;\n stack?: string;\n cause?: Error | unknown;\n}\n\nexport interface CommonsErrorBaseOptions {\n name?: string;\n messageCode?: number | string;\n details?: any;\n cause?: Error;\n stack?: string;\n location?: string;\n}\n\nexport abstract class ACommonsErrorBase extends Error implements ICommonsError {\n public abstract readonly type: ErrorTypes;\n\n public readonly messageCode?: number | string;\n public readonly location?: string;\n public readonly details?: any;\n\n protected constructor(message: string, options?: CommonsErrorBaseOptions) {\n super(message);\n\n this.name = options?.name ?? 'MngError';\n this.messageCode = options?.messageCode;\n this.location = options?.location ?? window?.location?.href;\n this.cause = options?.cause;\n this.stack = options?.stack ?? (options?.cause ? options.cause.stack : new Error(message).stack);\n this.details = options?.details;\n }\n}\n\nexport class CommonsInternalError extends ACommonsErrorBase implements ICommonsError {\n public readonly type = 'CommonsInternalError';\n\n constructor(message: string, options?: CommonsErrorBaseOptions) {\n super(message, {\n name: 'CommonsInternalError',\n ...options\n });\n }\n}\n\nexport class CommonsHttpError extends ACommonsErrorBase implements ICommonsError {\n public readonly type = 'CommonsHttpError';\n\n public readonly httpError: HttpErrorResponse;\n\n constructor(message: string, httpError: HttpErrorResponse, options?: CommonsErrorBaseOptions) {\n super(message, {\n name: 'CommonsHttpError_' + httpError.url,\n cause: httpError,\n ...options\n });\n this.httpError = httpError;\n }\n}\n\nexport interface ICommonsActionError extends ICommonsError {\n type: 'CommonsActionError';\n httpError?: HttpErrorResponse;\n actionContext?: ICommonsActionErrorContext;\n}\n\nexport interface ICommonsActionErrorContext {\n parameters: ActionParameters<any>;\n}\n","export type toIsoStringTypeOptType = 'date' | 'date-time' | 'dateTime';\nexport type toIsoStringDateTimeOptsType = {utc?: boolean; noTimezone?: boolean; noMillis?: boolean};\n\nexport class DateUtil {\n private static readonly NG_PRIME_FORMAT_SUPPORTED = [/d{1,2}/g, /E{1,5}/g, /c{1,5}/g, /M{1,5}/g, /L{1,5}/g, /y{1,4}/g, /Y{1,4}/g];\n private static readonly NG_PRIME_FORMAT_OTHER = [\n /G{1,5}/g,\n /w{1,2}/g,\n /W/g,\n /a{1,5}/g,\n /B{1,5}/g,\n /b{1,5}/g,\n /h{1,2}/g,\n /H{1,2}/g,\n /m{1,2}/g,\n /s{1,2}/g,\n /S{1,3}/g,\n /z{1,4}/g,\n /Z{1,5}/g,\n /O{1,4}/g\n ];\n private static readonly NG_PRIME_FORMAT_MAP = {\n // days\n d: 'd',\n dd: 'dd',\n E: 'D',\n EE: 'D',\n EEE: 'D',\n EEEE: 'DD',\n EEEEE: 'D',\n EEEEEE: 'D',\n c: 'd',\n cc: 'dd',\n ccc: 'D',\n cccc: 'DD',\n ccccc: 'D',\n cccccc: 'D',\n // months\n M: 'm',\n MM: 'mm',\n MMM: 'M',\n MMMM: 'MM',\n MMMMM: 'M',\n L: 'm',\n LL: 'mm',\n LLL: 'M',\n LLLL: 'MM',\n LLLLL: 'M',\n // year\n y: 'y',\n yy: 'y',\n yyy: 'yy',\n yyyy: 'yy',\n Y: 'y',\n YY: 'y',\n YYY: 'yy',\n YYYY: 'yy'\n };\n\n private static padNumber(num: number, size = 2) {\n let str = String(num);\n while (str.length < size) {\n str = '0' + str;\n }\n return str;\n }\n\n public static toIsoString(value: string | number | Date, type?: 'date'): string;\n public static toIsoString(value: string | number | Date, type: 'date-time' | 'dateTime', dateTimeOpts?: toIsoStringDateTimeOptsType): string;\n public static toIsoString(value: undefined | null | unknown, type?: 'date'): null;\n public static toIsoString(value: undefined | null | unknown, type: 'date-time' | 'dateTime', dateTimeOpts?: toIsoStringDateTimeOptsType): null;\n public static toIsoString(value: unknown, type?: toIsoStringTypeOptType, dateTimeOpts?: toIsoStringDateTimeOptsType): string | null;\n public static toIsoString(value: unknown, type: toIsoStringTypeOptType = 'date-time', dateTimeOpts: toIsoStringDateTimeOptsType = {}): string | null {\n if (typeof value === 'string') {\n value = new Date(value);\n }\n if (typeof value === 'number') {\n value = new Date(value);\n }\n if (!(value instanceof Date)) {\n return null;\n }\n if (type === 'date') {\n // date only, no time part (and timezone, millis, utc does not matter ...)\n return value.getFullYear() + '-' + DateUtil.padNumber(value.getMonth() + 1) + '-' + DateUtil.padNumber(value.getDate());\n }\n if (dateTimeOpts.utc) {\n let str = value.toISOString();\n if (dateTimeOpts.noMillis) {\n const dotIdx = str.lastIndexOf('.');\n str = str.substring(0, dotIdx) + str.substring(dotIdx + 4, str.length);\n }\n if (dateTimeOpts.noTimezone) {\n str = str.substring(0, str.length - 1);\n }\n return str;\n } else {\n let base =\n value.getFullYear() +\n '-' +\n DateUtil.padNumber(value.getMonth() + 1) +\n '-' +\n DateUtil.padNumber(value.getDate()) +\n 'T' +\n DateUtil.padNumber(value.getHours()) +\n ':' +\n DateUtil.padNumber(value.getMinutes()) +\n ':' +\n DateUtil.padNumber(value.getSeconds());\n\n if (!dateTimeOpts.noMillis) {\n base += '.' + DateUtil.padNumber(value.getMilliseconds());\n }\n if (!dateTimeOpts.noTimezone) {\n const tzo = -value.getTimezoneOffset(),\n dif = tzo >= 0 ? '+' : '-';\n\n base = base + (dif + DateUtil.padNumber(Math.floor(Math.abs(tzo) / 60)) + ':' + DateUtil.padNumber(Math.abs(tzo) % 60));\n }\n\n return base;\n }\n }\n\n public static fromAngularToPrimeDateFormat(ngDateFormat: string): string {\n let primeDateFormat = ngDateFormat;\n for (const regex of DateUtil.NG_PRIME_FORMAT_OTHER) {\n primeDateFormat = primeDateFormat.replace(regex, ' ');\n }\n for (const regex of DateUtil.NG_PRIME_FORMAT_SUPPORTED) {\n const matches = [...primeDateFormat.matchAll(regex)].reverse();\n for (const match of matches) {\n if (match.index) {\n const matchStr = match[0];\n const replacement = DateUtil.NG_PRIME_FORMAT_MAP[matchStr as keyof object] ?? match[0];\n primeDateFormat = primeDateFormat.substring(0, match.index) + replacement + primeDateFormat.substring(match.index + matchStr.length);\n }\n }\n }\n primeDateFormat = primeDateFormat.replace(/\\s+\\W\\s+/g, ' ');\n primeDateFormat = primeDateFormat.replace(/\\s\\s+/g, ' ');\n\n return primeDateFormat.trim();\n }\n\n public static fromAngularDateFormatHasTime(ngDateFormat: string): boolean {\n return /[hHmsS]/.test(ngDateFormat);\n }\n\n public static fromAngularDateFormatHasSeconds(ngDateFormat: string): boolean {\n return /[sS]/.test(ngDateFormat);\n }\n}\n","export enum LogLevelEnum {\n Trace,\n Debug,\n Log,\n Info,\n Warning,\n Error\n}\n\nexport interface LogEntry {\n level: LogLevelEnum;\n message: string;\n messageDetails?: string;\n timestamp: Date;\n timestampFormatted?: string;\n category?: string;\n error?: Error;\n data?: any[];\n}\n\nexport interface LogConfig {\n level?: LogLevelEnum;\n timestampFormat?: string;\n category?: {\n [category: string]: {\n level?: LogLevelEnum;\n };\n };\n}\n\nexport interface ILoggerService {\n create(context: string): ILoggerService;\n trace(msgOrError: string | Error, ...data: any[]): void;\n debug(msgOrError: string | Error, ...data: any[]): void;\n log(msgOrError: string | Error, logLevel: LogLevelEnum, category: string | undefined, ...data: any[]): void;\n logEntry(logEntry: Partial<LogEntry>): void;\n info(msgOrError: string | Error, ...data: any[]): void;\n warn(msgOrError: string | Error, ...data: any[]): void;\n error(msgOrError: string | Error, ...data: any[]): void;\n}\n\nexport interface ILogPublisher {\n addEntry(entry: LogEntry): void;\n}\n","import {DatePipe} from '@angular/common';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {CommonsConfigurationService} from '../services/commons-configuration.service';\nimport {DateUtil} from '../utils/date.util';\nimport {ILogPublisher, ILoggerService, LogConfig, LogEntry, LogLevelEnum} from './log.model';\n\nexport class LoggerService implements ILoggerService {\n private static _instance: LoggerService = new LoggerService();\n private static _isInit = false;\n private static _configurationService?: CommonsConfigurationService;\n private static _publishers: ILogPublisher[] = [];\n private static _entriesBuffer: LogEntry[] = [];\n private static _categoryInstances: Record<string, LoggerService> = {};\n private static _timestampFormat = 'yyyy-MM-dd HH:mm:ss.SSS';\n\n private category?: string;\n\n // Temporary settings that cover logging calls before initialisation\n private readonly defaultLogLevel: LogLevelEnum = LogLevelEnum.Info;\n private datePipe = new DatePipe('en-US');\n\n private constructor() {\n // empty\n }\n\n public static get() {\n return LoggerService._instance;\n }\n\n public static configure(config: {timestampFormat?: string}) {\n if (config.timestampFormat) {\n LoggerService._timestampFormat = config.timestampFormat;\n }\n }\n\n public static init(configurationService: CommonsConfigurationService, publishers: ILogPublisher[]) {\n if (LoggerService._isInit) {\n return;\n }\n\n LoggerService._configurationService = configurationService;\n LoggerService._publishers = publishers;\n\n LoggerService._isInit = true;\n LoggerService._flushBuffer();\n }\n\n private static _flushBuffer() {\n if (!LoggerService._isInit) {\n return;\n }\n LoggerService._entriesBuffer.forEach(e => this._instance._log(e));\n LoggerService._entriesBuffer = [];\n }\n\n public static create(category: string): LoggerService {\n return LoggerService._instance.create(category);\n }\n\n public create(category: string): LoggerService {\n if (this.category) {\n throw new CommonsInternalError(`Cannot create logger with category inside another category (${this.category}). Must create logger on root.`);\n }\n if (LoggerService._categoryInstances[category]) {\n return LoggerService._categoryInstances[category];\n }\n\n const logger = new LoggerService();\n logger.category = category;\n\n LoggerService._categoryInstances[category] = logger;\n\n return logger;\n }\n\n private _processLog(msgOrError: string | Error, logLevel: LogLevelEnum, category: string | undefined = undefined, data?: any[]) {\n const [timestamp, timestampFormatted] = [...this._getTimestamps()];\n\n const logEntry = <LogEntry>{\n level: logLevel,\n message: typeof msgOrError === 'string' ? msgOrError : msgOrError.message,\n data: data,\n category: this.category ?? category,\n timestamp: timestamp,\n timestampFormatted: timestampFormatted ?? undefined\n };\n\n if (msgOrError instanceof Error) {\n // set error from message param\n logEntry.error = msgOrError;\n } else if (data?.length && data[0] instanceof Error) {\n // if first data is error, also consider as error\n logEntry.error = data[0];\n logEntry.data = data.splice(1);\n }\n\n this._log(logEntry);\n }\n\n private _getTimestamps(): [Date, string | null] {\n const timestamp = new Date();\n const timestampFormatted = this.datePipe.transform(timestamp, LoggerService._timestampFormat) ?? DateUtil.toIsoString(timestamp);\n return [timestamp, timestampFormatted];\n }\n\n private _log(log: LogEntry) {\n if (!LoggerService._isInit) {\n // add to buffer\n LoggerService._entriesBuffer.push(log);\n return;\n }\n\n const logConfig = LoggerService._configurationService?.getConfigValue<LogConfig>?.('log');\n if (\n (this.category && log.level < (logConfig?.category?.[this.category]?.level ?? logConfig?.level ?? this.defaultLogLevel)) ||\n (!this.category && log.level < (logConfig?.level ?? this.defaultLogLevel))\n ) {\n return;\n }\n\n if (logConfig?.timestampFormat) {\n log.timestampFormatted = this.datePipe.transform(log.timestamp, logConfig.timestampFormat) ?? undefined;\n }\n\n LoggerService._publishers.forEach(p => p.addEntry(log));\n }\n\n public trace(msgOrError: string | Error, ...data: any[]) {\n this._processLog(msgOrError, LogLevelEnum.Trace, undefined, data);\n }\n\n public debug(msgOrError: string | Error, ...data: any[]) {\n this._processLog(msgOrError, LogLevelEnum.Debug, undefined, data);\n }\n\n public log(msgOrError: string | Error, logLevel: LogLevelEnum = LogLevelEnum.Log, category: string | undefined = undefined, ...data: any[]) {\n this._processLog(msgOrError, logLevel, category, data);\n }\n\n public logEntry<E extends Partial<LogEntry>>(logEntry: E) {\n const [timestamp, timestampFormatted] = [...this._getTimestamps()];\n const logEntryFinal: LogEntry = {\n timestamp: timestamp,\n timestampFormatted: timestampFormatted ?? undefined,\n category: this.category ?? logEntry.category,\n message: '',\n messageDetails: logEntry.messageDetails,\n level: LogLevelEnum.Log,\n ...logEntry\n };\n this._log(logEntryFinal);\n }\n\n public info(msgOrError: string | Error, ...data: any[]) {\n this._processLog(msgOrError, LogLevelEnum.Info, undefined, data);\n }\n\n public warn(msgOrError: string | Error, ...data: any[]) {\n this._processLog(msgOrError, LogLevelEnum.Warning, undefined, data);\n }\n\n public error(msgOrError: string | Error, ...data: any[]) {\n this._processLog(msgOrError, LogLevelEnum.Error, undefined, data);\n }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const BROWSER_STORAGE_IT = new InjectionToken<Storage>('BROWSER_STORAGE');\n","import {InjectionToken} from '@angular/core';\n\nimport {LogConfig} from '../../log/log.model';\nimport {VersionConfigType} from '../../models/version.model';\n\nexport type ColorScheme = 'light' | 'dark';\n\nexport interface CommonsModuleConfig {\n app?: {\n name?: string;\n owner?: string;\n logoPath?: string;\n logoPathLight?: string;\n logoPathDark?: string;\n logoNamePath?: string;\n logoNamePathLight?: string;\n logoNamePathDark?: string;\n languages?: string[];\n dataLanguages?: string[];\n version?: VersionConfigType;\n colorScheme: ColorScheme;\n };\n configuration?: {\n projectEnvironment?: any;\n jsonSource?: string | Array<string>;\n skipJsonSourceInit?: boolean;\n jsonSourceEnableEnvProd?: boolean;\n };\n serialization?: {\n dateTimeInUtc?: boolean;\n dateTimeWithTimezone?: boolean;\n dateTimeWithMillis?: boolean;\n filtersDateOnlyDisabled?: boolean;\n };\n log?: LogConfig;\n}\n\nexport const COMMONS_MODULE_CONFIG_IT = new InjectionToken<CommonsModuleConfig>('COMMONS_MODULE_CONFIG');\n","import {Injectable, inject} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {ActivatedRouteSnapshot, NavigationEnd, Router} from '@angular/router';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {FilterService, PrimeNGConfig} from 'primeng/api';\nimport {BehaviorSubject, ReplaySubject, Subject, Subscription, distinctUntilChanged} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\nimport {LoggerService} from '../log/logger.service';\nimport {CommonsMenuItem} from '../models/menu.model';\nimport {IUser} from '../models/user.model';\nimport {BreadcrumbMenuItem, CommonsRouteData} from '../router/router.model';\nimport {BROWSER_STORAGE_IT} from './tokens/browser-storage.token';\nimport {COMMONS_MODULE_CONFIG_IT} from './tokens/module-config.token';\n\n@Injectable()\nexport class CommonsService {\n // internal\n private readonly logger = inject(LoggerService).create('CommonsService');\n private readonly router = inject(Router);\n private readonly primengConfig = inject(PrimeNGConfig);\n private readonly translate = inject(TranslateService);\n private readonly titleService = inject(Title);\n private readonly filterService = inject(FilterService);\n private readonly moduleConfig = inject(COMMONS_MODULE_CONFIG_IT, {optional: true});\n private readonly localStorage = inject(BROWSER_STORAGE_IT);\n\n private routerEventsSubscription?: Subscription;\n private translateLangChangeSubscription?: Subscription;\n\n // breadcrumbs\n private readonly breadcrumbHomeSubject = new BehaviorSubject<CommonsMenuItem | null>({\n icon: 'pi pi-home',\n routerLink: '/'\n });\n private readonly breadcrumbsSubject = new BehaviorSubject<CommonsMenuItem[]>([]);\n private breadcrumbsTranslateSubscription?: Subscription;\n private breadcrumbHomeTranslateSubscription?: Subscription;\n\n // visual\n private _colorScheme: 'light' | 'dark' = 'light';\n\n // user\n private _user?: IUser;\n private userSubject: Subject<IUser | undefined> = new ReplaySubject(1);\n private _userRoles: Array<string> = [];\n private userRolesSubject: Subject<Array<string>> = new BehaviorSubject<Array<string>>([]);\n\n // language\n private languageSubject = new ReplaySubject<string | null>(1);\n private dataLanguageSubject = new ReplaySubject<string | null>(1);\n\n // APP section\n\n public get appName() {\n return this.moduleConfig?.app?.name ?? 'app.name';\n }\n\n public get appOwner() {\n return this.moduleConfig?.app?.owner ?? 'app.owner';\n }\n\n public get appLogoLight() {\n return this.moduleConfig?.app?.logoPathLight ? this.moduleConfig.app.logoPathLight : this.moduleConfig?.app?.logoPath ?? 'assets/layout/images/logo.png';\n }\n\n public get appLogoDark() {\n return this.moduleConfig?.app?.logoPathDark ? this.moduleConfig.app.logoPathDark : this.moduleConfig?.app?.logoPath ?? 'assets/layout/images/logo.png';\n }\n\n public get appLogoNameLight() {\n return this.moduleConfig?.app?.logoNamePathLight\n ? this.moduleConfig.app.logoNamePathLight\n : this.moduleConfig?.app?.logoNamePath ?? 'assets/layout/images/logo-appname.png';\n }\n\n public get appLogoNameDark() {\n return this.moduleConfig?.app?.logoNamePathDark ? this.moduleConfig.app.logoNamePathDark : this.moduleConfig?.app?.logoNamePath ?? 'assets/layout/images/logo-appname.png';\n }\n\n public get appLanguages() {\n return this.moduleConfig?.app?.languages ?? ['en'];\n }\n\n public get appLanguage(): string | null {\n const lsLang = this.localStorage.getItem('lang');\n if (lsLang && this.appLanguages.some(l => l === lsLang)) {\n return lsLang;\n }\n return null;\n }\n\n public set appLanguage(language: string | null) {\n if (language === null) {\n this.localStorage.removeItem('lang');\n this.languageSubject.next(language);\n return;\n }\n if (this.appLanguages.some(l => l === language)) {\n this.localStorage.setItem('lang', language);\n this.languageSubject.next(language);\n this.translate.use(language);\n }\n }\n\n public get appLanguage$() {\n return this.languageSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n public initLanguage(): string {\n const browserLang = this.translate.getBrowserLang();\n if (browserLang && this.appLanguages.some(l => l === browserLang)) {\n this.appLanguage = browserLang;\n return browserLang;\n }\n const defaultLanguage = this.appLanguages?.length > 0 ? this.appLanguages[0] : 'en';\n this.appLanguage = defaultLanguage;\n return defaultLanguage;\n }\n\n public getOrInitLanguage(): string {\n return this.appLanguage || this.initLanguage();\n }\n\n public get appDataLanguages() {\n return this.moduleConfig?.app?.dataLanguages ?? ['en'];\n }\n\n public get appDataLanguageDefault() {\n return this.appDataLanguages[0];\n }\n\n public get appDataLanguage(): string | null {\n const dataLang = this.localStorage.getItem('dataLang');\n if (dataLang && this.appDataLanguages.some(dl => dl === dataLang)) {\n return dataLang;\n }\n return this.defaultDataLanguage;\n }\n\n public set appDataLanguage(dataLanguage: string | null) {\n if (dataLanguage === null) {\n this.localStorage.removeItem('dataLang');\n this.dataLanguageSubject.next(dataLanguage);\n return;\n }\n if (this.appDataLanguages.some(dl => dl === dataLanguage)) {\n this.localStorage.setItem('dataLang', dataLanguage);\n this.dataLanguageSubject.next(dataLanguage);\n }\n }\n\n public get appDataLanguage$() {\n return this.dataLanguageSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n // We assume, that default data language is the first one from the array of all available data languages\n public get defaultDataLanguage() {\n return this.appDataLanguages[0];\n }\n\n public get appVersion() {\n return this.moduleConfig?.app?.version;\n }\n\n // BREADCRUMB section\n public get breadcrumbHome$() {\n return this.breadcrumbHomeSubject.asObservable();\n }\n\n public get breadcrumbs$() {\n return this.breadcrumbsSubject.asObservable();\n }\n\n // VISUAL section\n\n public get colorSchemeIsLight() {\n return this._colorScheme === 'light';\n }\n\n public get colorSchemeIsDark() {\n return this._colorScheme === 'dark';\n }\n\n // USER section\n\n public get user() {\n return this._user;\n }\n\n public set user(user: IUser | undefined) {\n this._user = user;\n this.userSubject.next(user);\n }\n\n public get user$() {\n return this.userSubject.asObservable();\n }\n\n public get userRoles() {\n return this._userRoles;\n }\n\n public set userRoles(roles: Array<string>) {\n this._userRoles = roles;\n this.userRolesSubject.next(roles);\n }\n\n public get userRoles$() {\n return this.userRolesSubject.asObservable();\n }\n\n public reset() {\n // visual\n this._colorScheme = this.moduleConfig?.app?.colorScheme ?? 'light';\n\n // ripple\n this.primengConfig.ripple = true;\n\n // translate\n this.translate.langs = this.appLanguages;\n const lang = this.getOrInitLanguage();\n\n this.languageSubject.next(lang);\n this.dataLanguageSubject.next(this.appDataLanguage);\n\n this.translate.use(lang);\n this.translate.get('mngPrime').subscribe(value => this.primengConfig.setTranslation(value));\n\n this.routerEventsSubscription?.unsubscribe();\n this.routerEventsSubscription = this.router.events\n .pipe(\n // Filter the NavigationEnd events as the breadcrumb is updated only when the route reaches its end\n filter(event => event instanceof NavigationEnd)\n )\n .subscribe(() => {\n this.updateBreadcrumbs();\n this.setPageTitle();\n });\n this.translateLangChangeSubscription?.unsubscribe();\n this.translateLangChangeSubscription = this.translate.onLangChange.subscribe(() => {\n this.updateBreadcrumbs();\n this.setPageTitle();\n });\n\n this.logger.debug('Reset');\n }\n\n // BREADCRUMB actions\n public findBreadcrumbItem(item: CommonsMenuItem): CommonsMenuItem | null {\n const items = this.breadcrumbsSubject.value;\n if (item.id) {\n return items.find(i => i.id && i.id === item.id) ?? null;\n } else if (item.routerLink) {\n const routerLinkStr = Array.isArray(item.routerLink) ? item.routerLink.join('/') : item.routerLink;\n return items.find(i => i.routerLink && (Array.isArray(i.routerLink) ? i.routerLink.join('/') : i.routerLink) === routerLinkStr) ?? null;\n } else if (item.positionIndex) {\n return items.find(i => i.positionIndex && i.positionIndex === i.positionIndex) ?? null;\n } else if (item.label) {\n return items.find(i => i.label && i.label === i.label) ?? null;\n } else if (item.icon) {\n return items.find(i => i.icon && i.icon === i.icon) ?? null;\n }\n return null;\n }\n\n public updateBreadcrumbItem(item: CommonsMenuItem): boolean {\n const items = [...this.breadcrumbsSubject.value];\n let posIdx = -1;\n if (item.id) {\n posIdx = items.findIndex(i => i.id && i.id === item.id);\n } else if (item.routerLink) {\n const routerLinkStr = Array.isArray(item.routerLink) ? item.routerLink.join('/') : item.routerLink;\n posIdx = items.findIndex(i => i.routerLink && (Array.isArray(i.routerLink) ? i.routerLink.join('/') : i.routerLink) === routerLinkStr);\n } else if (item.positionIndex) {\n posIdx = items.findIndex(i => i.positionIndex && i.positionIndex === i.positionIndex);\n } else if (item.label) {\n posIdx = items.findIndex(i => i.label && i.label === i.label);\n } else if (item.icon) {\n posIdx = items.findIndex(i => i.icon && i.icon === i.icon);\n }\n\n if (posIdx < 0) {\n return false;\n }\n\n items[posIdx] = {\n ...items[posIdx],\n ...item,\n updated: true\n };\n\n this.breadcrumbsSubject.next(items);\n\n return true;\n }\n\n private updateBreadcrumbs() {\n if (this.breadcrumbsTranslateSubscription) {\n this.breadcrumbsTranslateSubscription.unsubscribe();\n this.breadcrumbsTranslateSubscription = undefined;\n }\n if (this.breadcrumbHomeTranslateSubscription) {\n this.breadcrumbHomeTranslateSubscription.unsubscribe();\n this.breadcrumbHomeTranslateSubscription = undefined;\n }\n\n const rootRoute = this.router.routerState.snapshot.root;\n\n const homeBreadcrumb = this.generateHomeBreadcrumb(rootRoute);\n if (homeBreadcrumb) {\n if (homeBreadcrumb.label) {\n this.breadcrumbHomeTranslateSubscription = this.translate.get(homeBreadcrumb.label).subscribe(i18n => {\n homeBreadcrumb.label = i18n;\n this.breadcrumbHomeSubject.next(homeBreadcrumb);\n });\n } else {\n this.breadcrumbHomeSubject.next(homeBreadcrumb);\n }\n }\n\n const breadcrumbs: CommonsMenuItem[] = [];\n this.generateBreadcrumbs(rootRoute, [], breadcrumbs);\n\n breadcrumbs.forEach((b, idx) => {\n b.positionIndex = idx;\n });\n\n const i18nKeys: Array<string> = breadcrumbs.filter(b => typeof b.label === 'string').map(b => b.label!);\n if (i18nKeys.length > 0) {\n this.breadcrumbsTranslateSubscription = this.translate.get(i18nKeys).subscribe(i18n => {\n // Construct the breadcrumb hierarchy\n breadcrumbs.forEach(b => {\n if (b.label && i18n[b.label]) {\n b.label = i18n[b.label];\n }\n });\n\n // Emit the new breadcrumbs\n this.breadcrumbsSubject.next(breadcrumbs);\n });\n } else {\n this.breadcrumbsSubject.next(breadcrumbs);\n }\n }\n\n private generateHomeBreadcrumb(route: ActivatedRouteSnapshot | null): CommonsMenuItem | null {\n if (!route) {\n return null;\n }\n\n const routeData = route.data as CommonsRouteData;\n const breadcrumbRouteData = routeData?.breadcrumb;\n if (breadcrumbRouteData && typeof breadcrumbRouteData === 'object' && 'isHome' in breadcrumbRouteData) {\n if (breadcrumbRouteData.isHome === false) {\n return null;\n }\n const breadcrumb = this.createBreadcrumb('/', breadcrumbRouteData, true);\n if (breadcrumb) {\n if (typeof breadcrumb.icon === 'undefined') {\n breadcrumb.icon = 'pi pi-home';\n }\n return breadcrumb;\n }\n } else {\n return this.generateHomeBreadcrumb(route.firstChild);\n }\n return null;\n }\n\n private generateBreadcrumbs(route: ActivatedRouteSnapshot | null, parentUrlSegments: string[], breadcrumbs: CommonsMenuItem[]) {\n if (!route) {\n return;\n }\n\n const routeData = route.data as CommonsRouteData;\n const routeUrlSegments = parentUrlSegments.concat(route.url.map(url => url.path));\n const routeUrl = `/${routeUrlSegments.join('/')}`;\n if (routeData?.breadcrumb) {\n const breadcrumbRouteData = routeData.breadcrumb;\n\n if (Array.isArray(breadcrumbRouteData)) {\n for (const breadcrumbRouteDataItem of breadcrumbRouteData) {\n const breadcrumb = this.createBreadcrumb(routeUrl, breadcrumbRouteDataItem);\n if (breadcrumb) {\n breadcrumbs.push(breadcrumb);\n }\n }\n } else if (typeof breadcrumbRouteData === 'function') {\n breadcrumbs.push(...breadcrumbRouteData(routeUrl, route));\n } else {\n const breadcrumb = this.createBreadcrumb(routeUrl, breadcrumbRouteData);\n if (breadcrumb) {\n breadcrumbs.push(breadcrumb);\n }\n }\n }\n this.generateBreadcrumbs(route.firstChild, routeUrlSegments, breadcrumbs);\n }\n\n private createBreadcrumb(routeUrl: string, routeBreadcrumb: string | BreadcrumbMenuItem, includeHome = false): CommonsMenuItem | null {\n const existingBreadcrumb = this.findBreadcrumbItem({routerLink: routeUrl});\n if (existingBreadcrumb?.updated) {\n return existingBreadcrumb;\n }\n if (typeof routeBreadcrumb === 'string') {\n // check for updated existing breadcrumb\n return {\n id: routeUrl,\n label: routeBreadcrumb,\n routerLink: routeUrl\n };\n } else {\n if (!includeHome && typeof routeBreadcrumb.isHome !== 'undefined') {\n // home should not be included\n return null;\n }\n if (typeof routeBreadcrumb.routerLink === 'undefined') {\n routeBreadcrumb.routerLink = routeUrl;\n }\n routeBreadcrumb.id = routeUrl;\n return routeBreadcrumb;\n }\n }\n\n // TITLE section\n\n public setPageTitle(title?: string) {\n let currentRoute = this.router.routerState.snapshot.root;\n while (currentRoute.firstChild) {\n currentRoute = currentRoute.firstChild;\n }\n\n const routeData = currentRoute.data as CommonsRouteData;\n const pageTitle = title ?? routeData.pageTitle;\n\n this.titleService.setTitle(this.formatPageTitle(pageTitle));\n }\n\n private formatPageTitle(titlePrefix?: string) {\n const titlePieces = [];\n\n if (titlePrefix) {\n titlePieces.push(this.translate.instant(titlePrefix));\n }\n\n titlePieces.push(this.translate.instant('app.name'));\n\n return titlePieces.join(' - ');\n }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {RouterLink} from '@angular/router';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule} from 'primeng/button';\n\nimport {CommonsService} from '../../../services/commons.service';\n\n@Component({\n standalone: true,\n selector: 'mng-error-page',\n imports: [ButtonModule, TranslateModule, RouterLink],\n styleUrls: ['error.page.component.scss'],\n templateUrl: './error.page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ErrorPageComponent {\n constructor(public commons: CommonsService) {}\n}\n","<div [class]=\"'exception-body min-h-screen ' + (commons.colorSchemeIsLight ? 'layout-light' : 'layout-dark')\">\n <div class=\"exception-container min-h-screen flex align-items-center justify-content-center flex-column bg-auto md:bg-contain bg-no-repeat\">\n <div class=\"exception-panel text-center flex align-items-center justify-content-center flex-column\">\n <h1 class=\"text-red-400 mb-0\">{{ 'pages.notFound.title' | translate }}</h1>\n <h3 class=\"text-red-300\">{{ 'pages.notFound.subtitle' | translate }}</h3>\n <button type=\"button\" pButton [label]=\"'general.returnHome' | translate\" [routerLink]=\"['/']\"></button>\n </div>\n <div class=\"exception-footer align-items-center flex\">\n <img [src]=\"commons.colorSchemeIsLight ? commons.appLogoDark : commons.appLogoLight\" class=\"exception-logo\" alt=\"App logo\" />\n <img [src]=\"commons.colorSchemeIsLight ? commons.appLogoNameDark : commons.appLogoNameLight\" class=\"exception-appname ml-3\" alt=\"App name\" />\n </div>\n </div>\n</div>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {RouterLink} from '@angular/router';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule} from 'primeng/button';\n\nimport {CommonsService} from '../../../services/commons.service';\n\n@Component({\n standalone: true,\n selector: 'mng-not-found-page',\n imports: [ButtonModule, RouterLink, TranslateModule],\n styleUrls: ['not-found.page.component.scss'],\n templateUrl: './not-found.page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotFoundPageComponent {\n constructor(public commons: CommonsService) {}\n}\n","<div [class]=\"'exception-body min-h-screen ' + (commons.colorSchemeIsLight ? 'layout-light' : 'layout-dark')\">\n <div class=\"exception-container min-h-screen flex align-items-center justify-content-center flex-column bg-auto md:bg-contain bg-no-repeat\">\n <div class=\"exception-panel text-center flex align-items-center justify-content-center flex-column\">\n <h1 class=\"text-red-400 mb-0\">{{ 'pages.notFound.title' | translate }}</h1>\n <h3 class=\"text-red-300\">{{ 'pages.notFound.subtitle' | translate }}</h3>\n <p>{{ 'pages.notFound.message' | translate }}</p>\n <button type=\"button\" pButton [label]=\"'general.returnHome' | translate\" [routerLink]=\"['/']\"></button>\n </div>\n <div class=\"exception-footer align-items-center flex\">\n <img [src]=\"commons.colorSchemeIsLight ? commons.appLogoDark : commons.appLogoLight\" class=\"exception-logo\" alt=\"App logo\" />\n <img [src]=\"commons.colorSchemeIsLight ? commons.appLogoNameDark : commons.appLogoNameLight\" class=\"exception-appname ml-3\" alt=\"App name\" />\n </div>\n </div>\n</div>\n","export type FilterMatchModeType =\n | 'equals'\n | 'notEquals'\n | 'contains'\n | 'notContains'\n | 'in'\n | 'notIn'\n | 'startsWith'\n | 'endsWith'\n | 'lessThan'\n | 'lessThanOrEqualTo'\n | 'greaterThan'\n | 'greaterThanOrEqualTo'\n | 'between'\n | 'exists'\n | 'doesNotExist';\nexport type FilterMatchModeExtendedType = FilterMatchModeType | string;\n\nexport class FilterMatchMode {\n public static Equals: FilterMatchModeType = 'equals';\n public static EqualsAbbr = 'eq';\n\n public static NotEquals: FilterMatchModeType = 'notEquals';\n public static NotEqualsAbbr = 'ne';\n\n public static Contains: FilterMatchModeType = 'contains';\n public static ContainsAbbr = 'cn';\n\n public static NotContains: FilterMatchModeType = 'notContains';\n public static NotContainsAbbr = 'nc';\n\n public static In: FilterMatchModeType = 'in';\n public static InAbbr = 'in';\n\n public static NotIn: FilterMatchModeType = 'notIn';\n public static NotInAbbr = 'ni';\n\n public static StartsWith: FilterMatchModeType = 'startsWith';\n public static StartsWithAbbr = 'sw';\n\n public static EndsWith: FilterMatchModeType = 'endsWith';\n public static EndsWithAbbr = 'ew';\n\n public static LessThan: FilterMatchModeType = 'lessThan';\n public static LessThanAbbr = 'lt';\n\n public static LessThanOrEqualTo: FilterMatchModeType = 'lessThanOrEqualTo';\n public static LessThanOrEqualToAbbr = 'le';\n\n public static GreaterThan: FilterMatchModeType = 'greaterThan';\n public static GreaterThanAbbr = 'gt';\n\n public static GreaterThanOrEqualTo: FilterMatchModeType = 'greaterThanOrEqualTo';\n public static GreaterThanOrEqualToAbbr = 'ge';\n\n public static Between: FilterMatchModeType = 'between';\n public static BetweenAbbr = 'bt';\n\n public static Exists: FilterMatchModeType = 'exists';\n public static ExistsAbbr = 'ex';\n\n public static DoesNotExist: FilterMatchModeType = 'doesNotExist';\n public static DoesNotExistAbbr = 'nx';\n\n public static getAbbreviation(mode: string): string | null {\n switch (mode) {\n case FilterMatchMode.Equals:\n return FilterMatchMode.EqualsAbbr;\n case FilterMatchMode.NotEquals:\n return FilterMatchMode.NotEqualsAbbr;\n case FilterMatchMode.Contains:\n return FilterMatchMode.ContainsAbbr;\n case FilterMatchMode.NotContains:\n return FilterMatchMode.NotContainsAbbr;\n case FilterMatchMode.In:\n return FilterMatchMode.InAbbr;\n case FilterMatchMode.NotIn:\n return FilterMatchMode.NotInAbbr;\n case FilterMatchMode.StartsWith:\n return FilterMatchMode.StartsWithAbbr;\n case FilterMatchMode.EndsWith:\n return FilterMatchMode.EndsWithAbbr;\n case FilterMatchMode.LessThan:\n return FilterMatchMode.LessThanAbbr;\n case FilterMatchMode.LessThanOrEqualTo:\n return FilterMatchMode.LessThanOrEqualToAbbr;\n case FilterMatchMode.GreaterThan:\n return FilterMatchMode.GreaterThanAbbr;\n case FilterMatchMode.GreaterThanOrEqualTo:\n return FilterMatchMode.GreaterThanOrEqualToAbbr;\n case FilterMatchMode.Between:\n return FilterMatchMode.BetweenAbbr;\n case FilterMatchMode.Exists:\n return FilterMatchMode.ExistsAbbr;\n case FilterMatchMode.DoesNotExist:\n return FilterMatchMode.DoesNotExistAbbr;\n default:\n return null;\n }\n }\n\n public static fromAbbreviation(abbr: string): string | null {\n switch (abbr) {\n case FilterMatchMode.EqualsAbbr:\n return FilterMatchMode.Equals;\n case FilterMatchMode.NotEqualsAbbr:\n return FilterMatchMode.NotEquals;\n case FilterMatchMode.ContainsAbbr:\n return FilterMatchMode.Contains;\n case FilterMatchMode.NotContainsAbbr:\n return FilterMatchMode.NotContains;\n case FilterMatchMode.InAbbr:\n return FilterMatchMode.In;\n case FilterMatchMode.NotInAbbr:\n return FilterMatchMode.NotIn;\n case FilterMatchMode.StartsWithAbbr:\n return FilterMatchMode.StartsWith;\n case FilterMatchMode.EndsWithAbbr:\n return FilterMatchMode.EndsWith;\n case FilterMatchMode.LessThanAbbr:\n return FilterMatchMode.LessThan;\n case FilterMatchMode.LessThanOrEqualToAbbr:\n return FilterMatchMode.LessThanOrEqualTo;\n case FilterMatchMode.GreaterThanAbbr:\n return FilterMatchMode.GreaterThan;\n case FilterMatchMode.GreaterThanOrEqualToAbbr:\n return FilterMatchMode.GreaterThanOrEqualTo;\n case FilterMatchMode.BetweenAbbr:\n return FilterMatchMode.Between;\n case FilterMatchMode.ExistsAbbr:\n return FilterMatchMode.Exists;\n case FilterMatchMode.DoesNotExistAbbr:\n return FilterMatchMode.DoesNotExist;\n default:\n return null;\n }\n }\n}\n","import {Params} from '@angular/router';\n\nimport {TableLazyLoadEvent} from 'primeng/table';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {DateUtil} from '../utils/date.util';\nimport {DataListFilter, DataListFilterValueType, DataListFiltersType, DataListParams} from './data-list.model';\nimport {FilterMatchMode} from './filter-match.model';\n\nexport class DataListParamsUtil {\n /**\n * Converts a TableLazyLoadEvent to DataListParams.\n *\n * @param {TableLazyLoadEvent} event - The event containing the data to convert.\n * @return {DataListParams} - The converted DataListParams object.\n */\n public static fromPrimeTableLoad(event: TableLazyLoadEvent): DataListParams {\n const params: DataListParams = {};\n\n if (event.first != null) {\n params.offset = event.first;\n }\n if (event.rows != null) {\n params.limit = event.rows;\n }\n\n if (typeof event.globalFilter === 'string') {\n params.search = event.globalFilter;\n } else if (Array.isArray(event.globalFilter) && event.globalFilter.length > 0) {\n params.search = event.globalFilter.join(',');\n }\n\n if (Array.isArray(event.multiSortMeta) && event.multiSortMeta.length > 0) {\n params.sort = event.multiSortMeta.map(m => ({property: m.field, ascending: m.order >= 0}));\n }\n\n if (event.filters) {\n params.filters = Object.keys(event.filters).reduce((acc, key) => {\n const filter: DataListFilter = {};\n const eventFilter = event.filters?.[key as keyof object];\n if (Array.isArray(eventFilter)) {\n filter.value = eventFilter[0].value;\n filter.matchMode = eventFilter[0].matchMode;\n } else if (eventFilter !== undefined) {\n filter.value = eventFilter.value;\n filter.matchMode = eventFilter.matchMode;\n }\n return {...acc, [key]: filter};\n }, {});\n }\n\n return params;\n }\n\n /**\n * Converts the given parameters to URL query parameters.\n * Sorts are formatted in Medius data API sort query language: `asc:prop1,desc:prop2`, ...\n * Filter keys are \"flattened\" in the new object, values are formatted in Medius data API filter query language: `cs:eq:asd`, `in:asd,qwe`, `ex`, ...\n *\n * @param {DataListParams} params - The parameters to convert.\n * @param {DataListParams|null} defaults - The default parameters used if no matching property in params is available. Defaults to { limit: 25, offset: 0 } if not provided.\n * @returns {Params} - The URL query parameters object.\n */\n public static toUrlQueryParams(\n params: DataListParams<any, any>,\n defaults: DataListParams<any, any> | null = {\n limit: 25,\n offset: 0\n }\n ): Params {\n const urlParams: Params = {};\n\n if (params.limit && params.limit !== defaults?.limit) {\n urlParams['limit'] = params.limit;\n }\n if (params.offset && params.offset !== defaults?.offset) {\n urlParams['offset'] = params.offset;\n }\n if (params.search && params.search !== defaults?.search) {\n urlParams['q'] = params.search;\n }\n if (params.sort && Array.isArray(params.sort) && params.sort.length > 0) {\n if (\n defaults?.sort == null ||\n !Array.isArray(defaults.sort) ||\n defaults.sort.length === 0 ||\n params.sort.length !== defaults.sort.length ||\n defaults.sort.some((ds, idx) => ds.property !== params.sort![idx].property || (ds.ascending ?? true) !== (params.sort![idx].ascending ?? true))\n ) {\n urlParams['sort'] = DataListParamsUtil.sortToUrlQuery(params);\n }\n }\n if (params.filters) {\n Object.keys(params.filters).forEach(k => {\n const paramFilter = params.filters![k as keyof object];\n const defaultFilter = defaults?.filters?.[k as keyof object];\n if (\n defaultFilter &&\n ((Array.isArray(defaultFilter.value) &&\n Array.isArray(paramFilter.value) &&\n defaultFilter.value.length === paramFilter.value.length &&\n defaultFilter.value.every((v, idx) => {\n const value = (paramFilter.value as Array<DataListFilterValueType>)[idx];\n if (value instanceof Date && v instanceof Date) return value.getTime() === v.getTime();\n else return value === v;\n })) || // handle arrays\n defaultFilter.value === paramFilter.value) &&\n defaultFilter.matchMode === paramFilter.matchMode &&\n (defaultFilter.caseSensitive ?? false) === (paramFilter.caseSensitive ?? false)\n ) {\n return;\n }\n\n if (paramFilter.value == null && defaultFilter?.value == null) {\n return;\n }\n\n urlParams[k] = DataListParamsUtil.paramsFilterToUrlQuery(params, k, true);\n });\n }\n if (defaults?.filters) {\n // add other defaults\n const paramFilterKeys = params.filters ? Object.keys(params.filters) : [];\n Object.keys(defaults.filters)\n .filter(k => paramFilterKeys.indexOf(k) < 0)\n .forEach(k => {\n urlParams[k] = DataListParamsUtil.paramsFilterToUrlQuery(defaults, k);\n });\n }\n\n return urlParams;\n }\n\n /**\n * Merges the provided parameters with default values and returns the merged object.\n *\n * @param {DataListParams} params - The parameters to merge with defaults.\n * @param {DataListParams} defaults - The default values to merge with params (optional, default is { limit: 25, offset: 0 }).\n * @returns {DataListParams} - The merged parameters object.\n */\n public static mergeWithDefaults<Sorts = any, Filters extends keyof any = any>(\n params: DataListParams<Sorts, Filters>,\n defaults: DataListParams<Sorts, Filters> = {\n limit: 25,\n offset: 0\n }\n ): DataListParams<Sorts, Filters> {\n const merged: DataListParams<Sorts, Filters> = {\n limit: params.limit ?? defaults.limit,\n offset: params.offset ?? defaults.offset,\n search: params.search ?? defaults.search,\n sort: (params.sort ?? defaults.sort)?.map(s => ({...s}))\n };\n\n if (params.filters) {\n merged.filters = {} as DataListFiltersType<Filters>;\n Object.entries(params.filters).forEach(([key, value]) => (merged.filters![key as Filters] = {...(value as DataListFilter)}));\n }\n if (defaults.filters) {\n if (!merged.filters) merged.filters = {} as DataListFiltersType<Filters>;\n Object.entries(defaults.filters).forEach(([key, value]) => {\n if (merged.filters![key as Filters] === undefined) {\n merged.filters![key as Filters] = {...(value as DataListFilter)};\n }\n });\n }\n\n return merged;\n }\n\n /**\n * Converts an object of parameters to a URL query string for sorting.\n * Sorts are formatted in Medius data API sort query language: `asc:prop1,desc:prop2`, ...\n *\n * @param {DataListParams} params - An optional object containing sort parameters.\n * @returns A string representing the URL query or undefined if no sort parameters are provided.\n */\n public static sortToUrlQuery(params?: DataListParams<any, any>): string | undefined {\n return params && Array.isArray(params.sort)\n ? params.sort.map(s => `${s.ascending === true || s.ascending === undefined ? 'asc' : 'desc'}:${String(s.property)}`).join(',')\n : undefined;\n }\n\n /**\n * Converts a specific filter parameter (by key) from DataListParams object to a URL query string.\n * Filter keys are \"flattened\" in the new object, values are formatted in Medius data API filter query language: `cs:eq:asd`, `in:asd,qwe`, `ex`, ...\n *\n * @param {DataListParams<any, Filters> | undefined} params - The DataListParams object containing the filters.\n * @param {Filters} key - The key of the filter to convert.\n * @param {boolean} [allowNull=false] - Indicates whether to allow null values in the query string.\n * @return {string | undefined} - The URL query string representing the specified filter, or undefined if the filter is not found.\n */\n public static paramsFilterToUrlQuery<Filters extends keyof any = string>(\n params: DataListParams<any, Filters> | undefined,\n key: Filters,\n allowNull = false\n ): string | undefined {\n const paramFilter = params?.filters?.[key];\n return DataListParamsUtil.filterToUrlQuery(paramFilter, allowNull);\n }\n\n /**\n * Converts a filter to a URL query string.\n * Filter keys are \"flattened\" in the new object, values are formatted in Medius data API filter query language: `cs:eq:asd`, `in:asd,qwe`, `ex`, ...\n *\n * @param {DataListFilter} paramFilter - The filter object to be converted.\n * @param {boolean} [allowNull=false] - Indicates whether to allow null values in the filter.\n * @returns {string|undefined} - The filter converted to a URL query string, or undefined if no filter is provided or the filter has empty or invalid values.\n * @throws {CommonsInternalError} - If the filter has invalid values.\n */\n public static filterToUrlQuery(paramFilter?: DataListFilter, allowNull = false): string | undefined {\n const filterValueAsArray = Array.isArray(paramFilter?.value) ? paramFilter!.value.filter(v => v !== undefined && (allowNull || v !== null)) : undefined;\n if (\n paramFilter === undefined ||\n (!allowNull && paramFilter.value == null) ||\n (typeof paramFilter.value === 'string' && paramFilter.value.length === 0) ||\n (Array.isArray(filterValueAsArray) && filterValueAsArray.length === 0)\n ) {\n // no need to include filters for empty values\n return undefined;\n }\n\n const matchMode = paramFilter.matchMode ?? FilterMatchMode.Equals;\n\n if (matchMode === FilterMatchMode.Between && !(Array.isArray(filterValueAsArray) && filterValueAsArray.length === 2)) {\n throw new CommonsInternalError(`Filter match mode between requires exactly 2 values: ${paramFilter.value}`);\n }\n\n if ((matchMode === FilterMatchMode.In || matchMode === FilterMatchMode.NotIn) && (!Array.isArray(filterValueAsArray) || filterValueAsArray.length === 0)) {\n throw new CommonsInternalError(`Filter match mode ${matchMode} requires non-empty array: ${paramFilter.value}`);\n }\n\n if (([FilterMatchMode.In, FilterMatchMode.NotIn, FilterMatchMode.Between] as string[]).indexOf(matchMode) === -1 && Array.isArray(filterValueAsArray)) {\n throw new CommonsInternalError(`Filter match mode ${matchMode} must not be array: ${paramFilter.value}`);\n }\n\n const noVal = paramFilter.matchMode === FilterMatchMode.Exists || paramFilter.matchMode === FilterMatchMode.DoesNotExist;\n const urlValuePart = noVal ? '' : `:${DataListParamsUtil.filterValueToUrlParam(filterValueAsArray ?? paramFilter.value, allowNull)}`;\n\n return `${paramFilter.caseSensitive ? 'cs:' : paramFilter.caseSensitive === false ? 'ci:' : ''}${FilterMatchMode.getAbbreviation(matchMode) ?? matchMode}${urlValuePart}`;\n }\n\n /**\n * Converts URL query parameters to a DataListParams object.\n * Sorts are formatted from Medius data API sort query language: `asc:prop1,desc:prop2`, ...\n * Filter keys are all keys in Params object that are not matched elsewhere, values are formatted from Medius data API filter query language: `cs:eq:asd`, `in:asd,qwe`, `ex`, ...\n *\n * @param {Params} urlParams - The URL query parameters.\n * @return {DataListParams} - The converted DataListParams object.\n */\n public static fromUrlQueryParams(urlParams: Params): DataListParams {\n const params: DataListParams = {};\n\n Object.entries(urlParams).forEach(([urlParamKey, urlParamValue]) => {\n if (urlParamKey === 'limit') {\n params.limit = +urlParamValue;\n if (isNaN(params.limit) || params.limit < 0) {\n delete params.limit;\n }\n } else if (urlParamKey === 'offset') {\n params.offset = +urlParamValue;\n if (isNaN(params.offset) || params.offset < 0) {\n delete params.offset;\n }\n } else if (urlParamKey === 'q') {\n params.search = urlParamValue;\n } else if (urlParamKey === 'sort') {\n if (typeof urlParamValue === 'string') {\n params.sort = urlParamValue.split(',').map(s => {\n const [direction, property] = s.split(':');\n return {property: (property ?? direction) as keyof object, ascending: direction !== 'desc'};\n });\n } else {\n throw new CommonsInternalError(`String is expected as value for '${urlParamKey}' when converting from urlParams`);\n }\n } else if (typeof urlParamValue === 'string') {\n if (urlParamValue.length === 0) {\n // empty string should be ignored\n return;\n }\n\n const filterParts = urlParamValue.split(':');\n let partIdx = 0;\n\n // case sensitive\n let caseSensitive: boolean | undefined = undefined;\n if (filterParts[partIdx] === 'cs' || filterParts[partIdx] === 'ci') {\n caseSensitive = filterParts[partIdx++] === 'cs';\n }\n\n // match mode\n const matchMode = filterParts[partIdx] ? FilterMatchMode.fromAbbreviation(filterParts[partIdx]) ?? filterParts[partIdx] : FilterMatchMode.Equals;\n partIdx++;\n\n const noVal = matchMode === FilterMatchMode.Exists || matchMode === FilterMatchMode.DoesNotExist;\n\n // value\n let value: string | string[] | undefined | null = undefined;\n if (!noVal) {\n if (filterParts.length < 2) {\n return;\n }\n\n if (partIdx === filterParts.length - 1) {\n value = filterParts[partIdx];\n } else if (partIdx < filterParts.length) {\n // array that should not be array, so join back together\n value = filterParts.slice(partIdx, filterParts.length).join(':');\n }\n\n if (value === undefined && matchMode !== FilterMatchMode.Exists && matchMode !== FilterMatchMode.DoesNotExist) {\n // if value undefined and match mode expects value, then skip\n return;\n }\n\n if (value === 'null') {\n value = null;\n }\n\n if ((matchMode === FilterMatchMode.In || matchMode === FilterMatchMode.NotIn || matchMode === FilterMatchMode.Between) && typeof value === 'string') {\n let arrayVal: string[] = [];\n // these match modes expect array\n if (value.indexOf('\"') >= 0) {\n const tokens: string[] = [];\n let currentToken = '';\n let explicitQuotes = false; //token is quoted, e.g. in:1,2,\"22\"\"\",\",123\"\"\"\n let quotesOpened = false; //token has started processing\n let quotesExplicitlyClosed = false; //token processing has finished, after single \" in quoted mode, or before , in not quoted\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i];\n\n // reset the tokenizer when seeing the token separator\n // only if either:\n // the quotes have not been opened yet (when there are no characters between separators),\n // the token has been explicitly closed (when we actually have explicit opening i.e., quotes as the first character)\n // or we have implicit quotes (i.e., quotes are not the first character)\n if (c === ',' && (!quotesOpened || quotesExplicitlyClosed || !explicitQuotes)) {\n tokens.push(currentToken);\n currentToken = '';\n quotesOpened = false;\n quotesExplicitlyClosed = false;\n explicitQuotes = false;\n } else if (c == '\"') {\n // escaped double-quotes\n if (explicitQuotes && i + 1 < value.length && value[i + 1] === '\"') {\n currentToken += c; // Append one double-quote to the current token\n i++; // Skip the next double-quote\n }\n // we encounter quotes again after they were the first character => we close the token\n else if (explicitQuotes) {\n quotesExplicitlyClosed = true;\n }\n // implicit quotes\n else if (quotesOpened) {\n currentToken += c;\n }\n // quotes are the first character => explicitly open the token\n else {\n currentToken = '';\n quotesOpened = true;\n explicitQuotes = true;\n }\n } else {\n if (quotesExplicitlyClosed) {\n return;\n }\n\n quotesOpened = true;\n currentToken += c;\n }\n }\n\n if (quotesOpened && !quotesExplicitlyClosed && explicitQuotes) {\n return;\n }\n\n // Append the last token after the loop ends\n tokens.push(currentToken.toString());\n\n arrayVal = tokens;\n } else {\n arrayVal = value.split(',');\n }\n\n if (matchMode === FilterMatchMode.Between && arrayVal.length !== 2) {\n return;\n }\n\n value = arrayVal;\n }\n\n if ((typeof value === 'string' && value.length === 0) || (Array.isArray(value) && value!.length === 0)) {\n // filter with empty value is to be ignored\n return;\n }\n } else {\n caseSensitive = undefined;\n }\n\n if (!params.filters) {\n params.filters = {};\n }\n\n params.filters[urlParamKey as keyof object] = {value: value, matchMode: matchMode, caseSensitive: caseSensitive};\n }\n });\n\n return params;\n }\n\n /**\n * Makes a copy of the given DataListParams object.\n *\n * @param {DataListParams<Sorts, Filters>} params - The DataListParams object to be copied.\n * @returns {DataListParams<Sorts, Filters>} - Returns a new copy of the DataListParams object.\n */\n public static copy<Sorts = string, Filters extends keyof any = string>(params: DataListParams<Sorts, Filters>): DataListParams<Sorts, Filters> {\n const copy: DataListParams<Sorts, Filters> = {\n offset: params.offset,\n limit: params.limit,\n search: params.search\n };\n\n if (params.sort) {\n copy.sort = params.sort?.map(s => ({...s}));\n }\n if (params.filters) {\n copy.filters = Object.entries(params.filters).reduce((acc, [key, value]) => {\n const filterValue = value as DataListFilter;\n return {\n ...acc,\n [key]: {\n ...filterValue,\n value: Array.isArray(filterValue.value) ? [...filterValue.value] : filterValue.value\n } as DataListFilter\n };\n }, {} as DataListFiltersType<Filters>);\n }\n\n return copy;\n }\n\n /**\n * Converts a value to a URL query param string representation.\n *\n * @param {unknown} value - The value to be converted.\n * @param {boolean} [allowNull=false] - Indicates whether null values are allowed.\n * @returns {string} The URL parameter representation of the value.\n * @throws {CommonsInternalError} If an undefined value is passed without allowNull set to true.\n * @throws {CommonsInternalError} If the value is an object (excluding Date).\n */\n public static filterValueToUrlParam(value: unknown, allowNull = false): string {\n if (value === null && allowNull) return 'null';\n if (value == null) throw new CommonsInternalError('Undefined value cannot be converted to url param.'); // this should not happen, should be filtered out earlier\n if (Array.isArray(value))\n return value\n .map(v => DataListParamsUtil.filterValueToUrlParam(v, allowNull))\n .map(v => (v.indexOf(',') >= 0 || v.indexOf('\"') >= 0 ? `\"${v.replaceAll('\"', '\"\"')}\"` : v))\n .join(',');\n if (typeof value === 'object') {\n if (value instanceof Date) return DateUtil.toIsoString(value, 'dateTime', {utc: true});\n else {\n throw new CommonsInternalError('Filter value cannot be object');\n }\n }\n return String(value);\n }\n}\n","import {ClassOptType, ClassType, ServiceClassOptType, ServiceClassType} from '../models/class-service.model';\n\nexport type IDataProvider<ModelType = any, ServiceType = any, CT = ClassOptType<ModelType>, ST = ServiceClassOptType<ServiceType>> = {\n classType: CT;\n serviceType: ST;\n isDataProvider: boolean;\n};\n\n/**\n * A base data provider class used for handling data operations.\n *\n * @tparam Model - The type of data this data provider will handle.\n * @tparam Service - The type of service used by this data provider (optional).\n * @tparam ModelClass - The model type for the data provider (optional).\n * @tparam ServiceClass - The service type for the data provider (optional).\n */\nexport class DataProviderInst<Model, Service = any, ModelClass = ClassOptType<Model>, ServiceClass = ServiceClassOptType<Service>>\n implements IDataProvider<Model, Service, ModelClass, ServiceClass>\n{\n protected constructor(\n public readonly classType: ModelClass,\n public readonly serviceType: ServiceClass\n ) {}\n\n public get isDataProvider() {\n return true;\n }\n}\n\nexport class DataProvider extends DataProviderInst<any> {\n protected constructor() {\n super(undefined, undefined);\n }\n\n public static create<Model>() {\n return new DataProviderInst<Model, undefined, undefined, undefined>(undefined, undefined);\n }\n\n public static fromClass<Model>(type: ClassType<Model>) {\n return new DataProviderInst<Model, undefined, ClassType<Model>, undefined>(type, undefined);\n }\n\n public static fromClassWithService<Model, Service>(type: ClassType<Model>, serviceType: ServiceClassType<Service>) {\n return new DataProviderInst<Model, Service, ClassType<Model>, ServiceClassType<Service>>(type, serviceType);\n }\n\n public static fromService<Service, Model>(serviceType: ServiceClassType<Service>): DataProviderInst<Model, Service, undefined, ServiceClassType<Service>> {\n return new DataProviderInst<Model, Service, undefined, ServiceClassType<Service>>(undefined, serviceType);\n }\n\n public static fromAnyParam<Model>(): DataProviderInst<Model, undefined, undefined, undefined>;\n public static fromAnyParam<Model>(type: ClassType<Model>): DataProviderInst<Model, undefined, ClassType<Model>, undefined>;\n public static fromAnyParam<Model, Service = any>(\n type: undefined,\n serviceType: ServiceClassType<Service>\n ): DataProviderInst<Model, Service, undefined, ServiceClassType<Service>>;\n public static fromAnyParam<Model, Service = any>(\n type: ClassType<Model>,\n serviceType: ServiceClassType<Service>\n ): DataProviderInst<Model, Service, ClassType<Model>, ServiceClassType<Service>>;\n public static fromAnyParam<Model, Service, ModelClass = ClassType<Model>, ServiceClass = ServiceClassType<Service>>(\n type?: ModelClass,\n serviceType?: ServiceClass\n ): DataProviderInst<Model, Service, ModelClass, ServiceClass>;\n public static fromAnyParam<Model, Service = any, ModelClass = ClassType<Model>, ServiceClass = ServiceClassType<Service>>(type?: ModelClass, serviceType?: ServiceClass) {\n if (typeof type !== 'undefined') {\n return typeof serviceType !== 'undefined'\n ? DataProvider.fromClassWithService(type as ClassType<Model>, serviceType as ServiceClassType<Service>)\n : DataProvider.fromClass(type as ClassType<Model>);\n } else if (typeof serviceType !== 'undefined') {\n return DataProvider.fromService(serviceType as ServiceClassType<Service>);\n } else {\n return DataProvider.create<Model>();\n }\n }\n}\n","import {\n ApplicationRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Injector,\n Input,\n OnInit,\n Output,\n Type,\n ViewContainerRef,\n createComponent,\n inject\n} from '@angular/core';\n\nimport {CommonsInternalError} from '../error/error.model';\n\n@Directive({\n standalone: true,\n selector: '[mngComponent]'\n})\nexport class ComponentDirective<C> implements OnInit {\n private readonly injector = inject(Injector);\n private readonly elementRef = inject(ElementRef);\n private readonly applicationRef = inject(ApplicationRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n @Input({alias: 'mngComponent'}) component?: Type<C>;\n @Input({alias: 'injectionToken'}) componentIt?: InjectionToken<Type<C>>;\n @Input() inputs?: {[key: string]: any};\n @Input() attachToHost = false;\n @Input() nodeInjector?: Injector;\n @Output('instanceCreated') private componentInstanceEventEmitter = new EventEmitter<C>();\n\n public componentRef!: ComponentRef<C>;\n\n ngOnInit() {\n let component: Type<C> | null = null;\n if (this.component) {\n component = this.component;\n } else if (this.componentIt) {\n component = this.injector.get(this.componentIt, null, {optional: true});\n }\n\n if (!component) {\n throw new CommonsInternalError(`Component cannot be created, no component (${this.component}) or no or invalid injection token provided (${this.componentIt}).`);\n }\n\n if (this.attachToHost) {\n this.componentRef = createComponent(component, {\n hostElement: this.elementRef.nativeElement,\n environmentInjector: this.applicationRef.injector,\n elementInjector: this.nodeInjector ?? this.injector\n });\n } else {\n this.viewContainerRef.clear();\n this.componentRef = this.viewContainerRef.createComponent<any>(component, {\n injector: this.nodeInjector ?? undefined\n });\n }\n\n if (this.inputs) {\n for (const input in this.inputs) {\n this.componentRef.setInput(input, this.inputs[input]);\n }\n }\n\n if (this.attachToHost) {\n this.applicationRef.attachView(this.componentRef.hostView);\n }\n\n this.componentInstanceEventEmitter.next(this.componentRef.instance);\n }\n}\n","import {Directive, Input, TemplateRef, ViewContainerRef, inject} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[mngTemplate]'\n})\nexport class TemplateDirective {\n public readonly template = inject(TemplateRef<any>);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n @Input() type!: string;\n @Input({required: true, alias: 'mngTemplate'}) name!: string;\n\n public getType(): string {\n return this.name;\n }\n\n public getViewContainerRef(): ViewContainerRef {\n return this.viewContainerRef;\n }\n}\n","import {EnumConstantType, EnumType} from '../helpers/type-helpers';\nimport {EnumValue} from './enum.model';\n\nexport class EnumUtil {\n /**\n * Returns array of names for constants in enum.\n * @param enumType Enum object.\n */\n public static getConstantNames(enumType: EnumType): Array<string> {\n return EnumUtil.getConstantNamesFromEnumObject(enumType);\n }\n\n /**\n * Returns array of names for constants in enum.\n * @param enumObj Enum object.\n */\n public static getConstantNamesFromEnumObject(enumObj: object): Array<string> {\n // in number enum, the numbers are also represented in objects and should be filtered out\n return Object.keys(enumObj).filter(v => isNaN(+v));\n }\n\n /**\n * Returns array of string values for constants in enum.\n * @param enumType Enum object.\n */\n public static getConstantValuesAsString(enumType: EnumType): Array<string> {\n return Object.keys(enumType).map(v => enumType[v as keyof object] as string);\n }\n\n /**\n * Returns array of number values for constants in enum.\n * @param enumType Enum object.\n */\n public static getConstantValuesAsNumber(enumType: EnumType): Array<number> {\n return Object.keys(enumType)\n .filter(v => !isNaN(+v))\n .map(v => +v);\n }\n\n /**\n * Returns array of type EnumValue for all constants in enum.\n * @param enumType Enum object.\n * @param nameAsValue If use name of constant as value (optional, default: false).\n * @param titlePath Base path for title to use as translation (optional).\n */\n public static fromConstantsAsEnumValueArray(enumType: EnumType, nameAsValue = false, titlePath?: string) {\n return EnumUtil.getConstantNames(enumType).map(n => <EnumValue>{name: n, title: `${titlePath ? `${titlePath}.` : ''}${n}`, value: nameAsValue ? n : enumType[n]});\n }\n\n /**\n * Returns array of type EnumValue for provided values in enum.\n * @param enumType Enum object.\n * @param values Enum values (constants).\n * @param nameAsValue If use name of constant as value (optional, default: false).\n * @param titlePath Base path for title to use as translation (optional).\n */\n public static fromValuesAsEnumValueArray<EnumConstant = EnumConstantType>(enumType: EnumType, values: Array<EnumConstant>, nameAsValue = false, titlePath?: string) {\n return values.map(v => {\n const k = EnumUtil.getConstantName(enumType, v);\n return {name: k, title: `${titlePath ? `${titlePath}.` : ''}${k}`, value: nameAsValue ? k : v} as EnumValue;\n });\n }\n\n /**\n * Gets constant name for value.\n * @param enumType Enum object.\n * @param value Value of enum constant.\n */\n public static getConstantName<EnumConstant = EnumConstantType>(enumType: EnumType, value: EnumConstant): string | null {\n if (typeof value === 'string') {\n return EnumUtil.getConstantNames(enumType).find(c => enumType[c] === value) ?? null;\n } else {\n return typeof enumType[value as keyof object] !== 'undefined' ? (enumType[value as keyof object] as string) : null;\n }\n }\n\n /**\n * Gets constant name for value.\n * @param enumObj Enum object.\n * @param value Value of enum constant.\n */\n public static getConstantNameFromEnumObject<EnumConstant = EnumConstantType>(enumObj: object, value: EnumConstant): string | null {\n const enumObjAny = enumObj as any;\n if (typeof value === 'string') {\n return EnumUtil.getConstantNamesFromEnumObject(enumObj).find(c => enumObjAny[c] === value) ?? null;\n } else {\n return typeof enumObjAny[value] !== 'undefined' ? (enumObjAny[value] as string) : null;\n }\n }\n}\n","import {ClassType} from '../models/class-service.model';\n\ninterface DeepCopyPropsOptions {\n mapGettersToProperties?: boolean;\n}\n\nexport interface DeepCopyOptions<P = object> extends DeepCopyPropsOptions {\n objectPrototype?: ClassType<P>;\n}\n\nexport class ObjectUtil {\n public static deepCopy<T = object, P = object>(obj: T, options: DeepCopyOptions<P> & {mapGettersToProperties: true}): T | Record<string, any>;\n public static deepCopy<T = object, P = object>(obj: T, options: DeepCopyOptions<P> & {objectPrototype: ClassType<P>} & {mapGettersToProperties?: false}): P;\n public static deepCopy<T = object, P = object>(obj: T, options: DeepCopyOptions<P> & {objectPrototype: ClassType<P>} & {mapGettersToProperties: true}): P | Record<string, any>;\n public static deepCopy<T = object, P = object>(obj: T, options?: DeepCopyOptions<P>): T;\n\n public static deepCopy<T = object, P = object>(obj: T, options?: DeepCopyOptions<P>): T | P | Record<string, any> {\n if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {\n return obj;\n }\n\n if (obj instanceof Date) {\n return new Date(+obj);\n }\n\n let copy;\n if (options?.mapGettersToProperties) {\n copy = {};\n } else {\n copy = options?.objectPrototype ? Object.create(options.objectPrototype['prototype' as keyof object]) : Object.create(Object.getPrototypeOf(obj));\n Object.assign(copy, obj);\n }\n\n for (const key of ObjectUtil.getProperties(obj)) {\n const prop = obj[key as keyof object];\n copy[key] = ObjectUtil.handleProp(prop, {mapGettersToProperties: options?.mapGettersToProperties});\n }\n\n if (options?.mapGettersToProperties) {\n for (const getterKey of ObjectUtil.getGetters(obj)) {\n const prop = obj[getterKey as keyof object];\n copy[getterKey] = ObjectUtil.handleProp(prop, {mapGettersToProperties: options?.mapGettersToProperties});\n }\n }\n\n return copy;\n }\n\n public static deepMerge(target: Record<string, any>, source: Record<string, any>): Record<string, any> {\n if (!ObjectUtil.isObject(source)) {\n return target;\n }\n\n for (const key of ObjectUtil.getProperties(source)) {\n if (ObjectUtil.isObject(source[key])) {\n if (ObjectUtil.isObject(target[key])) {\n target[key] = ObjectUtil.deepMerge(target[key], source[key]);\n } else {\n target[key] = ObjectUtil.deepCopy(source[key]);\n }\n } else if (Array.isArray(source[key])) {\n if (!Array.isArray(target[key])) {\n target[key] = (source[key] as Array<unknown>).map(i => (ObjectUtil.isObject(i) ? ObjectUtil.deepMerge({}, i as Record<string, unknown>) : i));\n }\n } else if (typeof target[key] === 'undefined') {\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n private static isObject(obj: any) {\n return typeof obj === 'object' && obj !== null && !Array.isArray(obj);\n }\n\n private static handleProp(prop: any, options?: DeepCopyPropsOptions) {\n if (Array.isArray(prop)) {\n return prop.map(i => ObjectUtil.deepCopy(i, options));\n } else if (typeof prop === 'object' && prop !== null) {\n return ObjectUtil.deepCopy(prop, options);\n } else {\n return prop;\n }\n }\n\n public static getProperties(obj: object) {\n return Object.keys(obj);\n }\n\n public static getGetters(obj: any): string[] {\n const getterSet = new Set<string>();\n let currObj = obj;\n\n while (currObj) {\n const getters = Object.entries(Object.getOwnPropertyDescriptors(currObj))\n .filter(([, descriptor]) => typeof descriptor.get === 'function')\n .filter(([key]) => key !== '__proto__')\n .map(([key]) => key);\n\n for (const getter of getters) {\n getterSet.add(getter);\n }\n\n currObj = Object.getPrototypeOf(currObj);\n }\n\n return Array.from(getterSet);\n }\n\n public static getPropertyByPath(value: any, path: string): any | undefined {\n if (path === '$') {\n // only return the root\n return value;\n }\n\n // Check for leading root object notation\n if (path.startsWith('$')) {\n path = path.substring(1);\n }\n\n // Check for leading .\n if (path.startsWith('.')) {\n path = path.substring(1);\n }\n\n if (path.indexOf('.') >= 0) {\n const pathSplit = path.split('.');\n let currValue = value;\n for (const p of pathSplit) {\n if (typeof currValue === 'undefined' || currValue === null) {\n return currValue;\n }\n\n if (!p.length) {\n // empty path, return current value\n return currValue;\n }\n\n const leftBracketIdx = p.indexOf('[');\n if (leftBracketIdx >= 0 && p.endsWith(']')) {\n // should be reference to array\n const arrayPath = p.substring(0, leftBracketIdx);\n const arrayIdx = +p.substring(leftBracketIdx + 1, p.length - 1);\n const array = currValue[arrayPath];\n if (Array.isArray(array)) {\n if (arrayIdx >= 0 && arrayIdx < array.length) {\n // valid index, continue on the path\n currValue = array[arrayIdx];\n continue;\n }\n }\n\n return undefined;\n } else if (typeof currValue === 'object') {\n currValue = currValue[p];\n }\n }\n return currValue;\n } else {\n return value[path];\n }\n }\n\n public static flattenObjectKeys(objectModel: any): string[] {\n const flatten = (object: any, parent?: any) => {\n let results: any[] = [];\n for (const key in object) {\n const value = object[key];\n const thisKey = parent ? `${parent}.${key}` : `${key}`;\n\n results = results.concat(ObjectUtil.isObject(value) ? flatten(value, thisKey) : [[`${thisKey}`, value]]);\n }\n return results;\n };\n\n return flatten(objectModel);\n }\n}\n","import {DateUtil} from './date.util';\nimport {ObjectUtil} from './object.util';\n\nexport class StringUtil {\n public static escapeHtml(value: string): any {\n return value.replace(/</g, '<').replace(/>/g, '>');\n }\n\n public static escapeHtmlAny(value?: any): any {\n if (typeof value === 'string') {\n return StringUtil.escapeHtml(value);\n } else if (typeof value === 'object') {\n const escapedValue: any = ObjectUtil.deepCopy(value, {mapGettersToProperties: true});\n\n for (const key in value) {\n if (typeof value[key] === 'string') {\n escapedValue[key] = StringUtil.escapeHtml(value[key]);\n } else if (typeof value[key] === 'object') {\n escapedValue[key] = StringUtil.escapeHtmlAny(value[key]);\n } else {\n escapedValue[key] = value[key];\n }\n }\n return escapedValue;\n }\n\n return value;\n }\n\n /**\n * Stringifies a value - primitives with toString, dates with dateUtil, objects with JSON.stringify.\n * @param value Any value.\n */\n public static stringify(value: any): string {\n if (value === null) {\n return 'null';\n }\n if (typeof value === 'undefined') {\n return 'undefined';\n }\n // eliminate functions, cause they could fall into objects\n if (typeof value === 'function') {\n return `Function ${value.name ?? 'anonymous'}()`;\n }\n if (typeof value === 'object') {\n // date is object, but would like it in ISO string representation\n if (value instanceof Date) {\n return DateUtil.toIsoString(value) ?? 'null';\n }\n try {\n return JSON.stringify(value);\n } catch (e) {\n return value.toString();\n }\n }\n // only primitives should be left to be printed like this (string, number, boolean)\n return value.toString();\n }\n}\n","import {HttpErrorResponse} from '@angular/common/http';\n\nimport {LogLevelEnum} from '../log/log.model';\nimport {StringUtil} from '../utils/string.util';\nimport {ACommonsErrorBase, CommonsErrorBaseOptions, CommonsHttpError, CommonsInternalError, ICommonsActionError} from './error.model';\n\nexport class ErrorUtil {\n /**\n * Converts RxJS subscription error to CommonsError.\n * @param error Error.\n * @param name Optional name to write in commons error.\n * @param details Optional details of error.\n */\n public static fromSubscribeError(error: any, name?: string, details?: any): ACommonsErrorBase {\n const opts: CommonsErrorBaseOptions = {\n name,\n details,\n location: window?.location?.href\n };\n\n if (error instanceof HttpErrorResponse) {\n return new CommonsHttpError(error.message ?? 'Http Error occurred', error, opts);\n } else {\n opts.cause = error;\n return new CommonsInternalError(error.message ?? 'Internal Error occurred', opts);\n }\n }\n\n /**\n * Checks if error is Http error (Angular or Commons).\n * @param error\n */\n public static isHttpErrorResponse(error: any) {\n return error instanceof HttpErrorResponse || error instanceof CommonsHttpError || (error as ICommonsActionError | undefined)?.httpError instanceof HttpErrorResponse;\n }\n\n /**\n * Gets HttpErrorResponse from error (Angular or Commons).\n * @param error Error.\n */\n public static getHttpErrorResponse(error: any): HttpErrorResponse | null {\n if (error instanceof HttpErrorResponse) {\n return error;\n } else if (error instanceof CommonsHttpError) {\n return error.httpError;\n } else if ((error as ICommonsActionError | undefined)?.httpError instanceof HttpErrorResponse) {\n return error.httpError;\n } else {\n return null;\n }\n }\n\n /**\n * Gets HttpErrorResponse status from error (Angular or Commons).\n * @param error Error.\n */\n public static getHttpErrorResponseStatus(error: any): number | null {\n return ErrorUtil.getHttpErrorResponse(error)?.status ?? null;\n }\n\n /**\n * Get error log level. All is error, except if error is http error with status >=400 and <500.\n * @param error Error.\n */\n public static getErrorLogLevel(error: any): LogLevelEnum {\n if (ErrorUtil.isHttpErrorResponse(error)) {\n const status = ErrorUtil.getHttpErrorResponseStatus(error);\n if (status && status >= 400 && status < 500) {\n return LogLevelEnum.Warning;\n }\n }\n return LogLevelEnum.Error;\n }\n\n /**\n * Get error name (prototype name or type from commons error if name is not provided).\n * @param error Error.\n */\n public static getErrorName(error: any): string {\n if (error instanceof ACommonsErrorBase) {\n return error.name ?? error.type;\n } else {\n return error.name;\n }\n }\n\n /**\n * Writes http error to string with all headers and body.\n * @param error Http response error.\n * @param opts Options for hiding parts of error:\n * - hideMessage Hides message of error (message include url, status and status text!).\n * - hideHeaders Hides headers.\n * - hideBody Hides JSON representation of body.\n */\n public static httpErrorResponseToString(error: HttpErrorResponse, opts?: HttpErrorResponseToStringOptionsType): string {\n let str = opts?.hideMessage ? '' : `${error.message}\\n`; // message should already include url, status, etc.\n if (!opts?.hideHeaders) {\n str += `Http Response Headers: ${error.headers.keys().reduce((acc, key) => `${acc}[${key}: ${error.headers.get(key)}]`, '')}`;\n }\n if (!opts?.hideBody) {\n str += `\\nHttp Response Body: ${StringUtil.stringify(error.error)}`;\n }\n return str;\n }\n\n /**\n * Error to string.\n * @param error Error.\n * @param opts Options for hiding parts of error:\n * - hideMessage Hides message of error.\n * - hideName Hides error name.\n * - hideCause Hides cause of an error (if present, see @link(errorCauseToString) for other options).\n * - hideStack Hides stack of an error (if present).\n * - hideDetails Hides JSON detail's representation of error (if present).\n * - hideLocation Hides location (URL) where error was thrown.\n * - hideHttp Hides http error portion of error if http error response (see @link(httpErrorResponseToString) for other options).\n */\n public static errorToString(error: Error, opts?: ErrorToStringOptionsType): string {\n if (error instanceof ACommonsErrorBase) {\n return ErrorUtil.commonsErrorToString(error, opts);\n } else if (error instanceof HttpErrorResponse) {\n return ErrorUtil.httpErrorResponseToString(error, opts);\n }\n\n const strBlocks: string[] = [];\n if (!opts?.hideMessage) {\n strBlocks.push(error.message);\n }\n if (error.name) {\n strBlocks.push(`Error name: ${error.name}`);\n }\n if (!opts?.hideCause) {\n strBlocks.push(ErrorUtil.errorCauseToString(error, opts));\n }\n if (!opts?.hideStack && error.stack) {\n strBlocks.push(`Stack trace:\\n${error.stack}`);\n }\n\n return strBlocks.filter(s => s.trim().length > 0).join('\\n');\n }\n\n /**\n * Commons error to string.\n * @param error Commons error.\n * @param opts Options for hiding parts of error:\n * - hideMessage Hides message of error.\n * - hideName Hides error name.\n * - hideCause Hides cause of an error (if present, see @link(errorCauseToString) for other options).\n * - hideStack Hides stack of an error (if present).\n * - hideDetails Hides JSON detail's representation of error (if present).\n * - hideLocation Hides location (URL) where error was thrown.\n * - hideHttp Hides http error portion of error if http error response (see @link(httpErrorResponseToString) for other options).\n * - hideItems Hides all item information (http body, action context data).\n * - hideActionData See @link(commonsActionErrorContextToString) for additional info.\n * - hideQueryParams See @link(commonsActionErrorContextToString) for additional info.\n */\n public static commonsErrorToString(error: ACommonsErrorBase, opts?: ErrorToStringOptionsType): string {\n const strBlocks: string[] = [];\n if (!opts?.hideMessage) {\n strBlocks.push(`${error.message}${error.messageCode ? ` (code: ${error.messageCode})` : ''}`);\n }\n if (!opts?.hideName) {\n strBlocks.push(`Error name: ${error.name ?? error.type} ${error.name ? `(${error.type})` : ''}`);\n }\n if (!opts?.hideLocation && error.location) {\n strBlocks.push(`Location: ${error.location}`);\n }\n\n let isHttp = false;\n if (!opts?.hideHttp && error instanceof CommonsHttpError) {\n strBlocks.push(\n ErrorUtil.httpErrorResponseToString(error.httpError, {\n hideBody: opts?.hideItems || opts?.hideBody,\n hideHeaders: opts?.hideHeaders,\n hideMessage: error.message.indexOf(error.httpError.message) >= 0\n })\n );\n isHttp = true;\n }\n if (error.type === 'CommonsActionError') {\n const actionError = error as unknown as ICommonsActionError;\n if (actionError.actionContext) {\n strBlocks.push(ErrorUtil.commonsActionErrorContextToString(actionError, opts));\n }\n if (!opts?.hideHttp && actionError.httpError instanceof HttpErrorResponse) {\n strBlocks.push(\n ErrorUtil.httpErrorResponseToString(actionError.httpError, {\n hideBody: opts?.hideItems || opts?.hideBody,\n hideHeaders: opts?.hideHeaders,\n hideMessage: error.message.indexOf(actionError.httpError.message) >= 0\n })\n );\n isHttp = true;\n }\n }\n\n if (!opts?.hideDetails && error.details) {\n strBlocks.push(`Details: ${StringUtil.stringify(error.details)}`);\n }\n if (!opts?.hideCause && (!isHttp || !(error.cause instanceof HttpErrorResponse))) {\n strBlocks.push(ErrorUtil.errorCauseToString(error, opts));\n }\n if (!opts?.hideStack && error.stack) {\n strBlocks.push(`Stack trace:\\n${error.stack}`);\n }\n\n return strBlocks.filter(s => s.trim().length > 0).join('\\n');\n }\n\n /**\n * Writes commons action error info from context as string.\n * @param error Commons action error.\n * @param opts Options for hiding parts of error:\n * - hideItems Hides all item related information (item, form item, submit item, ...).\n * - hideActionData Hides action data.\n * - hideQueryParams Hides query params.\n */\n public static commonsActionErrorContextToString(error: ICommonsActionError, opts?: ActionErrorContextToStringOptionsType): string {\n let paramsMessage = '';\n if (error.actionContext?.parameters) {\n if (error.actionContext?.parameters.itemId) {\n paramsMessage += `[itemId: ${error.actionContext.parameters.itemId}]`;\n }\n if (!opts?.hideItems && error.actionContext?.parameters.item) {\n paramsMessage += `[item: ${StringUtil.stringify(error.actionContext.parameters.item)}]`;\n }\n if (!opts?.hideActionData && error.actionContext?.parameters.actionData) {\n paramsMessage += Object.entries(error.actionContext?.parameters.actionData).reduce(\n (acc, [key, value]) => `${acc}[actionData ${key}: ${StringUtil.stringify(value)}]`,\n ''\n );\n }\n if (!opts?.hideQueryParams && error.actionContext?.parameters.dataListParams) {\n paramsMessage += `[dataListParams: ${StringUtil.stringify(error.actionContext.parameters.dataListParams)}]`;\n }\n if (!opts?.hideItems && error.actionContext?.parameters.formItem) {\n paramsMessage += `[formItem: ${StringUtil.stringify(error.actionContext.parameters.formItem)}]`;\n }\n if (!opts?.hideItems && error.actionContext?.parameters.submitResult) {\n paramsMessage += `[formItem: ${StringUtil.stringify(error.actionContext.parameters.submitResult)}]`;\n }\n if (error.actionContext?.parameters.locale) {\n paramsMessage += `[locale: ${StringUtil.stringify(error.actionContext.parameters.locale)}]`;\n }\n }\n\n return paramsMessage;\n }\n\n /**\n * Writes cause of an error as string.\n * @param error Error.\n * @param opts Options for hiding parts of error:\n * - causeOnErrorOnly Prints only if cause is instance of error.\n * - causeAsJson Print error cause as a JSON (by default, if error only message and name will be printed).\n */\n public static errorCauseToString(error: Error, opts?: ErrorCauseToStringOptionsType): string {\n // if already logged as http error, check that cause is not also http error (cause it is usually duplicated)\n if (error.cause && (!opts?.causeOnErrorOnly || error.cause instanceof Error)) {\n const stringify = opts?.causeAsJson || !(error.cause instanceof Error);\n if (!opts?.causeOnErrorOnly || error.cause instanceof Error) {\n return (\n 'Caused by: ' +\n (stringify ? StringUtil.stringify(error.cause) : `${(error.cause as Error).message}${(error.cause as Error).name ? ` (${(error.cause as Error).name})` : ''}`)\n );\n }\n }\n return '';\n }\n}\n\nexport type ErrorToStringOptionsType = ErrorToStringOptionsBaseType &\n HttpErrorResponseToStringOptionsType &\n ActionErrorContextToStringOptionsType &\n ErrorCauseToStringOptionsType & {\n hideDetails?: boolean;\n hideLocation?: boolean;\n };\n\nexport interface ErrorToStringOptionsBaseType {\n hideName?: boolean;\n hideStack?: boolean;\n hideCause?: boolean;\n hideHttp?: boolean;\n}\n\nexport interface HttpErrorResponseToStringOptionsType {\n hideMessage?: boolean;\n hideHeaders?: boolean;\n hideBody?: boolean;\n}\n\nexport interface ActionErrorContextToStringOptionsType {\n hideItems?: boolean;\n hideActionData?: boolean;\n hideQueryParams?: boolean;\n}\n\nexport interface ErrorCauseToStringOptionsType {\n causeOnErrorOnly?: boolean;\n causeAsJson?: boolean;\n}\n","import {HttpErrorResponse} from '@angular/common/http';\nimport {ErrorHandler} from '@angular/core';\n\nimport {LoggerService} from '../log/logger.service';\nimport {ACommonsErrorBase} from './error.model';\nimport {ErrorUtil} from './error.util';\n\nexport class CommonsErrorHandler implements ErrorHandler {\n private static readonly logCategory = 'ErrorHandler';\n private readonly logger = LoggerService.get();\n\n handleError(error: Error) {\n if (error instanceof ACommonsErrorBase || error instanceof HttpErrorResponse) {\n const logLevel = ErrorUtil.getErrorLogLevel(error);\n this.logger.log(error, logLevel);\n } else {\n this.logger.error('Unexpected error occurred', error);\n }\n }\n}\n","import {booleanAttribute, numberAttribute} from '@angular/core';\n\nimport {Observable, isObservable, of} from 'rxjs';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {IdType, Nullable} from './type-helpers';\n\nexport function boolean$Attribute(value: unknown): Observable<boolean> {\n return isObservable(value) ? (value as Observable<boolean>) : of(booleanAttribute(value));\n}\n\nexport function number$Attribute(value: unknown): Observable<number> {\n return isObservable(value) ? (value as Observable<number>) : of(numberAttribute(value));\n}\n\nexport const toObservable = <T>(value: T | Observable<T>): Observable<T> => {\n return isObservable(value) ? (value as Observable<T>) : of(value);\n};\n\nexport const itemIdToNumber = (value?: IdType): number => {\n if (typeof value === 'number') {\n return value;\n } else if (typeof value === 'string') {\n const num = +value;\n if (!isNaN(num)) {\n return num;\n }\n throw new CommonsInternalError(`ItemId is a string, but could not be transformed to number: ${value}`);\n } else {\n throw new CommonsInternalError(`ItemId is not a number: ${value}`);\n }\n};\n\nexport const itemIdToString = (value?: IdType): string => {\n if (typeof value === 'string') {\n return value;\n } else {\n throw new CommonsInternalError(`ItemId is not a string: ${value}`);\n }\n};\n\nexport const itemIdToDefined = (value?: IdType): IdType => {\n if (typeof value === 'undefined') {\n throw new CommonsInternalError(`ItemId is not defined: ${value}`);\n } else {\n return value;\n }\n};\n\nexport const valueToDefined = <T>(value: Nullable<T>): T => {\n if (typeof value === 'undefined' || value === null) {\n throw new CommonsInternalError(`Value is null or not defined: ${value}`);\n } else {\n return value;\n }\n};\n","import {Message, MessageService} from 'primeng/api';\n\nexport function toastMessage(messageService: MessageService, title?: string, message?: string, severity: 'success' | 'warn' | 'error' = 'success', icon?: string): Message {\n const notification: Message = {severity: severity, summary: title, detail: message, life: severity === 'error' ? 10000 : 5000, icon: icon};\n messageService.add(notification);\n return notification;\n}\n","/* eslint-disable no-console */\nimport {ErrorUtil} from '../error/error.util';\nimport {ILogPublisher, LogEntry, LogLevelEnum} from './log.model';\n\nexport class LogPublisherConsoleService implements ILogPublisher {\n addEntry(entry: LogEntry): void {\n let prefix = `${entry.timestampFormatted}`;\n if (entry.category) prefix += ` [${entry.category}]`;\n prefix += ':';\n\n const message = `${entry.message}${entry.messageDetails ? `\\n${entry.messageDetails}` : ''}`;\n const logParams: any[] = [prefix, message];\n if (entry.error) {\n logParams.push(`\\n${ErrorUtil.getErrorName(entry.error)}:`, entry.error);\n }\n if (entry.data?.length) {\n logParams.push(`\\nData:\\n`, ...entry.data);\n }\n\n switch (entry.level) {\n case LogLevelEnum.Trace:\n console.trace(...logParams);\n break;\n case LogLevelEnum.Debug:\n console.debug(...logParams);\n break;\n case LogLevelEnum.Log:\n console.log(...logParams);\n break;\n case LogLevelEnum.Info:\n console.info(...logParams);\n break;\n case LogLevelEnum.Warning:\n console.warn(...logParams);\n break;\n case LogLevelEnum.Error:\n console.error(...logParams);\n break;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'mngBoolean',\n pure: true\n})\nexport class BooleanPipe implements PipeTransform {\n transform(value: any, yes?: string, no?: string, icon = false): any {\n if (typeof value === 'boolean') {\n if (icon) {\n return value ? yes ?? 'pi pi-check' : no ?? 'pi pi-times';\n } else {\n return value ? yes ?? 'general.yes' : no ?? 'general.no';\n }\n } else {\n return value;\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'mngClassMap',\n pure: true\n})\nexport class ClassMapPipe<T> implements PipeTransform {\n transform(className?: string, classNameMapFn?: (className?: string, item?: T) => string, item?: T): string {\n if (classNameMapFn && typeof classNameMapFn === 'function') {\n return classNameMapFn(className, item);\n } else {\n return className ?? '';\n }\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\nimport {ObjectUtil} from '../utils/object.util';\n\n/**\n * Imitation of JSONPath Syntax. Supports:\n * - Root object notation with '$'\n * - Dot notation (e.g.: $.foo.bar), no bracket notation for properties\n * - Array notation (e.g.: [0])\n */\n@Pipe({\n standalone: true,\n name: 'mngJsonPath',\n pure: true\n})\nexport class JsonPathPipe implements PipeTransform {\n transform(value: any, path = ''): any {\n return ObjectUtil.getPropertyByPath(value, path);\n }\n}\n","import {Pipe, PipeTransform, inject} from '@angular/core';\n\nimport {TranslateService} from '@ngx-translate/core';\n\nimport {JsonPathPipe} from './json-path.pipe';\n\n@Pipe({\n standalone: true,\n name: 'mngEnumerate',\n pure: true\n})\nexport class EnumeratePipe implements PipeTransform {\n private readonly translate = inject(TranslateService);\n\n transform<T>(value: Array<T> | Set<T>, jsonPath = '$', valueSeparator = ', ', emptyValueReturn = '/', i18nBaseKey = ''): string {\n if (!value) {\n return emptyValueReturn;\n }\n i18nBaseKey = getI18nBaseKey(i18nBaseKey);\n return Array.from(value)\n .map(i => {\n const itemEnumerate = toI18nEnumerate(i, jsonPath, i18nBaseKey);\n itemEnumerate.i18n = this.translate.instant(itemEnumerate.i18nKey);\n // return i18n only if used and transl. was found\n return selectI18n(itemEnumerate, i18nBaseKey);\n })\n .join(valueSeparator);\n }\n}\n\nexport function getI18nBaseKey(baseKey: string): string {\n return baseKey.endsWith('.') ? baseKey?.substring(0, baseKey.length - 1) : baseKey;\n}\n\nexport function selectI18n(value: EnumeratePipeI18nInternal, baseKey: string): string {\n return baseKey && value.i18nKey === value.i18n ? value.value : value.i18n;\n}\n\nexport function toI18nEnumerate(value: unknown, jsonPath: string, baseKey: string): EnumeratePipeI18nInternal {\n const valueTrans = new JsonPathPipe().transform(value, jsonPath);\n const valueAsString = valueTrans.toString();\n return <EnumeratePipeI18nInternal>{\n value: valueAsString,\n i18nKey: baseKey ? `${baseKey}.${valueAsString}` : valueAsString,\n i18n: valueAsString\n };\n}\n\nexport interface EnumeratePipeI18nInternal {\n value: string;\n i18nKey: string;\n i18n: string;\n}\n","import {Pipe, PipeTransform, inject} from '@angular/core';\n\nimport {TranslateService} from '@ngx-translate/core';\nimport {Observable, combineLatest, mergeMap, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {getI18nBaseKey, selectI18n, toI18nEnumerate} from './enumerate.pipe';\n\n@Pipe({\n standalone: true,\n name: 'mngEnumerateAsync',\n pure: true\n})\nexport class EnumerateAsyncPipe implements PipeTransform {\n private readonly translate = inject(TranslateService);\n\n transform(value: Observable<Array<unknown> | Set<unknown>>, jsonPath = '$', valueSeparator = ', ', emptyValueReturn = '/', i18nBaseKey = ''): Observable<string> {\n i18nBaseKey = getI18nBaseKey(i18nBaseKey);\n return value.pipe(\n mergeMap(v => {\n if (!v) {\n return of([emptyValueReturn]);\n }\n return combineLatest(\n Array.from(v)\n .map(ai => toI18nEnumerate(ai, jsonPath, i18nBaseKey))\n .map(i =>\n this.translate.stream(i.i18nKey).pipe(\n map((i18n: string) => {\n i.i18n = i18n;\n return selectI18n(i, i18nBaseKey);\n })\n )\n )\n );\n }),\n map(i => i.join(valueSeparator))\n );\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\nimport {GetterFn} from '../models/getter.model';\n\n@Pipe({\n standalone: true,\n name: 'mngGetter',\n pure: true\n})\nexport class GetterPipe implements PipeTransform {\n transform(value: unknown, getterFn?: GetterFn, item?: unknown): any {\n if (typeof getterFn === 'function') {\n return getterFn(item, value);\n }\n\n return value;\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\nimport {IdType} from '../helpers/type-helpers';\nimport {StringUtil} from '../utils/string.util';\nimport {JsonPathPipe} from './json-path.pipe';\n\n@Pipe({\n standalone: true,\n name: 'mngParametrize',\n pure: true\n})\nexport class ParametrizePipe implements PipeTransform {\n private jsonPath = new JsonPathPipe();\n\n transform(value: unknown, itemId?: IdType, item?: any, data?: Record<string, any>): any {\n let params: any = {};\n if (data) {\n params = {\n ...params,\n ...data\n };\n }\n if (item) {\n params = {\n ...params,\n item: StringUtil.escapeHtmlAny(item)\n };\n }\n if (itemId) {\n params = {\n ...params,\n itemId: itemId\n };\n }\n\n if (typeof value === 'string') {\n return this.transformString(value, params);\n } else if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'string') {\n return value.map((s: string) => this.transformString(s, params));\n } else if (typeof value === 'object') {\n // process only first level citizens\n const obj: any = {...value};\n for (const key in obj) {\n const objProp = obj[key];\n if (typeof objProp === 'string') {\n obj[key] = this.transformString(objProp, params);\n }\n }\n return obj;\n } else {\n return value;\n }\n }\n\n private transformString(s: string, params: any) {\n if ((s.indexOf('/') >= 0 && s.indexOf(':') >= 0 && !s.startsWith('http://') && !s.startsWith('https://')) || s.startsWith(':')) {\n // this is router link\n return s\n .split('/')\n .map(s => this.parametrizeStringAsRouterLink(s, params))\n .join('/');\n } else {\n // parametrize normally\n return this.parametrizeString(s, params);\n }\n }\n\n private parametrizeStringAsRouterLink(s: string, params: any): any {\n if (s.startsWith(':')) {\n const itemProperty = s.substring(1);\n return this.jsonPath.transform(params, itemProperty) ?? '';\n } else {\n return s;\n }\n }\n\n private parametrizeString(s: string, params: any): any {\n return s.replace(/{{\\s?([^{}\\s]*)\\s?}}/g, (subs: string, key: string) => this.jsonPath.transform(params, key) ?? subs);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\nimport {ParametrizePipe} from './parametrize.pipe';\n\n@Pipe({\n standalone: true,\n name: 'template',\n pure: true\n})\nexport class TemplatePipe implements PipeTransform {\n constructor(private parametrizePipe: ParametrizePipe) {}\n\n transform(value: unknown, template?: string): any {\n if (typeof template === 'string') {\n return this.parametrizePipe.transform(template, undefined, value);\n }\n\n return value;\n }\n}\n","import 'reflect-metadata';\n\nimport {EnumType} from '../helpers/type-helpers';\nimport {LoggerService} from '../log/logger.service';\nimport {ClassType} from '../models/class-service.model';\n\nexport const reflectTypeNameKey = 'typeName';\nexport const reflectEnumNameKey = 'enumName';\n\n/**\n * Defines type name decorator.\n * @param targetType class.\n * @param typeName Name of the type.\n */\nexport function defineReflectTypeName(targetType: ClassType<any>, typeName: string) {\n if (!Reflect.hasOwnMetadata(reflectTypeNameKey, targetType)) {\n Reflect.defineMetadata(reflectTypeNameKey, typeName, targetType);\n }\n}\n\n/**\n * Defines enum name decorator.\n * @param targetType enum object.\n * @param enumName Name of the enum.\n */\nexport function defineReflectEnumName(targetType: EnumType, enumName: string) {\n if (!Reflect.hasOwnMetadata(reflectEnumNameKey, targetType)) {\n Reflect.defineMetadata(reflectEnumNameKey, enumName, targetType);\n }\n}\n\n/**\n * Gets type name from reflect metadata.\n * @param type Class.\n */\nexport function findReflectTypeName<T>(type?: ClassType<T>): string | null {\n if (!type) {\n return null;\n }\n const typeName = Reflect.getMetadata(reflectTypeNameKey, type);\n if (typeName) {\n return typeName;\n }\n LoggerService.get().debug('WARNING: Reflect metadata could not be found for type, you might experience some issues in production build.', type?.name);\n return type.name;\n}\n\n/**\n * Gets type name from either decorator or reflect metadata.\n * @param type Class.\n */\nexport function reflectTypeNameExists(type: ClassType<any>): boolean {\n return Reflect.hasOwnMetadata(reflectTypeNameKey, type);\n}\n\n/**\n * Gets enum name from either decorator or reflect metadata.\n * @param enumType Class.\n */\nexport function findReflectEnumName(enumType: EnumType): string | null {\n const enumName = Reflect.getMetadata(reflectEnumNameKey, enumType);\n if (enumName) {\n return enumName;\n }\n LoggerService.get().debug(`WARNING: Reflect metadata could not be found for enum ${typeof enumType === 'object' ? Object.keys(enumType) : enumType}`, {\n name: 'TypeUtilsError',\n enumType: enumType\n });\n return null;\n}\n","import {defineReflectEnumName, defineReflectTypeName} from './type-enum-metadata';\n\nexport function TypeName(typeName: string): ClassDecorator {\n return function (target: any) {\n defineReflectTypeName(target, typeName);\n };\n}\n\nexport function EnumName(typeName: string): ClassDecorator {\n return function (target: any) {\n defineReflectEnumName(target, typeName);\n };\n}\n","import {EnumType} from '../helpers/type-helpers';\nimport {LogLevelEnum} from '../log/log.model';\nimport {LoggerService} from '../log/logger.service';\nimport {ClassAttributeDef} from '../models/class-attribute.model';\nimport {ClassType} from '../models/class-service.model';\nimport {defineReflectEnumName, defineReflectTypeName, findReflectTypeName, reflectTypeNameExists} from '../reflect/type-enum-metadata';\nimport {RegistryEnumMap, RegistryTypeMap} from './registry.model';\n\nexport class TypeRegistry {\n private static _instance: TypeRegistry = new TypeRegistry();\n private readonly _logCategory = 'TypeRegistry';\n private readonly _typeMap: RegistryTypeMap = {};\n private readonly _enumMap: RegistryEnumMap = {};\n\n public get typeMap() {\n return this._typeMap;\n }\n\n public get enumMap() {\n return this._enumMap;\n }\n\n /**\n * Only use one instance of object (out of Angular context)\n */\n public static get(): TypeRegistry {\n return TypeRegistry._instance;\n }\n\n public findAttributeDefinitionByClassType(type: ClassType<any>, attributeName: string): ClassAttributeDef | null {\n const typeName = findReflectTypeName(type);\n return typeName ? this.findAttributeDefinition(typeName, attributeName) : null;\n }\n\n public findAttributeDefinition(typeName: string, attributeName: string): ClassAttributeDef | null {\n const attributeDefs = this.findAttributesDefinition(typeName);\n if (!attributeDefs) {\n return null;\n }\n for (const attribute of attributeDefs) {\n if (attribute.name === attributeName) {\n return attribute;\n }\n }\n return null;\n }\n\n public findAttributesDefinitionByClassType(type: ClassType<any>): Array<ClassAttributeDef> | null {\n const typeName = findReflectTypeName(type);\n return typeName ? this.findAttributesDefinition(typeName) : null;\n }\n\n public findAttributesDefinition(typeName: string): Array<ClassAttributeDef> | null {\n const typeDef = this.findType(typeName);\n if (!typeDef || typeof typeDef.getAttributeTypeMap !== 'function') {\n return null;\n }\n return typeDef.getAttributeTypeMap() as Array<ClassAttributeDef>;\n }\n\n public findByClassType(type: ClassType<any>): any {\n const typeName = findReflectTypeName(type);\n return typeName ? this.findType(typeName) : null;\n }\n\n public findType(typeName: string): any {\n return this._typeMap[typeName];\n }\n\n public findEnum(enumName: string): any {\n return this._enumMap[enumName];\n }\n\n public registerTypes(types: RegistryTypeMap) {\n for (const key in types) {\n this.registerType(types[key], key);\n }\n }\n\n public registerType(type: ClassType<any>, optTypeName?: string) {\n // try to find name from metadata\n let typeName: string | undefined;\n if (reflectTypeNameExists(type)) {\n // defined name from optional type name\n typeName = findReflectTypeName(type) ?? undefined;\n } else if (optTypeName) {\n typeName = optTypeName;\n // register metadata\n defineReflectTypeName(type, typeName);\n }\n\n if (!typeName) {\n // this._logger.debug(`WARNING: registering type ${type} failed, because typeName could not be determined and optional name was not provided.`);\n LoggerService.get().log(\n `WARNING: registering type ${type} failed, because typeName could not be determined and optional name was not provided.`,\n LogLevelEnum.Debug,\n this._logCategory\n );\n return;\n }\n if (typeof this._typeMap[typeName] !== 'undefined') {\n // this._logger.debug(`WARNING: registering type ${type} under key ${typeName} skipped, because type already exists for this key.`);\n LoggerService.get().log(\n `WARNING: registering type ${type} under key ${typeName} skipped, because type already exists for this key.`,\n LogLevelEnum.Debug,\n this._logCategory\n );\n } else {\n this._typeMap[typeName] = type;\n }\n }\n\n public registerEnums(enums: RegistryEnumMap) {\n for (const key in enums) {\n this.registerEnum(enums[key], key);\n }\n }\n\n public registerEnum(enumType: EnumType, enumName: string) {\n // try to find name from decorator\n defineReflectEnumName(enumType, enumName);\n if (typeof this._enumMap[enumName] !== 'undefined') {\n LoggerService.get().log(`Registering enum ${enumName} skipped, because enum already exists.`, LogLevelEnum.Debug, this._logCategory);\n } else {\n this._enumMap[enumName] = enumType;\n }\n }\n}\n","import {Type} from '@angular/core';\nimport {ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';\n\nimport {Observable} from 'rxjs';\n\nimport {ActionParameters} from '../action/action-parameters.model';\nimport {IDataProvider} from '../data-providers/base.data-provider';\nimport {IActionDescriptorInternal} from '../descriptors/action.descriptor';\n\nexport enum PermissionTypeEnum {\n All = 'ALL',\n Any = 'ANY',\n Rbac = 'ROLE_BASED_ACCESS_CONTROL',\n Service = 'SERVICE'\n}\n\nexport interface IActionContextValidation<Item, Service = undefined> {\n descriptor: IActionDescriptorInternal<Item, Service>;\n parameters: ActionParameters<Item>;\n serviceInstance: Service;\n dataProvider?: IDataProvider<Item, Service>;\n}\n\nexport interface IPermissionService {\n isPermitted(route?: ActivatedRouteSnapshot, routerState?: RouterStateSnapshot, actionCtx?: IActionContextValidation<any, any>): Observable<boolean>;\n}\n\nexport abstract class APermissions {\n private readonly _authorizationType: PermissionTypeEnum;\n\n constructor(type: PermissionTypeEnum) {\n this._authorizationType = type;\n }\n\n public get authorizationType() {\n return this._authorizationType;\n }\n}\n\nexport namespace Permissions {\n export class All extends APermissions {\n private _permissions: Array<APermissions> = [];\n\n private constructor() {\n super(PermissionTypeEnum.All);\n }\n\n public static of(...permissions: Array<APermissions>): All {\n const inst = new All();\n inst.and(...permissions);\n return inst;\n }\n\n public get permissions() {\n return this._permissions;\n }\n\n public and(...permissions: Array<APermissions>): this {\n this._permissions.push(...permissions);\n return this;\n }\n }\n\n export class Any extends APermissions {\n private _permissions: Array<APermissions> = [];\n\n private constructor() {\n super(PermissionTypeEnum.Any);\n }\n\n public static of(...permissions: Array<APermissions>): Any {\n const inst = new Any();\n inst.or(...permissions);\n return inst;\n }\n\n public get permissions() {\n return this._permissions;\n }\n\n public or(...permissions: Array<APermissions>): this {\n this._permissions.push(...permissions);\n return this;\n }\n }\n\n export class Roles extends APermissions {\n private _roles: Array<Array<string>> = [];\n\n private constructor() {\n super(PermissionTypeEnum.Rbac);\n }\n\n public static of(...roles: Array<string>): Roles {\n const inst = new Roles();\n inst.or(...roles);\n return inst;\n }\n\n public get roles() {\n return this._roles;\n }\n\n public and(...roles: Array<string>): this {\n if (this._roles.length === 0) {\n this._roles.push([]);\n }\n this._roles[this._roles.length - 1].push(...roles);\n return this;\n }\n\n public or(...roles: Array<string>): this {\n this._roles.push(...roles.map(s => [s]));\n return this;\n }\n }\n\n export class Service extends APermissions {\n private constructor(public readonly service: Type<IPermissionService>) {\n super(PermissionTypeEnum.Service);\n }\n\n public static of(service: Type<IPermissionService>): Service {\n return new Service(service);\n }\n }\n}\n","import {CommonsInternalError} from '../error/error.model';\nimport {APermissions, PermissionTypeEnum, Permissions} from './permissions.model';\n\nexport class PermissionUtil {\n public static isPermitted(permissions: APermissions, userRoles: Array<string>): boolean {\n switch (permissions.authorizationType) {\n case PermissionTypeEnum.Rbac:\n return PermissionUtil.isRbacPermitted(permissions as Permissions.Roles, userRoles);\n default:\n throw new CommonsInternalError(`Permission type \"${permissions.authorizationType}\" not implemented`);\n }\n }\n\n public static isRbacPermitted(permissions: Permissions.Roles, userRoles: Array<string>): boolean {\n return permissions.roles.some(prg => prg.every(pr => userRoles.indexOf(pr) > -1));\n }\n}\n","import {Injectable, Injector, inject} from '@angular/core';\nimport {ActivatedRouteSnapshot, Router} from '@angular/router';\n\nimport {Observable, combineLatest, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {LoggerService} from '../log/logger.service';\nimport {CommonsService} from '../services/commons.service';\nimport {PermissionUtil} from './permission.util';\nimport {APermissions, IActionContextValidation, PermissionTypeEnum, Permissions} from './permissions.model';\n\n@Injectable()\nexport class PermissionService {\n private readonly router = inject(Router);\n private readonly injector = inject(Injector);\n private readonly commons = inject(CommonsService);\n private readonly logger = inject(LoggerService).create('AuthorizationService');\n\n public isPermitted(permissions: APermissions, route?: ActivatedRouteSnapshot, actionCtx?: IActionContextValidation<unknown, unknown>): Observable<boolean> {\n switch (permissions.authorizationType) {\n case PermissionTypeEnum.All:\n return this.isPermittedAll(permissions as Permissions.All, route, actionCtx);\n case PermissionTypeEnum.Any:\n return this.isPermittedAny(permissions as Permissions.Any, route, actionCtx);\n case PermissionTypeEnum.Service:\n return this.isPermittedService(permissions as Permissions.Service, route, actionCtx);\n default:\n return this.commons.userRoles$.pipe(map(ur => PermissionUtil.isPermitted(permissions, ur)));\n }\n }\n\n private isPermittedAll(permission: Permissions.All, route?: ActivatedRouteSnapshot, actionCtx?: IActionContextValidation<unknown, unknown>) {\n return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.every(ip => ip === true)));\n }\n\n private isPermittedAny(permission: Permissions.Any, route?: ActivatedRouteSnapshot, actionCtx?: IActionContextValidation<unknown, unknown>) {\n return combineLatest(permission.permissions.map(p => this.isPermitted(p, route, actionCtx))).pipe(map(res => res.some(ip => ip === true)));\n }\n\n private isPermittedService(permission: Permissions.Service, route?: ActivatedRouteSnapshot, actionCtx?: IActionContextValidation<unknown, unknown>) {\n const serviceInstance = this.injector.get(permission.service);\n if (!serviceInstance) {\n this.logger.debug(`WARNING: Service instance could not be retreived for type ${permission.service}`);\n return of(false);\n }\n return serviceInstance.isPermitted(route, this.router.routerState.snapshot, actionCtx);\n }\n}\n","import {inject} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivateFn, UrlTree} from '@angular/router';\n\nimport {Observable, of} from 'rxjs';\nimport {first} from 'rxjs/operators';\n\nimport {CommonsRouteData} from '../router/router.model';\nimport {PermissionService} from './permission.service';\n\nexport const permissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree => {\n const permission = inject(PermissionService);\n\n const data = route.data as CommonsRouteData;\n\n if (data.permissions) {\n return permission.isPermitted(data.permissions).pipe(first());\n } else {\n return of(true);\n }\n};\n","import {MenuItem as PrimeMenuItem} from 'primeng/api';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {CommonsMenuItem} from '../models/menu.model';\n\nexport class RouteUtil {\n public static removeEmptyPathSegments(path: Array<string>) {\n const filteredPath = path.filter(ps => typeof ps === 'string' && ps.length > 0);\n return filteredPath.length > 0 ? filteredPath : [''];\n }\n\n public static appendPathToBasePath(basePath: Array<string>, path: Array<string>) {\n if (path.length > 0) {\n if (path[0].startsWith('/')) {\n return path;\n } else if (path[0].startsWith('../')) {\n throw new CommonsInternalError('Not implemented', {name: 'RouteUtilsError'});\n } else {\n return RouteUtil.removeEmptyPathSegments([...basePath, ...path]);\n }\n } else {\n return basePath;\n }\n }\n\n public static doesUrlMatchRouterLink(link: Array<string> | string, url: Array<string> | string) {\n if (typeof url === 'string' && url.startsWith('/')) {\n url = url.substring(1);\n } else if (Array.isArray(url) && url.length > 0 && url[0].startsWith('/')) {\n url[0] = url[0].substring(1);\n }\n\n const routeSegments = Array.isArray(link) ? link : link.split('/');\n const urlSegments = Array.isArray(url) ? url : url.split('#')[0].split('?')[0].split('/');\n\n if (routeSegments.length > 0 && urlSegments.length > 0) {\n for (let i = 0; i < routeSegments.length; i++) {\n if (i < urlSegments.length) {\n if (routeSegments[i] !== urlSegments[i]) {\n return false;\n }\n } else {\n break;\n }\n }\n return true;\n }\n return false;\n }\n\n public static adjustMenuLazyChildrenRouterLinks(rootMenuItem: PrimeMenuItem, lazyChildren: Array<CommonsMenuItem>) {\n return lazyChildren.map(i => {\n const childMenuItem = {...i};\n if (childMenuItem.routerLink) {\n childMenuItem.routerLink = RouteUtil.appendPathToBasePath(\n rootMenuItem.routerLink,\n typeof childMenuItem.routerLink === 'string' ? [childMenuItem.routerLink] : childMenuItem.routerLink\n );\n }\n if (Array.isArray(childMenuItem.items)) {\n childMenuItem.items = this.adjustMenuLazyChildrenRouterLinks(rootMenuItem, childMenuItem.items);\n }\n return childMenuItem;\n });\n }\n}\n","import {EnvironmentProviders, Provider, Type} from '@angular/core';\nimport {CanActivateFn, CanDeactivateFn, DefaultExport, LoadChildren, ResolveFn, Route} from '@angular/router';\n\nimport {Observable} from 'rxjs';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {CommonsMenuItem} from '../models/menu.model';\nimport {permissionGuard} from '../security/permission.guard';\nimport {APermissions} from '../security/permissions.model';\nimport {RouteUtil} from '../utils/route.util';\nimport {BreadcrumbType, CommonsRouteData} from './router.model';\nimport {RoutesBuilder} from './routes-builder';\n\nexport class RouteBuilder {\n protected readonly route: Route;\n private routePath: Array<string> = [];\n protected routeData: CommonsRouteData = {breadcrumb: null};\n private root?: RoutesBuilder;\n private parent?: RouteBuilder;\n private children: Array<RouteBuilder> = [];\n\n private menuItem?: CommonsMenuItem;\n private menuItemChildren: Array<CommonsMenuItem> = [];\n private menuItemChildrenAfter: Array<CommonsMenuItem> = []; // append after route children\n\n private breadcrumb?: BreadcrumbType;\n private pageTitle?: string;\n\n private permissions?: APermissions;\n\n protected constructor(route: Route) {\n this.route = route;\n if (this.route.path && this.route.path.length > 0) {\n this.routePath = [this.route.path];\n }\n }\n\n public static create(path: string, component: Type<any>): RouteBuilder {\n return new RouteBuilder({\n path: path,\n component: component\n });\n }\n\n public static createRedirect(path: string, redirectTo: string, pathMatch: 'full' | 'prefix' = 'prefix'): RouteBuilder {\n return new RouteBuilder({\n path: path,\n redirectTo: redirectTo,\n pathMatch: pathMatch\n });\n }\n\n public static createLazyRouteModule(path: string, loadChildren: LoadChildren, canMatch?: Array<any>): RouteBuilder {\n const route: Route = {path: path, loadChildren: loadChildren};\n if (canMatch?.length) {\n route.canMatch = canMatch;\n }\n return new RouteBuilder(route);\n }\n\n public static createLazyRouteComponent(\n path: string,\n loadComponent: () => Type<unknown> | Observable<Type<unknown> | DefaultExport<Type<unknown>>> | Promise<Type<unknown> | DefaultExport<Type<unknown>>>,\n canMatch?: Array<any>\n ): RouteBuilder {\n const route: Route = {path: path, loadComponent: loadComponent};\n if (canMatch?.length) {\n route.canMatch = canMatch;\n }\n return new RouteBuilder(route);\n }\n\n public static createFromRoute(route: Route): RouteBuilder {\n return new RouteBuilder(route);\n }\n\n public withRoot(routesBuilder: RoutesBuilder): this {\n this.root = routesBuilder;\n return this;\n }\n\n public withParent(parent: RouteBuilder): this {\n this.parent = parent;\n this.routePath = RouteUtil.removeEmptyPathSegments([...this.parent.routePath, this.route.path ?? '']);\n return this;\n }\n\n public withBreadcrumb(breadcrumb: BreadcrumbType): this {\n this.breadcrumb = breadcrumb;\n this.routeData.breadcrumb = breadcrumb;\n return this;\n }\n\n public withPageTitle(pageTitle: string): this {\n this.pageTitle = pageTitle;\n this.routeData.pageTitle = pageTitle;\n return this;\n }\n\n public withRedirectTo(redirectTo: string): this {\n this.route.redirectTo = redirectTo;\n return this;\n }\n\n public withPathMatch(pathMatch: 'full' | 'prefix'): this {\n this.route.pathMatch = pathMatch;\n return this;\n }\n\n public withTitle(title: string): this {\n this.withPageTitle(title);\n this.withBreadcrumb(title);\n return this;\n }\n\n public withCanActivate(diToken: CanActivateFn): this {\n if (!this.route.canActivate) {\n this.route.canActivate = [];\n }\n this.route.canActivate.push(diToken);\n return this;\n }\n\n public withCanDeactivate(diToken: CanDeactivateFn<any>): this {\n if (!this.route.canDeactivate) {\n this.route.canDeactivate = [];\n }\n this.route.canDeactivate.push(diToken);\n return this;\n }\n\n public withResolver(diToken: ResolveFn<any>, name: string): this {\n if (!this.route.resolve) {\n this.route.resolve = {};\n }\n this.route.resolve[name] = diToken;\n return this;\n }\n\n public withProvider(provider: Provider | EnvironmentProviders): this {\n if (!this.route.providers) {\n this.route.providers = [];\n }\n this.route.providers.push(provider);\n return this;\n }\n\n public withData(data: CommonsRouteData): this {\n if (!data.breadcrumb) {\n data.breadcrumb = null;\n }\n this.routeData = data;\n return this;\n }\n\n public withCommonsMenuItem(menuItem: CommonsMenuItem): this {\n this.menuItem = menuItem;\n return this;\n }\n\n public withMenuItem(icon?: string, label?: string, routerLink?: Array<string>, breadcrumb = false): this {\n this.menuItem = this.createMenuItem(icon, label, routerLink);\n if (breadcrumb && label) {\n this.withBreadcrumb({\n label: label\n });\n }\n return this;\n }\n\n /**\n * Adds menu item child to this instance of menu item.\n * @param label Label.\n * @param icon Icon.\n * @param routerLink Router link.\n * @param afterRouteChildren If false, menu item child will be appended before route children menu items, at the end otherwise.\n */\n public withMenuItemChild(label: string, icon?: string, routerLink?: Array<string>, afterRouteChildren = false): this {\n if (afterRouteChildren) {\n this.menuItemChildrenAfter.push(this.createMenuItem(icon, label, routerLink));\n } else {\n this.menuItemChildren.push(this.createMenuItem(icon, label, routerLink));\n }\n return this;\n }\n\n /**\n * Adds menu item child to this instance of menu item.\n * @param menuItem Configuration object for menu item.\n * @param afterRouteChildren If false, menu item child will be appended before route children menu items, at the end otherwise.\n */\n public withCommonsMenuItemChild(menuItem: CommonsMenuItem, afterRouteChildren = false): this {\n if (afterRouteChildren) {\n this.menuItemChildrenAfter.push(menuItem);\n } else {\n this.menuItemChildren.push(menuItem);\n }\n return this;\n }\n\n public withMenuItemLazyChildren(): this {\n if (!this.menuItem) {\n this.menuItem = {};\n }\n this.menuItem.lazyChildren = true;\n return this;\n }\n\n public withPermissions(permissions: APermissions): this {\n this.permissions = permissions;\n this.withCanActivate(permissionGuard);\n return this;\n }\n\n public addChild(path: string, component: Type<any>): RouteBuilder {\n const childRouteBuilder = RouteBuilder.create(path, component);\n this.addChildBuilder(childRouteBuilder);\n return childRouteBuilder;\n }\n\n public addChildBuilder(builder: RouteBuilder): this {\n builder.withParent(this);\n if (this.root) {\n builder.withRoot(this.root);\n }\n this.children.push(builder);\n return this;\n }\n\n public toParent(): RouteBuilder {\n if (!this.parent) {\n throw new CommonsInternalError('Parent was not provided.', {name: 'RouteBuilder error'});\n }\n return this.parent;\n }\n\n public toRoot(): RoutesBuilder {\n if (!this.root) {\n throw new CommonsInternalError('Root was not provided.', {name: 'RouteBuilderError'});\n }\n return this.root;\n }\n\n public finish(): RoutesBuilder {\n return this.toRoot();\n }\n\n public build(): Route {\n const angularRoute: Route = {\n ...this.route\n };\n\n if (angularRoute.data) {\n angularRoute.data = {\n ...angularRoute.data,\n ...this.routeData\n };\n } else {\n angularRoute.data = {...this.routeData};\n }\n\n // append permissions if not already in route data\n if (this.permissions && !(angularRoute.data as CommonsRouteData).permissions) {\n (angularRoute.data as CommonsRouteData).permissions = this.permissions;\n }\n\n const menu = this.buildMenu();\n if (menu.length > 0) {\n (angularRoute.data as CommonsRouteData).menuItems = menu;\n }\n\n if ((this.route.children?.length ?? 0) > 0 || this.children.length > 0) {\n // route has children\n angularRoute.children = [];\n if (this.route.children?.length) {\n angularRoute.children.push(...this.route.children);\n }\n if (this.children.length) {\n for (const childRoute of this.children) {\n angularRoute.children.push(childRoute.build());\n }\n }\n }\n\n if (this.route.canActivate) {\n angularRoute.canActivate = [...this.route.canActivate];\n }\n if (this.route.canActivateChild) {\n angularRoute.canActivateChild = [...this.route.canActivateChild];\n }\n if (this.route.canLoad) {\n angularRoute.canLoad = [...this.route.canLoad];\n }\n if (this.route.canDeactivate) {\n angularRoute.canDeactivate = [...this.route.canDeactivate];\n }\n if (this.route.resolve) {\n angularRoute.resolve = {...this.route.resolve};\n }\n\n return angularRoute;\n }\n\n private buildMenu(): Array<CommonsMenuItem> {\n const menuItemBuild: CommonsMenuItem | null = this.menuItem ? {...this.menuItem} : null;\n const routeChildrenMenuItems: Array<CommonsMenuItem> = this.children.flatMap(child => child.buildMenu());\n const menuItemChildren: Array<CommonsMenuItem> = [];\n const menuItemChildrenBuild: Array<CommonsMenuItem> = [];\n\n if (menuItemBuild?.items) {\n menuItemChildrenBuild.push(...menuItemBuild.items);\n }\n\n const processMenuItemChild = (child: CommonsMenuItem): CommonsMenuItem => {\n const finalChild: CommonsMenuItem = {...child};\n if (typeof finalChild.routerLink === 'undefined') {\n finalChild.routerLink = this.routePath;\n }\n if (typeof finalChild.routerLink === 'string') {\n finalChild.routerLink = [finalChild.routerLink];\n }\n if (finalChild.routerLink) {\n finalChild.routerLink = RouteUtil.removeEmptyPathSegments(finalChild.routerLink);\n }\n return finalChild;\n };\n\n this.menuItemChildren.forEach(child => menuItemChildren.push(processMenuItemChild(child)));\n\n const menuItemChildrenAfterBuild: Array<CommonsMenuItem> = this.menuItemChildrenAfter.map(child => processMenuItemChild(child));\n\n menuItemChildrenBuild.push(...menuItemChildren, ...routeChildrenMenuItems, ...menuItemChildrenAfterBuild);\n\n if (!menuItemBuild) {\n return menuItemChildrenBuild;\n }\n\n menuItemBuild.label = menuItemBuild.label ?? this.pageTitle;\n if (typeof menuItemBuild.routerLink === 'string') {\n menuItemBuild.routerLink = [menuItemBuild.routerLink];\n }\n menuItemBuild.routerLink = RouteUtil.removeEmptyPathSegments(menuItemBuild.routerLink ?? this.routePath);\n if (menuItemChildrenBuild.length > 0) {\n menuItemBuild.items = menuItemChildrenBuild;\n }\n\n if (!menuItemBuild.guards) {\n const guards = this.findMenuItemGuards();\n if (guards.length > 0) {\n menuItemBuild.guards = guards;\n }\n }\n\n if (!menuItemBuild.permissions) {\n menuItemBuild.permissions = this.findMenuItemPermissions();\n }\n\n return [menuItemBuild];\n }\n\n private createMenuItem(icon?: string, label?: string, routerLink?: Array<string>) {\n const menuItem: CommonsMenuItem = {};\n if (icon) {\n menuItem.icon = icon;\n }\n if (label) {\n menuItem.label = label;\n }\n if (routerLink) {\n menuItem.routerLink = routerLink;\n }\n return menuItem;\n }\n\n private findMenuItemGuards(): Array<any> {\n const guards: Array<any> = [];\n if (this.route.canActivate?.length) {\n guards.push(...this.route.canActivate);\n }\n if (this.parent) {\n // Check for parent guards that should be included in decision to hide menu item!\n // Some parent routes might have guards, but no menu items, so this guards must be taken into account here,\n // because there is no parent menu item to hide.\n this.parent.findMenuItemGuards().forEach(g => {\n if (guards.indexOf(g) < 0) {\n guards.push(g);\n }\n });\n }\n return guards;\n }\n\n protected findMenuItemPermissions() {\n if (this.menuItem?.permissions) {\n return this.menuItem.permissions;\n }\n if (this.routeData.permissions) {\n // this is already built\n return this.routeData.permissions;\n }\n if (this.permissions) {\n return this.permissions;\n }\n return undefined;\n }\n}\n","import {Type} from '@angular/core';\nimport {DefaultExport, LoadChildren, Route, Routes} from '@angular/router';\n\nimport {Observable} from 'rxjs';\n\nimport {CommonsInternalError} from '../error/error.model';\nimport {RouteBuilder} from './route-builder';\n\nexport class RoutesBuilder {\n private readonly layoutRoute?: RouteBuilder;\n private routes: Array<RouteBuilder> = [];\n private currentRoute?: RouteBuilder;\n\n private constructor(layoutRoute?: RouteBuilder) {\n this.layoutRoute = layoutRoute?.withRoot(this);\n this.currentRoute = layoutRoute;\n }\n\n public static create(): RoutesBuilder {\n return new RoutesBuilder();\n }\n\n public addAngularRoute(route: Route): this {\n return this.addRouteBuilder(RouteBuilder.createFromRoute(route));\n }\n\n public addRouteRedirect(path: string, redirectTo: string, pathMatch: 'full' | 'prefix' = 'prefix'): this {\n return this.addRouteBuilder(RouteBuilder.createRedirect(path, redirectTo, pathMatch));\n }\n\n public addLazyRouteComponent(\n path: string,\n loadComponent: () => Type<unknown> | Observable<Type<unknown> | DefaultExport<Type<unknown>>> | Promise<Type<unknown> | DefaultExport<Type<unknown>>>,\n canMatch?: Array<any>\n ): this {\n return this.addRouteBuilder(RouteBuilder.createLazyRouteComponent(path, loadComponent, canMatch));\n }\n\n public addLazyRouteModule(path: string, loadChildren: LoadChildren, canMatch?: Array<any>): this {\n return this.addRouteBuilder(RouteBuilder.createLazyRouteModule(path, loadChildren, canMatch));\n }\n\n public addRoute(path: string, component: Type<any>): this {\n return this.addRouteBuilder(RouteBuilder.create(path, component));\n }\n\n public addRouteBuilder(routeBuilder: RouteBuilder): this {\n this.currentRoute = routeBuilder.withRoot(this);\n this.routes.push(routeBuilder);\n return this;\n }\n\n public toRoute(): RouteBuilder {\n if (!this.currentRoute) {\n throw new CommonsInternalError('No routes were added!', {name: 'RoutesBuilderError'});\n }\n return this.currentRoute;\n }\n\n public build(): Routes {\n let angularRoutes: Routes = [];\n for (const route of this.routes) {\n angularRoutes.push(route.build());\n }\n\n if (this.layoutRoute) {\n const layoutAngularRoute = this.layoutRoute.build();\n if (angularRoutes.length > 0) {\n layoutAngularRoute.children = angularRoutes;\n }\n angularRoutes = [layoutAngularRoute];\n }\n\n return angularRoutes;\n }\n}\n","import {Observable, OperatorFunction} from 'rxjs';\n\nimport {DataListResult} from '../data-list/data-list.model';\n\n/**\n * Maps an Observable of data with optional totalCount and data to a data list result object with provided defaults of empty array and count 0.\n */\nexport function mapToDataList<Item>(): OperatorFunction<{data?: Item[]; totalCount?: number}, DataListResult<Item>> {\n return function <Item>(source: Observable<{data?: Item[]; totalCount?: number}>): Observable<DataListResult<Item>> {\n return new Observable(subscriber => {\n return source.subscribe({\n next(value) {\n subscriber.next({\n data: value.data ?? [],\n totalCount: value.totalCount ?? value.data?.length ?? 0\n });\n }\n });\n });\n };\n}\n","import {HttpBackend} from '@angular/common/http';\n\nimport {Observable} from 'rxjs';\n\nimport {CommonsInitService} from '../commons-init.service';\n\nexport function commonsInitializerProvider(handler: HttpBackend, commonsInit: CommonsInitService): () => Observable<void> {\n return () => commonsInit.initialize(handler);\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {Observable} from 'rxjs';\n\nexport const COMMONS_INITIALIZER_IT = new InjectionToken<ReadonlyArray<() => Observable<unknown>>>('COMMONS_INIZIALIZER');\n","import {InjectionToken} from '@angular/core';\n\nimport {ILogPublisher} from '../../log/log.model';\n\nexport const LOG_PUBLISHERS = new InjectionToken<ILogPublisher[]>('LOG_PUBLISHERS');\n","import {HttpClient, HttpErrorResponse} from '@angular/common/http';\n\nimport {Observable, combineLatest, of, tap} from 'rxjs';\nimport {catchError, map} from 'rxjs/operators';\n\nimport {ILoggerService} from '../log/log.model';\nimport {ObjectUtil} from '../utils/object.util';\nimport {CommonsModuleConfig} from './tokens/module-config.token';\n\nexport class CommonsConfigurationService {\n private static _instance: CommonsConfigurationService = new CommonsConfigurationService();\n\n public static get(): CommonsConfigurationService {\n return CommonsConfigurationService._instance;\n }\n\n private logger?: ILoggerService;\n\n private http?: HttpClient;\n private moduleConfig?: CommonsModuleConfig;\n private projectEnvironment?: any;\n private jsonSources: Array<JsonSourceLoadInfo> = [];\n private objectSources: Array<any> = [];\n\n private configuration = {...this.projectEnvironment};\n\n private constructor() {\n // empty, but needed for private constructor\n }\n\n public init(httpClient: HttpClient, logger?: ILoggerService): this {\n this.http = httpClient;\n this.logger = logger?.create('ConfigurationService');\n return this;\n }\n\n /**\n * Add commons module config.\n * @param config Module config.\n */\n public addModuleConfigSource(config?: CommonsModuleConfig): void {\n this.moduleConfig = config;\n this.mergeConfigs();\n this.logger?.debug(`Module configuration source added.`);\n }\n\n /**\n * Add project environment source.\n * @param environment Environment.\n */\n public addEnvironmentSource(environment: any): void {\n this.projectEnvironment = environment;\n this.mergeConfigs();\n this.logger?.debug(`Environment configuration source added.`);\n }\n\n /**\n * Adds new config source from JSON file loaded from HTTP.\n * @param config Config for JSON file.\n * @param loadImmediately Load is by default triggered on app initialization. If immediate load is required, pass true.\n */\n public addJsonSource(config: {url?: string; enableEnvProd?: boolean} = {}, loadImmediately = false): Observable<boolean> {\n if (!config) {\n config = {};\n }\n const url = config?.url ?? 'assets/config/env{{environment}}.json';\n const enableEnvProdReplace = config?.enableEnvProd ?? false;\n\n const sourceInfo: JsonSourceLoadInfo = {\n url: url,\n isEnvironment: false,\n environmentEnableEnvProd: enableEnvProdReplace,\n isLoaded: false\n };\n this.jsonSources.push(sourceInfo);\n\n this.logger?.debug(`JSON configuration source added: ${url}.`);\n\n if (loadImmediately) {\n return this.loadJsonConfigurations();\n } else {\n return of(true);\n }\n }\n\n /**\n * Adds new config object from any object.\n * @param config Config object.\n */\n public addObjectSource(config: any): void {\n this.objectSources.push(config);\n this.logger?.debug(`Object configuration source added.`);\n this.mergeConfigs();\n }\n\n /**\n * returns true if there is no jsonSources\n */\n private skipJsonConfigsLoading = () => this.jsonSources === null || this.jsonSources.length === 0;\n\n /**\n * loads json sources or skips them returning true in both cases\n * used for `skipJsonSourceInit` configuration parameter\n */\n public loadJsonConfigurations = (): Observable<boolean> => (this.skipJsonConfigsLoading() ? of(true) : this.loadJsonSources());\n\n private loadJsonSources(): Observable<boolean> {\n if (!this.http) {\n this.logger?.warn('HTTP client was not initialized. Json source cannot be loaded');\n return of(false);\n }\n\n const httpClient = this.http;\n\n return combineLatest(\n this.jsonSources\n .filter(source => !source.isLoaded)\n .map(sourceInfo => {\n let url = sourceInfo.url;\n sourceInfo.environment = this.projectEnvironment?.name || (this.projectEnvironment?.production ? (sourceInfo.environmentEnableEnvProd ? 'prod' : null) : 'dev');\n sourceInfo.isEnvironment = !!sourceInfo.environment;\n\n if (sourceInfo.isEnvironment) {\n url = url.replace('{{environment}}', '.' + sourceInfo.environment);\n } else {\n // replace possible environment entry and change source info url\n url = url.replace('{{environment}}', '');\n sourceInfo.url = url;\n }\n\n this.logger?.debug(`Loading JSON configuration source from ${url}.`);\n\n return httpClient.get<object>(url).pipe(\n catchError((err: HttpErrorResponse) => {\n if (sourceInfo.isEnvironment) {\n const noEnvUrl = sourceInfo.url.replace('{{environment}}', '');\n sourceInfo.environment = null;\n return httpClient.get<object>(noEnvUrl);\n } else {\n this.logger?.warn(`Configuration file ${url} not loaded`, err);\n\n return of(false);\n }\n }),\n map(configuration => {\n if (typeof configuration !== 'object') {\n return false;\n }\n\n sourceInfo.configuration = configuration;\n sourceInfo.isLoaded = true;\n\n return true;\n })\n );\n })\n ).pipe(\n map(sourceResults => sourceResults.every(sr => sr)),\n tap(() => this.mergeConfigs())\n );\n }\n\n /**\n * Get configuration.\n */\n public getConfig() {\n return this.configuration;\n }\n\n /**\n * Get configuration value for key.\n * @param key Configuration key.\n */\n public getConfigValue<T = any>(key: string): T | null {\n return this.configuration[key] ? this.configuration[key] : null;\n }\n\n /**\n * Has configuration for key.\n * @param key Configuration key.\n */\n public hasConfigKey(key: string): boolean {\n return Object.keys(this.configuration).some(k => k === key);\n }\n\n /**\n * Merges configuration from multiple sources with\n */\n private mergeConfigs() {\n let config = {};\n\n // 1. object sources have highest priority\n if (this.objectSources.length) {\n for (const objConfig of this.objectSources) {\n config = ObjectUtil.deepMerge(config, objConfig);\n }\n }\n\n // 2. JSON sources come next\n const jsonConfigs = this.jsonSources.filter(source => source.isLoaded && typeof source.configuration === 'object').map(source => source.configuration);\n if (jsonConfigs.length) {\n for (const jsonConfig of jsonConfigs) {\n if (jsonConfig) {\n config = ObjectUtil.deepMerge(config, jsonConfig);\n }\n }\n }\n\n // 3. project env has the next priority\n if (this.projectEnvironment) {\n config = ObjectUtil.deepMerge(config, this.projectEnvironment);\n }\n\n // 4. module config has the lowest priority\n if (this.moduleConfig) {\n config = ObjectUtil.deepMerge(config, this.moduleConfig);\n }\n\n this.configuration = config;\n }\n}\n\ninterface JsonSourceLoadInfo {\n url: string;\n isLoaded: boolean;\n isEnvironment: boolean;\n environment?: string | null;\n environmentEnableEnvProd?: boolean;\n configuration?: object;\n}\n","import {Injectable, inject} from '@angular/core';\nimport {NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Route, RouteConfigLoadEnd, RouteConfigLoadStart, Router, Routes} from '@angular/router';\n\nimport {Observable, ReplaySubject, Subject} from 'rxjs';\nimport {first} from 'rxjs/operators';\n\nimport {LoggerService} from '../log/logger.service';\n\n@Injectable()\nexport class CommonsRouterService {\n private readonly logger = inject(LoggerService).create('CommonsRouterService');\n private readonly routesLoadedPropKey = '_loadedRoutes';\n\n private currentNavigationPath?: string;\n private currentNavigationModuleKeys: string[] = [];\n\n private lazyLoadedRoutesConfig: {\n [path: string]: {\n route?: Route;\n isLoadEnd: boolean;\n loadedRoutes?: Routes;\n loadedRoutesSubject: Subject<Routes>;\n };\n } = {};\n\n constructor(private router: Router) {}\n\n public getRouteLoadedChildren(path: string | Array<string>): Routes | undefined {\n return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutes;\n }\n\n public getRouteLoadedChildren$(path: string | Array<string>): Observable<Routes> {\n return this.getOrCreateRouteForModule(this.getModulePathFromRouterLink(path)).loadedRoutesSubject.asObservable().pipe(first());\n }\n\n public initialize() {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.startNavigation(event.url);\n } else if (event instanceof RouteConfigLoadStart) {\n this.markNavigationConfigLoad(event.route);\n } else if (event instanceof RouteConfigLoadEnd) {\n this.markNavigationConfigLoad(event.route, true);\n } else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\n this.finishNavigation();\n }\n });\n }\n\n private startNavigation(url: string) {\n this.currentNavigationPath = url.split('?')[0].split('#')[0];\n this.currentNavigationModuleKeys = [];\n }\n\n private finishNavigation() {\n if (this.currentNavigationModuleKeys.length) {\n this.currentNavigationModuleKeys.forEach(k => this.getLoadedRoutesFromRoute(k, true));\n }\n this.currentNavigationPath = undefined;\n }\n\n private markNavigationConfigLoad(route: Route, isEnd = false) {\n const routePath = route.path ?? '';\n\n let moduleKey = routePath;\n const currentNavigationPathRoutePathIdx = this.currentNavigationPath?.indexOf(routePath) ?? -1;\n if (this.currentNavigationPath && currentNavigationPathRoutePathIdx >= 0) {\n moduleKey = this.currentNavigationPath.substring(0, currentNavigationPathRoutePathIdx + routePath.length);\n } else if (this.currentNavigationPath && routePath !== this.currentNavigationPath && !routePath.startsWith('/')) {\n // usually means that redirect to currentNavigationPath was done, additionally, route path was also triggered on lazy routes load\n moduleKey = `${this.currentNavigationPath}/${routePath}`;\n }\n\n if (!isEnd && this.currentNavigationModuleKeys.indexOf(moduleKey) < 0) {\n this.currentNavigationModuleKeys.push(moduleKey);\n }\n\n this.logger.trace(`Config load ${isEnd ? 'end' : 'start'} for ${moduleKey} (routePath: ${routePath}; navigationUrl: ${this.currentNavigationPath})`);\n\n const config = this.getOrCreateRouteForModule(moduleKey);\n config.route = route;\n config.isLoadEnd = isEnd;\n\n if (isEnd) {\n this.getLoadedRoutesFromRoute(moduleKey);\n }\n }\n\n private getLoadedRoutesFromRoute(moduleKey: string, isFinish = false) {\n const moduleConfig = this.lazyLoadedRoutesConfig[moduleKey];\n if (!moduleConfig?.route || Array.isArray(moduleConfig.loadedRoutes)) {\n return;\n }\n\n moduleConfig.loadedRoutes = moduleConfig.route![this.routesLoadedPropKey as keyof object];\n\n if (!Array.isArray(moduleConfig.loadedRoutes) && isFinish) {\n // if is called from finish and no lazy loaded routes are matched from router events, try finding in route config, it should be there!\n this.logger.trace(`Route loadedRoutes for ${moduleKey} not found, searching in router config now`);\n const route = this.findRouteInRouteConfig(moduleKey);\n if (route) {\n moduleConfig.route = route;\n moduleConfig.loadedRoutes = moduleConfig.route![this.routesLoadedPropKey as keyof object];\n } else {\n this.logger.warn(`Route loadedRoutes for ${moduleKey} were not found in router config`);\n }\n }\n\n if (typeof moduleConfig.loadedRoutes !== 'undefined') {\n moduleConfig.loadedRoutesSubject.next(moduleConfig.loadedRoutes!);\n moduleConfig.loadedRoutesSubject.complete();\n\n this.logger.trace(`Config load for ${moduleKey} is complete`, moduleConfig);\n }\n }\n\n /**\n * Search for route config by module path by recursive scanning of router config tree.\n * @param modulePath Path of module that is searched.\n * @param routes Routes to be scanned. If not provided, it starts on root router config.\n * @private\n */\n private findRouteInRouteConfig(modulePath: string, routes: Routes = this.router.config): Route | null {\n if (modulePath.startsWith('/')) {\n modulePath = modulePath.substring(1);\n }\n\n for (const route of routes) {\n if (typeof route.path === 'undefined') {\n continue;\n }\n let routePath = route.path;\n if (routePath.startsWith('/')) {\n routePath = routePath.substring(1);\n }\n\n const longestPathMatch = this.findLongestPathMatch(modulePath, routePath);\n if (longestPathMatch === null) {\n continue;\n }\n\n // there is a partial or full match\n if (route.loadChildren && modulePath === longestPathMatch) {\n // it's a hit!\n return route;\n } else if (route.loadChildren && Array.isArray(route[this.routesLoadedPropKey as keyof object])) {\n const result = this.findRouteInRouteConfig(modulePath.substring(longestPathMatch.length, modulePath.length), route[this.routesLoadedPropKey as keyof object]);\n if (result) {\n return result;\n }\n } else if (route.children) {\n const result = this.findRouteInRouteConfig(modulePath.substring(longestPathMatch.length, modulePath.length), route.children);\n if (result) {\n return result;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Finds longest path match of source to match string. If match is '', it is considered as a match in Angular routing.\n * @param source Source string from on which comparison is based.\n * @param match Match string to which the source is matched to.\n * @private\n */\n private findLongestPathMatch(source: string, match: string): string | null {\n const sourceSegments = source.split('/');\n const matchSegments = match.split('/');\n\n if (matchSegments.length === 1 && matchSegments[0] === '') {\n // it's a hit, because empty route must always be processed (kind of a \"abstract\" route)\n return '';\n }\n\n if (sourceSegments[0] === matchSegments[0]) {\n // there is a match, find how long it is\n for (let i = 1; i < sourceSegments.length; i++) {\n if (sourceSegments[i] !== matchSegments[i]) {\n // end of match\n return sourceSegments.slice(0, i).join('/');\n }\n }\n\n // there is full match\n return sourceSegments.join('/');\n }\n\n return null;\n }\n\n private getOrCreateRouteForModule(moduleKey: string) {\n if (!this.lazyLoadedRoutesConfig[moduleKey]) {\n this.lazyLoadedRoutesConfig[moduleKey] = {\n loadedRoutesSubject: new ReplaySubject<Routes>(1),\n isLoadEnd: false\n };\n }\n\n return this.lazyLoadedRoutesConfig[moduleKey];\n }\n\n private getModulePathFromRouterLink(path: string | Array<string>) {\n return ('/' + (Array.isArray(path) ? path.join('/') : path)).replace(/\\/\\//g, '/');\n }\n}\n","import {HttpBackend, HttpClient} from '@angular/common/http';\nimport {Injectable, inject} from '@angular/core';\n\nimport {Observable, ReplaySubject, Subject, combineLatest, mergeMap, of, take, throwError} from 'rxjs';\nimport {catchError, map} from 'rxjs/operators';\n\nimport {LoggerService} from '../log/logger.service';\nimport {CommonsConfigurationService} from './commons-configuration.service';\nimport {CommonsRouterService} from './commons-router.service';\nimport {CommonsService} from './commons.service';\nimport {COMMONS_INITIALIZER_IT} from './tokens/commons-init.token';\nimport {LOG_PUBLISHERS} from './tokens/log-publisher.token';\nimport {COMMONS_MODULE_CONFIG_IT} from './tokens/module-config.token';\n\nexport enum CommonsInitEventEnum {\n CommonsInitStart,\n ConfigSourceModuleLoaded,\n ConfigSourceProjectEnvLoaded,\n ConfigSourceJsonAdded,\n ConfigSourceJsonLoaded,\n CommonsInitEnd,\n CommonsInitError\n}\n\n@Injectable()\nexport class CommonsInitService {\n private readonly logger = inject(LoggerService);\n private readonly logPublishers = inject(LOG_PUBLISHERS, {optional: true});\n private readonly config = inject(CommonsConfigurationService);\n private readonly commons = inject(CommonsService);\n private readonly commonsRouter = inject(CommonsRouterService);\n private readonly moduleConfig = inject(COMMONS_MODULE_CONFIG_IT, {optional: true});\n private readonly commonsInitializers = inject(COMMONS_INITIALIZER_IT, {optional: true});\n\n private isInitialized = false;\n\n private httpClient!: HttpClient;\n\n private isInitializedSubject = new ReplaySubject<boolean>();\n private commonsInitServiceEvents = new Subject<CommonsInitEventEnum>();\n\n public get events$(): Observable<CommonsInitEventEnum> {\n return this.commonsInitServiceEvents.asObservable();\n }\n\n public get isInitialized$(): Observable<boolean> {\n return this.isInitializedSubject.asObservable().pipe(take(1));\n }\n\n public initialize(handler: HttpBackend): Observable<void> {\n if (this.isInitialized) {\n return of(void 0);\n }\n this.isInitialized = true;\n\n LoggerService.configure({timestampFormat: this.moduleConfig?.log?.timestampFormat});\n\n const ctxLogger = this.logger.create('CommonsInitService');\n ctxLogger.debug('Commons initialization is starting');\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.CommonsInitStart);\n\n // init http client\n this.httpClient = new HttpClient(handler);\n\n // init router\n this.commonsRouter.initialize();\n\n // init configurations with settings from module config\n this.config.init(this.httpClient, this.logger);\n this.config.addModuleConfigSource(this.moduleConfig ?? undefined);\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.ConfigSourceModuleLoaded);\n if (this.moduleConfig?.configuration?.projectEnvironment) {\n this.config.addEnvironmentSource(this.moduleConfig.configuration.projectEnvironment);\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.ConfigSourceProjectEnvLoaded);\n }\n\n // init configurations with settings from module config for json source\n if (!(this.moduleConfig?.configuration?.skipJsonSourceInit ?? false)) {\n const jsonSourceEnableEnvProd = this.moduleConfig?.configuration?.jsonSourceEnableEnvProd ?? false;\n const jsonSource = this.moduleConfig?.configuration?.jsonSource;\n if (!jsonSource) {\n this.config.addJsonSource({enableEnvProd: jsonSourceEnableEnvProd});\n } else if (Array.isArray(jsonSource)) {\n jsonSource.forEach(source => this.config.addJsonSource({url: source, enableEnvProd: jsonSourceEnableEnvProd}));\n } else {\n this.config.addJsonSource({url: jsonSource, enableEnvProd: jsonSourceEnableEnvProd});\n }\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.ConfigSourceJsonAdded);\n }\n\n return this.config.loadJsonConfigurations().pipe(\n mergeMap(() => {\n if (!(this.moduleConfig?.configuration?.skipJsonSourceInit ?? false)) {\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.ConfigSourceJsonLoaded);\n }\n // init logger\n LoggerService.init(this.config, this.logPublishers ?? []);\n\n if (this.commonsInitializers) {\n ctxLogger.debug('Project initializers are being initialized');\n return combineLatest(this.commonsInitializers.map(ci => ci())).pipe(map(res => res));\n } else {\n return of(true);\n }\n }),\n map(() => {\n ctxLogger.debug('Commons initialization is finished');\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.CommonsInitEnd);\n this.commonsInitServiceEvents.complete();\n this.isInitializedSubject.next(true);\n return this.commons.reset();\n }),\n catchError(err => {\n ctxLogger.warn('Commons initialization failed with error', err);\n this.commonsInitServiceEvents.next(CommonsInitEventEnum.CommonsInitError);\n this.commonsInitServiceEvents.complete();\n this.isInitializedSubject.next(false);\n return throwError(() => err);\n })\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nexport type LocalstorageConfigValueType = string | number | Date | object | boolean;\n\n@Injectable()\nexport class LocalStorageService {\n private readonly _configKey = 'CommonsUserPrefs';\n\n private buildLocalStorageKey(type: string, key: string): string {\n return `${this._configKey}_${type}_${key}`;\n }\n\n public getItem<T = LocalstorageConfigValueType>(type: string, key: string): T | undefined {\n const localstorageData = localStorage.getItem(this.buildLocalStorageKey(type, key));\n if (localstorageData) {\n return JSON.parse(localstorageData);\n }\n return undefined;\n }\n\n public setItem<T = LocalstorageConfigValueType>(type: string, key: string, value: T): void {\n localStorage.setItem(this.buildLocalStorageKey(type, key), JSON.stringify(value));\n }\n\n public removeItem(type: string, key: string) {\n localStorage.removeItem(this.buildLocalStorageKey(type, key));\n }\n}\n","export enum StyleSizeEnum {\n ExtraSmall,\n Small,\n Normal,\n Large,\n ExtraLarge\n}\n\nexport enum StyleLevelEnum {\n Default,\n Primary,\n Secondary,\n Info,\n Help,\n Success,\n Warning,\n Danger\n}\n","export class Styles {\n public static readonly BUTTON_ROUNDED_WIDTH_XS = 26;\n public static readonly BUTTON_ROUNDED_WIDTH_SM = 28;\n public static readonly BUTTON_ROUNDED_WIDTH = 32;\n public static readonly BUTTON_ROUNDED_WIDTH_LG = 45;\n\n public static readonly ACTION_BUTTON_MARGIN_X = 2;\n\n public static readonly TABLE_CELL_PADDING_X = 8; // left and right paddings are same\n public static readonly TABLE_CELL_PADDING_X_SM = 4;\n public static readonly TABLE_CELL_PADDING_X_LG = 12;\n}\n","import {TranslateService} from '@ngx-translate/core';\nimport {Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {ICommonsError} from '../error/error.model';\nimport {ErrorUtil} from '../error/error.util';\nimport {ClassType} from '../models/class-service.model';\nimport {findReflectTypeName} from '../reflect/type-enum-metadata';\n\nexport namespace I18nUtils {\n export class Common {\n public static getAsync(translate: TranslateService, params?: any, ...keys: Array<string>): Observable<string | null> {\n return translate.stream(keys, params).pipe(map(i18n => I18nUtils.Common.selectI18n(keys, i18n)));\n }\n\n public static get(translate: TranslateService, params?: any, ...keys: Array<string>): string | null {\n const i18n = translate.instant(keys, params);\n return I18nUtils.Common.selectI18n(keys, i18n);\n }\n\n public static populateParams(item?: any, params: any = {}) {\n const paramsRes = {...params};\n if (item) {\n paramsRes.item = item;\n }\n return paramsRes;\n }\n\n public static selectI18n(keys: string[], i18n: any): string | null {\n for (const key of keys) {\n if (key !== i18n[key]) {\n return i18n[key];\n }\n }\n return null;\n }\n }\n\n export class Type {\n public static getClassNameAsync(translate: TranslateService, classType: ClassType<any>, singular?: boolean): Observable<string | null> {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getNameAsync(translate, typeName ?? '', singular);\n }\n\n public static getClassName(translate: TranslateService, classType: ClassType<any>, singular?: boolean): string | null {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getName(translate, typeName ?? '', singular);\n }\n\n public static getNameAsync(translate: TranslateService, typeName: string, singular?: boolean): Observable<string | null> {\n const keys = I18nUtils.Type.getNameKeys(typeName, singular);\n return I18nUtils.Common.getAsync(translate, undefined, ...keys);\n }\n\n public static getName(translate: TranslateService, typeName: string, singular?: boolean): string | null {\n const keys = I18nUtils.Type.getNameKeys(typeName, singular);\n return I18nUtils.Common.get(translate, undefined, ...keys);\n }\n\n public static getClassTabKey(classType: ClassType<any>, tab: string): string {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getTabKey(typeName ?? '', tab);\n }\n\n public static getTabKey(typeName: string, tab: string): string {\n return I18nUtils.Type.getPath(typeName, 'tabs', tab);\n }\n\n public static getClassGroupKey(classType: ClassType<any>, group: string): string {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getGroupKey(typeName ?? '', group);\n }\n\n public static getGroupKey(typeName: string, group: string): string {\n return I18nUtils.Type.getPath(typeName, 'groups', group);\n }\n\n public static getClassPropertyKey(classType: ClassType<any>, property: string): string {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getPropertyKey(typeName ?? '', property);\n }\n\n public static getPropertyKey(typeName: string, property: string): string {\n return I18nUtils.Type.getPath(typeName, 'properties', property);\n }\n\n public static getClassPath(classType: ClassType<any>, ...path: Array<string>): string {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getPath(typeName ?? '', ...path);\n }\n\n public static getPath(typeName: string, ...path: Array<string>): string {\n return `${typeName.length ? `${typeName}.` : ''}${path.join('.')}`;\n }\n\n public static getClassParams(translate: TranslateService, classType: ClassType<any>, item: any, params: any = {}): any {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getParams(translate, typeName ?? undefined, item, params);\n }\n\n public static getParams(translate: TranslateService, typeName?: string, item?: any, params: any = {}): any {\n const i18nTypeName = typeName ? I18nUtils.Type.getName(translate, typeName, true) : null;\n return I18nUtils.Type.populateParams(i18nTypeName ?? undefined, item, params);\n }\n\n public static getClassParamsAsync(translate: TranslateService, classType: ClassType<any>, item?: any, params: any = {}): Observable<any> {\n const typeName = findReflectTypeName(classType);\n return I18nUtils.Type.getParamsAsync(translate, typeName ?? undefined, item, params);\n }\n\n public static getParamsAsync(translate: TranslateService, typeName?: string, item?: any, params: any = {}): Observable<any> {\n return (typeName ? I18nUtils.Type.getNameAsync(translate, typeName, true) : of(null)).pipe(\n map(i18nTypeName => I18nUtils.Type.populateParams(i18nTypeName ?? undefined, item, params))\n );\n }\n\n public static populateParams(i18nTypeName?: string, item?: any, params: any = {}): any {\n const paramsRes = {...params};\n if (i18nTypeName) {\n paramsRes.typeName = i18nTypeName;\n }\n return I18nUtils.Common.populateParams(item, paramsRes);\n }\n\n private static getNameKeys(typeName: string, singular?: boolean): Array<string> {\n const keys = [];\n if (typeof singular !== 'undefined') {\n keys.push(singular ? `${typeName}.nameSingular` : `${typeName}.namePlural`);\n }\n keys.push(`${typeName.length ? `${typeName}.` : ''}name`);\n return keys;\n }\n }\n\n export class Error {\n public static get(translate: TranslateService, error: ICommonsError, params: any = {}): string | null {\n const i18nParams = I18nUtils.Error.getParams(error, params);\n if (error.messageCode) {\n const keys = [`errors.${error.messageCode}`, `messages.${error.messageCode}`];\n const i18n = I18nUtils.Common.get(translate, i18nParams, ...keys);\n if (i18n) {\n return i18n;\n }\n }\n return I18nUtils.Common.get(translate, i18nParams, error.message);\n }\n\n public static getParams(error: ICommonsError, params: any = {}) {\n const paramsRes = {...params};\n paramsRes.errorStatus = '';\n paramsRes.errorMessage = '';\n\n if (ErrorUtil.isHttpErrorResponse(error)) {\n const httpError = ErrorUtil.getHttpErrorResponse(error);\n paramsRes.errorStatus = httpError?.status;\n paramsRes.errorMessage = httpError?.message;\n paramsRes.errorStatusDescription = httpError?.statusText;\n }\n\n paramsRes.error = error;\n return paramsRes;\n }\n }\n}\n","import {DatePipe} from '@angular/common';\nimport {HttpBackend} from '@angular/common/http';\nimport {APP_INITIALIZER, ErrorHandler, Provider} from '@angular/core';\n\nimport {ConfirmationService, MessageService} from 'primeng/api';\nimport {DialogService} from 'primeng/dynamicdialog';\n\nimport {CommonsErrorHandler} from './error/error-handler';\nimport {LogPublisherConsoleService} from './log/log-publisher-console.service';\nimport {LoggerService} from './log/logger.service';\nimport {BooleanPipe} from './pipes/boolean.pipe';\nimport {ClassMapPipe} from './pipes/class-map.pipe';\nimport {EnumerateAsyncPipe} from './pipes/enumerate-async.pipe';\nimport {EnumeratePipe} from './pipes/enumerate.pipe';\nimport {GetterPipe} from './pipes/getter.pipe';\nimport {JsonPathPipe} from './pipes/json-path.pipe';\nimport {ParametrizePipe} from './pipes/parametrize.pipe';\nimport {TemplatePipe} from './pipes/template.pipe';\nimport {TypeRegistry} from './registry/type-registry';\nimport {PermissionService} from './security/permission.service';\nimport {CommonsConfigurationService} from './services/commons-configuration.service';\nimport {CommonsInitService} from './services/commons-init.service';\nimport {CommonsRouterService} from './services/commons-router.service';\nimport {CommonsService} from './services/commons.service';\nimport {LocalStorageService} from './services/local-storage-config.service';\nimport {commonsInitializerProvider} from './services/providers/commons-init.provider';\nimport {BROWSER_STORAGE_IT} from './services/tokens/browser-storage.token';\nimport {LOG_PUBLISHERS} from './services/tokens/log-publisher.token';\nimport {COMMONS_MODULE_CONFIG_IT, CommonsModuleConfig} from './services/tokens/module-config.token';\n\nexport enum CommonsFeatureTypeEnum {\n Layout,\n Tableview,\n DataApiAsClassV1\n}\n\nexport interface CommonsFeature {\n type: CommonsFeatureTypeEnum;\n providers: Provider[];\n}\n\nexport function provideCommons(config?: CommonsModuleConfig, ...features: CommonsFeature[]): Provider[] {\n const providers: Provider[] = [\n // primeng services\n DialogService,\n MessageService,\n ConfirmationService,\n\n // angular\n DatePipe,\n\n // pipes\n BooleanPipe,\n ClassMapPipe,\n EnumeratePipe,\n EnumerateAsyncPipe,\n GetterPipe,\n JsonPathPipe,\n ParametrizePipe,\n TemplatePipe,\n\n // services\n CommonsInitService,\n CommonsService,\n CommonsRouterService,\n PermissionService,\n LocalStorageService,\n\n {\n provide: COMMONS_MODULE_CONFIG_IT,\n useValue: config\n },\n {\n provide: TypeRegistry,\n useFactory: () => TypeRegistry.get()\n },\n {\n provide: CommonsConfigurationService,\n useFactory: () => CommonsConfigurationService.get()\n },\n {\n provide: APP_INITIALIZER,\n useFactory: commonsInitializerProvider,\n deps: [HttpBackend, CommonsInitService],\n multi: true\n },\n {\n provide: LoggerService,\n useFactory: () => LoggerService.get()\n },\n {\n provide: LOG_PUBLISHERS,\n useClass: LogPublisherConsoleService,\n multi: true\n },\n {\n provide: BROWSER_STORAGE_IT,\n useFactory: () => localStorage\n },\n {\n provide: ErrorHandler,\n useClass: CommonsErrorHandler\n }\n ];\n\n features.forEach(f => {\n providers.push(...f.providers);\n });\n\n return providers;\n}\n","// action\nexport * from './action/action-data.model';\nexport * from './action/action-parameters.model';\n\n// components\nexport * from './components/notification/notification-wrapper.component';\nexport * from './components/pages/error/error.page.component';\nexport * from './components/pages/not-found/not-found.page.component';\n\n// data-list\nexport * from './data-list/data-list.model';\nexport * from './data-list/data-list-params.util';\nexport * from './data-list/filter-match.model';\n\n// data-providers\nexport * from './data-providers/base.data-provider';\nexport * from './data-providers/lookup.data-provider';\n\n// descriptors\nexport * from './descriptors/action.descriptor';\nexport * from './descriptors/column.descriptor';\nexport * from './descriptors/editor.descriptor';\nexport * from './descriptors/filter.descriptor';\nexport * from './descriptors/lookup.descriptor';\nexport * from './descriptors/model.descriptor';\nexport * from './descriptors/table.descriptor';\nexport * from './descriptors/tableview.descriptor';\n\n// directives\nexport * from './directives/component.directive';\nexport * from './directives/dialog-keydown-handler.directive';\nexport * from './directives/template.directive';\n\n// enums\nexport * from './enum/enum.model';\nexport * from './enum/enum.util';\n\n// error\nexport * from './error/error.model';\nexport * from './error/error.util';\nexport * from './error/error-handler';\n\n// helpers\nexport * from './helpers/coercion';\nexport * from './helpers/notification';\nexport * from './helpers/type-helpers';\n\n// log\nexport * from './log/log.model';\nexport * from './log/log-publisher-console.service';\nexport * from './log/logger.service';\n\n// models\nexport * from './models/class-attribute.model';\nexport * from './models/class-service.model';\nexport * from './models/getter.model';\nexport * from './models/i18n.model';\nexport * from './models/menu.model';\nexport * from './models/user.model';\nexport * from './models/version.model';\n\n// pipes\nexport * from './pipes/boolean.pipe';\nexport * from './pipes/class-map.pipe';\nexport * from './pipes/enumerate.pipe';\nexport * from './pipes/enumerate-async.pipe';\nexport * from './pipes/getter.pipe';\nexport * from './pipes/json-path.pipe';\nexport * from './pipes/parametrize.pipe';\nexport * from './pipes/template.pipe';\n\n// reflect\nexport * from './reflect/type-enum-decorator';\nexport * from './reflect/type-enum-metadata';\n\n// registry\nexport * from './registry/registry.model';\nexport * from './registry/type-registry';\n\n// router\nexport * from './router/route-builder';\nexport * from './router/router.model';\nexport * from './router/routes-builder';\n\n// rxjs\nexport * from './rxjs/map-data-list-result-operator';\n\n// security\nexport * from './security/permission.guard';\nexport * from './security/permission.service';\nexport * from './security/permission.util';\nexport * from './security/permissions.model';\n\n// services\nexport * from './services/providers/commons-init.provider';\nexport * from './services/tokens/browser-storage.token';\nexport * from './services/tokens/commons-init.token';\nexport * from './services/tokens/log-publisher.token';\nexport * from './services/tokens/module-config.token';\nexport * from './services/commons.service';\nexport * from './services/commons-configuration.service';\nexport * from './services/commons-init.service';\nexport * from './services/commons-router.service';\nexport * from './services/local-storage-config.service';\n\n// styles\nexport * from './styles/style.model';\nexport * from './styles/style-constants';\n\n// utils\nexport * from './utils/date.util';\nexport * from './utils/i18n.util';\nexport * from './utils/object.util';\nexport * from './utils/route.util';\nexport * from './utils/string.util';\n\n// provide\nexport * from './provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.CommonsService","i2","i3","i1.ParametrizePipe","i1"],"mappings":"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"}
|