@idraw/core 0.4.2 → 1.0.0-alpha.1

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 (149) hide show
  1. package/dist/esm/board/index.d.ts +2 -2
  2. package/dist/esm/board/index.js +23 -12
  3. package/dist/esm/board/sharer.d.ts +3 -3
  4. package/dist/esm/board/sharer.js +10 -10
  5. package/dist/esm/board/viewer.d.ts +3 -3
  6. package/dist/esm/board/viewer.js +14 -14
  7. package/dist/esm/board/watcher.d.ts +3 -3
  8. package/dist/esm/board/watcher.js +68 -43
  9. package/dist/esm/core.d.ts +52 -0
  10. package/dist/esm/core.js +393 -0
  11. package/dist/esm/cursor/cursor-image.d.ts +2 -0
  12. package/dist/esm/cursor/cursor-image.js +2 -0
  13. package/dist/esm/cursor/cursor.js +60 -24
  14. package/dist/esm/index.d.ts +12 -61
  15. package/dist/esm/index.js +11 -389
  16. package/dist/esm/middlewares/common.d.ts +4 -0
  17. package/dist/esm/middlewares/common.js +13 -0
  18. package/dist/esm/middlewares/creator/dom.d.ts +11 -0
  19. package/dist/esm/middlewares/creator/dom.js +52 -0
  20. package/dist/esm/middlewares/creator/index.d.ts +5 -0
  21. package/dist/esm/middlewares/creator/index.js +136 -0
  22. package/dist/esm/middlewares/creator/static.d.ts +14 -0
  23. package/dist/esm/middlewares/creator/static.js +19 -0
  24. package/dist/esm/middlewares/creator/styles.d.ts +4 -0
  25. package/dist/esm/middlewares/creator/styles.js +32 -0
  26. package/dist/esm/middlewares/creator/types.d.ts +7 -0
  27. package/dist/esm/middlewares/creator/types.js +1 -0
  28. package/dist/esm/middlewares/creator/util.d.ts +10 -0
  29. package/dist/esm/middlewares/creator/util.js +52 -0
  30. package/dist/esm/middlewares/dragger/index.js +5 -5
  31. package/dist/esm/middlewares/info/draw-info.d.ts +11 -11
  32. package/dist/esm/middlewares/info/draw-info.js +18 -18
  33. package/dist/esm/middlewares/info/index.d.ts +2 -1
  34. package/dist/esm/middlewares/info/index.js +48 -51
  35. package/dist/esm/middlewares/info/static.d.ts +6 -0
  36. package/dist/esm/middlewares/info/{config.js → static.js} +6 -1
  37. package/dist/esm/middlewares/info/types.d.ts +2 -2
  38. package/dist/esm/middlewares/layout-selector/dom.d.ts +10 -0
  39. package/dist/esm/middlewares/layout-selector/dom.js +108 -0
  40. package/dist/esm/middlewares/layout-selector/index.d.ts +1 -1
  41. package/dist/esm/middlewares/layout-selector/index.js +89 -141
  42. package/dist/esm/middlewares/layout-selector/static.d.ts +32 -0
  43. package/dist/esm/middlewares/layout-selector/static.js +39 -0
  44. package/dist/esm/middlewares/layout-selector/styles.d.ts +4 -0
  45. package/dist/esm/middlewares/layout-selector/styles.js +127 -0
  46. package/dist/esm/middlewares/layout-selector/types.d.ts +6 -6
  47. package/dist/esm/middlewares/layout-selector/types.js +2 -2
  48. package/dist/esm/middlewares/layout-selector/util.d.ts +4 -4
  49. package/dist/esm/middlewares/layout-selector/util.js +19 -19
  50. package/dist/esm/middlewares/path-creator/dom.d.ts +29 -0
  51. package/dist/esm/middlewares/path-creator/dom.js +145 -0
  52. package/dist/esm/middlewares/path-creator/index.d.ts +5 -0
  53. package/dist/esm/middlewares/path-creator/index.js +203 -0
  54. package/dist/esm/middlewares/path-creator/static.d.ts +23 -0
  55. package/dist/esm/middlewares/path-creator/static.js +49 -0
  56. package/dist/esm/middlewares/path-creator/types.d.ts +1 -0
  57. package/dist/esm/middlewares/path-editor/calc.d.ts +6 -0
  58. package/dist/esm/middlewares/path-editor/calc.js +51 -0
  59. package/dist/esm/middlewares/path-editor/dom.d.ts +32 -0
  60. package/dist/esm/middlewares/path-editor/dom.js +575 -0
  61. package/dist/esm/middlewares/path-editor/draw.d.ts +7 -0
  62. package/dist/esm/middlewares/path-editor/draw.js +113 -0
  63. package/dist/esm/middlewares/path-editor/index.d.ts +5 -0
  64. package/dist/esm/middlewares/path-editor/index.js +312 -0
  65. package/dist/esm/middlewares/path-editor/parse.d.ts +5 -0
  66. package/dist/esm/middlewares/path-editor/parse.js +37 -0
  67. package/dist/esm/middlewares/path-editor/static.d.ts +34 -0
  68. package/dist/esm/middlewares/path-editor/static.js +82 -0
  69. package/dist/esm/middlewares/path-editor/types.d.ts +26 -0
  70. package/dist/esm/middlewares/path-editor/types.js +1 -0
  71. package/dist/esm/middlewares/path-editor/util.d.ts +5 -0
  72. package/dist/esm/middlewares/path-editor/util.js +21 -0
  73. package/dist/esm/middlewares/pointer/index.js +5 -5
  74. package/dist/esm/middlewares/pointer/types.d.ts +2 -2
  75. package/dist/esm/middlewares/ruler/index.d.ts +2 -0
  76. package/dist/esm/middlewares/ruler/index.js +12 -19
  77. package/dist/esm/middlewares/ruler/static.d.ts +8 -0
  78. package/dist/esm/middlewares/ruler/{config.js → static.js} +16 -3
  79. package/dist/esm/middlewares/ruler/types.d.ts +2 -2
  80. package/dist/esm/middlewares/ruler/util.d.ts +6 -6
  81. package/dist/esm/middlewares/ruler/util.js +31 -31
  82. package/dist/esm/middlewares/scaler/index.js +2 -2
  83. package/dist/esm/middlewares/scroller/dom.d.ts +14 -0
  84. package/dist/esm/middlewares/scroller/dom.js +53 -0
  85. package/dist/esm/middlewares/scroller/index.d.ts +2 -0
  86. package/dist/esm/middlewares/scroller/index.js +111 -46
  87. package/dist/esm/middlewares/scroller/static.d.ts +21 -0
  88. package/dist/esm/middlewares/scroller/static.js +29 -0
  89. package/dist/esm/middlewares/scroller/styles.d.ts +4 -0
  90. package/dist/esm/middlewares/scroller/styles.js +73 -0
  91. package/dist/esm/middlewares/scroller/types.d.ts +8 -6
  92. package/dist/esm/middlewares/scroller/types.js +1 -1
  93. package/dist/esm/middlewares/scroller/util.d.ts +6 -13
  94. package/dist/esm/middlewares/scroller/util.js +15 -144
  95. package/dist/esm/middlewares/selector/dom.d.ts +21 -0
  96. package/dist/esm/middlewares/selector/dom.js +395 -0
  97. package/dist/esm/middlewares/selector/draw-base.d.ts +9 -21
  98. package/dist/esm/middlewares/selector/draw-base.js +19 -43
  99. package/dist/esm/middlewares/selector/draw-reference.d.ts +4 -5
  100. package/dist/esm/middlewares/selector/draw-reference.js +5 -5
  101. package/dist/esm/middlewares/selector/index.d.ts +4 -2
  102. package/dist/esm/middlewares/selector/index.js +315 -439
  103. package/dist/esm/middlewares/selector/reference.d.ts +5 -5
  104. package/dist/esm/middlewares/selector/reference.js +36 -30
  105. package/dist/esm/middlewares/selector/render-frame.d.ts +11 -0
  106. package/dist/esm/middlewares/selector/render-frame.js +107 -0
  107. package/dist/esm/middlewares/selector/resize.d.ts +7 -0
  108. package/dist/esm/middlewares/selector/resize.js +27 -0
  109. package/dist/esm/middlewares/selector/static.d.ts +67 -0
  110. package/dist/esm/middlewares/selector/static.js +92 -0
  111. package/dist/esm/middlewares/selector/styles.d.ts +4 -0
  112. package/dist/esm/middlewares/selector/styles.js +153 -0
  113. package/dist/esm/middlewares/selector/types.d.ts +27 -27
  114. package/dist/esm/middlewares/selector/types.js +1 -1
  115. package/dist/esm/middlewares/selector/util.d.ts +22 -32
  116. package/dist/esm/middlewares/selector/util.js +226 -243
  117. package/dist/esm/middlewares/text-editor/dom.d.ts +5 -0
  118. package/dist/esm/middlewares/text-editor/dom.js +135 -0
  119. package/dist/esm/middlewares/text-editor/index.d.ts +5 -20
  120. package/dist/esm/middlewares/text-editor/index.js +201 -207
  121. package/dist/esm/middlewares/text-editor/static.d.ts +10 -0
  122. package/dist/esm/middlewares/text-editor/static.js +17 -0
  123. package/dist/esm/middlewares/text-editor/types.d.ts +21 -0
  124. package/dist/esm/middlewares/text-editor/types.js +1 -0
  125. package/dist/esm/record.d.ts +5 -5
  126. package/dist/esm/record.js +14 -14
  127. package/dist/esm/{config.d.ts → static.d.ts} +16 -0
  128. package/dist/esm/{config.js → static.js} +18 -2
  129. package/dist/index.global.js +8934 -5646
  130. package/dist/index.global.min.js +1 -1
  131. package/package.json +4 -4
  132. package/dist/esm/middlewares/info/config.d.ts +0 -5
  133. package/dist/esm/middlewares/layout-selector/config.d.ts +0 -11
  134. package/dist/esm/middlewares/layout-selector/config.js +0 -12
  135. package/dist/esm/middlewares/ruler/config.d.ts +0 -7
  136. package/dist/esm/middlewares/scroller/config.d.ts +0 -10
  137. package/dist/esm/middlewares/scroller/config.js +0 -16
  138. package/dist/esm/middlewares/selector/config.d.ts +0 -30
  139. package/dist/esm/middlewares/selector/config.js +0 -38
  140. package/dist/esm/middlewares/selector/draw-auxiliary.js +0 -12
  141. package/dist/esm/middlewares/selector/draw-debug.d.ts +0 -5
  142. package/dist/esm/middlewares/selector/draw-debug.js +0 -30
  143. package/dist/esm/middlewares/selector/draw-wrapper.d.ts +0 -37
  144. package/dist/esm/middlewares/selector/draw-wrapper.js +0 -139
  145. package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +0 -4
  146. package/dist/esm/middlewares/selector/pattern/icon-rotate.js +0 -88
  147. package/dist/esm/middlewares/selector/pattern/index.d.ts +0 -8
  148. package/dist/esm/middlewares/selector/pattern/index.js +0 -38
  149. /package/dist/esm/middlewares/{selector/draw-auxiliary.d.ts → path-creator/types.js} +0 -0
@@ -0,0 +1,10 @@
1
+ import type { MiddlewareTextEditorStyles, MiddlewareTextEditorConfig } from '@idraw/types';
2
+ export declare const key = "TEXT-EDITOR";
3
+ export declare const getRootClassName: () => string;
4
+ export declare const defaultStyles: MiddlewareTextEditorStyles;
5
+ export declare const classNameMap: {
6
+ textarea: string;
7
+ hide: string;
8
+ canvasWrapper: string;
9
+ };
10
+ export declare function getMiddlewareTextEditorStyles<C = MiddlewareTextEditorConfig, S = MiddlewareTextEditorStyles>(config: C): S;
@@ -0,0 +1,17 @@
1
+ import { createId, getMiddlewareValidStyles } from '@idraw/util';
2
+ export const key = 'TEXT-EDITOR';
3
+ const prefix = `idraw-middleware-text-editor`;
4
+ export const getRootClassName = () => `${prefix}-${createId()}`;
5
+ export const defaultStyles = {
6
+ zIndex: 1,
7
+ boxBorderColor: '#0c8ce9',
8
+ };
9
+ export const classNameMap = {
10
+ textarea: `${prefix}-textarea`,
11
+ hide: `${prefix}-hide`,
12
+ canvasWrapper: `${prefix}-canvas-wrapper`,
13
+ };
14
+ export function getMiddlewareTextEditorStyles(config) {
15
+ const styles = getMiddlewareValidStyles(config, ['zIndex', 'boxBorderColor']);
16
+ return styles;
17
+ }
@@ -0,0 +1,21 @@
1
+ import type { StrictMaterial, ViewScaleInfo, MaterialPosition, MiddlewareTextEditorStyles } from '@idraw/types';
2
+ import { coreEventKeys } from '../../static';
3
+ export type TextEditEvent = {
4
+ id: string;
5
+ };
6
+ export type InnerOptions = {
7
+ material: StrictMaterial<'text'>;
8
+ groupQueue: StrictMaterial<'group'>[];
9
+ viewScaleInfo: ViewScaleInfo;
10
+ styles: MiddlewareTextEditorStyles;
11
+ };
12
+ export type TextChangeEvent = {
13
+ material: {
14
+ id: string;
15
+ attributes: {
16
+ text: string;
17
+ };
18
+ };
19
+ position: MaterialPosition;
20
+ };
21
+ export type ExtendEventMap = Record<typeof coreEventKeys.TEXT_EDIT, TextEditEvent> & Record<typeof coreEventKeys.TEXT_CHANGE, TextChangeEvent>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
- import type { RecursivePartial, Element, ModifyRecord } from '@idraw/types';
2
- export declare function getModifyElementRecord(opts: {
3
- modifiedElement: RecursivePartial<Omit<Element, 'uuid'>> & Pick<Element, 'uuid'>;
4
- beforeElement: Element;
5
- }): ModifyRecord<'modifyElement'>;
1
+ import type { RecursivePartial, Material, ModifyRecord } from '@idraw/types';
2
+ export declare function getModifyMaterialRecord(opts: {
3
+ modifiedMaterial: RecursivePartial<Omit<Material, 'id'>> & Pick<Material, 'id'>;
4
+ beforeMaterial: Material;
5
+ }): ModifyRecord<'modifyMaterial'>;
@@ -9,30 +9,30 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { toFlattenElement, get } from '@idraw/util';
13
- export function getModifyElementRecord(opts) {
14
- const { modifiedElement, beforeElement } = opts;
15
- const { uuid } = modifiedElement, restElement = __rest(modifiedElement, ["uuid"]);
16
- const after = toFlattenElement(restElement);
12
+ import { toFlattenMaterial, get } from '@idraw/util';
13
+ export function getModifyMaterialRecord(opts) {
14
+ const { modifiedMaterial, beforeMaterial } = opts;
15
+ const { id } = modifiedMaterial, restMaterial = __rest(modifiedMaterial, ["id"]);
16
+ const after = toFlattenMaterial(restMaterial);
17
17
  let before = {};
18
18
  Object.keys(after).forEach((key) => {
19
- let val = get(beforeElement, key);
20
- if (val === undefined && /(borderRadius|borderWidth)\[[0-9]{1,}\]$/.test(key)) {
19
+ let val = get(beforeMaterial, key);
20
+ if (val === undefined && /(cornerRadius|strokeWidth)\[[0-9]{1,}\]$/.test(key)) {
21
21
  key = key.replace(/\[[0-9]{1,}\]$/, '');
22
- val = get(beforeElement, key);
22
+ val = get(beforeMaterial, key);
23
23
  }
24
24
  before[key] = val;
25
25
  });
26
- before = toFlattenElement(before);
26
+ before = toFlattenMaterial(before);
27
27
  const record = {
28
- type: 'modifyElement',
28
+ type: 'modifyMaterial',
29
29
  time: Date.now(),
30
30
  content: {
31
- method: 'modifyElement',
32
- uuid,
31
+ method: 'modifyMaterial',
32
+ id,
33
33
  before,
34
- after
35
- }
34
+ after,
35
+ },
36
36
  };
37
37
  return record;
38
38
  }
@@ -1,7 +1,10 @@
1
1
  export declare const EVENT_KEY_CHANGE = "change";
2
+ export declare const EVENT_KEY_CHANGING = "changing";
2
3
  export declare const EVENT_KEY_CURSOR = "cursor";
3
4
  export declare const EVENT_KEY_RULER = "ruler";
4
5
  export declare const EVENT_KEY_SCALE = "scale";
6
+ export declare const EVENT_KEY_CREATE = "create";
7
+ export declare const EVENT_KEY_CLEAR_CREATE = "clearCreate";
5
8
  export declare const EVENT_KEY_SELECT = "select";
6
9
  export declare const EVENT_KEY_SELECT_LAYOUT = "selectLayout";
7
10
  export declare const EVENT_KEY_CLEAR_SELECT = "clearSelect";
@@ -10,19 +13,32 @@ export declare const EVENT_KEY_TEXT_CHANGE = "textChange";
10
13
  export declare const EVENT_KEY_CONTEXT_MENU = "contextMenu";
11
14
  export declare const EVENT_KEY_SELECT_IN_GROUP = "selectInGroup";
12
15
  export declare const EVENT_KEY_SNAP_TO_GRID = "snapToGrid";
16
+ export declare const EVENT_KEY_PATH_EDIT = "pathEdit";
17
+ export declare const EVENT_CLEAR_PATH_EDIT = "clearPathEdit";
18
+ export declare const EVENT_KEY_PATH_CREATE = "pathCreate";
19
+ export declare const EVENT_CLEAR_PATH_CREATE = "clearPathCreate";
20
+ export declare const EVENT_KEY_MODE_CHANGE = "modeChange";
13
21
  export type CoreEventKeys = {
14
22
  CURSOR: typeof EVENT_KEY_CURSOR;
15
23
  CHANGE: typeof EVENT_KEY_CHANGE;
24
+ CHANGING: typeof EVENT_KEY_CHANGING;
16
25
  RULER: typeof EVENT_KEY_RULER;
17
26
  SCALE: typeof EVENT_KEY_SCALE;
18
27
  SELECT: typeof EVENT_KEY_SELECT;
19
28
  SELECT_LAYOUT: typeof EVENT_KEY_SELECT_LAYOUT;
20
29
  CLEAR_SELECT: typeof EVENT_KEY_CLEAR_SELECT;
30
+ CREATE: typeof EVENT_KEY_CREATE;
31
+ CLEAR_CREATE: typeof EVENT_KEY_CLEAR_CREATE;
21
32
  TEXT_EDIT: typeof EVENT_KEY_TEXT_EDIT;
22
33
  TEXT_CHANGE: typeof EVENT_KEY_TEXT_CHANGE;
23
34
  CONTEXT_MENU: typeof EVENT_KEY_CONTEXT_MENU;
24
35
  SELECT_IN_GROUP: typeof EVENT_KEY_SELECT_IN_GROUP;
25
36
  SNAP_TO_GRID: typeof EVENT_KEY_SELECT_IN_GROUP;
37
+ PATH_EDIT: typeof EVENT_KEY_PATH_EDIT;
38
+ CLEAR_PATH_EDIT: typeof EVENT_CLEAR_PATH_EDIT;
39
+ PATH_CREATE: typeof EVENT_KEY_PATH_CREATE;
40
+ CLEAR_PATH_CREATE: typeof EVENT_CLEAR_PATH_CREATE;
41
+ MODE_CHANGE: typeof EVENT_KEY_MODE_CHANGE;
26
42
  };
27
43
  declare const coreEventKeys: CoreEventKeys;
28
44
  export { coreEventKeys };
@@ -1,7 +1,10 @@
1
1
  export const EVENT_KEY_CHANGE = 'change';
2
+ export const EVENT_KEY_CHANGING = 'changing';
2
3
  export const EVENT_KEY_CURSOR = 'cursor';
3
4
  export const EVENT_KEY_RULER = 'ruler';
4
5
  export const EVENT_KEY_SCALE = 'scale';
6
+ export const EVENT_KEY_CREATE = 'create';
7
+ export const EVENT_KEY_CLEAR_CREATE = 'clearCreate';
5
8
  export const EVENT_KEY_SELECT = 'select';
6
9
  export const EVENT_KEY_SELECT_LAYOUT = 'selectLayout';
7
10
  export const EVENT_KEY_CLEAR_SELECT = 'clearSelect';
@@ -10,11 +13,19 @@ export const EVENT_KEY_TEXT_CHANGE = 'textChange';
10
13
  export const EVENT_KEY_CONTEXT_MENU = 'contextMenu';
11
14
  export const EVENT_KEY_SELECT_IN_GROUP = 'selectInGroup';
12
15
  export const EVENT_KEY_SNAP_TO_GRID = 'snapToGrid';
16
+ export const EVENT_KEY_PATH_EDIT = 'pathEdit';
17
+ export const EVENT_CLEAR_PATH_EDIT = 'clearPathEdit';
18
+ export const EVENT_KEY_PATH_CREATE = 'pathCreate';
19
+ export const EVENT_CLEAR_PATH_CREATE = 'clearPathCreate';
20
+ export const EVENT_KEY_MODE_CHANGE = 'modeChange';
13
21
  const innerEventKeys = {
14
22
  CURSOR: EVENT_KEY_CURSOR,
15
23
  CHANGE: EVENT_KEY_CHANGE,
24
+ CHANGING: EVENT_KEY_CHANGING,
16
25
  RULER: EVENT_KEY_RULER,
17
26
  SCALE: EVENT_KEY_SCALE,
27
+ CREATE: EVENT_KEY_CREATE,
28
+ CLEAR_CREATE: EVENT_KEY_CLEAR_CREATE,
18
29
  SELECT_LAYOUT: EVENT_KEY_SELECT_LAYOUT,
19
30
  SELECT: EVENT_KEY_SELECT,
20
31
  CLEAR_SELECT: EVENT_KEY_CLEAR_SELECT,
@@ -22,13 +33,18 @@ const innerEventKeys = {
22
33
  TEXT_CHANGE: EVENT_KEY_TEXT_CHANGE,
23
34
  CONTEXT_MENU: EVENT_KEY_CONTEXT_MENU,
24
35
  SELECT_IN_GROUP: EVENT_KEY_SELECT_IN_GROUP,
25
- SNAP_TO_GRID: EVENT_KEY_SELECT_IN_GROUP
36
+ SNAP_TO_GRID: EVENT_KEY_SELECT_IN_GROUP,
37
+ PATH_EDIT: EVENT_KEY_PATH_EDIT,
38
+ CLEAR_PATH_EDIT: EVENT_CLEAR_PATH_EDIT,
39
+ PATH_CREATE: EVENT_KEY_PATH_CREATE,
40
+ CLEAR_PATH_CREATE: EVENT_CLEAR_PATH_CREATE,
41
+ MODE_CHANGE: EVENT_KEY_MODE_CHANGE,
26
42
  };
27
43
  const coreEventKeys = {};
28
44
  Object.keys(innerEventKeys).forEach((keyName) => {
29
45
  Object.defineProperty(coreEventKeys, keyName, {
30
46
  value: innerEventKeys[keyName],
31
- writable: false
47
+ writable: false,
32
48
  });
33
49
  });
34
50
  export { coreEventKeys };