@mediusinc/mng-commons 1.4.0 → 2.0.0-rc.0-08f92864
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/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
- package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
- package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
- package/esm2020/lib/api/models/index.mjs +8 -8
- package/esm2020/lib/api/models/mappers.mjs +12 -12
- package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
- package/esm2020/lib/api/models/query-param.model.mjs +67 -67
- package/esm2020/lib/api/models/query-result.model.mjs +23 -23
- package/esm2020/lib/api/models/serialization.model.mjs +1 -1
- package/esm2020/lib/api/services/api.abstract.service.mjs +57 -57
- package/esm2020/lib/api/services/crud-api.abstract.service.mjs +74 -74
- package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +29 -29
- package/esm2020/lib/api/services/index.mjs +3 -3
- package/esm2020/lib/api/utils/index.mjs +2 -2
- package/esm2020/lib/api/utils/medius-rest.util.mjs +213 -213
- package/esm2020/lib/api/utils/object-serializer.util.mjs +247 -247
- package/esm2020/lib/components/action/action.component.mjs +281 -275
- package/esm2020/lib/components/action/editor/action-editor.component.mjs +303 -303
- package/esm2020/lib/components/action/index.mjs +4 -4
- package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +45 -45
- package/esm2020/lib/components/action/models/action-component.model.mjs +2 -2
- package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -2
- package/esm2020/lib/components/action/models/action-execution.model.mjs +249 -249
- package/esm2020/lib/components/action/models/index.mjs +4 -4
- package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +10 -10
- package/esm2020/lib/components/action/route/action-route.component.mjs +131 -130
- package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +301 -300
- package/esm2020/lib/components/form/date-range/date-range.component.mjs +110 -109
- package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +196 -194
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +246 -243
- package/esm2020/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +43 -39
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +51 -50
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +46 -45
- package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +28 -26
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +180 -150
- package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +24 -24
- package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +191 -186
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +198 -197
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +158 -154
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +19 -17
- package/esm2020/lib/components/form/formly/fields/index.mjs +10 -10
- package/esm2020/lib/components/form/formly/formly.config.mjs +211 -211
- package/esm2020/lib/components/form/formly/index.mjs +1 -1
- package/esm2020/lib/components/form/formly/models/formly-config.model.mjs +1 -1
- package/esm2020/lib/components/form/formly/models/formly-field.model.mjs +2 -2
- package/esm2020/lib/components/form/formly/models/index.mjs +2 -2
- package/esm2020/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +16 -15
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +84 -83
- package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
- package/esm2020/lib/components/form/index.mjs +4 -4
- package/esm2020/lib/components/form/models/field-action-context.model.mjs +2 -2
- package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
- package/esm2020/lib/components/form/models/form-editor.interface.mjs +1 -1
- package/esm2020/lib/components/form/models/index.mjs +2 -2
- package/esm2020/lib/components/layout/breadcrumb.component.mjs +18 -17
- package/esm2020/lib/components/layout/footer.component.mjs +18 -17
- package/esm2020/lib/components/layout/index.mjs +7 -7
- package/esm2020/lib/components/layout/main-layout.component.mjs +52 -52
- package/esm2020/lib/components/layout/menu-item.component.mjs +292 -272
- package/esm2020/lib/components/layout/menu.component.mjs +32 -21
- package/esm2020/lib/components/layout/services/index.mjs +1 -1
- package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +194 -194
- package/esm2020/lib/components/layout/topbar.component.mjs +67 -65
- package/esm2020/lib/components/layout/version.component.mjs +58 -58
- package/esm2020/lib/components/tableview/index.mjs +6 -6
- package/esm2020/lib/components/tableview/models/index.mjs +1 -1
- package/esm2020/lib/components/tableview/models/table.event.mjs +16 -16
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +150 -147
- package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +52 -53
- package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +121 -120
- package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +101 -84
- package/esm2020/lib/components/tableview/table/table.component.mjs +611 -595
- package/esm2020/lib/components/tableview/tableview.component.mjs +115 -113
- package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
- package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
- package/esm2020/lib/data-providers/index.mjs +6 -6
- package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
- package/esm2020/lib/data-providers/table.data-provider.mjs +37 -37
- package/esm2020/lib/data-providers/tableview-crud.data-provider.mjs +23 -23
- package/esm2020/lib/data-providers/tableview.data-provider.mjs +44 -44
- package/esm2020/lib/descriptors/action/action-button.descriptor.mjs +60 -0
- package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +77 -77
- package/esm2020/lib/descriptors/action/action.descriptor.mjs +579 -0
- package/esm2020/lib/descriptors/action/index.mjs +4 -0
- package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +291 -0
- package/esm2020/lib/descriptors/editor/field-validation.descriptor.mjs +25 -0
- package/esm2020/lib/descriptors/editor/field.descriptor.mjs +990 -0
- package/esm2020/lib/descriptors/editor/index.mjs +4 -0
- package/esm2020/lib/descriptors/filter/filter.descriptor.mjs +370 -0
- package/esm2020/lib/descriptors/filter/index.mjs +2 -0
- package/esm2020/lib/descriptors/index.mjs +2 -12
- package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
- package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
- package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
- package/esm2020/lib/descriptors/model.descriptor.mjs +44 -44
- package/esm2020/lib/descriptors/table/column.descriptor.mjs +406 -0
- package/esm2020/lib/descriptors/table/index.mjs +3 -0
- package/esm2020/lib/descriptors/table/table.descriptor.mjs +497 -0
- package/esm2020/lib/descriptors/tableview/index.mjs +2 -0
- package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +346 -0
- package/esm2020/lib/descriptors/types/action.type.mjs +25 -25
- package/esm2020/lib/descriptors/types/column.type.mjs +20 -20
- package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
- package/esm2020/lib/descriptors/types/field.type.mjs +55 -55
- package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
- package/esm2020/lib/descriptors/types/index.mjs +6 -6
- package/esm2020/lib/descriptors/types/table.type.mjs +26 -26
- package/esm2020/lib/directives/component.directive.mjs +45 -44
- package/esm2020/lib/directives/index.mjs +2 -2
- package/esm2020/lib/directives/template.directive.mjs +29 -28
- package/esm2020/lib/mng-commons.module.mjs +445 -485
- package/esm2020/lib/models/column-value.model.mjs +2 -2
- package/esm2020/lib/models/config.model.mjs +2 -2
- package/esm2020/lib/models/enum.model.mjs +1 -1
- package/esm2020/lib/models/error.model.mjs +1 -1
- package/esm2020/lib/models/index.mjs +9 -9
- package/esm2020/lib/models/menu.model.mjs +2 -2
- package/esm2020/lib/models/tableview-attr.model.mjs +1 -1
- package/esm2020/lib/models/user.model.mjs +1 -1
- package/esm2020/lib/models/version.model.mjs +1 -1
- package/esm2020/lib/models/view-container.model.mjs +2 -2
- package/esm2020/lib/pipes/boolean.pipe.mjs +28 -27
- package/esm2020/lib/pipes/class-map.pipe.mjs +23 -22
- package/esm2020/lib/pipes/enum.pipe.mjs +26 -25
- package/esm2020/lib/pipes/enumerate-async.pipe.mjs +39 -38
- package/esm2020/lib/pipes/enumerate.pipe.mjs +56 -55
- package/esm2020/lib/pipes/getter.pipe.mjs +21 -20
- package/esm2020/lib/pipes/i18n-property.pipe.mjs +19 -18
- package/esm2020/lib/pipes/index.mjs +11 -11
- package/esm2020/lib/pipes/json-path.pipe.mjs +80 -79
- package/esm2020/lib/pipes/locale-default-row-class.pipe.mjs +27 -26
- package/esm2020/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +1 -1
- package/esm2020/lib/pipes/models/internal/index.mjs +1 -1
- package/esm2020/lib/pipes/parametrize.pipe.mjs +86 -85
- package/esm2020/lib/pipes/template.pipe.mjs +25 -24
- package/esm2020/lib/provide-commons.mjs +73 -0
- package/esm2020/lib/router/index.mjs +4 -3
- package/esm2020/lib/router/models/index.mjs +1 -1
- package/esm2020/lib/router/models/router.model.mjs +2 -2
- package/esm2020/lib/router/route-builder.mjs +313 -426
- package/esm2020/lib/router/routes-builder.mjs +67 -0
- package/esm2020/lib/router/tableview-route-builder.mjs +187 -187
- package/esm2020/lib/security/authorization.guard.mjs +29 -26
- package/esm2020/lib/security/authorization.service.mjs +50 -47
- package/esm2020/lib/security/authorization.util.mjs +15 -15
- package/esm2020/lib/security/index.mjs +3 -3
- package/esm2020/lib/security/model/authorization.type.mjs +7 -7
- package/esm2020/lib/security/model/index.mjs +3 -3
- package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
- package/esm2020/lib/security/model/permissions.model.mjs +86 -86
- package/esm2020/lib/services/action-executor.service.mjs +558 -555
- package/esm2020/lib/services/commons.service.mjs +464 -461
- package/esm2020/lib/services/configuration.service.mjs +149 -142
- package/esm2020/lib/services/error-mapper.service.mjs +13 -13
- package/esm2020/lib/services/index.mjs +6 -6
- package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
- package/esm2020/lib/services/internal/commons-init.service.mjs +50 -44
- package/esm2020/lib/services/internal/index.mjs +2 -2
- package/esm2020/lib/services/navigation.service.mjs +51 -48
- package/esm2020/lib/services/providers/config-service.provider.mjs +31 -30
- package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
- package/esm2020/lib/services/providers/index.mjs +2 -2
- package/esm2020/lib/services/router.service.mjs +97 -0
- package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
- package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
- package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
- package/esm2020/lib/services/tokens/index.mjs +4 -4
- package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
- package/esm2020/lib/services/version.service.mjs +42 -39
- package/esm2020/lib/services/view-container.component.service.mjs +55 -55
- package/esm2020/lib/styles/button-style.builder.mjs +164 -164
- package/esm2020/lib/styles/index.mjs +2 -2
- package/esm2020/lib/styles/models/index.mjs +2 -2
- package/esm2020/lib/styles/models/style-level.enum.mjs +11 -11
- package/esm2020/lib/styles/models/style-size.enum.mjs +8 -8
- package/esm2020/lib/styles/styles.util.mjs +42 -42
- package/esm2020/lib/types/index.mjs +2 -2
- package/esm2020/lib/types/type.decorator.mjs +21 -21
- package/esm2020/lib/types/type.model.mjs +1 -1
- package/esm2020/lib/utils/action-data-provider.util.mjs +145 -145
- package/esm2020/lib/utils/date.util.mjs +117 -117
- package/esm2020/lib/utils/editor-formly.util.mjs +288 -288
- package/esm2020/lib/utils/enum.util.mjs +81 -81
- package/esm2020/lib/utils/export.util.mjs +20 -20
- package/esm2020/lib/utils/i18n.util.mjs +233 -233
- package/esm2020/lib/utils/index.mjs +10 -10
- package/esm2020/lib/utils/model.util.mjs +68 -68
- package/esm2020/lib/utils/notification.util.mjs +51 -51
- package/esm2020/lib/utils/route.util.mjs +36 -24
- package/esm2020/lib/utils/string.util.mjs +26 -26
- package/esm2020/lib/utils/tableview.util.mjs +160 -160
- package/esm2020/lib/utils/type.util.mjs +92 -92
- package/esm2020/mediusinc-mng-commons.mjs +4 -4
- package/esm2020/public-api.mjs +61 -55
- package/fesm2015/mediusinc-mng-commons.mjs +14147 -13931
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
- package/fesm2020/mediusinc-mng-commons.mjs +13980 -13768
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/api/models/builders/query-param.builder.d.ts +13 -13
- package/lib/api/models/filter-match-type.model.d.ts +23 -23
- package/lib/api/models/filter-param.model.d.ts +23 -23
- package/lib/api/models/index.d.ts +8 -8
- package/lib/api/models/mappers.d.ts +6 -6
- package/lib/api/models/query-mode.model.d.ts +16 -16
- package/lib/api/models/query-param.model.d.ts +31 -31
- package/lib/api/models/query-result.model.d.ts +24 -24
- package/lib/api/models/serialization.model.d.ts +8 -8
- package/lib/api/services/api.abstract.service.d.ts +24 -24
- package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
- package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
- package/lib/api/services/index.d.ts +3 -3
- package/lib/api/utils/index.d.ts +2 -2
- package/lib/api/utils/medius-rest.util.d.ts +16 -16
- package/lib/api/utils/object-serializer.util.d.ts +33 -33
- package/lib/components/action/action.component.d.ts +79 -79
- package/lib/components/action/editor/action-editor.component.d.ts +69 -69
- package/lib/components/action/index.d.ts +4 -4
- package/lib/components/action/localization/data-language-dropdown.component.d.ts +25 -25
- package/lib/components/action/models/action-component.model.d.ts +15 -15
- package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
- package/lib/components/action/models/action-execution.model.d.ts +135 -135
- package/lib/components/action/models/index.d.ts +4 -4
- package/lib/components/action/models/tableview-action-default-categories.model.d.ts +10 -10
- package/lib/components/action/route/action-route.component.d.ts +31 -31
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +61 -61
- package/lib/components/form/date-range/date-range.component.d.ts +28 -28
- package/lib/components/form/dropdown/dropdown.component.d.ts +52 -52
- package/lib/components/form/editor/form-editor.component.d.ts +52 -52
- package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +13 -13
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +16 -16
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +15 -15
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +14 -14
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +29 -29
- package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +11 -11
- package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +46 -46
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +25 -24
- package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
- package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +7 -7
- package/lib/components/form/formly/fields/index.d.ts +10 -10
- package/lib/components/form/formly/formly.config.d.ts +14 -14
- package/lib/components/form/formly/index.d.ts +1 -1
- package/lib/components/form/formly/models/formly-config.model.d.ts +11 -11
- package/lib/components/form/formly/models/formly-field.model.d.ts +16 -16
- package/lib/components/form/formly/models/index.d.ts +2 -2
- package/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +6 -6
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +11 -11
- package/lib/components/form/formly/wrappers/index.d.ts +2 -2
- package/lib/components/form/index.d.ts +4 -4
- package/lib/components/form/models/field-action-context.model.d.ts +17 -17
- package/lib/components/form/models/form-editor.event.d.ts +37 -37
- package/lib/components/form/models/form-editor.interface.d.ts +10 -10
- package/lib/components/form/models/index.d.ts +2 -2
- package/lib/components/layout/breadcrumb.component.d.ts +8 -8
- package/lib/components/layout/footer.component.d.ts +9 -9
- package/lib/components/layout/index.d.ts +7 -7
- package/lib/components/layout/main-layout.component.d.ts +20 -20
- package/lib/components/layout/menu-item.component.d.ts +56 -52
- package/lib/components/layout/menu.component.d.ts +16 -10
- package/lib/components/layout/services/index.d.ts +1 -1
- package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
- package/lib/components/layout/topbar.component.d.ts +28 -28
- package/lib/components/layout/version.component.d.ts +19 -19
- package/lib/components/tableview/index.d.ts +6 -6
- package/lib/components/tableview/models/index.d.ts +1 -1
- package/lib/components/tableview/models/table.event.d.ts +17 -17
- package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +36 -33
- package/lib/components/tableview/route/tableview-route.component.d.ts +19 -18
- package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +38 -38
- package/lib/components/tableview/table/column-value/column-value.component.d.ts +35 -35
- package/lib/components/tableview/table/table.component.d.ts +117 -115
- package/lib/components/tableview/tableview.component.d.ts +49 -48
- package/lib/data-providers/base.data-provider.d.ts +14 -14
- package/lib/data-providers/editor.data-provider.d.ts +25 -25
- package/lib/data-providers/index.d.ts +6 -6
- package/lib/data-providers/lookup.data-provider.d.ts +14 -14
- package/lib/data-providers/table.data-provider.d.ts +27 -27
- package/lib/data-providers/tableview-crud.data-provider.d.ts +8 -8
- package/lib/data-providers/tableview.data-provider.d.ts +33 -33
- package/lib/descriptors/{action-button.descriptor.d.ts → action/action-button.descriptor.d.ts} +22 -22
- package/lib/descriptors/action/action-confirmation.descriptor.d.ts +36 -36
- package/lib/descriptors/{action.descriptor.d.ts → action/action.descriptor.d.ts} +225 -223
- package/lib/descriptors/action/index.d.ts +3 -0
- package/lib/descriptors/{editor.descriptor.d.ts → editor/editor.descriptor.d.ts} +119 -116
- package/lib/descriptors/{field-validation.descriptor.d.ts → editor/field-validation.descriptor.d.ts} +19 -19
- package/lib/descriptors/{field.descriptor.d.ts → editor/field.descriptor.d.ts} +349 -345
- package/lib/descriptors/editor/index.d.ts +3 -0
- package/lib/descriptors/{filter.descriptor.d.ts → filter/filter.descriptor.d.ts} +120 -118
- package/lib/descriptors/filter/index.d.ts +1 -0
- package/lib/descriptors/index.d.ts +1 -11
- package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
- package/lib/descriptors/interfaces/index.d.ts +2 -2
- package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
- package/lib/descriptors/model.descriptor.d.ts +18 -18
- package/lib/descriptors/{column.descriptor.d.ts → table/column.descriptor.d.ts} +130 -130
- package/lib/descriptors/table/index.d.ts +2 -0
- package/lib/descriptors/{table.descriptor.d.ts → table/table.descriptor.d.ts} +193 -193
- package/lib/descriptors/tableview/index.d.ts +1 -0
- package/lib/descriptors/{tableview.descriptor.d.ts → tableview/tableview.descriptor.d.ts} +131 -129
- package/lib/descriptors/types/action.type.d.ts +21 -21
- package/lib/descriptors/types/column.type.d.ts +18 -18
- package/lib/descriptors/types/editor.type.d.ts +6 -6
- package/lib/descriptors/types/field.type.d.ts +47 -47
- package/lib/descriptors/types/filter.type.d.ts +27 -27
- package/lib/descriptors/types/index.d.ts +6 -6
- package/lib/descriptors/types/table.type.d.ts +22 -22
- package/lib/directives/component.directive.d.ts +16 -16
- package/lib/directives/index.d.ts +2 -2
- package/lib/directives/template.directive.d.ts +13 -13
- package/lib/mng-commons.module.d.ts +99 -99
- package/lib/models/column-value.model.d.ts +4 -4
- package/lib/models/config.model.d.ts +41 -40
- package/lib/models/enum.model.d.ts +6 -6
- package/lib/models/error.model.d.ts +14 -14
- package/lib/models/index.d.ts +9 -9
- package/lib/models/menu.model.d.ts +30 -30
- package/lib/models/tableview-attr.model.d.ts +10 -10
- package/lib/models/user.model.d.ts +8 -8
- package/lib/models/version.model.d.ts +18 -18
- package/lib/models/view-container.model.d.ts +43 -43
- package/lib/pipes/boolean.pipe.d.ts +7 -7
- package/lib/pipes/class-map.pipe.d.ts +7 -7
- package/lib/pipes/enum.pipe.d.ts +8 -8
- package/lib/pipes/enumerate-async.pipe.d.ts +14 -14
- package/lib/pipes/enumerate.pipe.d.ts +21 -21
- package/lib/pipes/getter.pipe.d.ts +7 -7
- package/lib/pipes/i18n-property.pipe.d.ts +8 -8
- package/lib/pipes/index.d.ts +11 -11
- package/lib/pipes/json-path.pipe.d.ts +13 -13
- package/lib/pipes/locale-default-row-class.pipe.d.ts +10 -10
- package/lib/pipes/models/internal/enumrate-pipe-i18n.model.d.ts +5 -5
- package/lib/pipes/models/internal/index.d.ts +1 -1
- package/lib/pipes/parametrize.pipe.d.ts +13 -13
- package/lib/pipes/template.pipe.d.ts +10 -10
- package/lib/provide-commons.d.ts +3 -0
- package/lib/router/index.d.ts +3 -2
- package/lib/router/models/index.d.ts +1 -1
- package/lib/router/models/router.model.d.ts +36 -33
- package/lib/router/route-builder.d.ts +62 -98
- package/lib/router/routes-builder.d.ts +29 -0
- package/lib/router/tableview-route-builder.d.ts +38 -37
- package/lib/security/authorization.guard.d.ts +11 -11
- package/lib/security/authorization.service.d.ts +19 -19
- package/lib/security/authorization.util.d.ts +5 -5
- package/lib/security/index.d.ts +3 -3
- package/lib/security/model/authorization.type.d.ts +6 -6
- package/lib/security/model/index.d.ts +3 -3
- package/lib/security/model/permission-service.interface.d.ts +6 -6
- package/lib/security/model/permissions.model.d.ts +37 -37
- package/lib/services/action-executor.service.d.ts +150 -149
- package/lib/services/commons.service.d.ts +93 -93
- package/lib/services/configuration.service.d.ts +60 -57
- package/lib/services/error-mapper.service.d.ts +7 -7
- package/lib/services/index.d.ts +6 -6
- package/lib/services/internal/commons-init.provider.d.ts +3 -3
- package/lib/services/internal/commons-init.service.d.ts +18 -16
- package/lib/services/internal/index.d.ts +2 -2
- package/lib/services/navigation.service.d.ts +14 -14
- package/lib/services/providers/config-service.provider.d.ts +6 -6
- package/lib/services/providers/formly-config.provider.d.ts +4 -4
- package/lib/services/providers/index.d.ts +2 -2
- package/lib/services/router.service.d.ts +22 -0
- package/lib/services/tokens/browser-storage.token.d.ts +2 -2
- package/lib/services/tokens/commons-init.token.d.ts +3 -3
- package/lib/services/tokens/default-setting.token.d.ts +2 -2
- package/lib/services/tokens/index.d.ts +4 -4
- package/lib/services/tokens/module-config.token.d.ts +3 -3
- package/lib/services/version.service.d.ts +13 -13
- package/lib/services/view-container.component.service.d.ts +31 -31
- package/lib/styles/button-style.builder.d.ts +67 -67
- package/lib/styles/index.d.ts +2 -2
- package/lib/styles/models/index.d.ts +2 -2
- package/lib/styles/models/style-level.enum.d.ts +10 -10
- package/lib/styles/models/style-size.enum.d.ts +7 -7
- package/lib/styles/styles.util.d.ts +15 -14
- package/lib/types/index.d.ts +2 -2
- package/lib/types/type.decorator.d.ts +4 -4
- package/lib/types/type.model.d.ts +23 -23
- package/lib/utils/action-data-provider.util.d.ts +20 -20
- package/lib/utils/date.util.d.ts +7 -7
- package/lib/utils/editor-formly.util.d.ts +12 -12
- package/lib/utils/enum.util.d.ts +50 -50
- package/lib/utils/export.util.d.ts +5 -5
- package/lib/utils/i18n.util.d.ts +57 -56
- package/lib/utils/index.d.ts +10 -10
- package/lib/utils/model.util.d.ts +8 -8
- package/lib/utils/notification.util.d.ts +13 -12
- package/lib/utils/route.util.d.ts +59 -4
- package/lib/utils/string.util.d.ts +4 -4
- package/lib/utils/tableview.util.d.ts +40 -40
- package/lib/utils/type.util.d.ts +57 -57
- package/package.json +6 -6
- package/public-api.d.ts +40 -34
- package/scss/common/layout/_breadcrumb.scss +12 -2
- package/scss/common/layout/_exception.scss +1 -1
- package/scss/common/layout/_inlinemenu.scss +13 -0
- package/scss/common/layout/_login.scss +1 -0
- package/scss/common/layout/_rightmenu.scss +5 -0
- package/scss/common/layout/menu/_menu_common.scss +1 -1
- package/scss/common/theme/designer/_mixins.scss +29 -0
- package/scss/common/theme/extensions/_datatable.scss +2 -2
- package/scss/common/variables/layout/_layout_dark.scss +0 -1
- package/scss/common/variables/layout/_layout_light.scss +0 -1
- package/scss/common/variables/theme/_theme_dark.scss +72 -46
- package/scss/common/variables/theme/_theme_light.scss +70 -33
- package/version-info.json +7 -7
- package/esm2020/lib/descriptors/action-button.descriptor.mjs +0 -60
- package/esm2020/lib/descriptors/action.descriptor.mjs +0 -577
- package/esm2020/lib/descriptors/column.descriptor.mjs +0 -405
- package/esm2020/lib/descriptors/editor.descriptor.mjs +0 -290
- package/esm2020/lib/descriptors/field-validation.descriptor.mjs +0 -25
- package/esm2020/lib/descriptors/field.descriptor.mjs +0 -987
- package/esm2020/lib/descriptors/filter.descriptor.mjs +0 -368
- package/esm2020/lib/descriptors/table.descriptor.mjs +0 -497
- package/esm2020/lib/descriptors/tableview.descriptor.mjs +0 -344
- package/mediusinc-mng-commons-1.4.0.tgz +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { MngMainLayoutComponent } from '../components/layout';
|
|
2
|
+
import { RouteBuilder } from './route-builder';
|
|
3
|
+
export class RoutesBuilder {
|
|
4
|
+
constructor(layoutRoute) {
|
|
5
|
+
this.routes = [];
|
|
6
|
+
this.layoutRoute = layoutRoute?.withRoot(this);
|
|
7
|
+
this.currentRoute = layoutRoute;
|
|
8
|
+
}
|
|
9
|
+
static create() {
|
|
10
|
+
return new RoutesBuilder();
|
|
11
|
+
}
|
|
12
|
+
static createWithLayout(layoutComponent = MngMainLayoutComponent, topbarComponent, breadcrumbComponent, menuComponent, footerComponent) {
|
|
13
|
+
const layoutRoute = RouteBuilder.createLayoutRoute('', layoutComponent, topbarComponent, breadcrumbComponent, menuComponent, footerComponent);
|
|
14
|
+
return new RoutesBuilder(layoutRoute);
|
|
15
|
+
}
|
|
16
|
+
addAngularRoute(route) {
|
|
17
|
+
return this.addRouteBuilder(RouteBuilder.createFromRoute(route));
|
|
18
|
+
}
|
|
19
|
+
addRouteRedirect(path, redirectTo, pathMatch = 'prefix') {
|
|
20
|
+
return this.addRouteBuilder(RouteBuilder.createRedirect(path, redirectTo, pathMatch));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated This method is deprecated and should not be used.
|
|
24
|
+
* Use method {@link addLazyRouteComponent} or {@link addLazyRouteModule} instead.
|
|
25
|
+
*/
|
|
26
|
+
addLazyRoute(path, loadChildren, canLoad) {
|
|
27
|
+
return this.addRouteBuilder(RouteBuilder.createLazyRoute(path, loadChildren, canLoad));
|
|
28
|
+
}
|
|
29
|
+
addLazyRouteComponent(path, loadComponent, canMatch) {
|
|
30
|
+
return this.addRouteBuilder(RouteBuilder.createLazyRouteComponent(path, loadComponent, canMatch));
|
|
31
|
+
}
|
|
32
|
+
addLazyRouteModule(path, loadChildren, canMatch) {
|
|
33
|
+
return this.addRouteBuilder(RouteBuilder.createLazyRouteModule(path, loadChildren, canMatch));
|
|
34
|
+
}
|
|
35
|
+
addRoute(path, component) {
|
|
36
|
+
return this.addRouteBuilder(RouteBuilder.create(path, component));
|
|
37
|
+
}
|
|
38
|
+
addTableview(builder) {
|
|
39
|
+
return this.addTableview(builder);
|
|
40
|
+
}
|
|
41
|
+
addRouteBuilder(routeBuilder) {
|
|
42
|
+
this.currentRoute = routeBuilder.withRoot(this);
|
|
43
|
+
this.routes.push(routeBuilder);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
toRoute() {
|
|
47
|
+
if (!this.currentRoute) {
|
|
48
|
+
throw new Error('No routes were added!');
|
|
49
|
+
}
|
|
50
|
+
return this.currentRoute;
|
|
51
|
+
}
|
|
52
|
+
buildRoutes() {
|
|
53
|
+
let angularRoutes = [];
|
|
54
|
+
for (const route of this.routes) {
|
|
55
|
+
angularRoutes.push(route.buildRoute());
|
|
56
|
+
}
|
|
57
|
+
if (this.layoutRoute) {
|
|
58
|
+
const layoutAngularRoute = this.layoutRoute.buildRoute();
|
|
59
|
+
if (angularRoutes.length > 0) {
|
|
60
|
+
layoutAngularRoute.children = angularRoutes;
|
|
61
|
+
}
|
|
62
|
+
angularRoutes = [layoutAngularRoute];
|
|
63
|
+
}
|
|
64
|
+
return angularRoutes;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci9yb3V0ZXMtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHN0MsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBb0IsV0FBMEI7UUFIdEMsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFJckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTTtRQUNoQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDMUIsZUFBZSxHQUFHLHNCQUFzQixFQUN4QyxlQUEyQixFQUMzQixtQkFBK0IsRUFDL0IsYUFBeUIsRUFDekIsZUFBMkI7UUFFM0IsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM5SSxPQUFPLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxZQUErQixRQUFRO1FBQzdGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLElBQVksRUFBRSxZQUEwQixFQUFFLE9BQW9CO1FBQzlFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU0scUJBQXFCLENBQ3hCLElBQVksRUFDWixhQUFxSixFQUNySixRQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsSUFBWSxFQUFFLFlBQTBCLEVBQUUsUUFBcUI7UUFDckYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZLEVBQUUsU0FBb0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLFlBQVksQ0FBa0QsT0FBaUM7UUFDbEcsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxlQUFlLENBQUMsWUFBMEI7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxhQUFhLEdBQVcsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM3QixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6RCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO2FBQy9DO1lBQ0QsYUFBYSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RlZmF1bHRFeHBvcnQsIExvYWRDaGlsZHJlbiwgUm91dGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNbmdNYWluTGF5b3V0Q29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2xheW91dCc7XG5pbXBvcnQge0FNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtSb3V0ZUJ1aWxkZXJ9IGZyb20gJy4vcm91dGUtYnVpbGRlcic7XG5pbXBvcnQge1RhYmxldmlld1JvdXRlQnVpbGRlcn0gZnJvbSAnLi90YWJsZXZpZXctcm91dGUtYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZXNCdWlsZGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFJvdXRlPzogUm91dGVCdWlsZGVyO1xuICAgIHByaXZhdGUgcm91dGVzOiBBcnJheTxSb3V0ZUJ1aWxkZXI+ID0gW107XG4gICAgcHJpdmF0ZSBjdXJyZW50Um91dGU/OiBSb3V0ZUJ1aWxkZXI7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKGxheW91dFJvdXRlPzogUm91dGVCdWlsZGVyKSB7XG4gICAgICAgIHRoaXMubGF5b3V0Um91dGUgPSBsYXlvdXRSb3V0ZT8ud2l0aFJvb3QodGhpcyk7XG4gICAgICAgIHRoaXMuY3VycmVudFJvdXRlID0gbGF5b3V0Um91dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGUoKTogUm91dGVzQnVpbGRlciB7XG4gICAgICAgIHJldHVybiBuZXcgUm91dGVzQnVpbGRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aExheW91dChcbiAgICAgICAgbGF5b3V0Q29tcG9uZW50ID0gTW5nTWFpbkxheW91dENvbXBvbmVudCxcbiAgICAgICAgdG9wYmFyQ29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICBicmVhZGNydW1iQ29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICBtZW51Q29tcG9uZW50PzogVHlwZTxhbnk+LFxuICAgICAgICBmb290ZXJDb21wb25lbnQ/OiBUeXBlPGFueT5cbiAgICApOiBSb3V0ZXNCdWlsZGVyIHtcbiAgICAgICAgY29uc3QgbGF5b3V0Um91dGUgPSBSb3V0ZUJ1aWxkZXIuY3JlYXRlTGF5b3V0Um91dGUoJycsIGxheW91dENvbXBvbmVudCwgdG9wYmFyQ29tcG9uZW50LCBicmVhZGNydW1iQ29tcG9uZW50LCBtZW51Q29tcG9uZW50LCBmb290ZXJDb21wb25lbnQpO1xuICAgICAgICByZXR1cm4gbmV3IFJvdXRlc0J1aWxkZXIobGF5b3V0Um91dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRBbmd1bGFyUm91dGUocm91dGU6IFJvdXRlKTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFJvdXRlQnVpbGRlcihSb3V0ZUJ1aWxkZXIuY3JlYXRlRnJvbVJvdXRlKHJvdXRlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJvdXRlUmVkaXJlY3QocGF0aDogc3RyaW5nLCByZWRpcmVjdFRvOiBzdHJpbmcsIHBhdGhNYXRjaDogJ2Z1bGwnIHwgJ3ByZWZpeCcgPSAncHJlZml4Jyk6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRSb3V0ZUJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZVJlZGlyZWN0KHBhdGgsIHJlZGlyZWN0VG8sIHBhdGhNYXRjaCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICAgKiBVc2UgbWV0aG9kIHtAbGluayBhZGRMYXp5Um91dGVDb21wb25lbnR9IG9yIHtAbGluayBhZGRMYXp5Um91dGVNb2R1bGV9IGluc3RlYWQuXG4gICAgICovXG4gICAgcHVibGljIGFkZExhenlSb3V0ZShwYXRoOiBzdHJpbmcsIGxvYWRDaGlsZHJlbjogTG9hZENoaWxkcmVuLCBjYW5Mb2FkPzogQXJyYXk8YW55Pik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRSb3V0ZUJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZUxhenlSb3V0ZShwYXRoLCBsb2FkQ2hpbGRyZW4sIGNhbkxvYWQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTGF6eVJvdXRlQ29tcG9uZW50KFxuICAgICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IFR5cGU8dW5rbm93bj4gfCBPYnNlcnZhYmxlPFR5cGU8dW5rbm93bj4gfCBEZWZhdWx0RXhwb3J0PFR5cGU8dW5rbm93bj4+PiB8IFByb21pc2U8VHlwZTx1bmtub3duPiB8IERlZmF1bHRFeHBvcnQ8VHlwZTx1bmtub3duPj4+LFxuICAgICAgICBjYW5NYXRjaD86IEFycmF5PGFueT5cbiAgICApOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm91dGVCdWlsZGVyKFJvdXRlQnVpbGRlci5jcmVhdGVMYXp5Um91dGVDb21wb25lbnQocGF0aCwgbG9hZENvbXBvbmVudCwgY2FuTWF0Y2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTGF6eVJvdXRlTW9kdWxlKHBhdGg6IHN0cmluZywgbG9hZENoaWxkcmVuOiBMb2FkQ2hpbGRyZW4sIGNhbk1hdGNoPzogQXJyYXk8YW55Pik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRSb3V0ZUJ1aWxkZXIoUm91dGVCdWlsZGVyLmNyZWF0ZUxhenlSb3V0ZU1vZHVsZShwYXRoLCBsb2FkQ2hpbGRyZW4sIGNhbk1hdGNoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJvdXRlKHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm91dGVCdWlsZGVyKFJvdXRlQnVpbGRlci5jcmVhdGUocGF0aCwgY29tcG9uZW50KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRhYmxldmlldzxDIGV4dGVuZHMgQU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50PGFueSwgYW55Pj4oYnVpbGRlcjogVGFibGV2aWV3Um91dGVCdWlsZGVyPEM+KTogdGhpcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZFRhYmxldmlldyhidWlsZGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUm91dGVCdWlsZGVyKHJvdXRlQnVpbGRlcjogUm91dGVCdWlsZGVyKTogdGhpcyB7XG4gICAgICAgIHRoaXMuY3VycmVudFJvdXRlID0gcm91dGVCdWlsZGVyLndpdGhSb290KHRoaXMpO1xuICAgICAgICB0aGlzLnJvdXRlcy5wdXNoKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1JvdXRlKCk6IFJvdXRlQnVpbGRlciB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50Um91dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcm91dGVzIHdlcmUgYWRkZWQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFJvdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZFJvdXRlcygpOiBSb3V0ZXMge1xuICAgICAgICBsZXQgYW5ndWxhclJvdXRlczogUm91dGVzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgcm91dGUgb2YgdGhpcy5yb3V0ZXMpIHtcbiAgICAgICAgICAgIGFuZ3VsYXJSb3V0ZXMucHVzaChyb3V0ZS5idWlsZFJvdXRlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubGF5b3V0Um91dGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dEFuZ3VsYXJSb3V0ZSA9IHRoaXMubGF5b3V0Um91dGUuYnVpbGRSb3V0ZSgpO1xuICAgICAgICAgICAgaWYgKGFuZ3VsYXJSb3V0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxheW91dEFuZ3VsYXJSb3V0ZS5jaGlsZHJlbiA9IGFuZ3VsYXJSb3V0ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmd1bGFyUm91dGVzID0gW2xheW91dEFuZ3VsYXJSb3V0ZV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYW5ndWxhclJvdXRlcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,187 +1,187 @@
|
|
|
1
|
-
import { MngActionRouteComponent } from '../components/action';
|
|
2
|
-
import { TableviewActionDefaultCategories } from '../components/action/models';
|
|
3
|
-
import { MngTableviewRouteComponent } from '../components/tableview';
|
|
4
|
-
import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors';
|
|
5
|
-
import { RouteBuilder } from './route-builder';
|
|
6
|
-
export class TableviewRouteBuilder {
|
|
7
|
-
constructor(path) {
|
|
8
|
-
this.path = path;
|
|
9
|
-
this.hasDetails = true;
|
|
10
|
-
this.detailsPath = ':itemId';
|
|
11
|
-
this.hasEdit = true;
|
|
12
|
-
this.editPath = ':itemId/edit';
|
|
13
|
-
this.hasAdd = true;
|
|
14
|
-
this.addPath = 'add';
|
|
15
|
-
this.hasDelete = true;
|
|
16
|
-
}
|
|
17
|
-
static fromComponent(path, component) {
|
|
18
|
-
const inst = new TableviewRouteBuilder(path);
|
|
19
|
-
inst.component = component;
|
|
20
|
-
return inst;
|
|
21
|
-
}
|
|
22
|
-
static from(path, descriptor, dataProvider, actions) {
|
|
23
|
-
const inst = new TableviewRouteBuilder(path);
|
|
24
|
-
inst.descriptor = descriptor;
|
|
25
|
-
inst.dataProvider = dataProvider;
|
|
26
|
-
inst.actions = actions;
|
|
27
|
-
inst.hasDetails = false;
|
|
28
|
-
inst.hasAdd = false;
|
|
29
|
-
inst.hasEdit = false;
|
|
30
|
-
for (const action of inst.actions) {
|
|
31
|
-
if (action instanceof ActionEditorDetailsDescriptor) {
|
|
32
|
-
inst.hasDetails = true;
|
|
33
|
-
}
|
|
34
|
-
else if (action instanceof ActionEditorAddDescriptor) {
|
|
35
|
-
inst.hasAdd = true;
|
|
36
|
-
}
|
|
37
|
-
else if (action instanceof ActionEditorEditDescriptor) {
|
|
38
|
-
inst.hasEdit = true;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return inst;
|
|
42
|
-
}
|
|
43
|
-
withReadOnly(permissions) {
|
|
44
|
-
if (permissions) {
|
|
45
|
-
this.withPermissions(permissions);
|
|
46
|
-
}
|
|
47
|
-
this.withAdd(false);
|
|
48
|
-
this.withEdit(false);
|
|
49
|
-
this.withDelete(false);
|
|
50
|
-
return this;
|
|
51
|
-
}
|
|
52
|
-
withDetails(hasDetails = true, permissions, path) {
|
|
53
|
-
this.hasDetails = hasDetails;
|
|
54
|
-
if (permissions) {
|
|
55
|
-
this.withPermissions(undefined, undefined, undefined, undefined, permissions);
|
|
56
|
-
}
|
|
57
|
-
if (path) {
|
|
58
|
-
this.detailsPath = path;
|
|
59
|
-
}
|
|
60
|
-
return this;
|
|
61
|
-
}
|
|
62
|
-
withAdd(hasAdd = true, permissions, path) {
|
|
63
|
-
this.hasAdd = hasAdd;
|
|
64
|
-
if (permissions) {
|
|
65
|
-
this.withPermissions(undefined, permissions);
|
|
66
|
-
}
|
|
67
|
-
if (path) {
|
|
68
|
-
this.addPath = path;
|
|
69
|
-
}
|
|
70
|
-
return this;
|
|
71
|
-
}
|
|
72
|
-
withEdit(hasEdit = true, permissions, path) {
|
|
73
|
-
this.hasEdit = hasEdit;
|
|
74
|
-
if (permissions) {
|
|
75
|
-
this.withPermissions(undefined, undefined, permissions);
|
|
76
|
-
}
|
|
77
|
-
if (path) {
|
|
78
|
-
this.editPath = path;
|
|
79
|
-
}
|
|
80
|
-
return this;
|
|
81
|
-
}
|
|
82
|
-
withDelete(hasDelete = true, permissions) {
|
|
83
|
-
this.hasDelete = hasDelete;
|
|
84
|
-
if (permissions) {
|
|
85
|
-
this.withPermissions(undefined, undefined, undefined, permissions);
|
|
86
|
-
}
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
withPermissions(read, add, edit, delet, details) {
|
|
90
|
-
if (!this.permissions) {
|
|
91
|
-
this.permissions = {};
|
|
92
|
-
}
|
|
93
|
-
if (read) {
|
|
94
|
-
this.permissions[TableviewActionDefaultCategories.READ] = read;
|
|
95
|
-
}
|
|
96
|
-
if (add) {
|
|
97
|
-
this.permissions[TableviewActionDefaultCategories.ADD] = add;
|
|
98
|
-
}
|
|
99
|
-
if (edit) {
|
|
100
|
-
this.permissions[TableviewActionDefaultCategories.EDIT] = edit;
|
|
101
|
-
}
|
|
102
|
-
if (delet) {
|
|
103
|
-
this.permissions[TableviewActionDefaultCategories.DELETE] = delet;
|
|
104
|
-
}
|
|
105
|
-
if (details) {
|
|
106
|
-
this.permissions[TableviewActionDefaultCategories.DETAILS] = details;
|
|
107
|
-
}
|
|
108
|
-
return this;
|
|
109
|
-
}
|
|
110
|
-
withPermissionByCategory(key, permissions) {
|
|
111
|
-
if (!this.permissions) {
|
|
112
|
-
this.permissions = {};
|
|
113
|
-
}
|
|
114
|
-
this.permissions[key] = permissions;
|
|
115
|
-
return this;
|
|
116
|
-
}
|
|
117
|
-
withPermissionsObject(permissions) {
|
|
118
|
-
this.permissions = permissions;
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
build() {
|
|
122
|
-
return this.toRouteBuilder().buildRoute();
|
|
123
|
-
}
|
|
124
|
-
toRouteBuilder() {
|
|
125
|
-
const tableviewRouteBuilder = RouteBuilder.createFromRoute({
|
|
126
|
-
path: this.path,
|
|
127
|
-
component: this.component ? this.component : MngTableviewRouteComponent
|
|
128
|
-
});
|
|
129
|
-
const routeData = {};
|
|
130
|
-
if (!this.component) {
|
|
131
|
-
routeData.tableview = {
|
|
132
|
-
descriptor: this.descriptor,
|
|
133
|
-
dataProvider: this.dataProvider
|
|
134
|
-
};
|
|
135
|
-
if (this.actions) {
|
|
136
|
-
routeData.tableview.actions = this.actions;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (this.permissions) {
|
|
140
|
-
routeData.tableviewPermissions = { ...this.permissions };
|
|
141
|
-
}
|
|
142
|
-
routeData.tableviewActions = {
|
|
143
|
-
hasAdd: this.hasAdd,
|
|
144
|
-
hasEdit: this.hasEdit,
|
|
145
|
-
hasDetails: this.hasDetails,
|
|
146
|
-
hasDelete: this.hasDelete
|
|
147
|
-
};
|
|
148
|
-
tableviewRouteBuilder.withData(routeData);
|
|
149
|
-
if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
|
|
150
|
-
tableviewRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
|
|
151
|
-
}
|
|
152
|
-
// list route
|
|
153
|
-
const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
|
|
154
|
-
rootChildRouteBuilder.withData({ ...routeData });
|
|
155
|
-
if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
|
|
156
|
-
rootChildRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
|
|
157
|
-
}
|
|
158
|
-
tableviewRouteBuilder.addChildBuilder(rootChildRouteBuilder);
|
|
159
|
-
// add route
|
|
160
|
-
if (this.hasAdd) {
|
|
161
|
-
const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
|
|
162
|
-
routeBuilder.withData({ ...routeData });
|
|
163
|
-
if (this.permissions?.[TableviewActionDefaultCategories.ADD]) {
|
|
164
|
-
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.ADD]);
|
|
165
|
-
}
|
|
166
|
-
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
167
|
-
}
|
|
168
|
-
if (this.hasDetails) {
|
|
169
|
-
const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
|
|
170
|
-
routeBuilder.withData({ ...routeData });
|
|
171
|
-
if (this.permissions?.[TableviewActionDefaultCategories.DETAILS]) {
|
|
172
|
-
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.DETAILS]);
|
|
173
|
-
}
|
|
174
|
-
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
175
|
-
}
|
|
176
|
-
if (this.hasEdit) {
|
|
177
|
-
const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
|
|
178
|
-
routeBuilder.withData({ ...routeData });
|
|
179
|
-
if (this.permissions?.[TableviewActionDefaultCategories.EDIT]) {
|
|
180
|
-
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.EDIT]);
|
|
181
|
-
}
|
|
182
|
-
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
183
|
-
}
|
|
184
|
-
return tableviewRouteBuilder;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci90YWJsZXZpZXctcm91dGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQThCLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEcsT0FBTyxFQUFtQix5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUczSixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxPQUFPLHFCQUFxQjtJQW1COUIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFaaEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO0lBTWtCLENBQUM7SUFFckMsTUFBTSxDQUFDLGFBQWEsQ0FBa0QsSUFBWSxFQUFFLFNBQWtCO1FBQ3pHLE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQXFCLENBQUksSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQ2QsSUFBWSxFQUNaLFVBQW9DLEVBQ3BDLFlBQThDLEVBQzlDLE9BQXFDO1FBRXJDLE1B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QztZQUNwRixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5RCxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM1RjtZQUNELHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN2RDtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2pGLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLFNBQVMsRUFBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzNELFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO1lBQ0QscUJBQXFCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxxQkFBcUIsQ0FBQztJQUNqQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24nO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzJztcbmltcG9ydCB7QU1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50LCBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZXZpZXcnO1xuaW1wb3J0IHtJVGFibGV2aWV3RGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvciwgVGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtSb3V0ZUJ1aWxkZXJ9IGZyb20gJy4vcm91dGUtYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+IHtcbiAgICBwcml2YXRlIGRlc2NyaXB0b3I/OiBUYWJsZXZpZXdEZXNjcmlwdG9yPGFueT47XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBwcml2YXRlIGFjdGlvbnM/OiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+O1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnQ/OiBUeXBlPEM+O1xuXG4gICAgcHJpdmF0ZSBoYXNEZXRhaWxzID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRldGFpbHNQYXRoID0gJzppdGVtSWQnO1xuICAgIHByaXZhdGUgaGFzRWRpdCA9IHRydWU7XG4gICAgcHJpdmF0ZSBlZGl0UGF0aCA9ICc6aXRlbUlkL2VkaXQnO1xuICAgIHByaXZhdGUgaGFzQWRkID0gdHJ1ZTtcbiAgICBwcml2YXRlIGFkZFBhdGggPSAnYWRkJztcbiAgICBwcml2YXRlIGhhc0RlbGV0ZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnM7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSBwYXRoOiBzdHJpbmcpIHt9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db21wb25lbnQ8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+KHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEM+KTogVGFibGV2aWV3Um91dGVCdWlsZGVyPEM+IHtcbiAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8Qz4ocGF0aCk7XG4gICAgICAgIGluc3QuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gaW5zdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+LFxuICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+LFxuICAgICAgICBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+XG4gICAgKTogVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IGluc3QgPSBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPihwYXRoKTtcbiAgICAgICAgaW5zdC5kZXNjcmlwdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgaW5zdC5kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIGluc3QuYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICAgICAgaW5zdC5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzQWRkID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzRWRpdCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBpbnN0LmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgIGluc3QuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICBpbnN0Lmhhc0FkZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5zdC5oYXNFZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0O1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmVhZE9ubHkocGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyhwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53aXRoQWRkKGZhbHNlKTtcbiAgICAgICAgdGhpcy53aXRoRWRpdChmYWxzZSk7XG4gICAgICAgIHRoaXMud2l0aERlbGV0ZShmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGV0YWlscyhoYXNEZXRhaWxzID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gaGFzRGV0YWlscztcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXRhaWxzUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZGQoaGFzQWRkID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNBZGQgPSBoYXNBZGQ7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0KGhhc0VkaXQgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0VkaXQgPSBoYXNFZGl0O1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGVsZXRlKGhhc0RlbGV0ZSA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlID0gaGFzRGVsZXRlO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHJlYWQ/OiBBUGVybWlzc2lvbnMsIGFkZD86IEFQZXJtaXNzaW9ucywgZWRpdD86IEFQZXJtaXNzaW9ucywgZGVsZXQ/OiBBUGVybWlzc2lvbnMsIGRldGFpbHM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0gPSByZWFkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSA9IGFkZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWRpdCkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSA9IGVkaXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlbGV0KSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURV0gPSBkZWxldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSA9IGRldGFpbHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uQnlDYXRlZ29yeShrZXk6IHN0cmluZywgcGVybWlzc2lvbnM6IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zW2tleV0gPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uc09iamVjdChwZXJtaXNzaW9uczoge1trZXk6IHN0cmluZ106IEFQZXJtaXNzaW9uc30pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogUm91dGUge1xuICAgICAgICByZXR1cm4gdGhpcy50b1JvdXRlQnVpbGRlcigpLmJ1aWxkUm91dGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Sb3V0ZUJ1aWxkZXIoKTogUm91dGVCdWlsZGVyIHtcbiAgICAgICAgY29uc3QgdGFibGV2aWV3Um91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZUZyb21Sb3V0ZSh7XG4gICAgICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50ID8gdGhpcy5jb21wb25lbnQgOiBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb3V0ZURhdGE6IE1uZ1JvdXRlckRhdGEgPSB7fTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlldyA9IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IhLFxuICAgICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5kYXRhUHJvdmlkZXIhXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXcuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zID0gey4uLnRoaXMucGVybWlzc2lvbnN9O1xuICAgICAgICB9XG4gICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zID0ge1xuICAgICAgICAgICAgaGFzQWRkOiB0aGlzLmhhc0FkZCxcbiAgICAgICAgICAgIGhhc0VkaXQ6IHRoaXMuaGFzRWRpdCxcbiAgICAgICAgICAgIGhhc0RldGFpbHM6IHRoaXMuaGFzRGV0YWlscyxcbiAgICAgICAgICAgIGhhc0RlbGV0ZTogdGhpcy5oYXNEZWxldGVcbiAgICAgICAgfTtcbiAgICAgICAgdGFibGV2aWV3Um91dGVCdWlsZGVyLndpdGhEYXRhKHJvdXRlRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHRhYmxldmlld1JvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsaXN0IHJvdXRlXG4gICAgICAgIGNvbnN0IHJvb3RDaGlsZFJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi5yb3V0ZURhdGF9KTtcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdKTtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvb3RDaGlsZFJvdXRlQnVpbGRlcik7XG5cbiAgICAgICAgLy8gYWRkIHJvdXRlXG4gICAgICAgIGlmICh0aGlzLmhhc0FkZCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmFkZFBhdGgsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4ucm91dGVEYXRhfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucz8uW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRGV0YWlscykge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmRldGFpbHNQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRWRpdCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmVkaXRQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGV2aWV3Um91dGVCdWlsZGVyO1xuICAgIH1cbn1cbiJdfQ==
|
|
1
|
+
import { MngActionRouteComponent } from '../components/action';
|
|
2
|
+
import { TableviewActionDefaultCategories } from '../components/action/models';
|
|
3
|
+
import { MngTableviewRouteComponent } from '../components/tableview';
|
|
4
|
+
import { ActionEditorAddDescriptor, ActionEditorDetailsDescriptor, ActionEditorEditDescriptor } from '../descriptors/action';
|
|
5
|
+
import { RouteBuilder } from './route-builder';
|
|
6
|
+
export class TableviewRouteBuilder {
|
|
7
|
+
constructor(path) {
|
|
8
|
+
this.path = path;
|
|
9
|
+
this.hasDetails = true;
|
|
10
|
+
this.detailsPath = ':itemId';
|
|
11
|
+
this.hasEdit = true;
|
|
12
|
+
this.editPath = ':itemId/edit';
|
|
13
|
+
this.hasAdd = true;
|
|
14
|
+
this.addPath = 'add';
|
|
15
|
+
this.hasDelete = true;
|
|
16
|
+
}
|
|
17
|
+
static fromComponent(path, component) {
|
|
18
|
+
const inst = new TableviewRouteBuilder(path);
|
|
19
|
+
inst.component = component;
|
|
20
|
+
return inst;
|
|
21
|
+
}
|
|
22
|
+
static from(path, descriptor, dataProvider, actions) {
|
|
23
|
+
const inst = new TableviewRouteBuilder(path);
|
|
24
|
+
inst.descriptor = descriptor;
|
|
25
|
+
inst.dataProvider = dataProvider;
|
|
26
|
+
inst.actions = actions;
|
|
27
|
+
inst.hasDetails = false;
|
|
28
|
+
inst.hasAdd = false;
|
|
29
|
+
inst.hasEdit = false;
|
|
30
|
+
for (const action of inst.actions) {
|
|
31
|
+
if (action instanceof ActionEditorDetailsDescriptor) {
|
|
32
|
+
inst.hasDetails = true;
|
|
33
|
+
}
|
|
34
|
+
else if (action instanceof ActionEditorAddDescriptor) {
|
|
35
|
+
inst.hasAdd = true;
|
|
36
|
+
}
|
|
37
|
+
else if (action instanceof ActionEditorEditDescriptor) {
|
|
38
|
+
inst.hasEdit = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return inst;
|
|
42
|
+
}
|
|
43
|
+
withReadOnly(permissions) {
|
|
44
|
+
if (permissions) {
|
|
45
|
+
this.withPermissions(permissions);
|
|
46
|
+
}
|
|
47
|
+
this.withAdd(false);
|
|
48
|
+
this.withEdit(false);
|
|
49
|
+
this.withDelete(false);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
withDetails(hasDetails = true, permissions, path) {
|
|
53
|
+
this.hasDetails = hasDetails;
|
|
54
|
+
if (permissions) {
|
|
55
|
+
this.withPermissions(undefined, undefined, undefined, undefined, permissions);
|
|
56
|
+
}
|
|
57
|
+
if (path) {
|
|
58
|
+
this.detailsPath = path;
|
|
59
|
+
}
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
withAdd(hasAdd = true, permissions, path) {
|
|
63
|
+
this.hasAdd = hasAdd;
|
|
64
|
+
if (permissions) {
|
|
65
|
+
this.withPermissions(undefined, permissions);
|
|
66
|
+
}
|
|
67
|
+
if (path) {
|
|
68
|
+
this.addPath = path;
|
|
69
|
+
}
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
withEdit(hasEdit = true, permissions, path) {
|
|
73
|
+
this.hasEdit = hasEdit;
|
|
74
|
+
if (permissions) {
|
|
75
|
+
this.withPermissions(undefined, undefined, permissions);
|
|
76
|
+
}
|
|
77
|
+
if (path) {
|
|
78
|
+
this.editPath = path;
|
|
79
|
+
}
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
withDelete(hasDelete = true, permissions) {
|
|
83
|
+
this.hasDelete = hasDelete;
|
|
84
|
+
if (permissions) {
|
|
85
|
+
this.withPermissions(undefined, undefined, undefined, permissions);
|
|
86
|
+
}
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
withPermissions(read, add, edit, delet, details) {
|
|
90
|
+
if (!this.permissions) {
|
|
91
|
+
this.permissions = {};
|
|
92
|
+
}
|
|
93
|
+
if (read) {
|
|
94
|
+
this.permissions[TableviewActionDefaultCategories.READ] = read;
|
|
95
|
+
}
|
|
96
|
+
if (add) {
|
|
97
|
+
this.permissions[TableviewActionDefaultCategories.ADD] = add;
|
|
98
|
+
}
|
|
99
|
+
if (edit) {
|
|
100
|
+
this.permissions[TableviewActionDefaultCategories.EDIT] = edit;
|
|
101
|
+
}
|
|
102
|
+
if (delet) {
|
|
103
|
+
this.permissions[TableviewActionDefaultCategories.DELETE] = delet;
|
|
104
|
+
}
|
|
105
|
+
if (details) {
|
|
106
|
+
this.permissions[TableviewActionDefaultCategories.DETAILS] = details;
|
|
107
|
+
}
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
withPermissionByCategory(key, permissions) {
|
|
111
|
+
if (!this.permissions) {
|
|
112
|
+
this.permissions = {};
|
|
113
|
+
}
|
|
114
|
+
this.permissions[key] = permissions;
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
withPermissionsObject(permissions) {
|
|
118
|
+
this.permissions = permissions;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
build() {
|
|
122
|
+
return this.toRouteBuilder().buildRoute();
|
|
123
|
+
}
|
|
124
|
+
toRouteBuilder() {
|
|
125
|
+
const tableviewRouteBuilder = RouteBuilder.createFromRoute({
|
|
126
|
+
path: this.path,
|
|
127
|
+
component: this.component ? this.component : MngTableviewRouteComponent
|
|
128
|
+
});
|
|
129
|
+
const routeData = {};
|
|
130
|
+
if (!this.component) {
|
|
131
|
+
routeData.tableview = {
|
|
132
|
+
descriptor: this.descriptor,
|
|
133
|
+
dataProvider: this.dataProvider
|
|
134
|
+
};
|
|
135
|
+
if (this.actions) {
|
|
136
|
+
routeData.tableview.actions = this.actions;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (this.permissions) {
|
|
140
|
+
routeData.tableviewPermissions = { ...this.permissions };
|
|
141
|
+
}
|
|
142
|
+
routeData.tableviewActions = {
|
|
143
|
+
hasAdd: this.hasAdd,
|
|
144
|
+
hasEdit: this.hasEdit,
|
|
145
|
+
hasDetails: this.hasDetails,
|
|
146
|
+
hasDelete: this.hasDelete
|
|
147
|
+
};
|
|
148
|
+
tableviewRouteBuilder.withData(routeData);
|
|
149
|
+
if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
|
|
150
|
+
tableviewRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
|
|
151
|
+
}
|
|
152
|
+
// list route
|
|
153
|
+
const rootChildRouteBuilder = RouteBuilder.create('', MngActionRouteComponent);
|
|
154
|
+
rootChildRouteBuilder.withData({ ...routeData });
|
|
155
|
+
if (this.permissions?.[TableviewActionDefaultCategories.READ]) {
|
|
156
|
+
rootChildRouteBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.READ]);
|
|
157
|
+
}
|
|
158
|
+
tableviewRouteBuilder.addChildBuilder(rootChildRouteBuilder);
|
|
159
|
+
// add route
|
|
160
|
+
if (this.hasAdd) {
|
|
161
|
+
const routeBuilder = RouteBuilder.create(this.addPath, MngActionRouteComponent);
|
|
162
|
+
routeBuilder.withData({ ...routeData });
|
|
163
|
+
if (this.permissions?.[TableviewActionDefaultCategories.ADD]) {
|
|
164
|
+
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.ADD]);
|
|
165
|
+
}
|
|
166
|
+
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
167
|
+
}
|
|
168
|
+
if (this.hasDetails) {
|
|
169
|
+
const routeBuilder = RouteBuilder.create(this.detailsPath, MngActionRouteComponent);
|
|
170
|
+
routeBuilder.withData({ ...routeData });
|
|
171
|
+
if (this.permissions?.[TableviewActionDefaultCategories.DETAILS]) {
|
|
172
|
+
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.DETAILS]);
|
|
173
|
+
}
|
|
174
|
+
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
175
|
+
}
|
|
176
|
+
if (this.hasEdit) {
|
|
177
|
+
const routeBuilder = RouteBuilder.create(this.editPath, MngActionRouteComponent);
|
|
178
|
+
routeBuilder.withData({ ...routeData });
|
|
179
|
+
if (this.permissions?.[TableviewActionDefaultCategories.EDIT]) {
|
|
180
|
+
routeBuilder.withPermissions(this.permissions[TableviewActionDefaultCategories.EDIT]);
|
|
181
|
+
}
|
|
182
|
+
tableviewRouteBuilder.addChildBuilder(routeBuilder);
|
|
183
|
+
}
|
|
184
|
+
return tableviewRouteBuilder;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LXJvdXRlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JvdXRlci90YWJsZXZpZXctcm91dGUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQThCLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEcsT0FBTyxFQUFtQix5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSTdJLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLE9BQU8scUJBQXFCO0lBbUI5QixZQUE0QixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQVpoQyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsY0FBYyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFNa0IsQ0FBQztJQUVyQyxNQUFNLENBQUMsYUFBYSxDQUFrRCxJQUFZLEVBQUUsU0FBa0I7UUFDekcsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBcUIsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDZCxJQUFZLEVBQ1osVUFBb0MsRUFDcEMsWUFBOEMsRUFDOUMsT0FBcUM7UUFFckMsTUFB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O1lBQ3BGLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBQyxHQUFHLFNBQVMsRUFBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzlELFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzVGO1lBQ0QscUJBQXFCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDakYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsU0FBUyxFQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0QsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDekY7WUFDRCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxPQUFPLHFCQUFxQixDQUFDO0lBQ2pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge01uZ0FjdGlvblJvdXRlQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGlvbic7XG5pbXBvcnQge1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzfSBmcm9tICcuLi9jb21wb25lbnRzL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtBTW5nVGFibGV2aWV3Um91dGVDb21wb25lbnQsIE1uZ1RhYmxldmlld1JvdXRlQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL3RhYmxldmlldyc7XG5pbXBvcnQge0lUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy9hY3Rpb24nO1xuaW1wb3J0IHtUYWJsZXZpZXdEZXNjcmlwdG9yfSBmcm9tICcuLi9kZXNjcmlwdG9ycy90YWJsZXZpZXcnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnN9IGZyb20gJy4uL3NlY3VyaXR5L21vZGVsJztcbmltcG9ydCB7TW5nUm91dGVyRGF0YX0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtSb3V0ZUJ1aWxkZXJ9IGZyb20gJy4vcm91dGUtYnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+IHtcbiAgICBwcml2YXRlIGRlc2NyaXB0b3I/OiBUYWJsZXZpZXdEZXNjcmlwdG9yPGFueT47XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBwcml2YXRlIGFjdGlvbnM/OiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+O1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnQ/OiBUeXBlPEM+O1xuXG4gICAgcHJpdmF0ZSBoYXNEZXRhaWxzID0gdHJ1ZTtcbiAgICBwcml2YXRlIGRldGFpbHNQYXRoID0gJzppdGVtSWQnO1xuICAgIHByaXZhdGUgaGFzRWRpdCA9IHRydWU7XG4gICAgcHJpdmF0ZSBlZGl0UGF0aCA9ICc6aXRlbUlkL2VkaXQnO1xuICAgIHByaXZhdGUgaGFzQWRkID0gdHJ1ZTtcbiAgICBwcml2YXRlIGFkZFBhdGggPSAnYWRkJztcbiAgICBwcml2YXRlIGhhc0RlbGV0ZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBUGVybWlzc2lvbnM7XG4gICAgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSBwYXRoOiBzdHJpbmcpIHt9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Db21wb25lbnQ8QyBleHRlbmRzIEFNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudDxhbnksIGFueT4+KHBhdGg6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPEM+KTogVGFibGV2aWV3Um91dGVCdWlsZGVyPEM+IHtcbiAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBUYWJsZXZpZXdSb3V0ZUJ1aWxkZXI8Qz4ocGF0aCk7XG4gICAgICAgIGluc3QuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gaW5zdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvcjxhbnk+LFxuICAgICAgICBkYXRhUHJvdmlkZXI6IElUYWJsZXZpZXdEYXRhUHJvdmlkZXI8YW55LCBhbnk+LFxuICAgICAgICBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPGFueT4+XG4gICAgKTogVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPiB7XG4gICAgICAgIGNvbnN0IGluc3QgPSBuZXcgVGFibGV2aWV3Um91dGVCdWlsZGVyPG5ldmVyPihwYXRoKTtcbiAgICAgICAgaW5zdC5kZXNjcmlwdG9yID0gZGVzY3JpcHRvcjtcbiAgICAgICAgaW5zdC5kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIGluc3QuYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICAgICAgaW5zdC5oYXNEZXRhaWxzID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzQWRkID0gZmFsc2U7XG4gICAgICAgIGluc3QuaGFzRWRpdCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBpbnN0LmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvcikge1xuICAgICAgICAgICAgICAgIGluc3QuaGFzRGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICBpbnN0Lmhhc0FkZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5zdC5oYXNFZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0O1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmVhZE9ubHkocGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyhwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53aXRoQWRkKGZhbHNlKTtcbiAgICAgICAgdGhpcy53aXRoRWRpdChmYWxzZSk7XG4gICAgICAgIHRoaXMud2l0aERlbGV0ZShmYWxzZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGV0YWlscyhoYXNEZXRhaWxzID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNEZXRhaWxzID0gaGFzRGV0YWlscztcbiAgICAgICAgaWYgKHBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLndpdGhQZXJtaXNzaW9ucyh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXRhaWxzUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBZGQoaGFzQWRkID0gdHJ1ZSwgcGVybWlzc2lvbnM/OiBBUGVybWlzc2lvbnMsIHBhdGg/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5oYXNBZGQgPSBoYXNBZGQ7XG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy53aXRoUGVybWlzc2lvbnModW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUGF0aCA9IHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0KGhhc0VkaXQgPSB0cnVlLCBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucywgcGF0aD86IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLmhhc0VkaXQgPSBoYXNFZGl0O1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdFBhdGggPSBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGVsZXRlKGhhc0RlbGV0ZSA9IHRydWUsIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlID0gaGFzRGVsZXRlO1xuICAgICAgICBpZiAocGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMud2l0aFBlcm1pc3Npb25zKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHBlcm1pc3Npb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHJlYWQ/OiBBUGVybWlzc2lvbnMsIGFkZD86IEFQZXJtaXNzaW9ucywgZWRpdD86IEFQZXJtaXNzaW9ucywgZGVsZXQ/OiBBUGVybWlzc2lvbnMsIGRldGFpbHM/OiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0gPSByZWFkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZGQpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSA9IGFkZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWRpdCkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSA9IGVkaXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlbGV0KSB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkRFTEVURV0gPSBkZWxldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSA9IGRldGFpbHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uQnlDYXRlZ29yeShrZXk6IHN0cmluZywgcGVybWlzc2lvbnM6IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zW2tleV0gPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9uc09iamVjdChwZXJtaXNzaW9uczoge1trZXk6IHN0cmluZ106IEFQZXJtaXNzaW9uc30pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoKTogUm91dGUge1xuICAgICAgICByZXR1cm4gdGhpcy50b1JvdXRlQnVpbGRlcigpLmJ1aWxkUm91dGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9Sb3V0ZUJ1aWxkZXIoKTogUm91dGVCdWlsZGVyIHtcbiAgICAgICAgY29uc3QgdGFibGV2aWV3Um91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZUZyb21Sb3V0ZSh7XG4gICAgICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29tcG9uZW50ID8gdGhpcy5jb21wb25lbnQgOiBNbmdUYWJsZXZpZXdSb3V0ZUNvbXBvbmVudFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb3V0ZURhdGE6IE1uZ1JvdXRlckRhdGEgPSB7fTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlldyA9IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IhLFxuICAgICAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5kYXRhUHJvdmlkZXIhXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucykge1xuICAgICAgICAgICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXcuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgcm91dGVEYXRhLnRhYmxldmlld1Blcm1pc3Npb25zID0gey4uLnRoaXMucGVybWlzc2lvbnN9O1xuICAgICAgICB9XG4gICAgICAgIHJvdXRlRGF0YS50YWJsZXZpZXdBY3Rpb25zID0ge1xuICAgICAgICAgICAgaGFzQWRkOiB0aGlzLmhhc0FkZCxcbiAgICAgICAgICAgIGhhc0VkaXQ6IHRoaXMuaGFzRWRpdCxcbiAgICAgICAgICAgIGhhc0RldGFpbHM6IHRoaXMuaGFzRGV0YWlscyxcbiAgICAgICAgICAgIGhhc0RlbGV0ZTogdGhpcy5oYXNEZWxldGVcbiAgICAgICAgfTtcbiAgICAgICAgdGFibGV2aWV3Um91dGVCdWlsZGVyLndpdGhEYXRhKHJvdXRlRGF0YSk7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zPy5bVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRF0pIHtcbiAgICAgICAgICAgIHRhYmxldmlld1JvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsaXN0IHJvdXRlXG4gICAgICAgIGNvbnN0IHJvb3RDaGlsZFJvdXRlQnVpbGRlciA9IFJvdXRlQnVpbGRlci5jcmVhdGUoJycsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhEYXRhKHsuLi5yb3V0ZURhdGF9KTtcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5SRUFEXSkge1xuICAgICAgICAgICAgcm9vdENoaWxkUm91dGVCdWlsZGVyLndpdGhQZXJtaXNzaW9ucyh0aGlzLnBlcm1pc3Npb25zW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLlJFQURdKTtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvb3RDaGlsZFJvdXRlQnVpbGRlcik7XG5cbiAgICAgICAgLy8gYWRkIHJvdXRlXG4gICAgICAgIGlmICh0aGlzLmhhc0FkZCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmFkZFBhdGgsIE1uZ0FjdGlvblJvdXRlQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoRGF0YSh7Li4ucm91dGVEYXRhfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZXJtaXNzaW9ucz8uW1RhYmxldmlld0FjdGlvbkRlZmF1bHRDYXRlZ29yaWVzLkFERF0pIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aFBlcm1pc3Npb25zKHRoaXMucGVybWlzc2lvbnNbVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRGV0YWlscykge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmRldGFpbHNQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzRWRpdCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVCdWlsZGVyID0gUm91dGVCdWlsZGVyLmNyZWF0ZSh0aGlzLmVkaXRQYXRoLCBNbmdBY3Rpb25Sb3V0ZUNvbXBvbmVudCk7XG4gICAgICAgICAgICByb3V0ZUJ1aWxkZXIud2l0aERhdGEoey4uLnJvdXRlRGF0YX0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnM/LltUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSkge1xuICAgICAgICAgICAgICAgIHJvdXRlQnVpbGRlci53aXRoUGVybWlzc2lvbnModGhpcy5wZXJtaXNzaW9uc1tUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZXZpZXdSb3V0ZUJ1aWxkZXIuYWRkQ2hpbGRCdWlsZGVyKHJvdXRlQnVpbGRlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGV2aWV3Um91dGVCdWlsZGVyO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { first } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./authorization.service";
|
|
6
|
-
export class MngAuthorizationGuard {
|
|
7
|
-
constructor(authorization) {
|
|
8
|
-
this.authorization = authorization;
|
|
9
|
-
}
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
-
canActivate(route, state) {
|
|
12
|
-
const data = route.data;
|
|
13
|
-
if (data.permissions) {
|
|
14
|
-
return this.authorization.isPermitted(data.permissions).pipe(first());
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return of(true);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
MngAuthorizationGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
-
type: Injectable
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { first } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./authorization.service";
|
|
6
|
+
export class MngAuthorizationGuard {
|
|
7
|
+
constructor(authorization) {
|
|
8
|
+
this.authorization = authorization;
|
|
9
|
+
}
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
canActivate(route, state) {
|
|
12
|
+
const data = route.data;
|
|
13
|
+
if (data.permissions) {
|
|
14
|
+
return this.authorization.isPermitted(data.permissions).pipe(first());
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return of(true);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
MngAuthorizationGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, deps: [{ token: i1.MngAuthorizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
MngAuthorizationGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, providedIn: 'root' });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: MngAuthorizationGuard, decorators: [{
|
|
24
|
+
type: Injectable,
|
|
25
|
+
args: [{
|
|
26
|
+
providedIn: 'root'
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.MngAuthorizationService }]; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VjdXJpdHkvYXV0aG9yaXphdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFRckMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixhQUFzQztRQUF0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRTlELDZEQUE2RDtJQUM3RCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBcUIsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzs7a0hBWlEscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01uZ1JvdXRlckRhdGF9IGZyb20gJy4uL3JvdXRlci9tb2RlbHMnO1xuaW1wb3J0IHtNbmdBdXRob3JpemF0aW9uU2VydmljZX0gZnJvbSAnLi9hdXRob3JpemF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0F1dGhvcml6YXRpb25HdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhvcml6YXRpb246IE1uZ0F1dGhvcml6YXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSByb3V0ZS5kYXRhIGFzIE1uZ1JvdXRlckRhdGE7XG5cbiAgICAgICAgaWYgKGRhdGEucGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dGhvcml6YXRpb24uaXNQZXJtaXR0ZWQoZGF0YS5wZXJtaXNzaW9ucykucGlwZShmaXJzdCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|