ronds-metadata 1.2.92 → 1.2.94
Sign up to get free protection for your applications and to get access to all the features.
- package/es/comps/DynamicPorts/graph.js +2 -2
- package/es/framework/hooks/useModel/index.d.ts +9 -0
- package/es/framework/hooks/useModel/index.js +50 -0
- package/es/framework/hooks/useModel/utils/Context.d.ts +3 -0
- package/es/framework/hooks/useModel/utils/Context.js +2 -0
- package/es/framework/hooks/useModel/utils/Executor.d.ts +8 -0
- package/es/framework/hooks/useModel/utils/Executor.js +33 -0
- package/es/framework/hooks/useModel/utils/Provider.d.ts +5 -0
- package/es/framework/hooks/useModel/utils/Provider.js +30 -0
- package/es/framework/hooks/useModel/utils/dispatcher.d.ts +5 -0
- package/es/framework/hooks/useModel/utils/dispatcher.js +24 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/package.json +1 -1
@@ -13,7 +13,7 @@ import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
13
13
|
/*
|
14
14
|
* @Author: wangxian
|
15
15
|
* @Date: 2022-05-24 14:31:01
|
16
|
-
* @LastEditTime: 2023-07-28
|
16
|
+
* @LastEditTime: 2023-07-28 18:15:11
|
17
17
|
*/
|
18
18
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
19
19
|
import produce from 'immer';
|
@@ -27,7 +27,7 @@ import NodeElement from './comps/NodeElement';
|
|
27
27
|
import { DPEdge } from './comps/shape/edge';
|
28
28
|
import { DPNode } from './comps/shape/node';
|
29
29
|
import { formatGraphData, formatNodeInfoToNodeMeta } from './utils';
|
30
|
-
import { deepClone } from '
|
30
|
+
import { deepClone } from '../../utils';
|
31
31
|
var DPGraph = /*#__PURE__*/function (_GraphCore) {
|
32
32
|
_inherits(DPGraph, _GraphCore);
|
33
33
|
var _super = _createSuper(DPGraph);
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import Provider from './utils/Provider';
|
2
|
+
import Context from './utils/Context';
|
3
|
+
type ReturnTypes<T extends any> = T extends (...args: any) => infer R ? R : any;
|
4
|
+
type Model<T extends keyof U, U> = {
|
5
|
+
[key in keyof U]: ReturnTypes<U[T]>;
|
6
|
+
};
|
7
|
+
type UseModelFn = <T extends keyof U, U>(namespace: T) => Model<T, U>[T];
|
8
|
+
declare const useModel: UseModelFn;
|
9
|
+
export { useModel, Provider, Context, Model };
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
+
/*
|
3
|
+
* @Author: wangxian
|
4
|
+
* @Date: 2023-08-01 19:30:25
|
5
|
+
* @LastEditTime: 2023-08-01 19:30:35
|
6
|
+
*/
|
7
|
+
import { useEffect, useContext, useRef, useState } from 'react';
|
8
|
+
import Provider from './utils/Provider';
|
9
|
+
import Context from './utils/Context';
|
10
|
+
var useModel = function useModel(namespace) {
|
11
|
+
var dispatcher = useContext(Context);
|
12
|
+
// 判断组件是否挂载
|
13
|
+
var isMount = useRef(false);
|
14
|
+
var _useState = useState(dispatcher.data[namespace]),
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
16
|
+
state = _useState2[0],
|
17
|
+
setState = _useState2[1];
|
18
|
+
useEffect(function () {
|
19
|
+
isMount.current = true;
|
20
|
+
return function () {
|
21
|
+
isMount.current = false;
|
22
|
+
};
|
23
|
+
}, []);
|
24
|
+
useEffect(function () {
|
25
|
+
var handler = function handler(value) {
|
26
|
+
if (!isMount.current) {
|
27
|
+
// 如果函数执行中,组件被卸载,则强制更新全局 data
|
28
|
+
setTimeout(function () {
|
29
|
+
dispatcher.data[namespace] = value;
|
30
|
+
dispatcher.update(namespace);
|
31
|
+
});
|
32
|
+
} else {
|
33
|
+
setState(value);
|
34
|
+
}
|
35
|
+
};
|
36
|
+
try {
|
37
|
+
dispatcher.callBacks[namespace].add(handler);
|
38
|
+
dispatcher.update(namespace);
|
39
|
+
} catch (e) {
|
40
|
+
dispatcher.callBacks[namespace] = new Set();
|
41
|
+
dispatcher.callBacks[namespace].add(handler);
|
42
|
+
dispatcher.update(namespace);
|
43
|
+
}
|
44
|
+
return function () {
|
45
|
+
dispatcher.callBacks[namespace].delete(handler);
|
46
|
+
};
|
47
|
+
}, [namespace]);
|
48
|
+
return state;
|
49
|
+
};
|
50
|
+
export { useModel, Provider, Context };
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import React, { useEffect, useMemo, useRef } from 'react';
|
2
|
+
var Executor = function Executor(_ref) {
|
3
|
+
var hook = _ref.hook,
|
4
|
+
namespace = _ref.namespace,
|
5
|
+
onUpdate = _ref.onUpdate;
|
6
|
+
var updateRef = useRef(onUpdate);
|
7
|
+
updateRef.current = onUpdate;
|
8
|
+
var initRef = useRef(false);
|
9
|
+
var data;
|
10
|
+
try {
|
11
|
+
if (typeof hook === 'function') {
|
12
|
+
data = hook();
|
13
|
+
} else {
|
14
|
+
data = null;
|
15
|
+
}
|
16
|
+
} catch (e) {
|
17
|
+
throw new TypeError(e);
|
18
|
+
}
|
19
|
+
// 初始化时执行一次
|
20
|
+
useMemo(function () {
|
21
|
+
updateRef.current(data);
|
22
|
+
initRef.current = false;
|
23
|
+
}, []);
|
24
|
+
useEffect(function () {
|
25
|
+
if (initRef.current) {
|
26
|
+
updateRef.current(data);
|
27
|
+
} else {
|
28
|
+
initRef.current = true;
|
29
|
+
}
|
30
|
+
});
|
31
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
32
|
+
};
|
33
|
+
export default Executor;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: wangxian
|
3
|
+
* @Date: 2023-08-01 19:31:08
|
4
|
+
* @LastEditTime: 2023-08-01 19:32:27
|
5
|
+
*/
|
6
|
+
import React from 'react';
|
7
|
+
import Dispatcher from './dispatcher';
|
8
|
+
import Executor from './Executor';
|
9
|
+
import Context from './Context';
|
10
|
+
var dispatcher = new Dispatcher();
|
11
|
+
var Provider = function Provider(_ref) {
|
12
|
+
var children = _ref.children,
|
13
|
+
_ref$models = _ref.models,
|
14
|
+
models = _ref$models === void 0 ? {} : _ref$models;
|
15
|
+
var Exe = Executor;
|
16
|
+
return /*#__PURE__*/React.createElement(Context.Provider, {
|
17
|
+
value: dispatcher
|
18
|
+
}, Object.keys(models).map(function (item) {
|
19
|
+
return /*#__PURE__*/React.createElement(Exe, {
|
20
|
+
key: item,
|
21
|
+
namespace: item,
|
22
|
+
hook: models[item],
|
23
|
+
onUpdate: function onUpdate(value) {
|
24
|
+
dispatcher.data[item] = value;
|
25
|
+
dispatcher.update(item);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
}), children);
|
29
|
+
};
|
30
|
+
export default Provider;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
3
|
+
/*
|
4
|
+
* @Author: wangxian
|
5
|
+
* @Date: 2023-08-01 19:31:09
|
6
|
+
* @LastEditTime: 2023-08-01 19:32:07
|
7
|
+
*/
|
8
|
+
var Dispatcher = /*#__PURE__*/_createClass(function Dispatcher() {
|
9
|
+
var _this = this;
|
10
|
+
_classCallCheck(this, Dispatcher);
|
11
|
+
this.data = {};
|
12
|
+
this.callBacks = {};
|
13
|
+
this.update = function (namespace) {
|
14
|
+
(_this.callBacks[namespace] || []).forEach(function (callback) {
|
15
|
+
try {
|
16
|
+
var data = _this.data[namespace];
|
17
|
+
callback(data);
|
18
|
+
} catch (e) {
|
19
|
+
callback(undefined);
|
20
|
+
}
|
21
|
+
});
|
22
|
+
};
|
23
|
+
});
|
24
|
+
export { Dispatcher as default };
|
package/es/index.d.ts
CHANGED
@@ -19,6 +19,7 @@ export * from './framework/metadata/index';
|
|
19
19
|
export { default as http, addInterceptor } from './framework/http/index';
|
20
20
|
export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
|
21
21
|
export { default as useObservable } from './framework/rxjs-hooks/useObservable';
|
22
|
+
export { useModel, Provider, Context, Model } from './framework/hooks/useModel';
|
22
23
|
export { default as useSyncScroll, useSyncScrollByRefs } from './framework/hooks/use-sync-scroll';
|
23
24
|
export { registerMetadataAPI } from './framework/metadata/MetadataService';
|
24
25
|
export { FormRobot } from './framework/fg/index';
|
package/es/index.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* @Author:wangxian
|
3
3
|
* @Date: 2021-09-18 14:15:04
|
4
|
-
* @LastEditTime: 2023-
|
4
|
+
* @LastEditTime: 2023-08-02 08:35:33
|
5
5
|
*/
|
6
6
|
import './theme.less';
|
7
7
|
export { default as MetadataEdit } from './comps/MetadataEdit';
|
@@ -24,6 +24,7 @@ export * from './framework/metadata/index';
|
|
24
24
|
export { default as http, addInterceptor } from './framework/http/index';
|
25
25
|
export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
|
26
26
|
export { default as useObservable } from './framework/rxjs-hooks/useObservable';
|
27
|
+
export { useModel, Provider, Context } from './framework/hooks/useModel';
|
27
28
|
export { default as useSyncScroll, useSyncScrollByRefs } from './framework/hooks/use-sync-scroll';
|
28
29
|
export { registerMetadataAPI } from './framework/metadata/MetadataService';
|
29
30
|
export { FormRobot } from './framework/fg/index';
|