@wavemaker-ai/react-runtime 1.0.0-rc.312 → 1.0.0-rc.317
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.d.ts +1 -0
- package/actions/navigation-action.js +275 -345
- 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/auth/RoleAuthGuard.d.ts +6 -0
- package/components/auth/RoleAuthGuard.js +65 -0
- 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 +813 -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.d.ts +1 -1
- package/components/basic/tree/Components/TreeNodeComponent.js +244 -170
- package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
- package/components/basic/tree/hooks/useTreePersistedState.d.ts +3 -0
- package/components/basic/tree/hooks/useTreePersistedState.js +38 -0
- package/components/basic/tree/index.d.ts +1 -0
- package/components/basic/tree/index.js +453 -454
- package/components/basic/tree/props.d.ts +18 -1
- package/components/basic/tree/props.js +0 -5
- package/components/basic/tree/utils.d.ts +16 -1
- package/components/basic/tree/utils.js +240 -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 +363 -447
- 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 +210 -155
- package/components/container/layout-grid/grid-column/index.js +69 -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 +534 -647
- 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 +320 -274
- 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 +701 -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 +1556 -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.d.ts +1 -1
- package/components/data/table/utils/columnBuilder.js +121 -160
- 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 +17 -13
- package/components/data/table/utils/index.js +483 -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 +57 -44
- package/components/layout/leftnav/props.d.ts +9 -0
- package/components/layout/leftnav/props.js +0 -5
- package/components/layout/leftnav/utils/page-class-util.d.ts +9 -0
- package/components/layout/leftnav/utils/page-class-util.js +28 -0
- 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 +192 -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 +100 -102
- package/components/page/page-content/index.js +21 -30
- package/components/page/page-content/props.js +0 -5
- package/components/page/page-context.d.ts +4 -0
- package/components/page/page-context.js +5 -0
- package/components/page/partial/index.js +50 -45
- package/components/page/partial/props.js +0 -5
- package/components/page/partial-container/index.js +78 -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.js +92 -98
- package/core/util/safe-is-equal.js +42 -94
- package/core/util/security.js +114 -153
- package/core/util/utils.d.ts +4 -1
- package/core/util/utils.js +88 -159
- package/core/widget-observer.js +34 -61
- package/higherOrder/BaseApp.js +328 -502
- package/higherOrder/BaseAppProps.d.ts +1 -0
- package/higherOrder/BaseAppProps.js +0 -5
- package/higherOrder/BaseDateTime.js +277 -231
- package/higherOrder/BasePage.js +474 -740
- 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 +314 -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 +816 -3207
- package/package.json +3 -19
- package/providers/AppProviders.js +21 -24
- package/runtime-dynamic/App.js +65 -93
- package/runtime-dynamic/app-initializer.js +193 -411
- 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 -45
- package/runtime-dynamic/components/prefab-content.js +37 -30
- package/runtime-dynamic/components/use-dynamic-component.js +55 -157
- package/runtime-dynamic/factories/build-base-page-like-component.d.ts +1 -1
- 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 +91 -0
- package/runtime-dynamic/factories/prefab-factory.d.ts +1 -1
- 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 +2 -10
- package/runtime-dynamic/factories/utils.js +47 -129
- 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/compile-render.d.ts +9 -0
- package/runtime-dynamic/services/compile-render.js +142 -0
- package/runtime-dynamic/services/component-ref-provider.d.ts +18 -3
- package/runtime-dynamic/services/component-ref-provider.js +52 -129
- package/runtime-dynamic/services/css-scoping.js +23 -28
- package/runtime-dynamic/services/fragment-url.js +37 -50
- package/runtime-dynamic/services/index.d.ts +2 -3
- package/runtime-dynamic/services/index.js +31 -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 +40 -118
- package/runtime-dynamic/services/resource-manager.d.ts +2 -2
- package/runtime-dynamic/services/resource-manager.js +24 -65
- package/runtime-dynamic/services/script-executor.js +46 -63
- package/runtime-dynamic/services/variable-factory.js +141 -184
- package/runtime-dynamic/services/variable-registry.js +65 -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.js +15 -30
- 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 +191 -41
- package/utils/custom-expression/index.js +58 -151
- package/utils/custom-expression/parser.js +108 -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.d.ts +1 -1
- package/utils/state-persistance.js +136 -253
- package/utils/style-utils.js +24 -78
- 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/runtime-dynamic/services/cache.d.ts +0 -29
- package/runtime-dynamic/services/cache.js +0 -57
- package/tsconfig.declaration.tsbuildinfo +0 -1
- package/types/global.d.js +0 -3
|
@@ -29,6 +29,17 @@ export interface TreeItem {
|
|
|
29
29
|
tId?: string;
|
|
30
30
|
isParent?: boolean;
|
|
31
31
|
}
|
|
32
|
+
/** Persisted tree widget state shape (URL / localStorage / sessionStorage via wm_state). */
|
|
33
|
+
export type TreeUrlState = {
|
|
34
|
+
/** Node ids that are expanded (nested shells open). Ancestors need not be listed; they are implied. */
|
|
35
|
+
expanded?: string[];
|
|
36
|
+
/** Last selected node id (optional). */
|
|
37
|
+
selected?: string;
|
|
38
|
+
/** @deprecated Legacy shape — migrated on read */
|
|
39
|
+
id?: string;
|
|
40
|
+
open?: boolean;
|
|
41
|
+
parentNode?: string[];
|
|
42
|
+
};
|
|
32
43
|
/**
|
|
33
44
|
* Base props specific to the WmTree component.
|
|
34
45
|
*/
|
|
@@ -90,6 +101,8 @@ export interface TreeProps {
|
|
|
90
101
|
**template**: partial name for custom node rendering .
|
|
91
102
|
*/
|
|
92
103
|
template?: string;
|
|
104
|
+
/** Persist expansion/selection via `URL`, `localStorage`, or `sessionStorage` (wm_state). */
|
|
105
|
+
statehandler?: string;
|
|
93
106
|
}
|
|
94
107
|
/**
|
|
95
108
|
* Combined props for the WmTree component, including base WaveMaker props.
|
|
@@ -113,7 +126,11 @@ export interface TreeNodeComponentProps {
|
|
|
113
126
|
/** Partial name from {@link TreeProps.template}; replaces default row with partial UI when set */
|
|
114
127
|
template?: string;
|
|
115
128
|
/** Page / fragment listener for partial container + widget registry */
|
|
116
|
-
listener?: Record<string, unknown
|
|
129
|
+
listener?: Record<string, unknown> | undefined;
|
|
130
|
+
/** Normalized expanded ids from URL (overlay until tree state hydrates) */
|
|
131
|
+
urlExpansionOverlay?: Set<string> | undefined;
|
|
132
|
+
/** Selected node id from URL persistence */
|
|
133
|
+
urlSelectedId?: string | undefined;
|
|
117
134
|
}
|
|
118
135
|
export type TreePartialNodeApi = {
|
|
119
136
|
select: () => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type StorageType } from "@wavemaker-ai/react-runtime/utils/state-persistance";
|
|
2
|
+
import { TreeNodeData, TreeItem, TreePartialNodeApi, TreeUrlState } from "./props";
|
|
2
3
|
/** Whether the dataset row (`node.data`) is disabled via its `disabled` property. */
|
|
3
4
|
export declare const isTreeNodeDisabled: (data: TreeNodeData | undefined | null) => boolean;
|
|
4
5
|
export declare const getNestedPropertyLocal: (obj: any, path: string) => any;
|
|
@@ -17,6 +18,20 @@ export declare const findNodeById: (nodes: TreeItem[], id: string) => TreeItem |
|
|
|
17
18
|
* Used so partial templates can expand/collapse by id even when the passed-in `TreeItem`
|
|
18
19
|
*/
|
|
19
20
|
export declare const toggleExpansionInTree: (nodes: TreeItem[], nodeId: string) => TreeItem[];
|
|
21
|
+
/** Migrate legacy `{ id, open, parentNode }` URL payloads to an `expanded` id list. */
|
|
22
|
+
export declare const migrateLegacyTreeUrlState: (raw: TreeUrlState | null | undefined) => string[];
|
|
23
|
+
/**
|
|
24
|
+
* Ensures all ancestors of every expanded id are included so nested paths reopen after refresh.
|
|
25
|
+
*/
|
|
26
|
+
export declare const normalizeExpandedIds: (tree: TreeItem[], expandedIds: Iterable<string>) => Set<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Node ids that are expanded **in the visible tree** (parent chain must be open / pre-open).
|
|
29
|
+
* Descendants of a collapsed branch are omitted even if `open` flags were left true internally.
|
|
30
|
+
*/
|
|
31
|
+
export declare const collectExpandedNodeIdsForUrl: (nodes: TreeItem[]) => string[];
|
|
32
|
+
export declare const saveTreeState: (name: string, storage: StorageType, stateToSave: Partial<TreeUrlState> | null) => void;
|
|
33
|
+
export declare const getTreeState: (name: string, storage: StorageType) => TreeUrlState | null;
|
|
34
|
+
export declare const clearTreeState: (name: string, storage: StorageType) => void;
|
|
20
35
|
/**
|
|
21
36
|
* Dataset row fields for `pageParams.item` (no methods — those are merged in the hook as {@link TreePartialNodeApi}).
|
|
22
37
|
*/
|
|
@@ -1,272 +1,327 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
Object.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var
|
|
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]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import isArray from "lodash-es/isArray";
|
|
21
|
+
import cloneDeep from "lodash-es/cloneDeep";
|
|
22
|
+
import get from "lodash-es/get";
|
|
23
|
+
import {
|
|
24
|
+
clearWidgetState,
|
|
25
|
+
getWidgetState,
|
|
26
|
+
setWidgetState
|
|
27
|
+
} from "../../../utils/state-persistance";
|
|
28
|
+
const isTreeNodeDisabled = (data) => {
|
|
20
29
|
if (!data) return false;
|
|
21
|
-
|
|
30
|
+
const disabled_node = data.disabled;
|
|
22
31
|
if (disabled_node === false || disabled_node === "false") {
|
|
23
32
|
return false;
|
|
24
33
|
}
|
|
25
34
|
return Boolean(disabled_node);
|
|
26
35
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var getNestedPropertyLocal = exports.getNestedPropertyLocal = function getNestedPropertyLocal(obj, path) {
|
|
30
|
-
if (!path || !obj) return undefined;
|
|
36
|
+
const getNestedPropertyLocal = (obj, path) => {
|
|
37
|
+
if (!path || !obj) return void 0;
|
|
31
38
|
try {
|
|
32
|
-
|
|
33
|
-
return (
|
|
39
|
+
const normalizedPath = path.replace(/\[(\d+)\]/g, ".$1").replace(/^\./, "");
|
|
40
|
+
return get(obj, normalizedPath);
|
|
34
41
|
} catch (error) {
|
|
35
|
-
return
|
|
42
|
+
return void 0;
|
|
36
43
|
}
|
|
37
44
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var uniqueId = baseId;
|
|
42
|
-
var counter = 1;
|
|
45
|
+
const generateUniqueNodeId = (baseId, usedNodeIds) => {
|
|
46
|
+
let uniqueId = baseId;
|
|
47
|
+
let counter = 1;
|
|
43
48
|
while (usedNodeIds.has(uniqueId)) {
|
|
44
|
-
uniqueId =
|
|
49
|
+
uniqueId = `${baseId}_${counter}`;
|
|
45
50
|
counter++;
|
|
46
51
|
}
|
|
47
52
|
usedNodeIds.add(uniqueId);
|
|
48
53
|
return uniqueId;
|
|
49
54
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
nodelabel = options.nodelabel,
|
|
55
|
-
nodeicon = options.nodeicon,
|
|
56
|
-
nodechildren = options.nodechildren,
|
|
57
|
-
nodeid = options.nodeid,
|
|
58
|
-
generateUniqueNodeId = options.generateUniqueNodeId;
|
|
59
|
-
|
|
60
|
-
// Helper functions for property resolution
|
|
61
|
-
var getLabelValue = function getLabelValue() {
|
|
62
|
-
var _ref, _ref2, _ref3, _item$nodelabel;
|
|
55
|
+
const processNode = (item, depth, parent, rootDataset, nodeIndex, treeName, options) => {
|
|
56
|
+
const { levels, nodelabel, nodeicon, nodechildren, nodeid, generateUniqueNodeId: generateUniqueNodeId2 } = options;
|
|
57
|
+
const getLabelValue = () => {
|
|
58
|
+
var _a, _b, _c, _d;
|
|
63
59
|
if (nodelabel && (nodelabel.includes("[") || nodelabel.includes("."))) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (currentItemValue !== undefined) {
|
|
60
|
+
const currentItemValue = getNestedPropertyLocal(item, nodelabel);
|
|
61
|
+
if (currentItemValue !== void 0) {
|
|
67
62
|
return currentItemValue;
|
|
68
63
|
}
|
|
69
|
-
// If not found on current item, fall back to default values (don't do global search)
|
|
70
64
|
}
|
|
71
|
-
return (
|
|
65
|
+
return (_d = (_c = (_b = (_a = item[nodelabel]) != null ? _a : item.label) != null ? _b : item.name) != null ? _c : String(item)) != null ? _d : nodelabel;
|
|
72
66
|
};
|
|
73
|
-
|
|
74
|
-
var
|
|
67
|
+
const getIconValue = () => {
|
|
68
|
+
var _a, _b;
|
|
75
69
|
if (nodeicon && (nodeicon.includes("[") || nodeicon.includes("."))) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (currentItemValue !== undefined) {
|
|
70
|
+
const currentItemValue = getNestedPropertyLocal(item, nodeicon);
|
|
71
|
+
if (currentItemValue !== void 0) {
|
|
79
72
|
return currentItemValue;
|
|
80
73
|
}
|
|
81
|
-
// If not found on current item, fall back to default values (don't do global search)
|
|
82
74
|
}
|
|
83
|
-
return (
|
|
75
|
+
return (_b = (_a = item[nodeicon]) != null ? _a : item.icon) != null ? _b : nodeicon;
|
|
84
76
|
};
|
|
85
|
-
|
|
77
|
+
const getNodeIdValue = () => {
|
|
78
|
+
var _a, _b;
|
|
86
79
|
if (nodeid && (nodeid.includes("[") || nodeid.includes("."))) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (currentItemValue !== undefined) {
|
|
80
|
+
const currentItemValue = getNestedPropertyLocal(item, nodeid);
|
|
81
|
+
if (currentItemValue !== void 0) {
|
|
90
82
|
return String(currentItemValue);
|
|
91
83
|
}
|
|
92
|
-
|
|
93
|
-
return undefined;
|
|
84
|
+
return void 0;
|
|
94
85
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var directValue = item[nodeid];
|
|
98
|
-
if (directValue !== undefined) {
|
|
86
|
+
const directValue = item[nodeid];
|
|
87
|
+
if (directValue !== void 0) {
|
|
99
88
|
return String(directValue);
|
|
100
89
|
}
|
|
101
|
-
|
|
102
|
-
// If no nodeid specified or found, generate a fallback for React's internal use
|
|
103
90
|
if (!nodeid) {
|
|
104
|
-
|
|
105
|
-
var fallbackId = (_ref5 = (_item$nodeId = item.nodeId) !== null && _item$nodeId !== void 0 ? _item$nodeId : item.id) !== null && _ref5 !== void 0 ? _ref5 : "node_".concat(Date.now(), "_").concat(Math.random());
|
|
91
|
+
const fallbackId = (_b = (_a = item.nodeId) != null ? _a : item.id) != null ? _b : `node_${Date.now()}_${Math.random()}`;
|
|
106
92
|
return String(fallbackId);
|
|
107
93
|
}
|
|
108
|
-
return
|
|
94
|
+
return void 0;
|
|
109
95
|
};
|
|
110
|
-
|
|
96
|
+
const getChildrenValue = () => {
|
|
111
97
|
if (nodechildren && (nodechildren.includes("[") || nodechildren.includes("."))) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (currentItemValue !== undefined) {
|
|
98
|
+
const currentItemValue = getNestedPropertyLocal(item, nodechildren);
|
|
99
|
+
if (currentItemValue !== void 0) {
|
|
115
100
|
return currentItemValue;
|
|
116
101
|
}
|
|
117
|
-
// If not found on current item, fall back to default values (don't do global search)
|
|
118
102
|
}
|
|
119
|
-
// Use logical OR (||) like Angular to fall back to item.children only if the result is falsy
|
|
120
103
|
return item[nodechildren] || item.children;
|
|
121
104
|
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
// If nodeIdValue is undefined (like Angular), generate a fallback
|
|
129
|
-
var finalNodeId = nodeIdValue || generateUniqueNodeId("node_".concat(Date.now(), "_").concat(nodeIndex || 0));
|
|
130
|
-
var node = {
|
|
105
|
+
const labelValue = getLabelValue();
|
|
106
|
+
const iconValue = getIconValue();
|
|
107
|
+
const nodeIdValue = getNodeIdValue();
|
|
108
|
+
const childrenData = getChildrenValue();
|
|
109
|
+
const finalNodeId = nodeIdValue || generateUniqueNodeId2(`node_${Date.now()}_${nodeIndex || 0}`);
|
|
110
|
+
const node = {
|
|
131
111
|
name: String(labelValue || ""),
|
|
132
112
|
label: String(labelValue || ""),
|
|
133
113
|
icon: iconValue,
|
|
134
114
|
nodeId: String(finalNodeId),
|
|
135
|
-
data: (
|
|
115
|
+
data: cloneDeep(item),
|
|
136
116
|
open: depth < levels,
|
|
137
117
|
checked: item.checked || false,
|
|
138
|
-
parent
|
|
139
|
-
tId: treeName ?
|
|
140
|
-
isParent: (
|
|
118
|
+
parent,
|
|
119
|
+
tId: treeName ? `${treeName}_${finalNodeId}` : `tree_node_${finalNodeId}`,
|
|
120
|
+
isParent: isArray(childrenData) && childrenData.length > 0
|
|
141
121
|
};
|
|
142
|
-
if ((
|
|
143
|
-
node.children = childrenData.map(
|
|
144
|
-
|
|
145
|
-
|
|
122
|
+
if (isArray(childrenData) && childrenData.length > 0) {
|
|
123
|
+
node.children = childrenData.map(
|
|
124
|
+
(child, index) => processNode(child, depth + 1, node, rootDataset, index, treeName, options)
|
|
125
|
+
);
|
|
146
126
|
}
|
|
147
127
|
return node;
|
|
148
128
|
};
|
|
149
|
-
|
|
150
|
-
var
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if (String(node.nodeId) === String(id)) return node;
|
|
157
|
-
if ((_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length) {
|
|
158
|
-
var found = _findNodeById(node.children, id);
|
|
159
|
-
if (found) return found;
|
|
160
|
-
}
|
|
129
|
+
const findNodeById = (nodes, id) => {
|
|
130
|
+
var _a;
|
|
131
|
+
for (const node of nodes) {
|
|
132
|
+
if (String(node.nodeId) === String(id)) return node;
|
|
133
|
+
if ((_a = node.children) == null ? void 0 : _a.length) {
|
|
134
|
+
const found = findNodeById(node.children, id);
|
|
135
|
+
if (found) return found;
|
|
161
136
|
}
|
|
162
|
-
} catch (err) {
|
|
163
|
-
_iterator.e(err);
|
|
164
|
-
} finally {
|
|
165
|
-
_iterator.f();
|
|
166
137
|
}
|
|
167
138
|
return null;
|
|
168
139
|
};
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
* Used so partial templates can expand/collapse by id even when the passed-in `TreeItem`
|
|
173
|
-
*/
|
|
174
|
-
var _toggleExpansionInTree = exports.toggleExpansionInTree = function toggleExpansionInTree(nodes, nodeId) {
|
|
175
|
-
return nodes.map(function (n) {
|
|
176
|
-
var _n$children;
|
|
140
|
+
const toggleExpansionInTree = (nodes, nodeId) => {
|
|
141
|
+
return nodes.map((n) => {
|
|
142
|
+
var _a;
|
|
177
143
|
if (n.nodeId === nodeId) {
|
|
178
|
-
return
|
|
179
|
-
open: !n.open
|
|
180
|
-
});
|
|
144
|
+
return __spreadProps(__spreadValues({}, n), { open: !n.open });
|
|
181
145
|
}
|
|
182
|
-
if ((
|
|
183
|
-
return
|
|
184
|
-
children: _toggleExpansionInTree(n.children, nodeId)
|
|
185
|
-
});
|
|
146
|
+
if ((_a = n.children) == null ? void 0 : _a.length) {
|
|
147
|
+
return __spreadProps(__spreadValues({}, n), { children: toggleExpansionInTree(n.children, nodeId) });
|
|
186
148
|
}
|
|
187
149
|
return n;
|
|
188
150
|
});
|
|
189
151
|
};
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
152
|
+
const migrateLegacyTreeUrlState = (raw) => {
|
|
153
|
+
if (!raw || typeof raw !== "object") return [];
|
|
154
|
+
if (Array.isArray(raw.expanded) && raw.expanded.length) {
|
|
155
|
+
return raw.expanded.map((id) => String(id));
|
|
156
|
+
}
|
|
157
|
+
const ids = /* @__PURE__ */ new Set();
|
|
158
|
+
if (Array.isArray(raw.parentNode)) {
|
|
159
|
+
for (const x of raw.parentNode) {
|
|
160
|
+
if (x != null && x !== "") ids.add(String(x));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (raw.open && raw.id != null && raw.id !== "") {
|
|
164
|
+
ids.add(String(raw.id));
|
|
165
|
+
}
|
|
166
|
+
return [...ids];
|
|
167
|
+
};
|
|
168
|
+
const normalizeExpandedIds = (tree, expandedIds) => {
|
|
169
|
+
const set = /* @__PURE__ */ new Set();
|
|
170
|
+
for (const id of expandedIds) {
|
|
171
|
+
if (id == null || id === "") continue;
|
|
172
|
+
const node = findNodeById(tree, String(id));
|
|
173
|
+
if (!node) continue;
|
|
174
|
+
let current = node;
|
|
175
|
+
while (current) {
|
|
176
|
+
set.add(String(current.nodeId));
|
|
177
|
+
current = current.parent;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return set;
|
|
181
|
+
};
|
|
182
|
+
const collectExpandedNodeIdsForUrl = (nodes) => {
|
|
183
|
+
const out = [];
|
|
184
|
+
const walk = (list, branchOpen) => {
|
|
185
|
+
var _a;
|
|
186
|
+
for (const n of list) {
|
|
187
|
+
if (!branchOpen) continue;
|
|
188
|
+
if (n.open) {
|
|
189
|
+
out.push(n.nodeId);
|
|
190
|
+
if ((_a = n.children) == null ? void 0 : _a.length) {
|
|
191
|
+
walk(n.children, true);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
walk(nodes, true);
|
|
197
|
+
return out;
|
|
198
|
+
};
|
|
199
|
+
const encodeNodeIdForUrl = (id) => {
|
|
200
|
+
try {
|
|
201
|
+
return btoa(unescape(encodeURIComponent(id))).replace(/=+$/, "");
|
|
202
|
+
} catch (e) {
|
|
203
|
+
return id;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
const decodeNodeIdFromUrl = (token) => {
|
|
207
|
+
try {
|
|
208
|
+
return decodeURIComponent(escape(atob(token)));
|
|
209
|
+
} catch (e) {
|
|
210
|
+
return token;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
const toTreeStatePayload = (storage, state) => {
|
|
214
|
+
var _a;
|
|
215
|
+
if (storage !== "URL") return state;
|
|
216
|
+
const out = {};
|
|
217
|
+
if ((_a = state.expanded) == null ? void 0 : _a.length) {
|
|
218
|
+
out.expanded = [...new Set(state.expanded.map(String))].map(encodeNodeIdForUrl);
|
|
219
|
+
}
|
|
220
|
+
if (state.selected) out.selected = encodeNodeIdForUrl(String(state.selected));
|
|
221
|
+
return out;
|
|
222
|
+
};
|
|
223
|
+
const fromTreeStatePayload = (storage, raw) => {
|
|
224
|
+
var _a, _b;
|
|
225
|
+
if (raw == null || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
226
|
+
const state = raw;
|
|
227
|
+
if (storage !== "URL") return state;
|
|
228
|
+
const out = {};
|
|
229
|
+
if ((_a = state.expanded) == null ? void 0 : _a.length) {
|
|
230
|
+
out.expanded = [...new Set(state.expanded.map((id) => decodeNodeIdFromUrl(String(id))))];
|
|
231
|
+
}
|
|
232
|
+
if (state.selected) out.selected = decodeNodeIdFromUrl(String(state.selected));
|
|
233
|
+
return ((_b = out.expanded) == null ? void 0 : _b.length) || out.selected ? out : null;
|
|
234
|
+
};
|
|
235
|
+
const saveTreeState = (name, storage, stateToSave) => {
|
|
236
|
+
const config = { name, type: "tree", storage };
|
|
237
|
+
if (stateToSave == null) {
|
|
238
|
+
clearWidgetState(config);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
if (storage === "URL") {
|
|
242
|
+
clearWidgetState(config);
|
|
243
|
+
}
|
|
244
|
+
setWidgetState(config, toTreeStatePayload(storage, stateToSave));
|
|
245
|
+
};
|
|
246
|
+
const getTreeState = (name, storage) => {
|
|
247
|
+
return fromTreeStatePayload(storage, getWidgetState({ name, type: "tree", storage }));
|
|
248
|
+
};
|
|
249
|
+
const clearTreeState = (name, storage) => {
|
|
250
|
+
clearWidgetState({ name, type: "tree", storage });
|
|
251
|
+
};
|
|
252
|
+
const getTreePartialRowPayload = (node) => {
|
|
253
|
+
var _a;
|
|
254
|
+
const raw = node.data;
|
|
255
|
+
const row = raw && typeof raw === "object" && !Array.isArray(raw) ? __spreadValues({}, raw) : {};
|
|
256
|
+
return __spreadProps(__spreadValues({}, row), {
|
|
257
|
+
name: (_a = node.label) != null ? _a : node.name
|
|
200
258
|
});
|
|
201
259
|
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
*/
|
|
206
|
-
var computeTreeNodeDepthFromRoot = exports.computeTreeNodeDepthFromRoot = function computeTreeNodeDepthFromRoot(node) {
|
|
207
|
-
var depthFromRoot = 0;
|
|
208
|
-
var ancestor = node.parent;
|
|
260
|
+
const computeTreeNodeDepthFromRoot = (node) => {
|
|
261
|
+
let depthFromRoot = 0;
|
|
262
|
+
let ancestor = node.parent;
|
|
209
263
|
while (ancestor) {
|
|
210
264
|
depthFromRoot += 1;
|
|
211
265
|
ancestor = ancestor.parent;
|
|
212
266
|
}
|
|
213
267
|
return depthFromRoot;
|
|
214
268
|
};
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Slash-separated path from root to this node (`/a/b/c`).
|
|
218
|
-
*/
|
|
219
|
-
var buildTreePathFromRoot = exports.buildTreePathFromRoot = function buildTreePathFromRoot(node) {
|
|
269
|
+
const buildTreePathFromRoot = (node) => {
|
|
220
270
|
if (!node) return "";
|
|
221
|
-
|
|
222
|
-
|
|
271
|
+
const segments = [];
|
|
272
|
+
let current = node;
|
|
223
273
|
while (current) {
|
|
224
274
|
segments.unshift(current.name);
|
|
225
275
|
current = current.parent;
|
|
226
276
|
}
|
|
227
|
-
return
|
|
277
|
+
return `/${segments.join("/")}`;
|
|
228
278
|
};
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
return String(child.nodeId) === String(node.nodeId);
|
|
238
|
-
}) : 0;
|
|
239
|
-
var siblingIndex = rawSiblingIndex < 0 ? 0 : rawSiblingIndex;
|
|
240
|
-
var level = computeTreeNodeDepthFromRoot(node);
|
|
241
|
-
var hasChildren = !!(node.children && node.children.length > 0);
|
|
242
|
-
var selectedId = selectedTreeNodeId != null ? String(selectedTreeNodeId) : "";
|
|
279
|
+
const buildTreePartialSnapshot = (node, selectedTreeNodeId) => {
|
|
280
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
281
|
+
const siblings = (_a = node.parent) == null ? void 0 : _a.children;
|
|
282
|
+
const rawSiblingIndex = (siblings == null ? void 0 : siblings.length) ? siblings.findIndex((child) => String(child.nodeId) === String(node.nodeId)) : 0;
|
|
283
|
+
const siblingIndex = rawSiblingIndex < 0 ? 0 : rawSiblingIndex;
|
|
284
|
+
const level = computeTreeNodeDepthFromRoot(node);
|
|
285
|
+
const hasChildren = !!(node.children && node.children.length > 0);
|
|
286
|
+
const selectedId = selectedTreeNodeId != null ? String(selectedTreeNodeId) : "";
|
|
243
287
|
return {
|
|
244
288
|
data: node.data,
|
|
245
289
|
nodeId: node.nodeId,
|
|
246
|
-
parentId: (
|
|
247
|
-
tId: (
|
|
248
|
-
name: (
|
|
249
|
-
label: (
|
|
250
|
-
level
|
|
251
|
-
children: hasChildren ? node.children.map(
|
|
252
|
-
return _buildTreePartialSnapshot(child, selectedTreeNodeId);
|
|
253
|
-
}) : [],
|
|
290
|
+
parentId: (_c = (_b = node.parent) == null ? void 0 : _b.nodeId) != null ? _c : null,
|
|
291
|
+
tId: (_d = node.tId) != null ? _d : "",
|
|
292
|
+
name: (_e = node.name) != null ? _e : "",
|
|
293
|
+
label: (_f = node.label) != null ? _f : "",
|
|
294
|
+
level,
|
|
295
|
+
children: hasChildren ? node.children.map((child) => buildTreePartialSnapshot(child, selectedTreeNodeId)) : [],
|
|
254
296
|
isParent: hasChildren,
|
|
255
297
|
isFirstNode: siblings ? siblingIndex === 0 : true,
|
|
256
|
-
isLastNode: siblings ? siblingIndex === ((
|
|
298
|
+
isLastNode: siblings ? siblingIndex === ((_g = siblings == null ? void 0 : siblings.length) != null ? _g : 1) - 1 : true,
|
|
257
299
|
open: !!node.open,
|
|
258
300
|
checked: !!node.checked,
|
|
259
301
|
checkedOld: !!node.checked,
|
|
260
302
|
isSelected: selectedId !== "" && selectedId === String(node.nodeId)
|
|
261
303
|
};
|
|
262
304
|
};
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
305
|
+
const assembleTreePartialItem = (node, partialNodeApi) => __spreadProps(__spreadValues({}, getTreePartialRowPayload(node)), {
|
|
306
|
+
node: partialNodeApi,
|
|
307
|
+
_node: partialNodeApi
|
|
308
|
+
});
|
|
309
|
+
export {
|
|
310
|
+
assembleTreePartialItem,
|
|
311
|
+
buildTreePartialSnapshot,
|
|
312
|
+
buildTreePathFromRoot,
|
|
313
|
+
clearTreeState,
|
|
314
|
+
collectExpandedNodeIdsForUrl,
|
|
315
|
+
computeTreeNodeDepthFromRoot,
|
|
316
|
+
findNodeById,
|
|
317
|
+
generateUniqueNodeId,
|
|
318
|
+
getNestedPropertyLocal,
|
|
319
|
+
getTreePartialRowPayload,
|
|
320
|
+
getTreeState,
|
|
321
|
+
isTreeNodeDisabled,
|
|
322
|
+
migrateLegacyTreeUrlState,
|
|
323
|
+
normalizeExpandedIds,
|
|
324
|
+
processNode,
|
|
325
|
+
saveTreeState,
|
|
326
|
+
toggleExpansionInTree
|
|
327
|
+
};
|