@wavemaker-ai/react-runtime 1.0.0-rc.312 → 1.0.0-rc.314
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 +210 -155
- 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.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 +327 -502
- 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 +815 -3206
- 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 +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 -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/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 +23 -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 +40 -118
- 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.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 +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.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/tsconfig.declaration.tsbuildinfo +0 -1
- package/types/global.d.js +0 -3
package/core/util/security.js
CHANGED
|
@@ -1,183 +1,144 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
SecurityContext["STYLE"] = "STYLE";
|
|
21
|
-
SecurityContext["SCRIPT"] = "SCRIPT";
|
|
22
|
-
SecurityContext["URL"] = "URL";
|
|
23
|
-
SecurityContext["RESOURCE_URL"] = "RESOURCE_URL";
|
|
24
|
-
return SecurityContext;
|
|
25
|
-
}({});
|
|
26
|
-
/**
|
|
27
|
-
* Security service for sanitizing and trusting content
|
|
28
|
-
*/
|
|
29
|
-
var SecurityService = exports.SecurityService = /*#__PURE__*/function () {
|
|
30
|
-
function SecurityService() {
|
|
31
|
-
(0, _classCallCheck2["default"])(this, SecurityService);
|
|
32
|
-
} // Private constructor to enforce singleton
|
|
33
|
-
return (0, _createClass2["default"])(SecurityService, [{
|
|
34
|
-
key: "sanitizeHtml",
|
|
35
|
-
value:
|
|
36
|
-
/**
|
|
37
|
-
* Sanitize HTML content
|
|
38
|
-
*/
|
|
39
|
-
function sanitizeHtml(content) {
|
|
40
|
-
if (!content) return "";
|
|
41
|
-
return _dompurify["default"].sanitize(content, {
|
|
42
|
-
USE_PROFILES: {
|
|
43
|
-
html: true
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Sanitize style content
|
|
50
|
-
*/
|
|
51
|
-
}, {
|
|
52
|
-
key: "sanitizeStyle",
|
|
53
|
-
value: function sanitizeStyle(content) {
|
|
54
|
-
if (!content) return "";
|
|
55
|
-
return _dompurify["default"].sanitize(content, {
|
|
56
|
-
USE_PROFILES: {
|
|
57
|
-
html: true
|
|
58
|
-
},
|
|
59
|
-
ALLOWED_TAGS: ["style"],
|
|
60
|
-
ALLOWED_ATTR: ["type"]
|
|
61
|
-
});
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import DOMPurify from "dompurify";
|
|
5
|
+
import startsWith from "lodash-es/startsWith";
|
|
6
|
+
var SecurityContext = /* @__PURE__ */ ((SecurityContext2) => {
|
|
7
|
+
SecurityContext2["HTML"] = "HTML";
|
|
8
|
+
SecurityContext2["STYLE"] = "STYLE";
|
|
9
|
+
SecurityContext2["SCRIPT"] = "SCRIPT";
|
|
10
|
+
SecurityContext2["URL"] = "URL";
|
|
11
|
+
SecurityContext2["RESOURCE_URL"] = "RESOURCE_URL";
|
|
12
|
+
return SecurityContext2;
|
|
13
|
+
})(SecurityContext || {});
|
|
14
|
+
const _SecurityService = class _SecurityService {
|
|
15
|
+
constructor() {
|
|
16
|
+
}
|
|
17
|
+
static getInstance() {
|
|
18
|
+
if (!_SecurityService.instance) {
|
|
19
|
+
_SecurityService.instance = new _SecurityService();
|
|
62
20
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
21
|
+
return _SecurityService.instance;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sanitize HTML content
|
|
25
|
+
*/
|
|
26
|
+
sanitizeHtml(content) {
|
|
27
|
+
if (!content) return "";
|
|
28
|
+
return DOMPurify.sanitize(content, {
|
|
29
|
+
USE_PROFILES: { html: true }
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sanitize style content
|
|
34
|
+
*/
|
|
35
|
+
sanitizeStyle(content) {
|
|
36
|
+
if (!content) return "";
|
|
37
|
+
return DOMPurify.sanitize(content, {
|
|
38
|
+
USE_PROFILES: { html: true },
|
|
39
|
+
ALLOWED_TAGS: ["style"],
|
|
40
|
+
ALLOWED_ATTR: ["type"]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Sanitize script content
|
|
45
|
+
*/
|
|
46
|
+
sanitizeScript(content) {
|
|
47
|
+
if (!content) return "";
|
|
48
|
+
return content;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Sanitize URL
|
|
52
|
+
*/
|
|
53
|
+
sanitizeUrl(content) {
|
|
54
|
+
if (!content) return "";
|
|
55
|
+
const url = content.trim().toLowerCase();
|
|
56
|
+
if (url.startsWith("javascript:") || url.startsWith("data:") || url.startsWith("vbscript:")) {
|
|
57
|
+
return "";
|
|
74
58
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
59
|
+
return content;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sanitize Resource URL
|
|
63
|
+
*/
|
|
64
|
+
sanitizeResourceUrl(content) {
|
|
65
|
+
if (!content) return "";
|
|
66
|
+
const sanitizedUrl = this.sanitizeUrl(content);
|
|
67
|
+
return sanitizedUrl ? String(sanitizedUrl) : "";
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Trust content based on security context
|
|
71
|
+
*/
|
|
72
|
+
trustAs(content, context) {
|
|
73
|
+
if (!content) return "";
|
|
74
|
+
switch (context) {
|
|
75
|
+
case "HTML" /* HTML */:
|
|
76
|
+
return this.sanitizeHtml(content);
|
|
77
|
+
case "STYLE" /* STYLE */:
|
|
78
|
+
return this.sanitizeStyle(content);
|
|
79
|
+
case "SCRIPT" /* SCRIPT */:
|
|
80
|
+
return this.sanitizeScript(content);
|
|
81
|
+
case "URL" /* URL */:
|
|
82
|
+
return this.sanitizeUrl(content);
|
|
83
|
+
case "RESOURCE_URL" /* RESOURCE_URL */:
|
|
84
|
+
return this.sanitizeResourceUrl(content);
|
|
85
|
+
default:
|
|
86
86
|
return "";
|
|
87
|
-
}
|
|
88
|
-
return content;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Sanitize Resource URL
|
|
93
|
-
*/
|
|
94
|
-
}, {
|
|
95
|
-
key: "sanitizeResourceUrl",
|
|
96
|
-
value: function sanitizeResourceUrl(content) {
|
|
97
|
-
if (!content) return "";
|
|
98
|
-
// First sanitize as a regular URL, then cast to resource URL
|
|
99
|
-
var sanitizedUrl = this.sanitizeUrl(content);
|
|
100
|
-
return sanitizedUrl ? String(sanitizedUrl) : "";
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Trust content based on security context
|
|
105
|
-
*/
|
|
106
|
-
}, {
|
|
107
|
-
key: "trustAs",
|
|
108
|
-
value: function trustAs(content, context) {
|
|
109
|
-
if (!content) return "";
|
|
110
|
-
switch (context) {
|
|
111
|
-
case SecurityContext.HTML:
|
|
112
|
-
return this.sanitizeHtml(content);
|
|
113
|
-
case SecurityContext.STYLE:
|
|
114
|
-
return this.sanitizeStyle(content);
|
|
115
|
-
case SecurityContext.SCRIPT:
|
|
116
|
-
return this.sanitizeScript(content);
|
|
117
|
-
case SecurityContext.URL:
|
|
118
|
-
return this.sanitizeUrl(content);
|
|
119
|
-
case SecurityContext.RESOURCE_URL:
|
|
120
|
-
return this.sanitizeResourceUrl(content);
|
|
121
|
-
default:
|
|
122
|
-
return "";
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}], [{
|
|
126
|
-
key: "getInstance",
|
|
127
|
-
value: function getInstance() {
|
|
128
|
-
if (!SecurityService.instance) {
|
|
129
|
-
SecurityService.instance = new SecurityService();
|
|
130
|
-
}
|
|
131
|
-
return SecurityService.instance;
|
|
132
87
|
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
_SecurityService
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
__publicField(_SecurityService, "instance");
|
|
91
|
+
let SecurityService = _SecurityService;
|
|
92
|
+
import { useMemo } from "react";
|
|
93
|
+
const useTrustAs = (content, context) => {
|
|
94
|
+
return useMemo(() => {
|
|
139
95
|
return SecurityService.getInstance().trustAs(content, context);
|
|
140
96
|
}, [content, context]);
|
|
141
97
|
};
|
|
142
|
-
|
|
143
|
-
return
|
|
98
|
+
const useSafeHtml = (content) => {
|
|
99
|
+
return useMemo(() => {
|
|
144
100
|
return SecurityService.getInstance().sanitizeHtml(content);
|
|
145
101
|
}, [content]);
|
|
146
102
|
};
|
|
147
|
-
|
|
148
|
-
return
|
|
103
|
+
const useSafeStyle = (content) => {
|
|
104
|
+
return useMemo(() => {
|
|
149
105
|
return SecurityService.getInstance().sanitizeStyle(content);
|
|
150
106
|
}, [content]);
|
|
151
107
|
};
|
|
152
|
-
|
|
153
|
-
return
|
|
108
|
+
const useSafeUrl = (content) => {
|
|
109
|
+
return useMemo(() => {
|
|
154
110
|
return SecurityService.getInstance().sanitizeUrl(content);
|
|
155
111
|
}, [content]);
|
|
156
112
|
};
|
|
157
|
-
|
|
158
|
-
return
|
|
113
|
+
const useSafeResourceUrl = (content) => {
|
|
114
|
+
return useMemo(() => {
|
|
159
115
|
return SecurityService.getInstance().sanitizeResourceUrl(content);
|
|
160
116
|
}, [content]);
|
|
161
117
|
};
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
118
|
+
const isInsecureContentRequest = (url) => {
|
|
119
|
+
const REGEX_DATA_URL = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i;
|
|
120
|
+
const parser = document.createElement("a");
|
|
165
121
|
parser.href = url;
|
|
166
|
-
|
|
167
|
-
// for relative urls IE returns the protocol as empty string
|
|
168
122
|
if (parser.protocol === "") {
|
|
169
123
|
return false;
|
|
170
124
|
}
|
|
171
|
-
|
|
172
|
-
// If the inputted source is a base64 url, do not throw insecure content error
|
|
173
125
|
if (REGEX_DATA_URL.test(url)) {
|
|
174
126
|
return false;
|
|
175
127
|
}
|
|
176
|
-
if ((
|
|
128
|
+
if (startsWith(location.href, "https://")) {
|
|
177
129
|
return parser.protocol !== "https:" && parser.protocol !== "wss:";
|
|
178
130
|
}
|
|
179
131
|
return false;
|
|
180
132
|
};
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
133
|
+
const securityService = SecurityService.getInstance();
|
|
134
|
+
export {
|
|
135
|
+
SecurityContext,
|
|
136
|
+
SecurityService,
|
|
137
|
+
isInsecureContentRequest,
|
|
138
|
+
securityService,
|
|
139
|
+
useSafeHtml,
|
|
140
|
+
useSafeResourceUrl,
|
|
141
|
+
useSafeStyle,
|
|
142
|
+
useSafeUrl,
|
|
143
|
+
useTrustAs
|
|
144
|
+
};
|
package/core/util/utils.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export declare const getUrlParams: (link: string) => Record<string, string>;
|
|
|
15
15
|
* @returns Route name (e.g., "/page")
|
|
16
16
|
*/
|
|
17
17
|
export declare const getRouteNameFromLink: (link: string) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Target page from a WaveMaker goToPage_* onClick handler (source or preview _optionalChain bundle).
|
|
20
|
+
*/
|
|
21
|
+
export declare function getGoToPageNameFromClickHandler(onClick: unknown): string | null;
|
|
18
22
|
/**
|
|
19
23
|
* Opens a link in browser window
|
|
20
24
|
* @param link - URL to open
|
|
@@ -35,4 +39,3 @@ export declare const getModesFromLocalStorage: () => Record<string, string>;
|
|
|
35
39
|
export declare function setMode(modes: Record<string, string>, shouldPersist?: boolean): void;
|
|
36
40
|
export declare function initAppModes(): void;
|
|
37
41
|
export declare function teardownAppModes(): void;
|
|
38
|
-
export declare const mergeProxies: (firstProxy: any, secondProxy: any) => any;
|
package/core/util/utils.js
CHANGED
|
@@ -1,26 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.getUrlParams = exports.getRouteNameFromLink = exports.getModesFromLocalStorage = exports.getItemLink = exports.getCurrentPath = exports.Utils = void 0;
|
|
8
|
-
exports.hasOwnObjectProperty = hasOwnObjectProperty;
|
|
9
|
-
exports.initAppModes = initAppModes;
|
|
10
|
-
exports.openLink = exports.mergeProxies = exports.isJQueryError = exports.isInsecureContentRequest = void 0;
|
|
11
|
-
exports.setMode = setMode;
|
|
12
|
-
exports.teardownAppModes = teardownAppModes;
|
|
13
|
-
exports.triggerItemAction = void 0;
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
var _navigationMiddleware = require("@wavemaker-ai/react-runtime/store/middleware/navigationMiddleware");
|
|
16
|
-
var _constants = require("../constants");
|
|
17
|
-
var _navigation = require("next/navigation");
|
|
18
|
-
var _isObject = _interopRequireDefault(require("lodash-es/isObject"));
|
|
19
|
-
var _index = require("./index");
|
|
20
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
21
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
-
var REGEX = {
|
|
1
|
+
import { getRouterInstance } from "../../store/middleware/navigationMiddleware";
|
|
2
|
+
import { hyperLinkMofify } from "../constants";
|
|
3
|
+
import { usePathname } from "next/navigation";
|
|
4
|
+
import isObject from "lodash-es/isObject";
|
|
5
|
+
import { MODE_CONSTANTS } from "./index";
|
|
6
|
+
const REGEX = {
|
|
24
7
|
SNAKE_CASE: /[A-Z]/g,
|
|
25
8
|
ANDROID: /Android/i,
|
|
26
9
|
IPHONE: /iPhone/i,
|
|
@@ -53,27 +36,19 @@ var REGEX = {
|
|
|
53
36
|
DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
|
|
54
37
|
ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
|
|
55
38
|
};
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* this method checks if a given string starts with the given string
|
|
59
|
-
*/
|
|
60
|
-
var stringStartsWith = function stringStartsWith(str, startsWith, ignoreCase) {
|
|
39
|
+
const stringStartsWith = (str, startsWith, ignoreCase) => {
|
|
61
40
|
if (!str) {
|
|
62
41
|
return false;
|
|
63
42
|
}
|
|
64
|
-
|
|
43
|
+
const regEx = new RegExp("^" + startsWith, ignoreCase ? "i" : "");
|
|
65
44
|
return regEx.test(str);
|
|
66
45
|
};
|
|
67
|
-
|
|
68
|
-
|
|
46
|
+
const isInsecureContentRequest = (url) => {
|
|
47
|
+
const parser = document.createElement("a");
|
|
69
48
|
parser.href = url;
|
|
70
|
-
|
|
71
|
-
// for relative urls IE returns the protocol as empty string
|
|
72
49
|
if (parser.protocol === "") {
|
|
73
50
|
return false;
|
|
74
51
|
}
|
|
75
|
-
|
|
76
|
-
// If the inputted source is a base64 url, do not throw insecure content error
|
|
77
52
|
if (REGEX.DATA_URL.test(url)) {
|
|
78
53
|
return false;
|
|
79
54
|
}
|
|
@@ -82,136 +57,91 @@ var isInsecureContentRequest = exports.isInsecureContentRequest = function isIns
|
|
|
82
57
|
}
|
|
83
58
|
return false;
|
|
84
59
|
};
|
|
85
|
-
|
|
86
|
-
isInsecureContentRequest
|
|
60
|
+
const Utils = {
|
|
61
|
+
isInsecureContentRequest
|
|
87
62
|
};
|
|
88
|
-
|
|
63
|
+
const isJQueryError = (error) => {
|
|
89
64
|
if (!error.stack) return false;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// Get the first line of stack that points to your code
|
|
93
|
-
if (error.message && UnSupportedFunctionality.some(function (func) {
|
|
94
|
-
return error.message.includes(func);
|
|
95
|
-
})) {
|
|
65
|
+
const UnSupportedFunctionality = ["jQuery", "$"];
|
|
66
|
+
if (error.message && UnSupportedFunctionality.some((func) => error.message.includes(func))) {
|
|
96
67
|
return true;
|
|
97
68
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
var line = _step.value;
|
|
104
|
-
// Skip internal/node_modules lines, look for your code
|
|
105
|
-
if (!line.includes("node_modules") && !line.includes("internal")) {
|
|
106
|
-
// Check if this line contains jQuery access
|
|
107
|
-
if (line.toLowerCase().includes("jquery") || line.toLowerCase().includes("$")) {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
69
|
+
const stackLines = error.stack.split("\n");
|
|
70
|
+
for (let line of stackLines) {
|
|
71
|
+
if (!line.includes("node_modules") && !line.includes("internal")) {
|
|
72
|
+
if (line.toLowerCase().includes("jquery") || line.toLowerCase().includes("$")) {
|
|
73
|
+
return true;
|
|
110
74
|
}
|
|
111
75
|
}
|
|
112
|
-
} catch (err) {
|
|
113
|
-
_iterator.e(err);
|
|
114
|
-
} finally {
|
|
115
|
-
_iterator.f();
|
|
116
76
|
}
|
|
117
77
|
return false;
|
|
118
78
|
};
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* @param link - URL string (e.g., "#/page?param1=value1¶m2=value2")
|
|
123
|
-
* @returns Object with query parameters (automatically URL-decoded)
|
|
124
|
-
*/
|
|
125
|
-
var getUrlParams = exports.getUrlParams = function getUrlParams(link) {
|
|
126
|
-
var params = {};
|
|
127
|
-
var index = link.indexOf("?");
|
|
79
|
+
const getUrlParams = (link) => {
|
|
80
|
+
const params = {};
|
|
81
|
+
const index = link.indexOf("?");
|
|
128
82
|
if (index !== -1) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
searchParams.forEach(
|
|
83
|
+
const queryString = link.substring(index + 1);
|
|
84
|
+
const searchParams = new URLSearchParams(queryString);
|
|
85
|
+
searchParams.forEach((value, key) => {
|
|
132
86
|
params[key] = value;
|
|
133
87
|
});
|
|
134
88
|
}
|
|
135
89
|
return params;
|
|
136
90
|
};
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Extracts route name from a link
|
|
140
|
-
* @param link - URL string (e.g., "#/page?param=value")
|
|
141
|
-
* @returns Route name (e.g., "/page")
|
|
142
|
-
*/
|
|
143
|
-
var getRouteNameFromLink = exports.getRouteNameFromLink = function getRouteNameFromLink(link) {
|
|
91
|
+
const getRouteNameFromLink = (link) => {
|
|
144
92
|
link = link.replace("#/", "/");
|
|
145
|
-
|
|
93
|
+
const index = link.indexOf("?");
|
|
146
94
|
if (index !== -1) {
|
|
147
95
|
link = link.substring(0, index);
|
|
148
96
|
}
|
|
149
97
|
return link;
|
|
150
98
|
};
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
99
|
+
function getGoToPageNameFromClickHandler(onClick) {
|
|
100
|
+
var _a;
|
|
101
|
+
if (typeof onClick !== "function") {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const fnStr = onClick.toString();
|
|
105
|
+
if (!/invoke/.test(fnStr)) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const match = /goToPage_([A-Za-z0-9_]+)/.exec(fnStr);
|
|
109
|
+
return (_a = match == null ? void 0 : match[1]) != null ? _a : null;
|
|
110
|
+
}
|
|
111
|
+
const openLink = (link, target = "_self") => {
|
|
159
112
|
window.open(link, target);
|
|
160
113
|
};
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
* 1. Executes item.action if present
|
|
166
|
-
* 2. Then navigates to item.link if present
|
|
167
|
-
*/
|
|
168
|
-
var triggerItemAction = exports.triggerItemAction = function triggerItemAction(item) {
|
|
169
|
-
var router = (0, _navigationMiddleware.getRouterInstance)();
|
|
170
|
-
var originalLink = item === null || item === void 0 ? void 0 : item.link;
|
|
171
|
-
var linkTarget = item === null || item === void 0 ? void 0 : item.target;
|
|
114
|
+
const triggerItemAction = (item) => {
|
|
115
|
+
const router = getRouterInstance();
|
|
116
|
+
let originalLink = item == null ? void 0 : item.link;
|
|
117
|
+
const linkTarget = item == null ? void 0 : item.target;
|
|
172
118
|
if (typeof originalLink === "function" || !originalLink || originalLink === "#" || originalLink === "javascript:void(0)") {
|
|
173
|
-
return;
|
|
119
|
+
return;
|
|
174
120
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
var queryParams = getUrlParams(originalLink);
|
|
180
|
-
var routeName = getRouteNameFromLink(originalLink);
|
|
181
|
-
routeName = (0, _constants.hyperLinkMofify)(routeName);
|
|
121
|
+
if ((originalLink == null ? void 0 : originalLink.startsWith("#")) && (!linkTarget || linkTarget === "_self")) {
|
|
122
|
+
const queryParams = getUrlParams(originalLink);
|
|
123
|
+
let routeName = getRouteNameFromLink(originalLink);
|
|
124
|
+
routeName = hyperLinkMofify(routeName);
|
|
182
125
|
if (Object.keys(queryParams).length > 0) {
|
|
183
|
-
|
|
184
|
-
var queryString = Object.entries(queryParams).filter(function (_ref) {
|
|
185
|
-
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
186
|
-
_ = _ref2[0],
|
|
187
|
-
value = _ref2[1];
|
|
188
|
-
return value !== undefined && value !== null && value !== "";
|
|
189
|
-
}).map(function (_ref3) {
|
|
190
|
-
var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
|
|
191
|
-
key = _ref4[0],
|
|
192
|
-
value = _ref4[1];
|
|
193
|
-
return "".concat(key, "=").concat(encodeURIComponent(value));
|
|
194
|
-
}).join("&");
|
|
126
|
+
const queryString = Object.entries(queryParams).filter(([_, value]) => value !== void 0 && value !== null && value !== "").map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join("&");
|
|
195
127
|
if (queryString) {
|
|
196
|
-
router
|
|
128
|
+
router == null ? void 0 : router.push(`${routeName}?${queryString}`);
|
|
197
129
|
} else {
|
|
198
|
-
router
|
|
130
|
+
router == null ? void 0 : router.push(routeName);
|
|
199
131
|
}
|
|
200
132
|
} else {
|
|
201
|
-
router
|
|
133
|
+
router == null ? void 0 : router.push(routeName);
|
|
202
134
|
}
|
|
203
135
|
} else if (linkTarget || originalLink) {
|
|
204
|
-
// External link or link with different target
|
|
205
|
-
// For external links, use as-is (don't apply hyperLinkMofify)
|
|
206
136
|
openLink(originalLink, linkTarget || "");
|
|
207
137
|
}
|
|
208
138
|
};
|
|
209
|
-
|
|
210
|
-
|
|
139
|
+
const getCurrentPath = () => {
|
|
140
|
+
const path = usePathname();
|
|
211
141
|
return path;
|
|
212
142
|
};
|
|
213
|
-
|
|
214
|
-
|
|
143
|
+
const getItemLink = (item, props) => {
|
|
144
|
+
const linkProperty = props.itemlink || "link";
|
|
215
145
|
if (typeof item[linkProperty] === "function") {
|
|
216
146
|
return item[linkProperty]();
|
|
217
147
|
} else {
|
|
@@ -221,30 +151,26 @@ var getItemLink = exports.getItemLink = function getItemLink(item, props) {
|
|
|
221
151
|
function hasOwnObjectProperty(obj, prop) {
|
|
222
152
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
223
153
|
}
|
|
224
|
-
|
|
225
|
-
|
|
154
|
+
const getModesFromLocalStorage = () => {
|
|
155
|
+
let storedValue = localStorage.getItem("wm-app-modes") || "{}";
|
|
226
156
|
try {
|
|
227
157
|
storedValue = JSON.parse(storedValue);
|
|
228
158
|
} catch (error) {
|
|
229
|
-
console.error("Error parsing modes", error
|
|
159
|
+
console.error("Error parsing modes", error == null ? void 0 : error.message);
|
|
230
160
|
storedValue = {};
|
|
231
161
|
}
|
|
232
|
-
return (
|
|
162
|
+
return isObject(storedValue) ? storedValue : {};
|
|
233
163
|
};
|
|
234
|
-
function setMode(modes) {
|
|
235
|
-
|
|
236
|
-
var htmlEl = document.getElementsByTagName("html")[0];
|
|
164
|
+
function setMode(modes, shouldPersist = false) {
|
|
165
|
+
const htmlEl = document.getElementsByTagName("html")[0];
|
|
237
166
|
if (!htmlEl) return;
|
|
238
|
-
if (!(
|
|
167
|
+
if (!isObject(modes)) {
|
|
239
168
|
modes = {};
|
|
240
169
|
}
|
|
241
|
-
|
|
170
|
+
const modesArr = Object.entries(modes);
|
|
242
171
|
if (!modesArr.length) return;
|
|
243
|
-
modesArr.forEach(
|
|
244
|
-
|
|
245
|
-
modeKey = _ref6[0],
|
|
246
|
-
modeValue = _ref6[1];
|
|
247
|
-
var isDefault = modeValue === _index.MODE_CONSTANTS.LIGHT || modeValue === _index.MODE_CONSTANTS.DEFAULT;
|
|
172
|
+
modesArr.forEach(([modeKey, modeValue]) => {
|
|
173
|
+
const isDefault = modeValue === MODE_CONSTANTS.LIGHT || modeValue === MODE_CONSTANTS.DEFAULT;
|
|
248
174
|
if (isDefault) {
|
|
249
175
|
htmlEl.removeAttribute(modeKey);
|
|
250
176
|
} else {
|
|
@@ -255,17 +181,14 @@ function setMode(modes) {
|
|
|
255
181
|
localStorage.setItem("wm-app-modes", JSON.stringify(modes));
|
|
256
182
|
}
|
|
257
183
|
}
|
|
258
|
-
|
|
184
|
+
let windowMessageListener = null;
|
|
259
185
|
function initAppModes() {
|
|
260
186
|
setMode(getModesFromLocalStorage());
|
|
261
187
|
if (windowMessageListener) {
|
|
262
188
|
window.removeEventListener("message", windowMessageListener);
|
|
263
189
|
}
|
|
264
|
-
windowMessageListener =
|
|
265
|
-
|
|
266
|
-
key = _ref7.key,
|
|
267
|
-
modes = _ref7.modes,
|
|
268
|
-
shouldPersist = _ref7.shouldPersist;
|
|
190
|
+
windowMessageListener = (event) => {
|
|
191
|
+
const { key, modes, shouldPersist } = event.data || {};
|
|
269
192
|
if (key === "switch-mode" && modes) {
|
|
270
193
|
setMode(modes, !shouldPersist);
|
|
271
194
|
}
|
|
@@ -278,14 +201,20 @@ function teardownAppModes() {
|
|
|
278
201
|
windowMessageListener = null;
|
|
279
202
|
}
|
|
280
203
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
204
|
+
export {
|
|
205
|
+
Utils,
|
|
206
|
+
getCurrentPath,
|
|
207
|
+
getGoToPageNameFromClickHandler,
|
|
208
|
+
getItemLink,
|
|
209
|
+
getModesFromLocalStorage,
|
|
210
|
+
getRouteNameFromLink,
|
|
211
|
+
getUrlParams,
|
|
212
|
+
hasOwnObjectProperty,
|
|
213
|
+
initAppModes,
|
|
214
|
+
isInsecureContentRequest,
|
|
215
|
+
isJQueryError,
|
|
216
|
+
openLink,
|
|
217
|
+
setMode,
|
|
218
|
+
teardownAppModes,
|
|
219
|
+
triggerItemAction
|
|
220
|
+
};
|