@wavemaker-ai/react-runtime 1.0.0-rc.314 → 1.0.0-rc.319
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/navigation-action.d.ts +1 -0
- package/actions/navigation-action.js +34 -9
- package/components/advanced/carousel/index.d.ts +2 -0
- package/components/advanced/carousel/template.d.ts +2 -0
- package/components/advanced/login/index.d.ts +2 -0
- package/components/advanced/marquee/index.d.ts +2 -0
- package/components/auth/RoleAuthGuard.d.ts +6 -0
- package/components/auth/RoleAuthGuard.js +66 -0
- package/components/basic/anchor/index.d.ts +2 -0
- package/components/basic/anchor/index.js +1 -1
- package/components/basic/audio/index.d.ts +2 -0
- package/components/basic/html/index.d.ts +2 -0
- package/components/basic/icon/index.d.ts +2 -0
- package/components/basic/iframe/index.d.ts +2 -0
- package/components/basic/label/index.d.ts +2 -0
- package/components/basic/label/index.js +17 -3
- package/components/basic/picture/index.d.ts +2 -0
- package/components/basic/picture/index.js +20 -1
- package/components/basic/progress-bar/index.d.ts +2 -0
- package/components/basic/progress-circle/index.d.ts +2 -0
- package/components/basic/progress-circle/index.js +2 -1
- package/components/basic/richtexteditor/index.d.ts +4 -0
- package/components/basic/richtexteditor/index.js +16 -15
- package/components/basic/search/index.d.ts +4 -0
- package/components/basic/search/index.js +2 -1
- package/components/basic/search/providers.js +2 -2
- package/components/basic/spinner/index.d.ts +2 -0
- package/components/basic/tile/index.d.ts +2 -0
- package/components/basic/tree/Components/TreeNodeComponent.d.ts +1 -1
- package/components/basic/tree/Components/TreeNodeComponent.js +14 -8
- package/components/basic/tree/hooks/useTreePersistedState.d.ts +3 -0
- package/components/basic/tree/hooks/useTreePersistedState.js +38 -0
- package/components/basic/tree/index.d.ts +3 -0
- package/components/basic/tree/index.js +105 -30
- package/components/basic/tree/props.d.ts +18 -1
- package/components/basic/tree/utils.d.ts +16 -1
- package/components/basic/tree/utils.js +111 -0
- package/components/basic/video/index.d.ts +2 -0
- package/components/chart/index.d.ts +2 -0
- package/components/chart/src/dataUtils.js +1 -1
- package/components/common/customTemplate/useCustomTemplate.js +1 -1
- package/components/common/index.d.ts +2 -0
- package/components/common/index.js +5 -1
- package/components/common/wm-skeleton.d.ts +95 -0
- package/components/common/wm-skeleton.js +346 -0
- package/components/container/accordion/accordion-pane/index.d.ts +2 -0
- package/components/container/accordion/index.d.ts +4 -0
- package/components/container/accordion/index.js +23 -1
- package/components/container/accordion/props.d.ts +10 -0
- package/components/container/index.d.ts +2 -0
- package/components/container/index.js +2 -4
- package/components/container/layout-grid/grid-column/index.d.ts +2 -0
- package/components/container/layout-grid/grid-column/index.js +2 -1
- package/components/container/layout-grid/grid-row/index.d.ts +2 -0
- package/components/container/layout-grid/index.d.ts +2 -0
- package/components/container/linear-layout/index.d.ts +2 -0
- package/components/container/linear-layout/linear-layout-item/index.d.ts +2 -0
- package/components/container/panel/index.d.ts +2 -0
- package/components/container/repeat-template/index.d.ts +2 -0
- package/components/container/tabs/index.d.ts +4 -0
- package/components/container/tabs/index.js +23 -1
- package/components/container/tabs/props.d.ts +10 -0
- package/components/container/tabs/tab-pane/index.d.ts +2 -0
- package/components/container/wizard/index.d.ts +8 -0
- package/components/container/wizard/index.js +27 -3
- package/components/container/wizard/props.d.ts +10 -0
- package/components/container/wizard/wizard-step/index.d.ts +2 -0
- package/components/data/card/card-actions/index.d.ts +2 -0
- package/components/data/card/card-content/index.d.ts +2 -0
- package/components/data/card/card-footer/index.d.ts +2 -0
- package/components/data/card/index.d.ts +2 -0
- package/components/data/card/index.js +12 -6
- package/components/data/form/base-form/hooks/useFormOperations.d.ts +1 -1
- package/components/data/form/base-form/hooks/useFormOperations.js +3 -3
- package/components/data/form/base-form/index.js +33 -26
- package/components/data/form/base-form/props.d.ts +1 -1
- package/components/data/form/dynamic-fields/index.js +3 -0
- package/components/data/form/form-action/index.d.ts +4 -0
- package/components/data/form/form-controller/hooks/index.js +2 -1
- package/components/data/form/form-controller/withFormController.js +14 -23
- package/components/data/form/form-field/base-field.js +0 -5
- package/components/data/form/form-field/index.js +99 -13
- package/components/data/form/form-field/props.d.ts +8 -0
- package/components/data/form/index.js +13 -0
- package/components/data/list/index.d.ts +7 -0
- package/components/data/list/index.js +18 -0
- package/components/data/list/props.d.ts +7 -0
- package/components/data/pagination/hooks/usePagination.js +0 -1
- package/components/data/table/components/RowCells.js +4 -1
- package/components/data/table/hooks/useDynamicColumns.js +3 -1
- package/components/data/table/hooks/useResponsiveColumns.d.ts +2 -0
- package/components/data/table/index.d.ts +8 -0
- package/components/data/table/index.js +20 -2
- package/components/data/table/live-table/index.d.ts +2 -0
- package/components/data/table/props.d.ts +10 -0
- package/components/data/table/table-action/index.d.ts +2 -0
- package/components/data/table/table-column/index.d.ts +2 -0
- package/components/data/table/table-row/index.d.ts +2 -0
- package/components/data/table/table-row-action/index.d.ts +2 -0
- package/components/data/table/utils/columnBuilder.d.ts +1 -1
- package/components/data/table/utils/columnBuilder.js +7 -4
- package/components/data/table/utils/crud-handlers.js +10 -10
- package/components/data/table/utils/index.d.ts +11 -8
- package/components/data/table/utils/index.js +90 -12
- package/components/dialogs/alert-dialog/index.d.ts +4 -0
- package/components/dialogs/confirm-dialog/index.d.ts +4 -0
- package/components/dialogs/dialog/index.d.ts +4 -0
- package/components/dialogs/dialog-actions/index.d.ts +2 -0
- package/components/dialogs/dialog-body/index.d.ts +2 -0
- package/components/dialogs/dialog-content/index.d.ts +2 -0
- package/components/dialogs/dialog-header/index.d.ts +2 -0
- package/components/dialogs/iframe-dialog/index.d.ts +4 -0
- package/components/dialogs/login-dialog/index.d.ts +4 -0
- package/components/dialogs/page-dialog/index.d.ts +4 -0
- package/components/form/button/index.d.ts +2 -0
- package/components/form/button/index.js +10 -1
- package/components/form/button-group/index.d.ts +2 -0
- package/components/input/calendar/index.d.ts +4 -0
- package/components/input/calendar/index.js +2 -1
- package/components/input/chips/index.d.ts +4 -0
- package/components/input/color-picker/index.d.ts +4 -0
- package/components/input/color-picker/index.js +18 -7
- package/components/input/composite/index.d.ts +2 -0
- package/components/input/currency/index.d.ts +4 -0
- package/components/input/default/checkbox/index.d.ts +4 -0
- package/components/input/default/checkboxset/index.d.ts +4 -0
- package/components/input/default/checkboxset/index.js +7 -5
- package/components/input/default/radioset/index.d.ts +4 -0
- package/components/input/default/radioset/index.js +2 -1
- package/components/input/default/switch/index.d.ts +4 -0
- package/components/input/default/switch/index.js +17 -13
- package/components/input/epoch/date/index.d.ts +2 -0
- package/components/input/epoch/date/index.js +30 -14
- package/components/input/epoch/datetime/index.d.ts +2 -0
- package/components/input/epoch/datetime/index.js +12 -8
- package/components/input/epoch/time/index.d.ts +2 -0
- package/components/input/epoch/time/index.js +21 -15
- package/components/input/fileupload/index.d.ts +2 -0
- package/components/input/number/index.d.ts +4 -0
- package/components/input/number/index.js +4 -3
- package/components/input/rating/index.d.ts +4 -0
- package/components/input/select/index.d.ts +4 -0
- package/components/input/slider/index.d.ts +4 -0
- package/components/input/slider/index.js +4 -2
- package/components/input/text/index.d.ts +4 -0
- package/components/input/text/index.js +16 -8
- package/components/input/textarea/index.d.ts +4 -0
- package/components/input/upload/index.d.ts +4 -0
- package/components/input/upload/index.js +6 -4
- package/components/layout/leftnav/index.js +21 -2
- package/components/layout/leftnav/props.d.ts +9 -0
- package/components/layout/leftnav/utils/page-class-util.d.ts +9 -0
- package/components/layout/leftnav/utils/page-class-util.js +28 -0
- package/components/navbar/index.d.ts +2 -0
- package/components/navbar/nav/index.d.ts +2 -0
- package/components/navbar/nav-item/index.d.ts +2 -0
- package/components/navigation/breadcrumb/index.d.ts +2 -0
- package/components/navigation/menu/index.d.ts +2 -0
- package/components/navigation/menu/index.js +2 -2
- package/components/navigation/popover/index.d.ts +2 -0
- package/components/navigation/popover/index.js +1 -0
- package/components/page/index.js +22 -6
- package/components/page/page-context.d.ts +4 -0
- package/components/page/page-context.js +5 -0
- package/components/page/partial/index.d.ts +2 -0
- package/components/page/partial-container/index.js +1 -4
- package/context/AppContext.d.ts +2 -0
- package/context/AppContext.js +20 -1
- package/context/WidgetProvider.js +0 -3
- package/core/proxy-service.d.ts +2 -0
- package/core/proxy-service.js +25 -0
- package/higherOrder/BaseApp.js +5 -6
- package/higherOrder/BaseAppProps.d.ts +1 -0
- package/higherOrder/BasePage.js +4 -12
- package/higherOrder/props.d.ts +10 -0
- package/higherOrder/withBaseWrapper.js +3 -0
- package/hooks/useAuth.js +3 -0
- package/hooks/useDataSourceSubscription.js +1 -1
- package/hooks/useHttp.js +0 -4
- package/hooks/useLayoutSize.d.ts +6 -0
- package/hooks/useLayoutSize.js +12 -0
- package/package-lock.json +229 -203
- package/package.json +3 -3
- package/runtime-dynamic/app-initializer.js +1 -1
- package/runtime-dynamic/components/use-dynamic-component.js +12 -31
- package/runtime-dynamic/factories/build-base-page-like-component.d.ts +1 -1
- package/runtime-dynamic/factories/dynamic-component.js +9 -1
- package/runtime-dynamic/factories/prefab-factory.d.ts +1 -1
- package/runtime-dynamic/factories/utils.d.ts +1 -1
- package/runtime-dynamic/main.js +1 -3
- package/runtime-dynamic/services/component-ref-provider.d.ts +19 -4
- package/runtime-dynamic/services/component-ref-provider.js +18 -38
- package/runtime-dynamic/services/index.d.ts +2 -3
- package/runtime-dynamic/services/index.js +1 -18
- package/runtime-dynamic/services/resource-manager.d.ts +2 -3
- package/runtime-dynamic/services/resource-manager.js +13 -17
- package/runtime-dynamic/services/script-executor.js +5 -8
- package/runtime-dynamic/services/variable-registry.js +3 -4
- package/utils/attr.js +1 -9
- package/utils/custom-expression/index.js +4 -1
- package/utils/custom-expression/parser.js +4 -2
- package/utils/format-util.js +2 -3
- package/utils/state-persistance.d.ts +1 -1
- package/runtime-dynamic/services/cache.d.ts +0 -29
- package/runtime-dynamic/services/cache.js +0 -51
- package/utils/form-state.util.d.ts +0 -62
- package/utils/form-state.util.js +0 -109
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker-ai/react-runtime",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.319",
|
|
4
4
|
"description": "React runtime package for Wavemaker",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -57,7 +57,8 @@
|
|
|
57
57
|
"@mui/x-date-pickers": "8.5.3",
|
|
58
58
|
"@reduxjs/toolkit": "2.9.1",
|
|
59
59
|
"@tanstack/react-table": "8.21.3",
|
|
60
|
-
"@wavemaker-ai/react-codegen": "1.0.0-rc.
|
|
60
|
+
"@wavemaker-ai/react-codegen": "1.0.0-rc.319",
|
|
61
|
+
"@wavemaker-ai/variables": "1.0.0-rc.319",
|
|
61
62
|
"@wavemaker/nvd3": "1.8.16",
|
|
62
63
|
"axios": "1.15.1",
|
|
63
64
|
"d3": "7.8.5",
|
|
@@ -96,7 +97,6 @@
|
|
|
96
97
|
"@types/react-dom": "19.2.3",
|
|
97
98
|
"@vitejs/plugin-react": "5.1.4",
|
|
98
99
|
"@vitest/coverage-v8": "3.2.4",
|
|
99
|
-
"@wavemaker-ai/variables": "1.0.0-rc.314",
|
|
100
100
|
"axe-core": "4.11.1",
|
|
101
101
|
"esbuild": "0.27.5",
|
|
102
102
|
"eslint": "9",
|
|
@@ -99,7 +99,7 @@ async function loadAppScript() {
|
|
|
99
99
|
}
|
|
100
100
|
async function loadAppVariables() {
|
|
101
101
|
var _a;
|
|
102
|
-
return (_a = await fetchResource("./app.variables.json", true
|
|
102
|
+
return (_a = await fetchResource("./app.variables.json", true)) != null ? _a : {};
|
|
103
103
|
}
|
|
104
104
|
async function loadCustomFormatters() {
|
|
105
105
|
const js = await fetchOptionalText("./extensions/formatters.js");
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useState, useEffect, useCallback, useRef } from "react";
|
|
2
2
|
import { getComponentRef, getPrefabConfig } from "../services/component-ref-provider";
|
|
3
3
|
import { ComponentType } from "../services/fragment-url";
|
|
4
|
-
import { getComponentFromCache, setComponentInCache } from "../services/cache";
|
|
5
4
|
import { buildBasePageLikeComponent } from "../factories/build-base-page-like-component";
|
|
6
5
|
import { buildPrefabComponent } from "../factories/prefab-factory";
|
|
7
6
|
const builders = {
|
|
@@ -9,44 +8,33 @@ const builders = {
|
|
|
9
8
|
[ComponentType.PARTIAL]: (name, fragment) => buildBasePageLikeComponent("partial", name, fragment),
|
|
10
9
|
[ComponentType.PREFAB]: (name, fragment, prefabOutboundDefaults) => buildPrefabComponent(name, fragment, prefabOutboundDefaults != null ? prefabOutboundDefaults : {})
|
|
11
10
|
};
|
|
12
|
-
function getCachedComponent(componentType, name) {
|
|
13
|
-
if (!name) return void 0;
|
|
14
|
-
return getComponentFromCache(componentType, name);
|
|
15
|
-
}
|
|
16
|
-
function resolveInitialState(componentName, componentType) {
|
|
17
|
-
const cached = getCachedComponent(componentType, componentName);
|
|
18
|
-
if (cached) return { Component: cached, isLoading: false, error: null };
|
|
19
|
-
return { Component: null, isLoading: !!componentName, error: null };
|
|
20
|
-
}
|
|
21
|
-
function getFragmentFetchOptions(componentType, prefabNameOption, resolvedName) {
|
|
22
|
-
if (componentType !== ComponentType.PREFAB) return void 0;
|
|
23
|
-
return { prefabName: prefabNameOption || resolvedName };
|
|
24
|
-
}
|
|
25
11
|
function useDynamicComponent(componentName, componentType, options) {
|
|
26
|
-
const [state, setState] = useState(
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
const [state, setState] = useState({
|
|
13
|
+
Component: null,
|
|
14
|
+
isLoading: !!componentName,
|
|
15
|
+
error: null
|
|
16
|
+
});
|
|
29
17
|
const activeRequestRef = useRef(0);
|
|
30
18
|
const load = useCallback(
|
|
31
19
|
async (name) => {
|
|
32
|
-
const cached = getCachedComponent(componentType, name);
|
|
33
|
-
if (cached) {
|
|
34
|
-
setState({ Component: cached, isLoading: false, error: null });
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
20
|
const requestId = ++activeRequestRef.current;
|
|
38
21
|
setState({ Component: null, isLoading: true, error: null });
|
|
39
22
|
try {
|
|
40
|
-
const fetchOptions =
|
|
23
|
+
const fetchOptions = componentType === ComponentType.PREFAB ? { prefabName: (options == null ? void 0 : options.prefabName) || name } : void 0;
|
|
41
24
|
let prefabOutboundDefaults;
|
|
42
25
|
if (componentType === ComponentType.PREFAB) {
|
|
43
26
|
prefabOutboundDefaults = await getPrefabConfig(name) || {};
|
|
44
27
|
}
|
|
45
28
|
const fragment = await getComponentRef(name, componentType, fetchOptions);
|
|
29
|
+
if (!fragment) {
|
|
30
|
+
if (requestId === activeRequestRef.current) {
|
|
31
|
+
setState({ Component: null, isLoading: false, error: null });
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
46
35
|
const builder = builders[componentType];
|
|
47
36
|
if (!builder) throw new Error(`No builder registered for component type: ${componentType}`);
|
|
48
37
|
const Component = await builder(name, fragment, prefabOutboundDefaults);
|
|
49
|
-
setComponentInCache(componentType, name, Component);
|
|
50
38
|
if (requestId === activeRequestRef.current) {
|
|
51
39
|
setState({ Component, isLoading: false, error: null });
|
|
52
40
|
}
|
|
@@ -61,13 +49,6 @@ function useDynamicComponent(componentName, componentType, options) {
|
|
|
61
49
|
);
|
|
62
50
|
useEffect(() => {
|
|
63
51
|
if (!componentName) return;
|
|
64
|
-
const cached = getCachedComponent(componentType, componentName);
|
|
65
|
-
if (cached) {
|
|
66
|
-
setState(
|
|
67
|
-
(prev) => prev.Component === cached ? prev : { Component: cached, isLoading: false, error: null }
|
|
68
|
-
);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
52
|
load(componentName);
|
|
72
53
|
}, [componentName, load, componentType]);
|
|
73
54
|
return state;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { DecodedFragment } from "../services/
|
|
2
|
+
import type { DecodedFragment } from "../services/component-ref-provider";
|
|
3
3
|
export type BasePageLikeKind = "page" | "partial";
|
|
4
4
|
/**
|
|
5
5
|
* Shared path for dynamically loaded pages and partials: both wrap codegen output
|
|
@@ -65,10 +65,18 @@ function createDynamicComponent({
|
|
|
65
65
|
if (styles) {
|
|
66
66
|
scopeComponentStyles(componentName, componentType, styles);
|
|
67
67
|
}
|
|
68
|
+
let id = null;
|
|
68
69
|
if (appState) {
|
|
69
|
-
|
|
70
|
+
if (componentType.toLowerCase() === "page") {
|
|
71
|
+
id = setTimeout(() => {
|
|
72
|
+
appState.pageReady();
|
|
73
|
+
}, 1e3);
|
|
74
|
+
} else {
|
|
75
|
+
appState.pageReady();
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
return () => {
|
|
79
|
+
if (id) clearTimeout(id);
|
|
72
80
|
removeComponentStyles(componentName, componentType);
|
|
73
81
|
};
|
|
74
82
|
}, []);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { DecodedFragment } from "../services/
|
|
2
|
+
import type { DecodedFragment } from "../services/component-ref-provider";
|
|
3
3
|
export declare function buildPrefabComponent(prefabName: string, fragment: DecodedFragment, defaultPrefabProps: Record<string, unknown>): Promise<React.ComponentType<any>>;
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { ScriptScope } from "../services/script-executor";
|
|
3
3
|
import { buildStartupInfo } from "./startup-info";
|
|
4
4
|
import type { TranspileOptions } from "../services/markup-transpiler";
|
|
5
|
-
import type { DecodedFragment } from "../services/
|
|
5
|
+
import type { DecodedFragment } from "../services/component-ref-provider";
|
|
6
6
|
export interface DynamicComponentConfig {
|
|
7
7
|
componentName: string;
|
|
8
8
|
componentType: "page" | "partial" | "prefab";
|
package/runtime-dynamic/main.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
2
|
import { createRoot } from "react-dom/client";
|
|
4
3
|
import wmGlobalsCss from "@wavemaker-ai/react-codegen/styles/wm-styles.css";
|
|
5
4
|
import { App, initPreviewRuntimeRouter } from "./App";
|
|
@@ -30,8 +29,7 @@ async function bootstrap() {
|
|
|
30
29
|
throw new Error("Root element #app-root not found");
|
|
31
30
|
}
|
|
32
31
|
const root = createRoot(container);
|
|
33
|
-
|
|
34
|
-
root.render(tree);
|
|
32
|
+
root.render(/* @__PURE__ */ jsx(App, {}));
|
|
35
33
|
console.timeEnd("bootstrap");
|
|
36
34
|
window.addEventListener("unload", () => {
|
|
37
35
|
root.unmount();
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
import { ComponentType } from "./fragment-url";
|
|
2
|
-
|
|
2
|
+
export interface PageMinJSON {
|
|
3
|
+
markup: string;
|
|
4
|
+
script: string;
|
|
5
|
+
styles: string;
|
|
6
|
+
variables: string;
|
|
7
|
+
config?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DecodedFragment {
|
|
11
|
+
markup: string;
|
|
12
|
+
script: string;
|
|
13
|
+
styles: string;
|
|
14
|
+
variables: Record<string, unknown>;
|
|
15
|
+
config?: Record<string, unknown>;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
3
18
|
export interface GetComponentOptions {
|
|
4
19
|
prefabName?: string;
|
|
5
20
|
}
|
|
6
|
-
export declare function getComponentRef(componentName: string, componentType: ComponentType, options?: GetComponentOptions): Promise<DecodedFragment>;
|
|
21
|
+
export declare function getComponentRef(componentName: string, componentType: ComponentType, options?: GetComponentOptions): Promise<DecodedFragment | undefined>;
|
|
7
22
|
export declare function getPrefabConfig(prefabName: string): Promise<Record<string, unknown>>;
|
|
8
23
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
24
|
+
* Resets injected prefab assets and transpile/variable caches so the next
|
|
25
|
+
* load rebuilds from the server.
|
|
11
26
|
*/
|
|
12
27
|
export declare function clearComponentRefCache(): void;
|
|
@@ -1,28 +1,12 @@
|
|
|
1
1
|
import isString from "lodash-es/isString";
|
|
2
2
|
import { transformEx } from "@wavemaker-ai/react-codegen/transpiler";
|
|
3
|
-
import { fetchResource
|
|
3
|
+
import { fetchResource } from "./resource-manager";
|
|
4
4
|
import { getFragmentUrl, getPrefabConfigUrl } from "./fragment-url";
|
|
5
|
-
import {
|
|
6
|
-
getFragmentFromCache,
|
|
7
|
-
setFragmentInCache,
|
|
8
|
-
deleteFragmentFromCache,
|
|
9
|
-
clearAllCaches,
|
|
10
|
-
getPrefabConfigFromCache,
|
|
11
|
-
setPrefabConfigInCache,
|
|
12
|
-
deletePrefabConfigFromCache
|
|
13
|
-
} from "./cache";
|
|
14
5
|
import { decodeURIComponentSafe, parseJsonSafe } from "../utils";
|
|
15
6
|
import { clearPrefabResourcesLoaded, loadPrefabResourcesFromConfig } from "./prefab-resources";
|
|
16
7
|
import { clearTranspileCache } from "./markup-transpiler";
|
|
17
8
|
import { clearVariablesCache } from "./variable-transpiler";
|
|
18
|
-
|
|
19
|
-
const existing = get(key);
|
|
20
|
-
if (existing) return existing;
|
|
21
|
-
const pending = create();
|
|
22
|
-
set(key, pending);
|
|
23
|
-
pending.catch(() => del(key));
|
|
24
|
-
return pending;
|
|
25
|
-
}
|
|
9
|
+
import { appManager } from "@wavemaker-ai/variables";
|
|
26
10
|
function decodeFragment(raw) {
|
|
27
11
|
return {
|
|
28
12
|
markup: decodeURIComponentSafe(raw.markup || ""),
|
|
@@ -33,14 +17,20 @@ function decodeFragment(raw) {
|
|
|
33
17
|
};
|
|
34
18
|
}
|
|
35
19
|
async function loadFragment(componentName, componentType, prefabName) {
|
|
20
|
+
var _a, _b, _c;
|
|
36
21
|
const url = getFragmentUrl(componentName, componentType, prefabName);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
22
|
+
try {
|
|
23
|
+
const raw = await fetchResource(url);
|
|
24
|
+
return decodeFragment(raw);
|
|
25
|
+
} catch (err) {
|
|
26
|
+
if (((_a = err.response) == null ? void 0 : _a.status) === 401) {
|
|
27
|
+
return void 0;
|
|
28
|
+
}
|
|
29
|
+
const errorMsg = isString(err) ? err : "";
|
|
30
|
+
console.error(`Failed to load ${componentType} component '${componentName}':`, err);
|
|
31
|
+
(_c = (_b = appManager) == null ? void 0 : _b.notifyApp) == null ? void 0 : _c.call(_b, errorMsg, "error");
|
|
32
|
+
return void 0;
|
|
33
|
+
}
|
|
44
34
|
}
|
|
45
35
|
async function getComponentRef(componentName, componentType, options) {
|
|
46
36
|
return loadFragment(componentName, componentType, options == null ? void 0 : options.prefabName);
|
|
@@ -69,21 +59,11 @@ function buildDynamicPrefabProps(result) {
|
|
|
69
59
|
}
|
|
70
60
|
async function getPrefabConfig(prefabName) {
|
|
71
61
|
const url = getPrefabConfigUrl(prefabName);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
deletePrefabConfigFromCache,
|
|
76
|
-
url,
|
|
77
|
-
async () => {
|
|
78
|
-
const raw = await fetchResource(url, true);
|
|
79
|
-
await loadPrefabResourcesFromConfig(prefabName, raw);
|
|
80
|
-
return buildDynamicPrefabProps(raw);
|
|
81
|
-
}
|
|
82
|
-
);
|
|
62
|
+
const raw = await fetchResource(url);
|
|
63
|
+
await loadPrefabResourcesFromConfig(prefabName, raw);
|
|
64
|
+
return buildDynamicPrefabProps(raw);
|
|
83
65
|
}
|
|
84
66
|
function clearComponentRefCache() {
|
|
85
|
-
clearResourceCache();
|
|
86
|
-
clearAllCaches();
|
|
87
67
|
clearPrefabResourcesLoaded();
|
|
88
68
|
clearTranspileCache();
|
|
89
69
|
clearVariablesCache();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { fetchResource
|
|
1
|
+
export { fetchResource } from "./resource-manager";
|
|
2
2
|
export { ComponentType, getFragmentUrl, getPrefabBaseUrl, getPrefabConfigUrl, isPrefabSelfPreview, } from "./fragment-url";
|
|
3
3
|
export { getComponentRef, clearComponentRefCache } from "./component-ref-provider";
|
|
4
4
|
export { getPrefabResourceUrl } from "./prefab-resources";
|
|
@@ -6,5 +6,4 @@ export { buildAddPageScript } from "./script-executor";
|
|
|
6
6
|
export { transpileAndBuildGetVariables, clearVariablesCache } from "./variable-transpiler";
|
|
7
7
|
export { scopeComponentStyles, removeComponentStyles } from "./css-scoping";
|
|
8
8
|
export { loadAppExtensions } from "./app-extension-provider";
|
|
9
|
-
export type { PageMinJSON, DecodedFragment } from "./
|
|
10
|
-
export { getFragmentFromCache, setFragmentInCache, getComponentFromCache, setComponentInCache, getScriptFromCache, setScriptInCache, clearAllCaches, } from "./cache";
|
|
9
|
+
export type { PageMinJSON, DecodedFragment } from "./component-ref-provider";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fetchResource
|
|
1
|
+
import { fetchResource } from "./resource-manager";
|
|
2
2
|
import {
|
|
3
3
|
ComponentType,
|
|
4
4
|
getFragmentUrl,
|
|
@@ -12,37 +12,20 @@ import { buildAddPageScript } from "./script-executor";
|
|
|
12
12
|
import { transpileAndBuildGetVariables, clearVariablesCache } from "./variable-transpiler";
|
|
13
13
|
import { scopeComponentStyles, removeComponentStyles } from "./css-scoping";
|
|
14
14
|
import { loadAppExtensions } from "./app-extension-provider";
|
|
15
|
-
import {
|
|
16
|
-
getFragmentFromCache,
|
|
17
|
-
setFragmentInCache,
|
|
18
|
-
getComponentFromCache,
|
|
19
|
-
setComponentInCache,
|
|
20
|
-
getScriptFromCache,
|
|
21
|
-
setScriptInCache,
|
|
22
|
-
clearAllCaches
|
|
23
|
-
} from "./cache";
|
|
24
15
|
export {
|
|
25
16
|
ComponentType,
|
|
26
17
|
buildAddPageScript,
|
|
27
|
-
clearAllCaches,
|
|
28
18
|
clearComponentRefCache,
|
|
29
|
-
clearResourceCache,
|
|
30
19
|
clearVariablesCache,
|
|
31
20
|
fetchResource,
|
|
32
|
-
getComponentFromCache,
|
|
33
21
|
getComponentRef,
|
|
34
|
-
getFragmentFromCache,
|
|
35
22
|
getFragmentUrl,
|
|
36
23
|
getPrefabBaseUrl,
|
|
37
24
|
getPrefabConfigUrl,
|
|
38
25
|
getPrefabResourceUrl,
|
|
39
|
-
getScriptFromCache,
|
|
40
26
|
isPrefabSelfPreview,
|
|
41
27
|
loadAppExtensions,
|
|
42
28
|
removeComponentStyles,
|
|
43
29
|
scopeComponentStyles,
|
|
44
|
-
setComponentInCache,
|
|
45
|
-
setFragmentInCache,
|
|
46
|
-
setScriptInCache,
|
|
47
30
|
transpileAndBuildGetVariables
|
|
48
31
|
};
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export declare function fetchResource<T = unknown>(url: string,
|
|
2
|
-
export declare function fetchResource<T = unknown>(url: string,
|
|
3
|
-
export declare function clearResourceCache(): void;
|
|
1
|
+
export declare function fetchResource<T = unknown>(url: string, optional?: false): Promise<T>;
|
|
2
|
+
export declare function fetchResource<T = unknown>(url: string, optional: true): Promise<T | null>;
|
|
@@ -1,35 +1,31 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
import { resolvePreviewFetchUrl } from "../preview-resource-base";
|
|
3
3
|
import { handle401 } from "../../core/app.service";
|
|
4
|
-
|
|
5
|
-
async function fetchResource(url,
|
|
6
|
-
var _a;
|
|
4
|
+
import { store } from "../../store";
|
|
5
|
+
async function fetchResource(url, optional = false) {
|
|
6
|
+
var _a, _b;
|
|
7
7
|
const resolvedUrl = resolvePreviewFetchUrl(url);
|
|
8
|
-
if (useCache && cache.has(resolvedUrl)) {
|
|
9
|
-
return cache.get(resolvedUrl);
|
|
10
|
-
}
|
|
11
8
|
try {
|
|
12
9
|
const response = await axios.get(resolvedUrl);
|
|
13
|
-
|
|
14
|
-
if (useCache) {
|
|
15
|
-
cache.set(resolvedUrl, data);
|
|
16
|
-
}
|
|
17
|
-
return data;
|
|
10
|
+
return response.data;
|
|
18
11
|
} catch (error) {
|
|
19
12
|
if (optional) {
|
|
20
13
|
return null;
|
|
21
14
|
}
|
|
22
15
|
const status = (_a = error == null ? void 0 : error.response) == null ? void 0 : _a.status;
|
|
23
|
-
if (status === 401
|
|
16
|
+
if (status === 401) {
|
|
24
17
|
handle401();
|
|
18
|
+
throw error;
|
|
25
19
|
}
|
|
26
|
-
|
|
20
|
+
const appLocale = (_b = store.getState().i18n) == null ? void 0 : _b.appLocale;
|
|
21
|
+
const errorMessages = {
|
|
22
|
+
404: (appLocale == null ? void 0 : appLocale.MESSAGE_PAGE_NOT_FOUND) || "Page not available",
|
|
23
|
+
403: (appLocale == null ? void 0 : appLocale.LABEL_ACCESS_DENIED) || "Access Denied"
|
|
24
|
+
};
|
|
25
|
+
const errorMessage = errorMessages[status] || "An error occurred";
|
|
26
|
+
throw errorMessage || "Unknown error loading component";
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
function clearResourceCache() {
|
|
30
|
-
cache.clear();
|
|
31
|
-
}
|
|
32
29
|
export {
|
|
33
|
-
clearResourceCache,
|
|
34
30
|
fetchResource
|
|
35
31
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as lodash from "lodash-es";
|
|
2
2
|
import moment from "moment";
|
|
3
3
|
import { Utils } from "../../core/util/utils";
|
|
4
|
-
import { getScriptFromCache, setScriptInCache } from "./cache";
|
|
5
4
|
var ScriptScope = /* @__PURE__ */ ((ScriptScope2) => {
|
|
6
5
|
ScriptScope2["PAGE"] = "Page";
|
|
7
6
|
ScriptScope2["PARTIAL"] = "Partial";
|
|
@@ -43,15 +42,15 @@ function prepareScript(raw) {
|
|
|
43
42
|
function buildAddPageScript(script, scopeKind, componentName) {
|
|
44
43
|
if (!script) return () => {
|
|
45
44
|
};
|
|
46
|
-
const cacheKey = `${scopeKind}:${componentName}`;
|
|
47
|
-
const cached = getScriptFromCache(cacheKey);
|
|
48
|
-
if (cached) return cached;
|
|
49
45
|
try {
|
|
50
46
|
const cleanScript = prepareScript(script);
|
|
51
47
|
const allNames = [...Object.keys(SCRIPT_GLOBALS), ...DEFERRED_GLOBALS];
|
|
52
|
-
const
|
|
48
|
+
const wrappedScript = `{
|
|
49
|
+
${cleanScript}
|
|
50
|
+
}`;
|
|
51
|
+
const compiledFn = new Function("App", scopeKind, ...allNames, wrappedScript);
|
|
53
52
|
const staticValues = Object.keys(SCRIPT_GLOBALS).map((k) => SCRIPT_GLOBALS[k]);
|
|
54
|
-
|
|
53
|
+
return (app, page) => {
|
|
55
54
|
try {
|
|
56
55
|
const deferredValues = DEFERRED_GLOBALS.map((k) => window[k]);
|
|
57
56
|
compiledFn(app, page, ...staticValues, ...deferredValues);
|
|
@@ -62,8 +61,6 @@ function buildAddPageScript(script, scopeKind, componentName) {
|
|
|
62
61
|
);
|
|
63
62
|
}
|
|
64
63
|
};
|
|
65
|
-
setScriptInCache(cacheKey, boundFn);
|
|
66
|
-
return boundFn;
|
|
67
64
|
} catch (compileError) {
|
|
68
65
|
console.error(
|
|
69
66
|
`[script-executor] Compilation error in ${scopeKind} script "${componentName}":`,
|
|
@@ -51,15 +51,14 @@ const SCOPE_MAP = {
|
|
|
51
51
|
const EMPTY_RESULT = { Variables: {}, Actions: {} };
|
|
52
52
|
function createLazyPartial(partialName) {
|
|
53
53
|
return lazy(async () => {
|
|
54
|
-
const { getComponentFromCache, setComponentInCache } = await import("./cache");
|
|
55
54
|
const { ComponentType: FType } = await import("./fragment-url");
|
|
56
55
|
const { getComponentRef } = await import("./component-ref-provider");
|
|
57
56
|
const { buildBasePageLikeComponent } = await import("../factories/build-base-page-like-component");
|
|
58
|
-
const cached = getComponentFromCache(FType.PARTIAL, partialName);
|
|
59
|
-
if (cached) return { default: cached };
|
|
60
57
|
const fragment = await getComponentRef(partialName, FType.PARTIAL);
|
|
58
|
+
if (!fragment) {
|
|
59
|
+
return { default: () => null };
|
|
60
|
+
}
|
|
61
61
|
const Built = await buildBasePageLikeComponent("partial", partialName, fragment);
|
|
62
|
-
setComponentInCache(FType.PARTIAL, partialName, Built);
|
|
63
62
|
return { default: Built };
|
|
64
63
|
});
|
|
65
64
|
}
|
package/utils/attr.js
CHANGED
|
@@ -4,24 +4,16 @@ const INTERNAL_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
|
4
4
|
"conditionalstyle",
|
|
5
5
|
"dataset",
|
|
6
6
|
"destroy",
|
|
7
|
-
"eventCallback",
|
|
8
7
|
"formfield",
|
|
9
|
-
"forwardedRef",
|
|
10
8
|
"inbound",
|
|
11
9
|
"iswidget",
|
|
12
|
-
"listener",
|
|
13
|
-
"onHeaderclick",
|
|
14
|
-
"onHeaderClick",
|
|
15
|
-
"onLoad",
|
|
16
|
-
"onDestroy",
|
|
17
|
-
"onNavHeightChange",
|
|
18
10
|
"onRender",
|
|
19
11
|
"outbound",
|
|
20
12
|
"prefab",
|
|
21
13
|
"ref",
|
|
22
14
|
"showindevice",
|
|
23
15
|
"styles",
|
|
24
|
-
"
|
|
16
|
+
"onLeftPanelAnimationChange"
|
|
25
17
|
]);
|
|
26
18
|
const SAFE_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
27
19
|
"accessKey",
|
|
@@ -43,7 +43,10 @@ async function buildCustomExpressionComponentsMap(options) {
|
|
|
43
43
|
const results = await Promise.all(
|
|
44
44
|
keys.map(async (key) => {
|
|
45
45
|
const transformedMarkup = normalizeTransformedMarkupRowBinding(
|
|
46
|
-
tm(columnSource[key].customExpression
|
|
46
|
+
tm(columnSource[key].customExpression, {
|
|
47
|
+
appUrl: "",
|
|
48
|
+
insideTableColumn: true
|
|
49
|
+
})
|
|
47
50
|
);
|
|
48
51
|
const component = await parseFn(transformedMarkup, listener);
|
|
49
52
|
return { key, component };
|
|
@@ -18,8 +18,8 @@ function extractMarkupComponents(markup) {
|
|
|
18
18
|
}
|
|
19
19
|
function resolveCustomExpressionScope(imports, fragment, markupForInference) {
|
|
20
20
|
const fr = fragment;
|
|
21
|
-
const names = ["React", "fragment", "row", "Widgets", "Variables"];
|
|
22
|
-
const values = [React, fragment, void 0, fr == null ? void 0 : fr.Widgets, fr == null ? void 0 : fr.Variables];
|
|
21
|
+
const names = ["React", "fragment", "row", "rowData", "Widgets", "Variables"];
|
|
22
|
+
const values = [React, fragment, void 0, void 0, fr == null ? void 0 : fr.Widgets, fr == null ? void 0 : fr.Variables];
|
|
23
23
|
const seen = new Set(names);
|
|
24
24
|
for (const importDef of imports) {
|
|
25
25
|
const binding = importDef.as || importDef.name;
|
|
@@ -87,6 +87,7 @@ return __render__();`;
|
|
|
87
87
|
${jsxInner}`
|
|
88
88
|
);
|
|
89
89
|
const rowIdx = names.indexOf("row");
|
|
90
|
+
const rowDataIdx = names.indexOf("rowData");
|
|
90
91
|
const fragmentIdx = names.indexOf("fragment");
|
|
91
92
|
const widgetsIdx = names.indexOf("Widgets");
|
|
92
93
|
const variablesIdx = names.indexOf("Variables");
|
|
@@ -110,6 +111,7 @@ ${jsxInner}`
|
|
|
110
111
|
try {
|
|
111
112
|
const args = templateValues.slice();
|
|
112
113
|
args[rowIdx] = rowData;
|
|
114
|
+
if (rowDataIdx >= 0) args[rowDataIdx] = rowData;
|
|
113
115
|
const fr = fragment;
|
|
114
116
|
if (fragmentIdx >= 0) args[fragmentIdx] = fragment;
|
|
115
117
|
if (widgetsIdx >= 0) args[widgetsIdx] = fr == null ? void 0 : fr.Widgets;
|
package/utils/format-util.js
CHANGED
|
@@ -194,11 +194,10 @@ const formatOnBlur = (datavalue, rawInputValue, trailingzero, decimalplaces) =>
|
|
|
194
194
|
};
|
|
195
195
|
const handleValidatedValueUpdate = (value, name, inputElCurrent, onChangeProp, listenerProp, prevDatavalueState, setPrevDatavalueState, widgetProps) => {
|
|
196
196
|
const stringifiedValue = value === null ? "" : value.toString();
|
|
197
|
-
const widgetInfo = name && (listenerProp == null ? void 0 : listenerProp.Widgets) ? listenerProp.Widgets[name] : void 0;
|
|
198
197
|
if (listenerProp == null ? void 0 : listenerProp.onChange) {
|
|
199
|
-
listenerProp.onChange(name,
|
|
198
|
+
listenerProp.onChange(name, {
|
|
200
199
|
datavalue: stringifiedValue
|
|
201
|
-
})
|
|
200
|
+
});
|
|
202
201
|
}
|
|
203
202
|
setPrevDatavalueState(value);
|
|
204
203
|
const updatedProps = __spreadProps(__spreadValues({}, widgetProps), {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type StorageType = "localStorage" | "sessionStorage" | "URL" | "none";
|
|
2
|
-
type WidgetType = "accordion" | "tabs" | "list" | "table";
|
|
2
|
+
type WidgetType = "accordion" | "tabs" | "list" | "table" | "tree";
|
|
3
3
|
interface StateConfig {
|
|
4
4
|
name: string;
|
|
5
5
|
type: WidgetType;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
import { ComponentType } from "./fragment-url";
|
|
3
|
-
export interface PageMinJSON {
|
|
4
|
-
markup: string;
|
|
5
|
-
script: string;
|
|
6
|
-
styles: string;
|
|
7
|
-
variables: string;
|
|
8
|
-
config?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface DecodedFragment {
|
|
11
|
-
markup: string;
|
|
12
|
-
script: string;
|
|
13
|
-
styles: string;
|
|
14
|
-
variables: Record<string, unknown>;
|
|
15
|
-
config?: Record<string, unknown>;
|
|
16
|
-
}
|
|
17
|
-
type ScriptFn = (...args: unknown[]) => void;
|
|
18
|
-
export declare const getPrefabConfigFromCache: (url: string) => Promise<Record<string, unknown>> | undefined;
|
|
19
|
-
export declare function setPrefabConfigInCache(url: string, config: Promise<Record<string, unknown>>): void;
|
|
20
|
-
export declare function deletePrefabConfigFromCache(url: string): void;
|
|
21
|
-
export declare const getFragmentFromCache: (url: string) => Promise<DecodedFragment> | undefined;
|
|
22
|
-
export declare function setFragmentInCache(url: string, fragment: Promise<DecodedFragment>): void;
|
|
23
|
-
export declare function deleteFragmentFromCache(url: string): void;
|
|
24
|
-
export declare const getComponentFromCache: (componentType: ComponentType, componentName: string) => React.ComponentType<any> | undefined;
|
|
25
|
-
export declare function setComponentInCache(componentType: ComponentType, componentName: string, component: React.ComponentType<any>): void;
|
|
26
|
-
export declare const getScriptFromCache: (identifier: string) => ScriptFn | undefined;
|
|
27
|
-
export declare function setScriptInCache(identifier: string, scriptFn: ScriptFn): void;
|
|
28
|
-
export declare function clearAllCaches(): void;
|
|
29
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
const fragmentCache = /* @__PURE__ */ new Map();
|
|
2
|
-
const componentCache = /* @__PURE__ */ new Map();
|
|
3
|
-
const scriptCache = /* @__PURE__ */ new Map();
|
|
4
|
-
const prefabConfigCache = /* @__PURE__ */ new Map();
|
|
5
|
-
const getPrefabConfigFromCache = (url) => prefabConfigCache.get(url);
|
|
6
|
-
function setPrefabConfigInCache(url, config) {
|
|
7
|
-
prefabConfigCache.set(url, config);
|
|
8
|
-
}
|
|
9
|
-
function deletePrefabConfigFromCache(url) {
|
|
10
|
-
prefabConfigCache.delete(url);
|
|
11
|
-
}
|
|
12
|
-
const getFragmentFromCache = (url) => fragmentCache.get(url);
|
|
13
|
-
function setFragmentInCache(url, fragment) {
|
|
14
|
-
fragmentCache.set(url, fragment);
|
|
15
|
-
}
|
|
16
|
-
function deleteFragmentFromCache(url) {
|
|
17
|
-
fragmentCache.delete(url);
|
|
18
|
-
}
|
|
19
|
-
const getComponentFromCache = (componentType, componentName) => {
|
|
20
|
-
var _a;
|
|
21
|
-
return (_a = componentCache.get(componentType)) == null ? void 0 : _a.get(componentName);
|
|
22
|
-
};
|
|
23
|
-
function setComponentInCache(componentType, componentName, component) {
|
|
24
|
-
if (!componentCache.has(componentType)) {
|
|
25
|
-
componentCache.set(componentType, /* @__PURE__ */ new Map());
|
|
26
|
-
}
|
|
27
|
-
componentCache.get(componentType).set(componentName, component);
|
|
28
|
-
}
|
|
29
|
-
const getScriptFromCache = (identifier) => scriptCache.get(identifier);
|
|
30
|
-
function setScriptInCache(identifier, scriptFn) {
|
|
31
|
-
scriptCache.set(identifier, scriptFn);
|
|
32
|
-
}
|
|
33
|
-
function clearAllCaches() {
|
|
34
|
-
fragmentCache.clear();
|
|
35
|
-
componentCache.clear();
|
|
36
|
-
scriptCache.clear();
|
|
37
|
-
prefabConfigCache.clear();
|
|
38
|
-
}
|
|
39
|
-
export {
|
|
40
|
-
clearAllCaches,
|
|
41
|
-
deleteFragmentFromCache,
|
|
42
|
-
deletePrefabConfigFromCache,
|
|
43
|
-
getComponentFromCache,
|
|
44
|
-
getFragmentFromCache,
|
|
45
|
-
getPrefabConfigFromCache,
|
|
46
|
-
getScriptFromCache,
|
|
47
|
-
setComponentInCache,
|
|
48
|
-
setFragmentInCache,
|
|
49
|
-
setPrefabConfigInCache,
|
|
50
|
-
setScriptInCache
|
|
51
|
-
};
|