@wavemaker/react-runtime 11.14.2-rc.6311 → 11.15.0-1.246
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/actions/base-action.js +5 -7
- package/actions/login-action.js +7 -8
- package/actions/logout-action.js +5 -7
- package/actions/navigation-action.js +73 -18
- package/actions/notification-action.js +22 -8
- package/actions/timer-action.js +13 -15
- package/actions/toast.js +4 -2
- package/actions/toast.service.js +1 -2
- package/components/advanced/carousel/index.js +1 -1
- package/components/advanced/carousel/template.js +1 -1
- package/components/basic/anchor/index.js +31 -11
- package/components/basic/html/index.js +115 -24
- package/components/basic/icon/index.js +2 -1
- package/components/basic/iframe/index.js +2 -1
- package/components/basic/label/index.js +12 -9
- package/components/basic/message/index.js +12 -3
- package/components/basic/picture/index.js +11 -4
- package/components/basic/progress-bar/index.js +4 -1
- package/components/basic/progress-circle/index.js +34 -28
- package/components/basic/progress-circle/props.js +10 -2
- package/components/basic/richtexteditor/index.js +95 -94
- package/components/basic/search/index.js +401 -156
- package/components/basic/search/providers.js +126 -61
- package/components/basic/spinner/index.js +2 -1
- package/components/basic/tree/index.js +34 -34
- package/components/basic/tree/utils.js +10 -4
- package/components/chart/components/barColumnChart/index.js +36 -33
- package/components/chart/components/bubbleChart/index.js +35 -25
- package/components/chart/components/chartLegend/utils.js +2 -1
- package/components/chart/components/cumulativeLineChart/index.js +30 -26
- package/components/chart/components/lineAreaChart/index.js +50 -32
- package/components/chart/components/pieDonutChart/index.js +13 -4
- package/components/chart/hooks/useXAxisConfig.js +15 -8
- package/components/chart/index.js +223 -53
- package/components/chart/utils.js +12 -1
- package/components/constants.js +5 -2
- package/components/container/accordion/accordion-pane/index.js +17 -12
- package/components/container/accordion/index.js +9 -4
- package/components/container/alignment-utils.js +56 -1
- package/components/container/index.js +49 -20
- package/components/container/panel/components/panel-header/index.js +3 -4
- package/components/container/panel/index.js +15 -10
- package/components/container/repeat-template/index.js +33 -0
- package/components/container/tabs/index.js +83 -14
- package/components/container/tabs/tab-pane/index.js +33 -10
- package/components/container/tabs/utils.js +51 -0
- package/components/container/wizard/components/StepComponents.js +2 -1
- package/components/container/wizard/components/WizardStep.js +2 -1
- package/components/container/wizard/index.js +64 -35
- package/components/container/wizard/utils.js +46 -1
- package/components/container/wizard/wizard-step/index.js +11 -1
- package/components/data/card/card-content/index.js +1 -1
- package/components/data/form/base-form/index.js +985 -183
- package/components/data/form/base-form/props.js +3 -1
- package/components/data/form/base-form/utils.js +159 -1
- package/components/data/form/dynamic-fields/constant.js +53 -0
- package/components/data/form/dynamic-fields/index.js +10 -45
- package/components/data/form/dynamic-fields/utils.js +37 -2
- package/components/data/form/form-action/index.js +5 -4
- package/components/data/form/form-context.js +5 -1
- package/components/data/form/form-controller/utils.js +84 -0
- package/components/data/form/form-controller/validation-contrustor.js +402 -189
- package/components/data/form/form-controller/withFormController.js +191 -52
- package/components/data/form/form-field/base-field.js +67 -45
- package/components/data/form/form-field/index.js +28 -5
- package/components/data/form/form-header/index.js +3 -4
- package/components/data/form/index.js +20 -1
- package/components/data/list/components/ListDND.js +2 -1
- package/components/data/list/components/ListItem.js +6 -2
- package/components/data/list/components/ListItemWithTemplate.js +46 -2
- package/components/data/list/components/ListItems.js +17 -26
- package/components/data/list/components/ListPagination.js +3 -3
- package/components/data/list/components/StandardListItems.js +3 -4
- package/components/data/list/hooks/useListEffects.js +55 -14
- package/components/data/list/hooks/useListEventHandlers.js +3 -1
- package/components/data/list/hooks/useListState.js +3 -1
- package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
- package/components/data/list/index.js +74 -55
- package/components/data/list/utils/list-helpers.js +73 -35
- package/components/data/list/utils/list-widget-methods.js +138 -95
- package/components/data/live-filter/index.js +26 -15
- package/components/data/live-form/index.js +51 -18
- package/components/data/live-form/props.js +1 -1
- package/components/data/pagination/components/BasicPagination.js +71 -16
- package/components/data/pagination/components/PageSizeSelector.js +8 -3
- package/components/data/pagination/components/TotalRecords.js +1 -5
- package/components/data/pagination/hooks/usePagination.js +349 -66
- package/components/data/pagination/index.js +137 -19
- package/components/data/table/components/AddNewRow.js +5 -1
- package/components/data/table/components/EditableCell.js +2 -2
- package/components/data/table/components/RowCells.js +64 -0
- package/components/data/table/components/RowExpansionButton.js +2 -2
- package/components/data/table/components/SummaryCell.js +111 -0
- package/components/data/table/components/SummaryRow.js +54 -0
- package/components/data/table/components/SummaryRowFooter.js +46 -0
- package/components/data/table/components/TableBody.js +61 -59
- package/components/data/table/components/TableDataRow.js +109 -0
- package/components/data/table/components/TableFilters.js +225 -121
- package/components/data/table/components/TableHeader.js +291 -23
- package/components/data/table/components/TablePanelHeading.js +139 -8
- package/components/data/table/components/index.js +22 -1
- package/components/data/table/hooks/use-edited-rows.js +141 -0
- package/components/data/table/hooks/useCellState.js +5 -12
- package/components/data/table/hooks/useFormWidget.js +58 -52
- package/components/data/table/hooks/usePaginationState.js +45 -24
- package/components/data/table/hooks/usePanelStructure.js +4 -4
- package/components/data/table/hooks/useRowHandlers.js +39 -5
- package/components/data/table/hooks/useRowSelection.js +244 -50
- package/components/data/table/hooks/useServerSideSorting.js +81 -37
- package/components/data/table/hooks/useTableColumns.js +211 -118
- package/components/data/table/hooks/useTableData.js +54 -9
- package/components/data/table/hooks/useTableEdit.js +272 -97
- package/components/data/table/hooks/useTableEffects.js +31 -13
- package/components/data/table/hooks/useTableFilter.js +1 -1
- package/components/data/table/hooks/useTableInitialization.js +23 -22
- package/components/data/table/hooks/useTableState.js +11 -5
- package/components/data/table/hooks/useTableStateManager.js +140 -65
- package/components/data/table/index.js +637 -274
- package/components/data/table/live-table/index.js +54 -22
- package/components/data/table/table-action/index.js +1 -1
- package/components/data/table/table-group/index.js +26 -0
- package/components/data/table/table-row-action/index.js +32 -18
- package/components/data/table/utils/buildSelectionColumns.js +12 -21
- package/components/data/table/utils/columnBuilder.js +29 -14
- package/components/data/table/utils/columnProxy.js +68 -1
- package/components/data/table/utils/constants.js +6 -2
- package/components/data/table/utils/crud-handlers.js +68 -63
- package/components/data/table/utils/groupHeaderUtils.js +102 -0
- package/components/data/table/utils/index.js +210 -21
- package/components/data/table/utils/renderDisplayCell.js +6 -6
- package/components/data/table/utils/selectionUtils.js +25 -26
- package/components/data/table/utils/validation.js +1 -0
- package/components/data/utils/filter-field-util.js +3 -3
- package/components/dialogs/alert-dialog/index.js +1 -1
- package/components/dialogs/confirm-dialog/index.js +1 -1
- package/components/dialogs/dialog/index.js +4 -1
- package/components/dialogs/dialog-content/index.js +3 -1
- package/components/dialogs/dialog-header/index.js +2 -2
- package/components/dialogs/iframe-dialog/index.js +11 -5
- package/components/dialogs/index.js +1 -1
- package/components/dialogs/login-dialog/index.js +1 -1
- package/components/dialogs/page-dialog/index.js +1 -1
- package/components/form/button/index.js +33 -7
- package/components/input/calendar/index.js +18 -6
- package/components/input/chips/index.js +99 -28
- package/components/input/chips/utils.js +34 -4
- package/components/input/color-picker/index.js +74 -25
- package/components/input/composite/index.js +3 -3
- package/components/input/currency/index.js +35 -49
- package/components/input/default/checkbox/index.js +23 -28
- package/components/input/default/checkboxset/index.js +38 -18
- package/components/input/default/checkboxset/utils.js +30 -0
- package/components/input/default/radioset/index.js +36 -39
- package/components/input/default/switch/index.js +30 -13
- package/components/input/epoch/date/index.js +130 -69
- package/components/input/epoch/date/utils.js +94 -1
- package/components/input/epoch/datetime/index.js +72 -22
- package/components/input/epoch/datetime/utils.js +49 -10
- package/components/input/epoch/time/index.js +68 -19
- package/components/input/epoch/time/utils.js +62 -14
- package/components/input/fileupload/Utils.js +12 -7
- package/components/input/fileupload/components/MultiUpload.js +2 -6
- package/components/input/fileupload/components/SingleUpload.js +3 -7
- package/components/input/fileupload/index.js +6 -10
- package/components/input/fileupload/useFileUpload.js +16 -5
- package/components/input/number/index.js +158 -43
- package/components/input/rating/index.js +90 -7
- package/components/input/select/index.js +209 -72
- package/components/input/slider/index.js +84 -26
- package/components/input/text/index.js +38 -18
- package/components/input/text/util.js +283 -130
- package/components/input/textarea/index.js +13 -10
- package/components/input/upload/index.js +124 -0
- package/components/input/upload/props.js +5 -0
- package/components/input/util/index.js +11 -0
- package/components/navbar/index.js +51 -3
- package/components/navbar/nav/index.js +46 -16
- package/components/navbar/nav-item/index.js +11 -5
- package/components/navigation/menu/components/ListItems.js +3 -0
- package/components/navigation/menu/constants.js +2 -1
- package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
- package/components/navigation/menu/index.js +326 -188
- package/components/navigation/menu/utils/action-task.js +14 -0
- package/components/navigation/menu/utils/role-filter.js +76 -0
- package/components/navigation/popover/index.js +105 -32
- package/components/page/partial-container/index.js +34 -5
- package/components/prefab/index.js +2 -4
- package/context/PrefabContext.js +10 -6
- package/context/WidgetProvider.js +30 -31
- package/core/app.service.js +1 -1
- package/core/constants/events.js +57 -1
- package/core/dialog.service.js +1 -2
- package/core/event-notifier.js +1 -2
- package/core/formatter/array-formatters.js +33 -0
- package/core/formatter/date-formatters.js +2 -4
- package/core/formatter/index.js +2 -1
- package/core/formatter/number-formatters.js +5 -10
- package/core/formatter/security-formatters.js +2 -4
- package/core/formatter/string-formatters.js +3 -6
- package/core/proxy-service.js +85 -13
- package/core/script-registry.js +108 -48
- package/core/util/common.js +4 -4
- package/core/util/compare.js +30 -0
- package/core/util/dom.js +8 -8
- package/core/util/index.js +16 -6
- package/core/util/safe-is-equal.js +156 -0
- package/core/util/security.js +1 -2
- package/core/util/utils.js +16 -7
- package/higherOrder/BaseApp.js +108 -65
- package/higherOrder/BaseDateTime.js +31 -13
- package/higherOrder/BasePage.js +268 -144
- package/higherOrder/BasePartial.js +1 -1
- package/higherOrder/BasePrefab.js +33 -15
- package/higherOrder/DataNav.js +99 -16
- package/higherOrder/helper.js +41 -3
- package/higherOrder/withBaseWrapper.js +41 -28
- package/hooks/useAuth.js +11 -5
- package/hooks/useHttp.js +280 -94
- package/mui-config/theme-provider.js +1 -1
- package/mui-config/theme.js +1 -1
- package/package-lock.json +840 -740
- package/package.json +8 -8
- package/store/bindActions/i18nActions.js +18 -0
- package/store/index.js +3 -1
- package/store/slices/appConfigSlice.js +2 -2
- package/store/slices/authSlice.js +31 -28
- package/store/slices/i18nSlice.js +2 -2
- package/store/slices/navigationSlice.js +35 -0
- package/store/viewport.service.js +255 -0
- package/utils/attr.js +35 -0
- package/utils/dataset-util.js +1 -2
- package/utils/form-state.util.js +43 -12
- package/utils/form-utils.js +47 -2
- package/utils/format-util.js +28 -13
- package/utils/page-params-util.js +33 -1
- package/utils/state-persistance.js +72 -13
- package/utils/transformedDataset-utils.js +35 -24
- package/variables/base-variable.js +12 -14
- package/variables/crud-variable.js +225 -0
- package/variables/live-variable.js +56 -20
- package/variables/metadata.service.js +123 -0
- package/variables/model-variable.js +21 -15
- package/variables/service-variable.js +88 -83
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.executeActionTaskFromItem = executeActionTaskFromItem;
|
|
7
|
+
function executeActionTaskFromItem(item, listener) {
|
|
8
|
+
var _item$value$actiontas, _item$value, _item$dataObject;
|
|
9
|
+
var actiontask = (_item$value$actiontas = item === null || item === void 0 || (_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.actiontask) !== null && _item$value$actiontas !== void 0 ? _item$value$actiontas : item === null || item === void 0 || (_item$dataObject = item.dataObject) === null || _item$dataObject === void 0 ? void 0 : _item$dataObject.actiontask;
|
|
10
|
+
if (!actiontask || typeof actiontask !== "function") {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
actiontask ? actiontask() : null;
|
|
14
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.filterMenuNodesByRole = filterMenuNodesByRole;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
/**
|
|
12
|
+
* Filters menu nodes based on user role
|
|
13
|
+
* @param nodes - Array of menu nodes to filter
|
|
14
|
+
* @param currentUserRoles - Current logged-in user's roles (array or comma-separated string)
|
|
15
|
+
* @param userroleKey - The dynamic key name to use for extracting role from node (defaults to 'userrole')
|
|
16
|
+
* @returns Filtered array of menu nodes that the user has access to
|
|
17
|
+
*/
|
|
18
|
+
function filterMenuNodesByRole(nodes, currentUserRoles) {
|
|
19
|
+
var userroleKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "userrole";
|
|
20
|
+
if (!nodes || !Array.isArray(nodes)) return [];
|
|
21
|
+
|
|
22
|
+
// Convert currentUserRoles to array format
|
|
23
|
+
var userRolesArray = [];
|
|
24
|
+
if (currentUserRoles) {
|
|
25
|
+
if (typeof currentUserRoles === "string") {
|
|
26
|
+
userRolesArray = currentUserRoles.split(",").map(function (r) {
|
|
27
|
+
return r.trim().toLowerCase();
|
|
28
|
+
});
|
|
29
|
+
} else if (Array.isArray(currentUserRoles)) {
|
|
30
|
+
userRolesArray = currentUserRoles.map(function (r) {
|
|
31
|
+
return r.toLowerCase();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return nodes.map(function (node) {
|
|
36
|
+
var _node$dataObject;
|
|
37
|
+
// Create a shallow copy to avoid mutating the original
|
|
38
|
+
var filteredNode = _objectSpread({}, node);
|
|
39
|
+
|
|
40
|
+
// Use the dynamic userroleKey to extract the role from the node
|
|
41
|
+
var nodeUserRole = ((_node$dataObject = node.dataObject) === null || _node$dataObject === void 0 ? void 0 : _node$dataObject[userroleKey]) || (node === null || node === void 0 ? void 0 : node[userroleKey]);
|
|
42
|
+
|
|
43
|
+
// If no userrole is specified on the node, include the item
|
|
44
|
+
if (!nodeUserRole) {
|
|
45
|
+
// Still recursively filter children if they exist
|
|
46
|
+
if (filteredNode.children && Array.isArray(filteredNode.children)) {
|
|
47
|
+
filteredNode.children = filterMenuNodesByRole(filteredNode.children, currentUserRoles, userroleKey);
|
|
48
|
+
}
|
|
49
|
+
return filteredNode;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// If userrole is specified but user has no roles, exclude the item
|
|
53
|
+
if (!currentUserRoles || userRolesArray.length === 0) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Check if any of the user's roles match the allowed roles
|
|
58
|
+
var allowedRoles = nodeUserRole.split(",").map(function (r) {
|
|
59
|
+
return r.trim().toLowerCase();
|
|
60
|
+
});
|
|
61
|
+
var hasAccess = userRolesArray.some(function (userRole) {
|
|
62
|
+
return allowedRoles.includes(userRole);
|
|
63
|
+
});
|
|
64
|
+
if (!hasAccess) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// User has access, recursively filter children
|
|
69
|
+
if (filteredNode.children && Array.isArray(filteredNode.children)) {
|
|
70
|
+
filteredNode.children = filterMenuNodesByRole(filteredNode.children, currentUserRoles, userroleKey);
|
|
71
|
+
}
|
|
72
|
+
return filteredNode;
|
|
73
|
+
}).filter(function (node) {
|
|
74
|
+
return node !== null;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
@@ -35,18 +35,72 @@ var WmPopover = function WmPopover(Props) {
|
|
|
35
35
|
open = _useState4[0],
|
|
36
36
|
setOpen = _useState4[1];
|
|
37
37
|
var isOpen = Boolean(anchorEl);
|
|
38
|
-
|
|
38
|
+
var parentWidgetRef = (0, _react.useRef)(null);
|
|
39
|
+
|
|
40
|
+
// Exposeable methods
|
|
41
|
+
var openPopover = (0, _react.useCallback)(function () {
|
|
42
|
+
var _props$onShow;
|
|
43
|
+
if (!anchorRef.current) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
calculatePlacement();
|
|
47
|
+
setAnchorEl(anchorRef.current);
|
|
48
|
+
setIsDialogOpen(true);
|
|
49
|
+
props === null || props === void 0 || (_props$onShow = props.onShow) === null || _props$onShow === void 0 || _props$onShow.call(props, {}, _objectSpread(_objectSpread({
|
|
50
|
+
isOpen: true
|
|
51
|
+
}, props), {}, {
|
|
52
|
+
viewParent: parentWidgetRef.current
|
|
53
|
+
}));
|
|
54
|
+
}, []);
|
|
55
|
+
var closePopover = (0, _react.useCallback)(function () {
|
|
56
|
+
var _props$onHide;
|
|
57
|
+
if (!isOpen) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
setAnchorEl(null);
|
|
61
|
+
setIsDialogOpen(false);
|
|
62
|
+
props === null || props === void 0 || (_props$onHide = props.onHide) === null || _props$onHide === void 0 || _props$onHide.call(props, {}, _objectSpread(_objectSpread({
|
|
63
|
+
isOpen: false
|
|
64
|
+
}, props), {}, {
|
|
65
|
+
viewParent: parentWidgetRef.current
|
|
66
|
+
}));
|
|
67
|
+
}, [isOpen]);
|
|
68
|
+
var togglePopover = (0, _react.useCallback)(function () {
|
|
69
|
+
if (isOpen) {
|
|
70
|
+
closePopover();
|
|
71
|
+
} else {
|
|
72
|
+
openPopover();
|
|
73
|
+
}
|
|
74
|
+
}, [isOpen, openPopover, closePopover]);
|
|
75
|
+
|
|
76
|
+
// Register methods on listener
|
|
77
|
+
(0, _react.useEffect)(function () {
|
|
78
|
+
var _ref = props,
|
|
79
|
+
listener = _ref.listener,
|
|
80
|
+
name = _ref.name;
|
|
81
|
+
if (listener !== null && listener !== void 0 && listener.onChange && name) {
|
|
82
|
+
listener.onChange(name, {
|
|
83
|
+
open: openPopover,
|
|
84
|
+
close: closePopover,
|
|
85
|
+
toggle: togglePopover,
|
|
86
|
+
isOpen: isOpen
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}, []);
|
|
90
|
+
function handleLoad(widget) {
|
|
39
91
|
if (props.onLoad && !loadedRef.current) {
|
|
40
92
|
loadedRef.current = true;
|
|
41
|
-
|
|
42
|
-
isOpen: isOpen
|
|
43
|
-
}, props);
|
|
44
|
-
props.onLoad(widgetInstance);
|
|
93
|
+
props.onLoad(widget);
|
|
45
94
|
}
|
|
46
95
|
}
|
|
47
96
|
(0, _react.useEffect)(function () {
|
|
48
|
-
|
|
49
|
-
|
|
97
|
+
if (!isOpen || props.content) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
handleLoad(_objectSpread({
|
|
101
|
+
isOpen: isOpen
|
|
102
|
+
}, props));
|
|
103
|
+
}, [isOpen]);
|
|
50
104
|
var calculatePlacement = function calculatePlacement() {
|
|
51
105
|
if (!anchorRef.current) return;
|
|
52
106
|
var rect = anchorRef.current.getBoundingClientRect();
|
|
@@ -67,28 +121,37 @@ var WmPopover = function WmPopover(Props) {
|
|
|
67
121
|
var handleClick = function handleClick(event) {
|
|
68
122
|
event.preventDefault();
|
|
69
123
|
event.stopPropagation();
|
|
124
|
+
parentWidgetRef.current = props.listener;
|
|
125
|
+
var widget = _objectSpread({
|
|
126
|
+
isOpen: isOpen
|
|
127
|
+
}, props);
|
|
128
|
+
widget.viewParent = parentWidgetRef.current;
|
|
129
|
+
delete widget.listener;
|
|
130
|
+
if (!isOpen) {
|
|
131
|
+
loadedRef.current = false;
|
|
132
|
+
}
|
|
70
133
|
if (anchorEl) {
|
|
71
134
|
if (isDialogOpen) {
|
|
72
|
-
var _props$
|
|
135
|
+
var _props$onHide2;
|
|
73
136
|
setIsDialogOpen(false);
|
|
74
137
|
setAnchorEl(null);
|
|
75
|
-
props === null || props === void 0 || (_props$
|
|
138
|
+
props === null || props === void 0 || (_props$onHide2 = props.onHide) === null || _props$onHide2 === void 0 || _props$onHide2.call(props, event.nativeEvent, widget);
|
|
76
139
|
return;
|
|
77
140
|
}
|
|
78
141
|
(0, _debounce["default"])(function () {
|
|
79
|
-
var _props$
|
|
142
|
+
var _props$onHide3;
|
|
80
143
|
setAnchorEl(null);
|
|
81
|
-
props === null || props === void 0 || (_props$
|
|
144
|
+
props === null || props === void 0 || (_props$onHide3 = props.onHide) === null || _props$onHide3 === void 0 || _props$onHide3.call(props, event.nativeEvent, widget);
|
|
82
145
|
}, 500);
|
|
83
146
|
} else {
|
|
84
|
-
var _props$
|
|
147
|
+
var _props$onShow2;
|
|
85
148
|
if (open) {
|
|
86
149
|
setOpen(false);
|
|
87
150
|
return;
|
|
88
151
|
}
|
|
89
152
|
calculatePlacement();
|
|
90
153
|
setAnchorEl(event.currentTarget);
|
|
91
|
-
props === null || props === void 0 || (_props$
|
|
154
|
+
props === null || props === void 0 || (_props$onShow2 = props.onShow) === null || _props$onShow2 === void 0 || _props$onShow2.call(props, event.nativeEvent, widget);
|
|
92
155
|
setIsDialogOpen(true);
|
|
93
156
|
}
|
|
94
157
|
};
|
|
@@ -101,31 +164,37 @@ var WmPopover = function WmPopover(Props) {
|
|
|
101
164
|
horizontal: placement === "left" ? "right" : placement === "right" ? "left" : "center"
|
|
102
165
|
};
|
|
103
166
|
function handleClose(event, reason) {
|
|
104
|
-
var _props$
|
|
167
|
+
var _props$onHide6;
|
|
105
168
|
if (props.autoclose === "disabled") {
|
|
106
169
|
return;
|
|
107
170
|
}
|
|
108
171
|
// Always: close when user clicks anywhere on the page
|
|
109
172
|
else if (props.autoclose === "always") {
|
|
110
|
-
var _props$
|
|
173
|
+
var _props$onHide4;
|
|
111
174
|
setAnchorEl(null);
|
|
112
|
-
props === null || props === void 0 || (_props$
|
|
175
|
+
props === null || props === void 0 || (_props$onHide4 = props.onHide) === null || _props$onHide4 === void 0 || _props$onHide4.call(props, event.nativeEvent, _objectSpread(_objectSpread({}, props), {}, {
|
|
176
|
+
viewParent: parentWidgetRef.current
|
|
177
|
+
}));
|
|
113
178
|
return;
|
|
114
179
|
}
|
|
115
180
|
|
|
116
181
|
// Outside Click: close when user clicks outside the popover content
|
|
117
182
|
else if (props.autoclose === "outsideClick") {
|
|
118
183
|
if (reason === "backdropClick") {
|
|
119
|
-
var _props$
|
|
184
|
+
var _props$onHide5;
|
|
120
185
|
setAnchorEl(null);
|
|
121
|
-
props === null || props === void 0 || (_props$
|
|
186
|
+
props === null || props === void 0 || (_props$onHide5 = props.onHide) === null || _props$onHide5 === void 0 || _props$onHide5.call(props, event.nativeEvent, _objectSpread(_objectSpread({}, props), {}, {
|
|
187
|
+
viewParent: parentWidgetRef.current
|
|
188
|
+
}));
|
|
122
189
|
}
|
|
123
190
|
return;
|
|
124
191
|
}
|
|
125
192
|
|
|
126
193
|
// Default behavior for any other autoclose value
|
|
127
194
|
setAnchorEl(null);
|
|
128
|
-
props === null || props === void 0 || (_props$
|
|
195
|
+
props === null || props === void 0 || (_props$onHide6 = props.onHide) === null || _props$onHide6 === void 0 || _props$onHide6.call(props, event.nativeEvent, _objectSpread(_objectSpread({}, props), {}, {
|
|
196
|
+
viewParent: parentWidgetRef.current
|
|
197
|
+
}));
|
|
129
198
|
}
|
|
130
199
|
var arrowStyles = (0, _react.useMemo)(function () {
|
|
131
200
|
if (!anchorRef.current) return {};
|
|
@@ -133,8 +202,8 @@ var WmPopover = function WmPopover(Props) {
|
|
|
133
202
|
left: "calc(50% - 10px)"
|
|
134
203
|
}), placement === "bottom" && {
|
|
135
204
|
left: "calc(50% - 10px)"
|
|
136
|
-
}),
|
|
137
|
-
|
|
205
|
+
}), {}, {
|
|
206
|
+
marginLeft: "-4px"
|
|
138
207
|
});
|
|
139
208
|
}, [placement, props.popoverplacement, calculatePlacement]);
|
|
140
209
|
var popoverHeight = props.popoverheight.includes("px") ? props.popoverheight : "".concat(props.popoverheight, "px");
|
|
@@ -145,7 +214,8 @@ var WmPopover = function WmPopover(Props) {
|
|
|
145
214
|
"app-popover-wrapper": true
|
|
146
215
|
}),
|
|
147
216
|
style: props.styles,
|
|
148
|
-
name: props.name
|
|
217
|
+
name: props.name,
|
|
218
|
+
hidden: props.hidden
|
|
149
219
|
}, __jsx(_anchor.WmAnchor, {
|
|
150
220
|
hint: props.hint || props.name,
|
|
151
221
|
ref: anchorRef,
|
|
@@ -156,7 +226,7 @@ var WmPopover = function WmPopover(Props) {
|
|
|
156
226
|
styles: props.styles,
|
|
157
227
|
onClick: handleClick,
|
|
158
228
|
onMouseEnter: function onMouseEnter(event) {
|
|
159
|
-
if (props.interaction === "hover") {
|
|
229
|
+
if (props.interaction === "hover" || props.interaction === "default") {
|
|
160
230
|
handleClick(event);
|
|
161
231
|
}
|
|
162
232
|
},
|
|
@@ -173,8 +243,10 @@ var WmPopover = function WmPopover(Props) {
|
|
|
173
243
|
iconwidth: props.iconwidth,
|
|
174
244
|
badgevalue: props.badgevalue,
|
|
175
245
|
encodeurl: props.encodeurl,
|
|
176
|
-
shortcutkey: props.shortcutkey
|
|
246
|
+
shortcutkey: props.shortcutkey,
|
|
247
|
+
name: props.name
|
|
177
248
|
})), __jsx(_Popover["default"], {
|
|
249
|
+
hidden: props.hidden,
|
|
178
250
|
open: isOpen,
|
|
179
251
|
anchorEl: anchorEl,
|
|
180
252
|
onClose: handleClose,
|
|
@@ -185,19 +257,18 @@ var WmPopover = function WmPopover(Props) {
|
|
|
185
257
|
exit: 0
|
|
186
258
|
},
|
|
187
259
|
disableScrollLock: true,
|
|
260
|
+
disableAutoFocus: true,
|
|
261
|
+
disableEnforceFocus: true,
|
|
262
|
+
disableRestoreFocus: true,
|
|
188
263
|
slotProps: {
|
|
189
264
|
paper: {
|
|
190
265
|
style: {
|
|
191
266
|
height: popoverHeight,
|
|
192
|
-
width: popoverWidth
|
|
267
|
+
width: popoverWidth,
|
|
268
|
+
pointerEvents: props.autoclose === "disabled" ? "none" : "auto"
|
|
193
269
|
},
|
|
194
|
-
className: (0, _clsx["default"])(placement, "app-popover in popover", props.contentanimation && "animated ".concat(props.contentanimation), "popover-".concat(placement), "bs-popover-".concat(placement))
|
|
270
|
+
className: (0, _clsx["default"])(placement, "app-popover in popover", props.contentanimation && "animated ".concat(props.contentanimation), "popover-".concat(placement), "bs-popover-".concat(placement), 'bs3 popover-logout-popover')
|
|
195
271
|
}
|
|
196
|
-
},
|
|
197
|
-
style: {
|
|
198
|
-
pointerEvents: props.autoclose === "disabled" ? "none" : "auto",
|
|
199
|
-
height: popoverHeight,
|
|
200
|
-
width: popoverWidth
|
|
201
272
|
}
|
|
202
273
|
}, __jsx("div", {
|
|
203
274
|
className: (0, _clsx["default"])("popover-arrow arrow", props.popoverarrow === false && "hidden"),
|
|
@@ -206,6 +277,8 @@ var WmPopover = function WmPopover(Props) {
|
|
|
206
277
|
className: "popover-title popover-header"
|
|
207
278
|
}, props.title), __jsx("div", {
|
|
208
279
|
className: "popover-content popover-body"
|
|
209
|
-
}, props.render && props.content ?
|
|
280
|
+
}, props.render && props.content ? __jsx(_react.Suspense, {
|
|
281
|
+
fallback: null
|
|
282
|
+
}, props.render(props, handleLoad)) : props.children)));
|
|
210
283
|
};
|
|
211
284
|
var _default = exports["default"] = (0, _withBaseWrapper["default"])(WmPopover);
|
|
@@ -6,16 +6,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _Container = _interopRequireDefault(require("@mui/material/Container"));
|
|
11
12
|
var _appstore = _interopRequireDefault(require("@wavemaker/react-runtime/core/appstore"));
|
|
13
|
+
var _spinner = require("../../basic/spinner");
|
|
14
|
+
var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
|
|
12
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
13
16
|
var __jsx = _react["default"].createElement;
|
|
17
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
19
|
var WmPartialContainer = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
15
20
|
var prefab = props.prefab,
|
|
16
21
|
content = props.content,
|
|
17
|
-
prefabName = props.prefabName
|
|
22
|
+
prefabName = props.prefabName,
|
|
23
|
+
onLoad = props.onLoad;
|
|
24
|
+
var loadedRef = (0, _react.useRef)(false);
|
|
18
25
|
var params = {};
|
|
26
|
+
var handleLoad = (0, _react.useCallback)(function (widget) {
|
|
27
|
+
if (onLoad && !loadedRef.current) {
|
|
28
|
+
loadedRef.current = true;
|
|
29
|
+
widget.viewParent = props.listener;
|
|
30
|
+
onLoad(widget);
|
|
31
|
+
}
|
|
32
|
+
}, [onLoad, props.listener]);
|
|
19
33
|
Object.keys(props).forEach(function (k) {
|
|
20
34
|
//@ts-ignore
|
|
21
35
|
params[k] = props[k];
|
|
@@ -27,7 +41,9 @@ var WmPartialContainer = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
|
27
41
|
var _partial = _partials.find(function (p) {
|
|
28
42
|
return p.name === content;
|
|
29
43
|
});
|
|
30
|
-
return __jsx(_react["default"].Fragment, null, _partial ? /*#__PURE__*/_react["default"].createElement(_partial.component, params)
|
|
44
|
+
return __jsx(_react["default"].Fragment, null, _partial ? /*#__PURE__*/_react["default"].createElement(_partial.component, _objectSpread(_objectSpread({}, params), {}, {
|
|
45
|
+
onRender: handleLoad
|
|
46
|
+
})) : null);
|
|
31
47
|
}
|
|
32
48
|
|
|
33
49
|
// @ts-ignore
|
|
@@ -35,12 +51,25 @@ var WmPartialContainer = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
|
35
51
|
var partial = partials.find(function (p) {
|
|
36
52
|
return p.name === content;
|
|
37
53
|
});
|
|
38
|
-
return __jsx(_react["default"].Fragment, null, partial ? /*#__PURE__*/_react["default"].createElement(partial.component, params)
|
|
54
|
+
return __jsx(_react["default"].Fragment, null, partial ? /*#__PURE__*/_react["default"].createElement(partial.component, _objectSpread(_objectSpread({}, params), {}, {
|
|
55
|
+
onRender: handleLoad
|
|
56
|
+
})) : null);
|
|
39
57
|
};
|
|
40
|
-
return __jsx(_Container["default"],
|
|
58
|
+
return __jsx(_Container["default"], {
|
|
59
|
+
className: "partial-container"
|
|
60
|
+
}, __jsx(_react.Suspense, {
|
|
61
|
+
fallback: __jsx(_spinner.WmSpinner, {
|
|
62
|
+
show: true,
|
|
63
|
+
listener: props.listener,
|
|
64
|
+
name: "partial-container-spinner"
|
|
65
|
+
})
|
|
66
|
+
}, contentToRender()));
|
|
41
67
|
}, function (prevProps, nextProps) {
|
|
42
|
-
var keys = ["content", "prefab", "prefabName", "partialName"];
|
|
68
|
+
var keys = ["content", "prefab", "prefabName", "partialName", "styles", "params"];
|
|
43
69
|
return keys.every(function (key) {
|
|
70
|
+
if (key == "styles") {
|
|
71
|
+
return (0, _isEqual["default"])(prevProps[key], nextProps[key]);
|
|
72
|
+
}
|
|
44
73
|
return prevProps[key] === nextProps[key];
|
|
45
74
|
});
|
|
46
75
|
});
|
|
@@ -10,6 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _attr = require("@wavemaker/react-runtime/utils/attr");
|
|
13
14
|
var _excluded = ["styles", "onLoad", "onDestroy", "onRender", "children", "trafficlayer", "transitlayer", "stopover", "onMarkerclick", "onMarkerhover", "onMarkerdragend", "show", "listener", "width", "height"];
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
15
16
|
var __jsx = _react["default"].createElement;
|
|
@@ -52,10 +53,7 @@ var WmPrefab = function WmPrefab(props) {
|
|
|
52
53
|
}
|
|
53
54
|
};
|
|
54
55
|
}, [onLoad, onDestroy]);
|
|
55
|
-
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
return __jsx("div", (0, _extends2["default"])({}, rest, {
|
|
56
|
+
return __jsx("div", (0, _extends2["default"])({}, (0, _attr.removeInvalidAttributes)(rest, ["hidden"]), {
|
|
59
57
|
style: _objectSpread(_objectSpread(_objectSpread({}, styles), width !== undefined && {
|
|
60
58
|
width: parseFloat(width)
|
|
61
59
|
}), height !== undefined && {
|
package/context/PrefabContext.js
CHANGED
|
@@ -5,17 +5,21 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = void 0;
|
|
8
|
+
exports["default"] = exports.PrefabContext = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
var _lodash = require("lodash");
|
|
12
12
|
var _events = require("../core/constants/events");
|
|
13
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
14
14
|
var __jsx = _react["default"].createElement;
|
|
15
|
-
var PrefabContext = /*#__PURE__*/(0, _react.createContext)({
|
|
15
|
+
var PrefabContext = exports.PrefabContext = /*#__PURE__*/(0, _react.createContext)({
|
|
16
16
|
inbound: {},
|
|
17
17
|
outbound: {},
|
|
18
|
-
prefabName: ""
|
|
18
|
+
prefabName: "",
|
|
19
|
+
parentForm: undefined,
|
|
20
|
+
isParentList: false,
|
|
21
|
+
formArrayIndex: -1,
|
|
22
|
+
parentListName: undefined
|
|
19
23
|
});
|
|
20
24
|
var getChangedKeys = function getChangedKeys(prev, curr) {
|
|
21
25
|
var changes = [];
|
|
@@ -92,7 +96,7 @@ var PrefabProvider = function PrefabProvider(_ref) {
|
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
// Try to emit with retry mechanism
|
|
95
|
-
var
|
|
99
|
+
var _tryEmit = function tryEmit() {
|
|
96
100
|
// Convert array to object format that BasePage expects: {0: change1, 1: change2, ...}
|
|
97
101
|
var changesAsObject = {};
|
|
98
102
|
pendingChangesRef.current.forEach(function (change, index) {
|
|
@@ -112,7 +116,7 @@ var PrefabProvider = function PrefabProvider(_ref) {
|
|
|
112
116
|
|
|
113
117
|
// On initial mount, use more RAF cycles for slower machines
|
|
114
118
|
var rafCycles = isInitialMountRef.current ? 10 : 5;
|
|
115
|
-
var rafChain =
|
|
119
|
+
var rafChain = _tryEmit;
|
|
116
120
|
var _loop = function _loop() {
|
|
117
121
|
var next = rafChain;
|
|
118
122
|
rafChain = function rafChain() {
|
|
@@ -149,7 +153,7 @@ var PrefabProvider = function PrefabProvider(_ref) {
|
|
|
149
153
|
var initialRafCycles = isInitialMountRef.current ? 5 : 3;
|
|
150
154
|
queueMicrotask(function () {
|
|
151
155
|
// Build RAF chain: each cycle waits for the next frame
|
|
152
|
-
var rafChain =
|
|
156
|
+
var rafChain = _tryEmit;
|
|
153
157
|
var _loop2 = function _loop2() {
|
|
154
158
|
var next = rafChain;
|
|
155
159
|
rafChain = function rafChain() {
|
|
@@ -9,12 +9,10 @@ exports.useWidgetProxy = exports.useProxy = exports.usePageContext = exports.use
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
|
|
13
12
|
var _get = _interopRequireDefault(require("lodash-es/get"));
|
|
14
13
|
var _debounce = _interopRequireDefault(require("lodash-es/debounce"));
|
|
15
14
|
var _proxyService = require("../core/proxy-service");
|
|
16
15
|
var _useHttp = require("../hooks/useHttp");
|
|
17
|
-
var _widgetCleanupUtil = require("../utils/widget-cleanup-util");
|
|
18
16
|
var _formState = require("../utils/form-state.util");
|
|
19
17
|
var _events = require("../core/constants/events");
|
|
20
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
@@ -36,20 +34,6 @@ var WidgetProvider = exports.WidgetProvider = function WidgetProvider(_ref) {
|
|
|
36
34
|
setPageContext = _useState[1];
|
|
37
35
|
var pageContextRef = (0, _react.useRef)(value);
|
|
38
36
|
pageContextRef.current = pageContext;
|
|
39
|
-
|
|
40
|
-
// Create cleanup utility instance
|
|
41
|
-
var cleanupUtilRef = (0, _react.useRef)(null);
|
|
42
|
-
|
|
43
|
-
// Initialize cleanup utility if not already created
|
|
44
|
-
if (!cleanupUtilRef.current) {
|
|
45
|
-
cleanupUtilRef.current = (0, _widgetCleanupUtil.createWidgetCleanup)({
|
|
46
|
-
setPageContext: setPageContext,
|
|
47
|
-
proxyRef: {
|
|
48
|
-
current: proxy
|
|
49
|
-
},
|
|
50
|
-
debounceDelay: 100
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
37
|
(0, _react.useEffect)(function () {
|
|
54
38
|
setPageContext(function (prevContext) {
|
|
55
39
|
var newContext = _objectSpread({}, prevContext);
|
|
@@ -59,12 +43,14 @@ var WidgetProvider = exports.WidgetProvider = function WidgetProvider(_ref) {
|
|
|
59
43
|
var incomingWidget = value.Widgets[widgetName];
|
|
60
44
|
if (!currentWidget || !proxyMap.has(currentWidget)) {
|
|
61
45
|
// Create new proxy if widget doesn't exist or isn't proxied
|
|
62
|
-
|
|
46
|
+
// Get registry from pageContext if available
|
|
47
|
+
var registry = value === null || value === void 0 ? void 0 : value.overriddenPropsRegistry;
|
|
48
|
+
var widgetProxy = (0, _proxyService.createWidgetProxy)(_objectSpread({}, incomingWidget), widgetName, setPageContext, registry);
|
|
63
49
|
newContext.Widgets[widgetName] = widgetProxy;
|
|
64
50
|
newContext.App.Widgets[widgetName] = widgetProxy;
|
|
65
51
|
|
|
66
52
|
// Register form field if applicable
|
|
67
|
-
(0, _formState.registerFormField)(newContext.Widgets, widgetProxy, incomingWidget);
|
|
53
|
+
(0, _formState.registerFormField)(newContext.Widgets, widgetProxy, incomingWidget, newContext);
|
|
68
54
|
} else {
|
|
69
55
|
// Update existing proxy properties - important for widgets that start minimal
|
|
70
56
|
// Always update all properties to ensure proxy has complete data
|
|
@@ -94,7 +80,7 @@ var WidgetProvider = exports.WidgetProvider = function WidgetProvider(_ref) {
|
|
|
94
80
|
return function (widgetName, props) {
|
|
95
81
|
if (!widgetName || !pageContext.Widgets) return;
|
|
96
82
|
var widget = pageContext.Widgets[widgetName];
|
|
97
|
-
if (
|
|
83
|
+
if (widget != props) {
|
|
98
84
|
pageContext.Widgets[widgetName] = props;
|
|
99
85
|
pageContextRef.current.Widgets[widgetName] = props;
|
|
100
86
|
}
|
|
@@ -103,18 +89,6 @@ var WidgetProvider = exports.WidgetProvider = function WidgetProvider(_ref) {
|
|
|
103
89
|
(0, _formState.registerFormFieldSafe)(pageContext.Widgets, props);
|
|
104
90
|
};
|
|
105
91
|
}, []);
|
|
106
|
-
var cleanup = function cleanup(name) {
|
|
107
|
-
var _cleanupUtilRef$curre;
|
|
108
|
-
(_cleanupUtilRef$curre = cleanupUtilRef.current) === null || _cleanupUtilRef$curre === void 0 || _cleanupUtilRef$curre.cleanup(name);
|
|
109
|
-
};
|
|
110
|
-
var contextValue = (0, _react.useMemo)(function () {
|
|
111
|
-
return {
|
|
112
|
-
pageContext: pageContext,
|
|
113
|
-
updateWidgetState: updateWidgetState,
|
|
114
|
-
proxy: proxy,
|
|
115
|
-
cleanup: cleanup
|
|
116
|
-
};
|
|
117
|
-
}, [pageContext, updateWidgetState, proxy, cleanup]);
|
|
118
92
|
|
|
119
93
|
// Stable debounced emitter
|
|
120
94
|
var debouncedEmitRef = (0, _react.useRef)((0, _debounce["default"])(function (partialName, context) {
|
|
@@ -150,6 +124,28 @@ var WidgetProvider = exports.WidgetProvider = function WidgetProvider(_ref) {
|
|
|
150
124
|
if (isPage || !partialName) return;
|
|
151
125
|
debouncedEmitRef.current(partialName, proxy);
|
|
152
126
|
}, [isPage, partialName, pageContext]);
|
|
127
|
+
var destroy = (0, _react.useCallback)(function (widgetName) {
|
|
128
|
+
widgetName.forEach(function (name) {
|
|
129
|
+
var _overriddenPropsRegis;
|
|
130
|
+
pageContext === null || pageContext === void 0 || (_overriddenPropsRegis = pageContext.overriddenPropsRegistry) === null || _overriddenPropsRegis === void 0 || _overriddenPropsRegis.destroy(name);
|
|
131
|
+
if (pageContext.Widgets[name]) {
|
|
132
|
+
delete pageContext.Widgets[name];
|
|
133
|
+
delete proxy.Widgets[name];
|
|
134
|
+
}
|
|
135
|
+
if (pageContext.Widgets[name]) {
|
|
136
|
+
delete pageContext.Widgets[name];
|
|
137
|
+
delete proxy.Widgets[name];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}, []);
|
|
141
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
142
|
+
return {
|
|
143
|
+
pageContext: pageContext,
|
|
144
|
+
updateWidgetState: updateWidgetState,
|
|
145
|
+
proxy: proxy,
|
|
146
|
+
destroy: destroy
|
|
147
|
+
};
|
|
148
|
+
}, [pageContext, updateWidgetState, proxy, destroy]);
|
|
153
149
|
return __jsx(_useHttp.HttpProvider, null, __jsx(WidgetContext.Provider, {
|
|
154
150
|
value: contextValue
|
|
155
151
|
}, children));
|
|
@@ -166,6 +162,9 @@ var useWidgetProxy = exports.useWidgetProxy = function useWidgetProxy(name) {
|
|
|
166
162
|
if (!context) {
|
|
167
163
|
throw new Error("useWidgetProxy must be used within a WidgetProvider");
|
|
168
164
|
}
|
|
165
|
+
if (!name) {
|
|
166
|
+
return context.proxy.Widgets;
|
|
167
|
+
}
|
|
169
168
|
return (0, _get["default"])(context.proxy, "Widgets.".concat(name), {});
|
|
170
169
|
};
|
|
171
170
|
var useProxy = exports.useProxy = function useProxy(path) {
|
package/core/app.service.js
CHANGED
|
@@ -33,7 +33,7 @@ function _loadWmProperties() {
|
|
|
33
33
|
case 0:
|
|
34
34
|
_context4.prev = 0;
|
|
35
35
|
_context4.next = 3;
|
|
36
|
-
return _axios["default"].get("".concat(baseUrl, "/services/application/wmProperties.js"));
|
|
36
|
+
return _axios["default"].get("".concat(baseUrl !== null && baseUrl !== void 0 ? baseUrl : "", "/services/application/wmProperties.js"));
|
|
37
37
|
case 3:
|
|
38
38
|
response = _context4.sent;
|
|
39
39
|
text = response.data;
|