ronds-metadata 1.2.27 → 1.2.29
Sign up to get free protection for your applications and to get access to all the features.
- package/es/comps/Editable/comps/Texty.less +0 -1
- package/es/comps/FormGenerator/comps/Canvas/index.js +1 -1
- package/es/comps/FormGenerator/comps/Settings/index.js +1 -1
- package/es/comps/FormGenerator/comps/Sidebar/index.js +1 -1
- package/es/comps/FormGenerator/index.js +7 -3
- package/es/comps/FormGenerator/index.less +0 -1
- package/es/comps/FormGenerator/transformer.js +2 -2
- package/es/comps/MetadataForm/DataCell/Select.js +25 -5
- package/es/comps/MetadataForm/DataCell/layout/TableArray.js +1 -1
- package/es/comps/MetadataForm/index.js +1 -1
- package/es/comps/MetadataForm/index.less +6 -0
- package/es/comps/Split/index.d.ts +25 -0
- package/es/comps/Split/index.js +52 -0
- package/es/comps/Split/index.less +29 -0
- package/es/framework/RxStore/demo/index.d.ts +1 -0
- package/es/framework/RxStore/demo/index.js +115 -0
- package/es/framework/RxStore/hooks.d.ts +54 -0
- package/es/framework/RxStore/hooks.js +201 -0
- package/es/framework/RxStore/index.d.ts +2 -0
- package/es/framework/RxStore/index.js +2 -0
- package/es/framework/RxStore/store.d.ts +39 -0
- package/es/framework/RxStore/store.js +108 -0
- package/es/framework/fg/index.d.ts +12 -2
- package/es/framework/fg/index.js +27 -12
- package/es/framework/rxjs-hooks/useObservable.js +2 -2
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/theme.less +77 -77
- package/package.json +2 -1
@@ -4,11 +4,12 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
4
|
/*
|
5
5
|
* @Author: wangxian
|
6
6
|
* @Date: 2023-02-04 13:45:31
|
7
|
-
* @LastEditTime: 2023-
|
7
|
+
* @LastEditTime: 2023-04-01 09:37:13
|
8
8
|
*/
|
9
9
|
import React from 'react';
|
10
10
|
import { DndProvider } from 'react-dnd';
|
11
11
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
12
|
+
import Split from '../Split';
|
12
13
|
import Canvas from './comps/Canvas';
|
13
14
|
import Settings from './comps/Settings';
|
14
15
|
import Sidebar from './comps/Sidebar';
|
@@ -42,7 +43,7 @@ var FormGenerator = function FormGenerator(props) {
|
|
42
43
|
var birthday = robot.date('birthday').label('出身年月').require().valueOf();
|
43
44
|
|
44
45
|
var detail = robot.object([name, age], 'detail').valueOf();
|
45
|
-
var arr = robot.create([name, age, address, sex, birthday, detail]);
|
46
|
+
var arr = robot.create([name, age, address, sex, birthday, detail]).grid(2).toString();
|
46
47
|
}, []);
|
47
48
|
React.useEffect(function () {
|
48
49
|
if (defaultSchema) {
|
@@ -77,7 +78,10 @@ var FormGenerator = function FormGenerator(props) {
|
|
77
78
|
context: window
|
78
79
|
}, /*#__PURE__*/React.createElement("div", {
|
79
80
|
className: "form-generator-container"
|
80
|
-
}, /*#__PURE__*/React.createElement(
|
81
|
+
}, /*#__PURE__*/React.createElement(Split, {
|
82
|
+
sizes: [20, 60, 20],
|
83
|
+
gutterSize: 0
|
84
|
+
}, /*#__PURE__*/React.createElement(Sidebar, null), /*#__PURE__*/React.createElement(Canvas, null), /*#__PURE__*/React.createElement(Settings, null))))));
|
81
85
|
};
|
82
86
|
|
83
87
|
export default FormGenerator;
|
@@ -4,7 +4,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
4
4
|
/*
|
5
5
|
* @Author: wangxian
|
6
6
|
* @Date: 2023-02-08 14:45:46
|
7
|
-
* @LastEditTime: 2023-03-
|
7
|
+
* @LastEditTime: 2023-03-25 11:33:24
|
8
8
|
*/
|
9
9
|
import { deepClone } from '../../utils';
|
10
10
|
import { basicComps, complexComps, layoutComps } from './settings';
|
@@ -90,7 +90,7 @@ export var transFG2Schema = function transFG2Schema(nodes, settings, _types, sch
|
|
90
90
|
props.push(_prop);
|
91
91
|
}
|
92
92
|
|
93
|
-
schema[0].properties = [].concat(props);
|
93
|
+
schema[0].properties = [].concat(props); // 整个表格的扩展规则
|
94
94
|
|
95
95
|
if (settings && (settings === null || settings === void 0 ? void 0 : settings.formSetting)) {
|
96
96
|
schema[0].fields[0].value = deepClone(settings.formSetting);
|
@@ -23,6 +23,10 @@ import "antd/es/tree-select/style";
|
|
23
23
|
import _TreeSelect from "antd/es/tree-select";
|
24
24
|
import "antd/es/cascader/style";
|
25
25
|
import _Cascader from "antd/es/cascader";
|
26
|
+
import "antd/es/tooltip/style";
|
27
|
+
import _Tooltip from "antd/es/tooltip";
|
28
|
+
import "antd/es/tag/style";
|
29
|
+
import _Tag from "antd/es/tag";
|
26
30
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
27
31
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
28
32
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
@@ -34,7 +38,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
34
38
|
/*
|
35
39
|
* @Author:wangxian
|
36
40
|
* @Date: 2021-09-18 14:15:04
|
37
|
-
* @LastEditTime: 2023-03
|
41
|
+
* @LastEditTime: 2023-04-03 15:47:01
|
38
42
|
*/
|
39
43
|
import React from 'react';
|
40
44
|
import { MetadataFormContext, MetadataRefContext } from '../interface';
|
@@ -417,6 +421,23 @@ function Index(props) {
|
|
417
421
|
}
|
418
422
|
};
|
419
423
|
|
424
|
+
var maxTagPlaceholder = function maxTagPlaceholder(omittedValues) {
|
425
|
+
if (omittedValues) {
|
426
|
+
return /*#__PURE__*/React.createElement(_Tooltip, {
|
427
|
+
title: omittedValues.map(function (it) {
|
428
|
+
return /*#__PURE__*/React.createElement("div", {
|
429
|
+
key: it.key,
|
430
|
+
style: {
|
431
|
+
paddingBottom: '8px'
|
432
|
+
}
|
433
|
+
}, /*#__PURE__*/React.createElement(_Tag, null, it === null || it === void 0 ? void 0 : it.label));
|
434
|
+
})
|
435
|
+
}, "+ ", omittedValues.length, " ...");
|
436
|
+
} else {
|
437
|
+
return '...';
|
438
|
+
}
|
439
|
+
};
|
440
|
+
|
420
441
|
var processSelectType = function processSelectType(isCascader, isTreeSelect, isPagination) {
|
421
442
|
if (isCascader) {
|
422
443
|
var _extraInfo$disabled;
|
@@ -453,11 +474,10 @@ function Index(props) {
|
|
453
474
|
treeData: treeData,
|
454
475
|
allowClear: true,
|
455
476
|
disabled: (_extraInfo$disabled2 = extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.disabled) !== null && _extraInfo$disabled2 !== void 0 ? _extraInfo$disabled2 : disabled,
|
456
|
-
placeholder: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.placeholder
|
457
|
-
,
|
477
|
+
placeholder: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.placeholder,
|
458
478
|
maxTagCount: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagCount,
|
459
479
|
maxTagTextLength: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagTextLength,
|
460
|
-
maxTagPlaceholder: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagPlaceholder
|
480
|
+
maxTagPlaceholder: (extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagPlaceholder) || maxTagPlaceholder
|
461
481
|
});
|
462
482
|
} else if (isPagination) {
|
463
483
|
var _extraInfo$disabled3;
|
@@ -545,7 +565,7 @@ function Index(props) {
|
|
545
565
|
onChange: onSelectChange,
|
546
566
|
maxTagCount: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagCount,
|
547
567
|
maxTagTextLength: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagTextLength,
|
548
|
-
maxTagPlaceholder: extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagPlaceholder
|
568
|
+
maxTagPlaceholder: (extraInfo === null || extraInfo === void 0 ? void 0 : extraInfo.maxTagPlaceholder) || maxTagPlaceholder
|
549
569
|
});
|
550
570
|
}
|
551
571
|
};
|
@@ -320,7 +320,7 @@ var TableArray = function TableArray(props) {
|
|
320
320
|
enum: it.type === 'enum' ? processEnumData(it, extraInfo) : undefined,
|
321
321
|
mode: (extraInfo === null || extraInfo === void 0 ? void 0 : (_extraInfo$enum5 = extraInfo.enum) === null || _extraInfo$enum5 === void 0 ? void 0 : _extraInfo$enum5.isMutiple) ? 'multiple' : undefined,
|
322
322
|
render: function render(val) {
|
323
|
-
if (it.type
|
323
|
+
if (it.type === 'enum') {
|
324
324
|
if (Array.isArray(val)) {
|
325
325
|
return val.map(function (v) {
|
326
326
|
return /*#__PURE__*/React.createElement(_Tag, {
|
@@ -121,7 +121,7 @@ var MetadataForm = function MetadataForm(props) {
|
|
121
121
|
if (firstLoadValue.current) {
|
122
122
|
firstLoadValue.current = false;
|
123
123
|
stream$.next({
|
124
|
-
type:
|
124
|
+
type: STREAM_EVENT_TYPE.ON_VALUES_CHANGE,
|
125
125
|
payload: {
|
126
126
|
val: vals,
|
127
127
|
allVals: vals,
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React, { ReactNode } from 'react';
|
2
|
+
import './index.less';
|
3
|
+
interface IPrpos {
|
4
|
+
sizes?: number[];
|
5
|
+
minSize?: number | number[];
|
6
|
+
expandToMin?: boolean;
|
7
|
+
gutterSize?: number;
|
8
|
+
gutterAlign?: 'center' | 'start' | 'end';
|
9
|
+
snapOffset?: number;
|
10
|
+
dragInterval?: number;
|
11
|
+
direction?: 'horizontal' | 'vertical';
|
12
|
+
cursor?: string;
|
13
|
+
gutter?: (index: number, direction: any) => HTMLElement;
|
14
|
+
elementStyle?: (dimension: 'width' | 'height', elementSize: number, gutterSize: number, index: number) => Partial<CSSStyleDeclaration>;
|
15
|
+
gutterStyle?: (dimension: 'width' | 'height', gutterSize: number, index: number) => Partial<CSSStyleDeclaration>;
|
16
|
+
onDrag?: (sizes: number[]) => void;
|
17
|
+
onDragStart?: (sizes: number[]) => void;
|
18
|
+
onDragEnd?: (sizes: number[]) => void;
|
19
|
+
className?: string;
|
20
|
+
style?: React.CSSProperties;
|
21
|
+
children: ReactNode;
|
22
|
+
}
|
23
|
+
/** antd的card不能直接放在children里 外层套一个div */
|
24
|
+
declare const Index: (props: IPrpos) => JSX.Element;
|
25
|
+
export default Index;
|
@@ -0,0 +1,52 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: wangxian
|
3
|
+
* @Date: 2023-03-25 09:31:21
|
4
|
+
* @LastEditTime: 2023-03-25 10:22:21
|
5
|
+
*/
|
6
|
+
import React from 'react';
|
7
|
+
import Split from 'react-split';
|
8
|
+
import './index.less';
|
9
|
+
import classNames from 'classnames';
|
10
|
+
/** antd的card不能直接放在children里 外层套一个div */
|
11
|
+
|
12
|
+
var Index = function Index(props) {
|
13
|
+
var className = props.className,
|
14
|
+
style = props.style,
|
15
|
+
_props$sizes = props.sizes,
|
16
|
+
sizes = _props$sizes === void 0 ? [20, 80] : _props$sizes,
|
17
|
+
_props$gutterSize = props.gutterSize,
|
18
|
+
gutterSize = _props$gutterSize === void 0 ? 5 : _props$gutterSize,
|
19
|
+
_props$dragInterval = props.dragInterval,
|
20
|
+
dragInterval = _props$dragInterval === void 0 ? 1 : _props$dragInterval,
|
21
|
+
_props$minSize = props.minSize,
|
22
|
+
minSize = _props$minSize === void 0 ? 0 : _props$minSize,
|
23
|
+
children = props.children,
|
24
|
+
_props$direction = props.direction,
|
25
|
+
direction = _props$direction === void 0 ? 'horizontal' : _props$direction,
|
26
|
+
_props$cursor = props.cursor,
|
27
|
+
cursor = _props$cursor === void 0 ? 'col-resize' : _props$cursor,
|
28
|
+
gutter = props.gutter,
|
29
|
+
elementStyle = props.elementStyle,
|
30
|
+
gutterStyle = props.gutterStyle,
|
31
|
+
onDrag = props.onDrag,
|
32
|
+
onDragStart = props.onDragStart,
|
33
|
+
onDragEnd = props.onDragEnd;
|
34
|
+
return /*#__PURE__*/React.createElement(Split, {
|
35
|
+
className: classNames('split-panel', className),
|
36
|
+
dragInterval: dragInterval,
|
37
|
+
gutterSize: gutterSize,
|
38
|
+
sizes: sizes,
|
39
|
+
minSize: minSize,
|
40
|
+
direction: direction,
|
41
|
+
style: style,
|
42
|
+
cursor: cursor,
|
43
|
+
gutter: gutter,
|
44
|
+
elementStyle: elementStyle,
|
45
|
+
gutterStyle: gutterStyle,
|
46
|
+
onDrag: onDrag,
|
47
|
+
onDragStart: onDragStart,
|
48
|
+
onDragEnd: onDragEnd
|
49
|
+
}, children);
|
50
|
+
};
|
51
|
+
|
52
|
+
export default Index;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.split-panel {
|
2
|
+
width: 100%;
|
3
|
+
height: 100%;
|
4
|
+
overflow: hidden;
|
5
|
+
|
6
|
+
.gutter {
|
7
|
+
width: 100%;
|
8
|
+
height: 100%;
|
9
|
+
|
10
|
+
background-color: #bebebe;
|
11
|
+
background-repeat: no-repeat;
|
12
|
+
background-position: 50%;
|
13
|
+
|
14
|
+
.gutter-vertical {
|
15
|
+
cursor: row-resize;
|
16
|
+
}
|
17
|
+
|
18
|
+
.gutter-horizontal {
|
19
|
+
cursor: col-resize;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
> * {
|
24
|
+
height: 100%;
|
25
|
+
width: 100%;
|
26
|
+
float: left;
|
27
|
+
position: relative;
|
28
|
+
}
|
29
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export default function (): JSX.Element;
|
@@ -0,0 +1,115 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
3
|
+
import React, { useState } from 'react';
|
4
|
+
import { from, of } from 'rxjs';
|
5
|
+
import { debounceTime, map, startWith, switchMap, endWith, catchError } from 'rxjs/operators';
|
6
|
+
import { useRxObservable, useRxStore, useRxEffect } from '../hooks';
|
7
|
+
export default function () {
|
8
|
+
// 创建一个可观察的对象
|
9
|
+
var store = useRxStore({
|
10
|
+
initialValue: {
|
11
|
+
a: 1,
|
12
|
+
b: 2,
|
13
|
+
c: 0,
|
14
|
+
loading: ''
|
15
|
+
}
|
16
|
+
});
|
17
|
+
var storeVal = useRxObservable(function () {
|
18
|
+
return store.select(function (p) {
|
19
|
+
return p;
|
20
|
+
});
|
21
|
+
}); // console.log('storeVal', storeVal);
|
22
|
+
// 将流转换为state
|
23
|
+
|
24
|
+
var a = useRxObservable(function () {
|
25
|
+
return store.select(function (p) {
|
26
|
+
return p.a;
|
27
|
+
});
|
28
|
+
});
|
29
|
+
var c1 = useRxObservable(function () {
|
30
|
+
return store.select(function (p) {
|
31
|
+
return p.c;
|
32
|
+
});
|
33
|
+
});
|
34
|
+
var b = useRxObservable(function () {
|
35
|
+
return store.valueChanges.pipe(map(function (p) {
|
36
|
+
return p.b;
|
37
|
+
}));
|
38
|
+
});
|
39
|
+
var c = useRxObservable(function () {
|
40
|
+
return store.select(function (p) {
|
41
|
+
return {
|
42
|
+
a: p.a,
|
43
|
+
b: p.b
|
44
|
+
};
|
45
|
+
}).pipe(debounceTime(1000), map(function (p) {
|
46
|
+
return store.value.a * store.value.b;
|
47
|
+
}));
|
48
|
+
});
|
49
|
+
var d = useRxEffect(function (event$) {
|
50
|
+
event$.pipe(debounceTime(100)).subscribe(function (p) {
|
51
|
+
store.update(function (pre) {
|
52
|
+
return _objectSpread(_objectSpread({}, pre), {}, {
|
53
|
+
b: pre.b + 100
|
54
|
+
});
|
55
|
+
});
|
56
|
+
});
|
57
|
+
});
|
58
|
+
|
59
|
+
var _useState = useState(1),
|
60
|
+
_useState2 = _slicedToArray(_useState, 2),
|
61
|
+
count = _useState2[0],
|
62
|
+
setCount = _useState2[1];
|
63
|
+
|
64
|
+
var getData = function getData() {
|
65
|
+
return new Promise(function (resolve, reject) {
|
66
|
+
setTimeout(function () {
|
67
|
+
resolve(store.value.a * store.value.b); // reject('dddd');
|
68
|
+
}, 3000);
|
69
|
+
});
|
70
|
+
};
|
71
|
+
|
72
|
+
var e = useRxEffect(function (event$) {
|
73
|
+
return event$.pipe( // debounceTime(1000),
|
74
|
+
// distinctUntilChanged(),
|
75
|
+
switchMap(function (p) {
|
76
|
+
return from(getData()).pipe(map(function (p) {
|
77
|
+
store.update(function (a) {
|
78
|
+
return _objectSpread(_objectSpread({}, a), {}, {
|
79
|
+
c: p,
|
80
|
+
loading: 'success'
|
81
|
+
});
|
82
|
+
});
|
83
|
+
return p;
|
84
|
+
}), startWith(function () {
|
85
|
+
return store.updatePartial({
|
86
|
+
loading: 'start'
|
87
|
+
});
|
88
|
+
}), endWith(function () {
|
89
|
+
return store.updatePartial({
|
90
|
+
loading: 'end'
|
91
|
+
});
|
92
|
+
}), catchError(function (ex) {
|
93
|
+
return of(store.updatePartial({
|
94
|
+
loading: 'error'
|
95
|
+
}));
|
96
|
+
}));
|
97
|
+
}));
|
98
|
+
}, [count]);
|
99
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
|
100
|
+
onClick: function onClick(e) {
|
101
|
+
store.update(function (pre) {
|
102
|
+
return _objectSpread(_objectSpread({}, pre), {}, {
|
103
|
+
a: pre.a + 1
|
104
|
+
});
|
105
|
+
});
|
106
|
+
setCount(function (pre) {
|
107
|
+
return pre + 1000;
|
108
|
+
});
|
109
|
+
}
|
110
|
+
}, "a+"), "a:", a, ' ', "b:", b, ' c:', c, ' ', "loading: ", storeVal === null || storeVal === void 0 ? void 0 : storeVal.loading, "state c: ", c1, /*#__PURE__*/React.createElement("button", {
|
111
|
+
onClick: d
|
112
|
+
}, "b+"), /*#__PURE__*/React.createElement("button", {
|
113
|
+
onClick: e
|
114
|
+
}, "ajax test"));
|
115
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { Observable, BehaviorSubject } from 'rxjs';
|
2
|
+
import { DependencyList } from 'react';
|
3
|
+
import { Store, StoreInitOptions } from './store';
|
4
|
+
export declare type RestrictArray<T> = T extends any[] ? T : [];
|
5
|
+
export declare type VoidAsNull<T> = T extends void ? null : T;
|
6
|
+
export declare type Not<P, T, F> = P extends false ? T : F;
|
7
|
+
/**
|
8
|
+
* 将对象转换为常量
|
9
|
+
*/
|
10
|
+
export declare function useConstant<T>(fn: () => T): T;
|
11
|
+
export declare type InputFactory<State> = (state$: Observable<State>) => Observable<State>;
|
12
|
+
export declare type InputFactoryWithInputs<State, Inputs> = (state$: Observable<State>, inputs$: Observable<RestrictArray<Inputs>>) => Observable<State>;
|
13
|
+
/**
|
14
|
+
*
|
15
|
+
*
|
16
|
+
* @export
|
17
|
+
* @template State
|
18
|
+
* @param {InputFactory<State>} inputFactory
|
19
|
+
* @returns {(State | null)}
|
20
|
+
*/
|
21
|
+
export declare function useRxObservable<State>(inputFactory: InputFactory<State>): State | null;
|
22
|
+
export declare function useRxObservable<State>(inputFactory: InputFactory<State>, initialState: State): State;
|
23
|
+
export declare function useRxObservable<State, Inputs>(inputFactory: InputFactoryWithInputs<State, Inputs>, initialState: State, inputs: RestrictArray<Inputs>): State;
|
24
|
+
export declare type VoidableEventCallback<EventValue> = EventValue extends void ? () => void : (e: EventValue) => void;
|
25
|
+
export declare type EventCallbackState<EventValue, State, Inputs = void> = [
|
26
|
+
VoidableEventCallback<EventValue>,
|
27
|
+
[
|
28
|
+
State extends void ? null : State,
|
29
|
+
BehaviorSubject<State | null>,
|
30
|
+
BehaviorSubject<RestrictArray<Inputs> | null>
|
31
|
+
]
|
32
|
+
];
|
33
|
+
export declare type ReturnedState<EventValue, State, Inputs> = [
|
34
|
+
EventCallbackState<EventValue, State, Inputs>[0],
|
35
|
+
EventCallbackState<EventValue, State, Inputs>[1][0]
|
36
|
+
];
|
37
|
+
export declare type EventCallback<EventValue, State, Inputs> = Not<Inputs extends void ? true : false, (eventSource$: Observable<EventValue>, state$: Observable<State>, inputs$: Observable<RestrictArray<Inputs>>) => Observable<State>, (eventSource$: Observable<EventValue>, state$: Observable<State>) => Observable<State>>;
|
38
|
+
export declare function useEventCallback<EventValue>(callback: EventCallback<EventValue, void, void>): ReturnedState<EventValue, void | null, void>;
|
39
|
+
export declare function useEventCallback<EventValue, State>(callback: EventCallback<EventValue, State, void>, initialState: State): ReturnedState<EventValue, State, void>;
|
40
|
+
export declare function useEventCallback<EventValue, State, Inputs>(callback: EventCallback<EventValue, State, Inputs>, initialState: State, inputs: RestrictArray<Inputs>): ReturnedState<EventValue, State, Inputs>;
|
41
|
+
/**
|
42
|
+
* 创建一个可监听的对象
|
43
|
+
*/
|
44
|
+
export declare function useRxStore<T>(options: StoreInitOptions<T>): Store<T>;
|
45
|
+
/** 处理副作用 */
|
46
|
+
export declare function useRxEffect<EventValue>(factory: ((event$: Observable<EventValue>) => void) | ((event$: Observable<EventValue>) => Observable<any>), deps?: DependencyList): (e: EventValue) => void;
|
47
|
+
/** 创建一个单例的store */
|
48
|
+
export declare function createSingletonStore<T>(options: StoreInitOptions<T>, key: string): Store<T>;
|
49
|
+
/** 通过key获取store */
|
50
|
+
export declare function getStoreByKey<T>(key: string): Store<T>;
|
51
|
+
/**
|
52
|
+
* 转换State到Observable
|
53
|
+
*/
|
54
|
+
export declare function useRxObservableState<T>(v: T): void;
|
@@ -0,0 +1,201 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
+
import { Observable, BehaviorSubject, Subject } from 'rxjs';
|
3
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
4
|
+
import { Store } from './store';
|
5
|
+
/**
|
6
|
+
* 将对象转换为常量
|
7
|
+
*/
|
8
|
+
|
9
|
+
export function useConstant(fn) {
|
10
|
+
var ref = useRef();
|
11
|
+
|
12
|
+
if (!ref.current) {
|
13
|
+
ref.current = {
|
14
|
+
v: fn()
|
15
|
+
};
|
16
|
+
}
|
17
|
+
|
18
|
+
return ref.current.v;
|
19
|
+
}
|
20
|
+
export function useRxObservable(inputFactory, initialState, inputs) {
|
21
|
+
var _useState = useState(typeof initialState !== 'undefined' ? initialState : null),
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
23
|
+
state = _useState2[0],
|
24
|
+
setState = _useState2[1];
|
25
|
+
|
26
|
+
var state$ = useConstant(function () {
|
27
|
+
return new BehaviorSubject(initialState);
|
28
|
+
});
|
29
|
+
var inputs$ = useConstant(function () {
|
30
|
+
return new BehaviorSubject(inputs);
|
31
|
+
});
|
32
|
+
useEffect(function () {
|
33
|
+
inputs$.next(inputs);
|
34
|
+
}, inputs || []);
|
35
|
+
useEffect(function () {
|
36
|
+
var output$;
|
37
|
+
|
38
|
+
if (inputs) {
|
39
|
+
output$ = inputFactory(state$, inputs$);
|
40
|
+
} else {
|
41
|
+
output$ = inputFactory(state$);
|
42
|
+
} // console.log('output', output$);
|
43
|
+
|
44
|
+
|
45
|
+
var subscription = output$.subscribe(function (value) {
|
46
|
+
state$.next(value);
|
47
|
+
setState(value);
|
48
|
+
});
|
49
|
+
return function () {
|
50
|
+
subscription.unsubscribe();
|
51
|
+
inputs$.complete();
|
52
|
+
state$.complete();
|
53
|
+
};
|
54
|
+
}, []); // immutable forever
|
55
|
+
|
56
|
+
return state;
|
57
|
+
}
|
58
|
+
export function useEventCallback(callback, initialState, inputs) {
|
59
|
+
var initialValue = typeof initialState !== 'undefined' ? initialState : null;
|
60
|
+
|
61
|
+
var _useState3 = useState(initialValue),
|
62
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
63
|
+
state = _useState4[0],
|
64
|
+
setState = _useState4[1];
|
65
|
+
|
66
|
+
var event$ = useConstant(function () {
|
67
|
+
return new Subject();
|
68
|
+
});
|
69
|
+
var state$ = useConstant(function () {
|
70
|
+
return new BehaviorSubject(initialValue);
|
71
|
+
});
|
72
|
+
var inputs$ = useConstant(function () {
|
73
|
+
return new BehaviorSubject(typeof inputs === 'undefined' ? null : inputs);
|
74
|
+
});
|
75
|
+
|
76
|
+
function eventCallback(e) {
|
77
|
+
return event$.next(e);
|
78
|
+
}
|
79
|
+
|
80
|
+
var returnedCallback = useCallback(eventCallback, []);
|
81
|
+
useEffect(function () {
|
82
|
+
inputs$.next(inputs);
|
83
|
+
}, inputs || []);
|
84
|
+
useEffect(function () {
|
85
|
+
setState(initialValue);
|
86
|
+
var value$;
|
87
|
+
|
88
|
+
if (!inputs) {
|
89
|
+
value$ = callback(event$, state$);
|
90
|
+
} else {
|
91
|
+
value$ = callback(event$, state$, inputs$);
|
92
|
+
}
|
93
|
+
|
94
|
+
var subscription = value$.subscribe(function (value) {
|
95
|
+
state$.next(value);
|
96
|
+
setState(value);
|
97
|
+
});
|
98
|
+
return function () {
|
99
|
+
subscription.unsubscribe();
|
100
|
+
state$.complete();
|
101
|
+
inputs$.complete();
|
102
|
+
event$.complete();
|
103
|
+
};
|
104
|
+
}, []);
|
105
|
+
return [returnedCallback, state];
|
106
|
+
}
|
107
|
+
/**
|
108
|
+
* 创建一个可监听的对象
|
109
|
+
*/
|
110
|
+
|
111
|
+
export function useRxStore(options) {
|
112
|
+
var store = useConstant(function () {
|
113
|
+
return new Store(options);
|
114
|
+
});
|
115
|
+
useEffect(function () {
|
116
|
+
return function () {
|
117
|
+
return store.dispose();
|
118
|
+
};
|
119
|
+
}, []);
|
120
|
+
return store;
|
121
|
+
}
|
122
|
+
var storeFactory = {};
|
123
|
+
/** 处理副作用 */
|
124
|
+
|
125
|
+
export function useRxEffect(factory, deps) {
|
126
|
+
// const event$ = useConstant(() => new Subject<EventValue>());
|
127
|
+
var event$ = useConstant(function () {
|
128
|
+
return new Subject();
|
129
|
+
});
|
130
|
+
|
131
|
+
var eventCallback = function eventCallback(e) {
|
132
|
+
event$.next(e);
|
133
|
+
};
|
134
|
+
|
135
|
+
var returnedCallback = useCallback(eventCallback, []);
|
136
|
+
useEffect(function () {
|
137
|
+
var res = factory(event$);
|
138
|
+
var subscription;
|
139
|
+
|
140
|
+
if (res instanceof Observable) {
|
141
|
+
subscription = res.subscribe(function (p) {
|
142
|
+
// console.log('subscribe', p);
|
143
|
+
if (typeof p === 'function') {
|
144
|
+
p();
|
145
|
+
}
|
146
|
+
});
|
147
|
+
}
|
148
|
+
|
149
|
+
return function () {
|
150
|
+
var _subscription;
|
151
|
+
|
152
|
+
(_subscription = subscription) === null || _subscription === void 0 ? void 0 : _subscription.unsubscribe(); // event$.unsubscribe();
|
153
|
+
};
|
154
|
+
}, deps ? deps : []);
|
155
|
+
useEffect(function () {
|
156
|
+
return function () {
|
157
|
+
event$.unsubscribe();
|
158
|
+
};
|
159
|
+
}, []);
|
160
|
+
return returnedCallback;
|
161
|
+
}
|
162
|
+
/** 创建一个单例的store */
|
163
|
+
|
164
|
+
export function createSingletonStore(options, key) {
|
165
|
+
if (key) {
|
166
|
+
if (storeFactory[key]) {
|
167
|
+
return storeFactory[key];
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
var store = new Store(options);
|
172
|
+
|
173
|
+
if (key) {
|
174
|
+
storeFactory[key] = store;
|
175
|
+
}
|
176
|
+
|
177
|
+
return store;
|
178
|
+
}
|
179
|
+
/** 通过key获取store */
|
180
|
+
|
181
|
+
export function getStoreByKey(key) {
|
182
|
+
return storeFactory[key];
|
183
|
+
}
|
184
|
+
/**
|
185
|
+
* 转换State到Observable
|
186
|
+
*/
|
187
|
+
|
188
|
+
export function useRxObservableState(v) {
|
189
|
+
var value$ = useConstant(function () {
|
190
|
+
return new BehaviorSubject(v);
|
191
|
+
});
|
192
|
+
useEffect(function () {
|
193
|
+
value$.next(v);
|
194
|
+
}, [v]);
|
195
|
+
useEffect(function () {
|
196
|
+
return function () {
|
197
|
+
value$.unsubscribe();
|
198
|
+
value$.complete();
|
199
|
+
};
|
200
|
+
}, []);
|
201
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
export declare type StoreUpdateChange<T> = {
|
3
|
+
previousValue: T;
|
4
|
+
currentValue: T;
|
5
|
+
label?: string;
|
6
|
+
};
|
7
|
+
export declare type StoreOnUpdateFn<T> = (change: StoreUpdateChange<T>) => void;
|
8
|
+
export declare type StoreInitOptions<T> = {
|
9
|
+
initialValue: T;
|
10
|
+
};
|
11
|
+
export declare type CommandOptions = {
|
12
|
+
label?: string;
|
13
|
+
};
|
14
|
+
export declare const RESET = "store/reset";
|
15
|
+
/**
|
16
|
+
* 创建一个可监听的对象
|
17
|
+
*/
|
18
|
+
export declare class Store<T> {
|
19
|
+
private valueSubject;
|
20
|
+
private storeUpdateChangeSubject;
|
21
|
+
private initialValue;
|
22
|
+
get valueChanges(): Observable<T>;
|
23
|
+
get value(): T;
|
24
|
+
get storeUpdateChanges(): Observable<StoreUpdateChange<T>>;
|
25
|
+
dispose(): void;
|
26
|
+
constructor(initOptions: StoreInitOptions<T>);
|
27
|
+
/** 全量更新 */
|
28
|
+
update(command: T | ((state: T) => T), options?: CommandOptions): void;
|
29
|
+
/** 分布更新 */
|
30
|
+
updatePartial(value: Partial<T> | T, options?: CommandOptions): void;
|
31
|
+
/**
|
32
|
+
* 监听一部分属性
|
33
|
+
*/
|
34
|
+
select<V>(selectFn: (state: T) => V): Observable<V>;
|
35
|
+
/**
|
36
|
+
* 重置到初始值
|
37
|
+
*/
|
38
|
+
reset(options?: CommandOptions): void;
|
39
|
+
}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
2
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
4
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
5
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
6
|
+
import { distinctUntilChanged, map } from 'rxjs/operators';
|
7
|
+
export var RESET = 'store/reset';
|
8
|
+
/**
|
9
|
+
* 创建一个可监听的对象
|
10
|
+
*/
|
11
|
+
|
12
|
+
export var Store = /*#__PURE__*/function () {
|
13
|
+
function Store(initOptions) {
|
14
|
+
_classCallCheck(this, Store);
|
15
|
+
|
16
|
+
this.valueSubject = void 0;
|
17
|
+
this.storeUpdateChangeSubject = void 0;
|
18
|
+
this.initialValue = void 0;
|
19
|
+
this.valueSubject = new BehaviorSubject(initOptions.initialValue);
|
20
|
+
this.storeUpdateChangeSubject = new Subject();
|
21
|
+
this.initialValue = initOptions.initialValue;
|
22
|
+
}
|
23
|
+
/** 全量更新 */
|
24
|
+
|
25
|
+
|
26
|
+
_createClass(Store, [{
|
27
|
+
key: "valueChanges",
|
28
|
+
get: function get() {
|
29
|
+
return this.valueSubject.asObservable();
|
30
|
+
}
|
31
|
+
}, {
|
32
|
+
key: "value",
|
33
|
+
get: function get() {
|
34
|
+
return this.valueSubject.getValue();
|
35
|
+
}
|
36
|
+
}, {
|
37
|
+
key: "storeUpdateChanges",
|
38
|
+
get: function get() {
|
39
|
+
return this.storeUpdateChangeSubject.asObservable();
|
40
|
+
}
|
41
|
+
}, {
|
42
|
+
key: "dispose",
|
43
|
+
value: function dispose() {
|
44
|
+
var _this$valueSubject;
|
45
|
+
|
46
|
+
(_this$valueSubject = this.valueSubject) === null || _this$valueSubject === void 0 ? void 0 : _this$valueSubject.unsubscribe();
|
47
|
+
this.valueSubject = null;
|
48
|
+
this.storeUpdateChangeSubject.unsubscribe();
|
49
|
+
this.storeUpdateChangeSubject = null;
|
50
|
+
this.initialValue = null;
|
51
|
+
}
|
52
|
+
}, {
|
53
|
+
key: "update",
|
54
|
+
value: function update(command) {
|
55
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
56
|
+
var previousValue = this.valueSubject.getValue();
|
57
|
+
var currentValue = typeof command === 'function' ? command(previousValue) : command;
|
58
|
+
this.valueSubject.next(currentValue);
|
59
|
+
this.storeUpdateChangeSubject.next({
|
60
|
+
previousValue: previousValue,
|
61
|
+
currentValue: currentValue,
|
62
|
+
label: options.label
|
63
|
+
});
|
64
|
+
}
|
65
|
+
/** 分布更新 */
|
66
|
+
|
67
|
+
}, {
|
68
|
+
key: "updatePartial",
|
69
|
+
value: function updatePartial(value) {
|
70
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
71
|
+
var previousValue = this.valueSubject.getValue();
|
72
|
+
var currentValue = _typeof(value) === 'object' ? _objectSpread(_objectSpread({}, previousValue), value) : value;
|
73
|
+
this.valueSubject.next(currentValue);
|
74
|
+
this.storeUpdateChangeSubject.next({
|
75
|
+
previousValue: previousValue,
|
76
|
+
currentValue: currentValue,
|
77
|
+
label: options.label
|
78
|
+
});
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* 监听一部分属性
|
82
|
+
*/
|
83
|
+
|
84
|
+
}, {
|
85
|
+
key: "select",
|
86
|
+
value: function select(selectFn) {
|
87
|
+
return this.valueSubject.pipe(map(selectFn), distinctUntilChanged());
|
88
|
+
}
|
89
|
+
/**
|
90
|
+
* 重置到初始值
|
91
|
+
*/
|
92
|
+
|
93
|
+
}, {
|
94
|
+
key: "reset",
|
95
|
+
value: function reset() {
|
96
|
+
var _this = this;
|
97
|
+
|
98
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
99
|
+
label: RESET
|
100
|
+
};
|
101
|
+
this.update(function () {
|
102
|
+
return _this.initialValue;
|
103
|
+
}, options);
|
104
|
+
}
|
105
|
+
}]);
|
106
|
+
|
107
|
+
return Store;
|
108
|
+
}();
|
@@ -33,6 +33,16 @@ interface IReturnMethod {
|
|
33
33
|
valueOf(): void;
|
34
34
|
toString(): void;
|
35
35
|
}
|
36
|
+
declare type ICreateData = {
|
37
|
+
/**
|
38
|
+
* 表单的属性集合
|
39
|
+
*/
|
40
|
+
nodes: FG.Node[];
|
41
|
+
/**
|
42
|
+
* 整个表单的扩展规则
|
43
|
+
*/
|
44
|
+
setting: {};
|
45
|
+
};
|
36
46
|
export declare type IFormRobot = ICreate & IComps;
|
37
47
|
/**
|
38
48
|
* 链式调用 组件元数据表单的机器人
|
@@ -41,12 +51,12 @@ export declare class FormRobot implements IFormRobot {
|
|
41
51
|
/**
|
42
52
|
* 构建每个字段的值
|
43
53
|
*/
|
44
|
-
_data: FG.Node |
|
54
|
+
_data: FG.Node | ICreateData;
|
45
55
|
/**
|
46
56
|
* 用来判断是否已经初始化过数据
|
47
57
|
*/
|
48
58
|
_hasInitData: boolean;
|
49
|
-
constructor(data?: FG.Node |
|
59
|
+
constructor(data?: FG.Node | ICreateData);
|
50
60
|
/**
|
51
61
|
* 创建表单的入口
|
52
62
|
* @param arr
|
package/es/framework/fg/index.js
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
1
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
2
3
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
3
4
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
4
|
-
|
5
|
-
/* eslint-disable */
|
6
5
|
import { transFG2Schema } from '../../comps/FormGenerator/transformer';
|
7
6
|
import { renderBasicFormProps, renderLayoutFormProps, renderSetting } from './utils';
|
8
7
|
/**
|
@@ -46,10 +45,15 @@ export var FormRobot = /*#__PURE__*/function () {
|
|
46
45
|
_createClass(FormRobot, [{
|
47
46
|
key: "create",
|
48
47
|
value: function create(arr) {
|
49
|
-
var _init = this._hasInitData ? this._data :
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
var _init = this._hasInitData ? this._data : {
|
49
|
+
nodes: [],
|
50
|
+
setting: {}
|
51
|
+
};
|
52
|
+
|
53
|
+
var _data = {
|
54
|
+
nodes: [].concat(_toConsumableArray(_init.nodes), _toConsumableArray(arr)),
|
55
|
+
setting: _init.setting
|
56
|
+
};
|
53
57
|
return new FormRobot(_data);
|
54
58
|
} //*********************************表单基本类型__START************************************//
|
55
59
|
|
@@ -264,10 +268,17 @@ export var FormRobot = /*#__PURE__*/function () {
|
|
264
268
|
}, {
|
265
269
|
key: "grid",
|
266
270
|
value: function grid(_vaule) {
|
267
|
-
var _init = this._hasInitData ? this._data : {
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
+
var _init = this._hasInitData ? this._data : {
|
272
|
+
nodes: [],
|
273
|
+
setting: {}
|
274
|
+
};
|
275
|
+
|
276
|
+
var _data = {
|
277
|
+
nodes: _toConsumableArray(_init.nodes),
|
278
|
+
setting: _objectSpread(_objectSpread({}, _init.setting), {}, {
|
279
|
+
colSpan: 24 / _vaule
|
280
|
+
})
|
281
|
+
};
|
271
282
|
return new FormRobot(_data);
|
272
283
|
} //*********************************表单布局的扩展规则__END************************************//
|
273
284
|
//*********************************拿到最终的数据方法__START************************************//
|
@@ -275,9 +286,13 @@ export var FormRobot = /*#__PURE__*/function () {
|
|
275
286
|
}, {
|
276
287
|
key: "valueOf",
|
277
288
|
value: function valueOf() {
|
278
|
-
|
289
|
+
var _this$_data, _this$_data2;
|
290
|
+
|
291
|
+
if (((_this$_data = this._data) === null || _this$_data === void 0 ? void 0 : _this$_data.nodes) && Array.isArray((_this$_data2 = this._data) === null || _this$_data2 === void 0 ? void 0 : _this$_data2.nodes)) {
|
279
292
|
//是数组,说明是create方法,需要转换成元数据
|
280
|
-
return transFG2Schema(this._data
|
293
|
+
return transFG2Schema(this._data.nodes, {
|
294
|
+
formSetting: this._data.setting
|
295
|
+
});
|
281
296
|
} else {
|
282
297
|
return this._data;
|
283
298
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* @Author: wangxian
|
3
3
|
* @Date: 2022-03-30 10:12:11
|
4
|
-
* @LastEditTime:
|
4
|
+
* @LastEditTime: 2023-04-03 09:30:52
|
5
5
|
*/
|
6
6
|
import React from 'react';
|
7
7
|
|
@@ -14,7 +14,7 @@ var useObservable = function useObservable(fn) {
|
|
14
14
|
fn(p);
|
15
15
|
}));
|
16
16
|
return function () {
|
17
|
-
|
17
|
+
subscription && subscription.unsubscribe(); // dep[0] && dep[0].complete();
|
18
18
|
};
|
19
19
|
}, dep);
|
20
20
|
};
|
package/es/index.d.ts
CHANGED
@@ -13,6 +13,7 @@ export { default as FormGenerator } from './comps/FormGenerator';
|
|
13
13
|
export { default as DynamicPorts } from './comps/DynamicPorts';
|
14
14
|
export { default as DragNode } from './comps/DynamicPorts/comps/DragNode';
|
15
15
|
export { default as Icon } from './comps/Icons';
|
16
|
+
export { default as Split } from './comps/Split';
|
16
17
|
export * from './framework/metadata/index';
|
17
18
|
export { default as http, addInterceptor } from './framework/http/index';
|
18
19
|
export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
|
package/es/index.js
CHANGED
@@ -18,6 +18,7 @@ export { default as FormGenerator } from './comps/FormGenerator';
|
|
18
18
|
export { default as DynamicPorts } from './comps/DynamicPorts';
|
19
19
|
export { default as DragNode } from './comps/DynamicPorts/comps/DragNode';
|
20
20
|
export { default as Icon } from './comps/Icons';
|
21
|
+
export { default as Split } from './comps/Split';
|
21
22
|
export * from './framework/metadata/index';
|
22
23
|
export { default as http, addInterceptor } from './framework/http/index';
|
23
24
|
export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
|
package/es/theme.less
CHANGED
@@ -1,77 +1,77 @@
|
|
1
|
-
.ronds-metadata-dark {
|
2
|
-
--ronds-metadata-color-border-1: #314162;
|
3
|
-
--ronds-metadata-color-border-2: #0d9af3;
|
4
|
-
--ronds-metadata-color-bg-2: #0d1f40;
|
5
|
-
--ronds-metadata-color-bg-3: #021125;
|
6
|
-
--ronds-metadata-color-bg-4: #1c3771;
|
7
|
-
--ronds-metadata-color-text-1: #ffffff;
|
8
|
-
--ronds-metadata-color-text-2: #ffffff;
|
9
|
-
--ronds-metadata-color-text-3: #ffffff;
|
10
|
-
|
11
|
-
::-webkit-scrollbar {
|
12
|
-
width: 6px;
|
13
|
-
height: 6px;
|
14
|
-
overflow: auto;
|
15
|
-
}
|
16
|
-
::-webkit-scrollbar-corner {
|
17
|
-
background-color: transparent;
|
18
|
-
color: transparent;
|
19
|
-
}
|
20
|
-
|
21
|
-
::-webkit-scrollbar-thumb {
|
22
|
-
box-shadow: inset 0 0 5px var(--scrollbar-bg-color);
|
23
|
-
background: var(--scrollbar-color);
|
24
|
-
min-height: 25px;
|
25
|
-
min-width: 25px;
|
26
|
-
border-radius: 3px;
|
27
|
-
|
28
|
-
&:hover {
|
29
|
-
border-radius: 2px;
|
30
|
-
// box-shadow: inset 0 0 5px var(--scrollbar-color-hover);
|
31
|
-
background: var(--scrollbar-color-hover);
|
32
|
-
}
|
33
|
-
|
34
|
-
&:active {
|
35
|
-
// box-shadow: inset 0 0 5px var(--scrollbar-bg-color);
|
36
|
-
background: var(--scrollbar-color-hover);
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
.ronds-metadata-normal {
|
42
|
-
--ronds-metadata-color-border-1: #d9d9d9;
|
43
|
-
--ronds-metadata-color-border-2: #165dff;
|
44
|
-
--ronds-metadata-color-bg-2: rgba(229, 238, 255, 0.85);
|
45
|
-
--ronds-metadata-color-bg-3: #f6f5f6;
|
46
|
-
--ronds-metadata-color-bg-4: #ffffff;
|
47
|
-
--ronds-metadata-color-text-1: #1d2129;
|
48
|
-
--ronds-metadata-color-text-2: #24292f;
|
49
|
-
--ronds-metadata-color-text-3: #f2f3f5;
|
50
|
-
|
51
|
-
::-webkit-scrollbar {
|
52
|
-
width: 6px;
|
53
|
-
height: 6px;
|
54
|
-
overflow: auto;
|
55
|
-
}
|
56
|
-
|
57
|
-
::-webkit-scrollbar-thumb {
|
58
|
-
background-color: var(--scrollbar-color);
|
59
|
-
min-height: 25px;
|
60
|
-
min-width: 25px;
|
61
|
-
border-radius: 3px;
|
62
|
-
|
63
|
-
&:hover {
|
64
|
-
background-color: #a8a8a8;
|
65
|
-
}
|
66
|
-
|
67
|
-
&:active {
|
68
|
-
background-color: #787878;
|
69
|
-
}
|
70
|
-
|
71
|
-
/* border: 1px solid #e0e0e0; */
|
72
|
-
}
|
73
|
-
|
74
|
-
::-webkit-scrollbar-track {
|
75
|
-
background-color: #f7f7f7;
|
76
|
-
}
|
77
|
-
}
|
1
|
+
.ronds-metadata-dark {
|
2
|
+
--ronds-metadata-color-border-1: #314162;
|
3
|
+
--ronds-metadata-color-border-2: #0d9af3;
|
4
|
+
--ronds-metadata-color-bg-2: #0d1f40;
|
5
|
+
--ronds-metadata-color-bg-3: #021125;
|
6
|
+
--ronds-metadata-color-bg-4: #1c3771;
|
7
|
+
--ronds-metadata-color-text-1: #ffffff;
|
8
|
+
--ronds-metadata-color-text-2: #ffffff;
|
9
|
+
--ronds-metadata-color-text-3: #ffffff;
|
10
|
+
|
11
|
+
::-webkit-scrollbar {
|
12
|
+
width: 6px;
|
13
|
+
height: 6px;
|
14
|
+
overflow: auto;
|
15
|
+
}
|
16
|
+
::-webkit-scrollbar-corner {
|
17
|
+
background-color: transparent;
|
18
|
+
color: transparent;
|
19
|
+
}
|
20
|
+
|
21
|
+
::-webkit-scrollbar-thumb {
|
22
|
+
box-shadow: inset 0 0 5px var(--scrollbar-bg-color);
|
23
|
+
background: var(--scrollbar-color);
|
24
|
+
min-height: 25px;
|
25
|
+
min-width: 25px;
|
26
|
+
border-radius: 3px;
|
27
|
+
|
28
|
+
&:hover {
|
29
|
+
border-radius: 2px;
|
30
|
+
// box-shadow: inset 0 0 5px var(--scrollbar-color-hover);
|
31
|
+
background: var(--scrollbar-color-hover);
|
32
|
+
}
|
33
|
+
|
34
|
+
&:active {
|
35
|
+
// box-shadow: inset 0 0 5px var(--scrollbar-bg-color);
|
36
|
+
background: var(--scrollbar-color-hover);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.ronds-metadata-normal {
|
42
|
+
--ronds-metadata-color-border-1: #d9d9d9;
|
43
|
+
--ronds-metadata-color-border-2: #165dff;
|
44
|
+
--ronds-metadata-color-bg-2: rgba(229, 238, 255, 0.85);
|
45
|
+
--ronds-metadata-color-bg-3: #f6f5f6;
|
46
|
+
--ronds-metadata-color-bg-4: #ffffff;
|
47
|
+
--ronds-metadata-color-text-1: #1d2129;
|
48
|
+
--ronds-metadata-color-text-2: #24292f;
|
49
|
+
--ronds-metadata-color-text-3: #f2f3f5;
|
50
|
+
|
51
|
+
::-webkit-scrollbar {
|
52
|
+
width: 6px;
|
53
|
+
height: 6px;
|
54
|
+
overflow: auto;
|
55
|
+
}
|
56
|
+
|
57
|
+
::-webkit-scrollbar-thumb {
|
58
|
+
background-color: var(--scrollbar-color);
|
59
|
+
min-height: 25px;
|
60
|
+
min-width: 25px;
|
61
|
+
border-radius: 3px;
|
62
|
+
|
63
|
+
&:hover {
|
64
|
+
background-color: #a8a8a8;
|
65
|
+
}
|
66
|
+
|
67
|
+
&:active {
|
68
|
+
background-color: #787878;
|
69
|
+
}
|
70
|
+
|
71
|
+
/* border: 1px solid #e0e0e0; */
|
72
|
+
}
|
73
|
+
|
74
|
+
::-webkit-scrollbar-track {
|
75
|
+
background-color: #f7f7f7;
|
76
|
+
}
|
77
|
+
}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"public": true,
|
3
3
|
"name": "ronds-metadata",
|
4
|
-
"version": "1.2.
|
4
|
+
"version": "1.2.29",
|
5
5
|
"scripts": {
|
6
6
|
"start": "dumi dev",
|
7
7
|
"docs:build": "dumi build",
|
@@ -58,6 +58,7 @@
|
|
58
58
|
"react-markdown": "^8.0.3",
|
59
59
|
"react-markdown-editor-lite": "^1.3.2",
|
60
60
|
"react-popper": "^2.2.3",
|
61
|
+
"react-split": "^2.0.14",
|
61
62
|
"react-syntax-highlighter": "^15.5.0",
|
62
63
|
"rehype-raw": "^6.1.1",
|
63
64
|
"remark-gfm": "^3.0.1",
|