@wavemaker-ai/react-runtime 1.0.0-rc.647499 → 1.0.0-rc.647565
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/.npmignore +4 -0
- package/actions/base-action.js +12 -29
- package/actions/login-action.js +35 -52
- package/actions/logout-action.js +21 -38
- package/actions/navigation-action.js +251 -346
- package/actions/notification-action.js +121 -149
- package/actions/timer-action.js +95 -151
- package/actions/toast-provider.js +62 -76
- package/actions/toast.js +95 -91
- package/actions/toast.service.js +59 -79
- package/actions/types/index.js +6 -9
- package/components/advanced/carousel/index.js +358 -366
- package/components/advanced/carousel/props.js +0 -5
- package/components/advanced/carousel/template.js +102 -80
- package/components/advanced/login/index.js +227 -285
- package/components/advanced/login/props.js +0 -5
- package/components/advanced/marquee/index.js +169 -163
- package/components/advanced/marquee/props.js +0 -5
- package/components/basic/anchor/index.js +207 -187
- package/components/basic/anchor/props.js +0 -5
- package/components/basic/audio/index.js +110 -72
- package/components/basic/audio/props.js +0 -5
- package/components/basic/html/index.js +163 -203
- package/components/basic/html/props.js +0 -5
- package/components/basic/html/utils.js +30 -28
- package/components/basic/icon/index.js +98 -84
- package/components/basic/icon/props.js +0 -5
- package/components/basic/iframe/iframe.utils.js +7 -16
- package/components/basic/iframe/index.js +97 -103
- package/components/basic/iframe/props.js +0 -5
- package/components/basic/label/index.js +156 -134
- package/components/basic/label/props.js +0 -5
- package/components/basic/message/index.js +129 -113
- package/components/basic/message/props.js +0 -5
- package/components/basic/picture/index.js +156 -127
- package/components/basic/picture/props.js +0 -5
- package/components/basic/progress-bar/index.js +240 -176
- package/components/basic/progress-bar/props.js +5 -31
- package/components/basic/progress-circle/index.js +166 -183
- package/components/basic/progress-circle/props.js +14 -34
- package/components/basic/richtexteditor/index.js +430 -396
- package/components/basic/richtexteditor/props.js +0 -5
- package/components/basic/search/index.js +812 -931
- package/components/basic/search/props.js +0 -5
- package/components/basic/search/providers.js +233 -380
- package/components/basic/spinner/index.js +210 -200
- package/components/basic/spinner/props.js +4 -22
- package/components/basic/tile/index.js +73 -81
- package/components/basic/tile/props.js +0 -5
- package/components/basic/tree/Components/TreeNodeComponent.js +238 -170
- package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
- package/components/basic/tree/index.js +378 -454
- package/components/basic/tree/props.js +0 -5
- package/components/basic/tree/utils.js +129 -185
- package/components/basic/video/index.js +161 -107
- package/components/basic/video/props.js +0 -5
- package/components/chart/index.js +42 -50
- package/components/chart/props.js +31 -37
- package/components/chart/src/ChartRenderer.js +172 -154
- package/components/chart/src/chart.js +391 -213
- package/components/chart/src/chartStyles.generated.js +6 -14
- package/components/chart/src/chartUtils.js +228 -272
- package/components/chart/src/constants.d.ts +13 -0
- package/components/chart/src/constants.js +316 -90
- package/components/chart/src/d3Setup.js +11 -30
- package/components/chart/src/dataUtils.js +362 -446
- package/components/chart/src/formatUtils.js +47 -38
- package/components/chart/src/index.js +11 -19
- package/components/chart/src/nvd3Source.generated.js +5 -13
- package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
- package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
- package/components/chart/src/types.js +0 -5
- package/components/common/AppSpinner.js +17 -33
- package/components/common/app-spinner.js +11 -22
- package/components/common/customTemplate/index.d.ts +3 -0
- package/components/common/customTemplate/index.js +6 -0
- package/components/common/customTemplate/props.d.ts +20 -0
- package/components/common/customTemplate/props.js +0 -0
- package/components/common/customTemplate/template.d.ts +3 -0
- package/components/common/customTemplate/template.js +27 -0
- package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
- package/components/common/customTemplate/useCustomTemplate.js +17 -0
- package/components/common/customTemplate/utils.d.ts +6 -0
- package/components/common/customTemplate/utils.js +12 -0
- package/components/common/index.js +4 -12
- package/components/constants.js +81 -77
- package/components/container/accordion/accordion-pane/index.js +105 -118
- package/components/container/accordion/accordion-pane/props.js +5 -21
- package/components/container/accordion/index.js +225 -243
- package/components/container/accordion/props.js +5 -16
- package/components/container/index.js +214 -150
- package/components/container/layout-grid/grid-column/index.js +68 -43
- package/components/container/layout-grid/grid-column/props.js +0 -5
- package/components/container/layout-grid/grid-row/index.js +12 -29
- package/components/container/layout-grid/grid-row/props.js +0 -5
- package/components/container/layout-grid/index.js +53 -38
- package/components/container/layout-grid/props.js +0 -5
- package/components/container/linear-layout/index.js +56 -60
- package/components/container/linear-layout/linear-layout-item/index.js +43 -47
- package/components/container/linear-layout/linear-layout-item/props.js +0 -5
- package/components/container/linear-layout/props.js +0 -5
- package/components/container/panel/components/panel-content/index.js +7 -16
- package/components/container/panel/components/panel-header/index.js +166 -146
- package/components/container/panel/components/panel-header/props.js +0 -5
- package/components/container/panel/hooks.js +76 -102
- package/components/container/panel/index.js +289 -252
- package/components/container/panel/props.js +0 -5
- package/components/container/props.js +0 -5
- package/components/container/repeat-template/index.js +65 -44
- package/components/container/repeat-template/props.js +0 -5
- package/components/container/tabs/index.js +517 -526
- package/components/container/tabs/props.js +5 -28
- package/components/container/tabs/tab-pane/index.js +105 -100
- package/components/container/tabs/tab-pane/props.js +0 -5
- package/components/container/tabs/utils.js +30 -35
- package/components/container/wizard/WizardContext.js +9 -11
- package/components/container/wizard/components/StepComponents.js +76 -99
- package/components/container/wizard/components/WizardStep.js +107 -85
- package/components/container/wizard/index.js +791 -921
- package/components/container/wizard/props.js +0 -5
- package/components/container/wizard/utils.js +97 -131
- package/components/container/wizard/wizard-action/index.js +41 -81
- package/components/container/wizard/wizard-step/index.js +140 -120
- package/components/data/card/card-actions/index.js +13 -31
- package/components/data/card/card-content/index.js +27 -36
- package/components/data/card/card-footer/index.js +13 -31
- package/components/data/card/index.js +192 -199
- package/components/data/card/props.js +0 -5
- package/components/data/form/base-form/constant.js +5 -8
- package/components/data/form/base-form/hooks/index.js +26 -77
- package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
- package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
- package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
- package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
- package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
- package/components/data/form/base-form/index.js +531 -646
- package/components/data/form/base-form/props.js +74 -151
- package/components/data/form/base-form/utils.js +210 -323
- package/components/data/form/dynamic-fields/constant.js +43 -53
- package/components/data/form/dynamic-fields/index.js +135 -144
- package/components/data/form/dynamic-fields/props.js +0 -5
- package/components/data/form/dynamic-fields/utils.js +99 -158
- package/components/data/form/form-action/index.js +107 -85
- package/components/data/form/form-body/index.js +52 -26
- package/components/data/form/form-context.js +43 -59
- package/components/data/form/form-controller/hooks/index.js +43 -57
- package/components/data/form/form-controller/props.js +5 -8
- package/components/data/form/form-controller/utils.js +54 -49
- package/components/data/form/form-controller/validation-contrustor.js +203 -426
- package/components/data/form/form-controller/withFormController.js +319 -269
- package/components/data/form/form-dynamic-section/index.js +47 -41
- package/components/data/form/form-dynamic-section/props.js +0 -5
- package/components/data/form/form-field/base-field.js +97 -109
- package/components/data/form/form-field/index.js +91 -82
- package/components/data/form/form-field/props.js +0 -5
- package/components/data/form/form-footer/index.js +52 -25
- package/components/data/form/form-header/index.js +61 -58
- package/components/data/form/index.js +95 -74
- package/components/data/form/props.js +0 -5
- package/components/data/list/components/GroupHeader.js +34 -33
- package/components/data/list/components/GroupedListItems.js +108 -104
- package/components/data/list/components/ListContainer.js +22 -27
- package/components/data/list/components/ListDND.js +193 -185
- package/components/data/list/components/ListHeader.js +32 -49
- package/components/data/list/components/ListItem.js +153 -146
- package/components/data/list/components/ListItemWithTemplate.js +87 -105
- package/components/data/list/components/ListItems.js +180 -194
- package/components/data/list/components/ListPagination.js +127 -153
- package/components/data/list/components/LoadMoreButton.js +25 -33
- package/components/data/list/components/NoDataMessage.js +9 -22
- package/components/data/list/components/StandardListItems.js +79 -85
- package/components/data/list/components/index.js +31 -119
- package/components/data/list/components/props.js +0 -5
- package/components/data/list/hooks/index.js +22 -75
- package/components/data/list/hooks/props.js +0 -5
- package/components/data/list/hooks/useCurrentPageItems.js +20 -38
- package/components/data/list/hooks/useGroupedData.js +19 -33
- package/components/data/list/hooks/useListData.js +17 -47
- package/components/data/list/hooks/useListEffects.js +168 -237
- package/components/data/list/hooks/useListEventHandlers.js +301 -285
- package/components/data/list/hooks/useListPagination.js +90 -136
- package/components/data/list/hooks/useListState.js +49 -91
- package/components/data/list/hooks/useListStateManager.js +104 -159
- package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
- package/components/data/list/index.d.ts +1 -0
- package/components/data/list/index.js +579 -621
- package/components/data/list/props.d.ts +4 -0
- package/components/data/list/props.js +0 -5
- package/components/data/list/templates/media-template.js +29 -50
- package/components/data/list/utils/constants.js +20 -32
- package/components/data/list/utils/list-helpers.d.ts +2 -1
- package/components/data/list/utils/list-helpers.js +71 -115
- package/components/data/list/utils/list-widget-methods.js +56 -76
- package/components/data/list/utils/widget-instance-utils.js +20 -57
- package/components/data/live-filter/index.js +219 -271
- package/components/data/live-filter/props.js +5 -12
- package/components/data/live-form/index.js +68 -91
- package/components/data/live-form/props.js +5 -12
- package/components/data/pagination/components/BasicPagination.js +124 -104
- package/components/data/pagination/components/ClassicPagination.js +167 -190
- package/components/data/pagination/components/InlinePagination.js +97 -98
- package/components/data/pagination/components/LoadingComponent.js +17 -30
- package/components/data/pagination/components/PageSizeSelector.js +176 -169
- package/components/data/pagination/components/PagerNavigation.js +84 -105
- package/components/data/pagination/components/TotalRecords.js +48 -47
- package/components/data/pagination/components/index.js +14 -47
- package/components/data/pagination/components/props.js +0 -5
- package/components/data/pagination/hooks/index.js +6 -19
- package/components/data/pagination/hooks/props.js +0 -5
- package/components/data/pagination/hooks/useNavigationSize.js +12 -21
- package/components/data/pagination/hooks/usePagination.js +702 -905
- package/components/data/pagination/index.js +336 -389
- package/components/data/table/components/AddNewRow.js +122 -154
- package/components/data/table/components/EditableCell.js +68 -75
- package/components/data/table/components/FieldValidationError.js +19 -20
- package/components/data/table/components/RowCells.js +97 -80
- package/components/data/table/components/RowExpansionButton.js +43 -39
- package/components/data/table/components/SummaryCell.js +54 -88
- package/components/data/table/components/SummaryRow.js +45 -52
- package/components/data/table/components/SummaryRowFooter.js +35 -42
- package/components/data/table/components/TableBody.js +222 -218
- package/components/data/table/components/TableDataRow.js +113 -106
- package/components/data/table/components/TableFilters.js +391 -390
- package/components/data/table/components/TableFooterActions.js +25 -32
- package/components/data/table/components/TableHeader.js +460 -435
- package/components/data/table/components/TablePanelHeading.js +157 -181
- package/components/data/table/components/index.js +27 -95
- package/components/data/table/hooks/index.js +21 -230
- package/components/data/table/hooks/use-edited-rows.js +59 -94
- package/components/data/table/hooks/useCellState.js +58 -83
- package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
- package/components/data/table/hooks/useDynamicColumns.js +59 -92
- package/components/data/table/hooks/useEditingState.js +30 -41
- package/components/data/table/hooks/useFormWidget.js +163 -172
- package/components/data/table/hooks/usePaginationState.js +67 -77
- package/components/data/table/hooks/usePanelStructure.js +47 -41
- package/components/data/table/hooks/useResponsiveColumns.js +14 -20
- package/components/data/table/hooks/useRowExpansion.js +131 -127
- package/components/data/table/hooks/useRowHandlers.js +56 -69
- package/components/data/table/hooks/useRowSelection.js +249 -329
- package/components/data/table/hooks/useServerSideSorting.js +109 -175
- package/components/data/table/hooks/useTableColumns.js +322 -331
- package/components/data/table/hooks/useTableData.js +111 -166
- package/components/data/table/hooks/useTableEdit.js +526 -564
- package/components/data/table/hooks/useTableEffects.js +60 -107
- package/components/data/table/hooks/useTableFilter.js +244 -237
- package/components/data/table/hooks/useTableInitialization.js +44 -76
- package/components/data/table/hooks/useTableState.js +39 -61
- package/components/data/table/hooks/useTableStateManager.js +295 -468
- package/components/data/table/index.js +1553 -1713
- package/components/data/table/live-table/index.js +157 -219
- package/components/data/table/props.js +0 -5
- package/components/data/table/table-action/index.js +97 -75
- package/components/data/table/table-column/index.js +48 -42
- package/components/data/table/table-group/index.js +7 -25
- package/components/data/table/table-row/index.js +63 -55
- package/components/data/table/table-row-action/index.js +102 -77
- package/components/data/table/utils/buildSelectionColumns.js +86 -137
- package/components/data/table/utils/columnBuilder.js +116 -158
- package/components/data/table/utils/columnProxy.js +48 -66
- package/components/data/table/utils/columnWidthDistribution.js +40 -64
- package/components/data/table/utils/constants.js +92 -40
- package/components/data/table/utils/crud-handlers.js +292 -473
- package/components/data/table/utils/dynamic-columns.js +99 -144
- package/components/data/table/utils/groupHeaderUtils.js +36 -61
- package/components/data/table/utils/index.d.ts +8 -5
- package/components/data/table/utils/index.js +419 -639
- package/components/data/table/utils/renderDisplayCell.js +127 -169
- package/components/data/table/utils/script-page-size-broadcast.js +17 -29
- package/components/data/table/utils/selectionUtils.js +59 -113
- package/components/data/table/utils/table-helpers.js +38 -74
- package/components/data/table/utils/validation.js +35 -78
- package/components/data/table/utils/widgetMapping.d.ts +5 -0
- package/components/data/table/utils/widgetMapping.js +41 -0
- package/components/data/types.js +112 -112
- package/components/data/utils/field-data-utils.js +38 -42
- package/components/data/utils/filter-field-util.js +42 -44
- package/components/data/utils/index.js +112 -111
- package/components/dialogs/alert-dialog/index.js +83 -78
- package/components/dialogs/alert-dialog/props.js +0 -5
- package/components/dialogs/confirm-dialog/index.js +102 -92
- package/components/dialogs/confirm-dialog/props.js +0 -5
- package/components/dialogs/dialog/index.js +93 -69
- package/components/dialogs/dialog/props.js +0 -5
- package/components/dialogs/dialog-actions/index.js +12 -26
- package/components/dialogs/dialog-actions/props.js +0 -5
- package/components/dialogs/dialog-body/index.js +13 -30
- package/components/dialogs/dialog-body/props.js +0 -5
- package/components/dialogs/dialog-content/index.js +48 -41
- package/components/dialogs/dialog-content/props.js +0 -5
- package/components/dialogs/dialog-header/index.js +88 -101
- package/components/dialogs/dialog-header/props.js +0 -5
- package/components/dialogs/iframe-dialog/index.js +136 -128
- package/components/dialogs/iframe-dialog/props.js +0 -5
- package/components/dialogs/index.js +104 -101
- package/components/dialogs/login-dialog/index.js +285 -347
- package/components/dialogs/login-dialog/props.js +0 -5
- package/components/dialogs/page-dialog/index.js +95 -86
- package/components/dialogs/page-dialog/props.js +0 -5
- package/components/dialogs/props.js +0 -5
- package/components/dialogs/withDialogWrapper.js +110 -83
- package/components/form/button/index.js +296 -245
- package/components/form/button/props.js +0 -5
- package/components/form/button-group/index.js +80 -69
- package/components/form/button-group/props.js +0 -5
- package/components/input/calendar/index.js +409 -362
- package/components/input/calendar/props.js +0 -5
- package/components/input/calendar/utils.js +164 -172
- package/components/input/chips/SortableChip/index.js +109 -100
- package/components/input/chips/SortableChip/props.js +0 -5
- package/components/input/chips/index.js +663 -570
- package/components/input/chips/props.js +0 -5
- package/components/input/chips/utils.js +131 -122
- package/components/input/color-picker/index.js +536 -594
- package/components/input/color-picker/props.js +0 -5
- package/components/input/composite/index.js +71 -110
- package/components/input/composite/props.js +0 -5
- package/components/input/currency/index.js +277 -224
- package/components/input/currency/props.js +0 -5
- package/components/input/default/checkbox/index.js +329 -250
- package/components/input/default/checkbox/props.js +0 -5
- package/components/input/default/checkboxset/index.d.ts +2 -0
- package/components/input/default/checkboxset/index.js +529 -446
- package/components/input/default/checkboxset/props.d.ts +4 -0
- package/components/input/default/checkboxset/props.js +0 -5
- package/components/input/default/checkboxset/utils.js +15 -25
- package/components/input/default/radioset/index.d.ts +2 -0
- package/components/input/default/radioset/index.js +409 -350
- package/components/input/default/radioset/props.d.ts +6 -0
- package/components/input/default/radioset/props.js +0 -5
- package/components/input/default/switch/index.js +494 -458
- package/components/input/default/switch/prop.js +0 -5
- package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
- package/components/input/epoch/date/index.js +638 -518
- package/components/input/epoch/date/props.js +0 -5
- package/components/input/epoch/date/styled.js +61 -70
- package/components/input/epoch/date/utils.js +67 -115
- package/components/input/epoch/datetime/index.js +758 -695
- package/components/input/epoch/datetime/props.js +0 -5
- package/components/input/epoch/datetime/utils.js +121 -186
- package/components/input/epoch/time/index.js +441 -415
- package/components/input/epoch/time/props.js +0 -5
- package/components/input/epoch/time/utils.js +101 -112
- package/components/input/fileupload/Utils.js +70 -97
- package/components/input/fileupload/components/ListItems.js +132 -130
- package/components/input/fileupload/components/MultiUpload.js +80 -77
- package/components/input/fileupload/components/SingleUpload.js +57 -57
- package/components/input/fileupload/index.js +253 -178
- package/components/input/fileupload/props.js +0 -5
- package/components/input/fileupload/useFileUpload.js +209 -258
- package/components/input/number/index.js +434 -393
- package/components/input/number/props.js +0 -5
- package/components/input/rating/index.js +401 -394
- package/components/input/rating/props.js +0 -5
- package/components/input/select/index.js +408 -463
- package/components/input/select/props.js +0 -5
- package/components/input/slider/index.js +339 -332
- package/components/input/slider/props.js +0 -5
- package/components/input/text/index.d.ts +3 -3
- package/components/input/text/index.js +438 -475
- package/components/input/text/props.d.ts +1 -1
- package/components/input/text/props.js +0 -5
- package/components/input/text/util.js +82 -222
- package/components/input/textarea/index.js +322 -358
- package/components/input/textarea/props.js +0 -5
- package/components/input/upload/index.js +135 -131
- package/components/input/upload/props.js +0 -5
- package/components/input/util/index.js +9 -11
- package/components/layout/footer/index.js +12 -35
- package/components/layout/footer/props.js +0 -5
- package/components/layout/header/index.js +12 -38
- package/components/layout/header/props.js +0 -5
- package/components/layout/leftnav/index.js +38 -44
- package/components/layout/leftnav/props.js +0 -5
- package/components/layout/rightnav/index.js +12 -36
- package/components/layout/rightnav/props.js +0 -5
- package/components/layout/topnav/index.js +24 -38
- package/components/layout/topnav/props.js +0 -5
- package/components/navbar/index.js +119 -98
- package/components/navbar/nav/index.js +236 -232
- package/components/navbar/nav/props.js +0 -5
- package/components/navbar/nav-item/index.js +74 -65
- package/components/navbar/nav-item/props.js +0 -5
- package/components/navigation/breadcrumb/index.js +38 -61
- package/components/navigation/breadcrumb/props.js +0 -5
- package/components/navigation/menu/components/ListItems.js +76 -67
- package/components/navigation/menu/constants.js +27 -42
- package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
- package/components/navigation/menu/index.js +911 -846
- package/components/navigation/menu/props.js +0 -5
- package/components/navigation/menu/utils/action-task.js +6 -9
- package/components/navigation/menu/utils/role-filter.js +41 -56
- package/components/navigation/popover/index.js +191 -205
- package/components/navigation/popover/props.js +5 -8
- package/components/page/content/index.js +9 -31
- package/components/page/content/props.js +0 -5
- package/components/page/error-boundary/index.js +115 -105
- package/components/page/error-boundary/props.js +0 -5
- package/components/page/index.js +84 -102
- package/components/page/page-content/index.js +21 -30
- package/components/page/page-content/props.js +0 -5
- package/components/page/partial/index.js +50 -45
- package/components/page/partial/props.js +0 -5
- package/components/page/partial-container/index.js +81 -107
- package/components/page/partial-container/props.d.ts +1 -1
- package/components/page/partial-container/props.js +0 -5
- package/components/page/props.js +0 -5
- package/components/page/toast-container/index.js +20 -41
- package/components/page/toast-container/props.js +0 -5
- package/components/prefab/container/index.js +60 -53
- package/components/prefab/container/props.js +0 -5
- package/components/prefab/index.js +76 -61
- package/components/prefab/props.js +0 -5
- package/context/AppContext.d.ts +1 -1
- package/context/AppContext.js +17 -18
- package/context/AppSpinnerProvider.js +19 -34
- package/context/LayoutProvider.js +54 -57
- package/context/LocalizationProvider.js +34 -49
- package/context/PrefabContext.js +68 -119
- package/context/WidgetProvider.js +160 -166
- package/core/app-config.js +0 -1
- package/core/app.service.js +200 -327
- package/core/appVariablesStore.js +10 -15
- package/core/appstore.js +37 -53
- package/core/constants/currency-constant.js +81 -83
- package/core/constants/events.js +34 -44
- package/core/constants/index.js +21 -31
- package/core/dialog.service.js +52 -72
- package/core/event-notifier.js +94 -131
- package/core/formatter/array-formatters.js +18 -32
- package/core/formatter/date-formatters.js +140 -204
- package/core/formatter/index.js +64 -117
- package/core/formatter/number-formatters.js +115 -159
- package/core/formatter/security-formatters.js +233 -283
- package/core/formatter/string-formatters.js +23 -45
- package/core/formatter/types.js +12 -18
- package/core/formatters.js +6 -24
- package/core/proxy-service.js +242 -306
- package/core/script-registry.js +87 -134
- package/core/security.service.js +8 -11
- package/core/util/compare.js +13 -25
- package/core/util/dom.js +32 -63
- package/core/util/index.d.ts +5 -0
- package/core/util/index.js +95 -95
- package/core/util/safe-is-equal.js +42 -94
- package/core/util/security.js +114 -153
- package/core/util/utils.d.ts +8 -1
- package/core/util/utils.js +124 -132
- package/core/widget-observer.js +34 -61
- package/higherOrder/BaseApp.js +327 -500
- package/higherOrder/BaseAppProps.js +0 -5
- package/higherOrder/BaseDateTime.js +277 -231
- package/higherOrder/BasePage.js +479 -735
- package/higherOrder/BasePartial.js +87 -114
- package/higherOrder/BasePrefab.js +190 -206
- package/higherOrder/DataNav.js +287 -302
- package/higherOrder/helper.js +62 -48
- package/higherOrder/props.js +0 -5
- package/higherOrder/withBaseWrapper.js +123 -168
- package/higherOrder/withStandalone.js +28 -26
- package/hooks/useAccess.js +113 -289
- package/hooks/useAppConfig.js +15 -40
- package/hooks/useAuth.js +256 -495
- package/hooks/useDataSourceSubscription.d.ts +3 -3
- package/hooks/useDataSourceSubscription.js +99 -109
- package/hooks/useDebounce.js +28 -56
- package/hooks/useDeviceVisibility.js +14 -23
- package/hooks/useHttp.d.ts +1 -0
- package/hooks/useHttp.js +318 -493
- package/libs/index.js +4 -13
- package/libs/prefab/index.js +6 -20
- package/mui-config/theme-provider.js +9 -17
- package/mui-config/theme.js +6 -9
- package/package-lock.json +808 -3177
- package/package.json +3 -19
- package/providers/AppProviders.js +21 -24
- package/runtime-dynamic/App.js +65 -93
- package/runtime-dynamic/app-initializer.js +207 -400
- package/runtime-dynamic/components/ErrorBoundary.js +59 -76
- package/runtime-dynamic/components/PageWrapper.js +23 -35
- package/runtime-dynamic/components/PrefabPreview.js +40 -69
- package/runtime-dynamic/components/partial-content.d.ts +2 -3
- package/runtime-dynamic/components/partial-content.js +66 -48
- package/runtime-dynamic/components/prefab-content.js +37 -30
- package/runtime-dynamic/components/use-dynamic-component.js +62 -150
- package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
- package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
- package/runtime-dynamic/factories/dynamic-component.js +83 -0
- package/runtime-dynamic/factories/prefab-factory.js +60 -81
- package/runtime-dynamic/factories/startup-info.js +12 -25
- package/runtime-dynamic/factories/utils.d.ts +1 -9
- package/runtime-dynamic/factories/utils.js +47 -130
- package/runtime-dynamic/index.js +56 -191
- package/runtime-dynamic/main.js +42 -70
- package/runtime-dynamic/preview-mode.js +14 -29
- package/runtime-dynamic/preview-navigation.js +21 -30
- package/runtime-dynamic/preview-path.d.ts +5 -0
- package/runtime-dynamic/preview-path.js +13 -0
- package/runtime-dynamic/preview-resource-base.js +15 -31
- package/runtime-dynamic/registry/component-registry.js +269 -334
- package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
- package/runtime-dynamic/registry/index.js +24 -63
- package/runtime-dynamic/registry/store.d.ts +1 -0
- package/runtime-dynamic/registry/store.js +18 -23
- package/runtime-dynamic/routes.js +53 -81
- package/runtime-dynamic/services/app-extension-provider.js +17 -44
- package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
- package/runtime-dynamic/services/autolayout-inject.js +27 -0
- package/runtime-dynamic/services/cache.js +27 -33
- package/runtime-dynamic/services/compile-render.d.ts +9 -0
- package/runtime-dynamic/services/compile-render.js +142 -0
- package/runtime-dynamic/services/component-ref-provider.js +70 -124
- package/runtime-dynamic/services/css-scoping.js +27 -28
- package/runtime-dynamic/services/fragment-url.js +37 -50
- package/runtime-dynamic/services/index.js +48 -152
- package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
- package/runtime-dynamic/services/markup-transpiler.js +39 -231
- package/runtime-dynamic/services/prefab-resources.js +42 -130
- package/runtime-dynamic/services/resource-manager.d.ts +2 -1
- package/runtime-dynamic/services/resource-manager.js +32 -63
- package/runtime-dynamic/services/script-executor.js +50 -61
- package/runtime-dynamic/services/variable-factory.js +141 -184
- package/runtime-dynamic/services/variable-registry.js +69 -115
- package/runtime-dynamic/services/variable-transpiler.js +73 -103
- package/runtime-dynamic/shims/next-image.js +79 -50
- package/runtime-dynamic/shims/next-link.js +58 -32
- package/runtime-dynamic/shims/next-navigation.js +17 -34
- package/runtime-dynamic/utils/index.d.ts +2 -0
- package/runtime-dynamic/utils/index.js +22 -24
- package/store/bindActions/i18nActions.js +16 -18
- package/store/index.js +29 -35
- package/store/middleware/navigationMiddleware.js +25 -45
- package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
- package/store/slices/appConfigSlice.js +65 -94
- package/store/slices/authSlice.js +317 -471
- package/store/slices/i18nSlice.js +169 -168
- package/store/slices/navigationSlice.js +22 -20
- package/store/util/resolve-path.d.ts +1 -0
- package/store/util/resolve-path.js +7 -0
- package/store/viewport.service.js +150 -194
- package/types/index.js +10 -15
- package/utils/attr.js +198 -41
- package/utils/custom-expression/index.js +55 -151
- package/utils/custom-expression/parser.js +106 -182
- package/utils/dataset-util.js +113 -154
- package/utils/eval-expression.js +10 -19
- package/utils/form-state.util.js +60 -118
- package/utils/form-utils.js +49 -190
- package/utils/format-util.js +113 -184
- package/utils/layoutsize-util.js +11 -17
- package/utils/lib-error-skipper.js +54 -52
- package/utils/page-params-util.js +50 -40
- package/utils/pending-tab-navigation-intent.js +7 -17
- package/utils/resource-url.js +8 -19
- package/utils/state-persistance.js +136 -253
- package/utils/style-utils.d.ts +2 -0
- package/utils/style-utils.js +25 -74
- package/utils/transformedDataset-utils.js +353 -381
- package/utils/widget-cleanup-util.js +42 -74
- package/utils/widgets.js +19 -31
- package/variables/base-variable.js +117 -166
- package/variables/constants.js +5 -8
- package/variables/crud-variable.js +150 -181
- package/variables/live-variable.d.ts +1 -1
- package/variables/live-variable.js +140 -174
- package/variables/metadata.service.js +74 -116
- package/variables/model-variable.js +68 -78
- package/variables/service-variable.js +171 -285
- package/wm-namespace.js +11 -14
- package/components/chart/src/css.d.js +0 -1
- package/tsconfig.declaration.tsbuildinfo +0 -1
- package/types/global.d.js +0 -3
|
@@ -1,276 +1,143 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
Object.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
parseTableRowActions: true,
|
|
17
|
-
parseTableActions: true,
|
|
18
|
-
parseTableRowExpansion: true,
|
|
19
|
-
isEditAction: true,
|
|
20
|
-
isDeleteAction: true,
|
|
21
|
-
isAddNewAction: true,
|
|
22
|
-
getActionButtonClass: true,
|
|
23
|
-
getTableActionButtonClass: true,
|
|
24
|
-
validateEditingFields: true,
|
|
25
|
-
getButtonClasses: true,
|
|
26
|
-
getSpacingClasses: true,
|
|
27
|
-
shouldShowPagination: true,
|
|
28
|
-
shouldShowPanelHeading: true,
|
|
29
|
-
handleNewRowNavigation: true,
|
|
30
|
-
INTERNAL_PROPERTIES: true,
|
|
31
|
-
cleanRowData: true,
|
|
32
|
-
parseWidth: true,
|
|
33
|
-
getColClass: true
|
|
34
|
-
};
|
|
35
|
-
exports.validateEditingFields = exports.shouldShowPanelHeading = exports.shouldShowPagination = exports.parseWidth = exports.parseTableStructureWithGroups = exports.parseTableRowExpansion = exports.parseTableRowActions = exports.parseTableColumns = exports.parseTableActions = exports.isEditAction = exports.isDeleteAction = exports.isColumnVisibleForViewport = exports.isAddNewAction = exports.handleNewRowNavigation = exports.getWidgetMappingForType = exports.getTableActionButtonClass = exports.getSpacingClasses = exports.getColClass = exports.getButtonClasses = exports.getBooleanDataset = exports.getAggregateFunctions = exports.getActionButtonClass = exports.flattenTableStructure = exports.cleanRowData = exports.addUniqueRowIds = exports.INTERNAL_PROPERTIES = void 0;
|
|
36
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
37
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
38
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
39
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
40
|
-
var _lodashEs = require("lodash-es");
|
|
41
|
-
var _react = _interopRequireDefault(require("react"));
|
|
42
|
-
var _constants = require("./constants");
|
|
43
|
-
Object.keys(_constants).forEach(function (key) {
|
|
44
|
-
if (key === "default" || key === "__esModule") return;
|
|
45
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
46
|
-
if (key in exports && exports[key] === _constants[key]) return;
|
|
47
|
-
Object.defineProperty(exports, key, {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: function get() {
|
|
50
|
-
return _constants[key];
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
var _renderDisplayCell = require("./renderDisplayCell");
|
|
55
|
-
Object.keys(_renderDisplayCell).forEach(function (key) {
|
|
56
|
-
if (key === "default" || key === "__esModule") return;
|
|
57
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
58
|
-
if (key in exports && exports[key] === _renderDisplayCell[key]) return;
|
|
59
|
-
Object.defineProperty(exports, key, {
|
|
60
|
-
enumerable: true,
|
|
61
|
-
get: function get() {
|
|
62
|
-
return _renderDisplayCell[key];
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
var _buildSelectionColumns = require("./buildSelectionColumns");
|
|
67
|
-
Object.keys(_buildSelectionColumns).forEach(function (key) {
|
|
68
|
-
if (key === "default" || key === "__esModule") return;
|
|
69
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
70
|
-
if (key in exports && exports[key] === _buildSelectionColumns[key]) return;
|
|
71
|
-
Object.defineProperty(exports, key, {
|
|
72
|
-
enumerable: true,
|
|
73
|
-
get: function get() {
|
|
74
|
-
return _buildSelectionColumns[key];
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
var _validation = require("./validation");
|
|
79
|
-
Object.keys(_validation).forEach(function (key) {
|
|
80
|
-
if (key === "default" || key === "__esModule") return;
|
|
81
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
82
|
-
if (key in exports && exports[key] === _validation[key]) return;
|
|
83
|
-
Object.defineProperty(exports, key, {
|
|
84
|
-
enumerable: true,
|
|
85
|
-
get: function get() {
|
|
86
|
-
return _validation[key];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
var _selectionUtils = require("./selectionUtils");
|
|
91
|
-
Object.keys(_selectionUtils).forEach(function (key) {
|
|
92
|
-
if (key === "default" || key === "__esModule") return;
|
|
93
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
94
|
-
if (key in exports && exports[key] === _selectionUtils[key]) return;
|
|
95
|
-
Object.defineProperty(exports, key, {
|
|
96
|
-
enumerable: true,
|
|
97
|
-
get: function get() {
|
|
98
|
-
return _selectionUtils[key];
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
99
16
|
}
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import {
|
|
21
|
+
forEach,
|
|
22
|
+
entries,
|
|
23
|
+
size,
|
|
24
|
+
isEmpty,
|
|
25
|
+
isArray,
|
|
26
|
+
map,
|
|
27
|
+
get,
|
|
28
|
+
trim,
|
|
29
|
+
startsWith,
|
|
30
|
+
findIndex,
|
|
31
|
+
assign,
|
|
32
|
+
floor,
|
|
33
|
+
ceil,
|
|
34
|
+
max,
|
|
35
|
+
omit,
|
|
36
|
+
isObject,
|
|
37
|
+
isNil,
|
|
38
|
+
transform,
|
|
39
|
+
sum,
|
|
40
|
+
round,
|
|
41
|
+
mean,
|
|
42
|
+
min
|
|
43
|
+
} from "lodash-es";
|
|
44
|
+
import React from "react";
|
|
45
|
+
import { TABLE_CSS_CLASSES } from "./constants";
|
|
46
|
+
const formWidgets = [
|
|
47
|
+
"WmText",
|
|
48
|
+
"WmTextarea",
|
|
49
|
+
"WmCheckbox",
|
|
50
|
+
"WmSlider",
|
|
51
|
+
"WmCurrency",
|
|
52
|
+
"WmSwitch",
|
|
53
|
+
"WmSelect",
|
|
54
|
+
"WmCheckboxSet",
|
|
55
|
+
"WmRadioSet",
|
|
56
|
+
"WmDate",
|
|
57
|
+
"WmTime",
|
|
58
|
+
"WmTimestamp",
|
|
59
|
+
"WmRating",
|
|
60
|
+
"WmDatetime",
|
|
61
|
+
"WmSearch",
|
|
62
|
+
"WmChips",
|
|
63
|
+
"WmColorPicker"
|
|
64
|
+
];
|
|
65
|
+
const hashString = (str, index) => {
|
|
66
|
+
let hash = 5381;
|
|
67
|
+
for (let i = 0; i < str.length; i++) {
|
|
144
68
|
hash = (hash << 5) + hash + str.charCodeAt(i);
|
|
145
|
-
hash = hash & hash;
|
|
69
|
+
hash = hash & hash;
|
|
146
70
|
}
|
|
147
|
-
return
|
|
71
|
+
return `row_${Math.abs(hash)}_${index}`;
|
|
148
72
|
};
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
73
|
+
const generateDeterministicHash = (obj, index) => {
|
|
74
|
+
const hashSource = index.toString() + (isObject(obj) ? transform(
|
|
75
|
+
omit(obj, "_wmTableRowId"),
|
|
76
|
+
(result, value, key) => {
|
|
77
|
+
if (!isNil(value)) {
|
|
78
|
+
result.push(`${key}:${isObject(value) ? JSON.stringify(value) : String(value)}`);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
[]
|
|
82
|
+
).sort().join("|") : String(obj));
|
|
155
83
|
return hashString(hashSource, index);
|
|
156
84
|
};
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
*/
|
|
168
|
-
var addUniqueRowIds = exports.addUniqueRowIds = function addUniqueRowIds(dataset) {
|
|
169
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
170
|
-
// Handle non-array inputs (e.g., empty objects, null, undefined)
|
|
171
|
-
if (!(0, _lodashEs.isArray)(dataset)) {
|
|
85
|
+
const extractDataArray = (dataset) => {
|
|
86
|
+
if (isArray(dataset)) return dataset;
|
|
87
|
+
if (dataset !== null && dataset !== void 0 && typeof dataset === "object") {
|
|
88
|
+
const firstArray = Object.values(dataset).find((v) => isArray(v));
|
|
89
|
+
return firstArray != null ? firstArray : [];
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
92
|
+
};
|
|
93
|
+
const addUniqueRowIds = (dataset, options = {}) => {
|
|
94
|
+
if (!isArray(dataset)) {
|
|
172
95
|
return [];
|
|
173
96
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
return (0, _lodashEs.map)(dataset, function (item, index) {
|
|
179
|
-
// If item is not an object (primitive values like strings, numbers), return as-is
|
|
180
|
-
if ((0, _typeof2["default"])(item) !== "object" || item === null || (0, _lodashEs.isArray)(item)) {
|
|
97
|
+
const idProperty = options.idProperty || (options.type === "list" ? "_wmListItemId" : "_wmTableRowId");
|
|
98
|
+
const isListWidget = options.type === "list";
|
|
99
|
+
return map(dataset, (item, index) => {
|
|
100
|
+
if (typeof item !== "object" || item === null || isArray(item)) {
|
|
181
101
|
return item;
|
|
182
102
|
}
|
|
183
|
-
|
|
184
|
-
|
|
103
|
+
const getProperty = (propName) => {
|
|
104
|
+
const direct = get(item, propName);
|
|
105
|
+
if (direct !== void 0) return direct;
|
|
106
|
+
const withoutArrayPrefix = propName.replace(/^[^.[]+\[\d+\]\./, "");
|
|
107
|
+
if (withoutArrayPrefix !== propName) {
|
|
108
|
+
return get(item, withoutArrayPrefix);
|
|
109
|
+
}
|
|
110
|
+
return void 0;
|
|
185
111
|
};
|
|
186
|
-
|
|
187
|
-
// Skip if the item already has a unique row ID
|
|
188
112
|
if (item[idProperty]) {
|
|
189
|
-
return item.getProperty ? item :
|
|
190
|
-
getProperty: getProperty
|
|
191
|
-
});
|
|
113
|
+
return item.getProperty ? item : __spreadProps(__spreadValues({}, item), { getProperty });
|
|
192
114
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
115
|
+
const rowId = item.id || item.ID || item.Id || generateDeterministicHash(item, index);
|
|
116
|
+
const rowIdAndGetProperty = {
|
|
117
|
+
[idProperty]: rowId,
|
|
118
|
+
getProperty
|
|
119
|
+
};
|
|
197
120
|
if (isListWidget) {
|
|
198
121
|
Object.assign(item, rowIdAndGetProperty);
|
|
199
122
|
return item;
|
|
200
123
|
}
|
|
201
|
-
|
|
202
|
-
// Table and other callers: immutable row copies (prior React/table behavior)
|
|
203
|
-
return _objectSpread(_objectSpread({}, item), rowIdAndGetProperty);
|
|
124
|
+
return __spreadValues(__spreadValues({}, item), rowIdAndGetProperty);
|
|
204
125
|
});
|
|
205
126
|
};
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var getWidgetMappingForType = exports.getWidgetMappingForType = function getWidgetMappingForType(widgetType) {
|
|
209
|
-
var widgetMappings = {
|
|
210
|
-
text: "WmText",
|
|
211
|
-
password: "WmPassword",
|
|
212
|
-
textarea: "WmTextarea",
|
|
213
|
-
number: "WmNumber",
|
|
214
|
-
checkbox: "WmCheckbox",
|
|
215
|
-
toggle: "WmToggle",
|
|
216
|
-
"switch": "WmSwitch",
|
|
217
|
-
slider: "WmSlider",
|
|
218
|
-
richtext: "WmRichtext",
|
|
219
|
-
richtexteditor: "WmRichtexteditor",
|
|
220
|
-
currency: "WmCurrency",
|
|
221
|
-
select: "WmSelect",
|
|
222
|
-
checkboxset: "WmCheckboxset",
|
|
223
|
-
radioset: "WmRadioset",
|
|
224
|
-
date: "WmDate",
|
|
225
|
-
time: "WmTime",
|
|
226
|
-
timestamp: "WmTimestamp",
|
|
227
|
-
datetime: "WmDatetime",
|
|
228
|
-
rating: "WmRating",
|
|
229
|
-
autocomplete: "WmAutocomplete",
|
|
230
|
-
chips: "WmChips",
|
|
231
|
-
colorpicker: "WmColorpicker",
|
|
232
|
-
upload: "WmFileupload",
|
|
233
|
-
label: "WmLabel",
|
|
234
|
-
button: "WmButton",
|
|
235
|
-
icon: "WmIcon",
|
|
236
|
-
image: "WmPicture",
|
|
237
|
-
anchor: "WmAnchor"
|
|
238
|
-
};
|
|
239
|
-
return widgetMappings[widgetType] || widgetType;
|
|
240
|
-
};
|
|
241
|
-
var getBooleanDataset = exports.getBooleanDataset = function getBooleanDataset() {
|
|
242
|
-
return [{
|
|
243
|
-
key: true,
|
|
244
|
-
value: "Yes"
|
|
245
|
-
}, {
|
|
246
|
-
key: false,
|
|
247
|
-
value: "No"
|
|
248
|
-
}];
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
// Check if column should be visible based on current viewport
|
|
252
|
-
var isColumnVisibleForViewport = exports.isColumnVisibleForViewport = function isColumnVisibleForViewport(column, viewportWidth) {
|
|
253
|
-
// Validate inputs
|
|
127
|
+
import { getWidgetMappingForType, getBooleanDataset } from "./widgetMapping";
|
|
128
|
+
const isColumnVisibleForViewport = (column, viewportWidth) => {
|
|
254
129
|
if (!column || typeof viewportWidth !== "number" || viewportWidth < 0) {
|
|
255
|
-
return true;
|
|
130
|
+
return true;
|
|
256
131
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
var isDesktop = viewportWidth >= DESKTOP_BREAKPOINT;
|
|
267
|
-
|
|
268
|
-
// Default all display properties to true if not explicitly set
|
|
269
|
-
var mobiledisplay = column.mobiledisplay !== false;
|
|
270
|
-
var tabletdisplay = column.tabletdisplay !== false;
|
|
271
|
-
var pcdisplay = column.pcdisplay !== false;
|
|
272
|
-
|
|
273
|
-
// Check visibility based on device type
|
|
132
|
+
const MOBILE_BREAKPOINT = 576;
|
|
133
|
+
const TABLET_BREAKPOINT = 768;
|
|
134
|
+
const DESKTOP_BREAKPOINT = 992;
|
|
135
|
+
const isMobile = viewportWidth < MOBILE_BREAKPOINT;
|
|
136
|
+
const isTablet = viewportWidth >= MOBILE_BREAKPOINT && viewportWidth < DESKTOP_BREAKPOINT;
|
|
137
|
+
const isDesktop = viewportWidth >= DESKTOP_BREAKPOINT;
|
|
138
|
+
const mobiledisplay = column.mobiledisplay !== false;
|
|
139
|
+
const tabletdisplay = column.tabletdisplay !== false;
|
|
140
|
+
const pcdisplay = column.pcdisplay !== false;
|
|
274
141
|
if (isMobile && !mobiledisplay) {
|
|
275
142
|
return false;
|
|
276
143
|
}
|
|
@@ -284,168 +151,161 @@ var isColumnVisibleForViewport = exports.isColumnVisibleForViewport = function i
|
|
|
284
151
|
};
|
|
285
152
|
function transformExpression(exp) {
|
|
286
153
|
if (typeof exp === "string") {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
// Regex to split by string literals (double or single quoted)
|
|
294
|
-
var parts = transformedExp.split(/(".*?"|'.*?')/);
|
|
295
|
-
return parts.map(function (part) {
|
|
296
|
-
// If part is a string literal, return as is
|
|
154
|
+
let transformedExp = exp.replace(
|
|
155
|
+
/(?:[\w$]+(?:\?\.|\.))*getProperty(?:\?\.)?\(\s*(['"])(.*?)\1\s*\)/g,
|
|
156
|
+
(_, quote, key) => `rowData['${key}']`
|
|
157
|
+
);
|
|
158
|
+
const parts = transformedExp.split(/(".*?"|'.*?')/);
|
|
159
|
+
return parts.map((part) => {
|
|
297
160
|
if (part.startsWith('"') || part.startsWith("'")) {
|
|
298
161
|
return part;
|
|
299
162
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
163
|
+
return part.replace(/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g, (match) => {
|
|
164
|
+
const keywords = [
|
|
165
|
+
"true",
|
|
166
|
+
"false",
|
|
167
|
+
"null",
|
|
168
|
+
"undefined",
|
|
169
|
+
"NaN",
|
|
170
|
+
"Infinity",
|
|
171
|
+
"in",
|
|
172
|
+
"instanceof",
|
|
173
|
+
"typeof",
|
|
174
|
+
"void",
|
|
175
|
+
"new",
|
|
176
|
+
"delete",
|
|
177
|
+
"rowData"
|
|
178
|
+
// Don't replace rowData if it's already there
|
|
305
179
|
];
|
|
306
180
|
if (keywords.includes(match)) {
|
|
307
181
|
return match;
|
|
308
182
|
}
|
|
309
|
-
return
|
|
183
|
+
return `rowData['${match}']`;
|
|
310
184
|
});
|
|
311
185
|
}).join("");
|
|
312
186
|
}
|
|
313
187
|
return exp;
|
|
314
188
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
// Children parsing utilities
|
|
319
|
-
var parseTableColumns = exports.parseTableColumns = function parseTableColumns(children, dataset) {
|
|
320
|
-
var columns = [];
|
|
321
|
-
_react["default"].Children.forEach(children, function (child) {
|
|
189
|
+
const parseTableColumns = (children, dataset) => {
|
|
190
|
+
const columns = [];
|
|
191
|
+
React.Children.forEach(children, (child) => {
|
|
322
192
|
if (child && child.props && child.props.name && (child.props.name.includes("wm_table_column") || child.props.name.includes("col_"))) {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
columns.push(
|
|
327
|
-
field:
|
|
328
|
-
caption:
|
|
329
|
-
displayName:
|
|
330
|
-
show:
|
|
331
|
-
sortable:
|
|
332
|
-
textalignment:
|
|
333
|
-
backgroundcolor:
|
|
334
|
-
textcolor:
|
|
335
|
-
width:
|
|
336
|
-
editWidgetType:
|
|
337
|
-
widgetType:
|
|
338
|
-
required:
|
|
339
|
-
defaultvalue:
|
|
340
|
-
disabled: transformExpression(
|
|
341
|
-
readonly:
|
|
342
|
-
placeholder:
|
|
343
|
-
sortby:
|
|
344
|
-
aggregate
|
|
345
|
-
colClass:
|
|
193
|
+
const props = get(child, "props", {});
|
|
194
|
+
const binding = get(props, "binding");
|
|
195
|
+
const aggregate = getAggregateFunctions(dataset, binding);
|
|
196
|
+
columns.push(__spreadProps(__spreadValues({}, props), {
|
|
197
|
+
field: get(props, "binding"),
|
|
198
|
+
caption: get(props, "caption"),
|
|
199
|
+
displayName: get(props, "caption"),
|
|
200
|
+
show: get(props, "show", true) !== false,
|
|
201
|
+
sortable: get(props, "sortable", true) !== false,
|
|
202
|
+
textalignment: get(props, "textalignment", "left"),
|
|
203
|
+
backgroundcolor: get(props, "backgroundcolor"),
|
|
204
|
+
textcolor: get(props, "textcolor"),
|
|
205
|
+
width: get(props, "width"),
|
|
206
|
+
editWidgetType: get(props, "editWidgetType", "WmText"),
|
|
207
|
+
widgetType: get(props, "widgetType", "label"),
|
|
208
|
+
required: get(props, "required") === true || get(props, "required") === "true",
|
|
209
|
+
defaultvalue: get(props, "defaultvalue"),
|
|
210
|
+
disabled: transformExpression(get(props, "disabled")),
|
|
211
|
+
readonly: get(props, "readonly") || get(props, "readonly") === "true",
|
|
212
|
+
placeholder: get(props, "placeholder"),
|
|
213
|
+
sortby: get(props, "sortby"),
|
|
214
|
+
aggregate,
|
|
215
|
+
colClass: get(props, "colClass")
|
|
346
216
|
}));
|
|
347
217
|
}
|
|
348
218
|
});
|
|
349
219
|
return columns;
|
|
350
220
|
};
|
|
351
|
-
|
|
221
|
+
const getAggregateFunctions = (dataset, binding) => {
|
|
352
222
|
function _getColumnData() {
|
|
353
|
-
return
|
|
223
|
+
return map(dataset, binding);
|
|
354
224
|
}
|
|
355
|
-
|
|
356
|
-
sum:
|
|
357
|
-
return
|
|
225
|
+
const aggregate = {
|
|
226
|
+
sum: () => {
|
|
227
|
+
return sum(_getColumnData());
|
|
358
228
|
},
|
|
359
|
-
average:
|
|
360
|
-
|
|
361
|
-
return (0, _lodashEs.round)((0, _lodashEs.mean)(_getColumnData()), precision);
|
|
229
|
+
average: (precision = 2) => {
|
|
230
|
+
return round(mean(_getColumnData()), precision);
|
|
362
231
|
},
|
|
363
|
-
count:
|
|
232
|
+
count: () => {
|
|
364
233
|
return _getColumnData().length;
|
|
365
234
|
},
|
|
366
|
-
minimum:
|
|
367
|
-
return
|
|
235
|
+
minimum: () => {
|
|
236
|
+
return min(_getColumnData());
|
|
368
237
|
},
|
|
369
|
-
maximum:
|
|
370
|
-
return
|
|
238
|
+
maximum: () => {
|
|
239
|
+
return max(_getColumnData());
|
|
371
240
|
},
|
|
372
|
-
percent:
|
|
373
|
-
|
|
374
|
-
return (0, _lodashEs.round)((0, _lodashEs.sum)(_getColumnData()) / value * 100, precision);
|
|
241
|
+
percent: (value, precision = 2) => {
|
|
242
|
+
return round(sum(_getColumnData()) / value * 100, precision);
|
|
375
243
|
}
|
|
376
244
|
};
|
|
377
245
|
return aggregate;
|
|
378
246
|
};
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
_react["default"].Children.forEach(children, function (child) {
|
|
247
|
+
const parseTableStructureWithGroups = (children) => {
|
|
248
|
+
const structure = [];
|
|
249
|
+
React.Children.forEach(children, (child) => {
|
|
383
250
|
if (!child || !child.props) return;
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
// Handle WmTableGroup
|
|
251
|
+
const childName = get(child, "props.name", "");
|
|
387
252
|
if (childName.includes("group")) {
|
|
388
|
-
|
|
389
|
-
|
|
253
|
+
const props = get(child, "props", {});
|
|
254
|
+
const group = {
|
|
390
255
|
isGroup: true,
|
|
391
|
-
field:
|
|
392
|
-
displayName:
|
|
393
|
-
textAlignment:
|
|
394
|
-
backgroundColor:
|
|
395
|
-
|
|
396
|
-
colClass:
|
|
397
|
-
styles:
|
|
398
|
-
columns:
|
|
256
|
+
field: get(props, "name", ""),
|
|
257
|
+
displayName: get(props, "caption", ""),
|
|
258
|
+
textAlignment: get(props, "textalignment"),
|
|
259
|
+
backgroundColor: get(props, "backgroundcolor"),
|
|
260
|
+
class: get(props, "class"),
|
|
261
|
+
colClass: get(props, "col-class"),
|
|
262
|
+
styles: get(props, "styles"),
|
|
263
|
+
columns: parseTableStructureWithGroups(child.props.children)
|
|
264
|
+
// Recursive for nested groups
|
|
399
265
|
};
|
|
400
266
|
structure.push(group);
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
sortby: (0, _lodashEs.get)(_props, "sortby")
|
|
422
|
-
}, _props);
|
|
267
|
+
} else if (childName.includes("wm_table_column") || childName.includes("col_")) {
|
|
268
|
+
const props = get(child, "props", {});
|
|
269
|
+
const column = __spreadValues({
|
|
270
|
+
field: get(props, "binding"),
|
|
271
|
+
caption: get(props, "caption"),
|
|
272
|
+
displayName: get(props, "caption"),
|
|
273
|
+
show: get(props, "show", true) !== false,
|
|
274
|
+
sortable: get(props, "sortable", true) !== false,
|
|
275
|
+
textalignment: get(props, "textalignment", "left"),
|
|
276
|
+
backgroundcolor: get(props, "backgroundcolor"),
|
|
277
|
+
textcolor: get(props, "textcolor"),
|
|
278
|
+
width: get(props, "width"),
|
|
279
|
+
editWidgetType: get(props, "editWidgetType", "WmText"),
|
|
280
|
+
widgetType: get(props, "widgetType", "label"),
|
|
281
|
+
required: get(props, "required") === true || get(props, "required") === "true",
|
|
282
|
+
defaultvalue: get(props, "defaultvalue"),
|
|
283
|
+
disabled: get(props, "disabled") === true || get(props, "disabled") === "true",
|
|
284
|
+
placeholder: get(props, "placeholder"),
|
|
285
|
+
sortby: get(props, "sortby")
|
|
286
|
+
}, props);
|
|
423
287
|
structure.push(column);
|
|
424
288
|
}
|
|
425
289
|
});
|
|
426
290
|
return structure;
|
|
427
291
|
};
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
var columns = [];
|
|
432
|
-
structure.forEach(function (item) {
|
|
292
|
+
const flattenTableStructure = (structure) => {
|
|
293
|
+
const columns = [];
|
|
294
|
+
structure.forEach((item) => {
|
|
433
295
|
if ("isGroup" in item && item.isGroup) {
|
|
434
|
-
|
|
435
|
-
columns.push.apply(columns, (0, _toConsumableArray2["default"])(_flattenTableStructure(item.columns)));
|
|
296
|
+
columns.push(...flattenTableStructure(item.columns));
|
|
436
297
|
} else {
|
|
437
|
-
// It's a column
|
|
438
298
|
columns.push(item);
|
|
439
299
|
}
|
|
440
300
|
});
|
|
441
301
|
return columns;
|
|
442
302
|
};
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
303
|
+
const parseTableRowActions = (children) => {
|
|
304
|
+
const actions = [];
|
|
305
|
+
React.Children.forEach(children, (child) => {
|
|
446
306
|
if (child && child.props && child.props.name && child.props.name.includes("wm_table_row_action")) {
|
|
447
|
-
|
|
448
|
-
|
|
307
|
+
const props = get(child, "props", {});
|
|
308
|
+
const actionProps = assign({}, props);
|
|
449
309
|
if (child.key) {
|
|
450
310
|
actionProps.key = child.key;
|
|
451
311
|
}
|
|
@@ -454,12 +314,12 @@ var parseTableRowActions = exports.parseTableRowActions = function parseTableRow
|
|
|
454
314
|
});
|
|
455
315
|
return actions;
|
|
456
316
|
};
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
317
|
+
const parseTableActions = (children) => {
|
|
318
|
+
const actions = [];
|
|
319
|
+
React.Children.forEach(children, (child) => {
|
|
460
320
|
if (child && child.props && child.props.name && child.props.name.includes("wm_table_action")) {
|
|
461
|
-
|
|
462
|
-
|
|
321
|
+
const props = get(child, "props", {});
|
|
322
|
+
const actionProps = assign({}, props);
|
|
463
323
|
if (child.key) {
|
|
464
324
|
actionProps.key = child.key;
|
|
465
325
|
}
|
|
@@ -468,113 +328,84 @@ var parseTableActions = exports.parseTableActions = function parseTableActions(c
|
|
|
468
328
|
});
|
|
469
329
|
return actions;
|
|
470
330
|
};
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
331
|
+
function isTableRowComponent(child) {
|
|
332
|
+
if (!(child == null ? void 0 : child.type)) return false;
|
|
333
|
+
const name = child.type.displayName || child.type.name || "";
|
|
334
|
+
if (name === "WmTableRow" || name.includes("WmTableRow") && !name.includes("WmTableRowAction"))
|
|
335
|
+
return true;
|
|
336
|
+
const inner = child.type.type || child.type.render;
|
|
337
|
+
if (inner) {
|
|
338
|
+
const innerName = inner.displayName || inner.name || "";
|
|
339
|
+
if (innerName.includes("WmTableRow") && !innerName.includes("WmTableRowAction")) return true;
|
|
340
|
+
}
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
const parseTableRowExpansion = (children) => {
|
|
344
|
+
let rowExpansionConfig = null;
|
|
345
|
+
React.Children.forEach(children, (child) => {
|
|
346
|
+
if (isTableRowComponent(child)) {
|
|
347
|
+
const props = get(child, "props", {});
|
|
348
|
+
if (props.rowType === "expansion" || typeof props.renderPartial === "function" || props.content) {
|
|
349
|
+
rowExpansionConfig = props;
|
|
350
|
+
}
|
|
480
351
|
} else if (child && child.props && child.props.name) {
|
|
481
|
-
|
|
482
|
-
var name = child.props.name;
|
|
483
|
-
// Match names that start with "wm_table_row_" followed by a hash/id, but not "wm_table_row_action"
|
|
352
|
+
const name = child.props.name;
|
|
484
353
|
if (name.startsWith("wm_table_row_") && !name.includes("_action")) {
|
|
485
|
-
|
|
486
|
-
rowExpansionConfig =
|
|
354
|
+
const props = get(child, "props", {});
|
|
355
|
+
rowExpansionConfig = props;
|
|
487
356
|
}
|
|
488
357
|
}
|
|
489
358
|
});
|
|
490
359
|
return rowExpansionConfig;
|
|
491
360
|
};
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
var isDeleteAction = exports.isDeleteAction = function isDeleteAction(actionKey) {
|
|
498
|
-
return actionKey === "deleterow";
|
|
499
|
-
};
|
|
500
|
-
var isAddNewAction = exports.isAddNewAction = function isAddNewAction(actionKey) {
|
|
501
|
-
return actionKey === "addNewRow";
|
|
502
|
-
};
|
|
503
|
-
|
|
504
|
-
// CSS class utilities
|
|
505
|
-
var getActionButtonClass = exports.getActionButtonClass = function getActionButtonClass(action) {
|
|
506
|
-
var actionKey = (0, _lodashEs.get)(action, "key") || (0, _lodashEs.get)(action, "name") || (0, _lodashEs.get)(action, "action");
|
|
361
|
+
const isEditAction = (actionKey) => actionKey === "updaterow";
|
|
362
|
+
const isDeleteAction = (actionKey) => actionKey === "deleterow";
|
|
363
|
+
const isAddNewAction = (actionKey) => actionKey === "addNewRow";
|
|
364
|
+
const getActionButtonClass = (action) => {
|
|
365
|
+
const actionKey = get(action, "key") || get(action, "name") || get(action, "action");
|
|
507
366
|
if (isEditAction(actionKey)) {
|
|
508
|
-
|
|
509
|
-
return
|
|
367
|
+
const updateRowClasses = get(action, "className", "");
|
|
368
|
+
return `row-action row-action-button btn-transparent edit edit-row-button ${updateRowClasses}`;
|
|
510
369
|
}
|
|
511
370
|
if (isDeleteAction(actionKey) || actionKey === "delete") {
|
|
512
|
-
|
|
513
|
-
return
|
|
371
|
+
const deleteRowClasses = get(action, "className", "");
|
|
372
|
+
return `row-action row-action-button btn-transparent delete delete-row-button ${TABLE_CSS_CLASSES.deleteRow} ${deleteRowClasses}`;
|
|
514
373
|
}
|
|
515
|
-
return
|
|
374
|
+
return `row-action row-action-button ${get(action, "className", "btn-transparent")}`;
|
|
516
375
|
};
|
|
517
|
-
|
|
518
|
-
return
|
|
376
|
+
const getTableActionButtonClass = (action) => {
|
|
377
|
+
return `btn ${get(action, "className", "btn-primary")} ${isAddNewAction(get(action, "key")) ? "add-action" : ""}`;
|
|
519
378
|
};
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
*
|
|
527
|
-
* @param fieldRefs - Record of field references from editing form
|
|
528
|
-
* @param editingRowId - Optional ID for logging/debugging purposes
|
|
529
|
-
* @returns ValidationResult object with validation status and invalid elements
|
|
530
|
-
*/
|
|
531
|
-
var validateEditingFields = exports.validateEditingFields = function validateEditingFields(fieldRefs, editingRowId) {
|
|
532
|
-
var invalidElements = [];
|
|
533
|
-
var invalidFieldKeys = [];
|
|
534
|
-
|
|
535
|
-
// Helper to determine if a field needs validation based on the rowId prefix
|
|
536
|
-
var shouldValidateField = function shouldValidateField(fieldKey) {
|
|
537
|
-
if (!editingRowId) return true; // Validate all if no rowId provided
|
|
538
|
-
return (0, _lodashEs.startsWith)(fieldKey, "".concat(editingRowId, "_"));
|
|
379
|
+
const validateEditingFields = (fieldRefs, editingRowId) => {
|
|
380
|
+
const invalidElements = [];
|
|
381
|
+
const invalidFieldKeys = [];
|
|
382
|
+
const shouldValidateField = (fieldKey) => {
|
|
383
|
+
if (!editingRowId) return true;
|
|
384
|
+
return startsWith(fieldKey, `${editingRowId}_`);
|
|
539
385
|
};
|
|
540
|
-
|
|
541
|
-
// Check each field reference for validity
|
|
542
|
-
(0, _lodashEs.forEach)((0, _lodashEs.entries)(fieldRefs), function (_ref) {
|
|
543
|
-
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
544
|
-
fieldKey = _ref2[0],
|
|
545
|
-
fieldElement = _ref2[1];
|
|
546
|
-
// Skip fields that don't belong to the current editing row
|
|
386
|
+
forEach(entries(fieldRefs), ([fieldKey, fieldElement]) => {
|
|
547
387
|
if (!shouldValidateField(fieldKey) || !fieldElement) {
|
|
548
388
|
return;
|
|
549
389
|
}
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
var inputs = fieldElement.querySelectorAll("input, select, textarea");
|
|
554
|
-
(0, _lodashEs.forEach)(inputs, function (input) {
|
|
555
|
-
// Check HTML5 validation
|
|
390
|
+
let isInvalid = false;
|
|
391
|
+
const inputs = fieldElement.querySelectorAll("input, select, textarea");
|
|
392
|
+
forEach(inputs, (input) => {
|
|
556
393
|
if (input && !input.validity.valid && input.hasAttribute("required")) {
|
|
557
394
|
invalidElements.push(input);
|
|
558
395
|
isInvalid = true;
|
|
559
396
|
}
|
|
560
|
-
|
|
561
|
-
// Check for custom validation classes
|
|
562
397
|
if (input && input.classList.contains("ng-invalid")) {
|
|
563
398
|
invalidElements.push(input);
|
|
564
399
|
isInvalid = true;
|
|
565
400
|
}
|
|
566
|
-
|
|
567
|
-
// Check for required fields that are empty
|
|
568
|
-
if (input && input.hasAttribute("required") && !(0, _lodashEs.trim)(input.value)) {
|
|
401
|
+
if (input && input.hasAttribute("required") && !trim(input.value)) {
|
|
569
402
|
invalidElements.push(input);
|
|
570
403
|
isInvalid = true;
|
|
571
404
|
}
|
|
572
405
|
});
|
|
573
|
-
|
|
574
|
-
// Then check for "required" attribute on the field element itself
|
|
575
406
|
if (fieldElement.hasAttribute("required")) {
|
|
576
|
-
|
|
577
|
-
if (inputEl && !
|
|
407
|
+
const inputEl = fieldElement.querySelector("input, textarea, select");
|
|
408
|
+
if (inputEl && !trim(inputEl.value)) {
|
|
578
409
|
invalidElements.push(inputEl);
|
|
579
410
|
isInvalid = true;
|
|
580
411
|
}
|
|
@@ -583,217 +414,140 @@ var validateEditingFields = exports.validateEditingFields = function validateEdi
|
|
|
583
414
|
invalidFieldKeys.push(fieldKey);
|
|
584
415
|
}
|
|
585
416
|
});
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
console.log("".concat(logPrefix, " Validation failed: Found ").concat((0, _lodashEs.size)(invalidElements), " invalid elements"));
|
|
591
|
-
|
|
592
|
-
// Focus the first invalid element
|
|
593
|
-
var firstInvalidElement = (0, _lodashEs.get)(invalidElements, "[0]");
|
|
417
|
+
if (size(invalidElements) > 0) {
|
|
418
|
+
const logPrefix = editingRowId ? `[${editingRowId}]` : "[Validation]";
|
|
419
|
+
console.log(`${logPrefix} Validation failed: Found ${size(invalidElements)} invalid elements`);
|
|
420
|
+
const firstInvalidElement = get(invalidElements, "[0]");
|
|
594
421
|
if (firstInvalidElement) {
|
|
595
|
-
|
|
596
|
-
var cell = firstInvalidElement.closest("td, .app-datagrid-cell, .form-field");
|
|
422
|
+
const cell = firstInvalidElement.closest("td, .app-datagrid-cell, .form-field");
|
|
597
423
|
if (cell) {
|
|
598
|
-
|
|
599
|
-
|
|
424
|
+
const focusTarget = cell.querySelector(
|
|
425
|
+
"[focus-target], input, textarea, select"
|
|
426
|
+
);
|
|
600
427
|
if (focusTarget) {
|
|
601
|
-
setTimeout(
|
|
428
|
+
setTimeout(() => {
|
|
602
429
|
focusTarget.focus();
|
|
603
|
-
console.log(
|
|
430
|
+
console.log(`${logPrefix} Focused first invalid field:`, focusTarget);
|
|
604
431
|
}, 0);
|
|
605
432
|
}
|
|
606
433
|
} else {
|
|
607
|
-
|
|
608
|
-
setTimeout(function () {
|
|
434
|
+
setTimeout(() => {
|
|
609
435
|
firstInvalidElement.focus();
|
|
610
436
|
}, 0);
|
|
611
437
|
}
|
|
612
438
|
}
|
|
613
439
|
}
|
|
614
440
|
return {
|
|
615
|
-
isValid:
|
|
616
|
-
invalidElements
|
|
617
|
-
invalidFieldKeys
|
|
618
|
-
firstInvalidElement:
|
|
441
|
+
isValid: isEmpty(invalidElements),
|
|
442
|
+
invalidElements,
|
|
443
|
+
invalidFieldKeys,
|
|
444
|
+
firstInvalidElement: size(invalidElements) > 0 ? get(invalidElements, "[0]") : void 0
|
|
619
445
|
};
|
|
620
446
|
};
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
var isLoading = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
627
|
-
var baseClass = "btn ".concat((0, _lodashEs.get)(action, "className", "btn-primary"), " ").concat(isAddNewAction((0, _lodashEs.get)(action, "key")) ? "add-action" : "");
|
|
628
|
-
var spacingClass = spacing === "condensed" ? "btn-sm" : "";
|
|
629
|
-
var disabledClass = (0, _lodashEs.get)(action, "key") === "addNewRow" && (isGridEditMode || isLoading) ? "disabled-new" : "";
|
|
630
|
-
return (0, _lodashEs.trim)("".concat(baseClass, " ").concat(spacingClass, " ").concat(disabledClass));
|
|
447
|
+
const getButtonClasses = (action, spacing = "normal", isGridEditMode = false, isLoading = false) => {
|
|
448
|
+
const baseClass = `btn ${get(action, "className", "btn-primary")} ${isAddNewAction(get(action, "key")) ? "add-action" : ""}`;
|
|
449
|
+
const spacingClass = spacing === "condensed" ? "btn-sm" : "";
|
|
450
|
+
const disabledClass = get(action, "key") === "addNewRow" && (isGridEditMode || isLoading) ? "disabled-new" : "";
|
|
451
|
+
return trim(`${baseClass} ${spacingClass} ${disabledClass}`);
|
|
631
452
|
};
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
var classes = [];
|
|
453
|
+
const getSpacingClasses = (spacing = "normal") => {
|
|
454
|
+
const classes = [];
|
|
635
455
|
if (spacing === "condensed") {
|
|
636
456
|
classes.push("table-condensed");
|
|
637
457
|
}
|
|
638
458
|
return classes.join(" ");
|
|
639
459
|
};
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
_ref3$showrecordcount = _ref3.showrecordcount,
|
|
651
|
-
showrecordcount = _ref3$showrecordcount === void 0 ? false : _ref3$showrecordcount;
|
|
652
|
-
// If shownavigation is false, don't show pagination
|
|
460
|
+
const shouldShowPagination = ({
|
|
461
|
+
shownavigation,
|
|
462
|
+
onDemandLoad,
|
|
463
|
+
internalDataset,
|
|
464
|
+
pagesize,
|
|
465
|
+
allowpagesizechange,
|
|
466
|
+
datasource,
|
|
467
|
+
showrecordcount = false
|
|
468
|
+
}) => {
|
|
469
|
+
var _a;
|
|
653
470
|
if (!shownavigation) return false;
|
|
654
|
-
|
|
655
|
-
// If datasource has pagination metadata, show pagination
|
|
656
|
-
if ((datasource === null || datasource === void 0 || (_datasource$paginatio = datasource.pagination) === null || _datasource$paginatio === void 0 ? void 0 : _datasource$paginatio.totalElements) > 0) return true;
|
|
657
|
-
|
|
658
|
-
// If allowpagesizechange is true, always show pagination
|
|
471
|
+
if (((_a = datasource == null ? void 0 : datasource.pagination) == null ? void 0 : _a.totalElements) > 0) return true;
|
|
659
472
|
if (allowpagesizechange) return true;
|
|
660
|
-
|
|
661
|
-
// Show footer (including total records) when record count is enabled, even on a single page
|
|
662
473
|
if (showrecordcount) return true;
|
|
663
|
-
|
|
664
|
-
// If using on-demand load or if dataset is larger than page size, show pagination
|
|
665
|
-
return onDemandLoad || (0, _lodashEs.size)(internalDataset) > pagesize;
|
|
474
|
+
return onDemandLoad || size(internalDataset) > pagesize;
|
|
666
475
|
};
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
var shouldShowPanelHeading = exports.shouldShowPanelHeading = function shouldShowPanelHeading(title, subheading, iconclass) {
|
|
670
|
-
var exportformat = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
671
|
-
var headerActions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
672
|
-
return !(0, _lodashEs.isEmpty)(title) || !(0, _lodashEs.isEmpty)(subheading) || !(0, _lodashEs.isEmpty)(iconclass) || (0, _lodashEs.size)(exportformat) > 0 || (0, _lodashEs.size)(headerActions) > 0;
|
|
476
|
+
const shouldShowPanelHeading = (title, subheading, iconclass, exportformat = [], headerActions = []) => {
|
|
477
|
+
return !isEmpty(title) || !isEmpty(subheading) || !isEmpty(iconclass) || size(exportformat) > 0 || size(headerActions) > 0;
|
|
673
478
|
};
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
var handleNewRowNavigation = exports.handleNewRowNavigation = function handleNewRowNavigation(tableRef, newRecord, internalDataset) {
|
|
680
|
-
if (!(0, _lodashEs.get)(tableRef, "current")) return;
|
|
681
|
-
var table = (0, _lodashEs.get)(tableRef, "current");
|
|
682
|
-
var sortingState = (0, _lodashEs.get)(table.getState(), "sorting");
|
|
683
|
-
var hasSorting = sortingState && (0, _lodashEs.size)(sortingState) > 0;
|
|
479
|
+
const handleNewRowNavigation = (tableRef, newRecord, internalDataset) => {
|
|
480
|
+
if (!get(tableRef, "current")) return;
|
|
481
|
+
const table = get(tableRef, "current");
|
|
482
|
+
const sortingState = get(table.getState(), "sorting");
|
|
483
|
+
const hasSorting = sortingState && size(sortingState) > 0;
|
|
684
484
|
if (hasSorting) {
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
485
|
+
setTimeout(() => {
|
|
486
|
+
const sortedRows = get(table.getSortedRowModel(), "rows", []);
|
|
487
|
+
const newRecordIndex = findIndex(
|
|
488
|
+
sortedRows,
|
|
489
|
+
(row) => get(row, "original._wmTableRowId") === get(newRecord, "_wmTableRowId")
|
|
490
|
+
);
|
|
691
491
|
if (newRecordIndex !== -1) {
|
|
692
|
-
|
|
693
|
-
|
|
492
|
+
const currentPageSize = get(table.getState(), "pagination.pageSize");
|
|
493
|
+
const targetPage = floor(newRecordIndex / currentPageSize);
|
|
694
494
|
table.setPageIndex(targetPage);
|
|
695
495
|
}
|
|
696
496
|
}, 0);
|
|
697
497
|
} else {
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
var totalPages = (0, _lodashEs.ceil)(newDatasetLength / currentPageSize);
|
|
703
|
-
table.setPageIndex((0, _lodashEs.max)([0, totalPages - 1]));
|
|
498
|
+
const currentPageSize = get(table.getState(), "pagination.pageSize");
|
|
499
|
+
const newDatasetLength = size(internalDataset) + 1;
|
|
500
|
+
const totalPages = ceil(newDatasetLength / currentPageSize);
|
|
501
|
+
table.setPageIndex(max([0, totalPages - 1]));
|
|
704
502
|
}
|
|
705
503
|
};
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
// Internal row
|
|
713
|
-
"
|
|
714
|
-
//
|
|
715
|
-
"
|
|
716
|
-
// Internal
|
|
717
|
-
"
|
|
718
|
-
// Internal
|
|
719
|
-
"
|
|
720
|
-
|
|
721
|
-
"
|
|
722
|
-
|
|
723
|
-
"_wm"];
|
|
724
|
-
|
|
725
|
-
/**
|
|
726
|
-
* Patterns for internal field names that should be excluded from cleaned data
|
|
727
|
-
*/
|
|
728
|
-
var INTERNAL_FIELD_SUFFIXES = ["_formWidget"];
|
|
729
|
-
|
|
730
|
-
/**
|
|
731
|
-
* Cleans row data by removing internal properties
|
|
732
|
-
* Handles both single objects and arrays of objects
|
|
733
|
-
* Removes:
|
|
734
|
-
* - Exact matches from INTERNAL_PROPERTIES list
|
|
735
|
-
* - Fields ending with internal suffixes (e.g., _formWidget)
|
|
736
|
-
* - Recursively cleans nested objects
|
|
737
|
-
* @param data The raw data - can be a single object, array of objects, or primitive
|
|
738
|
-
* @returns The cleaned data without internal properties
|
|
739
|
-
*/
|
|
740
|
-
var _cleanRowData = exports.cleanRowData = function cleanRowData(data) {
|
|
504
|
+
const INTERNAL_PROPERTIES = [
|
|
505
|
+
"_wmTableRowId",
|
|
506
|
+
// Internal row identifier
|
|
507
|
+
"getProperty",
|
|
508
|
+
// Helper function to get property values
|
|
509
|
+
"rowOperations",
|
|
510
|
+
// Internal column for row action buttons
|
|
511
|
+
"rowActions",
|
|
512
|
+
// Internal row actions property
|
|
513
|
+
"_wmListItemId",
|
|
514
|
+
// Internal list item identifier
|
|
515
|
+
"selected",
|
|
516
|
+
// Internal selected property
|
|
517
|
+
"_wm"
|
|
518
|
+
];
|
|
519
|
+
const INTERNAL_FIELD_SUFFIXES = ["_formWidget"];
|
|
520
|
+
const cleanRowData = (data) => {
|
|
741
521
|
if (!data) return data;
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
if ((0, _lodashEs.isArray)(data)) {
|
|
745
|
-
return data.map(function (item) {
|
|
746
|
-
return _cleanRowData(item);
|
|
747
|
-
});
|
|
522
|
+
if (isArray(data)) {
|
|
523
|
+
return data.map((item) => cleanRowData(item));
|
|
748
524
|
}
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
return 0; // continue
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
// Recursively clean nested objects/arrays
|
|
768
|
-
var value = data[key];
|
|
769
|
-
if (value && (0, _typeof2["default"])(value) === "object") {
|
|
770
|
-
result[key] = _cleanRowData(value);
|
|
771
|
-
} else {
|
|
772
|
-
result[key] = value;
|
|
773
|
-
}
|
|
774
|
-
},
|
|
775
|
-
_ret;
|
|
776
|
-
for (var _i = 0, _Object$keys = Object.keys(data); _i < _Object$keys.length; _i++) {
|
|
777
|
-
_ret = _loop();
|
|
778
|
-
if (_ret === 0) continue;
|
|
525
|
+
if (typeof data === "object") {
|
|
526
|
+
const result = {};
|
|
527
|
+
for (const key of Object.keys(data)) {
|
|
528
|
+
if (INTERNAL_PROPERTIES.includes(key)) {
|
|
529
|
+
continue;
|
|
530
|
+
}
|
|
531
|
+
if (INTERNAL_FIELD_SUFFIXES.some((suffix) => key.endsWith(suffix))) {
|
|
532
|
+
continue;
|
|
533
|
+
}
|
|
534
|
+
const value = data[key];
|
|
535
|
+
if (value && typeof value === "object") {
|
|
536
|
+
result[key] = cleanRowData(value);
|
|
537
|
+
} else {
|
|
538
|
+
result[key] = value;
|
|
539
|
+
}
|
|
779
540
|
}
|
|
780
541
|
return result;
|
|
781
542
|
}
|
|
782
|
-
|
|
783
|
-
// For primitive types, return as is
|
|
784
543
|
return data;
|
|
785
544
|
};
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
var fallbackSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
|
|
790
|
-
var columnSize = fallbackSize;
|
|
791
|
-
var styleWidth = width;
|
|
545
|
+
const parseWidth = (width, fallbackSize = 150) => {
|
|
546
|
+
let columnSize = fallbackSize;
|
|
547
|
+
const styleWidth = width;
|
|
792
548
|
if (typeof styleWidth === "string") {
|
|
793
|
-
// Convert percentage to a pixel value (assuming viewport width)
|
|
794
549
|
if (styleWidth.endsWith("%")) {
|
|
795
|
-
|
|
796
|
-
// Use a base width of 1200px for percentage calculations
|
|
550
|
+
const percentage = parseFloat(styleWidth);
|
|
797
551
|
columnSize = Math.round(percentage / 100 * 1200);
|
|
798
552
|
} else if (styleWidth.endsWith("px")) {
|
|
799
553
|
columnSize = parseInt(styleWidth);
|
|
@@ -803,47 +557,73 @@ var parseWidth = exports.parseWidth = function parseWidth(width) {
|
|
|
803
557
|
}
|
|
804
558
|
return columnSize;
|
|
805
559
|
};
|
|
806
|
-
|
|
807
|
-
// Return empty string if colClass is not provided or not a string
|
|
560
|
+
const getColClass = (colClass, rowData, columnName) => {
|
|
808
561
|
if (!colClass || typeof colClass !== "string") {
|
|
809
562
|
return "";
|
|
810
563
|
}
|
|
811
|
-
|
|
812
|
-
// Trim whitespace
|
|
813
|
-
var trimmedClass = (0, _lodashEs.trim)(colClass);
|
|
564
|
+
const trimmedClass = trim(colClass);
|
|
814
565
|
if (!trimmedClass) {
|
|
815
566
|
return "";
|
|
816
567
|
}
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
// If it's not an expression, return as-is
|
|
568
|
+
const hasExpressionOperators = /[?&|<>!=]/.test(trimmedClass) || trimmedClass.includes("(") || trimmedClass.includes("&&") || trimmedClass.includes("||") || trimmedClass.includes("===") || trimmedClass.includes("!==");
|
|
569
|
+
const hasRowDataReference = trimmedClass.includes("rowData");
|
|
570
|
+
const hasColumnNameReference = trimmedClass.includes("columnName");
|
|
571
|
+
const isExpression = hasExpressionOperators || hasRowDataReference || hasColumnNameReference;
|
|
823
572
|
if (!isExpression) {
|
|
824
573
|
return trimmedClass;
|
|
825
574
|
}
|
|
826
|
-
|
|
827
|
-
// Evaluate the expression using Function constructor
|
|
828
575
|
try {
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
576
|
+
let expressionToEvaluate = trimmedClass;
|
|
577
|
+
const evaluated = new Function("rowData", "columnName", `return ${expressionToEvaluate}`)(
|
|
578
|
+
rowData,
|
|
579
|
+
columnName
|
|
580
|
+
);
|
|
581
|
+
if (evaluated === null || evaluated === void 0) {
|
|
834
582
|
return "";
|
|
835
583
|
}
|
|
836
|
-
|
|
837
|
-
// If it's a boolean, return empty string (falsy) or convert to string
|
|
838
584
|
if (typeof evaluated === "boolean") {
|
|
839
585
|
return evaluated ? String(evaluated) : "";
|
|
840
586
|
}
|
|
841
587
|
return String(evaluated);
|
|
842
588
|
} catch (error) {
|
|
843
589
|
console.warn("Failed to evaluate colClass expression:", trimmedClass, error);
|
|
844
|
-
// Return empty string on error to prevent breaking the UI
|
|
845
590
|
return "";
|
|
846
591
|
}
|
|
847
592
|
};
|
|
848
|
-
|
|
849
|
-
|
|
593
|
+
export * from "./constants";
|
|
594
|
+
export * from "./renderDisplayCell";
|
|
595
|
+
export * from "./buildSelectionColumns";
|
|
596
|
+
export * from "./validation";
|
|
597
|
+
export * from "./selectionUtils";
|
|
598
|
+
export * from "./columnBuilder";
|
|
599
|
+
export * from "./columnWidthDistribution";
|
|
600
|
+
export * from "./table-helpers";
|
|
601
|
+
export {
|
|
602
|
+
INTERNAL_PROPERTIES,
|
|
603
|
+
addUniqueRowIds,
|
|
604
|
+
cleanRowData,
|
|
605
|
+
extractDataArray,
|
|
606
|
+
flattenTableStructure,
|
|
607
|
+
getActionButtonClass,
|
|
608
|
+
getAggregateFunctions,
|
|
609
|
+
getBooleanDataset,
|
|
610
|
+
getButtonClasses,
|
|
611
|
+
getColClass,
|
|
612
|
+
getSpacingClasses,
|
|
613
|
+
getTableActionButtonClass,
|
|
614
|
+
getWidgetMappingForType,
|
|
615
|
+
handleNewRowNavigation,
|
|
616
|
+
isAddNewAction,
|
|
617
|
+
isColumnVisibleForViewport,
|
|
618
|
+
isDeleteAction,
|
|
619
|
+
isEditAction,
|
|
620
|
+
parseTableActions,
|
|
621
|
+
parseTableColumns,
|
|
622
|
+
parseTableRowActions,
|
|
623
|
+
parseTableRowExpansion,
|
|
624
|
+
parseTableStructureWithGroups,
|
|
625
|
+
parseWidth,
|
|
626
|
+
shouldShowPagination,
|
|
627
|
+
shouldShowPanelHeading,
|
|
628
|
+
validateEditingFields
|
|
629
|
+
};
|