@idraw/util 0.4.0-beta.34 → 0.4.0-beta.36

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.
@@ -14,7 +14,7 @@ export { Store } from './lib/store';
14
14
  export { getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot } from './lib/middleware';
15
15
  export { Context2D } from './lib/context2d';
16
16
  export { rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, calcRadian } from './lib/rotate';
17
- export { getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementQueueFromListByPosition, findElementsFromListByPositions, getGroupQueueFromList, getGroupQueueByElementPosition, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, getElementPositionFromList, calcElementListSize } from './lib/element';
17
+ export { getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementQueueFromListByPosition, findElementsFromListByPositions, getGroupQueueFromList, getGroupQueueByElementPosition, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, getElementPositionFromList, getElementPositionMapFromList, calcElementListSize } from './lib/element';
18
18
  export { checkRectIntersect } from './lib/rect';
19
19
  export { viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, calcViewScaleInfo, calcElementViewRectInfo, calcElementOriginRectInfo, calcElementViewRectInfoMap, originRectInfoToRangeRectInfo, isViewPointInElementSize, isViewPointInVertexes } from './lib/view-calc';
20
20
  export { sortElementsViewVisiableInfoMap, calcVisibleOriginCanvasRectInfo, updateViewVisibleInfoMapStatus } from './lib/view-visible';
@@ -34,3 +34,4 @@ export { calcViewCenterContent, calcViewCenter } from './lib/view-content';
34
34
  export { modifyElement, getModifiedElement } from './lib/modify';
35
35
  export { enhanceFontFamliy } from './lib/text';
36
36
  export { flatElementList } from './lib/flat';
37
+ export { groupElementsByPosition, ungroupElementsByPosition } from './lib/group';
package/dist/esm/index.js CHANGED
@@ -14,7 +14,7 @@ export { Store } from './lib/store';
14
14
  export { getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot } from './lib/middleware';
15
15
  export { Context2D } from './lib/context2d';
16
16
  export { rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, calcRadian } from './lib/rotate';
17
- export { getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementQueueFromListByPosition, findElementsFromListByPositions, getGroupQueueFromList, getGroupQueueByElementPosition, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, getElementPositionFromList, calcElementListSize } from './lib/element';
17
+ export { getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementQueueFromListByPosition, findElementsFromListByPositions, getGroupQueueFromList, getGroupQueueByElementPosition, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, getElementPositionFromList, getElementPositionMapFromList, calcElementListSize } from './lib/element';
18
18
  export { checkRectIntersect } from './lib/rect';
19
19
  export { viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, calcViewScaleInfo, calcElementViewRectInfo, calcElementOriginRectInfo, calcElementViewRectInfoMap, originRectInfoToRangeRectInfo, isViewPointInElementSize, isViewPointInVertexes } from './lib/view-calc';
20
20
  export { sortElementsViewVisiableInfoMap, calcVisibleOriginCanvasRectInfo, updateViewVisibleInfoMapStatus } from './lib/view-visible';
@@ -34,3 +34,4 @@ export { calcViewCenterContent, calcViewCenter } from './lib/view-content';
34
34
  export { modifyElement, getModifiedElement } from './lib/modify';
35
35
  export { enhanceFontFamliy } from './lib/text';
36
36
  export { flatElementList } from './lib/flat';
37
+ export { groupElementsByPosition, ungroupElementsByPosition } from './lib/group';
@@ -1,7 +1,9 @@
1
1
  import type { Element, ElementSize, ElementSizeController, ViewScaleInfo, LayoutSizeController } from '@idraw/types';
2
2
  export declare function calcElementSizeController(elemSize: ElementSize, opts: {
3
3
  groupQueue: Element<'group'>[];
4
- controllerSize?: number;
4
+ controllerSize: number;
5
+ rotateControllerSize: number;
6
+ rotateControllerPosition: number;
5
7
  viewScaleInfo: ViewScaleInfo;
6
8
  }): ElementSizeController;
7
9
  export declare function calcLayoutSizeController(layoutSize: Pick<ElementSize, 'x' | 'y' | 'w' | 'h'>, opts: {
@@ -15,9 +15,11 @@ function createControllerElementSizeFromCenter(center, opts) {
15
15
  };
16
16
  }
17
17
  export function calcElementSizeController(elemSize, opts) {
18
- const { groupQueue, controllerSize, viewScaleInfo } = opts;
18
+ const { groupQueue, controllerSize, viewScaleInfo, rotateControllerSize, rotateControllerPosition } = opts;
19
19
  const ctrlSize = (controllerSize && controllerSize > 0 ? controllerSize : 8) / viewScaleInfo.scale;
20
20
  const { x, y, w, h, angle = 0 } = elemSize;
21
+ const rotateCtrlSize = rotateControllerSize;
22
+ const rotateCtrlPos = rotateControllerPosition;
21
23
  const ctrlGroupQueue = [
22
24
  ...[
23
25
  {
@@ -39,10 +41,10 @@ export function calcElementSizeController(elemSize, opts) {
39
41
  });
40
42
  const vertexes = calcElementVertexesInGroup(elemSize, { groupQueue });
41
43
  const rotateElemVertexes = calcElementVertexesInGroup({
42
- x: x - ctrlSize * 2,
43
- y: y - ctrlSize * 2,
44
- h: h + ctrlSize * 4,
45
- w: w + ctrlSize * 4,
44
+ x: x,
45
+ y: y - (rotateCtrlPos + rotateCtrlSize / 2) / viewScaleInfo.scale,
46
+ h: h + (rotateCtrlPos * 2 + rotateCtrlSize) / viewScaleInfo.scale,
47
+ w: w,
46
48
  angle
47
49
  }, { groupQueue: [...groupQueue] });
48
50
  const topCenter = getCenterFromTwoPoints(vertexes[0], vertexes[1]);
@@ -74,74 +76,91 @@ export function calcElementSizeController(elemSize, opts) {
74
76
  const bottomMiddleVertexes = calcElementVertexes(bottomMiddleSize);
75
77
  const leftMiddleVertexes = calcElementVertexes(leftMiddleSize);
76
78
  const rotateCenter = getCenterFromTwoPoints(rotateElemVertexes[0], rotateElemVertexes[1]);
77
- const rotateSize = createControllerElementSizeFromCenter(rotateCenter, { size: ctrlSize, angle: totalAngle });
79
+ const tempRotateSizeRepairRatio = 1.1;
80
+ const rotateSize = createControllerElementSizeFromCenter(rotateCenter, {
81
+ size: (rotateControllerSize * tempRotateSizeRepairRatio) / viewScaleInfo.scale,
82
+ angle: totalAngle
83
+ });
78
84
  const rotateVertexes = calcElementVertexes(rotateSize);
79
85
  const sizeController = {
80
86
  elementWrapper: vertexes,
81
87
  left: {
82
88
  type: 'left',
83
89
  vertexes: leftVertexes,
84
- center: leftCenter
90
+ center: leftCenter,
91
+ size: ctrlSize
85
92
  },
86
93
  right: {
87
94
  type: 'right',
88
95
  vertexes: rightVertexes,
89
- center: rightCenter
96
+ center: rightCenter,
97
+ size: ctrlSize
90
98
  },
91
99
  top: {
92
100
  type: 'top',
93
101
  vertexes: topVertexes,
94
- center: topCenter
102
+ center: topCenter,
103
+ size: ctrlSize
95
104
  },
96
105
  bottom: {
97
106
  type: 'bottom',
98
107
  vertexes: bottomVertexes,
99
- center: bottomCenter
108
+ center: bottomCenter,
109
+ size: ctrlSize
100
110
  },
101
111
  topLeft: {
102
112
  type: 'top-left',
103
113
  vertexes: topLeftVertexes,
104
- center: topLeftCenter
114
+ center: topLeftCenter,
115
+ size: ctrlSize
105
116
  },
106
117
  topRight: {
107
118
  type: 'top-right',
108
119
  vertexes: topRightVertexes,
109
- center: topRightCenter
120
+ center: topRightCenter,
121
+ size: ctrlSize
110
122
  },
111
123
  bottomLeft: {
112
124
  type: 'bottom-left',
113
125
  vertexes: bottomLeftVertexes,
114
- center: bottomLeftCenter
126
+ center: bottomLeftCenter,
127
+ size: ctrlSize
115
128
  },
116
129
  bottomRight: {
117
130
  type: 'bottom-right',
118
131
  vertexes: bottomRightVertexes,
119
- center: bottomRightCenter
132
+ center: bottomRightCenter,
133
+ size: ctrlSize
120
134
  },
121
135
  leftMiddle: {
122
136
  type: 'left-middle',
123
137
  vertexes: leftMiddleVertexes,
124
- center: leftCenter
138
+ center: leftCenter,
139
+ size: ctrlSize
125
140
  },
126
141
  rightMiddle: {
127
142
  type: 'right-middle',
128
143
  vertexes: rightMiddleVertexes,
129
- center: rightCenter
144
+ center: rightCenter,
145
+ size: ctrlSize
130
146
  },
131
147
  topMiddle: {
132
148
  type: 'top-middle',
133
149
  vertexes: topMiddleVertexes,
134
- center: topCenter
150
+ center: topCenter,
151
+ size: ctrlSize
135
152
  },
136
153
  bottomMiddle: {
137
154
  type: 'bottom-middle',
138
155
  vertexes: bottomMiddleVertexes,
139
- center: bottomCenter
156
+ center: bottomCenter,
157
+ size: ctrlSize
140
158
  },
141
159
  rotate: {
142
160
  type: 'rotate',
143
161
  vertexes: rotateVertexes,
144
- center: rotateCenter
162
+ center: rotateCenter,
163
+ size: rotateControllerSize
145
164
  }
146
165
  };
147
166
  return sizeController;
@@ -183,62 +202,74 @@ export function calcLayoutSizeController(layoutSize, opts) {
183
202
  left: {
184
203
  type: 'left',
185
204
  vertexes: leftVertexes,
186
- center: leftCenter
205
+ center: leftCenter,
206
+ size: ctrlSize
187
207
  },
188
208
  right: {
189
209
  type: 'right',
190
210
  vertexes: rightVertexes,
191
- center: rightCenter
211
+ center: rightCenter,
212
+ size: ctrlSize
192
213
  },
193
214
  top: {
194
215
  type: 'top',
195
216
  vertexes: topVertexes,
196
- center: topCenter
217
+ center: topCenter,
218
+ size: ctrlSize
197
219
  },
198
220
  bottom: {
199
221
  type: 'bottom',
200
222
  vertexes: bottomVertexes,
201
- center: bottomCenter
223
+ center: bottomCenter,
224
+ size: ctrlSize
202
225
  },
203
226
  topLeft: {
204
227
  type: 'top-left',
205
228
  vertexes: topLeftVertexes,
206
- center: topLeftCenter
229
+ center: topLeftCenter,
230
+ size: ctrlSize
207
231
  },
208
232
  topRight: {
209
233
  type: 'top-right',
210
234
  vertexes: topRightVertexes,
211
- center: topRightCenter
235
+ center: topRightCenter,
236
+ size: ctrlSize
212
237
  },
213
238
  bottomLeft: {
214
239
  type: 'bottom-left',
215
240
  vertexes: bottomLeftVertexes,
216
- center: bottomLeftCenter
241
+ center: bottomLeftCenter,
242
+ size: ctrlSize
217
243
  },
218
244
  bottomRight: {
219
245
  type: 'bottom-right',
220
246
  vertexes: bottomRightVertexes,
221
- center: bottomRightCenter
247
+ center: bottomRightCenter,
248
+ size: ctrlSize
222
249
  },
223
250
  leftMiddle: {
224
251
  type: 'left-middle',
225
252
  vertexes: leftMiddleVertexes,
226
- center: leftCenter
253
+ center: leftCenter,
254
+ size: ctrlSize
227
255
  },
228
256
  rightMiddle: {
229
257
  type: 'right-middle',
230
258
  vertexes: rightMiddleVertexes,
231
- center: rightCenter
259
+ center: rightCenter,
260
+ size: ctrlSize
232
261
  },
233
262
  topMiddle: {
234
263
  type: 'top-middle',
235
264
  vertexes: topMiddleVertexes,
236
- center: topCenter
265
+ center: topCenter,
266
+ size: ctrlSize
237
267
  },
238
268
  bottomMiddle: {
239
269
  type: 'bottom-middle',
240
270
  vertexes: bottomMiddleVertexes,
241
- center: bottomCenter
271
+ center: bottomCenter,
272
+ size: ctrlSize
242
273
  }
243
274
  };
244
275
  return sizeController;
@@ -29,3 +29,6 @@ export declare function findElementsFromListByPositions(positions: ElementPositi
29
29
  export declare function findElementFromListByPosition(position: ElementPosition, list: Element[]): Element | null;
30
30
  export declare function findElementQueueFromListByPosition(position: ElementPosition, list: Element[]): Element[];
31
31
  export declare function getElementPositionFromList(uuid: string, elements: Element<ElementType>[]): ElementPosition;
32
+ export declare function getElementPositionMapFromList(uuids: string[], elements: Element<ElementType>[]): {
33
+ [uuid: string]: ElementPosition;
34
+ };
@@ -427,3 +427,34 @@ export function getElementPositionFromList(uuid, elements) {
427
427
  _loop(elements);
428
428
  return result;
429
429
  }
430
+ export function getElementPositionMapFromList(uuids, elements) {
431
+ const currentPosition = [];
432
+ const positionMap = {};
433
+ let over = false;
434
+ const _loop = (list) => {
435
+ var _a;
436
+ for (let i = 0; i < list.length; i++) {
437
+ if (over === true) {
438
+ break;
439
+ }
440
+ currentPosition.push(i);
441
+ const elem = list[i];
442
+ if (uuids.includes(elem.uuid)) {
443
+ positionMap[elem.uuid] = [...currentPosition];
444
+ if (Object.keys(positionMap).length === uuids.length) {
445
+ over = true;
446
+ break;
447
+ }
448
+ }
449
+ else if (elem.type === 'group') {
450
+ _loop(((_a = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _a === void 0 ? void 0 : _a.children) || []);
451
+ }
452
+ if (over) {
453
+ break;
454
+ }
455
+ currentPosition.pop();
456
+ }
457
+ };
458
+ _loop(elements);
459
+ return positionMap;
460
+ }
@@ -0,0 +1,3 @@
1
+ import type { Elements, ElementPosition } from '@idraw/types';
2
+ export declare function groupElementsByPosition(list: Elements, positions: ElementPosition[]): Elements;
3
+ export declare function ungroupElementsByPosition(list: Elements, position: ElementPosition): Elements;
@@ -0,0 +1,81 @@
1
+ import { findElementFromListByPosition, calcElementListSize } from './element';
2
+ import { deleteElementInListByPosition, insertElementToListByPosition } from './handle-element';
3
+ import { createUUID } from './uuid';
4
+ export function groupElementsByPosition(list, positions) {
5
+ if (positions.length > 1) {
6
+ let isValidPositions = true;
7
+ let lastIndexs = [];
8
+ for (let i = 1; i < positions.length; i++) {
9
+ const prevPosition = positions[i - 1];
10
+ const position = positions[i];
11
+ if (!(prevPosition.length > 0 && position.length > 0)) {
12
+ isValidPositions = false;
13
+ break;
14
+ }
15
+ if (prevPosition.length !== position.length) {
16
+ isValidPositions = false;
17
+ break;
18
+ }
19
+ const temp1 = [...prevPosition];
20
+ const temp2 = [...position];
21
+ const lastIndex1 = temp1.pop();
22
+ const lastIndex2 = temp2.pop();
23
+ if (i === 1 && typeof lastIndex1 === 'number' && lastIndex1 >= 0) {
24
+ lastIndexs.push(lastIndex1);
25
+ }
26
+ if (typeof lastIndex2 === 'number' && lastIndex2 >= 0) {
27
+ lastIndexs.push(lastIndex2);
28
+ }
29
+ }
30
+ if (isValidPositions !== true) {
31
+ console.error('[idraw]: The grouped elements are not siblings!');
32
+ return list;
33
+ }
34
+ lastIndexs.sort((a, b) => a - b);
35
+ const groupParentPosition = [...positions[0]].splice(0, positions[0].length - 1);
36
+ const groupChildren = [];
37
+ const groupPosition = [...groupParentPosition, lastIndexs[0]];
38
+ for (let i = 0; i < lastIndexs.length; i++) {
39
+ const position = [...groupParentPosition, lastIndexs[i]];
40
+ const elem = findElementFromListByPosition(position, list);
41
+ if (elem) {
42
+ groupChildren.push(elem);
43
+ }
44
+ }
45
+ const groupSize = calcElementListSize(groupChildren);
46
+ for (let i = 0; i < groupChildren.length; i++) {
47
+ const elem = groupChildren[i];
48
+ if (elem) {
49
+ elem.x -= groupSize.x;
50
+ elem.y -= groupSize.y;
51
+ }
52
+ }
53
+ for (let i = lastIndexs.length - 1; i >= 0; i--) {
54
+ const position = [...groupParentPosition, lastIndexs[i]];
55
+ deleteElementInListByPosition(position, list);
56
+ }
57
+ const group = Object.assign(Object.assign({ name: 'Group', uuid: createUUID(), type: 'group' }, groupSize), { detail: {
58
+ children: groupChildren
59
+ } });
60
+ insertElementToListByPosition(group, groupPosition, list);
61
+ }
62
+ return list;
63
+ }
64
+ export function ungroupElementsByPosition(list, position) {
65
+ var _a;
66
+ const elem = findElementFromListByPosition(position, list);
67
+ if (!(elem && (elem === null || elem === void 0 ? void 0 : elem.type) === 'group' && Array.isArray((_a = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _a === void 0 ? void 0 : _a.children))) {
68
+ console.error('[idraw]: The ungrouped element is not a group element!');
69
+ }
70
+ const groupParentPosition = [...position].splice(0, position.length - 1);
71
+ const groupLastIndex = position[position.length - 1];
72
+ const { x, y } = elem;
73
+ deleteElementInListByPosition(position, list);
74
+ elem.detail.children.forEach((child, i) => {
75
+ child.x += x;
76
+ child.y += y;
77
+ const elemPosition = [...groupParentPosition, groupLastIndex + i];
78
+ insertElementToListByPosition(child, elemPosition, list);
79
+ });
80
+ return list;
81
+ }
@@ -12,7 +12,7 @@ declare function imageBase64(value: any): boolean;
12
12
  declare function imageSrc(value: any): boolean;
13
13
  declare function svg(value: any): boolean;
14
14
  declare function html(value: any): boolean;
15
- declare function text(value: any): boolean;
15
+ declare function text(value: any): value is string;
16
16
  declare function fontSize(value: any): boolean;
17
17
  declare function lineHeight(value: any): boolean;
18
18
  declare function strokeWidth(value: any): boolean;
@@ -46,18 +46,10 @@ export function calcElementCenterFromVertexes(ves) {
46
46
  return calcElementCenter(elemSize);
47
47
  }
48
48
  export function calcRadian(center, start, end) {
49
- const startAngle = calcLineRadian(center, start);
50
- const endAngle = calcLineRadian(center, end);
51
- if (endAngle !== null && startAngle !== null) {
52
- if (startAngle > (Math.PI * 3) / 2 && endAngle < Math.PI / 2) {
53
- return endAngle + (Math.PI * 2 - startAngle);
54
- }
55
- else if (endAngle > (Math.PI * 3) / 2 && startAngle < Math.PI / 2) {
56
- return startAngle + (Math.PI * 2 - endAngle);
57
- }
58
- else {
59
- return endAngle - startAngle;
60
- }
49
+ const startRadian = calcLineRadian(center, start);
50
+ const endRadian = calcLineRadian(center, end);
51
+ if (endRadian !== null && startRadian !== null) {
52
+ return endRadian - startRadian;
61
53
  }
62
54
  else {
63
55
  return 0;
@@ -199,12 +191,15 @@ export function rotateVertexes(center, ves, radian) {
199
191
  ];
200
192
  }
201
193
  export function limitAngle(angle) {
202
- if (!(angle > 0 || angle < 0) || angle === 0) {
194
+ if (!(angle > 0 || angle < 0) || angle === 0 || angle === 360) {
203
195
  return 0;
204
196
  }
205
197
  let num = angle % 360;
206
198
  if (num < 0) {
207
199
  num += 360;
208
200
  }
201
+ else if (angle === 360) {
202
+ num = 0;
203
+ }
209
204
  return num;
210
205
  }
@@ -1,10 +1,13 @@
1
- export declare class Store<T extends Record<string | symbol, any> = Record<string | symbol, any>> {
1
+ export declare class Store<T extends Record<string | symbol, any> = Record<string | symbol, any>, S extends Record<string | symbol, any> = Record<string | symbol, any>> {
2
2
  #private;
3
3
  constructor(opts: {
4
4
  defaultStorage: T;
5
+ defaultStatic?: S;
5
6
  });
6
7
  set<K extends keyof T>(name: K, value: T[K]): void;
7
8
  get<K extends keyof T>(name: K): T[K];
9
+ setStatic<K extends keyof S>(name: K, value: S[K]): void;
10
+ getStatic<K extends keyof S>(name: K): S[K] | undefined;
8
11
  getSnapshot(opts?: {
9
12
  deepClone?: boolean;
10
13
  }): T;
@@ -9,15 +9,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_createTempStorage;
12
+ var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_static, _Store_createTempStorage;
13
13
  import { deepClone } from './data';
14
14
  export class Store {
15
15
  constructor(opts) {
16
16
  _Store_instances.add(this);
17
17
  _Store_temp.set(this, void 0);
18
18
  _Store_backUpDefaultStorage.set(this, void 0);
19
+ _Store_static.set(this, void 0);
19
20
  __classPrivateFieldSet(this, _Store_backUpDefaultStorage, deepClone(opts.defaultStorage), "f");
20
21
  __classPrivateFieldSet(this, _Store_temp, __classPrivateFieldGet(this, _Store_instances, "m", _Store_createTempStorage).call(this), "f");
22
+ __classPrivateFieldSet(this, _Store_static, opts.defaultStatic || {}, "f");
21
23
  }
22
24
  set(name, value) {
23
25
  __classPrivateFieldGet(this, _Store_temp, "f")[name] = value;
@@ -25,6 +27,12 @@ export class Store {
25
27
  get(name) {
26
28
  return __classPrivateFieldGet(this, _Store_temp, "f")[name];
27
29
  }
30
+ setStatic(name, value) {
31
+ __classPrivateFieldGet(this, _Store_static, "f")[name] = value;
32
+ }
33
+ getStatic(name) {
34
+ return __classPrivateFieldGet(this, _Store_static, "f")[name];
35
+ }
28
36
  getSnapshot(opts) {
29
37
  if ((opts === null || opts === void 0 ? void 0 : opts.deepClone) === true) {
30
38
  return deepClone(__classPrivateFieldGet(this, _Store_temp, "f"));
@@ -36,8 +44,9 @@ export class Store {
36
44
  }
37
45
  destroy() {
38
46
  __classPrivateFieldSet(this, _Store_temp, null, "f");
47
+ __classPrivateFieldSet(this, _Store_static, null, "f");
39
48
  }
40
49
  }
41
- _Store_temp = new WeakMap(), _Store_backUpDefaultStorage = new WeakMap(), _Store_instances = new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage() {
50
+ _Store_temp = new WeakMap(), _Store_backUpDefaultStorage = new WeakMap(), _Store_static = new WeakMap(), _Store_instances = new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage() {
42
51
  return deepClone(__classPrivateFieldGet(this, _Store_backUpDefaultStorage, "f"));
43
52
  };