ronds-metadata 1.2.93 → 1.2.95
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/es/comps/MetadataForm/DataCell/Select.js +23 -10
- 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
|
@@ -37,7 +37,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
37
37
|
/*
|
|
38
38
|
* @Author:wangxian
|
|
39
39
|
* @Date: 2021-09-18 14:15:04
|
|
40
|
-
* @LastEditTime: 2023-
|
|
40
|
+
* @LastEditTime: 2023-08-14 09:44:23
|
|
41
41
|
*/
|
|
42
42
|
import React from 'react';
|
|
43
43
|
import { MetadataFormContext, MetadataRefContext } from '../interface';
|
|
@@ -49,7 +49,7 @@ import { tr } from '../../../framework/locale';
|
|
|
49
49
|
import useObservable from '../../../framework/rxjs-hooks/useObservable';
|
|
50
50
|
import { assignReplace, findTopParentIndex } from '../utils';
|
|
51
51
|
function Index(props) {
|
|
52
|
-
var _extraInfo$
|
|
52
|
+
var _extraInfo$http11, _extraInfo$http12, _extraInfo$http13, _extraInfo$http14, _extraInfo$http15, _extraInfo$http16;
|
|
53
53
|
var id = props.id,
|
|
54
54
|
name = props.name,
|
|
55
55
|
isRefForm = props.isRefForm,
|
|
@@ -274,12 +274,12 @@ function Index(props) {
|
|
|
274
274
|
return processSelectOptionsData();
|
|
275
275
|
}, [initEnumValue, myEnum, id, extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxSelect]);
|
|
276
276
|
var httpOptions = useAsyncMemo( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
277
|
-
var _extraInfo$http3, _extraInfo$http4, _extraInfo$http5, res;
|
|
277
|
+
var _extraInfo$http3, _extraInfo$http4, _extraInfo$http5, res, _extraInfo$http6, _extraInfo$http7, _enum;
|
|
278
278
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
279
279
|
while (1) switch (_context2.prev = _context2.next) {
|
|
280
280
|
case 0:
|
|
281
281
|
if (!((extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.http) && (extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.http.url))) {
|
|
282
|
-
_context2.next =
|
|
282
|
+
_context2.next = 9;
|
|
283
283
|
break;
|
|
284
284
|
}
|
|
285
285
|
_context2.next = 3;
|
|
@@ -293,9 +293,22 @@ function Index(props) {
|
|
|
293
293
|
setTreeData(_toConsumableArray(res));
|
|
294
294
|
}
|
|
295
295
|
return _context2.abrupt("return", res);
|
|
296
|
-
case
|
|
296
|
+
case 9:
|
|
297
|
+
if (!initEnumValue[id]) {
|
|
298
|
+
_context2.next = 14;
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
_enum = deepClone(initEnumValue[id]);
|
|
302
|
+
if (extraInfo === null || extraInfo === void 0 ? void 0 : (_extraInfo$http6 = extraInfo.http) === null || _extraInfo$http6 === void 0 ? void 0 : _extraInfo$http6.isCascader) {
|
|
303
|
+
setCascaderOption(_toConsumableArray(_enum));
|
|
304
|
+
}
|
|
305
|
+
if (extraInfo === null || extraInfo === void 0 ? void 0 : (_extraInfo$http7 = extraInfo.http) === null || _extraInfo$http7 === void 0 ? void 0 : _extraInfo$http7.isTreeSelect) {
|
|
306
|
+
setTreeData(_toConsumableArray(_enum));
|
|
307
|
+
}
|
|
308
|
+
return _context2.abrupt("return", _enum);
|
|
309
|
+
case 14:
|
|
297
310
|
return _context2.abrupt("return", []);
|
|
298
|
-
case
|
|
311
|
+
case 15:
|
|
299
312
|
case "end":
|
|
300
313
|
return _context2.stop();
|
|
301
314
|
}
|
|
@@ -524,7 +537,7 @@ function Index(props) {
|
|
|
524
537
|
}
|
|
525
538
|
};
|
|
526
539
|
if (isObj && isRefForm && field) {
|
|
527
|
-
var _extraInfo$
|
|
540
|
+
var _extraInfo$http8, _extraInfo$http9, _extraInfo$http10;
|
|
528
541
|
return /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {
|
|
529
542
|
style: {
|
|
530
543
|
flex: 1,
|
|
@@ -552,7 +565,7 @@ function Index(props) {
|
|
|
552
565
|
}],
|
|
553
566
|
help: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.help,
|
|
554
567
|
tooltip: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.tooltip
|
|
555
|
-
}), processSelectType((_extraInfo$
|
|
568
|
+
}), processSelectType((_extraInfo$http8 = extraInfo.http) === null || _extraInfo$http8 === void 0 ? void 0 : _extraInfo$http8.isCascader, (_extraInfo$http9 = extraInfo.http) === null || _extraInfo$http9 === void 0 ? void 0 : _extraInfo$http9.isTreeSelect, (_extraInfo$http10 = extraInfo.http) === null || _extraInfo$http10 === void 0 ? void 0 : _extraInfo$http10.isPagination));
|
|
556
569
|
}
|
|
557
570
|
return !field ? /*#__PURE__*/React.createElement(_Form.Item, {
|
|
558
571
|
key: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.defaultValue,
|
|
@@ -582,7 +595,7 @@ function Index(props) {
|
|
|
582
595
|
}],
|
|
583
596
|
help: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.help,
|
|
584
597
|
tooltip: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.tooltip
|
|
585
|
-
}, processSelectType((_extraInfo$
|
|
598
|
+
}, processSelectType((_extraInfo$http11 = extraInfo.http) === null || _extraInfo$http11 === void 0 ? void 0 : _extraInfo$http11.isCascader, (_extraInfo$http12 = extraInfo.http) === null || _extraInfo$http12 === void 0 ? void 0 : _extraInfo$http12.isTreeSelect, (_extraInfo$http13 = extraInfo.http) === null || _extraInfo$http13 === void 0 ? void 0 : _extraInfo$http13.isPagination)) : /*#__PURE__*/React.createElement(_Form.Item, _extends({}, field, {
|
|
586
599
|
style: {
|
|
587
600
|
flex: 1,
|
|
588
601
|
paddingRight: '10px'
|
|
@@ -593,6 +606,6 @@ function Index(props) {
|
|
|
593
606
|
}],
|
|
594
607
|
help: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.help,
|
|
595
608
|
tooltip: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.tooltip
|
|
596
|
-
}), processSelectType((_extraInfo$
|
|
609
|
+
}), processSelectType((_extraInfo$http14 = extraInfo.http) === null || _extraInfo$http14 === void 0 ? void 0 : _extraInfo$http14.isCascader, (_extraInfo$http15 = extraInfo.http) === null || _extraInfo$http15 === void 0 ? void 0 : _extraInfo$http15.isTreeSelect, (_extraInfo$http16 = extraInfo.http) === null || _extraInfo$http16 === void 0 ? void 0 : _extraInfo$http16.isPagination));
|
|
597
610
|
}
|
|
598
611
|
export default /*#__PURE__*/React.memo(Index);
|
|
@@ -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 } 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:41:39
|
|
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';
|