@plait/core 0.77.3 → 0.78.0

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 (108) hide show
  1. package/fesm2022/plait-core.mjs.map +1 -1
  2. package/package.json +1 -3
  3. package/esm2022/constants/cursor.mjs +0 -13
  4. package/esm2022/constants/index.mjs +0 -20
  5. package/esm2022/constants/keycodes.mjs +0 -127
  6. package/esm2022/constants/selection.mjs +0 -6
  7. package/esm2022/constants/zoom.mjs +0 -4
  8. package/esm2022/context.mjs +0 -23
  9. package/esm2022/core/element/context-change.mjs +0 -13
  10. package/esm2022/core/element/context.mjs +0 -2
  11. package/esm2022/core/element/element-flavour.mjs +0 -140
  12. package/esm2022/core/element/element-ref.mjs +0 -2
  13. package/esm2022/core/list-render.mjs +0 -217
  14. package/esm2022/differs/default_iterable_differ.mjs +0 -614
  15. package/esm2022/differs/iterable_differs.mjs +0 -9
  16. package/esm2022/interfaces/board.mjs +0 -108
  17. package/esm2022/interfaces/custom-types.mjs +0 -5
  18. package/esm2022/interfaces/direction.mjs +0 -8
  19. package/esm2022/interfaces/element.mjs +0 -43
  20. package/esm2022/interfaces/group.mjs +0 -6
  21. package/esm2022/interfaces/history.mjs +0 -5
  22. package/esm2022/interfaces/index.mjs +0 -19
  23. package/esm2022/interfaces/node.mjs +0 -57
  24. package/esm2022/interfaces/operation.mjs +0 -96
  25. package/esm2022/interfaces/path-ref.mjs +0 -15
  26. package/esm2022/interfaces/path.mjs +0 -183
  27. package/esm2022/interfaces/plugin.mjs +0 -6
  28. package/esm2022/interfaces/point.mjs +0 -27
  29. package/esm2022/interfaces/pointer.mjs +0 -6
  30. package/esm2022/interfaces/rectangle-client.mjs +0 -171
  31. package/esm2022/interfaces/selection.mjs +0 -13
  32. package/esm2022/interfaces/svg-arc-command.mjs +0 -2
  33. package/esm2022/interfaces/theme.mjs +0 -49
  34. package/esm2022/interfaces/viewport.mjs +0 -7
  35. package/esm2022/plait-core.mjs +0 -5
  36. package/esm2022/plugins/create-board.mjs +0 -122
  37. package/esm2022/plugins/index.mjs +0 -11
  38. package/esm2022/plugins/with-board.mjs +0 -20
  39. package/esm2022/plugins/with-hand.mjs +0 -113
  40. package/esm2022/plugins/with-history.mjs +0 -91
  41. package/esm2022/plugins/with-hotkey.mjs +0 -96
  42. package/esm2022/plugins/with-i18n.mjs +0 -13
  43. package/esm2022/plugins/with-moving.mjs +0 -282
  44. package/esm2022/plugins/with-options.mjs +0 -13
  45. package/esm2022/plugins/with-related-fragment.mjs +0 -23
  46. package/esm2022/plugins/with-selection.mjs +0 -230
  47. package/esm2022/public-api.mjs +0 -16
  48. package/esm2022/testing/core/create-board.mjs +0 -15
  49. package/esm2022/testing/core/fake-weak-map.mjs +0 -18
  50. package/esm2022/testing/core/index.mjs +0 -3
  51. package/esm2022/testing/fake-events/event-objects.mjs +0 -131
  52. package/esm2022/testing/fake-events/index.mjs +0 -2
  53. package/esm2022/testing/index.mjs +0 -3
  54. package/esm2022/testing/test-element.mjs +0 -9
  55. package/esm2022/transforms/board.mjs +0 -137
  56. package/esm2022/transforms/element.mjs +0 -22
  57. package/esm2022/transforms/general.mjs +0 -146
  58. package/esm2022/transforms/group.mjs +0 -64
  59. package/esm2022/transforms/index.mjs +0 -17
  60. package/esm2022/transforms/node.mjs +0 -37
  61. package/esm2022/transforms/selection.mjs +0 -26
  62. package/esm2022/transforms/theme.mjs +0 -8
  63. package/esm2022/transforms/viewport.mjs +0 -8
  64. package/esm2022/transforms/z-index.mjs +0 -20
  65. package/esm2022/utils/angle.mjs +0 -164
  66. package/esm2022/utils/board.mjs +0 -18
  67. package/esm2022/utils/clipboard/clipboard.mjs +0 -40
  68. package/esm2022/utils/clipboard/common.mjs +0 -82
  69. package/esm2022/utils/clipboard/data-transfer.mjs +0 -33
  70. package/esm2022/utils/clipboard/index.mjs +0 -3
  71. package/esm2022/utils/clipboard/navigator-clipboard.mjs +0 -71
  72. package/esm2022/utils/clipboard/types.mjs +0 -13
  73. package/esm2022/utils/common.mjs +0 -79
  74. package/esm2022/utils/debug.mjs +0 -91
  75. package/esm2022/utils/dnd.mjs +0 -8
  76. package/esm2022/utils/dom/common.mjs +0 -75
  77. package/esm2022/utils/dom/environment.mjs +0 -2
  78. package/esm2022/utils/dom/foreign.mjs +0 -26
  79. package/esm2022/utils/dom/index.mjs +0 -4
  80. package/esm2022/utils/drawing/arrow.mjs +0 -23
  81. package/esm2022/utils/drawing/circle.mjs +0 -4
  82. package/esm2022/utils/drawing/line.mjs +0 -47
  83. package/esm2022/utils/drawing/rectangle.mjs +0 -36
  84. package/esm2022/utils/element.mjs +0 -90
  85. package/esm2022/utils/environment.mjs +0 -14
  86. package/esm2022/utils/fragment.mjs +0 -27
  87. package/esm2022/utils/group.mjs +0 -239
  88. package/esm2022/utils/helper.mjs +0 -68
  89. package/esm2022/utils/history.mjs +0 -96
  90. package/esm2022/utils/hotkeys.mjs +0 -109
  91. package/esm2022/utils/id-creator.mjs +0 -11
  92. package/esm2022/utils/index.mjs +0 -35
  93. package/esm2022/utils/iterable.mjs +0 -32
  94. package/esm2022/utils/math.mjs +0 -480
  95. package/esm2022/utils/mobile.mjs +0 -6
  96. package/esm2022/utils/moving-element.mjs +0 -17
  97. package/esm2022/utils/pointer.mjs +0 -13
  98. package/esm2022/utils/position.mjs +0 -9
  99. package/esm2022/utils/selected-element.mjs +0 -145
  100. package/esm2022/utils/selection.mjs +0 -151
  101. package/esm2022/utils/snap/snap-moving.mjs +0 -199
  102. package/esm2022/utils/snap/snap.mjs +0 -211
  103. package/esm2022/utils/to-image.mjs +0 -204
  104. package/esm2022/utils/to-point.mjs +0 -74
  105. package/esm2022/utils/tree.mjs +0 -22
  106. package/esm2022/utils/viewport.mjs +0 -227
  107. package/esm2022/utils/weak-maps.mjs +0 -27
  108. package/esm2022/utils/z-index.mjs +0 -166
@@ -1,183 +0,0 @@
1
- export const Path = {
2
- /**
3
- * Get a list of ancestor paths for a given path.
4
- *
5
- * The paths are sorted from shallowest to deepest ancestor. However, if the
6
- * `reverse: true` option is passed, they are reversed.
7
- */
8
- ancestors(path, options = {}) {
9
- const { reverse = false } = options;
10
- let paths = Path.levels(path, options);
11
- if (reverse) {
12
- paths = paths.slice(1);
13
- }
14
- else {
15
- paths = paths.slice(0, -1);
16
- }
17
- return paths;
18
- },
19
- /**
20
- * Get a list of paths at every level down to a path. Note: this is the same
21
- * as `Path.ancestors`, but including the path itself.
22
- *
23
- * The paths are sorted from shallowest to deepest. However, if the `reverse:
24
- * true` option is passed, they are reversed.
25
- */
26
- levels(path, options = {}) {
27
- const { reverse = false } = options;
28
- const list = [];
29
- for (let i = 0; i <= path.length; i++) {
30
- list.push(path.slice(0, i));
31
- }
32
- if (reverse) {
33
- list.reverse();
34
- }
35
- return list;
36
- },
37
- parent(path) {
38
- if (path.length === 0) {
39
- throw new Error(`Cannot get the parent path of the root path [${path}].`);
40
- }
41
- return path.slice(0, -1);
42
- },
43
- next(path) {
44
- if (path.length === 0) {
45
- throw new Error(`Cannot get the next path of a root path [${path}], because it has no next index.`);
46
- }
47
- const last = path[path.length - 1];
48
- return path.slice(0, -1).concat(last + 1);
49
- },
50
- hasPrevious(path) {
51
- return path[path.length - 1] > 0;
52
- },
53
- previous(path) {
54
- if (path.length === 0) {
55
- throw new Error(`Cannot get the previous path of a root path [${path}], because it has no previous index.`);
56
- }
57
- const last = path[path.length - 1];
58
- if (last <= 0) {
59
- throw new Error(`Cannot get the previous path of a first child path [${path}] because it would result in a negative index.`);
60
- }
61
- return path.slice(0, -1).concat(last - 1);
62
- },
63
- /**
64
- * Check if a path is an ancestor of another.
65
- */
66
- isAncestor(path, another) {
67
- return path.length < another.length && Path.compare(path, another) === 0;
68
- },
69
- /**
70
- * Compare a path to another, returning an integer indicating whether the path
71
- * was before, at, or after the other.
72
- *
73
- * Note: Two paths of unequal length can still receive a `0` result if one is
74
- * directly above or below the other. If you want exact matching, use
75
- * [[Path.equals]] instead.
76
- */
77
- compare(path, another) {
78
- const min = Math.min(path.length, another.length);
79
- for (let i = 0; i < min; i++) {
80
- if (path[i] < another[i])
81
- return -1;
82
- if (path[i] > another[i])
83
- return 1;
84
- }
85
- return 0;
86
- },
87
- /**
88
- * Check if a path is exactly equal to another.
89
- */
90
- equals(path, another) {
91
- return path.length === another.length && path.every((n, i) => n === another[i]);
92
- },
93
- /**
94
- * Check if a path ends before one of the indexes in another.
95
- */
96
- endsBefore(path, another) {
97
- const i = path.length - 1;
98
- const as = path.slice(0, i);
99
- const bs = another.slice(0, i);
100
- const av = path[i];
101
- const bv = another[i];
102
- return Path.equals(as, bs) && av < bv;
103
- },
104
- /**
105
- * Check if a path is a sibling of another.
106
- */
107
- isSibling(path, another) {
108
- if (path.length !== another.length) {
109
- return false;
110
- }
111
- const as = path.slice(0, -1);
112
- const bs = another.slice(0, -1);
113
- const al = path[path.length - 1];
114
- const bl = another[another.length - 1];
115
- return al !== bl && Path.equals(as, bs);
116
- },
117
- transform(path, operation) {
118
- if (!path)
119
- return null;
120
- // PERF: use destructing instead of immer
121
- const p = [...path];
122
- // PERF: Exit early if the operation is guaranteed not to have an effect.
123
- if (path.length === 0) {
124
- return p;
125
- }
126
- switch (operation.type) {
127
- case 'insert_node': {
128
- const { path: op } = operation;
129
- if (Path.equals(op, p) || Path.endsBefore(op, p) || Path.isAncestor(op, p)) {
130
- p[op.length - 1] += 1;
131
- }
132
- break;
133
- }
134
- case 'remove_node': {
135
- const { path: op } = operation;
136
- if (Path.equals(op, p) || Path.isAncestor(op, p)) {
137
- return null;
138
- }
139
- else if (Path.endsBefore(op, p)) {
140
- p[op.length - 1] -= 1;
141
- }
142
- break;
143
- }
144
- case 'move_node': {
145
- const { path: op, newPath: onp } = operation;
146
- // If the old and new path are the same, it's a no-op.
147
- if (Path.equals(op, onp)) {
148
- return p;
149
- }
150
- if (Path.isAncestor(op, p) || Path.equals(op, p)) {
151
- const copy = onp.slice();
152
- if (Path.endsBefore(op, onp) && op.length < onp.length) {
153
- copy[op.length - 1] -= 1;
154
- }
155
- return copy.concat(p.slice(op.length));
156
- }
157
- else if (Path.isSibling(op, onp) && (Path.isAncestor(onp, p) || Path.equals(onp, p))) {
158
- if (Path.endsBefore(op, p)) {
159
- p[op.length - 1] -= 1;
160
- }
161
- else {
162
- p[op.length - 1] += 1;
163
- }
164
- }
165
- else if (Path.endsBefore(onp, p) || Path.equals(onp, p) || Path.isAncestor(onp, p)) {
166
- if (Path.endsBefore(op, p)) {
167
- p[op.length - 1] -= 1;
168
- }
169
- p[onp.length - 1] += 1;
170
- }
171
- else if (Path.endsBefore(op, p)) {
172
- if (Path.equals(onp, p)) {
173
- p[onp.length - 1] += 1;
174
- }
175
- p[op.length - 1] -= 1;
176
- }
177
- break;
178
- }
179
- }
180
- return p;
181
- }
182
- };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZXMvcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7SUFDaEI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsSUFBVSxFQUFFLFVBQTZCLEVBQUU7UUFDakQsTUFBTSxFQUFFLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsSUFBVSxFQUFFLFVBQTZCLEVBQUU7UUFDOUMsTUFBTSxFQUFFLE9BQU8sR0FBRyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQVcsRUFBRSxDQUFDO1FBRXhCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVU7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBVTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxJQUFJLGtDQUFrQyxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsSUFBSSxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ2hILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVuQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELElBQUksZ0RBQWdELENBQUMsQ0FBQztRQUNqSSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNEOztPQUVHO0lBRUgsVUFBVSxDQUFDLElBQVUsRUFBRSxPQUFhO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0Q7Ozs7Ozs7T0FPRztJQUNILE9BQU8sQ0FBQyxJQUFVLEVBQUUsT0FBYTtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFFSCxNQUFNLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0Q7O09BRUc7SUFFSCxVQUFVLENBQUMsSUFBVSxFQUFFLE9BQWE7UUFDaEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLElBQVUsRUFBRSxPQUFhO1FBQy9CLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFNBQVMsQ0FBQyxJQUFpQixFQUFFLFNBQXlCO1FBQ2xELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIseUNBQXlDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVwQix5RUFBeUU7UUFDekUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUVELFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDakIsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUM7Z0JBRS9CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDekUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixDQUFDO2dCQUVELE1BQU07WUFDVixDQUFDO1lBRUQsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMvQyxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztnQkFFRCxNQUFNO1lBQ1YsQ0FBQztZQUVELEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUU3QyxzREFBc0Q7Z0JBQ3RELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxDQUFDLENBQUM7Z0JBQ2IsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFFekIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QixDQUFDO29CQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JGLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDekIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixDQUFDO3lCQUFNLENBQUM7d0JBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixDQUFDO2dCQUNMLENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3pCLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztvQkFFRCxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3RCLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsQ0FBQztvQkFFRCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7Z0JBRUQsTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0T3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGhMZXZlbHNPcHRpb25zIHtcbiAgICByZXZlcnNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUGF0aCA9IG51bWJlcltdO1xuXG5leHBvcnQgY29uc3QgUGF0aCA9IHtcbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIGFuY2VzdG9yIHBhdGhzIGZvciBhIGdpdmVuIHBhdGguXG4gICAgICpcbiAgICAgKiBUaGUgcGF0aHMgYXJlIHNvcnRlZCBmcm9tIHNoYWxsb3dlc3QgdG8gZGVlcGVzdCBhbmNlc3Rvci4gSG93ZXZlciwgaWYgdGhlXG4gICAgICogYHJldmVyc2U6IHRydWVgIG9wdGlvbiBpcyBwYXNzZWQsIHRoZXkgYXJlIHJldmVyc2VkLlxuICAgICAqL1xuICAgIGFuY2VzdG9ycyhwYXRoOiBQYXRoLCBvcHRpb25zOiBQYXRoTGV2ZWxzT3B0aW9ucyA9IHt9KTogUGF0aFtdIHtcbiAgICAgICAgY29uc3QgeyByZXZlcnNlID0gZmFsc2UgfSA9IG9wdGlvbnM7XG4gICAgICAgIGxldCBwYXRocyA9IFBhdGgubGV2ZWxzKHBhdGgsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICBwYXRocyA9IHBhdGhzLnNsaWNlKDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0aHMgPSBwYXRocy5zbGljZSgwLCAtMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aHM7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaXN0IG9mIHBhdGhzIGF0IGV2ZXJ5IGxldmVsIGRvd24gdG8gYSBwYXRoLiBOb3RlOiB0aGlzIGlzIHRoZSBzYW1lXG4gICAgICogYXMgYFBhdGguYW5jZXN0b3JzYCwgYnV0IGluY2x1ZGluZyB0aGUgcGF0aCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBUaGUgcGF0aHMgYXJlIHNvcnRlZCBmcm9tIHNoYWxsb3dlc3QgdG8gZGVlcGVzdC4gSG93ZXZlciwgaWYgdGhlIGByZXZlcnNlOlxuICAgICAqIHRydWVgIG9wdGlvbiBpcyBwYXNzZWQsIHRoZXkgYXJlIHJldmVyc2VkLlxuICAgICAqL1xuICAgIGxldmVscyhwYXRoOiBQYXRoLCBvcHRpb25zOiBQYXRoTGV2ZWxzT3B0aW9ucyA9IHt9KTogUGF0aFtdIHtcbiAgICAgICAgY29uc3QgeyByZXZlcnNlID0gZmFsc2UgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGxpc3Q6IFBhdGhbXSA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxpc3QucHVzaChwYXRoLnNsaWNlKDAsIGkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICBsaXN0LnJldmVyc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sXG4gICAgcGFyZW50KHBhdGg6IFBhdGgpOiBQYXRoIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgdGhlIHBhcmVudCBwYXRoIG9mIHRoZSByb290IHBhdGggWyR7cGF0aH1dLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgLTEpO1xuICAgIH0sXG4gICAgbmV4dChwYXRoOiBQYXRoKTogUGF0aCB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBuZXh0IHBhdGggb2YgYSByb290IHBhdGggWyR7cGF0aH1dLCBiZWNhdXNlIGl0IGhhcyBubyBuZXh0IGluZGV4LmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKS5jb25jYXQobGFzdCArIDEpO1xuICAgIH0sXG4gICAgaGFzUHJldmlvdXMocGF0aDogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcGF0aFtwYXRoLmxlbmd0aCAtIDFdID4gMDtcbiAgICB9LFxuICAgIHByZXZpb3VzKHBhdGg6IFBhdGgpOiBQYXRoIHtcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgdGhlIHByZXZpb3VzIHBhdGggb2YgYSByb290IHBhdGggWyR7cGF0aH1dLCBiZWNhdXNlIGl0IGhhcyBubyBwcmV2aW91cyBpbmRleC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgaWYgKGxhc3QgPD0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZ2V0IHRoZSBwcmV2aW91cyBwYXRoIG9mIGEgZmlyc3QgY2hpbGQgcGF0aCBbJHtwYXRofV0gYmVjYXVzZSBpdCB3b3VsZCByZXN1bHQgaW4gYSBuZWdhdGl2ZSBpbmRleC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKS5jb25jYXQobGFzdCAtIDEpO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGlzIGFuIGFuY2VzdG9yIG9mIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBpc0FuY2VzdG9yKHBhdGg6IFBhdGgsIGFub3RoZXI6IFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgYW5vdGhlci5sZW5ndGggJiYgUGF0aC5jb21wYXJlKHBhdGgsIGFub3RoZXIpID09PSAwO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ29tcGFyZSBhIHBhdGggdG8gYW5vdGhlciwgcmV0dXJuaW5nIGFuIGludGVnZXIgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBwYXRoXG4gICAgICogd2FzIGJlZm9yZSwgYXQsIG9yIGFmdGVyIHRoZSBvdGhlci5cbiAgICAgKlxuICAgICAqIE5vdGU6IFR3byBwYXRocyBvZiB1bmVxdWFsIGxlbmd0aCBjYW4gc3RpbGwgcmVjZWl2ZSBhIGAwYCByZXN1bHQgaWYgb25lIGlzXG4gICAgICogZGlyZWN0bHkgYWJvdmUgb3IgYmVsb3cgdGhlIG90aGVyLiBJZiB5b3Ugd2FudCBleGFjdCBtYXRjaGluZywgdXNlXG4gICAgICogW1tQYXRoLmVxdWFsc11dIGluc3RlYWQuXG4gICAgICovXG4gICAgY29tcGFyZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogLTEgfCAwIHwgMSB7XG4gICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHBhdGgubGVuZ3RoLCBhbm90aGVyLmxlbmd0aCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhdGhbaV0gPCBhbm90aGVyW2ldKSByZXR1cm4gLTE7XG4gICAgICAgICAgICBpZiAocGF0aFtpXSA+IGFub3RoZXJbaV0pIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBleGFjdGx5IGVxdWFsIHRvIGFub3RoZXIuXG4gICAgICovXG5cbiAgICBlcXVhbHMocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcGF0aC5sZW5ndGggPT09IGFub3RoZXIubGVuZ3RoICYmIHBhdGguZXZlcnkoKG4sIGkpID0+IG4gPT09IGFub3RoZXJbaV0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBwYXRoIGVuZHMgYmVmb3JlIG9uZSBvZiB0aGUgaW5kZXhlcyBpbiBhbm90aGVyLlxuICAgICAqL1xuXG4gICAgZW5kc0JlZm9yZShwYXRoOiBQYXRoLCBhbm90aGVyOiBQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGkgPSBwYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGFzID0gcGF0aC5zbGljZSgwLCBpKTtcbiAgICAgICAgY29uc3QgYnMgPSBhbm90aGVyLnNsaWNlKDAsIGkpO1xuICAgICAgICBjb25zdCBhdiA9IHBhdGhbaV07XG4gICAgICAgIGNvbnN0IGJ2ID0gYW5vdGhlcltpXTtcbiAgICAgICAgcmV0dXJuIFBhdGguZXF1YWxzKGFzLCBicykgJiYgYXYgPCBidjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGF0aCBpcyBhIHNpYmxpbmcgb2YgYW5vdGhlci5cbiAgICAgKi9cbiAgICBpc1NpYmxpbmcocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggIT09IGFub3RoZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcyA9IHBhdGguc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBicyA9IGFub3RoZXIuc2xpY2UoMCwgLTEpO1xuICAgICAgICBjb25zdCBhbCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgYmwgPSBhbm90aGVyW2Fub3RoZXIubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBhbCAhPT0gYmwgJiYgUGF0aC5lcXVhbHMoYXMsIGJzKTtcbiAgICB9LFxuICAgIHRyYW5zZm9ybShwYXRoOiBQYXRoIHwgbnVsbCwgb3BlcmF0aW9uOiBQbGFpdE9wZXJhdGlvbik6IFBhdGggfCBudWxsIHtcbiAgICAgICAgaWYgKCFwYXRoKSByZXR1cm4gbnVsbDtcbiAgICAgICAgLy8gUEVSRjogdXNlIGRlc3RydWN0aW5nIGluc3RlYWQgb2YgaW1tZXJcbiAgICAgICAgY29uc3QgcCA9IFsuLi5wYXRoXTtcblxuICAgICAgICAvLyBQRVJGOiBFeGl0IGVhcmx5IGlmIHRoZSBvcGVyYXRpb24gaXMgZ3VhcmFudGVlZCBub3QgdG8gaGF2ZSBhbiBlZmZlY3QuXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHA7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnNlcnRfbm9kZSc6IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHBhdGg6IG9wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIHApIHx8IFBhdGguZW5kc0JlZm9yZShvcCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aDogb3AgfSA9IG9wZXJhdGlvbjtcblxuICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvcCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9wLCBwKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXRoOiBvcCwgbmV3UGF0aDogb25wIH0gPSBvcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb2xkIGFuZCBuZXcgcGF0aCBhcmUgdGhlIHNhbWUsIGl0J3MgYSBuby1vcC5cbiAgICAgICAgICAgICAgICBpZiAoUGF0aC5lcXVhbHMob3AsIG9ucCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFBhdGguaXNBbmNlc3RvcihvcCwgcCkgfHwgUGF0aC5lcXVhbHMob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSBvbnAuc2xpY2UoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoUGF0aC5lbmRzQmVmb3JlKG9wLCBvbnApICYmIG9wLmxlbmd0aCA8IG9ucC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3B5LmNvbmNhdChwLnNsaWNlKG9wLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGF0aC5pc1NpYmxpbmcob3AsIG9ucCkgJiYgKFBhdGguaXNBbmNlc3RvcihvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwW29wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGguZW5kc0JlZm9yZShvbnAsIHApIHx8IFBhdGguZXF1YWxzKG9ucCwgcCkgfHwgUGF0aC5pc0FuY2VzdG9yKG9ucCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFBhdGguZW5kc0JlZm9yZShvcCwgcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbb3AubGVuZ3RoIC0gMV0gLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBbb25wLmxlbmd0aCAtIDFdICs9IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoLmVuZHNCZWZvcmUob3AsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQYXRoLmVxdWFscyhvbnAsIHApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwW29ucC5sZW5ndGggLSAxXSArPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcFtvcC5sZW5ndGggLSAxXSAtPSAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwO1xuICAgIH1cbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- export var PlaitPluginKey;
2
- (function (PlaitPluginKey) {
3
- PlaitPluginKey["withSelection"] = "withSelection";
4
- PlaitPluginKey["withHand"] = "withHand";
5
- })(PlaitPluginKey || (PlaitPluginKey = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvaW50ZXJmYWNlcy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsaURBQWlDLENBQUE7SUFDakMsdUNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4vYm9hcmQnO1xuXG5leHBvcnQgdHlwZSBQbGFpdFBsdWdpbiA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4gUGxhaXRCb2FyZDtcblxuZXhwb3J0IGludGVyZmFjZSBXaXRoUGx1Z2luT3B0aW9ucyB7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhTZWxlY3Rpb25QbHVnaW5PcHRpb25zIGV4dGVuZHMgV2l0aFBsdWdpbk9wdGlvbnMge1xuICAgIGlzTXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZFNlbGVjdGlvbjogYm9vbGVhbjtcbiAgICBpc1ByZXZlbnRDbGVhclNlbGVjdGlvbjogYm9vbGVhbjsgLy8gaXMgY2xlYXIgc2VsZWN0aW9uIG9uIGNsaWNrIG91dHNpZGUgb2YgYm9hcmQgY29udGFpbmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aEhhbmRQbHVnaW5PcHRpb25zIGV4dGVuZHMgV2l0aFBsdWdpbk9wdGlvbnMge1xuICAgIGlzSGFuZE1vZGU6IChib2FyZDogUGxhaXRCb2FyZCwgZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gUGxhaXRQbHVnaW5LZXkge1xuICAgICd3aXRoU2VsZWN0aW9uJyA9ICd3aXRoU2VsZWN0aW9uJyxcbiAgICAnd2l0aEhhbmQnID0gJ3dpdGhIYW5kJ1xufVxuIl19
@@ -1,27 +0,0 @@
1
- export const Point = {
2
- isEquals(point, otherPoint) {
3
- return point && otherPoint && point[0] === otherPoint[0] && point[1] === otherPoint[1];
4
- },
5
- isHorizontal(point, otherPoint, tolerance = 0) {
6
- return point && otherPoint && Point.isOverHorizontal([point, otherPoint], tolerance);
7
- },
8
- isOverHorizontal(points, tolerance = 0) {
9
- return points.every(point => Math.abs(point[1] - points[0][1]) <= tolerance);
10
- },
11
- isVertical(point, otherPoint, tolerance = 0) {
12
- return point && otherPoint && Point.isOverVertical([point, otherPoint], tolerance);
13
- },
14
- isOverVertical(points, tolerance = 0) {
15
- return points.every(point => Math.abs(point[0] - points[0][0]) <= tolerance);
16
- },
17
- isAlign(points, tolerance = 0) {
18
- return Point.isOverHorizontal(points, tolerance) || Point.isOverVertical(points, tolerance);
19
- },
20
- getOffsetX(point1, point2) {
21
- return point2[0] - point1[0];
22
- },
23
- getOffsetY(point1, point2) {
24
- return point2[1] - point1[1];
25
- }
26
- };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbnRlcmZhY2VzL3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNqQixRQUFRLENBQUMsS0FBYSxFQUFFLFVBQWtCO1FBQ3RDLE9BQU8sS0FBSyxJQUFJLFVBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFhLEVBQUUsVUFBa0IsRUFBRSxTQUFTLEdBQUcsQ0FBQztRQUN6RCxPQUFPLEtBQUssSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsWUFBb0IsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQWEsRUFBRSxVQUFrQixFQUFFLFNBQVMsR0FBRyxDQUFDO1FBQ3ZELE9BQU8sS0FBSyxJQUFJLFVBQVUsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxjQUFjLENBQUMsTUFBZSxFQUFFLFlBQW9CLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNELE9BQU8sQ0FBQyxNQUFlLEVBQUUsWUFBb0IsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFhLEVBQUUsTUFBYTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFhLEVBQUUsTUFBYTtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQb2ludCA9IFtudW1iZXIsIG51bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgWFlQb3NpdGlvbiB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFBvaW50ID0ge1xuICAgIGlzRXF1YWxzKHBvaW50PzogUG9pbnQsIG90aGVyUG9pbnQ/OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gcG9pbnQgJiYgb3RoZXJQb2ludCAmJiBwb2ludFswXSA9PT0gb3RoZXJQb2ludFswXSAmJiBwb2ludFsxXSA9PT0gb3RoZXJQb2ludFsxXTtcbiAgICB9LFxuICAgIGlzSG9yaXpvbnRhbChwb2ludD86IFBvaW50LCBvdGhlclBvaW50PzogUG9pbnQsIHRvbGVyYW5jZSA9IDApIHtcbiAgICAgICAgcmV0dXJuIHBvaW50ICYmIG90aGVyUG9pbnQgJiYgUG9pbnQuaXNPdmVySG9yaXpvbnRhbChbcG9pbnQsIG90aGVyUG9pbnRdLCB0b2xlcmFuY2UpO1xuICAgIH0sXG4gICAgaXNPdmVySG9yaXpvbnRhbChwb2ludHM6IFBvaW50W10sIHRvbGVyYW5jZTogbnVtYmVyID0gMCkge1xuICAgICAgICByZXR1cm4gcG9pbnRzLmV2ZXJ5KHBvaW50ID0+IE1hdGguYWJzKHBvaW50WzFdIC0gcG9pbnRzWzBdWzFdKSA8PSB0b2xlcmFuY2UpO1xuICAgIH0sXG4gICAgaXNWZXJ0aWNhbChwb2ludD86IFBvaW50LCBvdGhlclBvaW50PzogUG9pbnQsIHRvbGVyYW5jZSA9IDApIHtcbiAgICAgICAgcmV0dXJuIHBvaW50ICYmIG90aGVyUG9pbnQgJiYgUG9pbnQuaXNPdmVyVmVydGljYWwoW3BvaW50LCBvdGhlclBvaW50XSwgdG9sZXJhbmNlKTtcbiAgICB9LFxuICAgIGlzT3ZlclZlcnRpY2FsKHBvaW50czogUG9pbnRbXSwgdG9sZXJhbmNlOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHJldHVybiBwb2ludHMuZXZlcnkocG9pbnQgPT4gTWF0aC5hYnMocG9pbnRbMF0gLSBwb2ludHNbMF1bMF0pIDw9IHRvbGVyYW5jZSk7XG4gICAgfSxcbiAgICBpc0FsaWduKHBvaW50czogUG9pbnRbXSwgdG9sZXJhbmNlOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHJldHVybiBQb2ludC5pc092ZXJIb3Jpem9udGFsKHBvaW50cywgdG9sZXJhbmNlKSB8fCBQb2ludC5pc092ZXJWZXJ0aWNhbChwb2ludHMsIHRvbGVyYW5jZSk7XG4gICAgfSxcbiAgICBnZXRPZmZzZXRYKHBvaW50MTogUG9pbnQsIHBvaW50MjogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHBvaW50MlswXSAtIHBvaW50MVswXTtcbiAgICB9LFxuICAgIGdldE9mZnNldFkocG9pbnQxOiBQb2ludCwgcG9pbnQyOiBQb2ludCkge1xuICAgICAgICByZXR1cm4gcG9pbnQyWzFdIC0gcG9pbnQxWzFdO1xuICAgIH1cbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- export var PlaitPointerType;
2
- (function (PlaitPointerType) {
3
- PlaitPointerType["hand"] = "hand";
4
- PlaitPointerType["selection"] = "selection";
5
- })(PlaitPointerType || (PlaitPointerType = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZXMvcG9pbnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFlLENBQUE7SUFDZiwyQ0FBeUIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFBsYWl0UG9pbnRlclR5cGUge1xuICAgICdoYW5kJyA9ICdoYW5kJyxcbiAgICAnc2VsZWN0aW9uJyA9ICdzZWxlY3Rpb24nXG59XG4iXX0=
@@ -1,171 +0,0 @@
1
- export const RectangleClient = {
2
- isHit: (origin, target) => {
3
- return RectangleClient.isHitX(origin, target) && RectangleClient.isHitY(origin, target);
4
- },
5
- isHitX: (origin, target) => {
6
- const minX = origin.x < target.x ? origin.x : target.x;
7
- const maxX = origin.x + origin.width > target.x + target.width ? origin.x + origin.width : target.x + target.width;
8
- // float calculate error( eg: 1.4210854715202004e-14 > 0)
9
- if (Math.floor(maxX - minX - origin.width - target.width) <= 0) {
10
- return true;
11
- }
12
- else {
13
- return false;
14
- }
15
- },
16
- isHitY: (origin, target) => {
17
- const minY = origin.y < target.y ? origin.y : target.y;
18
- const maxY = origin.y + origin.height > target.y + target.height ? origin.y + origin.height : target.y + target.height;
19
- // float calculate error( eg: 1.4210854715202004e-14 > 0)
20
- if (Math.floor(maxY - minY - origin.height - target.height) <= 0) {
21
- return true;
22
- }
23
- else {
24
- return false;
25
- }
26
- },
27
- getPoints(rectangle) {
28
- return [
29
- [rectangle.x, rectangle.y],
30
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height]
31
- ];
32
- },
33
- getRectangleByCenterPoint(point, width, height) {
34
- return RectangleClient.getRectangleByPoint([point[0] - width / 2, point[1] - height / 2], width, height);
35
- },
36
- getRectangleByPoint(point, width, height) {
37
- return {
38
- x: point[0],
39
- y: point[1],
40
- width,
41
- height
42
- };
43
- },
44
- getRectangleByPoints(points) {
45
- if (isPointArray(points)) {
46
- points = [points];
47
- }
48
- let xMin = Infinity;
49
- let yMin = Infinity;
50
- let xMax = -Infinity;
51
- let yMax = -Infinity;
52
- for (const point of points) {
53
- const xArray = point.map(ele => ele[0]);
54
- const yArray = point.map(ele => ele[1]);
55
- xMin = Math.min(xMin, ...xArray);
56
- yMin = Math.min(yMin, ...yArray);
57
- xMax = Math.max(xMax, ...xArray);
58
- yMin = Math.min(yMin, ...yArray);
59
- yMax = Math.max(yMax, ...yArray);
60
- }
61
- const rect = { x: xMin, y: yMin, width: xMax - xMin, height: yMax - yMin };
62
- return rect;
63
- },
64
- getCornerPointsByPoints(points) {
65
- const xArray = points.map(ele => ele[0]);
66
- const yArray = points.map(ele => ele[1]);
67
- const xMin = Math.min(...xArray);
68
- const xMax = Math.max(...xArray);
69
- const yMin = Math.min(...yArray);
70
- const yMax = Math.max(...yArray);
71
- return [
72
- [xMin, yMin],
73
- [xMax, yMin],
74
- [xMax, yMax],
75
- [xMin, yMax]
76
- ];
77
- },
78
- getOutlineRectangle: (rectangle, offset) => {
79
- return {
80
- x: rectangle.x + offset,
81
- y: rectangle.y + offset,
82
- width: rectangle.width - offset * 2,
83
- height: rectangle.height - offset * 2
84
- };
85
- },
86
- inflate: (rectangle, delta) => {
87
- const half = delta / 2;
88
- return {
89
- x: rectangle.x - half,
90
- y: rectangle.y - half,
91
- width: rectangle.width + half * 2,
92
- height: rectangle.height + half * 2
93
- };
94
- },
95
- isEqual: (rectangle, otherRectangle) => {
96
- return (rectangle.x === otherRectangle.x &&
97
- rectangle.y === otherRectangle.y &&
98
- rectangle.width === otherRectangle.width &&
99
- rectangle.height === otherRectangle.height);
100
- },
101
- getCornerPoints: (rectangle) => {
102
- return [
103
- [rectangle.x, rectangle.y],
104
- [rectangle.x + rectangle.width, rectangle.y],
105
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height],
106
- [rectangle.x, rectangle.y + rectangle.height]
107
- ];
108
- },
109
- getCenterPoint: (rectangle) => {
110
- return [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
111
- },
112
- getCenterPointByPoints: (points) => {
113
- return RectangleClient.getCenterPoint(RectangleClient.getRectangleByPoints(points));
114
- },
115
- getEdgeCenterPoints: (rectangle) => {
116
- return [
117
- [rectangle.x + rectangle.width / 2, rectangle.y],
118
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
119
- [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
120
- [rectangle.x, rectangle.y + rectangle.height / 2]
121
- ];
122
- },
123
- getConnectionPoint: (rectangle, point) => {
124
- return [rectangle.x + rectangle.width * point[0], rectangle.y + rectangle.height * point[1]];
125
- },
126
- expand(rectangle, left, top = left, right = left, bottom = top) {
127
- return {
128
- x: rectangle.x - left,
129
- y: rectangle.y - top,
130
- width: rectangle.width + left + right,
131
- height: rectangle.height + top + bottom
132
- };
133
- },
134
- getGapCenter(rectangle1, rectangle2, isHorizontal) {
135
- const axis = isHorizontal ? 'x' : 'y';
136
- const side = isHorizontal ? 'width' : 'height';
137
- const align = [rectangle1[axis], rectangle1[axis] + rectangle1[side], rectangle2[axis], rectangle2[axis] + rectangle2[side]];
138
- const sortArr = align.sort((a, b) => a - b);
139
- return (sortArr[1] + sortArr[2]) / 2;
140
- },
141
- isPointInRectangle(rectangle, point) {
142
- const x = point[0], y = point[1];
143
- return x > rectangle.x && x < rectangle.x + rectangle.width && y > rectangle.y && y < rectangle.y + rectangle.height;
144
- },
145
- getBoundingRectangle(rectangles) {
146
- if (rectangles.length === 0) {
147
- throw new Error('rectangles can not be empty array');
148
- }
149
- let minX = Number.MAX_VALUE;
150
- let minY = Number.MAX_VALUE;
151
- let maxX = Number.NEGATIVE_INFINITY;
152
- let maxY = Number.NEGATIVE_INFINITY;
153
- rectangles.forEach(rect => {
154
- minX = Math.min(minX, rect.x);
155
- minY = Math.min(minY, rect.y);
156
- maxX = Math.max(maxX, rect.x + rect.width);
157
- maxY = Math.max(maxY, rect.y + rect.height);
158
- });
159
- return {
160
- x: minX,
161
- y: minY,
162
- width: maxX - minX,
163
- height: maxY - minY
164
- };
165
- }
166
- };
167
- function isPointArray(data) {
168
- return (Array.isArray(data) &&
169
- data.every(item => Array.isArray(item) && item.length === 2 && typeof item[0] === 'number' && typeof item[1] === 'number'));
170
- }
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2ludGVyZmFjZXMvcmVjdGFuZ2xlLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLEtBQUssRUFBRSxDQUFDLE1BQXVCLEVBQUUsTUFBdUIsRUFBRSxFQUFFO1FBQ3hELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLE1BQXVCLEVBQUUsTUFBdUIsRUFBRSxFQUFFO1FBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuSCx5REFBeUQ7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLE1BQXVCLEVBQUUsTUFBdUIsRUFBRSxFQUFFO1FBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN2SCx5REFBeUQ7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxTQUEwQjtRQUNoQyxPQUFPO1lBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ2hELENBQUM7SUFDeEIsQ0FBQztJQUNELHlCQUF5QixDQUFDLEtBQVksRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNqRSxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxLQUFZLEVBQUUsS0FBYSxFQUFFLE1BQWM7UUFDM0QsT0FBTztZQUNILENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxLQUFLO1lBQ0wsTUFBTTtTQUNULENBQUM7SUFDTixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsTUFBMkI7UUFDNUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3BCLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNyQixJQUFJLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELHVCQUF1QixDQUFDLE1BQWU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDakMsT0FBTztZQUNILENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUNaLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUNaLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUNaLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUNpQixDQUFDO0lBQ3RDLENBQUM7SUFDRCxtQkFBbUIsRUFBRSxDQUFDLFNBQTBCLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDaEUsT0FBTztZQUNILENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLE1BQU07WUFDdkIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTTtZQUN2QixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsQ0FBQztZQUNuQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQztTQUN4QyxDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLFNBQTBCLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN2QixPQUFPO1lBQ0gsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNyQixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJO1lBQ3JCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDO1NBQ3RDLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsU0FBMEIsRUFBRSxjQUErQixFQUFFLEVBQUU7UUFDckUsT0FBTyxDQUNILFNBQVMsQ0FBQyxDQUFDLEtBQUssY0FBYyxDQUFDLENBQUM7WUFDaEMsU0FBUyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUNoQyxTQUFTLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxLQUFLO1lBQ3hDLFNBQVMsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLE1BQU0sQ0FDN0MsQ0FBQztJQUNOLENBQUM7SUFDRCxlQUFlLEVBQUUsQ0FBQyxTQUEwQixFQUFFLEVBQUU7UUFDNUMsT0FBTztZQUNILENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQy9ELENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDaEIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsY0FBYyxFQUFFLENBQUMsU0FBMEIsRUFBRSxFQUFFO1FBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQVUsQ0FBQztJQUM1RixDQUFDO0lBQ0Qsc0JBQXNCLEVBQUUsQ0FBQyxNQUFlLEVBQUUsRUFBRTtRQUN4QyxPQUFPLGVBQWUsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELG1CQUFtQixFQUFFLENBQUMsU0FBMEIsRUFBRSxFQUFFO1FBQ2hELE9BQU87WUFDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25FLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDbkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDcEIsQ0FBQztJQUN0QyxDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsQ0FBQyxTQUEwQixFQUFFLEtBQXVCLEVBQUUsRUFBRTtRQUN4RSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFVLENBQUM7SUFDMUcsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUEwQixFQUFFLElBQVksRUFBRSxNQUFjLElBQUksRUFBRSxRQUFnQixJQUFJLEVBQUUsU0FBaUIsR0FBRztRQUMzRyxPQUFPO1lBQ0gsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNyQixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxHQUFHO1lBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLO1lBQ3JDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNO1NBQzFDLENBQUM7SUFDTixDQUFDO0lBQ0QsWUFBWSxDQUFDLFVBQTJCLEVBQUUsVUFBMkIsRUFBRSxZQUFxQjtRQUN4RixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDL0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdILE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUN2RCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2QsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN6SCxDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsVUFBNkI7UUFDOUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM1QixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzVCLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNwQyxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDcEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDSCxDQUFDLEVBQUUsSUFBSTtZQUNQLENBQUMsRUFBRSxJQUFJO1lBQ1AsS0FBSyxFQUFFLElBQUksR0FBRyxJQUFJO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSTtTQUN0QixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUM7QUFFRixTQUFTLFlBQVksQ0FBQyxJQUF5QjtJQUMzQyxPQUFPLENBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUM3SCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJvdGF0ZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi9wb2ludCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbi8qKlxuICogW3gsIHldIHgseSBiZXR3ZWVuIDAgYW5kIDFcbiAqIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aGUgcmVjdGFuZ2xlXG4gKi9cbmV4cG9ydCB0eXBlIFBvaW50T2ZSZWN0YW5nbGUgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgUmVjdGFuZ2xlQ2xpZW50ID0ge1xuICAgIGlzSGl0OiAob3JpZ2luOiBSZWN0YW5nbGVDbGllbnQsIHRhcmdldDogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXRYKG9yaWdpbiwgdGFyZ2V0KSAmJiBSZWN0YW5nbGVDbGllbnQuaXNIaXRZKG9yaWdpbiwgdGFyZ2V0KTtcbiAgICB9LFxuICAgIGlzSGl0WDogKG9yaWdpbjogUmVjdGFuZ2xlQ2xpZW50LCB0YXJnZXQ6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICBjb25zdCBtaW5YID0gb3JpZ2luLnggPCB0YXJnZXQueCA/IG9yaWdpbi54IDogdGFyZ2V0Lng7XG4gICAgICAgIGNvbnN0IG1heFggPSBvcmlnaW4ueCArIG9yaWdpbi53aWR0aCA+IHRhcmdldC54ICsgdGFyZ2V0LndpZHRoID8gb3JpZ2luLnggKyBvcmlnaW4ud2lkdGggOiB0YXJnZXQueCArIHRhcmdldC53aWR0aDtcbiAgICAgICAgLy8gZmxvYXQgY2FsY3VsYXRlIGVycm9yKCBlZzogMS40MjEwODU0NzE1MjAyMDA0ZS0xNCA+IDApXG4gICAgICAgIGlmIChNYXRoLmZsb29yKG1heFggLSBtaW5YIC0gb3JpZ2luLndpZHRoIC0gdGFyZ2V0LndpZHRoKSA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNIaXRZOiAob3JpZ2luOiBSZWN0YW5nbGVDbGllbnQsIHRhcmdldDogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG1pblkgPSBvcmlnaW4ueSA8IHRhcmdldC55ID8gb3JpZ2luLnkgOiB0YXJnZXQueTtcbiAgICAgICAgY29uc3QgbWF4WSA9IG9yaWdpbi55ICsgb3JpZ2luLmhlaWdodCA+IHRhcmdldC55ICsgdGFyZ2V0LmhlaWdodCA/IG9yaWdpbi55ICsgb3JpZ2luLmhlaWdodCA6IHRhcmdldC55ICsgdGFyZ2V0LmhlaWdodDtcbiAgICAgICAgLy8gZmxvYXQgY2FsY3VsYXRlIGVycm9yKCBlZzogMS40MjEwODU0NzE1MjAyMDA0ZS0xNCA+IDApXG4gICAgICAgIGlmIChNYXRoLmZsb29yKG1heFkgLSBtaW5ZIC0gb3JpZ2luLmhlaWdodCAtIHRhcmdldC5oZWlnaHQpIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdXG4gICAgICAgIF0gYXMgW1BvaW50LCBQb2ludF07XG4gICAgfSxcbiAgICBnZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KHBvaW50OiBQb2ludCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50KFtwb2ludFswXSAtIHdpZHRoIC8gMiwgcG9pbnRbMV0gLSBoZWlnaHQgLyAyXSwgd2lkdGgsIGhlaWdodCk7XG4gICAgfSxcbiAgICBnZXRSZWN0YW5nbGVCeVBvaW50KHBvaW50OiBQb2ludCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBSZWN0YW5nbGVDbGllbnQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcG9pbnRbMF0sXG4gICAgICAgICAgICB5OiBwb2ludFsxXSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBnZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHM6IFBvaW50W10gfCBQb2ludFtdW10pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgICAgICBpZiAoaXNQb2ludEFycmF5KHBvaW50cykpIHtcbiAgICAgICAgICAgIHBvaW50cyA9IFtwb2ludHNdO1xuICAgICAgICB9XG4gICAgICAgIGxldCB4TWluID0gSW5maW5pdHk7XG4gICAgICAgIGxldCB5TWluID0gSW5maW5pdHk7XG4gICAgICAgIGxldCB4TWF4ID0gLUluZmluaXR5O1xuICAgICAgICBsZXQgeU1heCA9IC1JbmZpbml0eTtcbiAgICAgICAgZm9yIChjb25zdCBwb2ludCBvZiBwb2ludHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHhBcnJheSA9IHBvaW50Lm1hcChlbGUgPT4gZWxlWzBdKTtcbiAgICAgICAgICAgIGNvbnN0IHlBcnJheSA9IHBvaW50Lm1hcChlbGUgPT4gZWxlWzFdKTtcbiAgICAgICAgICAgIHhNaW4gPSBNYXRoLm1pbih4TWluLCAuLi54QXJyYXkpO1xuICAgICAgICAgICAgeU1pbiA9IE1hdGgubWluKHlNaW4sIC4uLnlBcnJheSk7XG4gICAgICAgICAgICB4TWF4ID0gTWF0aC5tYXgoeE1heCwgLi4ueEFycmF5KTtcbiAgICAgICAgICAgIHlNaW4gPSBNYXRoLm1pbih5TWluLCAuLi55QXJyYXkpO1xuICAgICAgICAgICAgeU1heCA9IE1hdGgubWF4KHlNYXgsIC4uLnlBcnJheSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVjdCA9IHsgeDogeE1pbiwgeTogeU1pbiwgd2lkdGg6IHhNYXggLSB4TWluLCBoZWlnaHQ6IHlNYXggLSB5TWluIH07XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzQnlQb2ludHMocG9pbnRzOiBQb2ludFtdKSB7XG4gICAgICAgIGNvbnN0IHhBcnJheSA9IHBvaW50cy5tYXAoZWxlID0+IGVsZVswXSk7XG4gICAgICAgIGNvbnN0IHlBcnJheSA9IHBvaW50cy5tYXAoZWxlID0+IGVsZVsxXSk7XG4gICAgICAgIGNvbnN0IHhNaW4gPSBNYXRoLm1pbiguLi54QXJyYXkpO1xuICAgICAgICBjb25zdCB4TWF4ID0gTWF0aC5tYXgoLi4ueEFycmF5KTtcbiAgICAgICAgY29uc3QgeU1pbiA9IE1hdGgubWluKC4uLnlBcnJheSk7XG4gICAgICAgIGNvbnN0IHlNYXggPSBNYXRoLm1heCguLi55QXJyYXkpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgW3hNaW4sIHlNaW5dLFxuICAgICAgICAgICAgW3hNYXgsIHlNaW5dLFxuICAgICAgICAgICAgW3hNYXgsIHlNYXhdLFxuICAgICAgICAgICAgW3hNaW4sIHlNYXhdXG4gICAgICAgIF0gYXMgW1BvaW50LCBQb2ludCwgUG9pbnQsIFBvaW50XTtcbiAgICB9LFxuICAgIGdldE91dGxpbmVSZWN0YW5nbGU6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb2Zmc2V0OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHJlY3RhbmdsZS54ICsgb2Zmc2V0LFxuICAgICAgICAgICAgeTogcmVjdGFuZ2xlLnkgKyBvZmZzZXQsXG4gICAgICAgICAgICB3aWR0aDogcmVjdGFuZ2xlLndpZHRoIC0gb2Zmc2V0ICogMixcbiAgICAgICAgICAgIGhlaWdodDogcmVjdGFuZ2xlLmhlaWdodCAtIG9mZnNldCAqIDJcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGluZmxhdGU6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgZGVsdGE6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBoYWxmID0gZGVsdGEgLyAyO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcmVjdGFuZ2xlLnggLSBoYWxmLFxuICAgICAgICAgICAgeTogcmVjdGFuZ2xlLnkgLSBoYWxmLFxuICAgICAgICAgICAgd2lkdGg6IHJlY3RhbmdsZS53aWR0aCArIGhhbGYgKiAyLFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0YW5nbGUuaGVpZ2h0ICsgaGFsZiAqIDJcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGlzRXF1YWw6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3RoZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcmVjdGFuZ2xlLnggPT09IG90aGVyUmVjdGFuZ2xlLnggJiZcbiAgICAgICAgICAgIHJlY3RhbmdsZS55ID09PSBvdGhlclJlY3RhbmdsZS55ICYmXG4gICAgICAgICAgICByZWN0YW5nbGUud2lkdGggPT09IG90aGVyUmVjdGFuZ2xlLndpZHRoICYmXG4gICAgICAgICAgICByZWN0YW5nbGUuaGVpZ2h0ID09PSBvdGhlclJlY3RhbmdsZS5oZWlnaHRcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50czogKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdXG4gICAgICAgIF0gYXMgW1BvaW50LCBQb2ludCwgUG9pbnQsIFBvaW50XTtcbiAgICB9LFxuICAgIGdldENlbnRlclBvaW50OiAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdIGFzIFBvaW50O1xuICAgIH0sXG4gICAgZ2V0Q2VudGVyUG9pbnRCeVBvaW50czogKHBvaW50czogUG9pbnRbXSkgPT4ge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VDZW50ZXJQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdXG4gICAgICAgIF0gYXMgW1BvaW50LCBQb2ludCwgUG9pbnQsIFBvaW50XTtcbiAgICB9LFxuICAgIGdldENvbm5lY3Rpb25Qb2ludDogKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnRPZlJlY3RhbmdsZSkgPT4ge1xuICAgICAgICByZXR1cm4gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogcG9pbnRbMF0sIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAqIHBvaW50WzFdXSBhcyBQb2ludDtcbiAgICB9LFxuICAgIGV4cGFuZChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlciA9IGxlZnQsIHJpZ2h0OiBudW1iZXIgPSBsZWZ0LCBib3R0b206IG51bWJlciA9IHRvcCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcmVjdGFuZ2xlLnggLSBsZWZ0LFxuICAgICAgICAgICAgeTogcmVjdGFuZ2xlLnkgLSB0b3AsXG4gICAgICAgICAgICB3aWR0aDogcmVjdGFuZ2xlLndpZHRoICsgbGVmdCArIHJpZ2h0LFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0YW5nbGUuaGVpZ2h0ICsgdG9wICsgYm90dG9tXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBnZXRHYXBDZW50ZXIocmVjdGFuZ2xlMTogUmVjdGFuZ2xlQ2xpZW50LCByZWN0YW5nbGUyOiBSZWN0YW5nbGVDbGllbnQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBheGlzID0gaXNIb3Jpem9udGFsID8gJ3gnIDogJ3knO1xuICAgICAgICBjb25zdCBzaWRlID0gaXNIb3Jpem9udGFsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgICAgICBjb25zdCBhbGlnbiA9IFtyZWN0YW5nbGUxW2F4aXNdLCByZWN0YW5nbGUxW2F4aXNdICsgcmVjdGFuZ2xlMVtzaWRlXSwgcmVjdGFuZ2xlMltheGlzXSwgcmVjdGFuZ2xlMltheGlzXSArIHJlY3RhbmdsZTJbc2lkZV1dO1xuICAgICAgICBjb25zdCBzb3J0QXJyID0gYWxpZ24uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgICAgICByZXR1cm4gKHNvcnRBcnJbMV0gKyBzb3J0QXJyWzJdKSAvIDI7XG4gICAgfSxcbiAgICBpc1BvaW50SW5SZWN0YW5nbGUocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCB4ID0gcG9pbnRbMF0sXG4gICAgICAgICAgICB5ID0gcG9pbnRbMV07XG4gICAgICAgIHJldHVybiB4ID4gcmVjdGFuZ2xlLnggJiYgeCA8IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICYmIHkgPiByZWN0YW5nbGUueSAmJiB5IDwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0O1xuICAgIH0sXG4gICAgZ2V0Qm91bmRpbmdSZWN0YW5nbGUocmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgICAgICBpZiAocmVjdGFuZ2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncmVjdGFuZ2xlcyBjYW4gbm90IGJlIGVtcHR5IGFycmF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1pblggPSBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICBsZXQgbWluWSA9IE51bWJlci5NQVhfVkFMVUU7XG4gICAgICAgIGxldCBtYXhYID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO1xuICAgICAgICBsZXQgbWF4WSA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcbiAgICAgICAgcmVjdGFuZ2xlcy5mb3JFYWNoKHJlY3QgPT4ge1xuICAgICAgICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIHJlY3QueCk7XG4gICAgICAgICAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgcmVjdC55KTtcbiAgICAgICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCByZWN0LnggKyByZWN0LndpZHRoKTtcbiAgICAgICAgICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCByZWN0LnkgKyByZWN0LmhlaWdodCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogbWluWCxcbiAgICAgICAgICAgIHk6IG1pblksXG4gICAgICAgICAgICB3aWR0aDogbWF4WCAtIG1pblgsXG4gICAgICAgICAgICBoZWlnaHQ6IG1heFkgLSBtaW5ZXG4gICAgICAgIH07XG4gICAgfVxufTtcblxuZnVuY3Rpb24gaXNQb2ludEFycmF5KGRhdGE6IFBvaW50W10gfCBQb2ludFtdW10pOiBkYXRhIGlzIFBvaW50W10ge1xuICAgIHJldHVybiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoZGF0YSkgJiZcbiAgICAgICAgZGF0YS5ldmVyeShpdGVtID0+IEFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbS5sZW5ndGggPT09IDIgJiYgdHlwZW9mIGl0ZW1bMF0gPT09ICdudW1iZXInICYmIHR5cGVvZiBpdGVtWzFdID09PSAnbnVtYmVyJylcbiAgICApO1xufVxuIl19
@@ -1,13 +0,0 @@
1
- export const SELECTION_BORDER_COLOR = '#6698FF';
2
- export const SELECTION_FILL_COLOR = '#6698FF25'; // opacity 0.25
3
- export const Selection = {
4
- isCollapsed(selection) {
5
- if (selection.anchor[0] == selection.focus[0] && selection.anchor[1] === selection.focus[1]) {
6
- return true;
7
- }
8
- else {
9
- return false;
10
- }
11
- }
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvaW50ZXJmYWNlcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFDO0FBQ2hELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxDQUFDLGVBQWU7QUFPaEUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3JCLFdBQVcsQ0FBQyxTQUFvQjtRQUM1QixJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxRixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi9wb2ludCc7XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RJT05fQk9SREVSX0NPTE9SID0gJyM2Njk4RkYnO1xuZXhwb3J0IGNvbnN0IFNFTEVDVElPTl9GSUxMX0NPTE9SID0gJyM2Njk4RkYyNSc7IC8vIG9wYWNpdHkgMC4yNVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbiB7XG4gICAgYW5jaG9yOiBQb2ludDtcbiAgICBmb2N1czogUG9pbnQ7XG59XG5cbmV4cG9ydCBjb25zdCBTZWxlY3Rpb24gPSB7XG4gICAgaXNDb2xsYXBzZWQoc2VsZWN0aW9uOiBTZWxlY3Rpb24pIHtcbiAgICAgICAgaWYgKHNlbGVjdGlvbi5hbmNob3JbMF0gPT0gc2VsZWN0aW9uLmZvY3VzWzBdICYmIHNlbGVjdGlvbi5hbmNob3JbMV0gPT09IHNlbGVjdGlvbi5mb2N1c1sxXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWFyYy1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvaW50ZXJmYWNlcy9zdmctYXJjLWNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU1ZHQXJjQ29tbWFuZCB7XG4gICAgcng6IG51bWJlcjtcbiAgICByeTogbnVtYmVyO1xuICAgIHhBeGlzUm90YXRpb246IG51bWJlcjtcbiAgICBsYXJnZUFyY0ZsYWc6IDAgfCAxO1xuICAgIHN3ZWVwRmxhZzogMCB8IDE7XG4gICAgZW5kWDogbnVtYmVyO1xuICAgIGVuZFk6IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,49 +0,0 @@
1
- export var ThemeColorMode;
2
- (function (ThemeColorMode) {
3
- ThemeColorMode["default"] = "default";
4
- ThemeColorMode["colorful"] = "colorful";
5
- ThemeColorMode["soft"] = "soft";
6
- ThemeColorMode["retro"] = "retro";
7
- ThemeColorMode["dark"] = "dark";
8
- ThemeColorMode["starry"] = "starry";
9
- })(ThemeColorMode || (ThemeColorMode = {}));
10
- export const DEFAULT_COLOR = '#333333';
11
- export const DefaultThemeColor = {
12
- mode: ThemeColorMode.default,
13
- boardBackground: '#ffffff',
14
- textColor: DEFAULT_COLOR
15
- };
16
- export const ColorfulThemeColor = {
17
- mode: ThemeColorMode.colorful,
18
- boardBackground: '#ffffff',
19
- textColor: DEFAULT_COLOR
20
- };
21
- export const SoftThemeColor = {
22
- mode: ThemeColorMode.soft,
23
- boardBackground: '#f5f5f5',
24
- textColor: DEFAULT_COLOR
25
- };
26
- export const RetroThemeColor = {
27
- mode: ThemeColorMode.retro,
28
- boardBackground: '#f9f8ed',
29
- textColor: DEFAULT_COLOR
30
- };
31
- export const DarkThemeColor = {
32
- mode: ThemeColorMode.dark,
33
- boardBackground: '#141414',
34
- textColor: '#FFFFFF'
35
- };
36
- export const StarryThemeColor = {
37
- mode: ThemeColorMode.starry,
38
- boardBackground: '#0d2537',
39
- textColor: '#FFFFFF'
40
- };
41
- export const ThemeColors = [
42
- DefaultThemeColor,
43
- ColorfulThemeColor,
44
- SoftThemeColor,
45
- RetroThemeColor,
46
- DarkThemeColor,
47
- StarryThemeColor
48
- ];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbnRlcmZhY2VzL3RoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGNBT1g7QUFQRCxXQUFZLGNBQWM7SUFDdEIscUNBQXFCLENBQUE7SUFDckIsdUNBQXVCLENBQUE7SUFDdkIsK0JBQWUsQ0FBQTtJQUNmLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7SUFDZixtQ0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUFcsY0FBYyxLQUFkLGNBQWMsUUFPekI7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFlO0lBQ3pDLElBQUksRUFBRSxjQUFjLENBQUMsT0FBTztJQUM1QixlQUFlLEVBQUUsU0FBUztJQUMxQixTQUFTLEVBQUUsYUFBYTtDQUMzQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWU7SUFDMUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxRQUFRO0lBQzdCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxhQUFhO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWU7SUFDdEMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxhQUFhO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWU7SUFDdkMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLO0lBQzFCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxhQUFhO0NBQzNCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWU7SUFDdEMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0NBQ3ZCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBZTtJQUN4QyxJQUFJLEVBQUUsY0FBYyxDQUFDLE1BQU07SUFDM0IsZUFBZSxFQUFFLFNBQVM7SUFDMUIsU0FBUyxFQUFFLFNBQVM7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBaUI7SUFDckMsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsZUFBZTtJQUNmLGNBQWM7SUFDZCxnQkFBZ0I7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhaXRUaGVtZSB7XG4gICAgdGhlbWVDb2xvck1vZGU6IFRoZW1lQ29sb3JNb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lQ29sb3Ige1xuICAgIG1vZGU6IFRoZW1lQ29sb3JNb2RlIHwgc3RyaW5nO1xuICAgIGJvYXJkQmFja2dyb3VuZD86IHN0cmluZztcbiAgICB0ZXh0Q29sb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVGhlbWVDb2xvck1vZGUge1xuICAgICdkZWZhdWx0JyA9ICdkZWZhdWx0JyxcbiAgICAnY29sb3JmdWwnID0gJ2NvbG9yZnVsJyxcbiAgICAnc29mdCcgPSAnc29mdCcsXG4gICAgJ3JldHJvJyA9ICdyZXRybycsXG4gICAgJ2RhcmsnID0gJ2RhcmsnLFxuICAgICdzdGFycnknID0gJ3N0YXJyeSdcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAnIzMzMzMzMyc7XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5kZWZhdWx0LFxuICAgIGJvYXJkQmFja2dyb3VuZDogJyNmZmZmZmYnLFxuICAgIHRleHRDb2xvcjogREVGQVVMVF9DT0xPUlxufTtcblxuZXhwb3J0IGNvbnN0IENvbG9yZnVsVGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5jb2xvcmZ1bCxcbiAgICBib2FyZEJhY2tncm91bmQ6ICcjZmZmZmZmJyxcbiAgICB0ZXh0Q29sb3I6IERFRkFVTFRfQ09MT1Jcbn07XG5cbmV4cG9ydCBjb25zdCBTb2Z0VGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5zb2Z0LFxuICAgIGJvYXJkQmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgIHRleHRDb2xvcjogREVGQVVMVF9DT0xPUlxufTtcblxuZXhwb3J0IGNvbnN0IFJldHJvVGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5yZXRybyxcbiAgICBib2FyZEJhY2tncm91bmQ6ICcjZjlmOGVkJyxcbiAgICB0ZXh0Q29sb3I6IERFRkFVTFRfQ09MT1Jcbn07XG5cbmV4cG9ydCBjb25zdCBEYXJrVGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5kYXJrLFxuICAgIGJvYXJkQmFja2dyb3VuZDogJyMxNDE0MTQnLFxuICAgIHRleHRDb2xvcjogJyNGRkZGRkYnXG59O1xuXG5leHBvcnQgY29uc3QgU3RhcnJ5VGhlbWVDb2xvcjogVGhlbWVDb2xvciA9IHtcbiAgICBtb2RlOiBUaGVtZUNvbG9yTW9kZS5zdGFycnksXG4gICAgYm9hcmRCYWNrZ3JvdW5kOiAnIzBkMjUzNycsXG4gICAgdGV4dENvbG9yOiAnI0ZGRkZGRidcbn07XG5cbmV4cG9ydCBjb25zdCBUaGVtZUNvbG9yczogVGhlbWVDb2xvcltdID0gW1xuICAgIERlZmF1bHRUaGVtZUNvbG9yLFxuICAgIENvbG9yZnVsVGhlbWVDb2xvcixcbiAgICBTb2Z0VGhlbWVDb2xvcixcbiAgICBSZXRyb1RoZW1lQ29sb3IsXG4gICAgRGFya1RoZW1lQ29sb3IsXG4gICAgU3RhcnJ5VGhlbWVDb2xvclxuXTtcbiJdfQ==
@@ -1,7 +0,0 @@
1
- import { isNullOrUndefined } from '../utils/helper';
2
- export const Viewport = {
3
- isViewport: (value) => {
4
- return !isNullOrUndefined(value.zoom) && !isNullOrUndefined(value.viewBackgroundColor);
5
- }
6
- };
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9pbnRlcmZhY2VzL3ZpZXdwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZ0JwRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQXNCO0lBQ3ZDLFVBQVUsRUFBRSxDQUFDLEtBQVUsRUFBcUIsRUFBRTtRQUMxQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0YsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL2hlbHBlcic7XG5pbXBvcnQgeyBFeHRlbmRlZFR5cGUgfSBmcm9tICcuL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4vcG9pbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VWaWV3cG9ydCB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIHpvb206IG51bWJlcjtcbiAgICBvcmlnaW5hdGlvbj86IFBvaW50O1xufVxuXG5leHBvcnQgdHlwZSBWaWV3cG9ydCA9IEV4dGVuZGVkVHlwZTwnVmlld3BvcnQnLCBCYXNlVmlld3BvcnQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdwb3J0SW50ZXJmYWNlIHtcbiAgICBpc1ZpZXdwb3J0OiAodmFsdWU6IGFueSkgPT4gdmFsdWUgaXMgVmlld3BvcnQ7XG59XG5cbmV4cG9ydCBjb25zdCBWaWV3cG9ydDogVmlld3BvcnRJbnRlcmZhY2UgPSB7XG4gICAgaXNWaWV3cG9ydDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBWaWV3cG9ydCA9PiB7XG4gICAgICAgIHJldHVybiAhaXNOdWxsT3JVbmRlZmluZWQodmFsdWUuem9vbSkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlLnZpZXdCYWNrZ3JvdW5kQ29sb3IpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRml0Vmlld3BvcnRPcHRpb25zIHtcbiAgICBtYXhXaWR0aD86IG51bWJlcjtcbiAgICBsaW1pdEhlaWdodDogbnVtYmVyO1xuICAgIGF1dG9GaXRQYWRkaW5nOiBudW1iZXI7XG4gICAgY29udGFpbmVyQ2xhc3M6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaXQtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3BsYWl0LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==