@wavemaker-ai/react-runtime 1.0.0-rc.647469 → 1.0.0-rc.647502
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.d.ts +7 -0
- package/actions/login-action.d.ts +11 -0
- package/actions/logout-action.d.ts +10 -0
- package/actions/navigation-action.d.ts +35 -0
- package/actions/navigation-action.js +23 -5
- package/actions/notification-action.d.ts +20 -0
- package/actions/timer-action.d.ts +27 -0
- package/components/advanced/carousel/index.d.ts +1 -0
- package/components/advanced/carousel/index.js +2 -1
- package/components/advanced/carousel/template.d.ts +1 -0
- package/components/advanced/carousel/template.js +2 -1
- package/components/advanced/login/index.d.ts +1 -0
- package/components/advanced/marquee/index.d.ts +1 -0
- package/components/advanced/marquee/index.js +2 -1
- package/components/basic/anchor/index.d.ts +1 -0
- package/components/basic/anchor/index.js +4 -3
- package/components/basic/audio/index.d.ts +1 -0
- package/components/basic/audio/index.js +3 -2
- package/components/basic/html/index.d.ts +1 -0
- package/components/basic/icon/index.d.ts +1 -0
- package/components/basic/icon/index.js +4 -7
- package/components/basic/iframe/iframe.utils.d.ts +1 -1
- package/components/basic/iframe/iframe.utils.js +8 -4
- package/components/basic/iframe/index.d.ts +1 -0
- package/components/basic/label/index.d.ts +1 -0
- package/components/basic/label/index.js +3 -2
- package/components/basic/message/index.js +1 -1
- package/components/basic/picture/index.d.ts +1 -0
- package/components/basic/picture/index.js +3 -4
- package/components/basic/progress-bar/index.d.ts +1 -0
- package/components/basic/progress-bar/index.js +2 -1
- package/components/basic/progress-circle/index.d.ts +1 -0
- package/components/basic/richtexteditor/index.d.ts +2 -0
- package/components/basic/search/index.d.ts +3 -0
- package/components/basic/search/index.js +7 -4
- package/components/basic/search/props.d.ts +2 -0
- package/components/basic/spinner/index.d.ts +1 -0
- package/components/basic/tile/index.d.ts +1 -0
- package/components/basic/tile/index.js +2 -1
- package/components/basic/tree/Components/TreeNodeComponent.js +9 -5
- package/components/basic/tree/index.d.ts +1 -0
- package/components/basic/tree/index.js +14 -3
- package/components/basic/tree/utils.d.ts +2 -0
- package/components/basic/tree/utils.js +11 -1
- package/components/basic/video/index.d.ts +1 -0
- package/components/basic/video/index.js +40 -23
- package/components/chart/index.d.ts +1 -0
- package/components/common/AppSpinner.js +2 -5
- package/components/container/accordion/accordion-pane/index.d.ts +1 -0
- package/components/container/accordion/accordion-pane/index.js +1 -4
- package/components/container/accordion/index.d.ts +1 -0
- package/components/container/index.d.ts +3 -0
- package/components/container/index.js +6 -1
- package/components/container/layout-grid/grid-column/index.d.ts +1 -0
- package/components/container/layout-grid/grid-row/index.d.ts +1 -0
- package/components/container/layout-grid/index.d.ts +1 -0
- package/components/container/layout-grid/index.js +4 -8
- package/components/container/linear-layout/index.d.ts +1 -0
- package/components/container/linear-layout/linear-layout-item/index.d.ts +1 -0
- package/components/container/panel/components/panel-header/index.js +11 -6
- package/components/container/panel/components/panel-header/props.d.ts +5 -0
- package/components/container/panel/index.d.ts +1 -0
- package/components/container/panel/index.js +2 -1
- package/components/container/props.d.ts +2 -0
- package/components/container/repeat-template/index.d.ts +22 -1
- package/components/container/repeat-template/index.js +2 -1
- package/components/container/tabs/index.d.ts +3 -1
- package/components/container/tabs/index.js +102 -51
- package/components/container/tabs/props.d.ts +12 -0
- package/components/container/tabs/tab-pane/index.d.ts +1 -0
- package/components/container/tabs/tab-pane/index.js +28 -11
- package/components/container/wizard/index.d.ts +2 -0
- package/components/container/wizard/wizard-step/index.d.ts +1 -0
- package/components/container/wizard/wizard-step/index.js +2 -2
- package/components/data/card/card-actions/index.d.ts +1 -0
- package/components/data/card/card-actions/index.js +3 -5
- package/components/data/card/card-content/index.d.ts +1 -0
- package/components/data/card/card-content/index.js +3 -13
- package/components/data/card/card-footer/index.d.ts +1 -0
- package/components/data/card/card-footer/index.js +3 -5
- package/components/data/card/index.d.ts +1 -0
- package/components/data/card/index.js +3 -14
- package/components/data/form/dynamic-fields/index.js +7 -1
- package/components/data/form/dynamic-fields/props.d.ts +1 -0
- package/components/data/form/form-action/index.d.ts +2 -0
- package/components/data/form/form-body/index.js +2 -1
- package/components/data/form/form-field/base-field.js +4 -3
- package/components/data/form/form-footer/index.js +2 -1
- package/components/data/list/components/ListItemWithTemplate.js +4 -2
- package/components/data/list/hooks/props.d.ts +2 -2
- package/components/data/list/hooks/useListEventHandlers.js +6 -6
- package/components/data/list/index.d.ts +2 -0
- package/components/data/list/index.js +3 -4
- package/components/data/list/props.d.ts +2 -1
- package/components/data/list/utils/list-widget-methods.d.ts +2 -1
- package/components/data/table/components/RowCells.d.ts +16 -2
- package/components/data/table/components/RowCells.js +38 -24
- package/components/data/table/components/TableBody.js +11 -3
- package/components/data/table/components/TableDataRow.d.ts +3 -0
- package/components/data/table/components/TableDataRow.js +11 -3
- package/components/data/table/components/TableHeader.js +1 -4
- package/components/data/table/hooks/index.d.ts +1 -0
- package/components/data/table/hooks/index.js +12 -0
- package/components/data/table/hooks/useCustomExpressionColumns.d.ts +16 -0
- package/components/data/table/hooks/useCustomExpressionColumns.js +88 -0
- package/components/data/table/hooks/useDynamicColumns.js +1 -1
- package/components/data/table/hooks/useResponsiveColumns.d.ts +1 -0
- package/components/data/table/hooks/useRowSelection.d.ts +1 -1
- package/components/data/table/hooks/useRowSelection.js +26 -5
- package/components/data/table/hooks/useTableInitialization.js +2 -1
- package/components/data/table/index.d.ts +4 -0
- package/components/data/table/index.js +77 -12
- package/components/data/table/live-table/index.d.ts +1 -0
- package/components/data/table/props.d.ts +7 -0
- package/components/data/table/table-action/index.d.ts +1 -0
- package/components/data/table/table-column/index.d.ts +1 -0
- package/components/data/table/table-row/index.d.ts +1 -0
- package/components/data/table/table-row-action/index.d.ts +1 -0
- package/components/data/table/utils/buildSelectionColumns.js +7 -1
- package/components/data/table/utils/columnBuilder.js +1 -1
- package/components/data/table/utils/index.js +2 -2
- package/components/data/table/utils/renderDisplayCell.js +1 -1
- package/components/dialogs/alert-dialog/index.d.ts +2 -0
- package/components/dialogs/confirm-dialog/index.d.ts +2 -0
- package/components/dialogs/dialog/index.d.ts +2 -0
- package/components/dialogs/dialog/index.js +2 -4
- package/components/dialogs/dialog-actions/index.d.ts +1 -0
- package/components/dialogs/dialog-body/index.d.ts +1 -0
- package/components/dialogs/dialog-content/index.d.ts +1 -0
- package/components/dialogs/dialog-header/index.d.ts +1 -0
- package/components/dialogs/iframe-dialog/index.d.ts +2 -0
- package/components/dialogs/login-dialog/index.d.ts +2 -0
- package/components/dialogs/page-dialog/index.d.ts +2 -0
- package/components/form/button/index.d.ts +1 -0
- package/components/form/button/index.js +4 -3
- package/components/form/button-group/index.d.ts +1 -0
- package/components/form/button-group/index.js +2 -1
- package/components/input/calendar/index.d.ts +2 -0
- package/components/input/chips/index.d.ts +2 -0
- package/components/input/color-picker/index.d.ts +2 -0
- package/components/input/composite/index.d.ts +1 -0
- package/components/input/currency/index.d.ts +2 -0
- package/components/input/default/checkbox/index.d.ts +2 -0
- package/components/input/default/checkboxset/index.d.ts +2 -0
- package/components/input/default/radioset/index.d.ts +2 -0
- package/components/input/default/switch/index.d.ts +2 -0
- package/components/input/epoch/date/components/DatePickerPopover.js +11 -29
- package/components/input/epoch/date/index.d.ts +1 -0
- package/components/input/epoch/datetime/index.d.ts +1 -0
- package/components/input/epoch/datetime/index.js +10 -25
- package/components/input/epoch/time/index.d.ts +1 -0
- package/components/input/epoch/time/index.js +1 -1
- package/components/input/epoch/time/utils.d.ts +0 -17
- package/components/input/epoch/time/utils.js +1 -18
- package/components/input/fileupload/index.d.ts +1 -0
- package/components/input/number/index.d.ts +2 -0
- package/components/input/rating/index.d.ts +2 -0
- package/components/input/rating/index.js +14 -17
- package/components/input/select/index.d.ts +2 -0
- package/components/input/select/index.js +1 -4
- package/components/input/slider/index.d.ts +2 -0
- package/components/input/slider/index.js +13 -12
- package/components/input/text/index.d.ts +2 -0
- package/components/input/text/index.js +3 -14
- package/components/input/textarea/index.d.ts +2 -0
- package/components/input/textarea/index.js +7 -10
- package/components/input/upload/index.d.ts +2 -0
- package/components/input/upload/index.js +3 -5
- package/components/layout/footer/index.js +2 -1
- package/components/layout/footer/props.d.ts +1 -0
- package/components/layout/header/index.js +2 -1
- package/components/layout/header/props.d.ts +1 -0
- package/components/layout/leftnav/index.js +2 -1
- package/components/layout/leftnav/props.d.ts +1 -0
- package/components/layout/rightnav/index.js +2 -1
- package/components/layout/rightnav/props.d.ts +1 -0
- package/components/layout/topnav/index.js +2 -1
- package/components/layout/topnav/props.d.ts +1 -0
- package/components/navbar/index.d.ts +1 -0
- package/components/navbar/index.js +2 -1
- package/components/navbar/nav/index.d.ts +1 -0
- package/components/navbar/nav-item/index.d.ts +1 -0
- package/components/navbar/nav-item/index.js +2 -1
- package/components/navigation/breadcrumb/index.d.ts +1 -0
- package/components/navigation/menu/index.d.ts +1 -0
- package/components/navigation/menu/index.js +5 -4
- package/components/navigation/popover/index.d.ts +2 -1
- package/components/navigation/popover/index.js +1 -1
- package/components/page/error-boundary/index.js +5 -5
- package/components/page/index.js +13 -9
- package/components/page/partial/index.d.ts +1 -0
- package/components/prefab/container/index.js +2 -1
- package/context/WidgetProvider.js +2 -2
- package/core/app.service.js +40 -35
- package/core/constants/events.js +6 -0
- package/core/constants/index.d.ts +9 -1
- package/core/constants/index.js +32 -5
- package/core/formatter/date-formatters.d.ts +1 -1
- package/core/formatter/date-formatters.js +38 -13
- package/core/formatter/types.d.ts +1 -1
- package/core/proxy-service.js +15 -5
- package/core/security.service.d.ts +12 -0
- package/core/util/index.js +3 -2
- package/higherOrder/BaseApp.js +2 -2
- package/higherOrder/BasePage.d.ts +0 -17
- package/higherOrder/BasePage.js +53 -104
- package/higherOrder/BasePrefab.js +69 -59
- package/higherOrder/props.d.ts +1 -0
- package/higherOrder/withBaseWrapper.js +3 -4
- package/hooks/useAccess.js +13 -0
- package/mui-config/theme-provider.d.ts +3 -0
- package/mui-config/theme.d.ts +2 -0
- package/mui-config/theme.js +1 -4
- package/package-lock.json +2640 -615
- package/package.json +23 -4
- package/runtime-dynamic/App.d.ts +7 -0
- package/runtime-dynamic/App.js +144 -0
- package/runtime-dynamic/app-initializer.d.ts +15 -0
- package/runtime-dynamic/app-initializer.js +447 -0
- package/runtime-dynamic/components/ErrorBoundary.d.ts +18 -0
- package/runtime-dynamic/components/ErrorBoundary.js +93 -0
- package/runtime-dynamic/components/PageWrapper.d.ts +1 -0
- package/runtime-dynamic/components/PageWrapper.js +43 -0
- package/runtime-dynamic/components/PrefabPreview.d.ts +1 -0
- package/runtime-dynamic/components/PrefabPreview.js +84 -0
- package/runtime-dynamic/components/partial-content.d.ts +15 -0
- package/runtime-dynamic/components/partial-content.js +50 -0
- package/runtime-dynamic/components/prefab-content.d.ts +10 -0
- package/runtime-dynamic/components/prefab-content.js +31 -0
- package/runtime-dynamic/components/use-dynamic-component.d.ts +10 -0
- package/runtime-dynamic/components/use-dynamic-component.js +165 -0
- package/runtime-dynamic/factories/build-base-page-like-component.d.ts +8 -0
- package/runtime-dynamic/factories/build-base-page-like-component.js +59 -0
- package/runtime-dynamic/factories/prefab-factory.d.ts +3 -0
- package/runtime-dynamic/factories/prefab-factory.js +82 -0
- package/runtime-dynamic/factories/startup-info.d.ts +6 -0
- package/runtime-dynamic/factories/startup-info.js +28 -0
- package/runtime-dynamic/factories/utils.d.ts +23 -0
- package/runtime-dynamic/factories/utils.js +131 -0
- package/runtime-dynamic/index.d.ts +14 -0
- package/runtime-dynamic/index.js +191 -0
- package/runtime-dynamic/main.d.ts +2 -0
- package/runtime-dynamic/main.js +84 -0
- package/runtime-dynamic/preview-mode.d.ts +15 -0
- package/runtime-dynamic/preview-mode.js +31 -0
- package/runtime-dynamic/preview-navigation.d.ts +6 -0
- package/runtime-dynamic/preview-navigation.js +38 -0
- package/runtime-dynamic/preview-resource-base.d.ts +12 -0
- package/runtime-dynamic/preview-resource-base.js +65 -0
- package/runtime-dynamic/registry/component-registry.d.ts +3 -0
- package/runtime-dynamic/registry/component-registry.js +353 -0
- package/runtime-dynamic/registry/custom-widget-registry.d.ts +7 -0
- package/runtime-dynamic/registry/custom-widget-registry.js +18 -0
- package/runtime-dynamic/registry/index.d.ts +2 -0
- package/runtime-dynamic/registry/index.js +63 -0
- package/runtime-dynamic/registry/store.d.ts +9 -0
- package/runtime-dynamic/registry/store.js +26 -0
- package/runtime-dynamic/routes.d.ts +2 -0
- package/runtime-dynamic/routes.js +107 -0
- package/runtime-dynamic/services/app-extension-provider.d.ts +1 -0
- package/runtime-dynamic/services/app-extension-provider.js +45 -0
- package/runtime-dynamic/services/cache.d.ts +29 -0
- package/runtime-dynamic/services/cache.js +57 -0
- package/runtime-dynamic/services/component-ref-provider.d.ts +12 -0
- package/runtime-dynamic/services/component-ref-provider.js +149 -0
- package/runtime-dynamic/services/css-scoping.d.ts +2 -0
- package/runtime-dynamic/services/css-scoping.js +53 -0
- package/runtime-dynamic/services/fragment-url.d.ts +16 -0
- package/runtime-dynamic/services/fragment-url.js +74 -0
- package/runtime-dynamic/services/index.d.ts +10 -0
- package/runtime-dynamic/services/index.js +152 -0
- package/runtime-dynamic/services/markup-transpiler.d.ts +12 -0
- package/runtime-dynamic/services/markup-transpiler.js +250 -0
- package/runtime-dynamic/services/prefab-resources.d.ts +18 -0
- package/runtime-dynamic/services/prefab-resources.js +159 -0
- package/runtime-dynamic/services/resource-manager.d.ts +2 -0
- package/runtime-dynamic/services/resource-manager.js +66 -0
- package/runtime-dynamic/services/script-executor.d.ts +8 -0
- package/runtime-dynamic/services/script-executor.js +90 -0
- package/runtime-dynamic/services/variable-factory.d.ts +2 -0
- package/runtime-dynamic/services/variable-factory.js +260 -0
- package/runtime-dynamic/services/variable-registry.d.ts +12 -0
- package/runtime-dynamic/services/variable-registry.js +118 -0
- package/runtime-dynamic/services/variable-transpiler.d.ts +5 -0
- package/runtime-dynamic/services/variable-transpiler.js +159 -0
- package/runtime-dynamic/shims/next-image.d.ts +35 -0
- package/runtime-dynamic/shims/next-image.js +60 -0
- package/runtime-dynamic/shims/next-link.d.ts +25 -0
- package/runtime-dynamic/shims/next-link.js +33 -0
- package/runtime-dynamic/shims/next-navigation.d.ts +16 -0
- package/runtime-dynamic/shims/next-navigation.js +52 -0
- package/runtime-dynamic/utils/index.d.ts +9 -0
- package/runtime-dynamic/utils/index.js +40 -0
- package/store/middleware/navigationMiddleware.js +1 -1
- package/store/slices/appConfigSlice.js +10 -8
- package/store/slices/authSlice.js +46 -32
- package/tsconfig.declaration.tsbuildinfo +1 -1
- package/types/index.d.ts +1 -0
- package/utils/attr.js +71 -14
- package/utils/custom-expression/index.d.ts +43 -0
- package/utils/custom-expression/index.js +161 -0
- package/utils/custom-expression/parser.d.ts +15 -0
- package/utils/custom-expression/parser.js +208 -0
- package/utils/layoutsize-util.d.ts +1 -0
- package/utils/layoutsize-util.js +57 -0
- package/utils/lib-error-skipper.d.ts +4 -26
- package/utils/lib-error-skipper.js +41 -165
- package/utils/style-utils.d.ts +6 -0
- package/utils/style-utils.js +10 -1
- package/variables/metadata.service.js +2 -3
- package/variables/model-variable.js +10 -7
- package/variables/service-variable.d.ts +1 -0
- package/variables/service-variable.js +26 -6
- package/components/input/epoch/datetime/styled.d.ts +0 -78
- package/components/input/epoch/datetime/styled.js +0 -90
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PrefabPreview = PrefabPreview;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _errorBoundary = _interopRequireDefault(require("@wavemaker-ai/react-runtime/components/page/error-boundary"));
|
|
11
|
+
var _common = require("@wavemaker-ai/react-runtime/components/common");
|
|
12
|
+
var _WidgetProvider = require("@wavemaker-ai/react-runtime/context/WidgetProvider");
|
|
13
|
+
var _fragmentUrl = require("../services/fragment-url");
|
|
14
|
+
var _ErrorBoundary = require("./ErrorBoundary");
|
|
15
|
+
var _useDynamicComponent2 = require("./use-dynamic-component");
|
|
16
|
+
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); }
|
|
17
|
+
var __jsx = _react["default"].createElement;
|
|
18
|
+
/** Matches Angular prefab preview `prefabname="__self__"` — root bundle, not `app/prefabs/…`. */
|
|
19
|
+
var PREFAB_PREVIEW_NAME = "__self__";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Minimal host {@link WidgetProvider} so {@link BasePrefab}'s {@link withBaseWrapper} has
|
|
23
|
+
* {@link usePageContext} before the prefab's own {@link BasePage} mounts (embedded prefabs use the page's provider).
|
|
24
|
+
*/
|
|
25
|
+
function PrefabPreviewWidgetHost(_ref) {
|
|
26
|
+
var children = _ref.children;
|
|
27
|
+
var proxy = (0, _react.useRef)({
|
|
28
|
+
Widgets: {},
|
|
29
|
+
App: {
|
|
30
|
+
Widgets: {}
|
|
31
|
+
},
|
|
32
|
+
layoutReady: function layoutReady() {}
|
|
33
|
+
});
|
|
34
|
+
var pageShell = (0, _react.useMemo)(function () {
|
|
35
|
+
return {
|
|
36
|
+
type: "PAGE",
|
|
37
|
+
componentType: "PAGE",
|
|
38
|
+
componentName: "PrefabPreview",
|
|
39
|
+
Widgets: {},
|
|
40
|
+
App: {
|
|
41
|
+
Widgets: {}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
var providerValue = (0, _react.useMemo)(function () {
|
|
46
|
+
return {
|
|
47
|
+
value: pageShell,
|
|
48
|
+
proxy: proxy.current
|
|
49
|
+
};
|
|
50
|
+
}, [pageShell]);
|
|
51
|
+
return __jsx(_WidgetProvider.WidgetProvider, {
|
|
52
|
+
value: providerValue
|
|
53
|
+
}, children);
|
|
54
|
+
}
|
|
55
|
+
function PrefabPreview() {
|
|
56
|
+
var _useDynamicComponent = (0, _useDynamicComponent2.useDynamicComponent)(PREFAB_PREVIEW_NAME, _fragmentUrl.ComponentType.PREFAB),
|
|
57
|
+
Component = _useDynamicComponent.Component,
|
|
58
|
+
isLoading = _useDynamicComponent.isLoading,
|
|
59
|
+
error = _useDynamicComponent.error;
|
|
60
|
+
if (isLoading) {
|
|
61
|
+
return __jsx(_common.AppSpinner, {
|
|
62
|
+
show: true,
|
|
63
|
+
spinnermessages: ["Loading prefab…"]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (error) {
|
|
67
|
+
return __jsx(_errorBoundary["default"], {
|
|
68
|
+
error: error,
|
|
69
|
+
title: "Failed to load prefab preview",
|
|
70
|
+
subtitle: "The prefab could not be loaded. Please try again."
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (!Component) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return __jsx(_ErrorBoundary.ComponentErrorBoundary, {
|
|
77
|
+
scope: "prefab",
|
|
78
|
+
componentName: PREFAB_PREVIEW_NAME
|
|
79
|
+
}, __jsx(PrefabPreviewWidgetHost, null, __jsx("div", {
|
|
80
|
+
className: "prefab-preview row"
|
|
81
|
+
}, __jsx(Component, {
|
|
82
|
+
prefabname: ""
|
|
83
|
+
}))));
|
|
84
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Prettify, BaseProps } from "@wavemaker-ai/react-runtime/higherOrder/props";
|
|
3
|
+
export interface WmPartialContentProp {
|
|
4
|
+
prefab?: boolean;
|
|
5
|
+
content: string;
|
|
6
|
+
partialName?: string;
|
|
7
|
+
params?: string[];
|
|
8
|
+
onLoad?: (widget: {
|
|
9
|
+
viewParent?: Record<string, unknown>;
|
|
10
|
+
}) => void;
|
|
11
|
+
onRender?: (commonComponent: any) => void;
|
|
12
|
+
}
|
|
13
|
+
export type WmPartialContentProps = Prettify<WmPartialContentProp & BaseProps>;
|
|
14
|
+
declare const WmPartialContent: React.MemoExoticComponent<(props: WmPartialContentProps) => import("react/jsx-runtime").JSX.Element>;
|
|
15
|
+
export default WmPartialContent;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _Container = _interopRequireDefault(require("@mui/material/Container"));
|
|
11
|
+
var _spinner = require("../../components/basic/spinner");
|
|
12
|
+
var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
|
|
13
|
+
var _store = require("@wavemaker-ai/react-runtime/runtime-dynamic/registry/store");
|
|
14
|
+
var _fragmentUrl = require("@wavemaker-ai/react-runtime/runtime-dynamic/services/fragment-url");
|
|
15
|
+
var _ErrorBoundary = require("./ErrorBoundary");
|
|
16
|
+
var _useDynamicComponent2 = require("./use-dynamic-component");
|
|
17
|
+
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); }
|
|
18
|
+
var __jsx = _react["default"].createElement;
|
|
19
|
+
var WmPartialContent = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
20
|
+
var _useDynamicComponent = (0, _useDynamicComponent2.useDynamicComponent)(props === null || props === void 0 ? void 0 : props.content, _fragmentUrl.ComponentType.PARTIAL),
|
|
21
|
+
Component = _useDynamicComponent.Component;
|
|
22
|
+
return __jsx(_ErrorBoundary.ComponentErrorBoundary, {
|
|
23
|
+
scope: "partial",
|
|
24
|
+
componentName: props.content
|
|
25
|
+
}, __jsx(_Container["default"], {
|
|
26
|
+
className: "partial-container"
|
|
27
|
+
}, __jsx(_react.Suspense, {
|
|
28
|
+
fallback: __jsx(_spinner.WmSpinner, {
|
|
29
|
+
show: true,
|
|
30
|
+
listener: props.listener,
|
|
31
|
+
name: "partial-container-spinner"
|
|
32
|
+
})
|
|
33
|
+
}, Component && __jsx(Component, props))));
|
|
34
|
+
}, function (prevProps, nextProps) {
|
|
35
|
+
var staticKeys = ["content", "prefab", "prefabName", "partialName", "styles", "params"];
|
|
36
|
+
var staticEqual = staticKeys.every(function (key) {
|
|
37
|
+
if (key === "styles") {
|
|
38
|
+
return (0, _isEqual["default"])(prevProps[key], nextProps[key]);
|
|
39
|
+
}
|
|
40
|
+
return prevProps[key] === nextProps[key];
|
|
41
|
+
});
|
|
42
|
+
if (!staticEqual) return false;
|
|
43
|
+
var paramNames = nextProps.params || [];
|
|
44
|
+
return paramNames.every(function (p) {
|
|
45
|
+
return prevProps[p] === nextProps[p];
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
WmPartialContent.displayName = "WmPartialContent";
|
|
49
|
+
(0, _store.registerComponent)("WmPartialContent", WmPartialContent);
|
|
50
|
+
var _default = exports["default"] = WmPartialContent;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type PrefabContentProps = {
|
|
3
|
+
prefabname: string;
|
|
4
|
+
content: string;
|
|
5
|
+
params: Record<string, unknown>;
|
|
6
|
+
onRender: (component: React.ComponentType<any>) => void;
|
|
7
|
+
listener: any;
|
|
8
|
+
};
|
|
9
|
+
declare const PrefabContent: (props: PrefabContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default PrefabContent;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _spinner = require("../../components/basic/spinner");
|
|
10
|
+
var _fragmentUrl = require("../services/fragment-url");
|
|
11
|
+
var _ErrorBoundary = require("./ErrorBoundary");
|
|
12
|
+
var _useDynamicComponent2 = require("./use-dynamic-component");
|
|
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
|
+
var __jsx = _react["default"].createElement;
|
|
15
|
+
var PrefabContent = function PrefabContent(props) {
|
|
16
|
+
var _useDynamicComponent = (0, _useDynamicComponent2.useDynamicComponent)(props === null || props === void 0 ? void 0 : props.prefabname, _fragmentUrl.ComponentType.PREFAB, {
|
|
17
|
+
prefabName: props === null || props === void 0 ? void 0 : props.prefabname
|
|
18
|
+
}),
|
|
19
|
+
Component = _useDynamicComponent.Component;
|
|
20
|
+
return __jsx(_ErrorBoundary.ComponentErrorBoundary, {
|
|
21
|
+
scope: "prefab",
|
|
22
|
+
componentName: props.prefabname
|
|
23
|
+
}, __jsx(_react.Suspense, {
|
|
24
|
+
fallback: __jsx(_spinner.WmSpinner, {
|
|
25
|
+
show: true,
|
|
26
|
+
listener: props.listener,
|
|
27
|
+
name: "prefab-spinner"
|
|
28
|
+
})
|
|
29
|
+
}, Component && __jsx(Component, props)));
|
|
30
|
+
};
|
|
31
|
+
var _default = exports["default"] = PrefabContent;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentType } from "../services/fragment-url";
|
|
2
|
+
interface DynamicComponentState {
|
|
3
|
+
Component: React.ComponentType<any> | null;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function useDynamicComponent(componentName: string | undefined, componentType: ComponentType, options?: {
|
|
8
|
+
prefabName?: string;
|
|
9
|
+
}): DynamicComponentState;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useDynamicComponent = useDynamicComponent;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _componentRefProvider = require("../services/component-ref-provider");
|
|
13
|
+
var _fragmentUrl = require("../services/fragment-url");
|
|
14
|
+
var _cache = require("../services/cache");
|
|
15
|
+
var _buildBasePageLikeComponent = require("../factories/build-base-page-like-component");
|
|
16
|
+
var _prefabFactory = require("../factories/prefab-factory");
|
|
17
|
+
/** Third argument is only used for {@link ComponentType.PREFAB}: outbound defaults from prefab `config.json` (see {@link buildPrefabComponent}). */
|
|
18
|
+
|
|
19
|
+
var builders = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _fragmentUrl.ComponentType.PAGE, function (name, fragment) {
|
|
20
|
+
return (0, _buildBasePageLikeComponent.buildBasePageLikeComponent)("page", name, fragment);
|
|
21
|
+
}), _fragmentUrl.ComponentType.PARTIAL, function (name, fragment) {
|
|
22
|
+
return (0, _buildBasePageLikeComponent.buildBasePageLikeComponent)("partial", name, fragment);
|
|
23
|
+
}), _fragmentUrl.ComponentType.PREFAB, function (name, fragment, prefabOutboundDefaults) {
|
|
24
|
+
return (0, _prefabFactory.buildPrefabComponent)(name, fragment, prefabOutboundDefaults !== null && prefabOutboundDefaults !== void 0 ? prefabOutboundDefaults : {});
|
|
25
|
+
});
|
|
26
|
+
function getCachedComponent(componentType, name) {
|
|
27
|
+
if (!name) return undefined;
|
|
28
|
+
return (0, _cache.getComponentFromCache)(componentType, name);
|
|
29
|
+
}
|
|
30
|
+
function resolveInitialState(componentName, componentType) {
|
|
31
|
+
var cached = getCachedComponent(componentType, componentName);
|
|
32
|
+
if (cached) return {
|
|
33
|
+
Component: cached,
|
|
34
|
+
isLoading: false,
|
|
35
|
+
error: null
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
Component: null,
|
|
39
|
+
isLoading: !!componentName,
|
|
40
|
+
error: null
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function getFragmentFetchOptions(componentType, prefabNameOption, resolvedName) {
|
|
44
|
+
if (componentType !== _fragmentUrl.ComponentType.PREFAB) return undefined;
|
|
45
|
+
return {
|
|
46
|
+
prefabName: prefabNameOption || resolvedName
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function useDynamicComponent(componentName, componentType, options) {
|
|
50
|
+
var _useState = (0, _react.useState)(function () {
|
|
51
|
+
return resolveInitialState(componentName, componentType);
|
|
52
|
+
}),
|
|
53
|
+
state = _useState[0],
|
|
54
|
+
setState = _useState[1];
|
|
55
|
+
var activeRequestRef = (0, _react.useRef)(0);
|
|
56
|
+
var load = (0, _react.useCallback)(/*#__PURE__*/function () {
|
|
57
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(name) {
|
|
58
|
+
var cached, requestId, fetchOptions, _prefabOutboundDefaults, _fragment, builder, Component, error;
|
|
59
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
60
|
+
while (1) switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
cached = getCachedComponent(componentType, name);
|
|
63
|
+
if (!cached) {
|
|
64
|
+
_context.next = 4;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
setState({
|
|
68
|
+
Component: cached,
|
|
69
|
+
isLoading: false,
|
|
70
|
+
error: null
|
|
71
|
+
});
|
|
72
|
+
return _context.abrupt("return");
|
|
73
|
+
case 4:
|
|
74
|
+
requestId = ++activeRequestRef.current;
|
|
75
|
+
setState({
|
|
76
|
+
Component: null,
|
|
77
|
+
isLoading: true,
|
|
78
|
+
error: null
|
|
79
|
+
});
|
|
80
|
+
_context.prev = 6;
|
|
81
|
+
fetchOptions = getFragmentFetchOptions(componentType, options === null || options === void 0 ? void 0 : options.prefabName, name);
|
|
82
|
+
if (!(componentType === _fragmentUrl.ComponentType.PREFAB)) {
|
|
83
|
+
_context.next = 15;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
_context.next = 11;
|
|
87
|
+
return (0, _componentRefProvider.getPrefabConfig)(name);
|
|
88
|
+
case 11:
|
|
89
|
+
_context.t0 = _context.sent;
|
|
90
|
+
if (_context.t0) {
|
|
91
|
+
_context.next = 14;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
_context.t0 = {};
|
|
95
|
+
case 14:
|
|
96
|
+
_prefabOutboundDefaults = _context.t0;
|
|
97
|
+
case 15:
|
|
98
|
+
_context.next = 17;
|
|
99
|
+
return (0, _componentRefProvider.getComponentRef)(name, componentType, fetchOptions);
|
|
100
|
+
case 17:
|
|
101
|
+
_fragment = _context.sent;
|
|
102
|
+
builder = builders[componentType];
|
|
103
|
+
if (builder) {
|
|
104
|
+
_context.next = 21;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
throw new Error("No builder registered for component type: ".concat(componentType));
|
|
108
|
+
case 21:
|
|
109
|
+
_context.next = 23;
|
|
110
|
+
return builder(name, _fragment, _prefabOutboundDefaults);
|
|
111
|
+
case 23:
|
|
112
|
+
Component = _context.sent;
|
|
113
|
+
(0, _cache.setComponentInCache)(componentType, name, Component);
|
|
114
|
+
if (requestId === activeRequestRef.current) {
|
|
115
|
+
setState({
|
|
116
|
+
Component: Component,
|
|
117
|
+
isLoading: false,
|
|
118
|
+
error: null
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
_context.next = 35;
|
|
122
|
+
break;
|
|
123
|
+
case 28:
|
|
124
|
+
_context.prev = 28;
|
|
125
|
+
_context.t1 = _context["catch"](6);
|
|
126
|
+
if (!(requestId !== activeRequestRef.current)) {
|
|
127
|
+
_context.next = 32;
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
return _context.abrupt("return");
|
|
131
|
+
case 32:
|
|
132
|
+
error = _context.t1 instanceof Error ? _context.t1 : new Error("Failed to load ".concat(componentType));
|
|
133
|
+
console.error("Failed to load ".concat(componentType, " \"").concat(name, "\":"), _context.t1);
|
|
134
|
+
setState({
|
|
135
|
+
Component: null,
|
|
136
|
+
isLoading: false,
|
|
137
|
+
error: error
|
|
138
|
+
});
|
|
139
|
+
case 35:
|
|
140
|
+
case "end":
|
|
141
|
+
return _context.stop();
|
|
142
|
+
}
|
|
143
|
+
}, _callee, null, [[6, 28]]);
|
|
144
|
+
}));
|
|
145
|
+
return function (_x) {
|
|
146
|
+
return _ref.apply(this, arguments);
|
|
147
|
+
};
|
|
148
|
+
}(), [componentType, options === null || options === void 0 ? void 0 : options.prefabName]);
|
|
149
|
+
(0, _react.useEffect)(function () {
|
|
150
|
+
if (!componentName) return;
|
|
151
|
+
var cached = getCachedComponent(componentType, componentName);
|
|
152
|
+
if (cached) {
|
|
153
|
+
setState(function (prev) {
|
|
154
|
+
return prev.Component === cached ? prev : {
|
|
155
|
+
Component: cached,
|
|
156
|
+
isLoading: false,
|
|
157
|
+
error: null
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
load(componentName);
|
|
163
|
+
}, [componentName, load, componentType]);
|
|
164
|
+
return state;
|
|
165
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DecodedFragment } from "../services/cache";
|
|
3
|
+
export type BasePageLikeKind = "page" | "partial";
|
|
4
|
+
/**
|
|
5
|
+
* Shared path for dynamically loaded pages and partials: both wrap codegen output
|
|
6
|
+
* with {@link BasePage}, differing only in script scope and startup metadata labels.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildBasePageLikeComponent(kind: BasePageLikeKind, name: string, fragment: DecodedFragment): Promise<React.ComponentType<any>>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.buildBasePageLikeComponent = buildBasePageLikeComponent;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _BasePage = _interopRequireDefault(require("@wavemaker-ai/react-runtime/higherOrder/BasePage"));
|
|
13
|
+
var _scriptExecutor = require("../services/script-executor");
|
|
14
|
+
var _utils = require("./utils");
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
/**
|
|
18
|
+
* Shared path for dynamically loaded pages and partials: both wrap codegen output
|
|
19
|
+
* with {@link BasePage}, differing only in script scope and startup metadata labels.
|
|
20
|
+
*/
|
|
21
|
+
function buildBasePageLikeComponent(_x, _x2, _x3) {
|
|
22
|
+
return _buildBasePageLikeComponent.apply(this, arguments);
|
|
23
|
+
}
|
|
24
|
+
function _buildBasePageLikeComponent() {
|
|
25
|
+
_buildBasePageLikeComponent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(kind, name, fragment) {
|
|
26
|
+
var isPage, WrappedComponent, MemoizedComponent;
|
|
27
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
28
|
+
while (1) switch (_context.prev = _context.next) {
|
|
29
|
+
case 0:
|
|
30
|
+
isPage = kind === "page";
|
|
31
|
+
_context.next = 3;
|
|
32
|
+
return (0, _utils.buildDynamicComponent)(fragment, {
|
|
33
|
+
componentName: name,
|
|
34
|
+
componentType: isPage ? "page" : "partial",
|
|
35
|
+
scriptScope: isPage ? _scriptExecutor.ScriptScope.PAGE : _scriptExecutor.ScriptScope.PARTIAL,
|
|
36
|
+
hoc: _BasePage["default"],
|
|
37
|
+
componentInfo: function componentInfo(startupInfo) {
|
|
38
|
+
return _objectSpread(_objectSpread({
|
|
39
|
+
componentName: name,
|
|
40
|
+
componentType: isPage ? "PAGE" : "PARTIAL"
|
|
41
|
+
}, startupInfo), {}, {
|
|
42
|
+
isPartOfPrefab: false,
|
|
43
|
+
appLocale: {}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
case 3:
|
|
48
|
+
WrappedComponent = _context.sent;
|
|
49
|
+
MemoizedComponent = /*#__PURE__*/_react["default"].memo(WrappedComponent);
|
|
50
|
+
MemoizedComponent.displayName = isPage ? "BasePage(".concat(name, ")") : "BasePage_Partial(".concat(name, ")");
|
|
51
|
+
return _context.abrupt("return", MemoizedComponent);
|
|
52
|
+
case 7:
|
|
53
|
+
case "end":
|
|
54
|
+
return _context.stop();
|
|
55
|
+
}
|
|
56
|
+
}, _callee);
|
|
57
|
+
}));
|
|
58
|
+
return _buildBasePageLikeComponent.apply(this, arguments);
|
|
59
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.buildPrefabComponent = buildPrefabComponent;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
var _BasePrefab = _interopRequireDefault(require("@wavemaker-ai/react-runtime/higherOrder/BasePrefab"));
|
|
14
|
+
var _scriptExecutor = require("../services/script-executor");
|
|
15
|
+
var _utils = require("./utils");
|
|
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; }
|
|
19
|
+
function buildPrefabComponent(_x, _x2, _x3) {
|
|
20
|
+
return _buildPrefabComponent.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
function _buildPrefabComponent() {
|
|
23
|
+
_buildPrefabComponent = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(prefabName, fragment, defaultPrefabProps) {
|
|
24
|
+
var BasePrefabComponent, DynamicPrefabShell;
|
|
25
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
|
27
|
+
case 0:
|
|
28
|
+
_context.next = 2;
|
|
29
|
+
return (0, _utils.buildDynamicComponent)(fragment, {
|
|
30
|
+
componentName: prefabName,
|
|
31
|
+
componentType: "prefab",
|
|
32
|
+
scriptScope: _scriptExecutor.ScriptScope.PREFAB,
|
|
33
|
+
hoc: _BasePrefab["default"],
|
|
34
|
+
componentInfo: function componentInfo(startupInfo) {
|
|
35
|
+
return _objectSpread(_objectSpread({
|
|
36
|
+
type: "PREFAB",
|
|
37
|
+
componentName: prefabName,
|
|
38
|
+
componentType: "PREFAB"
|
|
39
|
+
}, startupInfo), {}, {
|
|
40
|
+
partials: [],
|
|
41
|
+
pages: [],
|
|
42
|
+
prefabInfo: {}
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
transpileOptions: {
|
|
46
|
+
isPartOfPrefab: true,
|
|
47
|
+
prefabName: prefabName
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
case 2:
|
|
51
|
+
BasePrefabComponent = _context.sent;
|
|
52
|
+
DynamicPrefabShell = /*#__PURE__*/_react["default"].memo(function (props) {
|
|
53
|
+
var _ref, _ref2;
|
|
54
|
+
var resolvedName = (_ref = (_ref2 = props.name) !== null && _ref2 !== void 0 ? _ref2 : defaultPrefabProps.name) !== null && _ref !== void 0 ? _ref : prefabName;
|
|
55
|
+
// Do NOT spread `defaultPrefabProps` as direct props here. The defaults flow
|
|
56
|
+
// into the prefab's internal `prefabInfo` via `outbound` (see `BasePrefab`),
|
|
57
|
+
// and from there into the prefab's own `pageContext` (so `Prefab.x` defaults
|
|
58
|
+
// are still applied). Spreading them as direct props would make them visible
|
|
59
|
+
// to the OUTER `withBaseWrapper`, which mirrors all direct props onto the
|
|
60
|
+
// parent page's `proxy.Widgets[name]`. Each re-render of the wrapper would
|
|
61
|
+
// then clobber any value the prefab itself wrote via `PARTIAL_STATE_SYNC`
|
|
62
|
+
// (e.g. `Prefab.selectedweekdataset = ...`) with the stale default (null),
|
|
63
|
+
// making `Page.Widgets.<prefab>.<prop>` reset to null in preview while
|
|
64
|
+
// codegen — which never spread defaults at this level — worked correctly.
|
|
65
|
+
return __jsx(BasePrefabComponent, (0, _extends2["default"])({
|
|
66
|
+
inbound: props,
|
|
67
|
+
outbound: defaultPrefabProps,
|
|
68
|
+
prefabname: prefabName
|
|
69
|
+
}, props, {
|
|
70
|
+
name: resolvedName
|
|
71
|
+
}));
|
|
72
|
+
});
|
|
73
|
+
DynamicPrefabShell.displayName = "DynamicPrefab(".concat(prefabName, ")");
|
|
74
|
+
return _context.abrupt("return", DynamicPrefabShell);
|
|
75
|
+
case 6:
|
|
76
|
+
case "end":
|
|
77
|
+
return _context.stop();
|
|
78
|
+
}
|
|
79
|
+
}, _callee);
|
|
80
|
+
}));
|
|
81
|
+
return _buildPrefabComponent.apply(this, arguments);
|
|
82
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildStartupInfo = buildStartupInfo;
|
|
7
|
+
var TIMER_ACTION_CATEGORY = "wm.TimerAction";
|
|
8
|
+
var AUTO_UPDATE_CATEGORIES = ["wm.Variable", "wm.LiveVariable"];
|
|
9
|
+
function buildStartupInfo(variables) {
|
|
10
|
+
var varDefs = Object.values(variables || {});
|
|
11
|
+
return {
|
|
12
|
+
startUpVariables: varDefs.filter(function (v) {
|
|
13
|
+
return v.startUpdate && v.category !== TIMER_ACTION_CATEGORY;
|
|
14
|
+
}).map(function (v) {
|
|
15
|
+
return v.name;
|
|
16
|
+
}),
|
|
17
|
+
startUpActions: varDefs.filter(function (v) {
|
|
18
|
+
return v.startUpdate && v.category === TIMER_ACTION_CATEGORY;
|
|
19
|
+
}).map(function (v) {
|
|
20
|
+
return v.name;
|
|
21
|
+
}),
|
|
22
|
+
autoUpdateVariables: varDefs.filter(function (v) {
|
|
23
|
+
return v.autoUpdate || AUTO_UPDATE_CATEGORIES.includes(v.category || "") && v.dataBinding && v.dataBinding.length;
|
|
24
|
+
}).map(function (v) {
|
|
25
|
+
return v.name;
|
|
26
|
+
})
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ScriptScope } from "../services/script-executor";
|
|
3
|
+
import { buildStartupInfo } from "./startup-info";
|
|
4
|
+
import type { TranspiledOutput, TranspileOptions } from "../services/markup-transpiler";
|
|
5
|
+
import type { DecodedFragment } from "../services/cache";
|
|
6
|
+
interface InnerComponentConfig {
|
|
7
|
+
componentName: string;
|
|
8
|
+
componentType: "page" | "partial" | "prefab";
|
|
9
|
+
transpiled: TranspiledOutput | null;
|
|
10
|
+
styles: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function createDynamicInnerComponent({ componentName, componentType, transpiled, styles, }: InnerComponentConfig): React.FC<any>;
|
|
13
|
+
export interface DynamicComponentConfig {
|
|
14
|
+
componentName: string;
|
|
15
|
+
componentType: "page" | "partial" | "prefab";
|
|
16
|
+
scriptScope: ScriptScope;
|
|
17
|
+
hoc: (...args: any[]) => React.ComponentType<any>;
|
|
18
|
+
componentInfo: (startupInfo: ReturnType<typeof buildStartupInfo>) => Record<string, unknown>;
|
|
19
|
+
transpileOptions?: Partial<TranspileOptions>;
|
|
20
|
+
displayName?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function buildDynamicComponent(fragment: DecodedFragment, config: DynamicComponentConfig): Promise<React.ComponentType<any>>;
|
|
23
|
+
export {};
|