@mediusinc/mng-commons 6.0.0-rc.5 → 6.0.0-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/components/notification/notification-wrapper.component.d.ts +4 -4
- package/core/error/error.model.d.ts +4 -4
- package/core/helpers/notification.d.ts +2 -2
- package/core/provide.d.ts +3 -3
- package/core/styles/style-constants.d.ts +9 -8
- package/core/styles/style.model.d.ts +2 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +91 -104
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs +8 -9
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +149 -49
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DTSBP9WQ.mjs +31 -0
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-DTSBP9WQ.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-JZpyiDIL.mjs +2118 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-JZpyiDIL.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1 -2154
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +97 -49
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +326 -290
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/form/api/index.d.ts +1 -0
- package/form/api/models/empty-value.model.d.ts +7 -0
- package/form/components/autocomplete/autocomplete.component.d.ts +1 -2
- package/form/components/date-range/date-range.component.d.ts +4 -3
- package/form/components/dropdown/dropdown.component.d.ts +3 -2
- package/form/components/number-range/number-range.component.d.ts +3 -2
- package/form/directives/input-empty-value.directive.d.ts +40 -0
- package/form/directives/input-trim.directive.d.ts +3 -5
- package/form/index.d.ts +1 -0
- package/i18n/en.json +57 -8
- package/i18n/sl.json +1 -3
- package/package.json +16 -42
- package/provide.d.ts +2 -2
- package/table/components/column-toggle/column-toggle.component.d.ts +12 -0
- package/table/components/filter/filter-form/filter-form.component.d.ts +2 -2
- package/table/components/table/table.component.d.ts +0 -1
- package/table/helpers/filters.d.ts +3 -2
- package/table/helpers/notification.d.ts +2 -2
- package/table/services/table-metadata.service.d.ts +3 -3
- package/tableview/action/components/action/action.component.d.ts +1 -0
- package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
- package/tableview/action/components/table/action-table.component.d.ts +2 -1
- package/tableview/action/helpers/notification.d.ts +3 -3
- package/tableview/action/models/execution/action-context.model.d.ts +2 -2
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +5 -0
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +14 -10
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +10 -0
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +36 -9
- package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +1 -1
- package/tableview/api/editor/models/field-action-context.model.d.ts +1 -1
- package/tableview/api/editor/models/field.model.d.ts +1 -2
- package/tableview/api/editor/models/form-editor.interface.d.ts +2 -2
- package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
- package/tableview/api/editor/models/formly-field.model.d.ts +2 -2
- package/tableview/editor/components/editor/form-editor.component.d.ts +2 -2
- package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +1 -1
- package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +2 -1
- package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +4 -6
- package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +0 -2
- package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +2 -2
- package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +8 -15
- package/tableview/editor/components/formly/fields/formly-group-type.abstract.component.d.ts +7 -0
- package/tableview/editor/components/formly/fields/formly-type.abstract.component.d.ts +20 -0
- package/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +11 -4
- package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +2 -1
- package/tableview/editor/helpers/formly-config.d.ts +1 -1
- package/tableview/editor/helpers/notification.d.ts +3 -3
- package/tableview/editor/models/formly-config.model.d.ts +10 -1
- package/tableview/editor/models/formly.model.d.ts +23 -0
- package/tableview/editor/services/form-editor.service.d.ts +2 -2
- package/tableview/tableview/router/tableview-route-builder.d.ts +10 -3
- package/tableview/tableview/services/tableview-feature-config.token.d.ts +1 -1
- package/version-info.json +3 -3
- package/esm2022/core/action/action-data.model.mjs +0 -2
- package/esm2022/core/action/action-parameters.model.mjs +0 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +0 -50
- package/esm2022/core/data-list/data-list-params-helpers.mjs +0 -465
- package/esm2022/core/data-list/data-list.model.mjs +0 -2
- package/esm2022/core/data-list/filter-match.model.mjs +0 -105
- package/esm2022/core/data-list/filter-metadata.model.mjs +0 -2
- package/esm2022/core/data-providers/base.data-provider.mjs +0 -16
- package/esm2022/core/data-providers/lookup.data-provider.mjs +0 -2
- package/esm2022/core/descriptors/action.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/column.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/editor.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/enum.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/filter.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/lookup.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/model.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/table.descriptor.mjs +0 -2
- package/esm2022/core/descriptors/tableview.descriptor.mjs +0 -2
- package/esm2022/core/directives/component.directive.mjs +0 -75
- package/esm2022/core/directives/rerender.directive.mjs +0 -25
- package/esm2022/core/directives/template.directive.mjs +0 -29
- package/esm2022/core/enum/enum-helpers.mjs +0 -90
- package/esm2022/core/enum/enum.model.mjs +0 -2
- package/esm2022/core/error/error-handler.mjs +0 -20
- package/esm2022/core/error/error-helpers.mjs +0 -273
- package/esm2022/core/error/error.model.mjs +0 -33
- package/esm2022/core/helpers/coercion.mjs +0 -55
- package/esm2022/core/helpers/date.mjs +0 -119
- package/esm2022/core/helpers/notification.mjs +0 -21
- package/esm2022/core/helpers/number.mjs +0 -19
- package/esm2022/core/helpers/object.mjs +0 -152
- package/esm2022/core/helpers/route.mjs +0 -58
- package/esm2022/core/helpers/string.mjs +0 -57
- package/esm2022/core/helpers/templates.mjs +0 -4
- package/esm2022/core/helpers/type-helpers.mjs +0 -2
- package/esm2022/core/i18n/i18n-common.mjs +0 -24
- package/esm2022/core/i18n/i18n-error.mjs +0 -29
- package/esm2022/core/i18n/i18n-type.mjs +0 -46
- package/esm2022/core/index.mjs +0 -107
- package/esm2022/core/log/log-publisher-console.service.mjs +0 -40
- package/esm2022/core/log/log.model.mjs +0 -10
- package/esm2022/core/log/logger.service.mjs +0 -131
- package/esm2022/core/mediusinc-mng-commons-core.mjs +0 -5
- package/esm2022/core/models/class-attribute.model.mjs +0 -2
- package/esm2022/core/models/class-service.model.mjs +0 -2
- package/esm2022/core/models/getter.model.mjs +0 -2
- package/esm2022/core/models/i18n.model.mjs +0 -2
- package/esm2022/core/models/menu.model.mjs +0 -2
- package/esm2022/core/models/user.model.mjs +0 -2
- package/esm2022/core/models/version.model.mjs +0 -2
- package/esm2022/core/pipes/boolean.pipe.mjs +0 -34
- package/esm2022/core/pipes/class-map.pipe.mjs +0 -23
- package/esm2022/core/pipes/enum.pipe.mjs +0 -38
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +0 -36
- package/esm2022/core/pipes/enumerate.pipe.mjs +0 -49
- package/esm2022/core/pipes/getter.pipe.mjs +0 -21
- package/esm2022/core/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/core/pipes/json-path.pipe.mjs +0 -25
- package/esm2022/core/pipes/parametrize.pipe.mjs +0 -86
- package/esm2022/core/pipes/template.pipe.mjs +0 -25
- package/esm2022/core/provide.mjs +0 -79
- package/esm2022/core/reactivity/effect.mjs +0 -22
- package/esm2022/core/reflect/type-enum-decorator.mjs +0 -12
- package/esm2022/core/reflect/type-enum-metadata.mjs +0 -62
- package/esm2022/core/registry/registry.model.mjs +0 -2
- package/esm2022/core/registry/type-registry.mjs +0 -106
- package/esm2022/core/router/route-builder.mjs +0 -431
- package/esm2022/core/router/router.model.mjs +0 -2
- package/esm2022/core/router/routes-builder.mjs +0 -52
- package/esm2022/core/rxjs/map-data-list-result-operator.mjs +0 -22
- package/esm2022/core/security/permission-helpers.mjs +0 -14
- package/esm2022/core/security/permission.guard.mjs +0 -15
- package/esm2022/core/security/permission.service.mjs +0 -101
- package/esm2022/core/security/permissions.model.mjs +0 -93
- package/esm2022/core/services/commons-configuration.service.mjs +0 -189
- package/esm2022/core/services/commons-init.service.mjs +0 -111
- package/esm2022/core/services/commons-router.service.mjs +0 -181
- package/esm2022/core/services/commons-storage.service.mjs +0 -31
- package/esm2022/core/services/commons.service.mjs +0 -324
- package/esm2022/core/services/providers/commons-init.provider.mjs +0 -4
- package/esm2022/core/services/tokens/browser-storage.token.mjs +0 -3
- package/esm2022/core/services/tokens/commons-init.token.mjs +0 -3
- package/esm2022/core/services/tokens/log-publisher.token.mjs +0 -3
- package/esm2022/core/services/tokens/module-config.token.mjs +0 -3
- package/esm2022/core/styles/style-constants.mjs +0 -11
- package/esm2022/core/styles/style.model.mjs +0 -20
- package/esm2022/filter/descriptors/filter-generic.descriptor.mjs +0 -31
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +0 -168
- package/esm2022/filter/descriptors/filter.descriptor.mjs +0 -421
- package/esm2022/filter/index.mjs +0 -8
- package/esm2022/filter/mediusinc-mng-commons-filter.mjs +0 -5
- package/esm2022/filter/models/filter-generic-property.model.mjs +0 -2
- package/esm2022/filter/models/filter.model.mjs +0 -20
- package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +0 -15
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +0 -15
- package/esm2022/form/api/descriptors/action-button.descriptor.mjs +0 -56
- package/esm2022/form/api/descriptors/button-style.builder.mjs +0 -153
- package/esm2022/form/api/index.mjs +0 -10
- package/esm2022/form/api/mediusinc-mng-commons-form-api.mjs +0 -5
- package/esm2022/form/api/models/button.model.mjs +0 -2
- package/esm2022/form/api/models/trim.model.mjs +0 -2
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +0 -436
- package/esm2022/form/components/date-range/date-range.component.mjs +0 -147
- package/esm2022/form/components/dropdown/dropdown.component.mjs +0 -372
- package/esm2022/form/components/number-range/number-range.component.mjs +0 -123
- package/esm2022/form/directives/input-trim.directive.mjs +0 -50
- package/esm2022/form/index.mjs +0 -8
- package/esm2022/form/mediusinc-mng-commons-form.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/mediusinc-mng-commons.mjs +0 -5
- package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +0 -5
- package/esm2022/model/class/descriptors/model-class.descriptor.mjs +0 -28
- package/esm2022/model/class/descriptors/type-class.descriptor.mjs +0 -6
- package/esm2022/model/class/helpers/model.mjs +0 -53
- package/esm2022/model/class/index.mjs +0 -8
- package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +0 -5
- package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +0 -13
- package/esm2022/model/descriptors/enum.descriptor.mjs +0 -28
- package/esm2022/model/descriptors/model.descriptor.mjs +0 -53
- package/esm2022/model/descriptors/type.descriptor.mjs +0 -7
- package/esm2022/model/helpers/i18n.mjs +0 -47
- package/esm2022/model/index.mjs +0 -9
- package/esm2022/model/mediusinc-mng-commons-model.mjs +0 -5
- package/esm2022/provide.mjs +0 -6
- package/esm2022/table/api/class/class-table-attribute-converter.mjs +0 -80
- package/esm2022/table/api/class/class-table-attribute.model.mjs +0 -2
- package/esm2022/table/api/class/class-table-data-provider.factory.mjs +0 -5
- package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +0 -99
- package/esm2022/table/api/class/class-table-descriptor.factory.mjs +0 -21
- package/esm2022/table/api/class/index.mjs +0 -6
- package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +0 -5
- package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +0 -15
- package/esm2022/table/api/data-providers/table.data-provider.mjs +0 -33
- package/esm2022/table/api/descriptors/column.descriptor.mjs +0 -475
- package/esm2022/table/api/descriptors/sort.descriptor.mjs +0 -67
- package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +0 -22
- package/esm2022/table/api/descriptors/table.descriptor.mjs +0 -1116
- package/esm2022/table/api/helpers/column-converter.mjs +0 -25
- package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +0 -7
- package/esm2022/table/api/index.mjs +0 -19
- package/esm2022/table/api/mediusinc-mng-commons-table-api.mjs +0 -5
- package/esm2022/table/api/models/column-value.model.mjs +0 -2
- package/esm2022/table/api/models/column.model.mjs +0 -21
- package/esm2022/table/api/models/row-expandable-component.model.mjs +0 -2
- package/esm2022/table/api/models/table-columns.model.mjs +0 -2
- package/esm2022/table/api/models/table-event.model.mjs +0 -2
- package/esm2022/table/api/models/table.model.mjs +0 -21
- package/esm2022/table/components/column-filter/column-filter.component.mjs +0 -389
- package/esm2022/table/components/column-value/column-value.component.mjs +0 -78
- package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +0 -55
- package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +0 -226
- package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +0 -219
- package/esm2022/table/components/table/table.component.mjs +0 -319
- package/esm2022/table/helpers/filters.mjs +0 -312
- package/esm2022/table/helpers/notification.mjs +0 -21
- package/esm2022/table/helpers/table-layout-prefs.mjs +0 -10
- package/esm2022/table/helpers/table.mjs +0 -24
- package/esm2022/table/index.mjs +0 -24
- package/esm2022/table/mediusinc-mng-commons-table.mjs +0 -5
- package/esm2022/table/models/column-preferences.model.mjs +0 -2
- package/esm2022/table/models/filter.model.mjs +0 -2
- package/esm2022/table/pipes/filter-value.pipe.mjs +0 -77
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +0 -27
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +0 -25
- package/esm2022/table/provide.mjs +0 -19
- package/esm2022/table/services/table-data.service.mjs +0 -194
- package/esm2022/table/services/table-feature-config.token.mjs +0 -3
- package/esm2022/table/services/table-metadata.service.mjs +0 -136
- package/esm2022/table/services/table-preferences.service.mjs +0 -142
- package/esm2022/tableview/action/components/action/action.component.mjs +0 -277
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +0 -86
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +0 -428
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +0 -35
- package/esm2022/tableview/action/components/route/action-route.component.mjs +0 -146
- package/esm2022/tableview/action/components/table/action-table.component.mjs +0 -102
- package/esm2022/tableview/action/guards/unsaved-changes.guard.mjs +0 -4
- package/esm2022/tableview/action/helpers/action-execution.mjs +0 -25
- package/esm2022/tableview/action/helpers/i18n.mjs +0 -102
- package/esm2022/tableview/action/helpers/notification.mjs +0 -78
- package/esm2022/tableview/action/helpers/styles.mjs +0 -32
- package/esm2022/tableview/action/models/action-editor-dialog-data.model.mjs +0 -2
- package/esm2022/tableview/action/models/can-component-deactivate.model.mjs +0 -2
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +0 -64
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +0 -169
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +0 -20
- package/esm2022/tableview/action/services/action-executor.service.mjs +0 -772
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +0 -19
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +0 -41
- package/esm2022/tableview/action/services/navigation.service.mjs +0 -53
- package/esm2022/tableview/action/services/providers/provide-action-executor.mjs +0 -9
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +0 -17
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +0 -18
- package/esm2022/tableview/action/services/tokens/action-editor.token.mjs +0 -3
- package/esm2022/tableview/action/services/view-container.service.mjs +0 -40
- package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +0 -28
- package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +0 -30
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +0 -223
- package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +0 -32
- package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +0 -74
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +0 -302
- package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +0 -37
- package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +0 -40
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +0 -100
- package/esm2022/tableview/api/action/models/action-component.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-confirmation.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-editor.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/action-error.model.mjs +0 -14
- package/esm2022/tableview/api/action/models/action.type.mjs +0 -26
- package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-execution-error.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/action-instance-state.model.mjs +0 -32
- package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +0 -2
- package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +0 -11
- package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +0 -28
- package/esm2022/tableview/api/action/services/tokens/data-language-dropdown.token.mjs +0 -3
- package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +0 -85
- package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +0 -5
- package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +0 -95
- package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +0 -21
- package/esm2022/tableview/api/class/index.mjs +0 -13
- package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +0 -5
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +0 -35
- package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +0 -2
- package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +0 -5
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +0 -111
- package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +0 -26
- package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +0 -15
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +0 -114
- package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +0 -15
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +0 -437
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +0 -51
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +0 -314
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +0 -103
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +0 -211
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +0 -142
- package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +0 -25
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +0 -402
- package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +0 -51
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/editor.model.mjs +0 -9
- package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field-validation.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/field.model.mjs +0 -57
- package/esm2022/tableview/api/editor/models/form-editor.event.mjs +0 -28
- package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +0 -2
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +0 -70
- package/esm2022/tableview/api/editor/models/formly-field.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/formly-options.model.mjs +0 -2
- package/esm2022/tableview/api/editor/models/radio.model.mjs +0 -2
- package/esm2022/tableview/api/index.mjs +0 -76
- package/esm2022/tableview/api/mediusinc-mng-commons-tableview-api.mjs +0 -5
- package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +0 -18
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +0 -84
- package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +0 -34
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +0 -377
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +0 -34
- package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +0 -26
- package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +0 -7
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +0 -324
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +0 -319
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +0 -2
- package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +0 -2
- package/esm2022/tableview/editor/components/editor/auto-save-status/auto-save-status.component.mjs +0 -82
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +0 -480
- package/esm2022/tableview/editor/components/formly/constants.mjs +0 -2
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +0 -66
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -47
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +0 -39
- package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +0 -165
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -42
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -34
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -211
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +0 -23
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +0 -195
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -239
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -205
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -28
- package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +0 -46
- package/esm2022/tableview/editor/components/formly/pipes/formly-field-label.pipe.mjs +0 -19
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +0 -33
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -59
- package/esm2022/tableview/editor/helpers/editor-autosave.mjs +0 -49
- package/esm2022/tableview/editor/helpers/editor-field.mjs +0 -39
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +0 -388
- package/esm2022/tableview/editor/helpers/editor-validators.mjs +0 -25
- package/esm2022/tableview/editor/helpers/field-create.mjs +0 -21
- package/esm2022/tableview/editor/helpers/formly-config.mjs +0 -260
- package/esm2022/tableview/editor/helpers/notification.mjs +0 -11
- package/esm2022/tableview/editor/models/editor-auto-save-preview.model.mjs +0 -2
- package/esm2022/tableview/editor/models/formly-config.model.mjs +0 -2
- package/esm2022/tableview/editor/services/form-editor.service.mjs +0 -96
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +0 -31
- package/esm2022/tableview/index.mjs +0 -67
- package/esm2022/tableview/mediusinc-mng-commons-tableview.mjs +0 -5
- package/esm2022/tableview/provide.mjs +0 -105
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +0 -15
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +0 -59
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +0 -175
- package/esm2022/tableview/tableview/services/tableview-feature-config.token.mjs +0 -3
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import { FilterMatchMode, angularDateFormatHasSeconds, angularDateFormatHasTime, dateToIsoString, fromAngularDateFormatToPrime, fromAngularNumberFormatToFractions } from '@mediusinc/mng-commons/core';
|
|
2
|
-
import { FilterDescriptor, FilterTypeEnum } from '@mediusinc/mng-commons/filter';
|
|
3
|
-
export function filterGenerateMatchModeOptions(primeConfig, descriptor, cmpSerCfg) {
|
|
4
|
-
let options = undefined;
|
|
5
|
-
if (descriptor == null || descriptor.filterType === FilterTypeEnum.String) {
|
|
6
|
-
options = [
|
|
7
|
-
{ value: FilterMatchMode.Contains, label: primeConfig.getTranslation(FilterMatchMode.Contains) },
|
|
8
|
-
{ value: FilterMatchMode.NotContains, label: primeConfig.getTranslation(FilterMatchMode.NotContains) },
|
|
9
|
-
{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
|
|
10
|
-
{ value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
|
|
11
|
-
{ value: FilterMatchMode.StartsWith, label: primeConfig.getTranslation(FilterMatchMode.StartsWith) },
|
|
12
|
-
{ value: FilterMatchMode.EndsWith, label: primeConfig.getTranslation(FilterMatchMode.EndsWith) }
|
|
13
|
-
];
|
|
14
|
-
}
|
|
15
|
-
else if (descriptor.filterType === FilterTypeEnum.Boolean) {
|
|
16
|
-
options = [{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) }];
|
|
17
|
-
}
|
|
18
|
-
else if (descriptor.filterType === FilterTypeEnum.Number) {
|
|
19
|
-
options = [
|
|
20
|
-
{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
|
|
21
|
-
{ value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
|
|
22
|
-
{ value: FilterMatchMode.LessThan, label: primeConfig.getTranslation(FilterMatchMode.LessThan) },
|
|
23
|
-
{ value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
|
|
24
|
-
{ value: FilterMatchMode.GreaterThan, label: primeConfig.getTranslation(FilterMatchMode.GreaterThan) },
|
|
25
|
-
{ value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
|
|
26
|
-
{ value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
|
|
27
|
-
];
|
|
28
|
-
}
|
|
29
|
-
else if (descriptor.filterType === FilterTypeEnum.Lookup || descriptor.filterType === FilterTypeEnum.LookupEnum) {
|
|
30
|
-
options = [
|
|
31
|
-
{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
|
|
32
|
-
{ value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
|
|
33
|
-
{ value: FilterMatchMode.In, label: primeConfig.getTranslation(FilterMatchMode.In) },
|
|
34
|
-
{ value: FilterMatchMode.NotIn, label: primeConfig.getTranslation(FilterMatchMode.NotIn) }
|
|
35
|
-
];
|
|
36
|
-
}
|
|
37
|
-
else if (descriptor.filterType === FilterTypeEnum.Date) {
|
|
38
|
-
if (!descriptor.datePickerShowTime && !descriptor.dateValueNoTime && !cmpSerCfg?.filtersDateOnlyDisabled) {
|
|
39
|
-
options = [
|
|
40
|
-
{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
|
|
41
|
-
{ value: FilterMatchMode.NotEquals, label: primeConfig.getTranslation(FilterMatchMode.NotEquals) },
|
|
42
|
-
{ value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
|
|
43
|
-
{ value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
|
|
44
|
-
{ value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
|
|
45
|
-
];
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
options = [
|
|
49
|
-
{ value: FilterMatchMode.Equals, label: primeConfig.getTranslation(FilterMatchMode.Equals) },
|
|
50
|
-
{ value: FilterMatchMode.LessThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.LessThanOrEqualTo) },
|
|
51
|
-
{ value: FilterMatchMode.GreaterThanOrEqualTo, label: primeConfig.getTranslation(FilterMatchMode.GreaterThanOrEqualTo) },
|
|
52
|
-
{ value: FilterMatchMode.Between, label: primeConfig.getTranslation(FilterMatchMode.Between) }
|
|
53
|
-
];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
options?.push({ value: FilterMatchMode.Exists, label: primeConfig.getTranslation(FilterMatchMode.Exists) }, { value: FilterMatchMode.DoesNotExist, label: primeConfig.getTranslation(FilterMatchMode.DoesNotExist) });
|
|
57
|
-
if (descriptor?.matchModes) {
|
|
58
|
-
options = descriptor.matchModes.map(mm => ({ value: mm, label: primeConfig.getTranslation(mm) }));
|
|
59
|
-
}
|
|
60
|
-
return options || [];
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Gets the default match mode for a filter.
|
|
64
|
-
*
|
|
65
|
-
* @param {FilterDescriptor<any, any>} [descriptor] - The filter descriptor.
|
|
66
|
-
* @param {SelectItem[]} [matchModes=[]] - The available match modes options.
|
|
67
|
-
*
|
|
68
|
-
* @return {FilterMatchModeExtendedType} The default match mode for the filter.
|
|
69
|
-
*/
|
|
70
|
-
export function filterGetDefaultMatchMode(descriptor, matchModes = []) {
|
|
71
|
-
let defaultMatchMode = FilterMatchMode.Equals;
|
|
72
|
-
if (descriptor?.filterType === FilterTypeEnum.String)
|
|
73
|
-
defaultMatchMode = FilterMatchMode.StartsWith;
|
|
74
|
-
// overwrite type default set in descriptor
|
|
75
|
-
if (descriptor?.defaultMatchMode) {
|
|
76
|
-
defaultMatchMode = descriptor.defaultMatchMode;
|
|
77
|
-
}
|
|
78
|
-
// check if default mode exists!
|
|
79
|
-
if (matchModes.length > 0 && !matchModes.some(m => m.value === defaultMatchMode)) {
|
|
80
|
-
defaultMatchMode = matchModes[0].value;
|
|
81
|
-
}
|
|
82
|
-
return defaultMatchMode;
|
|
83
|
-
}
|
|
84
|
-
export function filterSetMetadataOnChange(filter, matchMode, value, filterType, filterDateCfg) {
|
|
85
|
-
let displayValue = filter?.displayValue ?? value;
|
|
86
|
-
let displayMatchMode = filter?.displayMatchMode ?? matchMode;
|
|
87
|
-
// when equals is used on dates with time, the actual filter will be between, but displayed as equals
|
|
88
|
-
if (filterType === FilterTypeEnum.Date && !filterDateCfg?.valueNoTime) {
|
|
89
|
-
if (matchMode === FilterMatchMode.Between &&
|
|
90
|
-
Array.isArray(value) &&
|
|
91
|
-
value.length === 2 &&
|
|
92
|
-
value.every(v => v instanceof Date || typeof v === 'string' || typeof v === 'number')) {
|
|
93
|
-
if (filterAreDatesEqual(value[0], value[1], filterDateCfg)) {
|
|
94
|
-
displayMatchMode = FilterMatchMode.Equals;
|
|
95
|
-
displayValue = new Date(value[0]);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else if (matchMode === FilterMatchMode.Equals && !value) {
|
|
99
|
-
matchMode = FilterMatchMode.Between;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (filterType === FilterTypeEnum.Date && displayValue) {
|
|
103
|
-
// display value for calendar cannot be string, convert to date
|
|
104
|
-
displayValue = Array.isArray(displayValue)
|
|
105
|
-
? displayValue.map(v => (!(v instanceof Date) ? new Date(v) : v))
|
|
106
|
-
: displayValue instanceof Date
|
|
107
|
-
? displayValue
|
|
108
|
-
: new Date(displayValue);
|
|
109
|
-
}
|
|
110
|
-
if (filterType === FilterTypeEnum.Boolean && displayValue != null && typeof displayValue !== 'boolean') {
|
|
111
|
-
displayValue = (typeof displayValue === 'string' && displayValue.toLowerCase() === 'true') || displayValue === 1;
|
|
112
|
-
}
|
|
113
|
-
if (filterType === FilterTypeEnum.Number && displayValue != null && typeof displayValue !== 'number') {
|
|
114
|
-
const numValue = +displayValue;
|
|
115
|
-
if (!isNaN(numValue)) {
|
|
116
|
-
displayValue = numValue;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
...filter,
|
|
121
|
-
matchMode,
|
|
122
|
-
value: value,
|
|
123
|
-
displayMatchMode,
|
|
124
|
-
displayValue
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
export function filterSetMetadataOnDisplayChange(filter, displayMatchMode, displayValue, filterType, filterDateCfg) {
|
|
128
|
-
let matchMode = displayMatchMode;
|
|
129
|
-
let value = displayValue;
|
|
130
|
-
if (filterType === FilterTypeEnum.Date) {
|
|
131
|
-
if (!filterDateCfg?.valueNoTime && displayValue !== null) {
|
|
132
|
-
if (displayMatchMode === FilterMatchMode.Equals) {
|
|
133
|
-
if (value instanceof Date || typeof value === 'string' || typeof value === 'number') {
|
|
134
|
-
const fromDate = new Date(value);
|
|
135
|
-
const toDate = new Date(value);
|
|
136
|
-
if (filterDateCfg?.showTime) {
|
|
137
|
-
if (filterDateCfg?.showSeconds) {
|
|
138
|
-
fromDate.setMilliseconds(0);
|
|
139
|
-
toDate.setMilliseconds(999);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
fromDate.setSeconds(0, 0);
|
|
143
|
-
toDate.setSeconds(59, 999);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
fromDate.setHours(0, 0, 0, 0);
|
|
148
|
-
toDate.setHours(23, 59, 59, 999);
|
|
149
|
-
}
|
|
150
|
-
value = [fromDate, toDate];
|
|
151
|
-
matchMode = FilterMatchMode.Between;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
value = null;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
else if (displayMatchMode === FilterMatchMode.Between) {
|
|
158
|
-
if (Array.isArray(value) && value.length === 2 && value.every(i => i instanceof Date || typeof i === 'string' || typeof i === 'number')) {
|
|
159
|
-
const fromDate = new Date(value[0]);
|
|
160
|
-
let toDate = new Date(value[1]);
|
|
161
|
-
if (filterAreDatesEqual(fromDate, toDate, filterDateCfg)) {
|
|
162
|
-
toDate = new Date(fromDate);
|
|
163
|
-
if (filterDateCfg?.showTime) {
|
|
164
|
-
if (filterDateCfg?.showSeconds) {
|
|
165
|
-
toDate.setSeconds(toDate.getSeconds() + 1);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
toDate.setMinutes(toDate.getMinutes() + 1);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
toDate.setDate(toDate.getDate() + 1);
|
|
173
|
-
}
|
|
174
|
-
value = [fromDate, toDate];
|
|
175
|
-
matchMode = FilterMatchMode.Between;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
value = null;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
const convertDateType = filterDateCfg?.valueNoTime ? 'date' : 'date-time';
|
|
184
|
-
const convertDateTimeOpts = {
|
|
185
|
-
utc: filterDateCfg?.valueUtc,
|
|
186
|
-
noMillis: filterDateCfg?.valueNoMillis,
|
|
187
|
-
noTimezone: filterDateCfg?.valueNoTimezone
|
|
188
|
-
};
|
|
189
|
-
value =
|
|
190
|
-
value == null
|
|
191
|
-
? value
|
|
192
|
-
: Array.isArray(value)
|
|
193
|
-
? value.filter(i => i != null).map(i => dateToIsoString(i, convertDateType, convertDateTimeOpts))
|
|
194
|
-
: dateToIsoString(value, convertDateType, convertDateTimeOpts);
|
|
195
|
-
}
|
|
196
|
-
if (matchMode === FilterMatchMode.Exists || matchMode === FilterMatchMode.DoesNotExist) {
|
|
197
|
-
value = null;
|
|
198
|
-
}
|
|
199
|
-
return {
|
|
200
|
-
...filter,
|
|
201
|
-
displayMatchMode: displayMatchMode,
|
|
202
|
-
matchMode: matchMode,
|
|
203
|
-
displayValue: displayValue,
|
|
204
|
-
value: value,
|
|
205
|
-
caseSensitive: filterType === FilterTypeEnum.String ? filter?.caseSensitive : undefined
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
export function filterAreDatesEqual(fromDate, toDate, filterDateCfg) {
|
|
209
|
-
const startDate = dateToIsoString(fromDate);
|
|
210
|
-
const endDate = dateToIsoString(toDate);
|
|
211
|
-
// 2020-11-02T11:12:12.000
|
|
212
|
-
const cmpLength = filterDateCfg?.showTime ? (filterDateCfg?.showSeconds ? 19 : 16) : 10;
|
|
213
|
-
return startDate.substring(0, cmpLength) === endDate.substring(0, cmpLength);
|
|
214
|
-
}
|
|
215
|
-
export function filterApplySerializationConfigToCmp(config, cmpSerCfg) {
|
|
216
|
-
// set default
|
|
217
|
-
cmpSerCfg.dateTimeInUtc = false;
|
|
218
|
-
cmpSerCfg.dateTimeWithTimezone = true;
|
|
219
|
-
cmpSerCfg.dateTimeWithMillis = true;
|
|
220
|
-
cmpSerCfg.filtersDateOnlyDisabled = false;
|
|
221
|
-
// set customizations
|
|
222
|
-
if (config?.serialization) {
|
|
223
|
-
if (config.serialization.dateTimeInUtc !== undefined)
|
|
224
|
-
cmpSerCfg.dateTimeInUtc = config.serialization.dateTimeInUtc;
|
|
225
|
-
if (config.serialization.dateTimeWithTimezone !== undefined)
|
|
226
|
-
cmpSerCfg.dateTimeWithTimezone = config.serialization.dateTimeWithTimezone;
|
|
227
|
-
if (config.serialization.dateTimeWithMillis !== undefined)
|
|
228
|
-
cmpSerCfg.dateTimeWithMillis = config.serialization.dateTimeWithMillis;
|
|
229
|
-
if (config.serialization.filtersDateOnlyDisabled !== undefined)
|
|
230
|
-
cmpSerCfg.filtersDateOnlyDisabled = config.serialization.filtersDateOnlyDisabled;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
export function filterAdjustDisplayValueOnMatchModeChange(matchMode, value) {
|
|
234
|
-
if (matchMode == null || matchMode === FilterMatchMode.Exists || matchMode === FilterMatchMode.DoesNotExist) {
|
|
235
|
-
return value; // never change, only change later if something else changes here
|
|
236
|
-
}
|
|
237
|
-
if (matchMode === FilterMatchMode.Between) {
|
|
238
|
-
if (!Array.isArray(value)) {
|
|
239
|
-
return value != null ? [value, value] : [];
|
|
240
|
-
}
|
|
241
|
-
else if (value.length === 0 || value.length === 2) {
|
|
242
|
-
return value;
|
|
243
|
-
}
|
|
244
|
-
else if (value.length === 1) {
|
|
245
|
-
return [value[0], value[0]];
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
return [value[0], value[1]];
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (matchMode === FilterMatchMode.In || matchMode === FilterMatchMode.NotIn) {
|
|
252
|
-
return Array.isArray(value) ? value : value == null ? [] : [value];
|
|
253
|
-
}
|
|
254
|
-
return Array.isArray(value) && value.length > 0 ? value[0] : value;
|
|
255
|
-
}
|
|
256
|
-
export function filterGetDateConfig(descriptor, serCfg) {
|
|
257
|
-
if (!descriptor || descriptor.filterType !== FilterTypeEnum.Date) {
|
|
258
|
-
return undefined;
|
|
259
|
-
}
|
|
260
|
-
const showTime = descriptor.datePickerShowTime ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? angularDateFormatHasTime(descriptor.displayFormat) : false);
|
|
261
|
-
return {
|
|
262
|
-
valueNoTime: descriptor.dateValueNoTime || (!serCfg?.filtersDateOnlyDisabled && !showTime),
|
|
263
|
-
valueUtc: descriptor.dateValueUtc ?? serCfg?.dateTimeInUtc,
|
|
264
|
-
valueNoTimezone: descriptor.dateValueNoTimezone ?? !serCfg?.dateTimeWithTimezone,
|
|
265
|
-
valueNoMillis: !serCfg?.dateTimeWithMillis,
|
|
266
|
-
format: descriptor.datePickerFormat ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? fromAngularDateFormatToPrime(descriptor.displayFormat) : undefined),
|
|
267
|
-
showTime: showTime,
|
|
268
|
-
showSeconds: showTime &&
|
|
269
|
-
(descriptor.datePickerShowSeconds ?? (descriptor.displayFormatApplyToField && descriptor.displayFormat ? angularDateFormatHasSeconds(descriptor.displayFormat) : false))
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
export function filterGetNumberConfig(descriptor) {
|
|
273
|
-
if (!descriptor || descriptor.filterType !== FilterTypeEnum.Number) {
|
|
274
|
-
return undefined;
|
|
275
|
-
}
|
|
276
|
-
const displayCfg = descriptor.displayFormatApplyToField && descriptor.displayFormat ? fromAngularNumberFormatToFractions(descriptor.displayFormat) : undefined;
|
|
277
|
-
return {
|
|
278
|
-
fractionsMin: descriptor.numberMinFractionDigits ?? displayCfg?.fractionsMin,
|
|
279
|
-
fractionsMax: descriptor.numberMaxFractionDigits ?? displayCfg?.fractionsMax
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Creates an array of filter descriptors from an array of generic filter properties.
|
|
284
|
-
*
|
|
285
|
-
* @param {FilterGenericProperty[]} properties - The array of filterable properties, their types and options.
|
|
286
|
-
* @param {LookupDataProviderInst<string, any, any, 'field'>} [valueLookup] - The lookup data provider for value suggestions.
|
|
287
|
-
*/
|
|
288
|
-
export function createFilterDescriptorsFromGeneric(properties, valueLookup) {
|
|
289
|
-
return properties.reduce((createdFilterDescriptors, genericFilter) => {
|
|
290
|
-
// when no generic value lookup is provided, lookup enum filters are treated as string filters
|
|
291
|
-
const filterType = genericFilter.type === FilterTypeEnum.LookupEnum && valueLookup === undefined ? FilterTypeEnum.String : genericFilter.type;
|
|
292
|
-
const filterDescriptor = new FilterDescriptor(genericFilter.property).asFilterType(filterType).asGenericFilter();
|
|
293
|
-
if ((genericFilter.type === FilterTypeEnum.String || genericFilter.type === FilterTypeEnum.LookupEnum) && valueLookup) {
|
|
294
|
-
filterDescriptor.withGenericValueProvider(valueLookup);
|
|
295
|
-
}
|
|
296
|
-
if (filterDescriptor && genericFilter.opts !== undefined) {
|
|
297
|
-
switch (genericFilter.type) {
|
|
298
|
-
case FilterTypeEnum.Number:
|
|
299
|
-
filterDescriptor.asNumber(genericFilter.opts);
|
|
300
|
-
break;
|
|
301
|
-
case FilterTypeEnum.Date:
|
|
302
|
-
filterDescriptor.asDate(genericFilter.opts);
|
|
303
|
-
break;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
if (filterDescriptor) {
|
|
307
|
-
createdFilterDescriptors.push(filterDescriptor);
|
|
308
|
-
}
|
|
309
|
-
return createdFilterDescriptors;
|
|
310
|
-
}, []);
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RhYmxlL3NyYy9oZWxwZXJzL2ZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUlILGVBQWUsRUFJZiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ3JDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLGdCQUFnQixFQUF5QixjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUt0RyxNQUFNLFVBQVUsOEJBQThCLENBQzFDLFdBQTBCLEVBQzFCLFVBQWtELEVBQ2xELFNBQXNDO0lBRXRDLElBQUksT0FBTyxHQUE2QixTQUFTLENBQUM7SUFDbEQsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hFLE9BQU8sR0FBRztZQUNOLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFDO1lBQzlGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxFQUFDO1lBQ3BHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFDO1lBQzFGLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFDO1lBQ2hHLEVBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxF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LElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2RCxRQUFRLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxjQUFjLENBQUMsTUFBTTtvQkFDdEIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUMsTUFBTTtnQkFDVixLQUFLLGNBQWMsQ0FBQyxJQUFJO29CQUNwQixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1QyxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE9BQU8sd0JBQXdCLENBQUM7SUFDcEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJpbWVOR0NvbmZpZywgU2VsZWN0SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge1xuICAgIENvbW1vbnNGaWx0ZXJNZXRhZGF0YSxcbiAgICBDb21tb25zTW9kdWxlQ29uZmlnLFxuICAgIENvbW1vbnNTZXJpYWxpemF0aW9uQ29uZmlnLFxuICAgIEZpbHRlck1hdGNoTW9kZSxcbiAgICBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGUsXG4gICAgTnVsbGFibGUsXG4gICAgU2luZ2xlT3JBcnJheVR5cGUsXG4gICAgYW5ndWxhckRhdGVGb3JtYXRIYXNTZWNvbmRzLFxuICAgIGFuZ3VsYXJEYXRlRm9ybWF0SGFzVGltZSxcbiAgICBkYXRlVG9Jc29TdHJpbmcsXG4gICAgZnJvbUFuZ3VsYXJEYXRlRm9ybWF0VG9QcmltZSxcbiAgICBmcm9tQW5ndWxhck51bWJlckZvcm1hdFRvRnJhY3Rpb25zXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0ZpbHRlckRlc2NyaXB0b3IsIEZpbHRlckdlbmVyaWNQcm9wZXJ0eSwgRmlsdGVyVHlwZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZmlsdGVyJztcbmltcG9ydCB7TG9va3VwRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5cbmltcG9ydCB7RmlsdGVyRGF0ZUNvbmZpZywgRmlsdGVyTnVtYmVyQ29uZmlnfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckdlbmVyYXRlTWF0Y2hNb2RlT3B0aW9ucyhcbiAgICBwcmltZUNvbmZpZzogUHJpbWVOR0NvbmZpZyxcbiAgICBkZXNjcmlwdG9yOiBGaWx0ZXJEZXNjcmlwdG9yPGFueSwgYW55PiB8IHVuZGVmaW5lZCxcbiAgICBjbXBTZXJDZmc/OiBDb21tb25zU2VyaWFsaXphdGlvbkNvbmZpZ1xuKTogU2VsZWN0SXRlbVtdIHtcbiAgICBsZXQgb3B0aW9uczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChkZXNjcmlwdG9yID09IG51bGwgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5TdHJpbmcpIHtcbiAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkNvbnRhaW5zLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkNvbnRhaW5zKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Ob3RDb250YWlucywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Ob3RDb250YWlucyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkVxdWFscyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFscyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuU3RhcnRzV2l0aCwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5TdGFydHNXaXRoKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FbmRzV2l0aCwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FbmRzV2l0aCl9XG4gICAgICAgIF07XG4gICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkJvb2xlYW4pIHtcbiAgICAgICAgb3B0aW9ucyA9IFt7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKX1dO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5OdW1iZXIpIHtcbiAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FcXVhbHMpfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLk5vdEVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMpfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkxlc3NUaGFuLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkxlc3NUaGFuKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5MZXNzVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuR3JlYXRlclRoYW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuR3JlYXRlclRoYW4pfSxcbiAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuT3JFcXVhbFRvLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkdyZWF0ZXJUaGFuT3JFcXVhbFRvKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4pfVxuICAgICAgICBdO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5Mb29rdXAgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5Mb29rdXBFbnVtKSB7XG4gICAgICAgIG9wdGlvbnMgPSBbXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzKX0sXG4gICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5JbiwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5Jbil9LFxuICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTm90SW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTm90SW4pfVxuICAgICAgICBdO1xuICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRvci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG4gICAgICAgIGlmICghZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUgJiYgIWRlc2NyaXB0b3IuZGF0ZVZhbHVlTm9UaW1lICYmICFjbXBTZXJDZmc/LmZpbHRlcnNEYXRlT25seURpc2FibGVkKSB7XG4gICAgICAgICAgICBvcHRpb25zID0gW1xuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkVxdWFscywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5FcXVhbHMpfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Ob3RFcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTm90RXF1YWxzKX0sXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8pfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuQmV0d2Vlbil9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IFtcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKX0sXG4gICAgICAgICAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuTGVzc1RoYW5PckVxdWFsVG8pfSxcbiAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbywgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKEZpbHRlck1hdGNoTW9kZS5HcmVhdGVyVGhhbk9yRXF1YWxUbyl9LFxuICAgICAgICAgICAgICAgIHt2YWx1ZTogRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4sIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuQmV0d2Vlbil9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3B0aW9ucz8ucHVzaChcbiAgICAgICAge3ZhbHVlOiBGaWx0ZXJNYXRjaE1vZGUuRXhpc3RzLCBsYWJlbDogcHJpbWVDb25maWcuZ2V0VHJhbnNsYXRpb24oRmlsdGVyTWF0Y2hNb2RlLkV4aXN0cyl9LFxuICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZS5Eb2VzTm90RXhpc3QsIGxhYmVsOiBwcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KX1cbiAgICApO1xuXG4gICAgaWYgKGRlc2NyaXB0b3I/Lm1hdGNoTW9kZXMpIHtcbiAgICAgICAgb3B0aW9ucyA9IGRlc2NyaXB0b3IubWF0Y2hNb2Rlcy5tYXAobW0gPT4gPFNlbGVjdEl0ZW0+e3ZhbHVlOiBtbSwgbGFiZWw6IHByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKG1tKX0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucyB8fCBbXTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBkZWZhdWx0IG1hdGNoIG1vZGUgZm9yIGEgZmlsdGVyLlxuICpcbiAqIEBwYXJhbSB7RmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT59IFtkZXNjcmlwdG9yXSAtIFRoZSBmaWx0ZXIgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSB7U2VsZWN0SXRlbVtdfSBbbWF0Y2hNb2Rlcz1bXV0gLSBUaGUgYXZhaWxhYmxlIG1hdGNoIG1vZGVzIG9wdGlvbnMuXG4gKlxuICogQHJldHVybiB7RmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlfSBUaGUgZGVmYXVsdCBtYXRjaCBtb2RlIGZvciB0aGUgZmlsdGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyR2V0RGVmYXVsdE1hdGNoTW9kZShkZXNjcmlwdG9yPzogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT4sIG1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXSA9IFtdKTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlIHtcbiAgICBsZXQgZGVmYXVsdE1hdGNoTW9kZTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlID0gRmlsdGVyTWF0Y2hNb2RlLkVxdWFscztcbiAgICBpZiAoZGVzY3JpcHRvcj8uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZUVudW0uU3RyaW5nKSBkZWZhdWx0TWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlLlN0YXJ0c1dpdGg7XG5cbiAgICAvLyBvdmVyd3JpdGUgdHlwZSBkZWZhdWx0IHNldCBpbiBkZXNjcmlwdG9yXG4gICAgaWYgKGRlc2NyaXB0b3I/LmRlZmF1bHRNYXRjaE1vZGUpIHtcbiAgICAgICAgZGVmYXVsdE1hdGNoTW9kZSA9IGRlc2NyaXB0b3IuZGVmYXVsdE1hdGNoTW9kZTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiBkZWZhdWx0IG1vZGUgZXhpc3RzIVxuICAgIGlmIChtYXRjaE1vZGVzLmxlbmd0aCA+IDAgJiYgIW1hdGNoTW9kZXMuc29tZShtID0+IG0udmFsdWUgPT09IGRlZmF1bHRNYXRjaE1vZGUpKSB7XG4gICAgICAgIGRlZmF1bHRNYXRjaE1vZGUgPSBtYXRjaE1vZGVzWzBdLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0TWF0Y2hNb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2V0TWV0YWRhdGFPbkNoYW5nZShcbiAgICBmaWx0ZXI6IENvbW1vbnNGaWx0ZXJNZXRhZGF0YSxcbiAgICBtYXRjaE1vZGU/OiBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGUsXG4gICAgdmFsdWU/OiBhbnksXG4gICAgZmlsdGVyVHlwZT86IEZpbHRlclR5cGVFbnVtLFxuICAgIGZpbHRlckRhdGVDZmc/OiBGaWx0ZXJEYXRlQ29uZmlnXG4pOiBDb21tb25zRmlsdGVyTWV0YWRhdGEge1xuICAgIGxldCBkaXNwbGF5VmFsdWUgPSBmaWx0ZXI/LmRpc3BsYXlWYWx1ZSA/PyB2YWx1ZTtcbiAgICBsZXQgZGlzcGxheU1hdGNoTW9kZSA9IGZpbHRlcj8uZGlzcGxheU1hdGNoTW9kZSA/PyBtYXRjaE1vZGU7XG5cbiAgICAvLyB3aGVuIGVxdWFscyBpcyB1c2VkIG9uIGRhdGVzIHdpdGggdGltZSwgdGhlIGFjdHVhbCBmaWx0ZXIgd2lsbCBiZSBiZXR3ZWVuLCBidXQgZGlzcGxheWVkIGFzIGVxdWFsc1xuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlICYmICFmaWx0ZXJEYXRlQ2ZnPy52YWx1ZU5vVGltZSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuICYmXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID09PSAyICYmXG4gICAgICAgICAgICB2YWx1ZS5ldmVyeSh2ID0+IHYgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdiA9PT0gJ251bWJlcicpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKGZpbHRlckFyZURhdGVzRXF1YWwodmFsdWVbMF0sIHZhbHVlWzFdLCBmaWx0ZXJEYXRlQ2ZnKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlNYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzO1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IG5ldyBEYXRlKHZhbHVlWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FcXVhbHMgJiYgIXZhbHVlKSB7XG4gICAgICAgICAgICBtYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGUuQmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlICYmIGRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAvLyBkaXNwbGF5IHZhbHVlIGZvciBjYWxlbmRhciBjYW5ub3QgYmUgc3RyaW5nLCBjb252ZXJ0IHRvIGRhdGVcbiAgICAgICAgZGlzcGxheVZhbHVlID0gQXJyYXkuaXNBcnJheShkaXNwbGF5VmFsdWUpXG4gICAgICAgICAgICA/IGRpc3BsYXlWYWx1ZS5tYXAodiA9PiAoISh2IGluc3RhbmNlb2YgRGF0ZSkgPyBuZXcgRGF0ZSh2KSA6IHYpKVxuICAgICAgICAgICAgOiBkaXNwbGF5VmFsdWUgaW5zdGFuY2VvZiBEYXRlXG4gICAgICAgICAgICAgID8gZGlzcGxheVZhbHVlXG4gICAgICAgICAgICAgIDogbmV3IERhdGUoZGlzcGxheVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkJvb2xlYW4gJiYgZGlzcGxheVZhbHVlICE9IG51bGwgJiYgdHlwZW9mIGRpc3BsYXlWYWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIGRpc3BsYXlWYWx1ZSA9ICh0eXBlb2YgZGlzcGxheVZhbHVlID09PSAnc3RyaW5nJyAmJiBkaXNwbGF5VmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSB8fCBkaXNwbGF5VmFsdWUgPT09IDE7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5OdW1iZXIgJiYgZGlzcGxheVZhbHVlICE9IG51bGwgJiYgdHlwZW9mIGRpc3BsYXlWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgbnVtVmFsdWUgPSArZGlzcGxheVZhbHVlO1xuICAgICAgICBpZiAoIWlzTmFOKG51bVZhbHVlKSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gbnVtVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIG1hdGNoTW9kZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBkaXNwbGF5TWF0Y2hNb2RlLFxuICAgICAgICBkaXNwbGF5VmFsdWVcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU2V0TWV0YWRhdGFPbkRpc3BsYXlDaGFuZ2UoXG4gICAgZmlsdGVyOiBDb21tb25zRmlsdGVyTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgZGlzcGxheU1hdGNoTW9kZTogRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlLFxuICAgIGRpc3BsYXlWYWx1ZTogYW55LFxuICAgIGZpbHRlclR5cGU/OiBGaWx0ZXJUeXBlRW51bSxcbiAgICBmaWx0ZXJEYXRlQ2ZnPzogRmlsdGVyRGF0ZUNvbmZpZ1xuKSB7XG4gICAgbGV0IG1hdGNoTW9kZSA9IGRpc3BsYXlNYXRjaE1vZGU7XG4gICAgbGV0IHZhbHVlOiBTaW5nbGVPckFycmF5VHlwZTxOdWxsYWJsZTxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4+ID0gZGlzcGxheVZhbHVlO1xuXG4gICAgaWYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkRhdGUpIHtcbiAgICAgICAgaWYgKCFmaWx0ZXJEYXRlQ2ZnPy52YWx1ZU5vVGltZSAmJiBkaXNwbGF5VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChkaXNwbGF5TWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRXF1YWxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJvbURhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvRGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGF0ZUNmZz8uc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRlQ2ZnPy5zaG93U2Vjb25kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21EYXRlLnNldE1pbGxpc2Vjb25kcygwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0TWlsbGlzZWNvbmRzKDk5OSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21EYXRlLnNldFNlY29uZHMoMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9EYXRlLnNldFNlY29uZHMoNTksIDk5OSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbZnJvbURhdGUsIHRvRGF0ZV07XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlNYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5CZXR3ZWVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMiAmJiB2YWx1ZS5ldmVyeShpID0+IGkgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBpID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgaSA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyb21EYXRlID0gbmV3IERhdGUodmFsdWVbMF0gYXMgRGF0ZSB8IHN0cmluZyB8IG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0b0RhdGUgPSBuZXcgRGF0ZSh2YWx1ZVsxXSBhcyBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyQXJlRGF0ZXNFcXVhbChmcm9tRGF0ZSwgdG9EYXRlLCBmaWx0ZXJEYXRlQ2ZnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9EYXRlID0gbmV3IERhdGUoZnJvbURhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGVDZmc/LnNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlckRhdGVDZmc/LnNob3dTZWNvbmRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRGF0ZS5zZXRTZWNvbmRzKHRvRGF0ZS5nZXRTZWNvbmRzKCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0TWludXRlcyh0b0RhdGUuZ2V0TWludXRlcygpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUuc2V0RGF0ZSh0b0RhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gW2Zyb21EYXRlLCB0b0RhdGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hNb2RlID0gRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udmVydERhdGVUeXBlID0gZmlsdGVyRGF0ZUNmZz8udmFsdWVOb1RpbWUgPyAnZGF0ZScgOiAnZGF0ZS10aW1lJztcbiAgICAgICAgY29uc3QgY29udmVydERhdGVUaW1lT3B0cyA9IHtcbiAgICAgICAgICAgIHV0YzogZmlsdGVyRGF0ZUNmZz8udmFsdWVVdGMsXG4gICAgICAgICAgICBub01pbGxpczogZmlsdGVyRGF0ZUNmZz8udmFsdWVOb01pbGxpcyxcbiAgICAgICAgICAgIG5vVGltZXpvbmU6IGZpbHRlckRhdGVDZmc/LnZhbHVlTm9UaW1lem9uZVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlID09IG51bGxcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgPyB2YWx1ZS5maWx0ZXIoaSA9PiBpICE9IG51bGwpLm1hcChpID0+IGRhdGVUb0lzb1N0cmluZyhpLCBjb252ZXJ0RGF0ZVR5cGUsIGNvbnZlcnREYXRlVGltZU9wdHMpKVxuICAgICAgICAgICAgICAgICAgOiBkYXRlVG9Jc29TdHJpbmcodmFsdWUsIGNvbnZlcnREYXRlVHlwZSwgY29udmVydERhdGVUaW1lT3B0cyk7XG4gICAgfVxuICAgIGlmIChtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FeGlzdHMgfHwgbWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KSB7XG4gICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIGRpc3BsYXlNYXRjaE1vZGU6IGRpc3BsYXlNYXRjaE1vZGUsXG4gICAgICAgIG1hdGNoTW9kZTogbWF0Y2hNb2RlLFxuICAgICAgICBkaXNwbGF5VmFsdWU6IGRpc3BsYXlWYWx1ZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBjYXNlU2Vuc2l0aXZlOiBmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5TdHJpbmcgPyBmaWx0ZXI/LmNhc2VTZW5zaXRpdmUgOiB1bmRlZmluZWRcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQXJlRGF0ZXNFcXVhbChmcm9tRGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciwgdG9EYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyLCBmaWx0ZXJEYXRlQ2ZnPzogRmlsdGVyRGF0ZUNvbmZpZykge1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IGRhdGVUb0lzb1N0cmluZyhmcm9tRGF0ZSk7XG4gICAgY29uc3QgZW5kRGF0ZSA9IGRhdGVUb0lzb1N0cmluZyh0b0RhdGUpO1xuXG4gICAgLy8gMjAyMC0xMS0wMlQxMToxMjoxMi4wMDBcbiAgICBjb25zdCBjbXBMZW5ndGggPSBmaWx0ZXJEYXRlQ2ZnPy5zaG93VGltZSA/IChmaWx0ZXJEYXRlQ2ZnPy5zaG93U2Vjb25kcyA/IDE5IDogMTYpIDogMTA7XG5cbiAgICByZXR1cm4gc3RhcnREYXRlLnN1YnN0cmluZygwLCBjbXBMZW5ndGgpID09PSBlbmREYXRlLnN1YnN0cmluZygwLCBjbXBMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQXBwbHlTZXJpYWxpemF0aW9uQ29uZmlnVG9DbXAoY29uZmlnOiBDb21tb25zTW9kdWxlQ29uZmlnIHwgbnVsbCwgY21wU2VyQ2ZnOiBDb21tb25zU2VyaWFsaXphdGlvbkNvbmZpZykge1xuICAgIC8vIHNldCBkZWZhdWx0XG4gICAgY21wU2VyQ2ZnLmRhdGVUaW1lSW5VdGMgPSBmYWxzZTtcbiAgICBjbXBTZXJDZmcuZGF0ZVRpbWVXaXRoVGltZXpvbmUgPSB0cnVlO1xuICAgIGNtcFNlckNmZy5kYXRlVGltZVdpdGhNaWxsaXMgPSB0cnVlO1xuICAgIGNtcFNlckNmZy5maWx0ZXJzRGF0ZU9ubHlEaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8vIHNldCBjdXN0b21pemF0aW9uc1xuICAgIGlmIChjb25maWc/LnNlcmlhbGl6YXRpb24pIHtcbiAgICAgICAgaWYgKGNvbmZpZy5zZXJpYWxpemF0aW9uLmRhdGVUaW1lSW5VdGMgIT09IHVuZGVmaW5lZCkgY21wU2VyQ2ZnLmRhdGVUaW1lSW5VdGMgPSBjb25maWcuc2VyaWFsaXphdGlvbi5kYXRlVGltZUluVXRjO1xuICAgICAgICBpZiAoY29uZmlnLnNlcmlhbGl6YXRpb24uZGF0ZVRpbWVXaXRoVGltZXpvbmUgIT09IHVuZGVmaW5lZCkgY21wU2VyQ2ZnLmRhdGVUaW1lV2l0aFRpbWV6b25lID0gY29uZmlnLnNlcmlhbGl6YXRpb24uZGF0ZVRpbWVXaXRoVGltZXpvbmU7XG4gICAgICAgIGlmIChjb25maWcuc2VyaWFsaXphdGlvbi5kYXRlVGltZVdpdGhNaWxsaXMgIT09IHVuZGVmaW5lZCkgY21wU2VyQ2ZnLmRhdGVUaW1lV2l0aE1pbGxpcyA9IGNvbmZpZy5zZXJpYWxpemF0aW9uLmRhdGVUaW1lV2l0aE1pbGxpcztcbiAgICAgICAgaWYgKGNvbmZpZy5zZXJpYWxpemF0aW9uLmZpbHRlcnNEYXRlT25seURpc2FibGVkICE9PSB1bmRlZmluZWQpIGNtcFNlckNmZy5maWx0ZXJzRGF0ZU9ubHlEaXNhYmxlZCA9IGNvbmZpZy5zZXJpYWxpemF0aW9uLmZpbHRlcnNEYXRlT25seURpc2FibGVkO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckFkanVzdERpc3BsYXlWYWx1ZU9uTWF0Y2hNb2RlQ2hhbmdlKG1hdGNoTW9kZT86IEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZSwgdmFsdWU/OiBhbnkpOiBhbnkge1xuICAgIGlmIChtYXRjaE1vZGUgPT0gbnVsbCB8fCBtYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZS5FeGlzdHMgfHwgbWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuRG9lc05vdEV4aXN0KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTsgLy8gbmV2ZXIgY2hhbmdlLCBvbmx5IGNoYW5nZSBsYXRlciBpZiBzb21ldGhpbmcgZWxzZSBjaGFuZ2VzIGhlcmVcbiAgICB9XG4gICAgaWYgKG1hdGNoTW9kZSA9PT0gRmlsdGVyTWF0Y2hNb2RlLkJldHdlZW4pIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyBbdmFsdWUsIHZhbHVlXSA6IFtdO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCB8fCB2YWx1ZS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWVbMF0sIHZhbHVlWzBdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbdmFsdWVbMF0sIHZhbHVlWzFdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuSW4gfHwgbWF0Y2hNb2RlID09PSBGaWx0ZXJNYXRjaE1vZGUuTm90SW4pIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiB2YWx1ZSA9PSBudWxsID8gW10gOiBbdmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlWzBdIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJHZXREYXRlQ29uZmlnKGRlc2NyaXB0b3I/OiBGaWx0ZXJEZXNjcmlwdG9yPGFueSwgYW55Piwgc2VyQ2ZnPzogQ29tbW9uc1NlcmlhbGl6YXRpb25Db25maWcpOiBGaWx0ZXJEYXRlQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWRlc2NyaXB0b3IgfHwgZGVzY3JpcHRvci5maWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvd1RpbWUgPVxuICAgICAgICBkZXNjcmlwdG9yLmRhdGVQaWNrZXJTaG93VGltZSA/PyAoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0QXBwbHlUb0ZpZWxkICYmIGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCA/IGFuZ3VsYXJEYXRlRm9ybWF0SGFzVGltZShkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQpIDogZmFsc2UpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlTm9UaW1lOiBkZXNjcmlwdG9yLmRhdGVWYWx1ZU5vVGltZSB8fCAoIXNlckNmZz8uZmlsdGVyc0RhdGVPbmx5RGlzYWJsZWQgJiYgIXNob3dUaW1lKSxcbiAgICAgICAgdmFsdWVVdGM6IGRlc2NyaXB0b3IuZGF0ZVZhbHVlVXRjID8/IHNlckNmZz8uZGF0ZVRpbWVJblV0YyxcbiAgICAgICAgdmFsdWVOb1RpbWV6b25lOiBkZXNjcmlwdG9yLmRhdGVWYWx1ZU5vVGltZXpvbmUgPz8gIXNlckNmZz8uZGF0ZVRpbWVXaXRoVGltZXpvbmUsXG4gICAgICAgIHZhbHVlTm9NaWxsaXM6ICFzZXJDZmc/LmRhdGVUaW1lV2l0aE1pbGxpcyxcbiAgICAgICAgZm9ybWF0OlxuICAgICAgICAgICAgZGVzY3JpcHRvci5kYXRlUGlja2VyRm9ybWF0ID8/IChkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXRBcHBseVRvRmllbGQgJiYgZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0ID8gZnJvbUFuZ3VsYXJEYXRlRm9ybWF0VG9QcmltZShkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQpIDogdW5kZWZpbmVkKSxcbiAgICAgICAgc2hvd1RpbWU6IHNob3dUaW1lLFxuICAgICAgICBzaG93U2Vjb25kczpcbiAgICAgICAgICAgIHNob3dUaW1lICYmXG4gICAgICAgICAgICAoZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1NlY29uZHMgPz8gKGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdEFwcGx5VG9GaWVsZCAmJiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgPyBhbmd1bGFyRGF0ZUZvcm1hdEhhc1NlY29uZHMoZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0KSA6IGZhbHNlKSlcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyR2V0TnVtYmVyQ29uZmlnKGRlc2NyaXB0b3I/OiBGaWx0ZXJEZXNjcmlwdG9yPGFueSwgYW55Pik6IEZpbHRlck51bWJlckNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuZmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZUVudW0uTnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGxheUNmZyA9IGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdEFwcGx5VG9GaWVsZCAmJiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgPyBmcm9tQW5ndWxhck51bWJlckZvcm1hdFRvRnJhY3Rpb25zKGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZnJhY3Rpb25zTWluOiBkZXNjcmlwdG9yLm51bWJlck1pbkZyYWN0aW9uRGlnaXRzID8/IGRpc3BsYXlDZmc/LmZyYWN0aW9uc01pbixcbiAgICAgICAgZnJhY3Rpb25zTWF4OiBkZXNjcmlwdG9yLm51bWJlck1heEZyYWN0aW9uRGlnaXRzID8/IGRpc3BsYXlDZmc/LmZyYWN0aW9uc01heFxuICAgIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBmaWx0ZXIgZGVzY3JpcHRvcnMgZnJvbSBhbiBhcnJheSBvZiBnZW5lcmljIGZpbHRlciBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7RmlsdGVyR2VuZXJpY1Byb3BlcnR5W119IHByb3BlcnRpZXMgLSBUaGUgYXJyYXkgb2YgZmlsdGVyYWJsZSBwcm9wZXJ0aWVzLCB0aGVpciB0eXBlcyBhbmQgb3B0aW9ucy5cbiAqIEBwYXJhbSB7TG9va3VwRGF0YVByb3ZpZGVySW5zdDxzdHJpbmcsIGFueSwgYW55LCAnZmllbGQnPn0gW3ZhbHVlTG9va3VwXSAtIFRoZSBsb29rdXAgZGF0YSBwcm92aWRlciBmb3IgdmFsdWUgc3VnZ2VzdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWx0ZXJEZXNjcmlwdG9yc0Zyb21HZW5lcmljKFxuICAgIHByb3BlcnRpZXM6IEZpbHRlckdlbmVyaWNQcm9wZXJ0eVtdLFxuICAgIHZhbHVlTG9va3VwPzogTG9va3VwRGF0YVByb3ZpZGVySW5zdDxzdHJpbmcsIGFueSwgYW55LCAnZmllbGQnPlxuKTogRmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT5bXSB8IFtdIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2U8RmlsdGVyRGVzY3JpcHRvcjxhbnksIGFueT5bXT4oKGNyZWF0ZWRGaWx0ZXJEZXNjcmlwdG9ycywgZ2VuZXJpY0ZpbHRlcikgPT4ge1xuICAgICAgICAvLyB3aGVuIG5vIGdlbmVyaWMgdmFsdWUgbG9va3VwIGlzIHByb3ZpZGVkLCBsb29rdXAgZW51bSBmaWx0ZXJzIGFyZSB0cmVhdGVkIGFzIHN0cmluZyBmaWx0ZXJzXG4gICAgICAgIGNvbnN0IGZpbHRlclR5cGUgPSBnZW5lcmljRmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW0gJiYgdmFsdWVMb29rdXAgPT09IHVuZGVmaW5lZCA/IEZpbHRlclR5cGVFbnVtLlN0cmluZyA6IGdlbmVyaWNGaWx0ZXIudHlwZTtcbiAgICAgICAgY29uc3QgZmlsdGVyRGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJEZXNjcmlwdG9yKGdlbmVyaWNGaWx0ZXIucHJvcGVydHkpLmFzRmlsdGVyVHlwZShmaWx0ZXJUeXBlKS5hc0dlbmVyaWNGaWx0ZXIoKTtcbiAgICAgICAgaWYgKChnZW5lcmljRmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGVFbnVtLlN0cmluZyB8fCBnZW5lcmljRmlsdGVyLnR5cGUgPT09IEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW0pICYmIHZhbHVlTG9va3VwKSB7XG4gICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLndpdGhHZW5lcmljVmFsdWVQcm92aWRlcih2YWx1ZUxvb2t1cCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlckRlc2NyaXB0b3IgJiYgZ2VuZXJpY0ZpbHRlci5vcHRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZ2VuZXJpY0ZpbHRlci50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuYXNOdW1iZXIoZ2VuZXJpY0ZpbHRlci5vcHRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLmFzRGF0ZShnZW5lcmljRmlsdGVyLm9wdHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWx0ZXJEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICBjcmVhdGVkRmlsdGVyRGVzY3JpcHRvcnMucHVzaChmaWx0ZXJEZXNjcmlwdG9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3JlYXRlZEZpbHRlckRlc2NyaXB0b3JzO1xuICAgIH0sIFtdKTtcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { getI18nErrorParams, getI18nForError, toastMessage } from '@mediusinc/mng-commons/core';
|
|
2
|
-
import { getI18nForModel } from '@mediusinc/mng-commons/model';
|
|
3
|
-
/**
|
|
4
|
-
* Generates and displays a notification for a table-related error with localized error messages and details.
|
|
5
|
-
*
|
|
6
|
-
* @param {TranslateService} translate - The service used to handle localization and translations.
|
|
7
|
-
* @param {MessageService} messageService - The service used to manage and display messages.
|
|
8
|
-
* @param {TableDescriptorInst<any>} table - The table descriptor containing table-specific information and model data.
|
|
9
|
-
* @param {Error} error - The error object providing details about the error that occurred.
|
|
10
|
-
* @return {Message | null} The generated message object for the error notification or null if no notification was created.
|
|
11
|
-
*/
|
|
12
|
-
export function tableNotificationError(translate, messageService, table, error) {
|
|
13
|
-
const params = {
|
|
14
|
-
errorMessage: getI18nForError(translate, error) ?? error.message,
|
|
15
|
-
...getI18nErrorParams(error)
|
|
16
|
-
};
|
|
17
|
-
const tableErrorTitle = getI18nForModel(translate, table.model, 'table.error.title', { fallbackKey: 'general.error', params }) ?? undefined;
|
|
18
|
-
const tableErrorMessage = getI18nForModel(translate, table.model, 'table.error.message', { fallbackKey: 'general.errorMessage', params }) ?? undefined;
|
|
19
|
-
return toastMessage(tableErrorMessage ?? error.message, 'error', { messageService: messageService, title: tableErrorTitle, icon: 'pi-exclamation-triangle' });
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL2hlbHBlcnMvbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDOUYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRzdEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQTJCLEVBQUUsY0FBOEIsRUFBRSxLQUErQixFQUFFLEtBQVk7SUFDN0ksTUFBTSxNQUFNLEdBQUc7UUFDWCxZQUFZLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTztRQUNoRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztLQUMvQixDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUMxSSxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFDLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNySixPQUFPLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUMsQ0FBQyxDQUFDO0FBQ2hLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlLCBNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge2dldEkxOG5FcnJvclBhcmFtcywgZ2V0STE4bkZvckVycm9yLCB0b2FzdE1lc3NhZ2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge2dldEkxOG5Gb3JNb2RlbH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5pbXBvcnQge1RhYmxlRGVzY3JpcHRvckluc3R9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYW5kIGRpc3BsYXlzIGEgbm90aWZpY2F0aW9uIGZvciBhIHRhYmxlLXJlbGF0ZWQgZXJyb3Igd2l0aCBsb2NhbGl6ZWQgZXJyb3IgbWVzc2FnZXMgYW5kIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHtUcmFuc2xhdGVTZXJ2aWNlfSB0cmFuc2xhdGUgLSBUaGUgc2VydmljZSB1c2VkIHRvIGhhbmRsZSBsb2NhbGl6YXRpb24gYW5kIHRyYW5zbGF0aW9ucy5cbiAqIEBwYXJhbSB7TWVzc2FnZVNlcnZpY2V9IG1lc3NhZ2VTZXJ2aWNlIC0gVGhlIHNlcnZpY2UgdXNlZCB0byBtYW5hZ2UgYW5kIGRpc3BsYXkgbWVzc2FnZXMuXG4gKiBAcGFyYW0ge1RhYmxlRGVzY3JpcHRvckluc3Q8YW55Pn0gdGFibGUgLSBUaGUgdGFibGUgZGVzY3JpcHRvciBjb250YWluaW5nIHRhYmxlLXNwZWNpZmljIGluZm9ybWF0aW9uIGFuZCBtb2RlbCBkYXRhLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgLSBUaGUgZXJyb3Igb2JqZWN0IHByb3ZpZGluZyBkZXRhaWxzIGFib3V0IHRoZSBlcnJvciB0aGF0IG9jY3VycmVkLlxuICogQHJldHVybiB7TWVzc2FnZSB8IG51bGx9IFRoZSBnZW5lcmF0ZWQgbWVzc2FnZSBvYmplY3QgZm9yIHRoZSBlcnJvciBub3RpZmljYXRpb24gb3IgbnVsbCBpZiBubyBub3RpZmljYXRpb24gd2FzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZU5vdGlmaWNhdGlvbkVycm9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCB0YWJsZTogVGFibGVEZXNjcmlwdG9ySW5zdDxhbnk+LCBlcnJvcjogRXJyb3IpOiBNZXNzYWdlIHwgbnVsbCB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICBlcnJvck1lc3NhZ2U6IGdldEkxOG5Gb3JFcnJvcih0cmFuc2xhdGUsIGVycm9yKSA/PyBlcnJvci5tZXNzYWdlLFxuICAgICAgICAuLi5nZXRJMThuRXJyb3JQYXJhbXMoZXJyb3IpXG4gICAgfTtcbiAgICBjb25zdCB0YWJsZUVycm9yVGl0bGUgPSBnZXRJMThuRm9yTW9kZWwodHJhbnNsYXRlLCB0YWJsZS5tb2RlbCwgJ3RhYmxlLmVycm9yLnRpdGxlJywge2ZhbGxiYWNrS2V5OiAnZ2VuZXJhbC5lcnJvcicsIHBhcmFtc30pID8/IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0YWJsZUVycm9yTWVzc2FnZSA9IGdldEkxOG5Gb3JNb2RlbCh0cmFuc2xhdGUsIHRhYmxlLm1vZGVsLCAndGFibGUuZXJyb3IubWVzc2FnZScsIHtmYWxsYmFja0tleTogJ2dlbmVyYWwuZXJyb3JNZXNzYWdlJywgcGFyYW1zfSkgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0b2FzdE1lc3NhZ2UodGFibGVFcnJvck1lc3NhZ2UgPz8gZXJyb3IubWVzc2FnZSwgJ2Vycm9yJywge21lc3NhZ2VTZXJ2aWNlOiBtZXNzYWdlU2VydmljZSwgdGl0bGU6IHRhYmxlRXJyb3JUaXRsZSwgaWNvbjogJ3BpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJ30pO1xufVxuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* generates table layout preferences key used when saving preferences to localstorage
|
|
3
|
-
* @param typeName string, required
|
|
4
|
-
* @param url string, required
|
|
5
|
-
* @param trackProperty string, not required
|
|
6
|
-
*/
|
|
7
|
-
export function generateTableLayoutPrefsKey(typeName, url, trackProperty) {
|
|
8
|
-
return `commonsTableLayoutPrefs~~${typeName}~~${trackProperty ?? url.split('?')[0].split('#')[0]}`;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LXByZWZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL2hlbHBlcnMvdGFibGUtbGF5b3V0LXByZWZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQWdCLEVBQUUsR0FBVyxFQUFFLGFBQXNCO0lBQzdGLE9BQU8sNEJBQTRCLFFBQVEsS0FBSyxhQUFhLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBnZW5lcmF0ZXMgdGFibGUgbGF5b3V0IHByZWZlcmVuY2VzIGtleSB1c2VkIHdoZW4gc2F2aW5nIHByZWZlcmVuY2VzIHRvIGxvY2Fsc3RvcmFnZVxuICogQHBhcmFtIHR5cGVOYW1lIHN0cmluZywgcmVxdWlyZWRcbiAqIEBwYXJhbSB1cmwgc3RyaW5nLCByZXF1aXJlZFxuICogQHBhcmFtIHRyYWNrUHJvcGVydHkgc3RyaW5nLCBub3QgcmVxdWlyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVGFibGVMYXlvdXRQcmVmc0tleSh0eXBlTmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZywgdHJhY2tQcm9wZXJ0eT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjb21tb25zVGFibGVMYXlvdXRQcmVmc35+JHt0eXBlTmFtZX1+fiR7dHJhY2tQcm9wZXJ0eSA/PyB1cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdfWA7XG59XG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export function tableCreateFilterMeta(paramsWithDefaults) {
|
|
2
|
-
const primeFilterMeta = {};
|
|
3
|
-
// if any filter is present, no default filters should be applied!
|
|
4
|
-
if (paramsWithDefaults?.filters) {
|
|
5
|
-
Object.entries(paramsWithDefaults.filters).forEach(([key, value]) => {
|
|
6
|
-
primeFilterMeta[key] = {
|
|
7
|
-
value: value?.value,
|
|
8
|
-
matchMode: value?.matchMode,
|
|
9
|
-
caseSensitive: value?.caseSensitive
|
|
10
|
-
};
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
return primeFilterMeta;
|
|
14
|
-
}
|
|
15
|
-
export function tableCreateSortMeta(paramsWithDefaults) {
|
|
16
|
-
if (paramsWithDefaults?.sort !== undefined && Array.isArray(paramsWithDefaults?.sort) && paramsWithDefaults?.sort.length > 0) {
|
|
17
|
-
return paramsWithDefaults?.sort.map(s => ({
|
|
18
|
-
field: s.property,
|
|
19
|
-
order: s.ascending ? 1 : -1
|
|
20
|
-
}));
|
|
21
|
-
}
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsa0JBQW1DO0lBQ3JFLE1BQU0sZUFBZSxHQUF5QyxFQUFFLENBQUM7SUFDakUsa0VBQWtFO0lBQ2xFLElBQUksa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2hFLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDbkIsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLO2dCQUNuQixTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVM7Z0JBQzNCLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYTthQUN0QyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxrQkFBbUM7SUFDbkUsSUFBSSxrQkFBa0IsRUFBRSxJQUFJLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzSCxPQUFPLGtCQUFrQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQy9CLENBQUMsQ0FBQyxFQUFFLENBQ0EsQ0FBVTtZQUNOLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUIsQ0FBQSxDQUNSLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U29ydE1ldGF9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtDb21tb25zRmlsdGVyTWV0YWRhdGEsIERhdGFMaXN0UGFyYW1zfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVDcmVhdGVGaWx0ZXJNZXRhKHBhcmFtc1dpdGhEZWZhdWx0cz86IERhdGFMaXN0UGFyYW1zKSB7XG4gICAgY29uc3QgcHJpbWVGaWx0ZXJNZXRhOiB7W3M6IHN0cmluZ106IENvbW1vbnNGaWx0ZXJNZXRhZGF0YX0gPSB7fTtcbiAgICAvLyBpZiBhbnkgZmlsdGVyIGlzIHByZXNlbnQsIG5vIGRlZmF1bHQgZmlsdGVycyBzaG91bGQgYmUgYXBwbGllZCFcbiAgICBpZiAocGFyYW1zV2l0aERlZmF1bHRzPy5maWx0ZXJzKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHBhcmFtc1dpdGhEZWZhdWx0cy5maWx0ZXJzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIHByaW1lRmlsdGVyTWV0YVtrZXldID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZT8udmFsdWUsXG4gICAgICAgICAgICAgICAgbWF0Y2hNb2RlOiB2YWx1ZT8ubWF0Y2hNb2RlLFxuICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmU6IHZhbHVlPy5jYXNlU2Vuc2l0aXZlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHByaW1lRmlsdGVyTWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlQ3JlYXRlU29ydE1ldGEocGFyYW1zV2l0aERlZmF1bHRzPzogRGF0YUxpc3RQYXJhbXMpOiBTb3J0TWV0YVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyYW1zV2l0aERlZmF1bHRzPy5zb3J0ICE9PSB1bmRlZmluZWQgJiYgQXJyYXkuaXNBcnJheShwYXJhbXNXaXRoRGVmYXVsdHM/LnNvcnQpICYmIHBhcmFtc1dpdGhEZWZhdWx0cz8uc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBwYXJhbXNXaXRoRGVmYXVsdHM/LnNvcnQubWFwKFxuICAgICAgICAgICAgcyA9PlxuICAgICAgICAgICAgICAgIDxTb3J0TWV0YT57XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBzLnByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogcy5hc2NlbmRpbmcgPyAxIDogLTFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
package/esm2022/table/index.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// components
|
|
2
|
-
export * from './components/column-filter/column-filter.component';
|
|
3
|
-
export * from './components/column-value/column-value.component';
|
|
4
|
-
export * from './components/filter/filter-active-tag/filter-active-tag.component';
|
|
5
|
-
export * from './components/filter/filter-form/filter-form.component';
|
|
6
|
-
export * from './components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component';
|
|
7
|
-
export * from './components/table/table.component';
|
|
8
|
-
// helpers
|
|
9
|
-
export * from './helpers/filters';
|
|
10
|
-
export * from './helpers/notification';
|
|
11
|
-
export * from './helpers/table-layout-prefs';
|
|
12
|
-
// models
|
|
13
|
-
export * from './models/column-preferences.model';
|
|
14
|
-
export * from './models/filter.model';
|
|
15
|
-
// pipes
|
|
16
|
-
export * from './pipes/filter-value.pipe';
|
|
17
|
-
export * from './pipes/locale-default-row-class.pipe';
|
|
18
|
-
export * from './pipes/table-column-filter-class.pipe';
|
|
19
|
-
// services
|
|
20
|
-
export * from './services/table-data.service';
|
|
21
|
-
export * from './services/table-feature-config.token';
|
|
22
|
-
// provide
|
|
23
|
-
export * from './provide';
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90YWJsZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFVBQVU7QUFDVixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxTQUFTO0FBQ1QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFFBQVE7QUFDUixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxXQUFXO0FBQ1gsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELFVBQVU7QUFDVixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHNcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tZmlsdGVyL2NvbHVtbi1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tdmFsdWUvY29sdW1uLXZhbHVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1hY3RpdmUtdGFnL2ZpbHRlci1hY3RpdmUtdGFnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1mb3JtL2ZpbHRlci1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci1vdmVybGF5LXdpdGgtdGFnL2ZpbHRlci1vdmVybGF5LXdpdGgtdGFnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2ZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvdGFibGUtbGF5b3V0LXByZWZzJztcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW4tcHJlZmVyZW5jZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZmlsdGVyLm1vZGVsJztcblxuLy8gcGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlsdGVyLXZhbHVlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9sb2NhbGUtZGVmYXVsdC1yb3ctY2xhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3RhYmxlLWNvbHVtbi1maWx0ZXItY2xhc3MucGlwZSc7XG5cbi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLWRhdGEuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLWZlYXR1cmUtY29uZmlnLnRva2VuJztcblxuLy8gcHJvdmlkZVxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlJztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGFibGUvc3JjL21lZGl1c2luYy1tbmctY29tbW9ucy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXByZWZlcmVuY2VzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL21vZGVscy9jb2x1bW4tcHJlZmVyZW5jZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sdW1uRGVzY3JpcHRvciwgU29ydERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpJztcblxuaW1wb3J0IHtGaWx0ZXJNZXRhZGF0YX0gZnJvbSAnLi9maWx0ZXIubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbldpdGhQcmVmZXJlbmNlcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBkZXNjcmlwdG9yOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgYW55PjtcbiAgICBmaWx0ZXI/OiBGaWx0ZXJNZXRhZGF0YTtcbiAgICBzb3J0PzogU29ydERlc2NyaXB0b3I8YW55PjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBpc1Zpc2libGU6IGJvb2xlYW47XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgb3JkZXJJZHg/OiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGFibGUvc3JjL21vZGVscy9maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2VsZWN0SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge0NvbW1vbnNGaWx0ZXJNZXRhZGF0YSwgRmlsdGVyTWF0Y2hNb2RlRXh0ZW5kZWRUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtGaWx0ZXJEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2ZpbHRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyTWV0YWRhdGEge1xuICAgIGRlc2NyaXB0b3I6IEZpbHRlckRlc2NyaXB0b3I8YW55LCBhbnk+O1xuICAgIG1hdGNoTW9kZXM6IFNlbGVjdEl0ZW1bXTtcbiAgICBkZWZhdWx0TWF0Y2hNb2RlOiBGaWx0ZXJNYXRjaE1vZGVFeHRlbmRlZFR5cGU7XG4gICAgZGF0ZUNvbmZpZz86IEZpbHRlckRhdGVDb25maWc7XG4gICAgbnVtYmVyQ29uZmlnPzogRmlsdGVyTnVtYmVyQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclN0YXRlIGV4dGVuZHMgQ29tbW9uc0ZpbHRlck1ldGFkYXRhIHtcbiAgICBtZXRhZGF0YTogRmlsdGVyTWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRm9ybUVtaXRFdmVudCB7XG4gICAgcHJvcGVydHk6IHN0cmluZztcbiAgICBtYXRjaE1vZGU6IEZpbHRlck1hdGNoTW9kZUV4dGVuZGVkVHlwZTtcbiAgICB2YWx1ZT86IGFueSB8IG51bGwgfCBhbnlbXTtcbiAgICBjYXNlU2Vuc2l0aXZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckFjdGl2ZVRhZ0V2ZW50IHtcbiAgICBmaWx0ZXI6IEZpbHRlclN0YXRlO1xuICAgIGV2ZW50PzogRXZlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGF0ZUNvbmZpZyB7XG4gICAgdmFsdWVVdGM/OiBib29sZWFuO1xuICAgIHZhbHVlTm9UaW1lPzogYm9vbGVhbjtcbiAgICB2YWx1ZU5vVGltZXpvbmU/OiBib29sZWFuO1xuICAgIHZhbHVlTm9NaWxsaXM/OiBib29sZWFuO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBzaG93VGltZT86IGJvb2xlYW47IC8vIGRhdGUsIGhvdXIgYW5kIG1pbnV0ZXNcbiAgICBzaG93U2Vjb25kcz86IGJvb2xlYW47IC8vIGRhdGUsIGhvdXIsIG1pbnV0ZXMgYW5kIHNlY29uZHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJOdW1iZXJDb25maWcge1xuICAgIGZyYWN0aW9uc01pbj86IG51bWJlcjtcbiAgICBmcmFjdGlvbnNNYXg/OiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { DatePipe, DecimalPipe } from '@angular/common';
|
|
2
|
-
import { LOCALE_ID, Pipe, inject } from '@angular/core';
|
|
3
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
-
import { ReplaySubject } from 'rxjs';
|
|
5
|
-
import { BooleanPipe, EnumPipe } from '@mediusinc/mng-commons/core';
|
|
6
|
-
import { FilterTypeEnum } from '@mediusinc/mng-commons/filter';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class FilterValuePipe {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.locale = inject(LOCALE_ID);
|
|
11
|
-
this.translate = inject(TranslateService);
|
|
12
|
-
this.enumPipe = new EnumPipe();
|
|
13
|
-
this.subject = new ReplaySubject(1);
|
|
14
|
-
}
|
|
15
|
-
transform(value, descriptor) {
|
|
16
|
-
const valTransform = this.prepareValueTransform(value, descriptor);
|
|
17
|
-
this.subscription?.unsubscribe();
|
|
18
|
-
if (valTransform.translate) {
|
|
19
|
-
this.subscription = this.translate.stream(valTransform.valueArr).subscribe(i18n => {
|
|
20
|
-
this.subject.next(valTransform.valueArr.map(k => i18n[k]).join(', '));
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
this.subject.next(valTransform.valueArr.join(', '));
|
|
25
|
-
}
|
|
26
|
-
return this.subject.asObservable();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* If returns a string, this represents i18n key that must go through translation. If translation is not needed, undefined is returned.
|
|
30
|
-
*/
|
|
31
|
-
prepareValueTransform(value, descriptor) {
|
|
32
|
-
const result = {
|
|
33
|
-
translate: false,
|
|
34
|
-
valueArr: Array.isArray(value) ? value : [value]
|
|
35
|
-
};
|
|
36
|
-
switch (descriptor?.filterType) {
|
|
37
|
-
case FilterTypeEnum.Date:
|
|
38
|
-
// eslint-disable-next-line no-case-declarations
|
|
39
|
-
const datePipe = new DatePipe(this.locale);
|
|
40
|
-
result.valueArr = result.valueArr.map(v => datePipe.transform(v, descriptor.displayFormat, descriptor.locale));
|
|
41
|
-
break;
|
|
42
|
-
case FilterTypeEnum.Number:
|
|
43
|
-
// eslint-disable-next-line no-case-declarations
|
|
44
|
-
const decimalPipe = new DecimalPipe(this.locale);
|
|
45
|
-
result.valueArr = result.valueArr.map(v => decimalPipe.transform(v, descriptor.displayFormat, descriptor.locale));
|
|
46
|
-
break;
|
|
47
|
-
case FilterTypeEnum.Boolean:
|
|
48
|
-
// eslint-disable-next-line no-case-declarations
|
|
49
|
-
const booleanPipe = new BooleanPipe();
|
|
50
|
-
result.valueArr = result.valueArr.map(v => booleanPipe.transform(v));
|
|
51
|
-
result.translate = true;
|
|
52
|
-
break;
|
|
53
|
-
case FilterTypeEnum.LookupEnum:
|
|
54
|
-
// eslint-disable-next-line no-case-declarations
|
|
55
|
-
const enumPipe = new EnumPipe();
|
|
56
|
-
result.valueArr = result.valueArr.map(v => enumPipe.transform(v, descriptor.enum));
|
|
57
|
-
result.translate = true;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
ngOnDestroy() {
|
|
63
|
-
this.subscription?.unsubscribe();
|
|
64
|
-
this.subject.complete();
|
|
65
|
-
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FilterValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
67
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: FilterValuePipe, isStandalone: true, name: "mngFilterValue" }); }
|
|
68
|
-
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FilterValuePipe, decorators: [{
|
|
70
|
-
type: Pipe,
|
|
71
|
-
args: [{
|
|
72
|
-
name: 'mngFilterValue',
|
|
73
|
-
standalone: true,
|
|
74
|
-
pure: true
|
|
75
|
-
}]
|
|
76
|
-
}] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9zcmMvcGlwZXMvZmlsdGVyLXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFhLElBQUksRUFBaUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBYSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQStDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQU8zRyxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQU1xQixXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUczQyxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQU0sQ0FBQyxDQUFDLENBQUM7S0F5RHZDO0lBdkRHLFNBQVMsQ0FBQyxLQUFjLEVBQUUsVUFBdUM7UUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFD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QUFlOzZHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBTDNCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxJQUFJO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlUGlwZSwgRGVjaW1hbFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xPQ0FMRV9JRCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0Jvb2xlYW5QaXBlLCBFbnVtUGlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvciwgRmlsdGVyTG9va3VwRW51bURlc2NyaXB0b3IsIEZpbHRlclR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2ZpbHRlcic7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbW5nRmlsdGVyVmFsdWUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJWYWx1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnVtUGlwZSA9IG5ldyBFbnVtUGlwZSgpO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgc3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIGRlc2NyaXB0b3I/OiBGaWx0ZXJEZXNjcmlwdG9yPGFueSwgYW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHZhbFRyYW5zZm9ybSA9IHRoaXMucHJlcGFyZVZhbHVlVHJhbnNmb3JtKHZhbHVlLCBkZXNjcmlwdG9yKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHZhbFRyYW5zZm9ybS50cmFuc2xhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGUuc3RyZWFtKHZhbFRyYW5zZm9ybS52YWx1ZUFycikuc3Vic2NyaWJlKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ViamVjdC5uZXh0KHZhbFRyYW5zZm9ybS52YWx1ZUFyci5tYXAoayA9PiBpMThuW2tdKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdWJqZWN0Lm5leHQodmFsVHJhbnNmb3JtLnZhbHVlQXJyLmpvaW4oJywgJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiByZXR1cm5zIGEgc3RyaW5nLCB0aGlzIHJlcHJlc2VudHMgaTE4biBrZXkgdGhhdCBtdXN0IGdvIHRocm91Z2ggdHJhbnNsYXRpb24uIElmIHRyYW5zbGF0aW9uIGlzIG5vdCBuZWVkZWQsIHVuZGVmaW5lZCBpcyByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVWYWx1ZVRyYW5zZm9ybSh2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRvcj86IEZpbHRlckRlc2NyaXB0b3I8YW55LCBhbnk+KToge3RyYW5zbGF0ZTogYm9vbGVhbjsgdmFsdWVBcnI6IGFueVtdfSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZUFycjogQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cbiAgICAgICAgfTtcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yPy5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5sb2NhbGUpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC52YWx1ZUFyciA9IHJlc3VsdC52YWx1ZUFyci5tYXAodiA9PiBkYXRlUGlwZS50cmFuc2Zvcm0odiBhcyBEYXRlLCBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQsIGRlc2NyaXB0b3IubG9jYWxlKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLk51bWJlcjpcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY2FzZS1kZWNsYXJhdGlvbnNcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLmxvY2FsZSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlQXJyID0gcmVzdWx0LnZhbHVlQXJyLm1hcCh2ID0+IGRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2IGFzIG51bWJlciwgZGVzY3JpcHRvci5kaXNwbGF5Rm9ybWF0LCBkZXNjcmlwdG9yLmxvY2FsZSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvb2xlYW5QaXBlID0gbmV3IEJvb2xlYW5QaXBlKCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnZhbHVlQXJyID0gcmVzdWx0LnZhbHVlQXJyLm1hcCh2ID0+IGJvb2xlYW5QaXBlLnRyYW5zZm9ybSh2KSk7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnRyYW5zbGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkxvb2t1cEVudW06XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNhc2UtZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgY29uc3QgZW51bVBpcGUgPSBuZXcgRW51bVBpcGUoKTtcbiAgICAgICAgICAgICAgICByZXN1bHQudmFsdWVBcnIgPSByZXN1bHQudmFsdWVBcnIubWFwKHYgPT4gZW51bVBpcGUudHJhbnNmb3JtKHYsIChkZXNjcmlwdG9yIGFzIEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yPGFueSwgYW55PikuZW51bSkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC50cmFuc2xhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
|