@idraw/util 0.4.0-beta.40 → 0.4.0-beta.41

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.
Files changed (104) hide show
  1. package/dist/esm/index.d.ts +46 -40
  2. package/dist/esm/index.js +46 -40
  3. package/dist/esm/tool/flat-object.d.ts +6 -0
  4. package/dist/esm/tool/flat-object.js +28 -0
  5. package/dist/esm/tool/get-set-del.d.ts +4 -0
  6. package/dist/esm/tool/get-set-del.js +65 -0
  7. package/dist/esm/tool/hash.d.ts +1 -0
  8. package/dist/esm/tool/hash.js +33 -0
  9. package/dist/esm/{lib → tool}/html.js +6 -2
  10. package/dist/esm/{lib → tool}/store.js +1 -1
  11. package/dist/esm/tool/unflat-object.d.ts +3 -0
  12. package/dist/esm/tool/unflat-object.js +91 -0
  13. package/dist/esm/tool/uuid.js +13 -0
  14. package/dist/esm/{lib → view}/check.js +14 -14
  15. package/dist/esm/{lib → view}/controller.js +53 -10
  16. package/dist/esm/{lib → view}/data.js +1 -1
  17. package/dist/esm/{lib → view}/element.js +12 -4
  18. package/dist/esm/{lib → view}/flat.js +2 -1
  19. package/dist/esm/{lib → view}/group.js +1 -1
  20. package/dist/esm/{lib → view}/handle-element.d.ts +6 -1
  21. package/dist/esm/{lib → view}/handle-element.js +26 -31
  22. package/dist/esm/view/handle-global.d.ts +4 -0
  23. package/dist/esm/view/handle-global.js +28 -0
  24. package/dist/esm/view/handle-layout.d.ts +4 -0
  25. package/dist/esm/view/handle-layout.js +28 -0
  26. package/dist/esm/{lib → view}/is.js +1 -1
  27. package/dist/esm/view/modify-record.d.ts +4 -0
  28. package/dist/esm/view/modify-record.js +10 -0
  29. package/dist/esm/view/position.d.ts +15 -0
  30. package/dist/esm/view/position.js +79 -0
  31. package/dist/esm/{lib → view}/resize-element.js +1 -1
  32. package/dist/esm/{lib → view}/view-content.js +1 -1
  33. package/dist/index.global.js +459 -165
  34. package/dist/index.global.min.js +1 -1
  35. package/package.json +1 -1
  36. package/dist/esm/lib/modify-recorder.d.ts +0 -15
  37. package/dist/esm/lib/modify-recorder.js +0 -177
  38. package/dist/esm/lib/modify.d.ts +0 -6
  39. package/dist/esm/lib/modify.js +0 -99
  40. package/dist/esm/lib/uuid.js +0 -31
  41. /package/dist/esm/{lib → tool}/color.d.ts +0 -0
  42. /package/dist/esm/{lib → tool}/color.js +0 -0
  43. /package/dist/esm/{lib → tool}/event.d.ts +0 -0
  44. /package/dist/esm/{lib → tool}/event.js +0 -0
  45. /package/dist/esm/{lib → tool}/file.d.ts +0 -0
  46. /package/dist/esm/{lib → tool}/file.js +0 -0
  47. /package/dist/esm/{lib → tool}/html.d.ts +0 -0
  48. /package/dist/esm/{lib → tool}/image.d.ts +0 -0
  49. /package/dist/esm/{lib → tool}/image.js +0 -0
  50. /package/dist/esm/{lib → tool}/istype.d.ts +0 -0
  51. /package/dist/esm/{lib → tool}/istype.js +0 -0
  52. /package/dist/esm/{lib → tool}/merge.d.ts +0 -0
  53. /package/dist/esm/{lib → tool}/merge.js +0 -0
  54. /package/dist/esm/{lib → tool}/number.d.ts +0 -0
  55. /package/dist/esm/{lib → tool}/number.js +0 -0
  56. /package/dist/esm/{lib → tool}/omit.d.ts +0 -0
  57. /package/dist/esm/{lib → tool}/omit.js +0 -0
  58. /package/dist/esm/{lib → tool}/store.d.ts +0 -0
  59. /package/dist/esm/{lib → tool}/time.d.ts +0 -0
  60. /package/dist/esm/{lib → tool}/time.js +0 -0
  61. /package/dist/esm/{lib → tool}/uuid.d.ts +0 -0
  62. /package/dist/esm/{lib → view}/box.d.ts +0 -0
  63. /package/dist/esm/{lib → view}/box.js +0 -0
  64. /package/dist/esm/{lib → view}/canvas.d.ts +0 -0
  65. /package/dist/esm/{lib → view}/canvas.js +0 -0
  66. /package/dist/esm/{lib → view}/check.d.ts +0 -0
  67. /package/dist/esm/{lib → view}/config.d.ts +0 -0
  68. /package/dist/esm/{lib → view}/config.js +0 -0
  69. /package/dist/esm/{lib → view}/context2d.d.ts +0 -0
  70. /package/dist/esm/{lib → view}/context2d.js +0 -0
  71. /package/dist/esm/{lib → view}/controller.d.ts +0 -0
  72. /package/dist/esm/{lib → view}/data.d.ts +0 -0
  73. /package/dist/esm/{lib → view}/element.d.ts +0 -0
  74. /package/dist/esm/{lib → view}/flat.d.ts +0 -0
  75. /package/dist/esm/{lib → view}/group.d.ts +0 -0
  76. /package/dist/esm/{lib → view}/is.d.ts +0 -0
  77. /package/dist/esm/{lib → view}/load.d.ts +0 -0
  78. /package/dist/esm/{lib → view}/load.js +0 -0
  79. /package/dist/esm/{lib → view}/matrix.d.ts +0 -0
  80. /package/dist/esm/{lib → view}/matrix.js +0 -0
  81. /package/dist/esm/{lib → view}/middleware.d.ts +0 -0
  82. /package/dist/esm/{lib → view}/middleware.js +0 -0
  83. /package/dist/esm/{lib → view}/parser.d.ts +0 -0
  84. /package/dist/esm/{lib → view}/parser.js +0 -0
  85. /package/dist/esm/{lib → view}/point-move-element.d.ts +0 -0
  86. /package/dist/esm/{lib → view}/point-move-element.js +0 -0
  87. /package/dist/esm/{lib → view}/point.d.ts +0 -0
  88. /package/dist/esm/{lib → view}/point.js +0 -0
  89. /package/dist/esm/{lib → view}/rect.d.ts +0 -0
  90. /package/dist/esm/{lib → view}/rect.js +0 -0
  91. /package/dist/esm/{lib → view}/resize-element.d.ts +0 -0
  92. /package/dist/esm/{lib → view}/rotate.d.ts +0 -0
  93. /package/dist/esm/{lib → view}/rotate.js +0 -0
  94. /package/dist/esm/{lib → view}/svg-path.d.ts +0 -0
  95. /package/dist/esm/{lib → view}/svg-path.js +0 -0
  96. /package/dist/esm/{lib → view}/text.d.ts +0 -0
  97. /package/dist/esm/{lib → view}/text.js +0 -0
  98. /package/dist/esm/{lib → view}/vertex.d.ts +0 -0
  99. /package/dist/esm/{lib → view}/vertex.js +0 -0
  100. /package/dist/esm/{lib → view}/view-box.d.ts +0 -0
  101. /package/dist/esm/{lib → view}/view-box.js +0 -0
  102. /package/dist/esm/{lib → view}/view-calc.d.ts +0 -0
  103. /package/dist/esm/{lib → view}/view-calc.js +0 -0
  104. /package/dist/esm/{lib → view}/view-content.d.ts +0 -0
@@ -9,7 +9,7 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { createAssetId, createUUID, isAssetId } from './uuid';
12
+ import { createAssetId, createUUID, isAssetId } from '../tool/uuid';
13
13
  export function deepClone(target) {
14
14
  function _clone(t) {
15
15
  const type = is(t);
@@ -1,5 +1,5 @@
1
1
  import { limitAngle, rotateElementVertexes } from './rotate';
2
- import { isAssetId, createAssetId } from './uuid';
2
+ import { isAssetId, createAssetId } from '../tool/uuid';
3
3
  function getGroupUUIDs(elements, index) {
4
4
  var _a;
5
5
  const uuids = [];
@@ -168,7 +168,11 @@ export function calcElementsContextSize(elements, opts) {
168
168
  return ctxSize;
169
169
  }
170
170
  export function calcElementsViewInfo(elements, prevViewSize, options) {
171
- const contextSize = calcElementsContextSize(elements, { viewWidth: prevViewSize.width, viewHeight: prevViewSize.height, extend: options === null || options === void 0 ? void 0 : options.extend });
171
+ const contextSize = calcElementsContextSize(elements, {
172
+ viewWidth: prevViewSize.width,
173
+ viewHeight: prevViewSize.height,
174
+ extend: options === null || options === void 0 ? void 0 : options.extend
175
+ });
172
176
  if ((options === null || options === void 0 ? void 0 : options.extend) === true) {
173
177
  contextSize.contextWidth = Math.max(contextSize.contextWidth, prevViewSize.contextWidth);
174
178
  contextSize.contextHeight = Math.max(contextSize.contextHeight, prevViewSize.contextHeight);
@@ -367,7 +371,7 @@ export function findElementFromListByPosition(position, list) {
367
371
  for (let i = 0; i < position.length; i++) {
368
372
  const pos = position[i];
369
373
  const item = tempList[pos];
370
- if (i < position.length - 1 && item.type === 'group') {
374
+ if (i < position.length - 1 && (item === null || item === void 0 ? void 0 : item.type) === 'group') {
371
375
  tempList = item.detail.children;
372
376
  }
373
377
  else if (i === position.length - 1) {
@@ -459,5 +463,9 @@ export function getElementPositionMapFromList(uuids, elements) {
459
463
  return positionMap;
460
464
  }
461
465
  export function isSameElementSize(elem1, elem2) {
462
- return (elem1.x === elem2.x && elem1.y === elem2.y && elem1.h === elem2.h && elem1.w === elem2.w && limitAngle(elem1.angle || 0) === limitAngle(elem2.angle || 0));
466
+ return (elem1.x === elem2.x &&
467
+ elem1.y === elem2.y &&
468
+ elem1.h === elem2.h &&
469
+ elem1.w === elem2.w &&
470
+ limitAngle(elem1.angle || 0) === limitAngle(elem2.angle || 0));
463
471
  }
@@ -13,7 +13,8 @@ import { calcElementVertexesInGroup } from './vertex';
13
13
  import { limitAngle, parseAngleToRadian, calcElementCenterFromVertexes, rotatePoint } from './rotate';
14
14
  function flatElementSize(elemSize, opts) {
15
15
  const { groupQueue } = opts;
16
- let { x, y, w, h, angle = 0 } = elemSize;
16
+ let { x, y } = elemSize;
17
+ const { w, h, angle = 0 } = elemSize;
17
18
  let totalAngle = 0;
18
19
  groupQueue.forEach((group) => {
19
20
  x += group.x;
@@ -1,6 +1,6 @@
1
1
  import { findElementFromListByPosition, calcElementListSize } from './element';
2
2
  import { deleteElementInListByPosition, insertElementToListByPosition } from './handle-element';
3
- import { createUUID } from './uuid';
3
+ import { createUUID } from '../tool/uuid';
4
4
  export function groupElementsByPosition(list, positions) {
5
5
  if (positions.length > 1) {
6
6
  let isValidPositions = true;
@@ -15,5 +15,10 @@ export declare function moveElementPosition(elements: Elements, opts: {
15
15
  from: ElementPosition;
16
16
  to: ElementPosition;
17
17
  };
18
+ export declare function mergeElement<T extends Element<ElementType> = Element<ElementType>>(originElem: T, updateContent: RecursivePartial<T>, opts?: {
19
+ strict?: boolean;
20
+ }): T;
18
21
  export declare function updateElementInList(uuid: string, updateContent: RecursivePartial<Element<ElementType>>, elements: Element[]): Element | null;
19
- export declare function updateElementInListByPosition(position: ElementPosition, updateContent: RecursivePartial<Element<ElementType>>, elements: Element[]): Element | null;
22
+ export declare function updateElementInListByPosition(position: ElementPosition, updateContent: RecursivePartial<Element<ElementType>>, elements: Element[], opts?: {
23
+ strict?: boolean;
24
+ }): Element | null;
@@ -1,6 +1,7 @@
1
- import { createUUID } from './uuid';
1
+ import { createUUID } from '../tool/uuid';
2
2
  import { defaultText, getDefaultElementRectDetail, getDefaultElementCircleDetail, getDefaultElementTextDetail, getDefaultElementSVGDetail, getDefaultElementImageDetail, getDefaultElementGroupDetail } from './config';
3
- import { istype } from './istype';
3
+ import { toFlattenElement } from './modify-record';
4
+ import { set, del } from '../tool/get-set-del';
4
5
  import { findElementFromListByPosition, getElementPositionFromList } from './element';
5
6
  import { deepResizeGroupElement } from './resize-element';
6
7
  const defaultViewWidth = 200;
@@ -67,7 +68,7 @@ export function createElement(type, baseElem, opts) {
67
68
  else if (type === 'group') {
68
69
  detail = getDefaultElementGroupDetail();
69
70
  }
70
- const elem = Object.assign(Object.assign(Object.assign({}, elementSize), baseElem), { uuid: createUUID(), type, detail: Object.assign(Object.assign({}, detail), (baseElem.detail || {})) });
71
+ const elem = Object.assign(Object.assign(Object.assign({ uuid: createUUID() }, elementSize), baseElem), { type, detail: Object.assign(Object.assign({}, detail), (baseElem.detail || {})) });
71
72
  return elem;
72
73
  }
73
74
  export function insertElementToListByPosition(element, position, list) {
@@ -217,35 +218,29 @@ export function moveElementPosition(elements, opts) {
217
218
  }
218
219
  return { elements, from, to };
219
220
  }
220
- function mergeElement(originElem, updateContent) {
221
- var _a;
222
- const commonKeys = Object.keys(updateContent);
223
- for (let i = 0; i < commonKeys.length; i++) {
224
- const commonKey = commonKeys[i];
225
- if (['x', 'y', 'w', 'h', 'angle', 'name'].includes(commonKey)) {
226
- originElem[commonKey] = updateContent[commonKey];
227
- }
228
- else if (['detail', 'operations'].includes(commonKey)) {
229
- if (istype.json(updateContent[commonKey])) {
230
- if (!(originElem === null || originElem === void 0 ? void 0 : originElem.hasOwnProperty(commonKey))) {
231
- originElem[commonKey] = {};
232
- }
233
- if (istype.json(originElem[commonKey])) {
234
- originElem[commonKey] = Object.assign(Object.assign({}, originElem[commonKey]), updateContent[commonKey]);
235
- }
221
+ export function mergeElement(originElem, updateContent, opts) {
222
+ const updatedFlatten = toFlattenElement(updateContent);
223
+ const ignoreKeys = ['uuid', 'type'];
224
+ const updatedKeys = Object.keys(updatedFlatten);
225
+ updatedKeys.forEach((key) => {
226
+ if (!ignoreKeys.includes(key)) {
227
+ const value = updatedFlatten[key];
228
+ del(originElem, key);
229
+ if (value !== undefined) {
230
+ set(originElem, key, value);
236
231
  }
237
- else if (istype.array(updateContent[commonKey])) {
238
- if (!(originElem === null || originElem === void 0 ? void 0 : originElem.hasOwnProperty(commonKey))) {
239
- originElem[commonKey] = [];
240
- }
241
- if (istype.array(originElem[commonKey])) {
242
- (_a = updateContent === null || updateContent === void 0 ? void 0 : updateContent[commonKey]) === null || _a === void 0 ? void 0 : _a.forEach((item, i) => {
243
- originElem[commonKey][i] = item;
244
- });
245
- originElem[commonKey] = [...originElem[commonKey], ...updateContent[commonKey]];
232
+ }
233
+ });
234
+ if ((opts === null || opts === void 0 ? void 0 : opts.strict) === true) {
235
+ const originFlatten = toFlattenElement(originElem);
236
+ const originKeys = Object.keys(originFlatten);
237
+ originKeys.forEach((key) => {
238
+ if (!ignoreKeys.includes(key)) {
239
+ if (!updatedKeys.includes(key)) {
240
+ del(originElem, key);
246
241
  }
247
242
  }
248
- }
243
+ });
249
244
  }
250
245
  return originElem;
251
246
  }
@@ -273,7 +268,7 @@ export function updateElementInList(uuid, updateContent, elements) {
273
268
  }
274
269
  return targetElement;
275
270
  }
276
- export function updateElementInListByPosition(position, updateContent, elements) {
271
+ export function updateElementInListByPosition(position, updateContent, elements, opts) {
277
272
  var _a;
278
273
  const elem = findElementFromListByPosition(position, elements);
279
274
  if (elem) {
@@ -285,7 +280,7 @@ export function updateElementInListByPosition(position, updateContent, elements)
285
280
  });
286
281
  }
287
282
  }
288
- mergeElement(elem, updateContent);
283
+ mergeElement(elem, updateContent, opts);
289
284
  }
290
285
  return elem;
291
286
  }
@@ -0,0 +1,4 @@
1
+ import type { RecursivePartial, DataGlobal } from '@idraw/types';
2
+ export declare function mergeGlobal(originGlobal: DataGlobal, updateContent: RecursivePartial<DataGlobal>, opts?: {
3
+ strict?: boolean;
4
+ }): DataGlobal;
@@ -0,0 +1,28 @@
1
+ import { toFlattenGlobal } from './modify-record';
2
+ import { set, del } from '../tool/get-set-del';
3
+ export function mergeGlobal(originGlobal, updateContent, opts) {
4
+ const updatedFlatten = toFlattenGlobal(updateContent);
5
+ const ignoreKeys = [];
6
+ const updatedKeys = Object.keys(updatedFlatten);
7
+ updatedKeys.forEach((key) => {
8
+ if (!ignoreKeys.includes(key)) {
9
+ const value = updatedFlatten[key];
10
+ del(originGlobal, key);
11
+ if (value !== undefined) {
12
+ set(originGlobal, key, value);
13
+ }
14
+ }
15
+ });
16
+ if ((opts === null || opts === void 0 ? void 0 : opts.strict) === true) {
17
+ const originFlatten = toFlattenGlobal(originGlobal);
18
+ const originKeys = Object.keys(originFlatten);
19
+ originKeys.forEach((key) => {
20
+ if (!ignoreKeys.includes(key)) {
21
+ if (!updatedKeys.includes(key)) {
22
+ del(originGlobal, key);
23
+ }
24
+ }
25
+ });
26
+ }
27
+ return originGlobal;
28
+ }
@@ -0,0 +1,4 @@
1
+ import type { RecursivePartial, DataLayout } from '@idraw/types';
2
+ export declare function mergeLayout(originLayout: DataLayout, updateContent: RecursivePartial<DataLayout>, opts?: {
3
+ strict?: boolean;
4
+ }): DataLayout;
@@ -0,0 +1,28 @@
1
+ import { toFlattenLayout } from './modify-record';
2
+ import { set, del } from '../tool/get-set-del';
3
+ export function mergeLayout(originLayout, updateContent, opts) {
4
+ const updatedFlatten = toFlattenLayout(updateContent);
5
+ const ignoreKeys = [];
6
+ const updatedKeys = Object.keys(updatedFlatten);
7
+ updatedKeys.forEach((key) => {
8
+ if (!ignoreKeys.includes(key)) {
9
+ const value = updatedFlatten[key];
10
+ del(originLayout, key);
11
+ if (value !== undefined) {
12
+ set(originLayout, key, value);
13
+ }
14
+ }
15
+ });
16
+ if ((opts === null || opts === void 0 ? void 0 : opts.strict) === true) {
17
+ const originFlatten = toFlattenLayout(originLayout);
18
+ const originKeys = Object.keys(originFlatten);
19
+ originKeys.forEach((key) => {
20
+ if (!ignoreKeys.includes(key)) {
21
+ if (!updatedKeys.includes(key)) {
22
+ del(originLayout, key);
23
+ }
24
+ }
25
+ });
26
+ }
27
+ return originLayout;
28
+ }
@@ -1,4 +1,4 @@
1
- import { isColorStr } from './color';
1
+ import { isColorStr } from '../tool/color';
2
2
  function positiveNum(value) {
3
3
  return typeof value === 'number' && value >= 0;
4
4
  }
@@ -0,0 +1,4 @@
1
+ import type { FlattenElement, Element, RecursivePartial, DataLayout, DataGlobal } from '@idraw/types';
2
+ export declare function toFlattenElement(elem: Element | RecursivePartial<Element>): FlattenElement;
3
+ export declare function toFlattenLayout(layout: DataLayout | RecursivePartial<DataLayout>): FlattenElement;
4
+ export declare function toFlattenGlobal(global: DataGlobal | RecursivePartial<DataLayout>): FlattenElement;
@@ -0,0 +1,10 @@
1
+ import { flatObject } from '../tool/flat-object';
2
+ export function toFlattenElement(elem) {
3
+ return flatObject(elem, { ignorePaths: ['detail.children'] });
4
+ }
5
+ export function toFlattenLayout(layout) {
6
+ return flatObject(layout);
7
+ }
8
+ export function toFlattenGlobal(global) {
9
+ return flatObject(global);
10
+ }
@@ -0,0 +1,15 @@
1
+ import type { ElementPosition } from '@idraw/types';
2
+ export declare function calcResultMovePosition(opts: {
3
+ from: ElementPosition;
4
+ to: ElementPosition;
5
+ }): {
6
+ from: ElementPosition;
7
+ to: ElementPosition;
8
+ } | null;
9
+ export declare function calcRevertMovePosition(opts: {
10
+ from: ElementPosition;
11
+ to: ElementPosition;
12
+ }): {
13
+ from: ElementPosition;
14
+ to: ElementPosition;
15
+ } | null;
@@ -0,0 +1,79 @@
1
+ export function calcResultMovePosition(opts) {
2
+ const from = [...opts.from];
3
+ const to = [...opts.to];
4
+ if (from.length === 0 || to.length === 0) {
5
+ return null;
6
+ }
7
+ if (from.length <= to.length) {
8
+ for (let i = 0; i < from.length; i++) {
9
+ if (to[i] === from[i]) {
10
+ if (i === from.length - 1) {
11
+ return null;
12
+ }
13
+ continue;
14
+ }
15
+ }
16
+ }
17
+ let moveDirection = null;
18
+ if (from.length >= 1 && to.length >= 1) {
19
+ if (from.length <= to.length) {
20
+ if (from.length === 1) {
21
+ if (from[0] < to[0]) {
22
+ moveDirection = 'up-down';
23
+ }
24
+ }
25
+ else {
26
+ for (let i = 0; i < from.length; i++) {
27
+ if (from[i] === to[i]) {
28
+ if (from.length === from.length - 1) {
29
+ moveDirection = 'up-down';
30
+ break;
31
+ }
32
+ }
33
+ else {
34
+ break;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ if (from.length >= to.length) {
40
+ if (to.length === 1) {
41
+ if (to[0] < from[0]) {
42
+ moveDirection = 'down-up';
43
+ }
44
+ }
45
+ else {
46
+ for (let i = 0; i < to.length; i++) {
47
+ if (i === to.length - 1 && to[i] < from[i]) {
48
+ moveDirection = 'down-up';
49
+ }
50
+ if (from[i] === to[i]) {
51
+ continue;
52
+ }
53
+ else {
54
+ break;
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ const startEffectIndex = from.length - 1;
61
+ const endEffectIndex = to.length - 1;
62
+ if (moveDirection === 'up-down' && startEffectIndex >= 0) {
63
+ to[startEffectIndex] -= 1;
64
+ }
65
+ else if (moveDirection === 'down-up' && endEffectIndex >= 0) {
66
+ from[endEffectIndex] += 1;
67
+ }
68
+ return { from, to };
69
+ }
70
+ export function calcRevertMovePosition(opts) {
71
+ const result = calcResultMovePosition(opts);
72
+ if (!result) {
73
+ return result;
74
+ }
75
+ return {
76
+ from: [...result.to],
77
+ to: [...result.from]
78
+ };
79
+ }
@@ -1,4 +1,4 @@
1
- import { formatNumber } from './number';
1
+ import { formatNumber } from '../tool/number';
2
2
  const doNum = (n) => {
3
3
  return formatNumber(n, { decimalPlaces: 4 });
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import { rotateElementVertexes } from './rotate';
2
- import { formatNumber } from './number';
2
+ import { formatNumber } from '../tool/number';
3
3
  import { is } from './is';
4
4
  export function calcViewCenterContent(data, opts) {
5
5
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;