@mediusinc/mng-commons 0.8.0-rc.3 → 0.8.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/assets/i18n/en.json +3 -1
- 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 +17 -17
- package/esm2020/lib/api/models/serialization.model.mjs +1 -1
- package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
- package/esm2020/lib/api/services/crud-api.abstract.service.mjs +66 -66
- package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
- 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 +151 -151
- package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
- package/esm2020/lib/components/action/action.component.mjs +176 -176
- package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -230
- package/esm2020/lib/components/action/index.mjs +3 -3
- package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
- package/esm2020/lib/components/action/models/action-execution.model.mjs +234 -234
- package/esm2020/lib/components/action/models/index.mjs +2 -2
- package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
- package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +268 -268
- package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +160 -160
- package/esm2020/lib/components/form/editor/form-editor.component.mjs +189 -189
- package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +18 -18
- package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +42 -42
- package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
- package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +95 -95
- package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +16 -16
- package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +178 -178
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +155 -155
- package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +126 -126
- package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
- package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
- package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
- package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
- package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
- package/esm2020/lib/components/form/index.mjs +3 -3
- package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
- package/esm2020/lib/components/form/models/index.mjs +1 -1
- package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
- package/esm2020/lib/components/layout/footer.component.mjs +16 -16
- package/esm2020/lib/components/layout/index.mjs +6 -6
- package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
- package/esm2020/lib/components/layout/menu-item.component.mjs +216 -216
- package/esm2020/lib/components/layout/menu.component.mjs +19 -19
- package/esm2020/lib/components/layout/services/index.mjs +1 -1
- package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
- package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
- 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 +15 -15
- package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +56 -56
- package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +53 -53
- package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +101 -101
- package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
- package/esm2020/lib/components/tableview/table/table.component.mjs +429 -429
- package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
- package/esm2020/lib/config/formly.config.mjs +180 -180
- package/esm2020/lib/config/index.mjs +1 -1
- package/esm2020/lib/config/models/index.mjs +1 -1
- package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
- 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 +5 -5
- package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
- package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
- package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
- package/esm2020/lib/descriptors/action.descriptor.mjs +622 -622
- package/esm2020/lib/descriptors/column.descriptor.mjs +271 -271
- package/esm2020/lib/descriptors/editor.descriptor.mjs +154 -154
- package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
- package/esm2020/lib/descriptors/field.descriptor.interface.mjs +1 -1
- package/esm2020/lib/descriptors/field.descriptor.mjs +863 -863
- package/esm2020/lib/descriptors/filter.descriptor.mjs +294 -294
- package/esm2020/lib/descriptors/index.mjs +11 -11
- package/esm2020/lib/descriptors/lookup.descriptor.mjs +1 -1
- package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
- package/esm2020/lib/descriptors/table.descriptor.mjs +213 -213
- package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
- package/esm2020/lib/directives/component.directive.mjs +43 -43
- package/esm2020/lib/directives/index.mjs +2 -2
- package/esm2020/lib/directives/template.directive.mjs +27 -27
- package/esm2020/lib/mng-commons.module.mjs +426 -426
- package/esm2020/lib/models/column-value.model.mjs +1 -1
- package/esm2020/lib/models/enum.model.mjs +1 -1
- package/esm2020/lib/models/error.model.mjs +1 -1
- package/esm2020/lib/models/index.mjs +6 -6
- package/esm2020/lib/models/menu.model.mjs +1 -1
- package/esm2020/lib/models/user.model.mjs +1 -1
- package/esm2020/lib/models/view-container.model.mjs +1 -1
- package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
- package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
- package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
- package/esm2020/lib/pipes/index.mjs +5 -5
- package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
- package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
- package/esm2020/lib/router/index.mjs +1 -1
- package/esm2020/lib/router/models/index.mjs +1 -1
- package/esm2020/lib/router/models/router.model.mjs +1 -1
- package/esm2020/lib/router/route-builder.mjs +431 -431
- package/esm2020/lib/services/action-executor.service.mjs +535 -535
- package/esm2020/lib/services/commons.service.mjs +343 -343
- package/esm2020/lib/services/configuration.service.mjs +110 -110
- 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 +43 -43
- package/esm2020/lib/services/internal/index.mjs +2 -2
- package/esm2020/lib/services/navigation.service.mjs +47 -47
- package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
- package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
- package/esm2020/lib/services/providers/index.mjs +2 -2
- 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/view-container.component.service.mjs +34 -34
- package/esm2020/lib/types/index.mjs +2 -2
- package/esm2020/lib/types/type.decorator.mjs +12 -12
- package/esm2020/lib/types/type.model.mjs +1 -1
- package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
- package/esm2020/lib/utils/editor-formly.util.mjs +209 -209
- package/esm2020/lib/utils/enum.util.mjs +81 -81
- package/esm2020/lib/utils/i18n.util.mjs +232 -232
- package/esm2020/lib/utils/index.mjs +7 -7
- package/esm2020/lib/utils/model.util.mjs +59 -59
- package/esm2020/lib/utils/notification.util.mjs +45 -45
- package/esm2020/lib/utils/route.util.mjs +23 -23
- package/esm2020/lib/utils/styles.util.mjs +40 -40
- package/esm2020/lib/utils/type.util.mjs +76 -76
- package/esm2020/mediusinc-mng-commons.mjs +4 -4
- package/esm2020/public-api.mjs +39 -39
- package/fesm2015/mediusinc-mng-commons.mjs +9908 -9891
- package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
- package/fesm2020/mediusinc-mng-commons.mjs +9774 -9757
- package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
- 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 +23 -23
- 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 +14 -14
- package/lib/api/utils/object-serializer.util.d.ts +33 -33
- package/lib/components/action/action.component.d.ts +68 -68
- package/lib/components/action/editor/action-editor.component.d.ts +64 -62
- package/lib/components/action/index.d.ts +3 -3
- package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
- package/lib/components/action/models/action-execution.model.d.ts +129 -129
- package/lib/components/action/models/index.d.ts +2 -2
- package/lib/components/action/route/action-route.component.d.ts +31 -31
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +53 -53
- package/lib/components/form/dropdown/dropdown.component.d.ts +44 -44
- package/lib/components/form/editor/form-editor.component.d.ts +45 -45
- package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +12 -12
- package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
- package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +12 -12
- package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +21 -21
- package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +6 -6
- package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +44 -44
- package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +22 -22
- 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 +6 -6
- package/lib/components/form/formly/fields/index.d.ts +9 -9
- package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
- package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
- package/lib/components/form/formly/wrappers/index.d.ts +2 -2
- package/lib/components/form/index.d.ts +3 -3
- package/lib/components/form/models/form-editor.event.d.ts +37 -37
- package/lib/components/form/models/index.d.ts +1 -1
- 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 +6 -6
- package/lib/components/layout/main-layout.component.d.ts +20 -20
- package/lib/components/layout/menu-item.component.d.ts +37 -37
- package/lib/components/layout/menu.component.d.ts +10 -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 +24 -24
- 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 +20 -20
- package/lib/components/tableview/route/tableview-route.component.d.ts +18 -18
- package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +31 -31
- package/lib/components/tableview/table/column-value/column-value.component.d.ts +28 -28
- package/lib/components/tableview/table/table.component.d.ts +104 -104
- package/lib/components/tableview/tableview.component.d.ts +41 -41
- package/lib/config/formly.config.d.ts +15 -15
- package/lib/config/index.d.ts +1 -1
- package/lib/config/models/index.d.ts +1 -1
- package/lib/config/models/mng-config.model.d.ts +34 -34
- 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 +5 -5
- package/lib/data-providers/lookup.data-provider.d.ts +14 -14
- package/lib/data-providers/table.data-provider.d.ts +14 -14
- package/lib/data-providers/tableview.data-provider.d.ts +15 -15
- package/lib/descriptors/action.descriptor.d.ts +277 -277
- package/lib/descriptors/column.descriptor.d.ts +91 -91
- package/lib/descriptors/editor.descriptor.d.ts +44 -44
- package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
- package/lib/descriptors/field.descriptor.d.ts +342 -342
- package/lib/descriptors/field.descriptor.interface.d.ts +9 -9
- package/lib/descriptors/filter.descriptor.d.ts +127 -127
- package/lib/descriptors/index.d.ts +11 -11
- package/lib/descriptors/lookup.descriptor.d.ts +17 -17
- package/lib/descriptors/model.descriptor.d.ts +15 -15
- package/lib/descriptors/table.descriptor.d.ts +80 -80
- package/lib/descriptors/tableview.descriptor.d.ts +42 -42
- 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 +86 -86
- package/lib/models/column-value.model.d.ts +4 -4
- package/lib/models/enum.model.d.ts +6 -6
- package/lib/models/error.model.d.ts +14 -14
- package/lib/models/index.d.ts +6 -6
- package/lib/models/menu.model.d.ts +25 -25
- package/lib/models/user.model.d.ts +8 -8
- package/lib/models/view-container.model.d.ts +6 -6
- package/lib/pipes/boolean.pipe.d.ts +7 -7
- package/lib/pipes/enum.pipe.d.ts +8 -8
- package/lib/pipes/i18n-property.pipe.d.ts +8 -8
- package/lib/pipes/index.d.ts +5 -5
- package/lib/pipes/json-path.pipe.d.ts +13 -13
- package/lib/pipes/link-formatter.pipe.d.ts +11 -11
- package/lib/router/index.d.ts +1 -1
- package/lib/router/models/index.d.ts +1 -1
- package/lib/router/models/router.model.d.ts +22 -22
- package/lib/router/route-builder.d.ts +86 -86
- package/lib/services/action-executor.service.d.ts +149 -149
- package/lib/services/commons.service.d.ts +72 -72
- package/lib/services/configuration.service.d.ts +36 -36
- 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 +16 -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/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/view-container.component.service.d.ts +22 -22
- package/lib/types/index.d.ts +2 -2
- package/lib/types/type.decorator.d.ts +4 -4
- package/lib/types/type.model.d.ts +20 -20
- package/lib/utils/action-data-provider.util.d.ts +20 -20
- package/lib/utils/editor-formly.util.d.ts +10 -10
- package/lib/utils/enum.util.d.ts +50 -50
- package/lib/utils/i18n.util.d.ts +56 -56
- package/lib/utils/index.d.ts +7 -7
- package/lib/utils/model.util.d.ts +8 -8
- package/lib/utils/notification.util.d.ts +11 -11
- package/lib/utils/route.util.d.ts +4 -4
- package/lib/utils/styles.util.d.ts +14 -14
- package/lib/utils/type.util.d.ts +36 -36
- package/mediusinc-mng-commons.d.ts +5 -5
- package/package.json +3 -3
- package/public-api.d.ts +28 -28
- package/mediusinc-mng-commons-0.8.0-rc.3.tgz +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * from './action.descriptor';
|
|
2
|
-
export * from './column.descriptor';
|
|
3
|
-
export * from './editor.descriptor';
|
|
4
|
-
export * from './field.descriptor';
|
|
5
|
-
export * from './field.descriptor.interface';
|
|
6
|
-
export * from './field-validation.descriptor';
|
|
7
|
-
export * from './filter.descriptor';
|
|
8
|
-
export * from './lookup.descriptor';
|
|
9
|
-
export * from './model.descriptor';
|
|
10
|
-
export * from './table.descriptor';
|
|
11
|
-
export * from './tableview.descriptor';
|
|
1
|
+
export * from './action.descriptor';
|
|
2
|
+
export * from './column.descriptor';
|
|
3
|
+
export * from './editor.descriptor';
|
|
4
|
+
export * from './field.descriptor';
|
|
5
|
+
export * from './field.descriptor.interface';
|
|
6
|
+
export * from './field-validation.descriptor';
|
|
7
|
+
export * from './filter.descriptor';
|
|
8
|
+
export * from './lookup.descriptor';
|
|
9
|
+
export * from './model.descriptor';
|
|
10
|
+
export * from './table.descriptor';
|
|
11
|
+
export * from './tableview.descriptor';
|
|
12
12
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW4uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLmRlc2NyaXB0b3IuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtdmFsaWRhdGlvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9sb29rdXAuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3LmRlc2NyaXB0b3InO1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL2xvb2t1cC5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJTG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMb29rdXBEZXNjcmlwdG9yPFQ+IHtcbiAgICBtb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGw7XG4gICAgaXRlbXNMYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgIGl0ZW1zVmFsdWVQcm9wZXJ0eT86IHN0cmluZztcbiAgICBkYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgZGF0YVByb3ZpZGVyPzogSUxvb2t1cERhdGFQcm92aWRlcjxULCBhbnk+O1xuICAgIHdpdGhJdGVtc0xhYmVsUHJvcGVydHkoaXRlbXNMYWJlbFByb3BlcnR5OiBzdHJpbmcpOiB0aGlzO1xuICAgIHdpdGhJdGVtc1ZhbHVlUHJvcGVydHkoaXRlbXNMYWJlbFByb3BlcnR5OiBzdHJpbmcpOiB0aGlzO1xuICAgIHdpdGhEYXRhS2V5UHJvcGVydHkoZGF0YUtleVByb3BlcnR5OiBzdHJpbmcpOiB0aGlzO1xuICAgIHdpdGhMb29rdXA8Uz4obG9va3VwOiAocXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW0sIHNlcnZpY2U/OiBTLCBzZWFyY2g/OiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXJyYXk8VD4+LCBzZXJ2aWNlVHlwZT86IFR5cGU8Uz4pOiB0aGlzO1xuICAgIHdpdGhMb29rdXBEYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyOiBJTG9va3VwRGF0YVByb3ZpZGVyPFQsIGFueT4pOiB0aGlzO1xufVxuIl19
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { ModelUtil, TypeUtil } from '../utils';
|
|
2
|
-
export class ModelDescriptor {
|
|
3
|
-
constructor(modelType, idProperty, titleProperty) {
|
|
4
|
-
this._type = modelType;
|
|
5
|
-
this._idPropertyName = idProperty ?? ModelUtil.findIdAttribute(modelType) ?? undefined;
|
|
6
|
-
this._titlePropertyName = titleProperty ?? ModelUtil.findTitleAttribute(modelType) ?? undefined;
|
|
7
|
-
this._typeName = TypeUtil.findTypeName(this._type);
|
|
8
|
-
}
|
|
9
|
-
get type() {
|
|
10
|
-
return this._type;
|
|
11
|
-
}
|
|
12
|
-
get typeName() {
|
|
13
|
-
return this._typeName;
|
|
14
|
-
}
|
|
15
|
-
get idPropertyName() {
|
|
16
|
-
return this._idPropertyName;
|
|
17
|
-
}
|
|
18
|
-
get titlePropertyName() {
|
|
19
|
-
return this._titlePropertyName;
|
|
20
|
-
}
|
|
21
|
-
withIdPropertyName(idProperty) {
|
|
22
|
-
this._idPropertyName = idProperty;
|
|
23
|
-
return this;
|
|
24
|
-
}
|
|
25
|
-
withTitlePropertyName(titleProperty) {
|
|
26
|
-
this._titlePropertyName = titleProperty;
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
copy() {
|
|
30
|
-
const model = new ModelDescriptor(this._type, this._idPropertyName, this._titlePropertyName);
|
|
31
|
-
return model;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
import { ModelUtil, TypeUtil } from '../utils';
|
|
2
|
+
export class ModelDescriptor {
|
|
3
|
+
constructor(modelType, idProperty, titleProperty) {
|
|
4
|
+
this._type = modelType;
|
|
5
|
+
this._idPropertyName = idProperty ?? ModelUtil.findIdAttribute(modelType) ?? undefined;
|
|
6
|
+
this._titlePropertyName = titleProperty ?? ModelUtil.findTitleAttribute(modelType) ?? undefined;
|
|
7
|
+
this._typeName = TypeUtil.findTypeName(this._type);
|
|
8
|
+
}
|
|
9
|
+
get type() {
|
|
10
|
+
return this._type;
|
|
11
|
+
}
|
|
12
|
+
get typeName() {
|
|
13
|
+
return this._typeName;
|
|
14
|
+
}
|
|
15
|
+
get idPropertyName() {
|
|
16
|
+
return this._idPropertyName;
|
|
17
|
+
}
|
|
18
|
+
get titlePropertyName() {
|
|
19
|
+
return this._titlePropertyName;
|
|
20
|
+
}
|
|
21
|
+
withIdPropertyName(idProperty) {
|
|
22
|
+
this._idPropertyName = idProperty;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
withTitlePropertyName(titleProperty) {
|
|
26
|
+
this._titlePropertyName = titleProperty;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
copy() {
|
|
30
|
+
const model = new ModelDescriptor(this._type, this._idPropertyName, this._titlePropertyName);
|
|
31
|
+
return model;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUU3QyxNQUFNLE9BQU8sZUFBZTtJQU14QixZQUFZLFNBQXVCLEVBQUUsVUFBbUIsRUFBRSxhQUFzQjtRQUM1RSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUN2RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUM7UUFDaEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxVQUFrQjtRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0scUJBQXFCLENBQUMsYUFBcUI7UUFDOUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtNb2RlbFV0aWwsIFR5cGVVdGlsfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBNb2RlbERlc2NyaXB0b3I8VD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3R5cGU6IENsYXNzVHlwZTxUPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgX2lkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3RpdGxlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IobW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4sIGlkUHJvcGVydHk/OiBzdHJpbmcsIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IG1vZGVsVHlwZTtcbiAgICAgICAgdGhpcy5faWRQcm9wZXJ0eU5hbWUgPSBpZFByb3BlcnR5ID8/IE1vZGVsVXRpbC5maW5kSWRBdHRyaWJ1dGUobW9kZWxUeXBlKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3RpdGxlUHJvcGVydHlOYW1lID0gdGl0bGVQcm9wZXJ0eSA/PyBNb2RlbFV0aWwuZmluZFRpdGxlQXR0cmlidXRlKG1vZGVsVHlwZSkgPz8gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl90eXBlTmFtZSA9IFR5cGVVdGlsLmZpbmRUeXBlTmFtZSh0aGlzLl90eXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlkUHJvcGVydHlOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faWRQcm9wZXJ0eU5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZVByb3BlcnR5TmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlUHJvcGVydHlOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSWRQcm9wZXJ0eU5hbWUoaWRQcm9wZXJ0eTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lkUHJvcGVydHlOYW1lID0gaWRQcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUaXRsZVByb3BlcnR5TmFtZSh0aXRsZVByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGl0bGVQcm9wZXJ0eU5hbWUgPSB0aXRsZVByb3BlcnR5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBNb2RlbERlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbERlc2NyaXB0b3IodGhpcy5fdHlwZSwgdGhpcy5faWRQcm9wZXJ0eU5hbWUsIHRoaXMuX3RpdGxlUHJvcGVydHlOYW1lKTtcbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,214 +1,214 @@
|
|
|
1
|
-
import { ModelUtil } from '../utils';
|
|
2
|
-
import { ColumnDescriptor } from './column.descriptor';
|
|
3
|
-
import { ModelDescriptor } from './model.descriptor';
|
|
4
|
-
export class TableDescriptor {
|
|
5
|
-
constructor(modelType, idProperty, titleProperty) {
|
|
6
|
-
this._filterDisplay = TableDescriptor.FilterDisplayEnum.Menu;
|
|
7
|
-
this._paginationMode = TableDescriptor.PaginationModeEnum.Pagination;
|
|
8
|
-
this._rowsPerPageOptions = [25, 50, 100];
|
|
9
|
-
this._defaultNumRows = this._rowsPerPageOptions[0];
|
|
10
|
-
this._columns = [];
|
|
11
|
-
this._hideHeader = false;
|
|
12
|
-
this._hasDefaultSort = false;
|
|
13
|
-
this._defaultSortProperty = [];
|
|
14
|
-
this._defaultSortAsc = [];
|
|
15
|
-
// visual
|
|
16
|
-
this._className = '';
|
|
17
|
-
this._size = TableDescriptor.SizeEnum.Large;
|
|
18
|
-
this._hasHover = true;
|
|
19
|
-
this._hasGridlines = false;
|
|
20
|
-
this._model = new ModelDescriptor(modelType, idProperty, titleProperty);
|
|
21
|
-
this._dataKeyProperty = idProperty ?? ModelUtil.findIdAttribute(modelType) ?? undefined;
|
|
22
|
-
}
|
|
23
|
-
get filterDisplay() {
|
|
24
|
-
return this._filterDisplay;
|
|
25
|
-
}
|
|
26
|
-
get paginationMode() {
|
|
27
|
-
return this._paginationMode;
|
|
28
|
-
}
|
|
29
|
-
get rowsPerPageOptions() {
|
|
30
|
-
return this._rowsPerPageOptions;
|
|
31
|
-
}
|
|
32
|
-
get defaultNumRows() {
|
|
33
|
-
return this._defaultNumRows;
|
|
34
|
-
}
|
|
35
|
-
get columns() {
|
|
36
|
-
return this._columns;
|
|
37
|
-
}
|
|
38
|
-
get title() {
|
|
39
|
-
return this._title;
|
|
40
|
-
}
|
|
41
|
-
get hideHeader() {
|
|
42
|
-
return this._hideHeader;
|
|
43
|
-
}
|
|
44
|
-
get dataKeyProperty() {
|
|
45
|
-
return this._dataKeyProperty;
|
|
46
|
-
}
|
|
47
|
-
get hasDefaultSort() {
|
|
48
|
-
return this._hasDefaultSort;
|
|
49
|
-
}
|
|
50
|
-
get defaultSortProperty() {
|
|
51
|
-
return this._defaultSortProperty;
|
|
52
|
-
}
|
|
53
|
-
get defaultSortAsc() {
|
|
54
|
-
return this._defaultSortAsc;
|
|
55
|
-
}
|
|
56
|
-
get model() {
|
|
57
|
-
return this._model;
|
|
58
|
-
}
|
|
59
|
-
get className() {
|
|
60
|
-
return this._className;
|
|
61
|
-
}
|
|
62
|
-
get size() {
|
|
63
|
-
return this._size;
|
|
64
|
-
}
|
|
65
|
-
get tableFullHeightOffset() {
|
|
66
|
-
return this._tableFullHeightOffset;
|
|
67
|
-
}
|
|
68
|
-
get rowHeight() {
|
|
69
|
-
return this._rowHeight;
|
|
70
|
-
}
|
|
71
|
-
get hasHover() {
|
|
72
|
-
return this._hasHover;
|
|
73
|
-
}
|
|
74
|
-
get hasGridlines() {
|
|
75
|
-
return this._hasGridlines;
|
|
76
|
-
}
|
|
77
|
-
addColumnDescriptor(column) {
|
|
78
|
-
this._columns.push(column);
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
addColumn(property) {
|
|
82
|
-
const column = new ColumnDescriptor(this, property);
|
|
83
|
-
this._columns.push(column);
|
|
84
|
-
return column;
|
|
85
|
-
}
|
|
86
|
-
addColumnNumber(property, displayFormat) {
|
|
87
|
-
const column = new ColumnDescriptor(this, property);
|
|
88
|
-
column.asNumber(displayFormat);
|
|
89
|
-
this._columns.push(column);
|
|
90
|
-
return column;
|
|
91
|
-
}
|
|
92
|
-
addColumnDate(property, displayFormat) {
|
|
93
|
-
const column = new ColumnDescriptor(this, property);
|
|
94
|
-
column.asDate(displayFormat);
|
|
95
|
-
this._columns.push(column);
|
|
96
|
-
return column;
|
|
97
|
-
}
|
|
98
|
-
addColumnBoolean(property, yes, no, asIcon = false) {
|
|
99
|
-
const column = new ColumnDescriptor(this, property);
|
|
100
|
-
column.asBoolean(yes, no, asIcon);
|
|
101
|
-
this._columns.push(column);
|
|
102
|
-
return column;
|
|
103
|
-
}
|
|
104
|
-
addColumnEnum(property, enumType, nameAsValue = false, titlePath) {
|
|
105
|
-
const column = new ColumnDescriptor(this, property);
|
|
106
|
-
column.asEnum(enumType, nameAsValue, titlePath);
|
|
107
|
-
this._columns.push(column);
|
|
108
|
-
return column;
|
|
109
|
-
}
|
|
110
|
-
addColumnCustomComponent(property, customComponentType) {
|
|
111
|
-
const column = new ColumnDescriptor(this, property);
|
|
112
|
-
column.asCustomComponent(customComponentType);
|
|
113
|
-
this._columns.push(column);
|
|
114
|
-
return column;
|
|
115
|
-
}
|
|
116
|
-
withFilterDisplay(filterDisplayType) {
|
|
117
|
-
this._filterDisplay = filterDisplayType;
|
|
118
|
-
return this;
|
|
119
|
-
}
|
|
120
|
-
withPaginationMode(paginationMode) {
|
|
121
|
-
this._paginationMode = paginationMode;
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
withRowsPerPage(rows, options) {
|
|
125
|
-
if (options) {
|
|
126
|
-
this._rowsPerPageOptions = options;
|
|
127
|
-
}
|
|
128
|
-
if (!this._rowsPerPageOptions.includes(rows)) {
|
|
129
|
-
this._defaultNumRows = this._rowsPerPageOptions[0];
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
this._defaultNumRows = rows;
|
|
133
|
-
}
|
|
134
|
-
return this;
|
|
135
|
-
}
|
|
136
|
-
withTitle(title) {
|
|
137
|
-
this._title = title;
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
withHideHeader(hideHeader = true) {
|
|
141
|
-
this._hideHeader = hideHeader;
|
|
142
|
-
return this;
|
|
143
|
-
}
|
|
144
|
-
withDataKeyProperty(property) {
|
|
145
|
-
this._dataKeyProperty = property;
|
|
146
|
-
return this;
|
|
147
|
-
}
|
|
148
|
-
withDefaultSort(property, asc = true) {
|
|
149
|
-
this._hasDefaultSort = true;
|
|
150
|
-
this._defaultSortProperty.push(property);
|
|
151
|
-
this._defaultSortAsc.push(asc);
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
withClassName(className) {
|
|
155
|
-
this._className = className;
|
|
156
|
-
return this;
|
|
157
|
-
}
|
|
158
|
-
withSize(size = TableDescriptor.SizeEnum.Normal) {
|
|
159
|
-
this._size = size;
|
|
160
|
-
return this;
|
|
161
|
-
}
|
|
162
|
-
withTableFullHeightOffset(tableFullHeightOffset) {
|
|
163
|
-
this._tableFullHeightOffset = tableFullHeightOffset;
|
|
164
|
-
return this;
|
|
165
|
-
}
|
|
166
|
-
withRowHeight(rowHeight) {
|
|
167
|
-
this._rowHeight = rowHeight;
|
|
168
|
-
return this;
|
|
169
|
-
}
|
|
170
|
-
withHover(hover) {
|
|
171
|
-
this._hasHover = hover;
|
|
172
|
-
return this;
|
|
173
|
-
}
|
|
174
|
-
withGridlines(gridlines) {
|
|
175
|
-
this._hasGridlines = gridlines;
|
|
176
|
-
return this;
|
|
177
|
-
}
|
|
178
|
-
copy() {
|
|
179
|
-
const descriptor = new TableDescriptor(this.model.type, this.model.idPropertyName, this.model.titlePropertyName);
|
|
180
|
-
descriptor._columns = this.columns.map(c => c.copy());
|
|
181
|
-
descriptor._title = this._title;
|
|
182
|
-
descriptor._hideHeader = this._hideHeader;
|
|
183
|
-
descriptor._dataKeyProperty = this._dataKeyProperty;
|
|
184
|
-
descriptor._defaultSortProperty = this._defaultSortProperty.map(p => p);
|
|
185
|
-
descriptor._defaultSortAsc = this._defaultSortAsc.map(p => p);
|
|
186
|
-
descriptor._filterDisplay = this._filterDisplay;
|
|
187
|
-
descriptor._className = this._className;
|
|
188
|
-
descriptor._size = this._size;
|
|
189
|
-
descriptor._tableFullHeightOffset = this._tableFullHeightOffset;
|
|
190
|
-
descriptor._rowHeight = this._rowHeight;
|
|
191
|
-
descriptor._hasHover = this._hasHover;
|
|
192
|
-
descriptor._hasGridlines = this._hasGridlines;
|
|
193
|
-
return descriptor;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
(function (TableDescriptor) {
|
|
197
|
-
let PaginationModeEnum;
|
|
198
|
-
(function (PaginationModeEnum) {
|
|
199
|
-
PaginationModeEnum[PaginationModeEnum["Pagination"] = 0] = "Pagination";
|
|
200
|
-
PaginationModeEnum[PaginationModeEnum["InfiniteScroll"] = 1] = "InfiniteScroll";
|
|
201
|
-
})(PaginationModeEnum = TableDescriptor.PaginationModeEnum || (TableDescriptor.PaginationModeEnum = {}));
|
|
202
|
-
let FilterDisplayEnum;
|
|
203
|
-
(function (FilterDisplayEnum) {
|
|
204
|
-
FilterDisplayEnum[FilterDisplayEnum["Row"] = 0] = "Row";
|
|
205
|
-
FilterDisplayEnum[FilterDisplayEnum["Menu"] = 1] = "Menu";
|
|
206
|
-
})(FilterDisplayEnum = TableDescriptor.FilterDisplayEnum || (TableDescriptor.FilterDisplayEnum = {}));
|
|
207
|
-
let SizeEnum;
|
|
208
|
-
(function (SizeEnum) {
|
|
209
|
-
SizeEnum[SizeEnum["Small"] = 0] = "Small";
|
|
210
|
-
SizeEnum[SizeEnum["Normal"] = 1] = "Normal";
|
|
211
|
-
SizeEnum[SizeEnum["Large"] = 2] = "Large";
|
|
212
|
-
})(SizeEnum = TableDescriptor.SizeEnum || (TableDescriptor.SizeEnum = {}));
|
|
213
|
-
})(TableDescriptor || (TableDescriptor = {}));
|
|
1
|
+
import { ModelUtil } from '../utils';
|
|
2
|
+
import { ColumnDescriptor } from './column.descriptor';
|
|
3
|
+
import { ModelDescriptor } from './model.descriptor';
|
|
4
|
+
export class TableDescriptor {
|
|
5
|
+
constructor(modelType, idProperty, titleProperty) {
|
|
6
|
+
this._filterDisplay = TableDescriptor.FilterDisplayEnum.Menu;
|
|
7
|
+
this._paginationMode = TableDescriptor.PaginationModeEnum.Pagination;
|
|
8
|
+
this._rowsPerPageOptions = [25, 50, 100];
|
|
9
|
+
this._defaultNumRows = this._rowsPerPageOptions[0];
|
|
10
|
+
this._columns = [];
|
|
11
|
+
this._hideHeader = false;
|
|
12
|
+
this._hasDefaultSort = false;
|
|
13
|
+
this._defaultSortProperty = [];
|
|
14
|
+
this._defaultSortAsc = [];
|
|
15
|
+
// visual
|
|
16
|
+
this._className = '';
|
|
17
|
+
this._size = TableDescriptor.SizeEnum.Large;
|
|
18
|
+
this._hasHover = true;
|
|
19
|
+
this._hasGridlines = false;
|
|
20
|
+
this._model = new ModelDescriptor(modelType, idProperty, titleProperty);
|
|
21
|
+
this._dataKeyProperty = idProperty ?? ModelUtil.findIdAttribute(modelType) ?? undefined;
|
|
22
|
+
}
|
|
23
|
+
get filterDisplay() {
|
|
24
|
+
return this._filterDisplay;
|
|
25
|
+
}
|
|
26
|
+
get paginationMode() {
|
|
27
|
+
return this._paginationMode;
|
|
28
|
+
}
|
|
29
|
+
get rowsPerPageOptions() {
|
|
30
|
+
return this._rowsPerPageOptions;
|
|
31
|
+
}
|
|
32
|
+
get defaultNumRows() {
|
|
33
|
+
return this._defaultNumRows;
|
|
34
|
+
}
|
|
35
|
+
get columns() {
|
|
36
|
+
return this._columns;
|
|
37
|
+
}
|
|
38
|
+
get title() {
|
|
39
|
+
return this._title;
|
|
40
|
+
}
|
|
41
|
+
get hideHeader() {
|
|
42
|
+
return this._hideHeader;
|
|
43
|
+
}
|
|
44
|
+
get dataKeyProperty() {
|
|
45
|
+
return this._dataKeyProperty;
|
|
46
|
+
}
|
|
47
|
+
get hasDefaultSort() {
|
|
48
|
+
return this._hasDefaultSort;
|
|
49
|
+
}
|
|
50
|
+
get defaultSortProperty() {
|
|
51
|
+
return this._defaultSortProperty;
|
|
52
|
+
}
|
|
53
|
+
get defaultSortAsc() {
|
|
54
|
+
return this._defaultSortAsc;
|
|
55
|
+
}
|
|
56
|
+
get model() {
|
|
57
|
+
return this._model;
|
|
58
|
+
}
|
|
59
|
+
get className() {
|
|
60
|
+
return this._className;
|
|
61
|
+
}
|
|
62
|
+
get size() {
|
|
63
|
+
return this._size;
|
|
64
|
+
}
|
|
65
|
+
get tableFullHeightOffset() {
|
|
66
|
+
return this._tableFullHeightOffset;
|
|
67
|
+
}
|
|
68
|
+
get rowHeight() {
|
|
69
|
+
return this._rowHeight;
|
|
70
|
+
}
|
|
71
|
+
get hasHover() {
|
|
72
|
+
return this._hasHover;
|
|
73
|
+
}
|
|
74
|
+
get hasGridlines() {
|
|
75
|
+
return this._hasGridlines;
|
|
76
|
+
}
|
|
77
|
+
addColumnDescriptor(column) {
|
|
78
|
+
this._columns.push(column);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
addColumn(property) {
|
|
82
|
+
const column = new ColumnDescriptor(this, property);
|
|
83
|
+
this._columns.push(column);
|
|
84
|
+
return column;
|
|
85
|
+
}
|
|
86
|
+
addColumnNumber(property, displayFormat) {
|
|
87
|
+
const column = new ColumnDescriptor(this, property);
|
|
88
|
+
column.asNumber(displayFormat);
|
|
89
|
+
this._columns.push(column);
|
|
90
|
+
return column;
|
|
91
|
+
}
|
|
92
|
+
addColumnDate(property, displayFormat) {
|
|
93
|
+
const column = new ColumnDescriptor(this, property);
|
|
94
|
+
column.asDate(displayFormat);
|
|
95
|
+
this._columns.push(column);
|
|
96
|
+
return column;
|
|
97
|
+
}
|
|
98
|
+
addColumnBoolean(property, yes, no, asIcon = false) {
|
|
99
|
+
const column = new ColumnDescriptor(this, property);
|
|
100
|
+
column.asBoolean(yes, no, asIcon);
|
|
101
|
+
this._columns.push(column);
|
|
102
|
+
return column;
|
|
103
|
+
}
|
|
104
|
+
addColumnEnum(property, enumType, nameAsValue = false, titlePath) {
|
|
105
|
+
const column = new ColumnDescriptor(this, property);
|
|
106
|
+
column.asEnum(enumType, nameAsValue, titlePath);
|
|
107
|
+
this._columns.push(column);
|
|
108
|
+
return column;
|
|
109
|
+
}
|
|
110
|
+
addColumnCustomComponent(property, customComponentType) {
|
|
111
|
+
const column = new ColumnDescriptor(this, property);
|
|
112
|
+
column.asCustomComponent(customComponentType);
|
|
113
|
+
this._columns.push(column);
|
|
114
|
+
return column;
|
|
115
|
+
}
|
|
116
|
+
withFilterDisplay(filterDisplayType) {
|
|
117
|
+
this._filterDisplay = filterDisplayType;
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
withPaginationMode(paginationMode) {
|
|
121
|
+
this._paginationMode = paginationMode;
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
withRowsPerPage(rows, options) {
|
|
125
|
+
if (options) {
|
|
126
|
+
this._rowsPerPageOptions = options;
|
|
127
|
+
}
|
|
128
|
+
if (!this._rowsPerPageOptions.includes(rows)) {
|
|
129
|
+
this._defaultNumRows = this._rowsPerPageOptions[0];
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this._defaultNumRows = rows;
|
|
133
|
+
}
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
withTitle(title) {
|
|
137
|
+
this._title = title;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
withHideHeader(hideHeader = true) {
|
|
141
|
+
this._hideHeader = hideHeader;
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
withDataKeyProperty(property) {
|
|
145
|
+
this._dataKeyProperty = property;
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
withDefaultSort(property, asc = true) {
|
|
149
|
+
this._hasDefaultSort = true;
|
|
150
|
+
this._defaultSortProperty.push(property);
|
|
151
|
+
this._defaultSortAsc.push(asc);
|
|
152
|
+
return this;
|
|
153
|
+
}
|
|
154
|
+
withClassName(className) {
|
|
155
|
+
this._className = className;
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
withSize(size = TableDescriptor.SizeEnum.Normal) {
|
|
159
|
+
this._size = size;
|
|
160
|
+
return this;
|
|
161
|
+
}
|
|
162
|
+
withTableFullHeightOffset(tableFullHeightOffset) {
|
|
163
|
+
this._tableFullHeightOffset = tableFullHeightOffset;
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
withRowHeight(rowHeight) {
|
|
167
|
+
this._rowHeight = rowHeight;
|
|
168
|
+
return this;
|
|
169
|
+
}
|
|
170
|
+
withHover(hover) {
|
|
171
|
+
this._hasHover = hover;
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
withGridlines(gridlines) {
|
|
175
|
+
this._hasGridlines = gridlines;
|
|
176
|
+
return this;
|
|
177
|
+
}
|
|
178
|
+
copy() {
|
|
179
|
+
const descriptor = new TableDescriptor(this.model.type, this.model.idPropertyName, this.model.titlePropertyName);
|
|
180
|
+
descriptor._columns = this.columns.map(c => c.copy());
|
|
181
|
+
descriptor._title = this._title;
|
|
182
|
+
descriptor._hideHeader = this._hideHeader;
|
|
183
|
+
descriptor._dataKeyProperty = this._dataKeyProperty;
|
|
184
|
+
descriptor._defaultSortProperty = this._defaultSortProperty.map(p => p);
|
|
185
|
+
descriptor._defaultSortAsc = this._defaultSortAsc.map(p => p);
|
|
186
|
+
descriptor._filterDisplay = this._filterDisplay;
|
|
187
|
+
descriptor._className = this._className;
|
|
188
|
+
descriptor._size = this._size;
|
|
189
|
+
descriptor._tableFullHeightOffset = this._tableFullHeightOffset;
|
|
190
|
+
descriptor._rowHeight = this._rowHeight;
|
|
191
|
+
descriptor._hasHover = this._hasHover;
|
|
192
|
+
descriptor._hasGridlines = this._hasGridlines;
|
|
193
|
+
return descriptor;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
(function (TableDescriptor) {
|
|
197
|
+
let PaginationModeEnum;
|
|
198
|
+
(function (PaginationModeEnum) {
|
|
199
|
+
PaginationModeEnum[PaginationModeEnum["Pagination"] = 0] = "Pagination";
|
|
200
|
+
PaginationModeEnum[PaginationModeEnum["InfiniteScroll"] = 1] = "InfiniteScroll";
|
|
201
|
+
})(PaginationModeEnum = TableDescriptor.PaginationModeEnum || (TableDescriptor.PaginationModeEnum = {}));
|
|
202
|
+
let FilterDisplayEnum;
|
|
203
|
+
(function (FilterDisplayEnum) {
|
|
204
|
+
FilterDisplayEnum[FilterDisplayEnum["Row"] = 0] = "Row";
|
|
205
|
+
FilterDisplayEnum[FilterDisplayEnum["Menu"] = 1] = "Menu";
|
|
206
|
+
})(FilterDisplayEnum = TableDescriptor.FilterDisplayEnum || (TableDescriptor.FilterDisplayEnum = {}));
|
|
207
|
+
let SizeEnum;
|
|
208
|
+
(function (SizeEnum) {
|
|
209
|
+
SizeEnum[SizeEnum["Small"] = 0] = "Small";
|
|
210
|
+
SizeEnum[SizeEnum["Normal"] = 1] = "Normal";
|
|
211
|
+
SizeEnum[SizeEnum["Large"] = 2] = "Large";
|
|
212
|
+
})(SizeEnum = TableDescriptor.SizeEnum || (TableDescriptor.SizeEnum = {}));
|
|
213
|
+
})(TableDescriptor || (TableDescriptor = {}));
|
|
214
214
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGVzY3JpcHRvcnMvdGFibGUuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sZUFBZTtJQXNCeEIsWUFBWSxTQUF1QixFQUFFLFVBQW1CLEVBQUUsYUFBc0I7UUFwQnhFLG1CQUFjLEdBQXNDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDM0Ysb0JBQWUsR0FBdUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNwRyx3QkFBbUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsYUFBUSxHQUFvQyxFQUFFLENBQUM7UUFFL0MsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBQ3BDLG9CQUFlLEdBQWMsRUFBRSxDQUFDO1FBRXhDLFNBQVM7UUFDRCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFVBQUssR0FBNkIsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFHakUsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUcxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFJLFNBQVMsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFD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TSxDQUFBO1FBQ04seUNBQUssQ0FBQTtJQUNULENBQUMsRUFKVyxRQUFRLEdBQVIsd0JBQVEsS0FBUix3QkFBUSxRQUluQjtBQUNMLENBQUMsRUFoQmdCLGVBQWUsS0FBZixlQUFlLFFBZ0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7SUNvbHVtblZhbHVlQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtDbGFzc1R5cGUsIEVudW1UeXBlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge01vZGVsVXRpbH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtDb2x1bW5EZXNjcmlwdG9yfSBmcm9tICcuL2NvbHVtbi5kZXNjcmlwdG9yJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICcuL21vZGVsLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgY2xhc3MgVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb2RlbDogTW9kZWxEZXNjcmlwdG9yPFQ+O1xuICAgIHByaXZhdGUgX2ZpbHRlckRpc3BsYXk6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSA9IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bS5NZW51O1xuICAgIHByaXZhdGUgX3BhZ2luYXRpb25Nb2RlOiBUYWJsZURlc2NyaXB0b3IuUGFnaW5hdGlvbk1vZGVFbnVtID0gVGFibGVEZXNjcmlwdG9yLlBhZ2luYXRpb25Nb2RlRW51bS5QYWdpbmF0aW9uO1xuICAgIHByaXZhdGUgX3Jvd3NQZXJQYWdlT3B0aW9ucyA9IFsyNSwgNTAsIDEwMF07XG4gICAgcHJpdmF0ZSBfZGVmYXVsdE51bVJvd3MgPSB0aGlzLl9yb3dzUGVyUGFnZU9wdGlvbnNbMF07XG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8Q29sdW1uRGVzY3JpcHRvcjxhbnksIFQ+PiA9IFtdO1xuICAgIHByaXZhdGUgX3RpdGxlPzogc3RyaW5nO1xuICAgIHByaXZhdGUgX2hpZGVIZWFkZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfaGFzRGVmYXVsdFNvcnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kZWZhdWx0U29ydFByb3BlcnR5OiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgX2RlZmF1bHRTb3J0QXNjOiBib29sZWFuW10gPSBbXTtcblxuICAgIC8vIHZpc3VhbFxuICAgIHByaXZhdGUgX2NsYXNzTmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX3NpemU6IFRhYmxlRGVzY3JpcHRvci5TaXplRW51bSA9IFRhYmxlRGVzY3JpcHRvci5TaXplRW51bS5MYXJnZTtcbiAgICBwcml2YXRlIF90YWJsZUZ1bGxIZWlnaHRPZmZzZXQ/OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfcm93SGVpZ2h0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgX2hhc0hvdmVyID0gdHJ1ZTtcbiAgICBwcml2YXRlIF9oYXNHcmlkbGluZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKG1vZGVsVHlwZTogQ2xhc3NUeXBlPFQ+LCBpZFByb3BlcnR5Pzogc3RyaW5nLCB0aXRsZVByb3BlcnR5Pzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gbmV3IE1vZGVsRGVzY3JpcHRvcjxUPihtb2RlbFR5cGUsIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9kYXRhS2V5UHJvcGVydHkgPSBpZFByb3BlcnR5ID8/IE1vZGVsVXRpbC5maW5kSWRBdHRyaWJ1dGUobW9kZWxUeXBlKSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJEaXNwbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyRGlzcGxheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2luYXRpb25Nb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbk1vZGU7XG4gICAgfVxuXG4gICAgZ2V0IHJvd3NQZXJQYWdlT3B0aW9ucygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dzUGVyUGFnZU9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHROdW1Sb3dzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0TnVtUm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZGVIZWFkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlSGVhZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YUtleVByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUtleVByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRGVmYXVsdFNvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEZWZhdWx0U29ydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRTb3J0UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0U29ydFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdFNvcnRBc2MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZhdWx0U29ydEFzYztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxlRnVsbEhlaWdodE9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlRnVsbEhlaWdodE9mZnNldDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0hlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0hlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0hvdmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzSG92ZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNHcmlkbGluZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNHcmlkbGluZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkRlc2NyaXB0b3I8Q1Q+KGNvbHVtbjogQ29sdW1uRGVzY3JpcHRvcjxDVCwgVD4pOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbihwcm9wZXJ0eTogc3RyaW5nKTogQ29sdW1uRGVzY3JpcHRvcjxzdHJpbmcsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8c3RyaW5nLCBUPih0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5OdW1iZXIocHJvcGVydHk6IHN0cmluZywgZGlzcGxheUZvcm1hdD86IHN0cmluZyk6IENvbHVtbkRlc2NyaXB0b3I8bnVtYmVyLCBUPiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG5ldyBDb2x1bW5EZXNjcmlwdG9yPG51bWJlciwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNOdW1iZXIoZGlzcGxheUZvcm1hdCk7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMucHVzaChjb2x1bW4pO1xuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb2x1bW5EYXRlKHByb3BlcnR5OiBzdHJpbmcsIGRpc3BsYXlGb3JtYXQ/OiBzdHJpbmcpOiBDb2x1bW5EZXNjcmlwdG9yPERhdGUsIFQ+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbkRlc2NyaXB0b3I8RGF0ZSwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNEYXRlKGRpc3BsYXlGb3JtYXQpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1uQm9vbGVhbihwcm9wZXJ0eTogc3RyaW5nLCB5ZXM/OiBzdHJpbmcsIG5vPzogc3RyaW5nLCBhc0ljb24gPSBmYWxzZSk6IENvbHVtbkRlc2NyaXB0b3I8Ym9vbGVhbiwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxib29sZWFuLCBUPih0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgIGNvbHVtbi5hc0Jvb2xlYW4oeWVzLCBubywgYXNJY29uKTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkVudW0ocHJvcGVydHk6IHN0cmluZywgZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcgfCBudWxsKTogQ29sdW1uRGVzY3JpcHRvcjxFbnVtVHlwZSwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxFbnVtVHlwZSwgVD4odGhpcywgcHJvcGVydHkpO1xuICAgICAgICBjb2x1bW4uYXNFbnVtKGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgdGl0bGVQYXRoKTtcbiAgICAgICAgdGhpcy5fY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENvbHVtbkN1c3RvbUNvbXBvbmVudChwcm9wZXJ0eTogc3RyaW5nLCBjdXN0b21Db21wb25lbnRUeXBlOiBUeXBlPElDb2x1bW5WYWx1ZUNvbXBvbmVudDxUPj4pOiBDb2x1bW5EZXNjcmlwdG9yPGFueSwgVD4ge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uRGVzY3JpcHRvcjxhbnksIFQ+KHRoaXMsIHByb3BlcnR5KTtcbiAgICAgICAgY29sdW1uLmFzQ3VzdG9tQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudFR5cGUpO1xuICAgICAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZpbHRlckRpc3BsYXkoZmlsdGVyRGlzcGxheVR5cGU6IFRhYmxlRGVzY3JpcHRvci5GaWx0ZXJEaXNwbGF5RW51bSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9maWx0ZXJEaXNwbGF5ID0gZmlsdGVyRGlzcGxheVR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbk1vZGU6IFRhYmxlRGVzY3JpcHRvci5QYWdpbmF0aW9uTW9kZUVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvbk1vZGUgPSBwYWdpbmF0aW9uTW9kZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3dzUGVyUGFnZShyb3dzOiBudW1iZXIsIG9wdGlvbnM/OiBBcnJheTxudW1iZXI+KSB7XG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9yb3dzUGVyUGFnZU9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fcm93c1BlclBhZ2VPcHRpb25zLmluY2x1ZGVzKHJvd3MpKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWZhdWx0TnVtUm93cyA9IHRoaXMuX3Jvd3NQZXJQYWdlT3B0aW9uc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2RlZmF1bHROdW1Sb3dzID0gcm93cztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRpdGxlKHRpdGxlOiBzdHJpbmcpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEhpZGVIZWFkZXIoaGlkZUhlYWRlciA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5faGlkZUhlYWRlciA9IGhpZGVIZWFkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGF0YUtleVByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICB0aGlzLl9kYXRhS2V5UHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEZWZhdWx0U29ydChwcm9wZXJ0eTogc3RyaW5nLCBhc2MgPSB0cnVlKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5faGFzRGVmYXVsdFNvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9kZWZhdWx0U29ydFByb3BlcnR5LnB1c2gocHJvcGVydHkpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0U29ydEFzYy5wdXNoKGFzYyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTaXplKHNpemU6IFRhYmxlRGVzY3JpcHRvci5TaXplRW51bSA9IFRhYmxlRGVzY3JpcHRvci5TaXplRW51bS5Ob3JtYWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGVGdWxsSGVpZ2h0T2Zmc2V0KHRhYmxlRnVsbEhlaWdodE9mZnNldDogbnVtYmVyKTogVGFibGVEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgdGhpcy5fdGFibGVGdWxsSGVpZ2h0T2Zmc2V0ID0gdGFibGVGdWxsSGVpZ2h0T2Zmc2V0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJvd0hlaWdodChyb3dIZWlnaHQ6IG51bWJlcik6IFRhYmxlRGVzY3JpcHRvcjxUPiB7XG4gICAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IHJvd0hlaWdodDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhIb3Zlcihob3ZlcjogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNIb3ZlciA9IGhvdmVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEdyaWRsaW5lcyhncmlkbGluZXM6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzR3JpZGxpbmVzID0gZ3JpZGxpbmVzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBUYWJsZURlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IFRhYmxlRGVzY3JpcHRvcih0aGlzLm1vZGVsLnR5cGUsIHRoaXMubW9kZWwuaWRQcm9wZXJ0eU5hbWUsIHRoaXMubW9kZWwudGl0bGVQcm9wZXJ0eU5hbWUpO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcChjID0+IGMuY29weSgpKTtcbiAgICAgICAgZGVzY3JpcHRvci5fdGl0bGUgPSB0aGlzLl90aXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5faGlkZUhlYWRlciA9IHRoaXMuX2hpZGVIZWFkZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RhdGFLZXlQcm9wZXJ0eSA9IHRoaXMuX2RhdGFLZXlQcm9wZXJ0eTtcbiAgICAgICAgZGVzY3JpcHRvci5fZGVmYXVsdFNvcnRQcm9wZXJ0eSA9IHRoaXMuX2RlZmF1bHRTb3J0UHJvcGVydHkubWFwKHAgPT4gcCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RlZmF1bHRTb3J0QXNjID0gdGhpcy5fZGVmYXVsdFNvcnRBc2MubWFwKHAgPT4gcCk7XG4gICAgICAgIGRlc2NyaXB0b3IuX2ZpbHRlckRpc3BsYXkgPSB0aGlzLl9maWx0ZXJEaXNwbGF5O1xuICAgICAgICBkZXNjcmlwdG9yLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3NpemUgPSB0aGlzLl9zaXplO1xuICAgICAgICBkZXNjcmlwdG9yLl90YWJsZUZ1bGxIZWlnaHRPZmZzZXQgPSB0aGlzLl90YWJsZUZ1bGxIZWlnaHRPZmZzZXQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Jvd0hlaWdodCA9IHRoaXMuX3Jvd0hlaWdodDtcbiAgICAgICAgZGVzY3JpcHRvci5faGFzSG92ZXIgPSB0aGlzLl9oYXNIb3ZlcjtcbiAgICAgICAgZGVzY3JpcHRvci5faGFzR3JpZGxpbmVzID0gdGhpcy5faGFzR3JpZGxpbmVzO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVEZXNjcmlwdG9yIHtcbiAgICBleHBvcnQgZW51bSBQYWdpbmF0aW9uTW9kZUVudW0ge1xuICAgICAgICBQYWdpbmF0aW9uLFxuICAgICAgICBJbmZpbml0ZVNjcm9sbFxuICAgIH1cblxuICAgIGV4cG9ydCBlbnVtIEZpbHRlckRpc3BsYXlFbnVtIHtcbiAgICAgICAgUm93LFxuICAgICAgICBNZW51XG4gICAgfVxuXG4gICAgZXhwb3J0IGVudW0gU2l6ZUVudW0ge1xuICAgICAgICBTbWFsbCxcbiAgICAgICAgTm9ybWFsLFxuICAgICAgICBMYXJnZVxuICAgIH1cbn1cbiJdfQ==
|