@wavemaker/app-ng-runtime 11.8.0-next.24904 → 11.8.0-next.27301
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.
- app-ng-runtime/build-task/bundles/index.umd.js +5 -5
- app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +2 -1
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/login/bundles/index.umd.js +6 -6
- app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +4 -3
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +203 -171
- app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +12 -11
- app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
- app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
- app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +47 -41
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
- app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +4 -3
- app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +12 -11
- app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +40 -14
- app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -5
- app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
- app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
- app-ng-runtime/components/base/fesm2022/index.mjs +206 -173
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/utils/data-utils.d.ts +0 -1
- app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
- app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +4 -3
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +6 -5
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +7 -6
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +13 -13
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +5 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +6 -5
- app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +10 -9
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +15 -10
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +14 -8
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +13 -7
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
- app-ng-runtime/components/basic/search/bundles/index.umd.js +67 -65
- app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
- app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
- app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -30
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +66 -63
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/tree/bundles/index.umd.js +9 -9
- app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +7 -6
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs +6 -5
- app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/chart/bundles/index.umd.js +72 -63
- app-ng-runtime/components/chart/chart.component.d.ts +1 -1
- app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
- app-ng-runtime/components/chart/esm2022/chart.component.mjs +58 -48
- app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
- app-ng-runtime/components/chart/fesm2022/index.mjs +69 -59
- app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +16 -16
- app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +14 -13
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +13 -12
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +5 -5
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +3 -2
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/panel.component.d.ts +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +17 -17
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +15 -14
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -13
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +75 -75
- app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +10 -9
- app-ng-runtime/components/data/form/esm2022/form.component.mjs +54 -53
- app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
- app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +11 -10
- app-ng-runtime/components/data/form/fesm2022/index.mjs +77 -76
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form.component.d.ts +2 -2
- app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
- app-ng-runtime/components/data/list/bundles/index.umd.js +692 -687
- app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +1 -1
- app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +687 -682
- app-ng-runtime/components/data/list/fesm2022/index.mjs +690 -684
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/list/list.component.d.ts +53 -53
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +1 -1
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +14 -14
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +12 -11
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +11 -10
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +175 -172
- app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +19 -18
- app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +7 -6
- app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +53 -55
- app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +98 -91
- app-ng-runtime/components/data/table/fesm2022/index.mjs +172 -168
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +6 -6
- app-ng-runtime/components/data/table/table.component.d.ts +2 -2
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +2 -2
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +33 -31
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +31 -28
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +30 -27
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +29 -28
- app-ng-runtime/components/input/chips/chips.component.d.ts +1 -1
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +27 -25
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +26 -24
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
- app-ng-runtime/components/input/default/bundles/index.umd.js +75 -62
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
- app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +14 -8
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +3 -2
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +6 -4
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +29 -23
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -3
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -18
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
- app-ng-runtime/components/input/default/fesm2022/index.mjs +75 -62
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -1
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +53 -51
- app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +34 -31
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +5 -4
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -6
- app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +1 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +6 -5
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +48 -45
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +15 -15
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +13 -12
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +12 -11
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/bundles/index.umd.js +12 -12
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +10 -9
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +9 -8
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +1 -1
- app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +23 -22
- app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +10 -8
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +20 -18
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +1 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/prefab/bundles/index.umd.js +6 -6
- app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
- app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +119 -130
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/pagination.service.mjs +7 -6
- app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +17 -16
- app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -2
- app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/expression-parser.mjs +5 -4
- app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
- app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
- app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
- app-ng-runtime/core/fesm2022/index.mjs +117 -123
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/services/pagination.service.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +5 -9
- app-ng-runtime/http/bundles/index.umd.js +7 -7
- app-ng-runtime/http/esm2022/http.service.mjs +5 -4
- app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
- app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
- app-ng-runtime/http/fesm2022/index.mjs +4 -3
- app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +24 -20
- app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +12 -8
- app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +5 -3
- app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +3 -2
- app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +5 -4
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +21 -16
- app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +7 -7
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
- app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -3
- app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +8 -8
- app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +4 -3
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +3 -2
- app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +5 -5
- app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -2
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +9 -9
- app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +7 -6
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +6 -5
- app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +25 -25
- app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +4 -3
- app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +6 -5
- app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -2
- app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +5 -4
- app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +9 -8
- app-ng-runtime/mobile/core/fesm2022/index.mjs +22 -21
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
- app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
- app-ng-runtime/mobile/offline/bundles/index.umd.js +161 -144
- app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
- app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +7 -6
- app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +37 -35
- app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +54 -45
- app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
- app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
- app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
- app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
- app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
- app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
- app-ng-runtime/mobile/offline/fesm2022/index.mjs +156 -138
- app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime/bundles/index.umd.js +11 -8
- app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -2
- app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +6 -2
- app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +4 -3
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs +8 -4
- app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
- app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +3 -3
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
- app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/variables/bundles/index.umd.js +23 -16
- app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +2 -2
- app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
- app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
- app-ng-runtime/mobile/variables/fesm2022/index.mjs +19 -11
- app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/oAuth/bundles/index.umd.js +12 -12
- app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +4 -3
- app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
- app-ng-runtime/oAuth/fesm2022/index.mjs +9 -8
- app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +121 -120
- app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +13 -12
- app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +15 -14
- app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +14 -13
- app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -10
- app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +1 -1
- app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +17 -14
- app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +4 -3
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +12 -10
- app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +8 -7
- app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +3 -2
- app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +7 -6
- app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +6 -5
- app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +6 -7
- app-ng-runtime/runtime/base/fesm2022/index.mjs +119 -117
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -3
- app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +4 -3
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
- app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
- app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
- app-ng-runtime/security/bundles/index.umd.js +14 -14
- app-ng-runtime/security/esm2022/security.service.mjs +12 -11
- app-ng-runtime/security/fesm2022/index.mjs +11 -10
- app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/security/security.service.d.ts +1 -1
- app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
- app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
- app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
- app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/bundles/index.umd.js +155 -145
- app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
- app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
- app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
- app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
- app-ng-runtime/variables/esm2022/service/variables.service.mjs +7 -6
- app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
- app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
- app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
- app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
- app-ng-runtime/variables/fesm2022/index.mjs +169 -158
- app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
|
@@ -23,6 +23,7 @@ import * as i2 from '@wm/core';
|
|
|
23
23
|
import { isDefined, getClonedObject, closePopover, $unwatch, $watch, $appDigest, triggerFn, DataSource, isDataSourceEqual, isMobile, $invokeWatchers, getValidJSON, extendProto, getDatasourceFromExpr, $parseEvent, extractCurrentItemExpr, isNumberType, DataType, adjustContainerRightEdges, FormWidgetType, isDateTimeType, getDisplayDateTimeFormat } from '@wm/core';
|
|
24
24
|
import { Subject } from 'rxjs';
|
|
25
25
|
import { debounceTime } from 'rxjs/operators';
|
|
26
|
+
import { isEmpty, floor, debounce, get, set, some, findIndex, isEqual, pullAllWith, remove, extend, isNaN, isUndefined, forEach, isArray, isObject, indexOf, keys, find, toNumber, includes, split, startsWith, omitBy, values, parseInt as parseInt$1, map, last, toString, isNull, range, filter, endsWith, toLower, head, orderBy, sum, mean, round, min, max, cloneDeep } from 'lodash-es';
|
|
26
27
|
|
|
27
28
|
const registerProps$5 = () => {
|
|
28
29
|
register('wm-table', new Map([
|
|
@@ -228,7 +229,7 @@ class TableComponent extends StylableComponent {
|
|
|
228
229
|
set gridData(newValue) {
|
|
229
230
|
this.isDataLoading = false;
|
|
230
231
|
// Fix for [WMS-24012]: hide no datafound msg when variableInflight is true and dataset is empty
|
|
231
|
-
if (this.variableInflight &&
|
|
232
|
+
if (this.variableInflight && isEmpty(newValue)) {
|
|
232
233
|
return;
|
|
233
234
|
}
|
|
234
235
|
this.variableInflight = false;
|
|
@@ -244,7 +245,7 @@ class TableComponent extends StylableComponent {
|
|
|
244
245
|
[this._gridData, this.currentPage] = this.paginationService.updateFieldsOnPagination(this, newValue);
|
|
245
246
|
// When edit action is performed on previous page, update the _gridData field with the modified row data
|
|
246
247
|
if (this.gridOptions.lastActionPerformed === this.gridOptions.ACTIONS.EDIT) {
|
|
247
|
-
const rowIndex =
|
|
248
|
+
const rowIndex = floor(this.actionRowIndex % this.pagesize);
|
|
248
249
|
this._gridData.splice(this.actionRowIndex, 1, newValue[rowIndex]);
|
|
249
250
|
}
|
|
250
251
|
this.setDataGridOption('isLastPage', !!(this.dataNavigator.isDisableNext));
|
|
@@ -282,7 +283,7 @@ class TableComponent extends StylableComponent {
|
|
|
282
283
|
this.setDataGridOption('colDefs', getClonedObject(this.fieldDefs));
|
|
283
284
|
}
|
|
284
285
|
// If data and colDefs are present, call on before data render event
|
|
285
|
-
if (!this.isdynamictable && !
|
|
286
|
+
if (!this.isdynamictable && !isEmpty(newValue) && gridOptions.colDefs.length) {
|
|
286
287
|
this.invokeEventCallback('beforedatarender', { $data: this._gridData, $columns: this.columns, data: this._gridData, columns: this.columns });
|
|
287
288
|
}
|
|
288
289
|
this.setDataGridOption('data', getClonedObject(this._gridData));
|
|
@@ -295,7 +296,7 @@ class TableComponent extends StylableComponent {
|
|
|
295
296
|
if (this.multiselect) {
|
|
296
297
|
return getClonedObject(this.items);
|
|
297
298
|
}
|
|
298
|
-
if (
|
|
299
|
+
if (isEmpty(this.items)) {
|
|
299
300
|
return {};
|
|
300
301
|
}
|
|
301
302
|
return getClonedObject(this.items[0]);
|
|
@@ -361,8 +362,8 @@ class TableComponent extends StylableComponent {
|
|
|
361
362
|
this.fullFieldDefs = [];
|
|
362
363
|
this.variableInflight = true;
|
|
363
364
|
this.applyProps = new Map();
|
|
364
|
-
this.redraw =
|
|
365
|
-
this.debouncedHandleLoading =
|
|
365
|
+
this.redraw = debounce(this._redraw, 150);
|
|
366
|
+
this.debouncedHandleLoading = debounce(this.handleLoading, 350);
|
|
366
367
|
// Filter and Sort Methods
|
|
367
368
|
this.rowFilter = {};
|
|
368
369
|
this._searchSortHandler = noop;
|
|
@@ -427,11 +428,11 @@ class TableComponent extends StylableComponent {
|
|
|
427
428
|
isLastPage: false,
|
|
428
429
|
// get the current page number
|
|
429
430
|
getCurrentPage: () => {
|
|
430
|
-
return
|
|
431
|
+
return get(this.dataNavigator, 'dn.currentPage') || 1;
|
|
431
432
|
},
|
|
432
433
|
// set the page number
|
|
433
434
|
setCurrentPage: (pageNum) => {
|
|
434
|
-
|
|
435
|
+
set(this.dataNavigator, 'dn.currentPage', pageNum || 1);
|
|
435
436
|
},
|
|
436
437
|
getDataSource: () => {
|
|
437
438
|
return this.datasource;
|
|
@@ -503,8 +504,8 @@ class TableComponent extends StylableComponent {
|
|
|
503
504
|
if (this.selectedItems.length && rowData.$index && this.getConfiguredState() !== 'none' && this.dataNavigator && unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {
|
|
504
505
|
const obj = { page: this.dataNavigator.dn.currentPage, index: rowData.$index - 1 };
|
|
505
506
|
const widgetState = this.statePersistence.getWidgetState(this);
|
|
506
|
-
if (
|
|
507
|
-
if (!
|
|
507
|
+
if (get(widgetState, 'selectedItem') && this.multiselect) {
|
|
508
|
+
if (!some(widgetState.selectedItem, obj)) {
|
|
508
509
|
widgetState.selectedItem.push(obj);
|
|
509
510
|
}
|
|
510
511
|
this.statePersistence.setWidgetState(this, { 'selectedItem': widgetState.selectedItem });
|
|
@@ -528,7 +529,7 @@ class TableComponent extends StylableComponent {
|
|
|
528
529
|
*/
|
|
529
530
|
if (this.multiselect) {
|
|
530
531
|
//Fix for [WMS-25110]: Add row to items list only if the row is selected
|
|
531
|
-
if (
|
|
532
|
+
if (findIndex(this.items, row) === -1 && (rowInfo?._selected === undefined || rowInfo?._selected == true || (this.gridfirstrowselect && rowInfo?.rowId == 0 && !this.showFirstRow))) {
|
|
532
533
|
this.items.push(row);
|
|
533
534
|
if (rowInfo?.rowId == 0) {
|
|
534
535
|
this.showFirstRow = true;
|
|
@@ -548,16 +549,16 @@ class TableComponent extends StylableComponent {
|
|
|
548
549
|
onRowDeselect: (row, e) => {
|
|
549
550
|
if (this.multiselect) {
|
|
550
551
|
this.ngZone.run(() => {
|
|
551
|
-
this.items =
|
|
552
|
+
this.items = pullAllWith(this.items, [row], isEqual);
|
|
552
553
|
this.selectedItems = this.callDataGridMethod('getSelectedRows');
|
|
553
554
|
this.invokeEventCallback('rowdeselect', { $data: row, $event: e, row });
|
|
554
555
|
const rowData = this.addRowIndex(row);
|
|
555
556
|
if (this.getConfiguredState() !== 'none' && unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {
|
|
556
557
|
const obj = { page: this.dataNavigator.dn.currentPage, index: rowData.$index - 1 };
|
|
557
558
|
const widgetState = this.statePersistence.getWidgetState(this);
|
|
558
|
-
if (
|
|
559
|
-
|
|
560
|
-
return
|
|
559
|
+
if (get(widgetState, 'selectedItem')) {
|
|
560
|
+
remove(widgetState.selectedItem, function (selectedItem) {
|
|
561
|
+
return isEqual(selectedItem, obj);
|
|
561
562
|
});
|
|
562
563
|
this.statePersistence.removeWidgetState(this, 'selectedItem');
|
|
563
564
|
if (widgetState.selectedItem.length > 0) {
|
|
@@ -600,11 +601,16 @@ class TableComponent extends StylableComponent {
|
|
|
600
601
|
},
|
|
601
602
|
onRowDelete: (row, cancelRowDeleteCallback, e, callBack, options) => {
|
|
602
603
|
this.ngZone.run(() => {
|
|
603
|
-
this.deleteRecord(
|
|
604
|
+
this.deleteRecord(extend({}, options, {
|
|
605
|
+
row,
|
|
606
|
+
'cancelRowDeleteCallback': cancelRowDeleteCallback,
|
|
607
|
+
'evt': e,
|
|
608
|
+
'callBack': callBack
|
|
609
|
+
}));
|
|
604
610
|
});
|
|
605
611
|
},
|
|
606
612
|
onRowInsert: (row, e, callBack, options) => {
|
|
607
|
-
this.insertRecord(
|
|
613
|
+
this.insertRecord(extend({}, options, { row, event: e, 'callBack': callBack }));
|
|
608
614
|
},
|
|
609
615
|
beforeRowUpdate: (row, eventName) => {
|
|
610
616
|
if (this._liveTableParent) {
|
|
@@ -613,7 +619,7 @@ class TableComponent extends StylableComponent {
|
|
|
613
619
|
this.prevData = getClonedObject(row);
|
|
614
620
|
},
|
|
615
621
|
afterRowUpdate: (row, e, callBack, options) => {
|
|
616
|
-
this.updateRecord(
|
|
622
|
+
this.updateRecord(extend({}, options, { row, 'prevData': this.prevData, 'event': e, 'callBack': callBack }));
|
|
617
623
|
},
|
|
618
624
|
onBeforeRowUpdate: (row, e, options) => {
|
|
619
625
|
return this.invokeEventCallback('beforerowupdate', { $event: e, $data: row, row, options: options });
|
|
@@ -694,7 +700,7 @@ class TableComponent extends StylableComponent {
|
|
|
694
700
|
const customExprView = this.customExprViewRef.createEmbeddedView(tmpl, context);
|
|
695
701
|
const rootNode = customExprView.rootNodes[0];
|
|
696
702
|
const fieldName = rootNode.getAttribute('data-col-identifier');
|
|
697
|
-
|
|
703
|
+
extend(colDef, this.columns[fieldName]);
|
|
698
704
|
if (!summaryRow) {
|
|
699
705
|
this.customExprCompiledTl[fieldName + index] = rootNode;
|
|
700
706
|
}
|
|
@@ -922,7 +928,7 @@ class TableComponent extends StylableComponent {
|
|
|
922
928
|
if (this.gridOptions.isNavTypeScrollOrOndemand()) {
|
|
923
929
|
this.actionRowIndex = parseInt(val);
|
|
924
930
|
this.setDataGridOption('actionRowIndex', this.actionRowIndex);
|
|
925
|
-
if (!
|
|
931
|
+
if (!isNaN(this.actionRowIndex)) {
|
|
926
932
|
this.actionRowPage = Math.floor(this.actionRowIndex / this.pagesize) + 1;
|
|
927
933
|
this.setDataGridOption('actionRowPage', this.actionRowPage || this.gridOptions.actionRowPage);
|
|
928
934
|
}
|
|
@@ -964,7 +970,7 @@ class TableComponent extends StylableComponent {
|
|
|
964
970
|
clearForm: this.clearForm.bind(this),
|
|
965
971
|
callLoadInlineWidgetData: () => {
|
|
966
972
|
this.fullFieldDefs.forEach(col => {
|
|
967
|
-
if (
|
|
973
|
+
if (isUndefined(col.isDataSetBound)) {
|
|
968
974
|
triggerFn(col.loadInlineWidgetData && col.loadInlineWidgetData.bind(col));
|
|
969
975
|
}
|
|
970
976
|
});
|
|
@@ -1001,12 +1007,12 @@ class TableComponent extends StylableComponent {
|
|
|
1001
1007
|
const listenersToRemove = [
|
|
1002
1008
|
// Updates pagination, filter, sort etc options for service and crud variables
|
|
1003
1009
|
this.app.subscribe('check-state-persistence-options', options => {
|
|
1004
|
-
let dataSourceName =
|
|
1010
|
+
let dataSourceName = get(this.datasource, 'name');
|
|
1005
1011
|
// in Prefabs, this.datasource is not resolved at the time of variable invocation, so additional check is required.
|
|
1006
1012
|
if (!dataSourceName) {
|
|
1007
1013
|
dataSourceName = extractDataSourceName(this.binddatasource);
|
|
1008
1014
|
}
|
|
1009
|
-
if (
|
|
1015
|
+
if (get(options, 'variable.name') !== dataSourceName) {
|
|
1010
1016
|
return;
|
|
1011
1017
|
}
|
|
1012
1018
|
if (this._pageLoad && this.getConfiguredState() !== 'none') {
|
|
@@ -1053,7 +1059,7 @@ class TableComponent extends StylableComponent {
|
|
|
1053
1059
|
ngAfterContentInit() {
|
|
1054
1060
|
super.ngAfterContentInit();
|
|
1055
1061
|
this.headerConfig = this.headerConfig.filter(this.filterEmptyValues.bind(this));
|
|
1056
|
-
|
|
1062
|
+
remove(this.fieldDefs, f => f === undefined);
|
|
1057
1063
|
const runModeInitialProperties = {
|
|
1058
1064
|
showrowindex: 'showRowIndex',
|
|
1059
1065
|
multiselect: 'multiselect',
|
|
@@ -1101,7 +1107,7 @@ class TableComponent extends StylableComponent {
|
|
|
1101
1107
|
this.gridOptions.loadingdatamsg = this.loadingdatamsg;
|
|
1102
1108
|
// When loadondemand property is enabled(deferload="true") and show is true, only the column titles of the datatable are rendered, the data(body of the datatable) is not at all rendered.
|
|
1103
1109
|
// Because the griddata is setting before the datatable dom is rendered but we are sending empty data to the datatable.
|
|
1104
|
-
if (!
|
|
1110
|
+
if (!isEmpty(this.gridData)) {
|
|
1105
1111
|
this.gridOptions.data = getClonedObject(this.gridData);
|
|
1106
1112
|
}
|
|
1107
1113
|
this.gridOptions.messages = {
|
|
@@ -1110,7 +1116,7 @@ class TableComponent extends StylableComponent {
|
|
|
1110
1116
|
this.datagridElement = $(this._tableElement.nativeElement);
|
|
1111
1117
|
this.gridElement = this.$element;
|
|
1112
1118
|
this.$element.css({ 'position': 'relative' });
|
|
1113
|
-
|
|
1119
|
+
forEach(runModeInitialProperties, (value, key) => {
|
|
1114
1120
|
if (isDefined(this[key])) {
|
|
1115
1121
|
this.gridOptions[value] = (this[key] === 'true' || this[key] === true);
|
|
1116
1122
|
}
|
|
@@ -1138,17 +1144,17 @@ class TableComponent extends StylableComponent {
|
|
|
1138
1144
|
return mode && mode.toLowerCase();
|
|
1139
1145
|
}
|
|
1140
1146
|
handleStateParams(widgetState, options) {
|
|
1141
|
-
if (
|
|
1147
|
+
if (get(widgetState, 'selectedItem')) {
|
|
1142
1148
|
this._selectedItemsExist = true;
|
|
1143
1149
|
}
|
|
1144
1150
|
options.options = options.options || {};
|
|
1145
|
-
if (
|
|
1151
|
+
if (get(widgetState, 'pagination')) {
|
|
1146
1152
|
options.options.page = widgetState.pagination;
|
|
1147
|
-
if (
|
|
1153
|
+
if (get(widgetState, 'sort')) {
|
|
1148
1154
|
this.sortStateHandler(widgetState);
|
|
1149
|
-
options.options.orderBy =
|
|
1155
|
+
options.options.orderBy = get(widgetState, 'sort.field') + ' ' + get(widgetState, 'sort.direction');
|
|
1150
1156
|
}
|
|
1151
|
-
if (
|
|
1157
|
+
if (get(widgetState, 'search')) {
|
|
1152
1158
|
setTimeout(() => {
|
|
1153
1159
|
this.searchStateHandler(widgetState);
|
|
1154
1160
|
}, 500);
|
|
@@ -1157,15 +1163,15 @@ class TableComponent extends StylableComponent {
|
|
|
1157
1163
|
}
|
|
1158
1164
|
else {
|
|
1159
1165
|
options.options.page = 1;
|
|
1160
|
-
if (
|
|
1166
|
+
if (get(widgetState, 'search')) {
|
|
1161
1167
|
setTimeout(() => {
|
|
1162
1168
|
this.searchStateHandler(widgetState);
|
|
1163
1169
|
}, 500);
|
|
1164
1170
|
options.options.filterFields = this.getFilterFields(widgetState.search);
|
|
1165
1171
|
}
|
|
1166
|
-
if (
|
|
1172
|
+
if (get(widgetState, 'sort')) {
|
|
1167
1173
|
this.sortStateHandler(widgetState);
|
|
1168
|
-
options.options.orderBy =
|
|
1174
|
+
options.options.orderBy = get(widgetState, 'sort.field') + ' ' + get(widgetState, 'sort.direction');
|
|
1169
1175
|
}
|
|
1170
1176
|
}
|
|
1171
1177
|
return options;
|
|
@@ -1179,17 +1185,17 @@ class TableComponent extends StylableComponent {
|
|
|
1179
1185
|
}
|
|
1180
1186
|
sortStateHandler(widgetState) {
|
|
1181
1187
|
const $gridElement = this.datagridElement;
|
|
1182
|
-
const $sortIcon = $gridElement.find('th[data-col-field="' +
|
|
1183
|
-
if (
|
|
1188
|
+
const $sortIcon = $gridElement.find('th[data-col-field="' + get(widgetState, 'sort.field') + '"] .sort-icon');
|
|
1189
|
+
if (get(widgetState, 'sort.direction') === 'asc' && $sortIcon.length) {
|
|
1184
1190
|
$sortIcon.addClass('asc wi wi-long-arrow-up');
|
|
1185
1191
|
}
|
|
1186
|
-
else if (
|
|
1192
|
+
else if (get(widgetState, 'sort.direction') === 'desc' && $sortIcon.length) {
|
|
1187
1193
|
$sortIcon.addClass('desc wi wi-long-arrow-down');
|
|
1188
1194
|
}
|
|
1189
1195
|
}
|
|
1190
1196
|
searchStateHandler(widgetState) {
|
|
1191
|
-
if (
|
|
1192
|
-
|
|
1197
|
+
if (isArray(widgetState.search)) {
|
|
1198
|
+
forEach(widgetState.search, (filterObj) => {
|
|
1193
1199
|
if (this.rowFilter[filterObj.field]) {
|
|
1194
1200
|
this.rowFilter[filterObj.field].value = filterObj.value;
|
|
1195
1201
|
this.rowFilter[filterObj.field].matchMode = filterObj.matchMode;
|
|
@@ -1216,11 +1222,11 @@ class TableComponent extends StylableComponent {
|
|
|
1216
1222
|
}
|
|
1217
1223
|
// Compares the prevFilterCriteria Rules with the new rules
|
|
1218
1224
|
compareFilterExpressions(prevFilters, newFilters) {
|
|
1219
|
-
return !!((prevFilters.length === newFilters.length) && (
|
|
1225
|
+
return !!((prevFilters.length === newFilters.length) && (isEqual(prevFilters, newFilters)));
|
|
1220
1226
|
}
|
|
1221
1227
|
// Set the table lastActionPerformed to Filter Criteria and maintain the prevFilterExpression
|
|
1222
1228
|
setLastActionToFilterCriteria() {
|
|
1223
|
-
this.prevFilterExpression =
|
|
1229
|
+
this.prevFilterExpression = get(this.datasource, 'filterExpressions.rules') ? getClonedObject(this.datasource.filterExpressions.rules) : getClonedObject([].concat(this.datasource.dataBinding));
|
|
1224
1230
|
this.gridOptions.setLastActionPerformed(this.gridOptions.ACTIONS.FILTER_CRITERIA);
|
|
1225
1231
|
this.gridOptions.setIsSearchTrigerred(true);
|
|
1226
1232
|
}
|
|
@@ -1234,8 +1240,8 @@ class TableComponent extends StylableComponent {
|
|
|
1234
1240
|
}
|
|
1235
1241
|
// Update the lastActionPerformed to Filter_Criteria, when there is change in the Variable filter criteria rules
|
|
1236
1242
|
checkIfVarFiltersApplied() {
|
|
1237
|
-
if (!
|
|
1238
|
-
const currentFilterExpr =
|
|
1243
|
+
if (!isEmpty(get(this.datasource, 'filterExpressions.rules')) || !isEmpty(get(this.datasource, 'dataBinding'))) {
|
|
1244
|
+
const currentFilterExpr = get(this.datasource, 'filterExpressions.rules') ? this.datasource.filterExpressions.rules : [].concat(this.datasource.dataBinding);
|
|
1239
1245
|
const isEqual = this.compareFilterExpressions(this.prevFilterExpression, currentFilterExpr);
|
|
1240
1246
|
if (!isEqual) {
|
|
1241
1247
|
this.setLastActionToFilterCriteria();
|
|
@@ -1249,29 +1255,29 @@ class TableComponent extends StylableComponent {
|
|
|
1249
1255
|
this.checkIfVarFiltersApplied();
|
|
1250
1256
|
}
|
|
1251
1257
|
// State handling for static variables
|
|
1252
|
-
if (
|
|
1258
|
+
if (get(this.datasource, 'category') === 'wm.Variable' && this._pageLoad && this.getConfiguredState() !== 'none') {
|
|
1253
1259
|
const widgetState = this.statePersistence.getWidgetState(this);
|
|
1254
1260
|
this._pageLoad = false;
|
|
1255
|
-
if (
|
|
1261
|
+
if (get(widgetState, 'selectedItem')) {
|
|
1256
1262
|
this._selectedItemsExist = true;
|
|
1257
1263
|
}
|
|
1258
1264
|
else {
|
|
1259
1265
|
this.setDataGridOption('selectFirstRow', this.gridfirstrowselect);
|
|
1260
1266
|
}
|
|
1261
|
-
if (
|
|
1267
|
+
if (get(widgetState, 'search')) {
|
|
1262
1268
|
this.searchStateHandler(widgetState);
|
|
1263
1269
|
this.searchSortHandler(widgetState.search, undefined, 'search', true);
|
|
1264
1270
|
}
|
|
1265
|
-
if (
|
|
1271
|
+
if (get(widgetState, 'sort')) {
|
|
1266
1272
|
this.searchSortHandler(widgetState.sort, undefined, 'sort', true);
|
|
1267
1273
|
this.sortStateHandler(widgetState);
|
|
1268
1274
|
}
|
|
1269
|
-
if (
|
|
1275
|
+
if (get(widgetState, 'pagination')) {
|
|
1270
1276
|
this.dataNavigator.pageChanged({ page: widgetState.pagination }, true);
|
|
1271
1277
|
}
|
|
1272
1278
|
}
|
|
1273
1279
|
// After the setting the watch on navigator, dataset is triggered with undefined. In this case, return here.
|
|
1274
|
-
if (this.dataNavigatorWatched &&
|
|
1280
|
+
if (this.dataNavigatorWatched && isUndefined(newVal) && this.__fullData) {
|
|
1275
1281
|
return;
|
|
1276
1282
|
}
|
|
1277
1283
|
// If variable is in loading state, show loading icon
|
|
@@ -1305,7 +1311,7 @@ class TableComponent extends StylableComponent {
|
|
|
1305
1311
|
else {
|
|
1306
1312
|
this.resetPageNavigation();
|
|
1307
1313
|
// If the dataset is undefined or empty or table is bound to static variable then set variableInflight to false inorder to update the status
|
|
1308
|
-
if (newVal === '' || newVal === undefined ||
|
|
1314
|
+
if (newVal === '' || newVal === undefined || get(this.datasource, 'category') === 'wm.Variable') {
|
|
1309
1315
|
this.variableInflight = false;
|
|
1310
1316
|
}
|
|
1311
1317
|
/*for run mode, disabling the loader and showing no data found message if dataset is not valid*/
|
|
@@ -1317,7 +1323,8 @@ class TableComponent extends StylableComponent {
|
|
|
1317
1323
|
if (!this.isNavigationEnabled() && newVal) {
|
|
1318
1324
|
this.checkFiltersApplied(this.getSortExpr());
|
|
1319
1325
|
}
|
|
1320
|
-
|
|
1326
|
+
// @ts-ignore
|
|
1327
|
+
if (!isObject(newVal) || newVal === '' || (newVal && newVal.dataValue === '')) {
|
|
1321
1328
|
if (!this.variableInflight) {
|
|
1322
1329
|
// If variable has finished loading and resultSet is empty, ender empty data
|
|
1323
1330
|
this.setGridData([]);
|
|
@@ -1340,7 +1347,7 @@ class TableComponent extends StylableComponent {
|
|
|
1340
1347
|
}
|
|
1341
1348
|
addRowIndex(row) {
|
|
1342
1349
|
const rowData = getClonedObject(row);
|
|
1343
|
-
const rowIndex =
|
|
1350
|
+
const rowIndex = indexOf(this.gridOptions.data, row);
|
|
1344
1351
|
if (rowIndex < 0) {
|
|
1345
1352
|
return row;
|
|
1346
1353
|
}
|
|
@@ -1366,7 +1373,7 @@ class TableComponent extends StylableComponent {
|
|
|
1366
1373
|
getClonedRowObject(rowData) {
|
|
1367
1374
|
const row = getClonedObject(rowData);
|
|
1368
1375
|
row.getProperty = field => {
|
|
1369
|
-
return
|
|
1376
|
+
return get(row, field);
|
|
1370
1377
|
};
|
|
1371
1378
|
row.$isFirst = row.$index === 1;
|
|
1372
1379
|
row.$isLast = this.gridData.length === row.$index;
|
|
@@ -1382,7 +1389,7 @@ class TableComponent extends StylableComponent {
|
|
|
1382
1389
|
}
|
|
1383
1390
|
else {
|
|
1384
1391
|
// If grid is in edit mode or grid has data, dont show the no data message
|
|
1385
|
-
if (!this.isGridEditMode &&
|
|
1392
|
+
if (!this.isGridEditMode && isEmpty(this.dataset)) {
|
|
1386
1393
|
this.callDataGridMethod('setStatus', 'nodata', this.nodatamessage);
|
|
1387
1394
|
}
|
|
1388
1395
|
else {
|
|
@@ -1401,7 +1408,7 @@ class TableComponent extends StylableComponent {
|
|
|
1401
1408
|
}
|
|
1402
1409
|
clearForm(newRow) {
|
|
1403
1410
|
const ctrls = this.ngform.controls;
|
|
1404
|
-
|
|
1411
|
+
keys(this.ngform.controls).forEach(key => {
|
|
1405
1412
|
// If new row, clear the controls in the new row. Else, clear the controls in edit row
|
|
1406
1413
|
if (!key.endsWith('_filter') && ((key.endsWith('_new') && newRow) || (!key.endsWith('_new') && !newRow))) {
|
|
1407
1414
|
ctrls[key].setValue('');
|
|
@@ -1453,7 +1460,7 @@ class TableComponent extends StylableComponent {
|
|
|
1453
1460
|
const data = this.filternullrecords ? this.removeEmptyRecords(serverData) : serverData;
|
|
1454
1461
|
// fix for [WMS-24012] set variableinflight flag to false for static variables
|
|
1455
1462
|
// If the table is bound to some widget and not bound to any variable (ex: Table1.selectedItem) then set variableInflight to false
|
|
1456
|
-
if (
|
|
1463
|
+
if (get(this.datasource, 'category') === 'wm.Variable' || get(this.datasource, 'category') === undefined) {
|
|
1457
1464
|
this.variableInflight = false;
|
|
1458
1465
|
}
|
|
1459
1466
|
if (!this.variableInflight) {
|
|
@@ -1471,7 +1478,7 @@ class TableComponent extends StylableComponent {
|
|
|
1471
1478
|
return;
|
|
1472
1479
|
}
|
|
1473
1480
|
const option = {};
|
|
1474
|
-
if (isDefined && (!
|
|
1481
|
+
if (isDefined && (!isEqual(newVal, this.gridOptions[optionName]) || forceSet)) {
|
|
1475
1482
|
option[optionName] = newVal;
|
|
1476
1483
|
this.datagridElement.datatable('option', option);
|
|
1477
1484
|
this.gridOptions[optionName] = newVal;
|
|
@@ -1495,13 +1502,13 @@ class TableComponent extends StylableComponent {
|
|
|
1495
1502
|
if (!this.fieldDefs.length) {
|
|
1496
1503
|
return;
|
|
1497
1504
|
}
|
|
1498
|
-
rowActionCol =
|
|
1499
|
-
|
|
1500
|
-
|
|
1505
|
+
rowActionCol = find(this.fullFieldDefs, { 'field': ROW_OPS_FIELD, type: 'custom' }); // Check if column is fetched from markup
|
|
1506
|
+
remove(this.fieldDefs, { type: 'custom', field: ROW_OPS_FIELD }); // Removing operations column
|
|
1507
|
+
remove(this.headerConfig, { field: rowOperationsColumn.field });
|
|
1501
1508
|
/*Add the column for row operations only if at-least one operation has been enabled.*/
|
|
1502
1509
|
if (this.rowActions.length) {
|
|
1503
1510
|
if (rowActionCol) { // If column is present in markup, push the column or push the default column
|
|
1504
|
-
insertPosition = rowActionCol.rowactionsposition ?
|
|
1511
|
+
insertPosition = rowActionCol.rowactionsposition ? toNumber(rowActionCol.rowactionsposition) : this.fieldDefs.length;
|
|
1505
1512
|
this.fieldDefs.splice(insertPosition, 0, rowActionCol);
|
|
1506
1513
|
if (insertPosition === 0) {
|
|
1507
1514
|
this.headerConfig.unshift(config);
|
|
@@ -1530,15 +1537,15 @@ class TableComponent extends StylableComponent {
|
|
|
1530
1537
|
if (isDefined(newVal)) {
|
|
1531
1538
|
// Watch will not be triggered if dataset and new value are equal. So trigger the property change handler manually
|
|
1532
1539
|
// This happens in case, if dataset is directly updated.
|
|
1533
|
-
if (
|
|
1540
|
+
if (isEqual(this.dataset, newVal)) {
|
|
1534
1541
|
this.watchVariableDataSet(newVal);
|
|
1535
1542
|
}
|
|
1536
1543
|
else {
|
|
1537
|
-
if (
|
|
1544
|
+
if (isArray(newVal)) {
|
|
1538
1545
|
this.widget.dataset = [].concat(newVal);
|
|
1539
1546
|
}
|
|
1540
|
-
else if (
|
|
1541
|
-
this.widget.dataset =
|
|
1547
|
+
else if (isObject(newVal)) {
|
|
1548
|
+
this.widget.dataset = extend({}, newVal);
|
|
1542
1549
|
}
|
|
1543
1550
|
else {
|
|
1544
1551
|
this.widget.dataset = newVal;
|
|
@@ -1618,7 +1625,7 @@ class TableComponent extends StylableComponent {
|
|
|
1618
1625
|
if (this.getConfiguredState() !== 'none' && this._selectedItemsExist && serviceData.length) {
|
|
1619
1626
|
const widgetState = this.statePersistence.getWidgetState(this);
|
|
1620
1627
|
let currentPageItems;
|
|
1621
|
-
if (
|
|
1628
|
+
if (get(widgetState, 'selectedItem')) {
|
|
1622
1629
|
currentPageItems = widgetState.selectedItem.filter(val => {
|
|
1623
1630
|
return val.page === this.dataNavigator.dn.currentPage;
|
|
1624
1631
|
});
|
|
@@ -1626,7 +1633,7 @@ class TableComponent extends StylableComponent {
|
|
|
1626
1633
|
// if an item is already selected, don't trigger onSelect event for it again
|
|
1627
1634
|
if (currentPageItems.length && this.selecteditem.length !== widgetState.selectedItem.length) {
|
|
1628
1635
|
// don't reassign this.selecteditem if selected items already exist.
|
|
1629
|
-
if (
|
|
1636
|
+
if (isArray(this.selecteditem)) {
|
|
1630
1637
|
currentPageItems.forEach((item) => {
|
|
1631
1638
|
this.selectItem(item.index, undefined);
|
|
1632
1639
|
});
|
|
@@ -1643,15 +1650,15 @@ class TableComponent extends StylableComponent {
|
|
|
1643
1650
|
this.fieldDefs = []; // empty the form fields
|
|
1644
1651
|
// empty the filter field template refs.
|
|
1645
1652
|
this.filterTmpl._results = [];
|
|
1646
|
-
if (
|
|
1653
|
+
if (isEmpty(columns)) {
|
|
1647
1654
|
return;
|
|
1648
1655
|
}
|
|
1649
1656
|
let tmpl = '';
|
|
1650
1657
|
columns.forEach(col => {
|
|
1651
1658
|
let attrsTmpl = '';
|
|
1652
1659
|
let customTmpl = '';
|
|
1653
|
-
|
|
1654
|
-
if (!
|
|
1660
|
+
forEach(col, (val, key) => {
|
|
1661
|
+
if (!isUndefined(val) && val !== '') {
|
|
1655
1662
|
// If custom expression is present, keep it inside table column. Else, keep as attribute
|
|
1656
1663
|
if (key === 'customExpression') {
|
|
1657
1664
|
customTmpl = val;
|
|
@@ -1690,7 +1697,7 @@ class TableComponent extends StylableComponent {
|
|
|
1690
1697
|
/*call utility function to prepare fieldDefs for grid against given data (A MAX OF 10 COLUMNS ONLY)*/
|
|
1691
1698
|
defaultFieldDefs = prepareFieldDefs(properties);
|
|
1692
1699
|
/*append additional properties*/
|
|
1693
|
-
|
|
1700
|
+
forEach(defaultFieldDefs, columnDef => {
|
|
1694
1701
|
columnDef.binding = columnDef.field;
|
|
1695
1702
|
columnDef.caption = columnDef.displayName;
|
|
1696
1703
|
columnDef.pcDisplay = true;
|
|
@@ -1712,7 +1719,7 @@ class TableComponent extends StylableComponent {
|
|
|
1712
1719
|
this.invokeEventCallback('beforedatarender', { $data: data, $columns: this.columns, data: data, columns: this.columns });
|
|
1713
1720
|
defaultFieldDefs = [];
|
|
1714
1721
|
// Apply the changes made by the user
|
|
1715
|
-
|
|
1722
|
+
forEach(this.columns, val => {
|
|
1716
1723
|
defaultFieldDefs.push(val);
|
|
1717
1724
|
});
|
|
1718
1725
|
this.generateDynamicColumns(defaultFieldDefs);
|
|
@@ -1722,11 +1729,11 @@ class TableComponent extends StylableComponent {
|
|
|
1722
1729
|
/* check whether data is valid or not */
|
|
1723
1730
|
const dataValid = data && !data.error;
|
|
1724
1731
|
/*if the data is type json object, make it an array of the object*/
|
|
1725
|
-
if (dataValid && !
|
|
1732
|
+
if (dataValid && !isArray(data)) {
|
|
1726
1733
|
data = [data];
|
|
1727
1734
|
}
|
|
1728
1735
|
/* if the data is empty, show nodatamessage */
|
|
1729
|
-
if (
|
|
1736
|
+
if (isEmpty(data)) {
|
|
1730
1737
|
this.setGridData(data);
|
|
1731
1738
|
return;
|
|
1732
1739
|
}
|
|
@@ -1743,7 +1750,7 @@ class TableComponent extends StylableComponent {
|
|
|
1743
1750
|
let pagingOptions;
|
|
1744
1751
|
if (this.datasource && this.datasource.execute(DataSource.Operation.IS_PAGEABLE)) {
|
|
1745
1752
|
pagingOptions = this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS);
|
|
1746
|
-
sortExp =
|
|
1753
|
+
sortExp = isEmpty(pagingOptions) ? '' : getOrderByExpr(pagingOptions.sort);
|
|
1747
1754
|
}
|
|
1748
1755
|
return sortExp || '';
|
|
1749
1756
|
}
|
|
@@ -1769,7 +1776,7 @@ class TableComponent extends StylableComponent {
|
|
|
1769
1776
|
}
|
|
1770
1777
|
// if table is inside list then table dataset will be set as "item.XXX" and there is no datasource.
|
|
1771
1778
|
// So extracting datasource from the datset bound expression.
|
|
1772
|
-
if (this.parentList && !this.datasource &&
|
|
1779
|
+
if (this.parentList && !this.datasource && startsWith(this.binddataset, 'item')) {
|
|
1773
1780
|
this.datasource = getDatasourceFromExpr(this.widget.$attrs.get('datasetboundexpr'), this);
|
|
1774
1781
|
}
|
|
1775
1782
|
if (this.gridOptions.isNavTypeScrollOrOndemand()) {
|
|
@@ -1786,7 +1793,7 @@ class TableComponent extends StylableComponent {
|
|
|
1786
1793
|
}
|
|
1787
1794
|
// for Static Variables with Retain State enabled, prevent Table from rendering more than once
|
|
1788
1795
|
// Fix for [WMS-25284]: Render table that is inside list widget and bound to static Variable
|
|
1789
|
-
if (!(
|
|
1796
|
+
if (!(get(this.datasource, 'category') === 'wm.Variable' && this._pageLoad && this.getConfiguredState() !== 'none') || (this.parentList && startsWith(this.binddataset, 'item'))) {
|
|
1790
1797
|
this.watchVariableDataSet(nv);
|
|
1791
1798
|
}
|
|
1792
1799
|
break;
|
|
@@ -1837,7 +1844,7 @@ class TableComponent extends StylableComponent {
|
|
|
1837
1844
|
this.exportOptions = [];
|
|
1838
1845
|
if (nv) {
|
|
1839
1846
|
// Populate options for export drop down menu
|
|
1840
|
-
|
|
1847
|
+
forEach(split(nv, ','), type => {
|
|
1841
1848
|
this.exportOptions.push({
|
|
1842
1849
|
label: type,
|
|
1843
1850
|
icon: exportIconMapping[type]
|
|
@@ -1847,7 +1854,7 @@ class TableComponent extends StylableComponent {
|
|
|
1847
1854
|
break;
|
|
1848
1855
|
case 'shownewrow':
|
|
1849
1856
|
// Enable new row if shownew is true or addNewRow buton is present
|
|
1850
|
-
enableNewRow = nv ||
|
|
1857
|
+
enableNewRow = nv || some(this.actions, act => includes(act.action, 'addNewRow()'));
|
|
1851
1858
|
this.callDataGridMethod('option', 'actionsEnabled.new', enableNewRow);
|
|
1852
1859
|
break;
|
|
1853
1860
|
case 'pagesize':
|
|
@@ -1902,11 +1909,11 @@ class TableComponent extends StylableComponent {
|
|
|
1902
1909
|
populateActions() {
|
|
1903
1910
|
this._actions.header = [];
|
|
1904
1911
|
this._actions.footer = [];
|
|
1905
|
-
|
|
1906
|
-
if (
|
|
1912
|
+
forEach(this.actions, (action) => {
|
|
1913
|
+
if (includes(action.position, 'header')) {
|
|
1907
1914
|
this._actions.header.push(action);
|
|
1908
1915
|
}
|
|
1909
|
-
if (
|
|
1916
|
+
if (includes(action.position, 'footer')) {
|
|
1910
1917
|
this._actions.footer.push(action);
|
|
1911
1918
|
}
|
|
1912
1919
|
});
|
|
@@ -1975,9 +1982,9 @@ class TableComponent extends StylableComponent {
|
|
|
1975
1982
|
if (data) {
|
|
1976
1983
|
this.serverData = data;
|
|
1977
1984
|
}
|
|
1978
|
-
if (
|
|
1979
|
-
item =
|
|
1980
|
-
return
|
|
1985
|
+
if (isObject(item)) {
|
|
1986
|
+
item = omitBy(item, (value) => {
|
|
1987
|
+
return isArray(value) && isEmpty(value);
|
|
1981
1988
|
});
|
|
1982
1989
|
}
|
|
1983
1990
|
this.callDataGridMethod('selectRow', item, true);
|
|
@@ -1992,7 +1999,7 @@ class TableComponent extends StylableComponent {
|
|
|
1992
1999
|
this.checkFiltersApplied(this.getSortExpr());
|
|
1993
2000
|
if (this._isClientSearch) {
|
|
1994
2001
|
data = getClonedObject(this.__fullData);
|
|
1995
|
-
if (
|
|
2002
|
+
if (isObject(data) && !isArray(data)) {
|
|
1996
2003
|
data = [data];
|
|
1997
2004
|
}
|
|
1998
2005
|
data = this.getSearchResult(data, this.filterInfo);
|
|
@@ -2008,7 +2015,7 @@ class TableComponent extends StylableComponent {
|
|
|
2008
2015
|
}
|
|
2009
2016
|
export($item) {
|
|
2010
2017
|
let filterFields;
|
|
2011
|
-
const sortOptions =
|
|
2018
|
+
const sortOptions = isEmpty(this.sortInfo) ? '' : this.sortInfo.field + ' ' + this.sortInfo.direction;
|
|
2012
2019
|
const columns = {};
|
|
2013
2020
|
let isValid;
|
|
2014
2021
|
let requestData;
|
|
@@ -2044,7 +2051,7 @@ class TableComponent extends StylableComponent {
|
|
|
2044
2051
|
if (isValid === false) {
|
|
2045
2052
|
return;
|
|
2046
2053
|
}
|
|
2047
|
-
requestData.fields =
|
|
2054
|
+
requestData.fields = values(requestData.columns);
|
|
2048
2055
|
this.datasource.execute(DataSource.Operation.DOWNLOAD, { data: requestData });
|
|
2049
2056
|
}
|
|
2050
2057
|
expandRow(rowId) {
|
|
@@ -2105,7 +2112,7 @@ class TableComponent extends StylableComponent {
|
|
|
2105
2112
|
}
|
|
2106
2113
|
ngOnDetach() {
|
|
2107
2114
|
super.ngOnDetach();
|
|
2108
|
-
if (
|
|
2115
|
+
if (get(this.datasource, 'category') === 'wm.Variable' && this.getConfiguredState() !== 'none') {
|
|
2109
2116
|
this._pageLoad = false;
|
|
2110
2117
|
}
|
|
2111
2118
|
else {
|
|
@@ -2258,7 +2265,7 @@ class TableComponent extends StylableComponent {
|
|
|
2258
2265
|
type: HostListener,
|
|
2259
2266
|
args: ['keypress', ['$event']]
|
|
2260
2267
|
}] }); })();
|
|
2261
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent", filePath: "table.component.ts", lineNumber:
|
|
2268
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent", filePath: "table.component.ts", lineNumber: 122 }); })();
|
|
2262
2269
|
|
|
2263
2270
|
const OPERATION = {
|
|
2264
2271
|
'NEW': 'new',
|
|
@@ -2380,23 +2387,23 @@ class TableCUDDirective {
|
|
|
2380
2387
|
generatePath(binddataset) {
|
|
2381
2388
|
let path, index;
|
|
2382
2389
|
let dataBoundExpr = this.table.widget.$attrs.get('datasetboundexpr');
|
|
2383
|
-
if (
|
|
2384
|
-
if (
|
|
2390
|
+
if (startsWith(binddataset, 'item') && dataBoundExpr) {
|
|
2391
|
+
if (startsWith(dataBoundExpr, 'Widgets.')) {
|
|
2385
2392
|
dataBoundExpr = extractCurrentItemExpr(dataBoundExpr, this.table);
|
|
2386
2393
|
}
|
|
2387
2394
|
const parentListItems = this.table.$element.parents('.app-list-item');
|
|
2388
|
-
const indexArr =
|
|
2395
|
+
const indexArr = map(parentListItems, (item) => parseInt$1($(item).attr('listitemindex')));
|
|
2389
2396
|
for (let i = indexArr.length - 1; i >= 0; i--) {
|
|
2390
2397
|
dataBoundExpr = dataBoundExpr.replace('$i', indexArr[i]);
|
|
2391
2398
|
}
|
|
2392
|
-
index =
|
|
2399
|
+
index = last(indexArr);
|
|
2393
2400
|
path = dataBoundExpr.replace(/^Variables\..*\.dataSet([^.])*(\.|$)/g, '');
|
|
2394
2401
|
}
|
|
2395
2402
|
else {
|
|
2396
2403
|
// if we have dataset as "Variables.staticVar1.dataSet[1].details" then pass index as 1.
|
|
2397
2404
|
const regEx = /^Variables\..*\.dataSet([\[][0-9]])/g;
|
|
2398
2405
|
if (regEx.test(binddataset)) {
|
|
2399
|
-
index =
|
|
2406
|
+
index = parseInt$1(binddataset.replace(/^Variables\..*\.dataSet([\[])/g, ''));
|
|
2400
2407
|
}
|
|
2401
2408
|
path = binddataset.replace(/^Variables\..*\.dataSet([^.])*(\.|$)/g, '');
|
|
2402
2409
|
}
|
|
@@ -2737,12 +2744,12 @@ const getSearchValue = (value, type) => {
|
|
|
2737
2744
|
return undefined;
|
|
2738
2745
|
}
|
|
2739
2746
|
if (isNumberType(type)) {
|
|
2740
|
-
return
|
|
2747
|
+
return toNumber(value);
|
|
2741
2748
|
}
|
|
2742
2749
|
if (type === DataType.DATETIME) {
|
|
2743
2750
|
return moment(value).valueOf();
|
|
2744
2751
|
}
|
|
2745
|
-
return
|
|
2752
|
+
return toString(value).toLowerCase();
|
|
2746
2753
|
};
|
|
2747
2754
|
// Filter the data based on the search value and conditions
|
|
2748
2755
|
const getFilteredData = (data, searchObj, visibleCols = []) => {
|
|
@@ -2751,26 +2758,27 @@ const getFilteredData = (data, searchObj, visibleCols = []) => {
|
|
|
2751
2758
|
// Return whole data if
|
|
2752
2759
|
// - search value is undefined and matchmode is not an empty matchmode type
|
|
2753
2760
|
// - search value is null and datatype is number. Null can not be compared with numeric values[WMS-19275].
|
|
2754
|
-
if ((!isDefined(searchVal) && !
|
|
2761
|
+
if ((!isDefined(searchVal) && !includes(emptyMatchModes, searchObj.matchMode)) || (isNumberType(searchObj.type) && isNull(searchObj.value))) {
|
|
2755
2762
|
return data;
|
|
2756
2763
|
}
|
|
2757
2764
|
data = data.filter((obj) => {
|
|
2758
2765
|
let isExists;
|
|
2759
2766
|
if (searchObj.field) {
|
|
2760
|
-
currentVal = getSearchValue(
|
|
2767
|
+
currentVal = getSearchValue(get(obj, searchObj.field), searchObj.type);
|
|
2761
2768
|
}
|
|
2762
2769
|
else {
|
|
2763
2770
|
currentVal = [];
|
|
2764
|
-
|
|
2765
|
-
if ((
|
|
2771
|
+
forEach(obj, (val, key) => {
|
|
2772
|
+
if ((includes(visibleCols, key))) {
|
|
2766
2773
|
currentVal.push(val);
|
|
2767
2774
|
}
|
|
2768
2775
|
else {
|
|
2769
2776
|
// WMS-22271 If the key is in nested key format (dot format)
|
|
2770
2777
|
// Find all the indexes of the key in visiblecols and extract their values from obj
|
|
2771
|
-
const colIndex =
|
|
2772
|
-
|
|
2773
|
-
|
|
2778
|
+
const colIndex = filter(range(visibleCols.length), (i) => visibleCols[i].includes(key));
|
|
2779
|
+
forEach(colIndex, (index) => {
|
|
2780
|
+
// @ts-ignore
|
|
2781
|
+
const value = get(obj, visibleCols[index]);
|
|
2774
2782
|
if (currentVal.indexOf(value) < 0) {
|
|
2775
2783
|
currentVal.push(value);
|
|
2776
2784
|
}
|
|
@@ -2781,31 +2789,31 @@ const getFilteredData = (data, searchObj, visibleCols = []) => {
|
|
|
2781
2789
|
}
|
|
2782
2790
|
switch (searchObj.matchMode) {
|
|
2783
2791
|
case 'start':
|
|
2784
|
-
isExists =
|
|
2792
|
+
isExists = startsWith(currentVal, searchVal);
|
|
2785
2793
|
break;
|
|
2786
2794
|
case 'end':
|
|
2787
|
-
isExists =
|
|
2795
|
+
isExists = endsWith(currentVal, searchVal);
|
|
2788
2796
|
break;
|
|
2789
2797
|
case 'exact':
|
|
2790
|
-
isExists =
|
|
2798
|
+
isExists = isEqual(currentVal, searchVal);
|
|
2791
2799
|
break;
|
|
2792
2800
|
case 'notequals':
|
|
2793
|
-
isExists = !
|
|
2801
|
+
isExists = !isEqual(currentVal, searchVal);
|
|
2794
2802
|
break;
|
|
2795
2803
|
case 'null':
|
|
2796
|
-
isExists =
|
|
2804
|
+
isExists = isNull(currentVal);
|
|
2797
2805
|
break;
|
|
2798
2806
|
case 'isnotnull':
|
|
2799
|
-
isExists = !
|
|
2807
|
+
isExists = !isNull(currentVal);
|
|
2800
2808
|
break;
|
|
2801
2809
|
case 'empty':
|
|
2802
|
-
isExists =
|
|
2810
|
+
isExists = isEmpty(currentVal);
|
|
2803
2811
|
break;
|
|
2804
2812
|
case 'isnotempty':
|
|
2805
|
-
isExists = !
|
|
2813
|
+
isExists = !isEmpty(currentVal);
|
|
2806
2814
|
break;
|
|
2807
2815
|
case 'nullorempty':
|
|
2808
|
-
isExists =
|
|
2816
|
+
isExists = isNull(currentVal) || isEmpty(currentVal);
|
|
2809
2817
|
break;
|
|
2810
2818
|
case 'lessthan':
|
|
2811
2819
|
isExists = currentVal < searchVal;
|
|
@@ -2820,7 +2828,7 @@ const getFilteredData = (data, searchObj, visibleCols = []) => {
|
|
|
2820
2828
|
isExists = currentVal >= searchVal;
|
|
2821
2829
|
break;
|
|
2822
2830
|
default:
|
|
2823
|
-
isExists = isNumberType(searchObj.type) ?
|
|
2831
|
+
isExists = isNumberType(searchObj.type) ? isEqual(currentVal, searchVal) : includes(currentVal, searchVal);
|
|
2824
2832
|
break;
|
|
2825
2833
|
}
|
|
2826
2834
|
return isExists;
|
|
@@ -2905,13 +2913,13 @@ class TableFilterSortDirective {
|
|
|
2905
2913
|
// Get first or last page based on sort info of primary key
|
|
2906
2914
|
getNavigationTargetBySortInfo() {
|
|
2907
2915
|
return this.table.sortInfo && this.table.sortInfo.direction === 'desc' &&
|
|
2908
|
-
|
|
2916
|
+
includes(this.table.primaryKey, this.table.sortInfo.field) ? 'first' : 'last';
|
|
2909
2917
|
}
|
|
2910
2918
|
// Returns all the columns of the table wherein, showinfilter is set to true
|
|
2911
2919
|
getTableVisibleCols() {
|
|
2912
2920
|
const visibleCols = [];
|
|
2913
|
-
|
|
2914
|
-
if (
|
|
2921
|
+
forEach(this.table.columns, (val, col) => {
|
|
2922
|
+
if (toLower(toString(val.showinfilter)) === 'true' && col !== 'rowOperations' && val.searchable) {
|
|
2915
2923
|
visibleCols.push(col);
|
|
2916
2924
|
}
|
|
2917
2925
|
});
|
|
@@ -2922,7 +2930,7 @@ class TableFilterSortDirective {
|
|
|
2922
2930
|
if (searchObj.field) {
|
|
2923
2931
|
setFilterFields(filterFields, searchObj);
|
|
2924
2932
|
}
|
|
2925
|
-
else if (!
|
|
2933
|
+
else if (!isEmpty(searchObj)) {
|
|
2926
2934
|
const visibleCols = this.getTableVisibleCols();
|
|
2927
2935
|
setFilterFields(filterFields, searchObj, visibleCols);
|
|
2928
2936
|
}
|
|
@@ -2931,8 +2939,8 @@ class TableFilterSortDirective {
|
|
|
2931
2939
|
getFilterFields(searchObj) {
|
|
2932
2940
|
searchObj = searchObj || {};
|
|
2933
2941
|
const filterFields = {};
|
|
2934
|
-
if (
|
|
2935
|
-
|
|
2942
|
+
if (isArray(searchObj)) {
|
|
2943
|
+
forEach(searchObj, obj => {
|
|
2936
2944
|
this.invokeSetFilterfieldBasedOnFieldval(obj, filterFields);
|
|
2937
2945
|
});
|
|
2938
2946
|
}
|
|
@@ -2953,11 +2961,11 @@ class TableFilterSortDirective {
|
|
|
2953
2961
|
// Reset the sort based on sort returned by the call
|
|
2954
2962
|
resetSortStatus(variableSort) {
|
|
2955
2963
|
let gridSortString;
|
|
2956
|
-
if (!
|
|
2964
|
+
if (!isEmpty(this.table.sortInfo) && this.table.datasource) {
|
|
2957
2965
|
gridSortString = this.table.sortInfo.field + ' ' + this.table.sortInfo.direction;
|
|
2958
2966
|
variableSort = this.table.datasource.execute(DataSource.Operation.GET_OPTIONS).orderBy || variableSort;
|
|
2959
2967
|
if (variableSort) { // If multiple order by fields are present, compare with the first one
|
|
2960
|
-
variableSort =
|
|
2968
|
+
variableSort = head(split(variableSort, ','));
|
|
2961
2969
|
}
|
|
2962
2970
|
if (gridSortString !== variableSort) {
|
|
2963
2971
|
this.table.callDataGridMethod('resetSortIcons');
|
|
@@ -2995,7 +3003,7 @@ class TableFilterSortDirective {
|
|
|
2995
3003
|
return;
|
|
2996
3004
|
}
|
|
2997
3005
|
if (this.table.datasource.execute(DataSource.Operation.SUPPORTS_SERVER_FILTER)) {
|
|
2998
|
-
if (
|
|
3006
|
+
if (isEmpty(this.table.datasource.execute(DataSource.Operation.GET_OPTIONS).filterFields)) {
|
|
2999
3007
|
this.clearFilter(true);
|
|
3000
3008
|
}
|
|
3001
3009
|
this.resetSortStatus(variableSort);
|
|
@@ -3011,7 +3019,7 @@ class TableFilterSortDirective {
|
|
|
3011
3019
|
if (!searchObj) {
|
|
3012
3020
|
return data;
|
|
3013
3021
|
}
|
|
3014
|
-
if (
|
|
3022
|
+
if (isArray(searchObj)) {
|
|
3015
3023
|
searchObj.forEach((obj) => {
|
|
3016
3024
|
data = getFilteredData(data, obj, visibleCols);
|
|
3017
3025
|
});
|
|
@@ -3024,7 +3032,7 @@ class TableFilterSortDirective {
|
|
|
3024
3032
|
// Returns data sorted using sortObj
|
|
3025
3033
|
getSortResult(data, sortObj) {
|
|
3026
3034
|
if (sortObj && sortObj.direction) {
|
|
3027
|
-
data =
|
|
3035
|
+
data = orderBy(data, sortObj.field, sortObj.direction);
|
|
3028
3036
|
}
|
|
3029
3037
|
return data;
|
|
3030
3038
|
}
|
|
@@ -3039,7 +3047,7 @@ class TableFilterSortDirective {
|
|
|
3039
3047
|
else {
|
|
3040
3048
|
this.table.sortInfo = searchSortObj;
|
|
3041
3049
|
}
|
|
3042
|
-
if (
|
|
3050
|
+
if (isObject(data) && !isArray(data)) {
|
|
3043
3051
|
data = [data];
|
|
3044
3052
|
}
|
|
3045
3053
|
/*Both the functions return same 'data' if arguments are undefined*/
|
|
@@ -3071,9 +3079,9 @@ class TableFilterSortDirective {
|
|
|
3071
3079
|
this.table.filterInfo = searchObj;
|
|
3072
3080
|
data = this.getSearchResult(data, searchObj);
|
|
3073
3081
|
// Compared the filtered data and original data, to show or hide the rows
|
|
3074
|
-
|
|
3082
|
+
forEach(this.table.gridData, (value, index) => {
|
|
3075
3083
|
const $row = $($rows[index]);
|
|
3076
|
-
if (
|
|
3084
|
+
if (find(data, obj => isEqual(obj, value))) {
|
|
3077
3085
|
$row.show();
|
|
3078
3086
|
}
|
|
3079
3087
|
else {
|
|
@@ -3144,7 +3152,7 @@ class TableFilterSortDirective {
|
|
|
3144
3152
|
}
|
|
3145
3153
|
searchHandler(searchSortObj, e, type, statePersistenceTriggered) {
|
|
3146
3154
|
let obj;
|
|
3147
|
-
if (
|
|
3155
|
+
if (isArray(searchSortObj)) {
|
|
3148
3156
|
obj = searchSortObj.filter(function (searchObject) {
|
|
3149
3157
|
return (searchObject.matchMode !== undefined && searchObject.value !== undefined) || (searchObject.value !== undefined && searchObject.field === '');
|
|
3150
3158
|
});
|
|
@@ -3153,7 +3161,7 @@ class TableFilterSortDirective {
|
|
|
3153
3161
|
obj = { field: searchSortObj.field, value: searchSortObj.value, type: searchSortObj.type };
|
|
3154
3162
|
}
|
|
3155
3163
|
if (this.table.getConfiguredState() !== 'none' && unsupportedStatePersistenceTypes.indexOf(this.table.navigation) < 0) {
|
|
3156
|
-
if ((
|
|
3164
|
+
if ((isArray(searchSortObj) && obj.length) || (searchSortObj.value)) {
|
|
3157
3165
|
this.table.statePersistence.removeWidgetState(this.table, 'search');
|
|
3158
3166
|
this.table.statePersistence.setWidgetState(this.table, { search: obj });
|
|
3159
3167
|
}
|
|
@@ -3176,7 +3184,7 @@ class TableFilterSortDirective {
|
|
|
3176
3184
|
let output;
|
|
3177
3185
|
const userFilters = {};
|
|
3178
3186
|
// Transform filter fields from array to object having field names as keys
|
|
3179
|
-
if (
|
|
3187
|
+
if (isArray(filterFields)) {
|
|
3180
3188
|
filterFields.forEach(filterField => {
|
|
3181
3189
|
transformFilterField(userFilters, filterField);
|
|
3182
3190
|
});
|
|
@@ -3191,9 +3199,9 @@ class TableFilterSortDirective {
|
|
|
3191
3199
|
}
|
|
3192
3200
|
filterFields = [];
|
|
3193
3201
|
// if the field is not selected in search filter dropdown, building the filter fields object
|
|
3194
|
-
if (
|
|
3195
|
-
if (
|
|
3196
|
-
|
|
3202
|
+
if (isEmpty(userFilters) && !isEmpty(obj)) {
|
|
3203
|
+
if (isArray(obj)) {
|
|
3204
|
+
forEach(obj, searchObj => {
|
|
3197
3205
|
addToFilterFields(filterFields, searchObj);
|
|
3198
3206
|
});
|
|
3199
3207
|
}
|
|
@@ -3203,13 +3211,9 @@ class TableFilterSortDirective {
|
|
|
3203
3211
|
}
|
|
3204
3212
|
else {
|
|
3205
3213
|
// Transform back the filter fields from object to array
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
matchMode: val.matchMode,
|
|
3210
|
-
type: val.type,
|
|
3211
|
-
value: val.value
|
|
3212
|
-
});
|
|
3214
|
+
forEach(userFilters, (val, key) => {
|
|
3215
|
+
// @ts-ignore
|
|
3216
|
+
filterFields.push({ field: key, matchMode: val.matchMode, type: val.type, value: val.value });
|
|
3213
3217
|
});
|
|
3214
3218
|
}
|
|
3215
3219
|
if (dataSource && dataSource.execute(DataSource.Operation.SUPPORTS_SERVER_FILTER)) {
|
|
@@ -3287,7 +3291,7 @@ class TableFilterSortDirective {
|
|
|
3287
3291
|
this.table.rowFilter[fieldName] = this.table.rowFilter[fieldName] || {};
|
|
3288
3292
|
this.table.rowFilter[fieldName].matchMode = condition;
|
|
3289
3293
|
// For empty match modes, clear off the value and call filter
|
|
3290
|
-
if (
|
|
3294
|
+
if (includes(this.table.emptyMatchModes, condition)) {
|
|
3291
3295
|
this.table.columns[fieldName].resetFilter();
|
|
3292
3296
|
this.table.onRowFilterChange();
|
|
3293
3297
|
}
|
|
@@ -3310,10 +3314,10 @@ class TableFilterSortDirective {
|
|
|
3310
3314
|
}
|
|
3311
3315
|
const fieldName = filterDef.field;
|
|
3312
3316
|
const formFields = this.table.fullFieldDefs;
|
|
3313
|
-
const filterOnFields =
|
|
3314
|
-
const newVal =
|
|
3317
|
+
const filterOnFields = filter(formFields, { 'filteronfilter': fieldName });
|
|
3318
|
+
const newVal = get(this.table.rowFilter, [fieldName, 'value']);
|
|
3315
3319
|
// Loop over the fields for which the current field is filter on field
|
|
3316
|
-
|
|
3320
|
+
forEach(filterOnFields, filterField => {
|
|
3317
3321
|
const filterOn = filterField.filteronfilter;
|
|
3318
3322
|
const filterKey = filterField.field;
|
|
3319
3323
|
const filterFields = {};
|
|
@@ -3338,13 +3342,13 @@ class TableFilterSortDirective {
|
|
|
3338
3342
|
// This method is triggered on value change in multi column filter
|
|
3339
3343
|
onRowFilterChange(fieldName) {
|
|
3340
3344
|
const searchObj = [];
|
|
3341
|
-
const field =
|
|
3345
|
+
const field = find(this.table.fullFieldDefs, { 'field': fieldName });
|
|
3342
3346
|
// Convert row filters to a search object and call search handler
|
|
3343
|
-
|
|
3344
|
-
if ((isDefined(value.value) && value.value !== '') ||
|
|
3347
|
+
forEach(this.table.rowFilter, (value, key) => {
|
|
3348
|
+
if ((isDefined(value.value) && value.value !== '') || includes(this.table.emptyMatchModes, value.matchMode)) {
|
|
3345
3349
|
if (field && key === field.field) {
|
|
3346
3350
|
value.type = value.type || field.type;
|
|
3347
|
-
value.matchMode = value.matchMode ||
|
|
3351
|
+
value.matchMode = value.matchMode || get(this.table.matchModeTypesMap[value.type], 0);
|
|
3348
3352
|
}
|
|
3349
3353
|
searchObj.push({
|
|
3350
3354
|
field: key,
|
|
@@ -3429,7 +3433,7 @@ class TableActionDirective extends BaseComponent {
|
|
|
3429
3433
|
show: this.show,
|
|
3430
3434
|
class: this.class || '',
|
|
3431
3435
|
iconclass: this.iconclass || '',
|
|
3432
|
-
title:
|
|
3436
|
+
title: isUndefined(this.title) ? (this['display-name'] || '') : this.title,
|
|
3433
3437
|
action: this.action,
|
|
3434
3438
|
accessroles: this.accessroles,
|
|
3435
3439
|
shortcutkey: this.shortcutkey,
|
|
@@ -3691,22 +3695,22 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3691
3695
|
this.observeOnFields = [];
|
|
3692
3696
|
this.aggregate = {
|
|
3693
3697
|
sum: () => {
|
|
3694
|
-
return
|
|
3698
|
+
return sum(this._getColumnData());
|
|
3695
3699
|
},
|
|
3696
3700
|
average: (precision = 2) => {
|
|
3697
|
-
return
|
|
3701
|
+
return round(mean(this._getColumnData()), precision);
|
|
3698
3702
|
},
|
|
3699
3703
|
count: () => {
|
|
3700
3704
|
return this._getColumnData().length;
|
|
3701
3705
|
},
|
|
3702
3706
|
minimum: () => {
|
|
3703
|
-
return
|
|
3707
|
+
return min(this._getColumnData());
|
|
3704
3708
|
},
|
|
3705
3709
|
maximum: () => {
|
|
3706
|
-
return
|
|
3710
|
+
return max(this._getColumnData());
|
|
3707
3711
|
},
|
|
3708
3712
|
percent: (value, precision = 2) => {
|
|
3709
|
-
return
|
|
3713
|
+
return round((sum(this._getColumnData()) / value) * 100, precision);
|
|
3710
3714
|
}
|
|
3711
3715
|
};
|
|
3712
3716
|
this.notifyForFields = [];
|
|
@@ -3963,7 +3967,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3963
3967
|
if (this.relatedEntityName) {
|
|
3964
3968
|
this.widget['is-related'] = true;
|
|
3965
3969
|
this.widget['lookup-type'] = this.relatedEntityName;
|
|
3966
|
-
this.widget['lookup-field'] =
|
|
3970
|
+
this.widget['lookup-field'] = last(split(this.field, '.'));
|
|
3967
3971
|
}
|
|
3968
3972
|
if (this.filterwidget === FormWidgetType.AUTOCOMPLETE) {
|
|
3969
3973
|
this.filterInstance.dataoptions = getDistinctFieldProperties(this.table.datasource, this);
|
|
@@ -3990,11 +3994,11 @@ class TableColumnDirective extends BaseComponent {
|
|
|
3990
3994
|
if (this['related-entity-name'] && this['primary-key']) {
|
|
3991
3995
|
// Fetch the data for the related fields
|
|
3992
3996
|
this.isDataSetBound = true;
|
|
3993
|
-
const bindings =
|
|
3997
|
+
const bindings = split(this.binding, '.');
|
|
3994
3998
|
this.showPendingSpinner = true;
|
|
3995
3999
|
fetchRelatedFieldData(dataSource, this.widget, {
|
|
3996
|
-
relatedField:
|
|
3997
|
-
datafield:
|
|
4000
|
+
relatedField: head(bindings),
|
|
4001
|
+
datafield: last(bindings),
|
|
3998
4002
|
widget: 'edit-widget-type'
|
|
3999
4003
|
});
|
|
4000
4004
|
}
|
|
@@ -4023,7 +4027,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4023
4027
|
this.filterInstance.registerReadyStateListener(() => {
|
|
4024
4028
|
if (isDataSetWidget(this.filterwidget)) {
|
|
4025
4029
|
// if binding is department.deptId then field will be deptId
|
|
4026
|
-
const field =
|
|
4030
|
+
const field = last(this.binding.split('.'));
|
|
4027
4031
|
this.filterInstance.dataset = this._filterDataSet;
|
|
4028
4032
|
this.filterInstance.datafield = this.filterdatafield || field;
|
|
4029
4033
|
this.filterInstance.displayfield = this.filterdisplayfield || field;
|
|
@@ -4040,7 +4044,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4040
4044
|
}
|
|
4041
4045
|
// Notifies all the dependent validation controls incase of any changes
|
|
4042
4046
|
notifyChanges(quickEdit) {
|
|
4043
|
-
|
|
4047
|
+
forEach(this.notifyForFields, field => {
|
|
4044
4048
|
if (quickEdit && this._isNewEditableRow) {
|
|
4045
4049
|
field.fieldValidations_new.validate();
|
|
4046
4050
|
}
|
|
@@ -4051,7 +4055,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4051
4055
|
}
|
|
4052
4056
|
// Watches control for dependent validation changes
|
|
4053
4057
|
observeOn(fields) {
|
|
4054
|
-
this.observeOnFields =
|
|
4058
|
+
this.observeOnFields = cloneDeep(fields);
|
|
4055
4059
|
}
|
|
4056
4060
|
// Sets the default validators inline and quickedit new row using props
|
|
4057
4061
|
setUpValidators() {
|
|
@@ -4062,11 +4066,11 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4062
4066
|
}
|
|
4063
4067
|
// Sets the Async validators on the inline and quickedit new row form control
|
|
4064
4068
|
setAsyncValidators(validators) {
|
|
4065
|
-
this.asyncValidators =
|
|
4069
|
+
this.asyncValidators = cloneDeep(validators);
|
|
4066
4070
|
}
|
|
4067
4071
|
// Sets the default/custom validators on the inline and quickedit new row form control
|
|
4068
4072
|
setValidators(validators) {
|
|
4069
|
-
this.syncValidators =
|
|
4073
|
+
this.syncValidators = cloneDeep(validators);
|
|
4070
4074
|
}
|
|
4071
4075
|
boundFn(fn) {
|
|
4072
4076
|
return fn();
|
|
@@ -4081,7 +4085,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4081
4085
|
this._invokeSummaryRowData(newData);
|
|
4082
4086
|
}
|
|
4083
4087
|
_invokeSummaryRowData(data) {
|
|
4084
|
-
|
|
4088
|
+
forEach(data, (item, index) => {
|
|
4085
4089
|
const content = item;
|
|
4086
4090
|
if (content instanceof Promise) {
|
|
4087
4091
|
content.then(res => {
|
|
@@ -4099,7 +4103,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4099
4103
|
});
|
|
4100
4104
|
}
|
|
4101
4105
|
_getColumnData() {
|
|
4102
|
-
return
|
|
4106
|
+
return map(this.table.dataset, this.binding);
|
|
4103
4107
|
}
|
|
4104
4108
|
/* Summary Row Logic end */
|
|
4105
4109
|
// Set the props on the inline edit widget
|
|
@@ -4149,7 +4153,7 @@ class TableColumnDirective extends BaseComponent {
|
|
|
4149
4153
|
this.limit = this.limit ? +this.limit : undefined;
|
|
4150
4154
|
this.editWidgetType = this['edit-widget-type'] = this['edit-widget-type'] || getEditModeWidget(this);
|
|
4151
4155
|
this.filterOn = this['filter-on'];
|
|
4152
|
-
this.readonly = isDefined(this.getAttr('readonly')) ? this.getAttr('readonly') === 'true' : (this['related-entity-name'] ? !this['primary-key'] :
|
|
4156
|
+
this.readonly = isDefined(this.getAttr('readonly')) ? this.getAttr('readonly') === 'true' : (this['related-entity-name'] ? !this['primary-key'] : includes(['identity', 'uniqueid', 'sequence'], this.generator));
|
|
4153
4157
|
this.filterwidget = this.filterwidget || getDataTableFilterWidget(this.type || 'string');
|
|
4154
4158
|
this.isFilterDataSetBound = !!this.bindfilterdataset;
|
|
4155
4159
|
this.defaultvalue = getDefaultValue(this.defaultvalue, this.type, this.editWidgetType);
|
|
@@ -4380,7 +4384,7 @@ class TableRowActionDirective extends BaseComponent {
|
|
|
4380
4384
|
contexts[0].addNewRow = (evt) => this.table.addNewRow(evt);
|
|
4381
4385
|
}
|
|
4382
4386
|
getTitle() {
|
|
4383
|
-
return
|
|
4387
|
+
return isUndefined(this.title) ? (this['display-name'] || '') : this.title;
|
|
4384
4388
|
}
|
|
4385
4389
|
populateAction() {
|
|
4386
4390
|
this.buttonDef = {
|