onchain-lexical-context 0.0.13 → 0.0.14

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.
@@ -40,12 +40,15 @@ const InstanceConfigContext = ({
40
40
  }) => {
41
41
  const [selectedInstance, setSelectedInstance] = React__namespace.useState([]);
42
42
  const [instanceMap, setInstanceMap] = React__namespace.useState(new Map());
43
+ const [parameterUnified, setParameterUnified] = React__namespace.useState(new ParameterUnified([]));
43
44
  return /*#__PURE__*/jsxRuntime.jsx(Context.Provider, {
44
45
  value: {
45
46
  ...value,
46
47
  instanceMap,
48
+ parameterUnified,
47
49
  selectedInstance,
48
50
  setInstanceMap,
51
+ setParameterUnified,
49
52
  setSelectedInstance
50
53
  },
51
54
  children: children
@@ -54,6 +57,48 @@ const InstanceConfigContext = ({
54
57
  const useInstanceConfig = () => {
55
58
  return React.useContext(Context);
56
59
  };
60
+ class ParameterUnified {
61
+ map = new Map();
62
+ constructor(data, config = {
63
+ getMax: data => {
64
+ return '';
65
+ },
66
+ getMin: data => {
67
+ return '';
68
+ },
69
+ getUnit: data => {
70
+ return '';
71
+ },
72
+ getValue: data => {
73
+ return '';
74
+ }
75
+ }) {
76
+ this.handle = config;
77
+ this.map = new Map(data.map(item => [item.insId, item]));
78
+ }
79
+ setParameter(data) {
80
+ this.map.set(data.insId, data);
81
+ return this;
82
+ }
83
+ getParameterValue(data) {
84
+ if (typeof data === 'string') {
85
+ data = this.map.get(data);
86
+ }
87
+ if (data) {
88
+ const value = this.handle.getValue(data);
89
+ const unit = this.handle.getUnit(data);
90
+ const max = this.handle.getMax(data);
91
+ const min = this.handle.getMin(data);
92
+ if (value) {
93
+ return `${value}${unit}`;
94
+ } else {
95
+ return `${min}${unit}-${max}${unit}`;
96
+ }
97
+ }
98
+ return '';
99
+ }
100
+ }
57
101
 
58
102
  exports.InstanceConfigContext = InstanceConfigContext;
103
+ exports.ParameterUnified = ParameterUnified;
59
104
  exports.useInstanceConfig = useInstanceConfig;
@@ -26,12 +26,15 @@ const InstanceConfigContext = ({
26
26
  }) => {
27
27
  const [selectedInstance, setSelectedInstance] = React.useState([]);
28
28
  const [instanceMap, setInstanceMap] = React.useState(new Map());
29
+ const [parameterUnified, setParameterUnified] = React.useState(new ParameterUnified([]));
29
30
  return /*#__PURE__*/jsx(Context.Provider, {
30
31
  value: {
31
32
  ...value,
32
33
  instanceMap,
34
+ parameterUnified,
33
35
  selectedInstance,
34
36
  setInstanceMap,
37
+ setParameterUnified,
35
38
  setSelectedInstance
36
39
  },
37
40
  children: children
@@ -40,5 +43,46 @@ const InstanceConfigContext = ({
40
43
  const useInstanceConfig = () => {
41
44
  return useContext(Context);
42
45
  };
46
+ class ParameterUnified {
47
+ map = new Map();
48
+ constructor(data, config = {
49
+ getMax: data => {
50
+ return '';
51
+ },
52
+ getMin: data => {
53
+ return '';
54
+ },
55
+ getUnit: data => {
56
+ return '';
57
+ },
58
+ getValue: data => {
59
+ return '';
60
+ }
61
+ }) {
62
+ this.handle = config;
63
+ this.map = new Map(data.map(item => [item.insId, item]));
64
+ }
65
+ setParameter(data) {
66
+ this.map.set(data.insId, data);
67
+ return this;
68
+ }
69
+ getParameterValue(data) {
70
+ if (typeof data === 'string') {
71
+ data = this.map.get(data);
72
+ }
73
+ if (data) {
74
+ const value = this.handle.getValue(data);
75
+ const unit = this.handle.getUnit(data);
76
+ const max = this.handle.getMax(data);
77
+ const min = this.handle.getMin(data);
78
+ if (value) {
79
+ return `${value}${unit}`;
80
+ } else {
81
+ return `${min}${unit}-${max}${unit}`;
82
+ }
83
+ }
84
+ return '';
85
+ }
86
+ }
43
87
 
44
- export { InstanceConfigContext, useInstanceConfig };
88
+ export { InstanceConfigContext, ParameterUnified, useInstanceConfig };
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "onchain-lexical-context",
3
3
  "license": "MIT",
4
- "version": "0.0.13",
4
+ "version": "0.0.14",
5
5
  "dependencies": {
6
6
  "@lexical/react": "^0.30.0",
7
7
  "@lexical/yjs": "^0.30.0",
8
8
  "lexical": "0.30.0",
9
- "onchain-lexical-ui": "^0.0.13",
10
- "onchain-utility": "^0.0.11",
9
+ "onchain-lexical-ui": "^0.0.14",
10
+ "onchain-utility": "^0.0.15",
11
11
  "y-websocket": "^1.5.4"
12
12
  },
13
13
  "files": [
@@ -17,13 +17,15 @@ import {createContext, ReactNode, useContext} from 'react';
17
17
  type InstanceConfigContext<
18
18
  Ins = Instance,
19
19
  Let = Record<string, any>,
20
- > = InstanceConfig<Ins, Let> & BuiltInInstanceConfig<Ins>;
20
+ Params = Record<string, any>,
21
+ > = InstanceConfig<Ins, Let> & BuiltInInstanceConfig<Ins, Params>;
21
22
 
22
23
  const Context: React.Context<InstanceConfigContext> = createContext({} as any);
23
24
 
24
25
  export const InstanceConfigContext = <
25
26
  Ins = Instance,
26
27
  Let = Record<string, any>,
28
+ Params = Record<string, any>,
27
29
  >({
28
30
  children,
29
31
  value,
@@ -32,19 +34,25 @@ export const InstanceConfigContext = <
32
34
  value: InstanceConfig<Ins, Let>;
33
35
  }): JSX.Element => {
34
36
  const [selectedInstance, setSelectedInstance] = React.useState<
35
- BuiltInInstanceConfig<Ins>['selectedInstance']
37
+ BuiltInInstanceConfig<Ins, Params>['selectedInstance']
36
38
  >([]);
37
39
  const [instanceMap, setInstanceMap] = React.useState(
38
40
  new Map<string, Instance>(),
39
41
  );
40
42
 
43
+ const [parameterUnified, setParameterUnified] = React.useState(
44
+ new ParameterUnified<any>([]),
45
+ );
46
+
41
47
  return (
42
48
  <Context.Provider
43
49
  value={{
44
50
  ...(value as unknown as InstanceConfig),
45
51
  instanceMap,
52
+ parameterUnified,
46
53
  selectedInstance,
47
54
  setInstanceMap,
55
+ setParameterUnified,
48
56
  setSelectedInstance,
49
57
  }}>
50
58
  {children}
@@ -55,6 +63,63 @@ export const InstanceConfigContext = <
55
63
  export const useInstanceConfig = <
56
64
  Ins = Instance,
57
65
  Let = Record<string, any>,
66
+ Params = Record<string, any>,
58
67
  >() => {
59
- return useContext(Context) as unknown as InstanceConfigContext<Ins, Let>;
68
+ return useContext(Context) as unknown as InstanceConfigContext<
69
+ Ins,
70
+ Let,
71
+ Params
72
+ >;
60
73
  };
74
+
75
+ interface ParameterHandle<T> {
76
+ getMax: (data: T) => string | number;
77
+ getMin: (data: T) => string | number;
78
+ getValue: (data: T) => string | number;
79
+ getUnit: (data: T) => string | number;
80
+ }
81
+ export class ParameterUnified<T extends {[k: string]: any}> {
82
+ handle: ParameterHandle<T>;
83
+ map = new Map<string, T>();
84
+ constructor(
85
+ data: T[],
86
+ config: ParameterHandle<T> = {
87
+ getMax: (data) => {
88
+ return '';
89
+ },
90
+ getMin: (data) => {
91
+ return '';
92
+ },
93
+ getUnit: (data) => {
94
+ return '';
95
+ },
96
+ getValue: (data) => {
97
+ return '';
98
+ },
99
+ },
100
+ ) {
101
+ this.handle = config;
102
+ this.map = new Map(data.map((item) => [item.insId, item]));
103
+ }
104
+ setParameter(data: T) {
105
+ this.map.set(data.insId, data);
106
+ return this;
107
+ }
108
+ getParameterValue(data?: T | string) {
109
+ if (typeof data === 'string') {
110
+ data = this.map.get(data);
111
+ }
112
+ if (data) {
113
+ const value = this.handle.getValue(data);
114
+ const unit = this.handle.getUnit(data);
115
+ const max = this.handle.getMax(data);
116
+ const min = this.handle.getMin(data);
117
+ if (value) {
118
+ return `${value}${unit}`;
119
+ } else {
120
+ return `${min}${unit}-${max}${unit}`;
121
+ }
122
+ }
123
+ return '';
124
+ }
125
+ }
package/src/types.d.ts CHANGED
@@ -2,6 +2,7 @@ import {EditorState} from 'lexical';
2
2
  import type {Instance} from 'onchain-lexical-instance';
3
3
  import React from 'react';
4
4
  import type {ReactAvatarProps} from 'react-avatar';
5
+ import {ParameterUnified} from './InstanceConfig';
5
6
 
6
7
  /**
7
8
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -23,7 +24,10 @@ export interface ExtraSettings {
23
24
  reduceZIndex?: () => void;
24
25
  }
25
26
 
26
- export interface BuiltInInstanceConfig<Ins = Instance> {
27
+ export interface BuiltInInstanceConfig<
28
+ Ins = Instance,
29
+ Params = Record<string, any>,
30
+ > {
27
31
  selectedInstance: {
28
32
  number: string;
29
33
  nodeKey: string;
@@ -31,6 +35,8 @@ export interface BuiltInInstanceConfig<Ins = Instance> {
31
35
  setSelectedInstance(params: InstanceConfig['selectedInstance']): void;
32
36
  instanceMap: Map<string, Ins>;
33
37
  setInstanceMap(map: Map<string, Ins>): void;
38
+ parameterUnified: ParameterUnified<Params>;
39
+ setParameterUnified(map: ParameterUnified<Params>): void;
34
40
  }
35
41
 
36
42
  export interface InstanceConfigLet {