@mediusinc/mng-commons 2.6.0-rc.2 → 3.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -4
- package/dev-scripts/version-info.js +1 -0
- package/esm2022/lib/api/models/filter-param.model.mjs +33 -0
- package/esm2022/lib/api/models/query-param.model.mjs +68 -0
- package/esm2022/lib/api/models/query-result.model.mjs +24 -0
- package/esm2022/lib/api/utils/medius-rest.util.mjs +255 -0
- package/esm2022/lib/api/utils/object-serializer.util.mjs +258 -0
- package/esm2022/lib/components/action/action.component.mjs +304 -0
- package/esm2022/lib/components/action/editor/action-editor.component.mjs +386 -0
- package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +54 -0
- package/{esm2020 → esm2022}/lib/components/action/models/action-execution.model.mjs +1 -1
- package/esm2022/lib/components/action/models/tableview-action-default-categories.model.mjs +11 -0
- package/{esm2020 → esm2022}/lib/components/action/route/action-route.component.mjs +4 -4
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +300 -0
- package/{esm2020 → esm2022}/lib/components/form/date-range/date-range.component.mjs +5 -5
- package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +212 -0
- package/esm2022/lib/components/form/editor/form-editor.component.mjs +288 -0
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +4 -4
- package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +19 -0
- package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
- package/esm2022/lib/components/form/models/form-editor.event.mjs +49 -0
- package/esm2022/lib/components/layout/breadcrumb.component.mjs +34 -0
- package/{esm2020 → esm2022}/lib/components/layout/footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/layout/main-layout.component.mjs +4 -4
- package/esm2022/lib/components/layout/menu-item.component.mjs +297 -0
- package/{esm2020 → esm2022}/lib/components/layout/menu.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/layout/services/main-layout.component.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/layout/topbar-user.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/layout/topbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/layout/version.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/pages/error/error-page.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/pages/not-found/not-found-page.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/tableview/models/table.event.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/tableview/route/tableview-route.abstract.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/tableview/route/tableview-route.component.mjs +4 -4
- package/esm2022/lib/components/tableview/table/column-filter/column-filter.component.mjs +124 -0
- package/esm2022/lib/components/tableview/table/column-value/column-value.component.mjs +110 -0
- package/esm2022/lib/components/tableview/table/table.component.mjs +747 -0
- package/esm2022/lib/components/tableview/tableview.component.mjs +147 -0
- package/esm2022/lib/descriptors/action/action.descriptor.mjs +634 -0
- package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +304 -0
- package/esm2022/lib/descriptors/table/table.descriptor.mjs +542 -0
- package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +352 -0
- package/{esm2020 → esm2022}/lib/descriptors/types/table.type.mjs +1 -5
- package/{esm2020 → esm2022}/lib/directives/component.directive.mjs +5 -5
- package/{esm2020 → esm2022}/lib/directives/template.directive.mjs +5 -5
- package/esm2022/lib/mng-commons.module.mjs +465 -0
- package/{esm2020 → esm2022}/lib/pipes/boolean.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/class-map.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/enum.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/enumerate-async.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/enumerate.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/getter.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/i18n-property.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/json-path.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/locale-default-row-class.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/parametrize.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/template.pipe.mjs +4 -4
- package/esm2022/lib/router/route-builder.mjs +308 -0
- package/esm2022/lib/router/routes-builder.mjs +61 -0
- package/esm2022/lib/security/authorization.guard.mjs +15 -0
- package/{esm2020 → esm2022}/lib/security/authorization.service.mjs +4 -4
- package/esm2022/lib/services/action-executor.service.mjs +703 -0
- package/{esm2020 → esm2022}/lib/services/commons.service.mjs +4 -4
- package/esm2022/lib/services/configuration.service.mjs +150 -0
- package/{esm2020 → esm2022}/lib/services/internal/commons-init.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/mng-localstorage-config.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/navigation.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/router.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/version.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/view-container.component.service.mjs +4 -4
- package/esm2022/lib/styles/styles.util.mjs +42 -0
- package/esm2022/lib/types/type.model.mjs +2 -0
- package/esm2022/lib/utils/date.util.mjs +120 -0
- package/esm2022/lib/utils/tableview.util.mjs +193 -0
- package/esm2022/lib/utils/type.util.mjs +94 -0
- package/{fesm2020 → fesm2022}/mediusinc-mng-commons.mjs +930 -908
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -0
- package/lib/api/utils/medius-rest.util.d.ts +4 -3
- package/lib/components/action/action.component.d.ts +1 -1
- package/lib/components/action/editor/action-editor.component.d.ts +6 -9
- package/lib/components/action/localization/data-language-dropdown.component.d.ts +1 -1
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +4 -4
- package/lib/components/form/date-range/date-range.component.d.ts +1 -1
- package/lib/components/form/dropdown/dropdown.component.d.ts +3 -3
- package/lib/components/form/editor/form-editor.component.d.ts +1 -1
- package/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.d.ts +1 -1
- package/lib/components/layout/breadcrumb.component.d.ts +5 -0
- package/lib/components/layout/menu-item.component.d.ts +1 -1
- package/lib/components/layout/version.component.d.ts +1 -1
- package/lib/components/tableview/models/table.event.d.ts +2 -2
- package/lib/components/tableview/route/tableview-route.component.d.ts +1 -1
- package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +2 -2
- package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -1
- package/lib/components/tableview/table/table.component.d.ts +6 -7
- package/lib/components/tableview/tableview.component.d.ts +7 -11
- package/lib/descriptors/editor/editor.descriptor.d.ts +1 -1
- package/lib/descriptors/table/table.descriptor.d.ts +7 -1
- package/lib/descriptors/tableview/tableview.descriptor.d.ts +4 -4
- package/lib/descriptors/types/table.type.d.ts +1 -5
- package/lib/directives/component.directive.d.ts +1 -1
- package/lib/directives/template.directive.d.ts +1 -1
- package/lib/router/route-builder.d.ts +6 -10
- package/lib/router/routes-builder.d.ts +0 -5
- package/lib/security/authorization.guard.d.ts +2 -11
- package/lib/services/action-executor.service.d.ts +1 -15
- package/lib/utils/route.util.d.ts +8 -19
- package/lib/utils/tableview.util.d.ts +5 -0
- package/package.json +13 -20
- package/esm2020/lib/api/models/filter-param.model.mjs +0 -33
- package/esm2020/lib/api/models/query-param.model.mjs +0 -68
- package/esm2020/lib/api/models/query-result.model.mjs +0 -24
- package/esm2020/lib/api/utils/medius-rest.util.mjs +0 -246
- package/esm2020/lib/api/utils/object-serializer.util.mjs +0 -258
- package/esm2020/lib/components/action/action.component.mjs +0 -303
- package/esm2020/lib/components/action/editor/action-editor.component.mjs +0 -390
- package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +0 -47
- package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +0 -11
- package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +0 -303
- package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +0 -214
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +0 -288
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -19
- package/esm2020/lib/components/form/models/form-editor.event.mjs +0 -49
- package/esm2020/lib/components/layout/breadcrumb.component.mjs +0 -19
- package/esm2020/lib/components/layout/menu-item.component.mjs +0 -294
- package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +0 -126
- package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +0 -108
- package/esm2020/lib/components/tableview/table/table.component.mjs +0 -749
- package/esm2020/lib/components/tableview/tableview.component.mjs +0 -146
- package/esm2020/lib/descriptors/action/action.descriptor.mjs +0 -634
- package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +0 -304
- package/esm2020/lib/descriptors/table/table.descriptor.mjs +0 -521
- package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +0 -347
- package/esm2020/lib/mng-commons.module.mjs +0 -469
- package/esm2020/lib/router/route-builder.mjs +0 -312
- package/esm2020/lib/router/routes-builder.mjs +0 -68
- package/esm2020/lib/security/authorization.guard.mjs +0 -30
- package/esm2020/lib/services/action-executor.service.mjs +0 -722
- package/esm2020/lib/services/configuration.service.mjs +0 -150
- package/esm2020/lib/styles/styles.util.mjs +0 -42
- package/esm2020/lib/types/type.model.mjs +0 -2
- package/esm2020/lib/utils/date.util.mjs +0 -120
- package/esm2020/lib/utils/tableview.util.mjs +0 -171
- package/esm2020/lib/utils/type.util.mjs +0 -94
- package/fesm2015/mediusinc-mng-commons.mjs +0 -15900
- package/fesm2015/mediusinc-mng-commons.mjs.map +0 -1
- package/fesm2020/mediusinc-mng-commons.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/builders/query-param.builder.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/filter-match-type.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/mappers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/query-mode.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/serialization.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/services/api.abstract.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/services/crud-api.abstract.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/services/get-all-api.abstract.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/action/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/action/models/action-component.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/action/models/action-confirmation-service.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/action/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/formly.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-field.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/models/field-action-context.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/models/form-editor.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/layout/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/layout/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/pages/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tableview/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tableview/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tableview/table/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tableview/table/models/table.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/base.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/editor.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/lookup.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/table.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/tableview-crud.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-providers/tableview.data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/action/action-button.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/action/action-confirmation.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/action/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/editor/field-validation.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/editor/field.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/editor/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/filter/filter.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/filter/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/interfaces/field-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/model.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/table/column.descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/tableview/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/action.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/column.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/editor.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/field.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/filter.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/descriptors/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/column-value.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/error-internal.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/error.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/menu.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/tableview-attr.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/user.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/view-container.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/models/internal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/provide-commons.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/router/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/router/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/router/models/router.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/router/tableview-route-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/authorization.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/model/authorization.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/model/permission-service.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/security/model/permissions.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/error-mapper.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/internal/commons-init.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/internal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/providers/config-service.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/providers/formly-config.provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/providers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/tokens/browser-storage.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/tokens/commons-init.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/tokens/default-setting.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/tokens/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/tokens/module-config.token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/styles/button-style.builder.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/styles/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/styles/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/styles/models/style-level.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/styles/models/style-size.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/i18n.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/mng-localstorage-config-value.type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/type.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/action-data-provider.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/editor-formly.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/enum.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/export.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/file.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/i18n.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/model.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/notification.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/object.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/route.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/string.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/field.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/validators/index.mjs +0 -0
- /package/{esm2020 → esm2022}/mediusinc-mng-commons.mjs +0 -0
|
@@ -5,7 +5,7 @@ export declare class RouteUtil {
|
|
|
5
5
|
static adjustMenuLazyChildrenRouterLinks(rootMenuItem: MenuItem, lazyChildren: Array<MenuItem>): {
|
|
6
6
|
label?: string | undefined;
|
|
7
7
|
icon?: string | undefined;
|
|
8
|
-
command
|
|
8
|
+
command?(event: import("primeng/api").MenuItemCommandEvent): void;
|
|
9
9
|
url?: string | undefined;
|
|
10
10
|
items?: MenuItem[] | undefined;
|
|
11
11
|
expanded?: boolean | undefined;
|
|
@@ -19,7 +19,9 @@ export declare class RouteUtil {
|
|
|
19
19
|
tooltip?: string | undefined;
|
|
20
20
|
tooltipPosition?: string | undefined;
|
|
21
21
|
badgeStyleClass?: string | undefined;
|
|
22
|
-
style?:
|
|
22
|
+
style?: {
|
|
23
|
+
[klass: string]: any;
|
|
24
|
+
} | null | undefined;
|
|
23
25
|
styleClass?: string | undefined;
|
|
24
26
|
title?: string | undefined;
|
|
25
27
|
id?: string | undefined;
|
|
@@ -34,26 +36,13 @@ export declare class RouteUtil {
|
|
|
34
36
|
preserveFragment?: boolean | undefined;
|
|
35
37
|
skipLocationChange?: boolean | undefined;
|
|
36
38
|
replaceUrl?: boolean | undefined;
|
|
37
|
-
iconStyle?:
|
|
39
|
+
iconStyle?: {
|
|
40
|
+
[klass: string]: any;
|
|
41
|
+
} | null | undefined;
|
|
38
42
|
iconClass?: string | undefined;
|
|
39
43
|
state?: {
|
|
40
44
|
[k: string]: any;
|
|
41
45
|
} | undefined;
|
|
42
|
-
tooltipOptions?:
|
|
43
|
-
tooltipLabel?: string | undefined;
|
|
44
|
-
tooltipPosition?: string | undefined;
|
|
45
|
-
tooltipEvent?: string | undefined;
|
|
46
|
-
appendTo?: any;
|
|
47
|
-
positionStyle?: string | undefined;
|
|
48
|
-
tooltipStyleClass?: string | undefined;
|
|
49
|
-
tooltipZIndex?: string | undefined;
|
|
50
|
-
escape?: boolean | undefined;
|
|
51
|
-
disabled?: boolean | undefined;
|
|
52
|
-
positionTop?: number | undefined;
|
|
53
|
-
positionLeft?: number | undefined;
|
|
54
|
-
showDelay?: number | undefined;
|
|
55
|
-
hideDelay?: number | undefined;
|
|
56
|
-
life?: number | undefined;
|
|
57
|
-
} | undefined;
|
|
46
|
+
tooltipOptions?: import("primeng/api").TooltipOptions | undefined;
|
|
58
47
|
}[];
|
|
59
48
|
}
|
|
@@ -5,6 +5,7 @@ import { TableviewAttributeDef } from '../models/tableview-attr.model';
|
|
|
5
5
|
import { ClassType } from '../types';
|
|
6
6
|
export declare class TableviewUtil {
|
|
7
7
|
private static _dateRegex;
|
|
8
|
+
private static _dateTimeRegex;
|
|
8
9
|
/**
|
|
9
10
|
* returns attributes from class type and extends to typed def with column and field enum type
|
|
10
11
|
* @param modelType class type
|
|
@@ -45,4 +46,8 @@ export declare class TableviewUtil {
|
|
|
45
46
|
* @param dataKey string, not required
|
|
46
47
|
*/
|
|
47
48
|
static generateTableLayoutPrefsKey(typeName: string, url: string, dataKey?: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Flatten an object of unknown type, used for generating fields and columns in dynamic tableviews
|
|
51
|
+
*/
|
|
52
|
+
static flattenObject(objectModel: any): string[];
|
|
48
53
|
}
|
package/package.json
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-rc.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/
|
|
6
|
-
"@angular/
|
|
7
|
-
"@angular/
|
|
8
|
-
"@angular/
|
|
9
|
-
"@angular/
|
|
10
|
-
"@angular/
|
|
5
|
+
"@angular/common": "^16.0.0",
|
|
6
|
+
"@angular/core": "^16.0.0",
|
|
7
|
+
"@angular/forms": "^16.0.0",
|
|
8
|
+
"@angular/router": "^16.0.0",
|
|
9
|
+
"@angular/animations": "^16.0.0",
|
|
10
|
+
"@angular/platform-browser": "^16.0.0",
|
|
11
11
|
"@ngx-formly/core": "^6.1.3",
|
|
12
12
|
"@ngx-translate/core": "^14.0.0",
|
|
13
|
-
"primeng": "
|
|
14
|
-
"rxjs": "^7.8.0"
|
|
13
|
+
"primeng": "^16.0.0"
|
|
15
14
|
},
|
|
16
15
|
"dependencies": {
|
|
17
16
|
"reflect-metadata": "^0.1.13",
|
|
18
17
|
"tslib": "^2.5.0"
|
|
19
18
|
},
|
|
20
19
|
"sideEffects": false,
|
|
21
|
-
"module": "
|
|
22
|
-
"es2020": "fesm2020/mediusinc-mng-commons.mjs",
|
|
23
|
-
"esm2020": "esm2020/mediusinc-mng-commons.mjs",
|
|
24
|
-
"fesm2020": "fesm2020/mediusinc-mng-commons.mjs",
|
|
25
|
-
"fesm2015": "fesm2015/mediusinc-mng-commons.mjs",
|
|
20
|
+
"module": "fesm2022/mediusinc-mng-commons.mjs",
|
|
26
21
|
"typings": "index.d.ts",
|
|
27
22
|
"exports": {
|
|
28
23
|
"./package.json": {
|
|
@@ -30,11 +25,9 @@
|
|
|
30
25
|
},
|
|
31
26
|
".": {
|
|
32
27
|
"types": "./index.d.ts",
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"node": "./fesm2015/mediusinc-mng-commons.mjs",
|
|
37
|
-
"default": "./fesm2020/mediusinc-mng-commons.mjs"
|
|
28
|
+
"esm2022": "./esm2022/mediusinc-mng-commons.mjs",
|
|
29
|
+
"esm": "./esm2022/mediusinc-mng-commons.mjs",
|
|
30
|
+
"default": "./fesm2022/mediusinc-mng-commons.mjs"
|
|
38
31
|
}
|
|
39
32
|
}
|
|
40
|
-
}
|
|
33
|
+
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export class MediusFilterParam {
|
|
2
|
-
static getAttributeTypeMap() {
|
|
3
|
-
return MediusFilterParam.attributeTypeMap;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
MediusFilterParam.attributeTypeMap = [
|
|
7
|
-
{
|
|
8
|
-
name: 'property',
|
|
9
|
-
baseName: 'property',
|
|
10
|
-
type: 'string'
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
name: 'filterValue',
|
|
14
|
-
baseName: 'filter_value',
|
|
15
|
-
type: 'object'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'filterValueTo',
|
|
19
|
-
baseName: 'filter_value_to',
|
|
20
|
-
type: 'object'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'filterMatchType',
|
|
24
|
-
baseName: 'filter_match_type',
|
|
25
|
-
type: 'FilterMatchType'
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'filterMatchCaseSensitive',
|
|
29
|
-
baseName: 'filter_match_case_sensitive',
|
|
30
|
-
type: 'boolean'
|
|
31
|
-
}
|
|
32
|
-
];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhcmFtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvbW9kZWxzL2ZpbHRlci1wYXJhbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8saUJBQWlCO0lBcUNuQixNQUFNLENBQUMsbUJBQW1CO1FBQzdCLE9BQU8saUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFDOUMsQ0FBQzs7QUE5QmEsa0NBQWdCLEdBQXdCO0lBQ2xEO1FBQ0ksSUFBSSxFQUFFLFVBQVU7UUFDaEIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZUFBZTtRQUNyQixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsSUFBSSxFQUFFLGlCQUFpQjtLQUMxQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsNkJBQTZCO1FBQ3ZDLElBQUksRUFBRSxTQUFTO0tBQ2xCO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBPcGVuYXBpIEdlbmVyYXRvciBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjBcbiAqXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZX0gZnJvbSAnLi9maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c0ZpbHRlclBhcmFtIHtcbiAgICBwcm9wZXJ0eT86IHN0cmluZztcbiAgICBmaWx0ZXJWYWx1ZT86IGFueTtcbiAgICBmaWx0ZXJWYWx1ZVRvPzogYW55O1xuICAgIGZpbHRlck1hdGNoVHlwZT86IE1lZGl1c0ZpbHRlck1hdGNoVHlwZTtcbiAgICBmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xuXG4gICAgcHVibGljIHN0YXRpYyBkaXNjcmltaW5hdG9yPzogc3RyaW5nO1xuXG4gICAgcHVibGljIHN0YXRpYyBhdHRyaWJ1dGVUeXBlTWFwOiBBcnJheTxBdHRyaWJ1dGVEZWY+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJvcGVydHknLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdwcm9wZXJ0eScsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmlsdGVyVmFsdWUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWUnLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlclZhbHVlVG8nLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfdmFsdWVfdG8nLFxuICAgICAgICAgICAgdHlwZTogJ29iamVjdCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlck1hdGNoVHlwZScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2ZpbHRlcl9tYXRjaF90eXBlJyxcbiAgICAgICAgICAgIHR5cGU6ICdGaWx0ZXJNYXRjaFR5cGUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmaWx0ZXJNYXRjaENhc2VTZW5zaXRpdmUnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfbWF0Y2hfY2FzZV9zZW5zaXRpdmUnLFxuICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVUeXBlTWFwKCkge1xuICAgICAgICByZXR1cm4gTWVkaXVzRmlsdGVyUGFyYW0uYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
export class MediusQueryParam {
|
|
2
|
-
static getAttributeTypeMap() {
|
|
3
|
-
return MediusQueryParam.attributeTypeMap;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
MediusQueryParam.attributeTypeMap = [
|
|
7
|
-
{
|
|
8
|
-
name: 'sortProperty',
|
|
9
|
-
baseName: 'sort_property',
|
|
10
|
-
type: 'Array<string>'
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
name: 'sortAsc',
|
|
14
|
-
baseName: 'sort_asc',
|
|
15
|
-
type: 'Array<boolean>'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'itemsOffset',
|
|
19
|
-
baseName: 'items_offset',
|
|
20
|
-
type: 'number'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'itemsPerPage',
|
|
24
|
-
baseName: 'items_per_page',
|
|
25
|
-
type: 'number'
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'filterParams',
|
|
29
|
-
baseName: 'filter_params',
|
|
30
|
-
type: 'Array<FilterParam>'
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: 'filterAllParam',
|
|
34
|
-
baseName: 'filter_all_param',
|
|
35
|
-
type: 'string'
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: 'filterAllProperties',
|
|
39
|
-
baseName: 'filter_all_properties',
|
|
40
|
-
type: 'Array<string>'
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: 'validateProperties',
|
|
44
|
-
baseName: 'validate_properties',
|
|
45
|
-
type: 'Array<string>'
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'selectInTwoSteps',
|
|
49
|
-
baseName: 'select_in_two_steps',
|
|
50
|
-
type: 'boolean'
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'sortEnumByOrdinal',
|
|
54
|
-
baseName: 'sort_enum_by_ordinal',
|
|
55
|
-
type: 'boolean'
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: 'groupByProperties',
|
|
59
|
-
baseName: 'group_by_properties',
|
|
60
|
-
type: 'Array<string>'
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: 'queryMode',
|
|
64
|
-
baseName: 'query_mode',
|
|
65
|
-
type: 'QueryMode'
|
|
66
|
-
}
|
|
67
|
-
];
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FwaS9tb2RlbHMvcXVlcnktcGFyYW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxPQUFPLGdCQUFnQjtJQStFbEIsTUFBTSxDQUFDLG1CQUFtQjtRQUM3QixPQUFPLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQzdDLENBQUM7O0FBakVhLGlDQUFnQixHQUF3QjtJQUNsRDtRQUNJLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSxlQUFlO1FBQ3pCLElBQUksRUFBRSxlQUFlO0tBQ3hCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsU0FBUztRQUNmLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLElBQUksRUFBRSxnQkFBZ0I7S0FDekI7SUFDRDtRQUNJLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsY0FBYztRQUNwQixRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLElBQUksRUFBRSxRQUFRO0tBQ2pCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsY0FBYztRQUNwQixRQUFRLEVBQUUsZUFBZTtRQUN6QixJQUFJLEVBQUUsb0JBQW9CO0tBQzdCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxJQUFJLEVBQUUsZUFBZTtLQUN4QjtJQUNEO1FBQ0ksSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixRQUFRLEVBQUUscUJBQXFCO1FBQy9CLElBQUksRUFBRSxlQUFlO0tBQ3hCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsSUFBSSxFQUFFLFNBQVM7S0FDbEI7SUFDRDtRQUNJLElBQUksRUFBRSxtQkFBbUI7UUFDekIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxJQUFJLEVBQUUsU0FBUztLQUNsQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixRQUFRLEVBQUUscUJBQXFCO1FBQy9CLElBQUksRUFBRSxlQUFlO0tBQ3hCO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsV0FBVztRQUNqQixRQUFRLEVBQUUsWUFBWTtRQUN0QixJQUFJLEVBQUUsV0FBVztLQUNwQjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgT3BlbmFwaSBHZW5lcmF0b3IgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcilcbiAqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgT3BlbkFQSSBkb2N1bWVudDogMS4wXG4gKlxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHtNZWRpdXNGaWx0ZXJQYXJhbX0gZnJvbSAnLi9maWx0ZXItcGFyYW0ubW9kZWwnO1xuaW1wb3J0IHtNZWRpdXNRdWVyeU1vZGV9IGZyb20gJy4vcXVlcnktbW9kZS5tb2RlbCc7XG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c1F1ZXJ5UGFyYW0ge1xuICAgIHNvcnRQcm9wZXJ0eT86IEFycmF5PHN0cmluZz47XG4gICAgc29ydEFzYz86IEFycmF5PGJvb2xlYW4+O1xuICAgIGl0ZW1zT2Zmc2V0PzogbnVtYmVyO1xuICAgIGl0ZW1zUGVyUGFnZT86IG51bWJlcjtcbiAgICBmaWx0ZXJQYXJhbXM/OiBBcnJheTxNZWRpdXNGaWx0ZXJQYXJhbT47XG4gICAgZmlsdGVyQWxsUGFyYW0/OiBzdHJpbmc7XG4gICAgZmlsdGVyQWxsUHJvcGVydGllcz86IEFycmF5PHN0cmluZz47XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzPzogQXJyYXk8c3RyaW5nPjtcbiAgICBzZWxlY3RJblR3b1N0ZXBzPzogYm9vbGVhbjtcbiAgICBzb3J0RW51bUJ5T3JkaW5hbD86IGJvb2xlYW47XG4gICAgZ3JvdXBCeVByb3BlcnRpZXM/OiBBcnJheTxzdHJpbmc+O1xuICAgIHF1ZXJ5TW9kZT86IE1lZGl1c1F1ZXJ5TW9kZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZGlzY3JpbWluYXRvcj86IHN0cmluZztcblxuICAgIHB1YmxpYyBzdGF0aWMgYXR0cmlidXRlVHlwZU1hcDogQXJyYXk8QXR0cmlidXRlRGVmPiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3NvcnRQcm9wZXJ0eScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ3NvcnRfcHJvcGVydHknLFxuICAgICAgICAgICAgdHlwZTogJ0FycmF5PHN0cmluZz4nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdzb3J0QXNjJyxcbiAgICAgICAgICAgIGJhc2VOYW1lOiAnc29ydF9hc2MnLFxuICAgICAgICAgICAgdHlwZTogJ0FycmF5PGJvb2xlYW4+J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnaXRlbXNPZmZzZXQnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdpdGVtc19vZmZzZXQnLFxuICAgICAgICAgICAgdHlwZTogJ251bWJlcidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2l0ZW1zUGVyUGFnZScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2l0ZW1zX3Blcl9wYWdlJyxcbiAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmaWx0ZXJQYXJhbXMnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfcGFyYW1zJyxcbiAgICAgICAgICAgIHR5cGU6ICdBcnJheTxGaWx0ZXJQYXJhbT4nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdmaWx0ZXJBbGxQYXJhbScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2ZpbHRlcl9hbGxfcGFyYW0nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2ZpbHRlckFsbFByb3BlcnRpZXMnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdmaWx0ZXJfYWxsX3Byb3BlcnRpZXMnLFxuICAgICAgICAgICAgdHlwZTogJ0FycmF5PHN0cmluZz4nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd2YWxpZGF0ZVByb3BlcnRpZXMnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICd2YWxpZGF0ZV9wcm9wZXJ0aWVzJyxcbiAgICAgICAgICAgIHR5cGU6ICdBcnJheTxzdHJpbmc+J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc2VsZWN0SW5Ud29TdGVwcycsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ3NlbGVjdF9pbl90d29fc3RlcHMnLFxuICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdzb3J0RW51bUJ5T3JkaW5hbCcsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ3NvcnRfZW51bV9ieV9vcmRpbmFsJyxcbiAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZ3JvdXBCeVByb3BlcnRpZXMnLFxuICAgICAgICAgICAgYmFzZU5hbWU6ICdncm91cF9ieV9wcm9wZXJ0aWVzJyxcbiAgICAgICAgICAgIHR5cGU6ICdBcnJheTxzdHJpbmc+J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncXVlcnlNb2RlJyxcbiAgICAgICAgICAgIGJhc2VOYW1lOiAncXVlcnlfbW9kZScsXG4gICAgICAgICAgICB0eXBlOiAnUXVlcnlNb2RlJ1xuICAgICAgICB9XG4gICAgXTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXR0cmlidXRlVHlwZU1hcCgpIHtcbiAgICAgICAgcmV0dXJuIE1lZGl1c1F1ZXJ5UGFyYW0uYXR0cmlidXRlVHlwZU1hcDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export class MediusQueryResult {
|
|
2
|
-
static fromArray(pageData, allDataCount) {
|
|
3
|
-
const mqr = new MediusQueryResult();
|
|
4
|
-
mqr.allDataCount = allDataCount ?? pageData.length;
|
|
5
|
-
mqr.pageData = pageData;
|
|
6
|
-
return mqr;
|
|
7
|
-
}
|
|
8
|
-
static getAttributeTypeMap() {
|
|
9
|
-
return MediusQueryResult.attributeTypeMap;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
MediusQueryResult.attributeTypeMap = [
|
|
13
|
-
{
|
|
14
|
-
name: 'allDataCount',
|
|
15
|
-
baseName: 'all_data_count',
|
|
16
|
-
type: 'number'
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'pageData',
|
|
20
|
-
baseName: 'page_data',
|
|
21
|
-
type: 'Array<T>'
|
|
22
|
-
}
|
|
23
|
-
];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGkvbW9kZWxzL3F1ZXJ5LXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLE1BQU0sQ0FBQyxTQUFTLENBQUksUUFBYSxFQUFFLFlBQXFCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztRQUN2QyxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25ELEdBQUcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQWVELE1BQU0sQ0FBQyxtQkFBbUI7UUFDdEIsT0FBTyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztJQUM5QyxDQUFDOztBQWZNLGtDQUFnQixHQUF3QjtJQUMzQztRQUNJLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsSUFBSSxFQUFFLFFBQVE7S0FDakI7SUFDRDtRQUNJLElBQUksRUFBRSxVQUFVO1FBQ2hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxVQUFVO0tBQ25CO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBPcGVuYXBpIEdlbmVyYXRvciBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjBcbiAqXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvciAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKS5cbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQge0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+IGltcGxlbWVudHMgSU1lZGl1c1F1ZXJ5UmVzdWx0PFQ+IHtcbiAgICBhbGxEYXRhQ291bnQ/OiBudW1iZXI7XG4gICAgcGFnZURhdGE/OiBBcnJheTxUPjtcblxuICAgIHN0YXRpYyBkaXNjcmltaW5hdG9yPzogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21BcnJheTxUPihwYWdlRGF0YTogVFtdLCBhbGxEYXRhQ291bnQ/OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbXFyID0gbmV3IE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+KCk7XG4gICAgICAgIG1xci5hbGxEYXRhQ291bnQgPSBhbGxEYXRhQ291bnQgPz8gcGFnZURhdGEubGVuZ3RoO1xuICAgICAgICBtcXIucGFnZURhdGEgPSBwYWdlRGF0YTtcbiAgICAgICAgcmV0dXJuIG1xcjtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXR0cmlidXRlVHlwZU1hcDogQXJyYXk8QXR0cmlidXRlRGVmPiA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2FsbERhdGFDb3VudCcsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ2FsbF9kYXRhX2NvdW50JyxcbiAgICAgICAgICAgIHR5cGU6ICdudW1iZXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdwYWdlRGF0YScsXG4gICAgICAgICAgICBiYXNlTmFtZTogJ3BhZ2VfZGF0YScsXG4gICAgICAgICAgICB0eXBlOiAnQXJyYXk8VD4nXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgc3RhdGljIGdldEF0dHJpYnV0ZVR5cGVNYXAoKSB7XG4gICAgICAgIHJldHVybiBNZWRpdXNRdWVyeVJlc3VsdC5hdHRyaWJ1dGVUeXBlTWFwO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVkaXVzUXVlcnlSZXN1bHQ8VD4ge1xuICAgIGFsbERhdGFDb3VudD86IG51bWJlcjtcbiAgICBwYWdlRGF0YT86IEFycmF5PFQ+O1xufVxuIl19
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
import { FilterMatchMode } from 'primeng/api';
|
|
2
|
-
import { FilterTypeEnum } from '../../descriptors/types';
|
|
3
|
-
import { DateUtil } from '../../utils';
|
|
4
|
-
import { MediusFilterMatchType, MediusQueryParamBuilder } from '../models';
|
|
5
|
-
export class MediusRestUtil {
|
|
6
|
-
constructor() {
|
|
7
|
-
// first value is from primeNG, second is for use in query params
|
|
8
|
-
this.matchModeMapping = [
|
|
9
|
-
[FilterMatchMode.CONTAINS, 'c', MediusFilterMatchType.Contains, null],
|
|
10
|
-
[FilterMatchMode.ENDS_WITH, 'ew', MediusFilterMatchType.EndsWith, null],
|
|
11
|
-
[FilterMatchMode.EQUALS, 'eq', MediusFilterMatchType.Equals, null],
|
|
12
|
-
[FilterMatchMode.GREATER_THAN, 'gt', MediusFilterMatchType.GreaterThan, null],
|
|
13
|
-
[FilterMatchMode.LESS_THAN, 'lt', MediusFilterMatchType.SmallerThan, null],
|
|
14
|
-
[FilterMatchMode.STARTS_WITH, 'sw', MediusFilterMatchType.StartsWith, null],
|
|
15
|
-
[FilterMatchMode.IN, 'in', MediusFilterMatchType.In, null],
|
|
16
|
-
[FilterMatchMode.NOT_EQUALS, 'neq', MediusFilterMatchType.NotEquals, null],
|
|
17
|
-
[FilterMatchMode.BETWEEN, 'ft', MediusFilterMatchType.FromTo, FilterTypeEnum.Date],
|
|
18
|
-
[FilterMatchMode.DATE_IS, 'dteq', MediusFilterMatchType.Equals, FilterTypeEnum.Date],
|
|
19
|
-
[FilterMatchMode.DATE_BEFORE, 'lt', MediusFilterMatchType.SmallerThan, FilterTypeEnum.Date],
|
|
20
|
-
[FilterMatchMode.DATE_AFTER, 'gt', MediusFilterMatchType.GreaterThan, FilterTypeEnum.Date],
|
|
21
|
-
[FilterMatchMode.DATE_IS_NOT, 'neq', MediusFilterMatchType.NotEquals, FilterTypeEnum.Date]
|
|
22
|
-
];
|
|
23
|
-
this.dateTimeInUtc = true;
|
|
24
|
-
this.dateTimeWithTimezone = true;
|
|
25
|
-
this.dateTimeWithMillis = true;
|
|
26
|
-
this.dateOnlyDisabled = false;
|
|
27
|
-
// empty
|
|
28
|
-
}
|
|
29
|
-
static get() {
|
|
30
|
-
return MediusRestUtil._instance;
|
|
31
|
-
}
|
|
32
|
-
configure(config) {
|
|
33
|
-
if (config.dateTimeInUtc !== undefined) {
|
|
34
|
-
this.dateTimeInUtc = config.dateTimeInUtc;
|
|
35
|
-
}
|
|
36
|
-
if (config.dateTimeWithTimezone !== undefined) {
|
|
37
|
-
this.dateTimeWithTimezone = config.dateTimeWithTimezone;
|
|
38
|
-
}
|
|
39
|
-
if (config.dateTimeWithMillis !== undefined) {
|
|
40
|
-
this.dateTimeWithMillis = config.dateTimeWithMillis;
|
|
41
|
-
}
|
|
42
|
-
if (config.dateOnlyDisabled !== undefined) {
|
|
43
|
-
this.dateOnlyDisabled = config.dateOnlyDisabled;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
fromAngularQueryParamsToMediusQueryParams(params, filterDescriptors, defaultItemsPerPage = 10, defaultOffset = 0) {
|
|
47
|
-
const offset = params['first'] ? parseInt(params['first']) : defaultOffset;
|
|
48
|
-
const itemsPerPage = params['rows'] ? parseInt(params['rows']) : defaultItemsPerPage;
|
|
49
|
-
const mediusParamsBuilder = MediusQueryParamBuilder.create(itemsPerPage, offset);
|
|
50
|
-
if (params['sort']) {
|
|
51
|
-
for (const sort of params['sort'].split(',')) {
|
|
52
|
-
const qpSortSplit = sort.split(':');
|
|
53
|
-
const field = qpSortSplit[0];
|
|
54
|
-
const asc = qpSortSplit.length > 1 ? qpSortSplit[1] === 'asc' : true;
|
|
55
|
-
mediusParamsBuilder.withSort(field, asc);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (params['filter']) {
|
|
59
|
-
const filterSplit = params['filter'].split(';');
|
|
60
|
-
for (const filterField of filterSplit) {
|
|
61
|
-
const filterFieldSplit = filterField.split(':');
|
|
62
|
-
const field = filterFieldSplit[0];
|
|
63
|
-
const operator = filterFieldSplit.length > 1 ? filterFieldSplit[1] : 'eq';
|
|
64
|
-
// prepare value
|
|
65
|
-
let value = filterFieldSplit.length > 2 ? filterFieldSplit.slice(2).join(':') : '';
|
|
66
|
-
let valueTo = undefined;
|
|
67
|
-
if (value.startsWith("'")) {
|
|
68
|
-
value = value.substring(1, value.length - 1);
|
|
69
|
-
}
|
|
70
|
-
if (value.startsWith('[') && value.endsWith(']')) {
|
|
71
|
-
value = value
|
|
72
|
-
.substring(1, value.length - 1)
|
|
73
|
-
.split(',')
|
|
74
|
-
.map((v) => (v.startsWith("'") ? v.substring(1, v.length - 1) : v));
|
|
75
|
-
}
|
|
76
|
-
if (operator === 'ft') {
|
|
77
|
-
valueTo = value[1];
|
|
78
|
-
value = value[0];
|
|
79
|
-
}
|
|
80
|
-
const filterDescriptor = filterDescriptors.find(f => f.property === field);
|
|
81
|
-
const matchMode = this.getMapping(operator, filterDescriptor?.filterType, 1);
|
|
82
|
-
if (matchMode && filterDescriptor) {
|
|
83
|
-
mediusParamsBuilder.withFilter(filterDescriptor.property, value, valueTo, this.getMediusFilterMatchTypeFromPrimeMatchMode(matchMode[0]));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return mediusParamsBuilder.build();
|
|
88
|
-
}
|
|
89
|
-
fromPrimeLazyLoadEventToAngularQueryParams(event) {
|
|
90
|
-
const params = {
|
|
91
|
-
first: null,
|
|
92
|
-
rows: null,
|
|
93
|
-
sort: null,
|
|
94
|
-
filter: null
|
|
95
|
-
};
|
|
96
|
-
if (event.first && event.first > 0) {
|
|
97
|
-
params['first'] = event.first;
|
|
98
|
-
}
|
|
99
|
-
if (event.rows && event.rows > 0) {
|
|
100
|
-
params['rows'] = event.rows;
|
|
101
|
-
}
|
|
102
|
-
if (event.multiSortMeta?.length) {
|
|
103
|
-
params['sort'] = event.multiSortMeta?.map(s => `${s.field}${s.order === 1 ? '' : ':desc'}`).join(',');
|
|
104
|
-
}
|
|
105
|
-
if (event.filters) {
|
|
106
|
-
const filters = [];
|
|
107
|
-
for (const field in event.filters) {
|
|
108
|
-
const primeOperator = event.filters[field].matchMode;
|
|
109
|
-
let value = event.filters[field].value;
|
|
110
|
-
const operatorMapping = primeOperator ? this.getMapping(primeOperator, undefined, 0) : undefined;
|
|
111
|
-
if (operatorMapping && typeof value !== 'undefined' && value !== null) {
|
|
112
|
-
let doAddFilter = false;
|
|
113
|
-
if (typeof value === 'string' && value.length > 0) {
|
|
114
|
-
value = `'${value}'`;
|
|
115
|
-
doAddFilter = true;
|
|
116
|
-
}
|
|
117
|
-
else if (typeof value === 'number') {
|
|
118
|
-
doAddFilter = true;
|
|
119
|
-
}
|
|
120
|
-
else if (typeof value === 'boolean') {
|
|
121
|
-
doAddFilter = true;
|
|
122
|
-
}
|
|
123
|
-
else if (Array.isArray(value)) {
|
|
124
|
-
const joinedValue = value
|
|
125
|
-
.map(v => {
|
|
126
|
-
if (v instanceof Date) {
|
|
127
|
-
// for query params, always convert to iso string, correct transformation will be done later
|
|
128
|
-
return v.toISOString();
|
|
129
|
-
}
|
|
130
|
-
return v;
|
|
131
|
-
})
|
|
132
|
-
.join(',');
|
|
133
|
-
value = `[${joinedValue}]`;
|
|
134
|
-
doAddFilter = true;
|
|
135
|
-
}
|
|
136
|
-
else if (value instanceof Date) {
|
|
137
|
-
// for query params, always convert to iso string, correct transformation will be done later
|
|
138
|
-
value = value.toISOString();
|
|
139
|
-
doAddFilter = true;
|
|
140
|
-
}
|
|
141
|
-
if (doAddFilter) {
|
|
142
|
-
filters.push(`${field}:${operatorMapping[1]}:${value}`);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (filters.length > 0) {
|
|
147
|
-
params['filter'] = filters.join(';');
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return params;
|
|
151
|
-
}
|
|
152
|
-
modifySortProperties(mediusQueryParams, columnDescriptors) {
|
|
153
|
-
if (mediusQueryParams.sortProperty && columnDescriptors) {
|
|
154
|
-
for (const [i, sortProperty] of mediusQueryParams.sortProperty.entries()) {
|
|
155
|
-
mediusQueryParams.sortProperty[i] = columnDescriptors.find(el => el.property === sortProperty)?.sortProperty ?? sortProperty;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
modifyFilterProperties(mediusQueryParams, filterDescriptors) {
|
|
160
|
-
for (const filterParam of mediusQueryParams.filterParams ?? []) {
|
|
161
|
-
const filterDescriptor = filterDescriptors.find(f => f.property === filterParam.property);
|
|
162
|
-
filterParam.property = filterDescriptor?.filterProperty ?? filterParam.property;
|
|
163
|
-
if (filterDescriptor?.filterType === FilterTypeEnum.Date) {
|
|
164
|
-
if (filterParam.filterMatchType === MediusFilterMatchType.Equals) {
|
|
165
|
-
// convert date equals filter to date range
|
|
166
|
-
const filterDate = filterParam.filterValue;
|
|
167
|
-
const startDate = new Date(filterDate);
|
|
168
|
-
const endDate = new Date(startDate);
|
|
169
|
-
if (filterDescriptor.datePickerShowTime) {
|
|
170
|
-
startDate.setHours(startDate.getHours(), startDate.getMinutes(), 0, 0);
|
|
171
|
-
endDate.setHours(endDate.getHours(), endDate.getMinutes() + 1, 0, 0);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
startDate.setHours(0, 0, 0, 0);
|
|
175
|
-
endDate.setHours(0, 0, 0, 0);
|
|
176
|
-
endDate.setDate(endDate.getDate() + 1);
|
|
177
|
-
}
|
|
178
|
-
filterParam.filterMatchType = MediusFilterMatchType.FromTo;
|
|
179
|
-
filterParam.filterValue = startDate;
|
|
180
|
-
filterParam.filterValueTo = endDate;
|
|
181
|
-
}
|
|
182
|
-
// transform dates to correct iso string
|
|
183
|
-
if (typeof filterParam.filterValue !== 'undefined') {
|
|
184
|
-
if (Array.isArray(filterParam.filterValue)) {
|
|
185
|
-
filterParam.filterValue = filterParam.filterValue.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc ?? this.dateTimeInUtc, filterDescriptor.datePickerValueWithTimezone ?? this.dateTimeWithTimezone, this.dateTimeWithMillis, filterDescriptor.datePickerValueDateOnly ?? (this.dateOnlyDisabled ? false : !filterDescriptor.datePickerShowTime)));
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
filterDescriptor.datePickerValueInUtc;
|
|
189
|
-
filterParam.filterValue = DateUtil.toIsoString(filterParam.filterValue, filterDescriptor.datePickerValueInUtc ?? this.dateTimeInUtc, filterDescriptor.datePickerValueWithTimezone ?? this.dateTimeWithTimezone, this.dateTimeWithMillis, filterDescriptor.datePickerValueDateOnly ?? (this.dateOnlyDisabled ? false : !filterDescriptor.datePickerShowTime));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (typeof filterParam.filterValueTo !== 'undefined') {
|
|
193
|
-
if (Array.isArray(filterParam.filterValueTo)) {
|
|
194
|
-
filterParam.filterValueTo = filterParam.filterValueTo.map(v => DateUtil.toIsoString(v, filterDescriptor.datePickerValueInUtc ?? this.dateTimeInUtc, filterDescriptor.datePickerValueWithTimezone ?? this.dateTimeWithTimezone, this.dateTimeWithMillis, filterDescriptor.datePickerValueDateOnly ?? (this.dateOnlyDisabled ? false : !filterDescriptor.datePickerShowTime)));
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
filterParam.filterValueTo = DateUtil.toIsoString(filterParam.filterValueTo, filterDescriptor.datePickerValueInUtc ?? this.dateTimeInUtc, filterDescriptor.datePickerValueWithTimezone ?? this.dateTimeWithTimezone, this.dateTimeWithMillis, filterDescriptor.datePickerValueDateOnly ?? (this.dateOnlyDisabled ? false : !filterDescriptor.datePickerShowTime));
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
fromPrimeLazyLoadEventToMediusQueryParams(event) {
|
|
204
|
-
const queryParamBuilder = MediusQueryParamBuilder.create(event.rows, event.first);
|
|
205
|
-
// apply sorting
|
|
206
|
-
if (event.multiSortMeta) {
|
|
207
|
-
event.multiSortMeta.forEach(msm => queryParamBuilder.withSort(msm.field, msm.order === 1));
|
|
208
|
-
}
|
|
209
|
-
// apply filtering
|
|
210
|
-
if (event.filters) {
|
|
211
|
-
for (const key of Object.keys(event.filters)) {
|
|
212
|
-
const filterEvent = event.filters[key];
|
|
213
|
-
if (Array.isArray(filterEvent)) {
|
|
214
|
-
filterEvent.filter(e => e.value).forEach(e => this.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, e));
|
|
215
|
-
}
|
|
216
|
-
else if (typeof filterEvent === 'object') {
|
|
217
|
-
if (filterEvent.value) {
|
|
218
|
-
this.addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, key, filterEvent);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return queryParamBuilder.build();
|
|
224
|
-
}
|
|
225
|
-
addMediusFilterFromPrimeFilterMetadata(queryParamBuilder, property, filterMetadata) {
|
|
226
|
-
const matchType = this.getMediusFilterMatchTypeFromPrimeMatchMode(filterMetadata.matchMode ?? 'equals');
|
|
227
|
-
queryParamBuilder.withFilter(property, filterMetadata.value, undefined, matchType);
|
|
228
|
-
}
|
|
229
|
-
getMediusFilterMatchTypeFromPrimeMatchMode(matchMode, dataType) {
|
|
230
|
-
return this.getMapping(matchMode, dataType)?.[2] ?? MediusFilterMatchType.Equals;
|
|
231
|
-
}
|
|
232
|
-
getMapping(matchMode, dataType, idx = 0) {
|
|
233
|
-
const mappings = this.matchModeMapping.filter(m => m[idx] === matchMode && (!dataType || !m[3] || dataType === m[3]));
|
|
234
|
-
if (mappings.length === 0) {
|
|
235
|
-
return null;
|
|
236
|
-
}
|
|
237
|
-
else if (mappings.length === 1) {
|
|
238
|
-
return mappings[0];
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
return mappings.sort((m1, m2) => (m2[3] ?? -1) - (m1[3] ?? -1))[0];
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
MediusRestUtil._instance = new MediusRestUtil();
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzLXJlc3QudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYXBpL3V0aWxzL21lZGl1cy1yZXN0LnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGVBQWUsRUFBZ0MsTUFBTSxhQUFhLENBQUM7QUFJM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLHFCQUFxQixFQUFvQix1QkFBdUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUUzRixNQUFNLE9BQU8sY0FBYztJQXdCdkI7UUF0QkEsaUVBQWlFO1FBQ2hELHFCQUFnQixHQUE0QjtZQUN6RCxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDckUsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO1lBQ3ZFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUNsRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7WUFDN0UsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO1lBQzFFLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztZQUMzRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUM7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LENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDckYsQ0FBQztJQUVNLFVBQVUsQ0FBQyxTQUFpQixFQUFFLFFBQXlCLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDbkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzlCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RCO2FBQU07WUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RTtJQUNMLENBQUM7O0FBcFNjLHdCQUFTLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtGaWx0ZXJNYXRjaE1vZGUsIEZpbHRlck1ldGFkYXRhLCBMYXp5TG9hZEV2ZW50fSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZmlsdGVyJztcbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtGaWx0ZXJUeXBlRW51bX0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuaW1wb3J0IHtNYXRjaE1vZGVNYXBUeXBlfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge0RhdGVVdGlsfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZSwgTWVkaXVzUXVlcnlQYXJhbSwgTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXJ9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBNZWRpdXNSZXN0VXRpbCB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBNZWRpdXNSZXN0VXRpbCA9IG5ldyBNZWRpdXNSZXN0VXRpbCgpO1xuICAgIC8vIGZpcnN0IHZhbHVlIGlzIGZyb20gcHJpbWVORywgc2Vjb25kIGlzIGZvciB1c2UgaW4gcXVlcnkgcGFyYW1zXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRjaE1vZGVNYXBwaW5nOiBBcnJheTxNYXRjaE1vZGVNYXBUeXBlPiA9IFtcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5DT05UQUlOUywgJ2MnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuQ29udGFpbnMsIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkVORFNfV0lUSCwgJ2V3JywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVuZHNXaXRoLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5FUVVBTFMsICdlcScsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FcXVhbHMsIG51bGxdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkdSRUFURVJfVEhBTiwgJ2d0JywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkdyZWF0ZXJUaGFuLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU4sICdsdCcsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5TbWFsbGVyVGhhbiwgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgsICdzdycsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5TdGFydHNXaXRoLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5JTiwgJ2luJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkluLCBudWxsXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5OT1RfRVFVQUxTLCAnbmVxJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEVxdWFscywgbnVsbF0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuQkVUV0VFTiwgJ2Z0JywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkZyb21UbywgRmlsdGVyVHlwZUVudW0uRGF0ZV0sXG4gICAgICAgIFtGaWx0ZXJNYXRjaE1vZGUuREFURV9JUywgJ2R0ZXEnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuRXF1YWxzLCBGaWx0ZXJUeXBlRW51bS5EYXRlXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5EQVRFX0JFRk9SRSwgJ2x0JywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLlNtYWxsZXJUaGFuLCBGaWx0ZXJUeXBlRW51bS5EYXRlXSxcbiAgICAgICAgW0ZpbHRlck1hdGNoTW9kZS5EQVRFX0FGVEVSLCAnZ3QnLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuR3JlYXRlclRoYW4sIEZpbHRlclR5cGVFbnVtLkRhdGVdLFxuICAgICAgICBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVNfTk9ULCAnbmVxJywgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEVxdWFscywgRmlsdGVyVHlwZUVudW0uRGF0ZV1cbiAgICBdO1xuXG4gICAgcHJpdmF0ZSBkYXRlVGltZUluVXRjID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRhdGVUaW1lV2l0aFRpbWV6b25lID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRhdGVUaW1lV2l0aE1pbGxpcyA9IHRydWU7XG4gICAgcHJpdmF0ZSBkYXRlT25seURpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBlbXB0eVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0KCk6IE1lZGl1c1Jlc3RVdGlsIHtcbiAgICAgICAgcmV0dXJuIE1lZGl1c1Jlc3RVdGlsLl9pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlKGNvbmZpZzoge2RhdGVUaW1lSW5VdGM/OiBib29sZWFuOyBkYXRlVGltZVdpdGhUaW1lem9uZT86IGJvb2xlYW47IGRhdGVUaW1lV2l0aE1pbGxpcz86IGJvb2xlYW47IGRhdGVPbmx5RGlzYWJsZWQ/OiBib29sZWFufSk6IHZvaWQge1xuICAgICAgICBpZiAoY29uZmlnLmRhdGVUaW1lSW5VdGMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlVGltZUluVXRjID0gY29uZmlnLmRhdGVUaW1lSW5VdGM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5kYXRlVGltZVdpdGhUaW1lem9uZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lV2l0aFRpbWV6b25lID0gY29uZmlnLmRhdGVUaW1lV2l0aFRpbWV6b25lO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuZGF0ZVRpbWVXaXRoTWlsbGlzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVXaXRoTWlsbGlzID0gY29uZmlnLmRhdGVUaW1lV2l0aE1pbGxpcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLmRhdGVPbmx5RGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlT25seURpc2FibGVkID0gY29uZmlnLmRhdGVPbmx5RGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZnJvbUFuZ3VsYXJRdWVyeVBhcmFtc1RvTWVkaXVzUXVlcnlQYXJhbXMoXG4gICAgICAgIHBhcmFtczogUGFyYW1zLFxuICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yczogQXJyYXk8RmlsdGVyRGVzY3JpcHRvcjxhbnk+PixcbiAgICAgICAgZGVmYXVsdEl0ZW1zUGVyUGFnZSA9IDEwLFxuICAgICAgICBkZWZhdWx0T2Zmc2V0ID0gMFxuICAgICk6IE1lZGl1c1F1ZXJ5UGFyYW0ge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBwYXJhbXNbJ2ZpcnN0J10gPyBwYXJzZUludChwYXJhbXNbJ2ZpcnN0J10pIDogZGVmYXVsdE9mZnNldDtcbiAgICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gcGFyYW1zWydyb3dzJ10gPyBwYXJzZUludChwYXJhbXNbJ3Jvd3MnXSkgOiBkZWZhdWx0SXRlbXNQZXJQYWdlO1xuXG4gICAgICAgIGNvbnN0IG1lZGl1c1BhcmFtc0J1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoaXRlbXNQZXJQYWdlLCBvZmZzZXQpO1xuXG4gICAgICAgIGlmIChwYXJhbXNbJ3NvcnQnXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzb3J0IG9mIHBhcmFtc1snc29ydCddLnNwbGl0KCcsJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBxcFNvcnRTcGxpdCA9IHNvcnQuc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHFwU29ydFNwbGl0WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzYyA9IHFwU29ydFNwbGl0Lmxlbmd0aCA+IDEgPyBxcFNvcnRTcGxpdFsxXSA9PT0gJ2FzYycgOiB0cnVlO1xuICAgICAgICAgICAgICAgIG1lZGl1c1BhcmFtc0J1aWxkZXIud2l0aFNvcnQoZmllbGQsIGFzYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtc1snZmlsdGVyJ10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclNwbGl0ID0gcGFyYW1zWydmaWx0ZXInXS5zcGxpdCgnOycpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJGaWVsZCBvZiBmaWx0ZXJTcGxpdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckZpZWxkU3BsaXQgPSBmaWx0ZXJGaWVsZC5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZmlsdGVyRmllbGRTcGxpdFswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlckZpZWxkU3BsaXQubGVuZ3RoID4gMSA/IGZpbHRlckZpZWxkU3BsaXRbMV0gOiAnZXEnO1xuXG4gICAgICAgICAgICAgICAgLy8gcHJlcGFyZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZTogYW55ID0gZmlsdGVyRmllbGRTcGxpdC5sZW5ndGggPiAyID8gZmlsdGVyRmllbGRTcGxpdC5zbGljZSgyKS5qb2luKCc6JykgOiAnJztcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVUbzogYW55ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ1snKSAmJiB2YWx1ZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzdHJpbmcoMSwgdmFsdWUubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKCh2OiBzdHJpbmcpID0+ICh2LnN0YXJ0c1dpdGgoXCInXCIpID8gdi5zdWJzdHJpbmcoMSwgdi5sZW5ndGggLSAxKSA6IHYpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAob3BlcmF0b3IgPT09ICdmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVUbyA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzBdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBmaWx0ZXJEZXNjcmlwdG9ycy5maW5kKGYgPT4gZi5wcm9wZXJ0eSA9PT0gZmllbGQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoTW9kZSA9IHRoaXMuZ2V0TWFwcGluZyhvcGVyYXRvciwgZmlsdGVyRGVzY3JpcHRvcj8uZmlsdGVyVHlwZSwgMSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoTW9kZSAmJiBmaWx0ZXJEZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lZGl1c1BhcmFtc0J1aWxkZXIud2l0aEZpbHRlcihmaWx0ZXJEZXNjcmlwdG9yLnByb3BlcnR5LCB2YWx1ZSwgdmFsdWVUbywgdGhpcy5nZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUobWF0Y2hNb2RlWzBdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lZGl1c1BhcmFtc0J1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZnJvbVByaW1lTGF6eUxvYWRFdmVudFRvQW5ndWxhclF1ZXJ5UGFyYW1zKGV2ZW50OiBMYXp5TG9hZEV2ZW50KTogUGFyYW1zIHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaXJzdDogbnVsbCxcbiAgICAgICAgICAgIHJvd3M6IG51bGwsXG4gICAgICAgICAgICBzb3J0OiBudWxsLFxuICAgICAgICAgICAgZmlsdGVyOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpcnN0ICYmIGV2ZW50LmZpcnN0ID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zWydmaXJzdCddID0gZXZlbnQuZmlyc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnJvd3MgJiYgZXZlbnQucm93cyA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtc1sncm93cyddID0gZXZlbnQucm93cztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5tdWx0aVNvcnRNZXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBhcmFtc1snc29ydCddID0gZXZlbnQubXVsdGlTb3J0TWV0YT8ubWFwKHMgPT4gYCR7cy5maWVsZH0ke3Mub3JkZXIgPT09IDEgPyAnJyA6ICc6ZGVzYyd9YCkuam9pbignLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgaW4gZXZlbnQuZmlsdGVycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaW1lT3BlcmF0b3IgPSBldmVudC5maWx0ZXJzW2ZpZWxkXS5tYXRjaE1vZGU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gZXZlbnQuZmlsdGVyc1tmaWVsZF0udmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3JNYXBwaW5nID0gcHJpbWVPcGVyYXRvciA/IHRoaXMuZ2V0TWFwcGluZyhwcmltZU9wZXJhdG9yLCB1bmRlZmluZWQsIDApIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvck1hcHBpbmcgJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZG9BZGRGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBgJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb0FkZEZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb0FkZEZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvaW5lZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBxdWVyeSBwYXJhbXMsIGFsd2F5cyBjb252ZXJ0IHRvIGlzbyBzdHJpbmcsIGNvcnJlY3QgdHJhbnNmb3JtYXRpb24gd2lsbCBiZSBkb25lIGxhdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdi50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBgWyR7am9pbmVkVmFsdWV9XWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb0FkZEZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcXVlcnkgcGFyYW1zLCBhbHdheXMgY29udmVydCB0byBpc28gc3RyaW5nLCBjb3JyZWN0IHRyYW5zZm9ybWF0aW9uIHdpbGwgYmUgZG9uZSBsYXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9BZGRGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvQWRkRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goYCR7ZmllbGR9OiR7b3BlcmF0b3JNYXBwaW5nWzFdfToke3ZhbHVlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc1snZmlsdGVyJ10gPSBmaWx0ZXJzLmpvaW4oJzsnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIG1vZGlmeVNvcnRQcm9wZXJ0aWVzKG1lZGl1c1F1ZXJ5UGFyYW1zOiBNZWRpdXNRdWVyeVBhcmFtLCBjb2x1bW5EZXNjcmlwdG9yczogQXJyYXk8Q29sdW1uRGVzY3JpcHRvcjxhbnksIGFueT4+IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChtZWRpdXNRdWVyeVBhcmFtcy5zb3J0UHJvcGVydHkgJiYgY29sdW1uRGVzY3JpcHRvcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ksIHNvcnRQcm9wZXJ0eV0gb2YgbWVkaXVzUXVlcnlQYXJhbXMuc29ydFByb3BlcnR5LmVudHJpZXMoKSkge1xuICAgICAgICAgICAgICAgIG1lZGl1c1F1ZXJ5UGFyYW1zLnNvcnRQcm9wZXJ0eVtpXSA9IGNvbHVtbkRlc2NyaXB0b3JzLmZpbmQoZWwgPT4gZWwucHJvcGVydHkgPT09IHNvcnRQcm9wZXJ0eSk/LnNvcnRQcm9wZXJ0eSA/PyBzb3J0UHJvcGVydHk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbW9kaWZ5RmlsdGVyUHJvcGVydGllcyhtZWRpdXNRdWVyeVBhcmFtczogTWVkaXVzUXVlcnlQYXJhbSwgZmlsdGVyRGVzY3JpcHRvcnM6IEFycmF5PEZpbHRlckRlc2NyaXB0b3I8YW55Pj4pIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJQYXJhbSBvZiBtZWRpdXNRdWVyeVBhcmFtcy5maWx0ZXJQYXJhbXMgPz8gW10pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckRlc2NyaXB0b3IgPSBmaWx0ZXJEZXNjcmlwdG9ycy5maW5kKGYgPT4gZi5wcm9wZXJ0eSA9PT0gZmlsdGVyUGFyYW0ucHJvcGVydHkpO1xuICAgICAgICAgICAgZmlsdGVyUGFyYW0ucHJvcGVydHkgPSBmaWx0ZXJEZXNjcmlwdG9yPy5maWx0ZXJQcm9wZXJ0eSA/PyBmaWx0ZXJQYXJhbS5wcm9wZXJ0eTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJEZXNjcmlwdG9yPy5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlRW51bS5EYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclBhcmFtLmZpbHRlck1hdGNoVHlwZSA9PT0gTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVxdWFscykge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb252ZXJ0IGRhdGUgZXF1YWxzIGZpbHRlciB0byBkYXRlIHJhbmdlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGUgPSBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSBhcyBEYXRlO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKGZpbHRlckRhdGUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRIb3VycyhzdGFydERhdGUuZ2V0SG91cnMoKSwgc3RhcnREYXRlLmdldE1pbnV0ZXMoKSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmREYXRlLnNldEhvdXJzKGVuZERhdGUuZ2V0SG91cnMoKSwgZW5kRGF0ZS5nZXRNaW51dGVzKCkgKyAxLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmREYXRlLnNldERhdGUoZW5kRGF0ZS5nZXREYXRlKCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlck1hdGNoVHlwZSA9IE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5Gcm9tVG87XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlID0gc3RhcnREYXRlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZVRvID0gZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm0gZGF0ZXMgdG8gY29ycmVjdCBpc28gc3RyaW5nXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSA9IGZpbHRlclBhcmFtLmZpbHRlclZhbHVlLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVV0aWwudG9Jc29TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlSW5VdGMgPz8gdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZVdpdGhUaW1lem9uZSA/PyB0aGlzLmRhdGVUaW1lV2l0aFRpbWV6b25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lV2l0aE1pbGxpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVEYXRlT25seSA/PyAodGhpcy5kYXRlT25seURpc2FibGVkID8gZmFsc2UgOiAhZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlSW5VdGM7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZSA9IERhdGVVdGlsLnRvSXNvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlSW5VdGMgPz8gdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlV2l0aFRpbWV6b25lID8/IHRoaXMuZGF0ZVRpbWVXaXRoVGltZXpvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZVdpdGhNaWxsaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVEYXRlT25seSA/PyAodGhpcy5kYXRlT25seURpc2FibGVkID8gZmFsc2UgOiAhZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWVUbyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyUGFyYW0uZmlsdGVyVmFsdWVUbykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlVG8gPSBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZVRvLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVV0aWwudG9Jc29TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlSW5VdGMgPz8gdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZVdpdGhUaW1lem9uZSA/PyB0aGlzLmRhdGVUaW1lV2l0aFRpbWV6b25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lV2l0aE1pbGxpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVEYXRlT25seSA/PyAodGhpcy5kYXRlT25seURpc2FibGVkID8gZmFsc2UgOiAhZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtLmZpbHRlclZhbHVlVG8gPSBEYXRlVXRpbC50b0lzb1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbS5maWx0ZXJWYWx1ZVRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlSW5VdGMgPz8gdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlV2l0aFRpbWV6b25lID8/IHRoaXMuZGF0ZVRpbWVXaXRoVGltZXpvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZVdpdGhNaWxsaXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVEYXRlT25seSA/PyAodGhpcy5kYXRlT25seURpc2FibGVkID8gZmFsc2UgOiAhZmlsdGVyRGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZyb21QcmltZUxhenlMb2FkRXZlbnRUb01lZGl1c1F1ZXJ5UGFyYW1zKGV2ZW50OiBMYXp5TG9hZEV2ZW50KTogTWVkaXVzUXVlcnlQYXJhbSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1CdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKGV2ZW50LnJvd3MsIGV2ZW50LmZpcnN0KTtcblxuICAgICAgICAvLyBhcHBseSBzb3J0aW5nXG4gICAgICAgIGlmIChldmVudC5tdWx0aVNvcnRNZXRhKSB7XG4gICAgICAgICAgICBldmVudC5tdWx0aVNvcnRNZXRhLmZvckVhY2gobXNtID0+IHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhTb3J0KG1zbS5maWVsZCwgbXNtLm9yZGVyID09PSAxKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhcHBseSBmaWx0ZXJpbmdcbiAgICAgICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGV2ZW50LmZpbHRlcnMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRXZlbnQgPSBldmVudC5maWx0ZXJzW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyRXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIChmaWx0ZXJFdmVudCBhcyBGaWx0ZXJNZXRhZGF0YVtdKS5maWx0ZXIoZSA9PiBlLnZhbHVlKS5mb3JFYWNoKGUgPT4gdGhpcy5hZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyRXZlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJFdmVudC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZWRpdXNGaWx0ZXJGcm9tUHJpbWVGaWx0ZXJNZXRhZGF0YShxdWVyeVBhcmFtQnVpbGRlciwga2V5LCBmaWx0ZXJFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTWVkaXVzRmlsdGVyRnJvbVByaW1lRmlsdGVyTWV0YWRhdGEocXVlcnlQYXJhbUJ1aWxkZXI6IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLCBwcm9wZXJ0eTogc3RyaW5nLCBmaWx0ZXJNZXRhZGF0YTogRmlsdGVyTWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hUeXBlOiBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUgPSB0aGlzLmdldE1lZGl1c0ZpbHRlck1hdGNoVHlwZUZyb21QcmltZU1hdGNoTW9kZShmaWx0ZXJNZXRhZGF0YS5tYXRjaE1vZGUgPz8gJ2VxdWFscycpO1xuICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHByb3BlcnR5LCBmaWx0ZXJNZXRhZGF0YS52YWx1ZSwgdW5kZWZpbmVkLCBtYXRjaFR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNZWRpdXNGaWx0ZXJNYXRjaFR5cGVGcm9tUHJpbWVNYXRjaE1vZGUobWF0Y2hNb2RlOiBzdHJpbmcsIGRhdGFUeXBlPzogRmlsdGVyVHlwZUVudW0pOiBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNYXBwaW5nKG1hdGNoTW9kZSwgZGF0YVR5cGUpPy5bMl0gPz8gTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLkVxdWFscztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWFwcGluZyhtYXRjaE1vZGU6IHN0cmluZywgZGF0YVR5cGU/OiBGaWx0ZXJUeXBlRW51bSwgaWR4ID0gMCk6IE1hdGNoTW9kZU1hcFR5cGUgfCBudWxsIHtcbiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSB0aGlzLm1hdGNoTW9kZU1hcHBpbmcuZmlsdGVyKG0gPT4gbVtpZHhdID09PSBtYXRjaE1vZGUgJiYgKCFkYXRhVHlwZSB8fCAhbVszXSB8fCBkYXRhVHlwZSA9PT0gbVszXSkpO1xuICAgICAgICBpZiAobWFwcGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChtYXBwaW5ncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXBwaW5nc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBtYXBwaW5ncy5zb3J0KChtMSwgbTIpID0+IChtMlszXSA/PyAtMSkgLSAobTFbM10gPz8gLTEpKVswXTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|