@bensitu/image-editor 1.5.2 → 2.1.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 (166) hide show
  1. package/README.md +460 -509
  2. package/dist/cjs/index.cjs +6892 -0
  3. package/dist/cjs/index.cjs.map +1 -0
  4. package/dist/esm/animation/animation-queue.js +74 -0
  5. package/dist/esm/animation/animation-queue.js.map +1 -0
  6. package/dist/esm/core/callback-reporter.js +23 -0
  7. package/dist/esm/core/callback-reporter.js.map +1 -0
  8. package/dist/esm/core/default-options.js +529 -0
  9. package/dist/esm/core/default-options.js.map +1 -0
  10. package/dist/esm/core/errors.js +156 -0
  11. package/dist/esm/core/errors.js.map +1 -0
  12. package/dist/esm/core/operation-guard.js +157 -0
  13. package/dist/esm/core/operation-guard.js.map +1 -0
  14. package/dist/esm/core/public-types.js +4 -0
  15. package/dist/esm/core/public-types.js.map +1 -0
  16. package/dist/esm/core/state-serializer.js +252 -0
  17. package/dist/esm/core/state-serializer.js.map +1 -0
  18. package/dist/esm/crop/crop-controller.js +405 -0
  19. package/dist/esm/crop/crop-controller.js.map +1 -0
  20. package/dist/esm/export/export-format.js +53 -0
  21. package/dist/esm/export/export-format.js.map +1 -0
  22. package/dist/esm/export/export-service.js +607 -0
  23. package/dist/esm/export/export-service.js.map +1 -0
  24. package/dist/esm/fabric/fabric-adapter.js +37 -0
  25. package/dist/esm/fabric/fabric-adapter.js.map +1 -0
  26. package/dist/esm/fabric/fabric-animation.js +89 -0
  27. package/dist/esm/fabric/fabric-animation.js.map +1 -0
  28. package/dist/esm/history/command.js +2 -0
  29. package/dist/esm/history/command.js.map +1 -0
  30. package/dist/esm/history/history-manager.js +103 -0
  31. package/dist/esm/history/history-manager.js.map +1 -0
  32. package/dist/esm/image/image-loader.js +238 -0
  33. package/dist/esm/image/image-loader.js.map +1 -0
  34. package/dist/esm/image/image-resampler.js +60 -0
  35. package/dist/esm/image/image-resampler.js.map +1 -0
  36. package/dist/esm/image/layout-manager.js +206 -0
  37. package/dist/esm/image/layout-manager.js.map +1 -0
  38. package/dist/esm/image/transform-controller.js +132 -0
  39. package/dist/esm/image/transform-controller.js.map +1 -0
  40. package/dist/esm/image-editor.js +2076 -0
  41. package/dist/esm/image-editor.js.map +1 -0
  42. package/dist/esm/index.js +5 -0
  43. package/dist/esm/index.js.map +1 -0
  44. package/dist/esm/mask/mask-factory.js +356 -0
  45. package/dist/esm/mask/mask-factory.js.map +1 -0
  46. package/dist/esm/mask/mask-label-manager.js +120 -0
  47. package/dist/esm/mask/mask-label-manager.js.map +1 -0
  48. package/dist/esm/mask/mask-list.js +53 -0
  49. package/dist/esm/mask/mask-list.js.map +1 -0
  50. package/dist/esm/mask/mask-style.js +182 -0
  51. package/dist/esm/mask/mask-style.js.map +1 -0
  52. package/dist/esm/mosaic/mosaic-controller.js +670 -0
  53. package/dist/esm/mosaic/mosaic-controller.js.map +1 -0
  54. package/dist/esm/mosaic/mosaic-geometry.js +81 -0
  55. package/dist/esm/mosaic/mosaic-geometry.js.map +1 -0
  56. package/dist/esm/mosaic/mosaic-pixelate.js +71 -0
  57. package/dist/esm/mosaic/mosaic-pixelate.js.map +1 -0
  58. package/dist/esm/ui/dom-bindings.js +67 -0
  59. package/dist/esm/ui/dom-bindings.js.map +1 -0
  60. package/dist/esm/ui/ui-state.js +25 -0
  61. package/dist/esm/ui/ui-state.js.map +1 -0
  62. package/dist/esm/ui/visibility-state.js +11 -0
  63. package/dist/esm/ui/visibility-state.js.map +1 -0
  64. package/dist/esm/utils/canvas-region.js +100 -0
  65. package/dist/esm/utils/canvas-region.js.map +1 -0
  66. package/dist/esm/utils/dom.js +6 -0
  67. package/dist/esm/utils/dom.js.map +1 -0
  68. package/dist/esm/utils/file.js +53 -0
  69. package/dist/esm/utils/file.js.map +1 -0
  70. package/dist/esm/utils/number.js +24 -0
  71. package/dist/esm/utils/number.js.map +1 -0
  72. package/dist/esm/utils/timeout.js +17 -0
  73. package/dist/esm/utils/timeout.js.map +1 -0
  74. package/dist/types/animation/animation-queue.d.ts +111 -0
  75. package/dist/types/animation/animation-queue.d.ts.map +1 -0
  76. package/dist/types/core/callback-reporter.d.ts +125 -0
  77. package/dist/types/core/callback-reporter.d.ts.map +1 -0
  78. package/dist/types/core/default-options.d.ts +84 -0
  79. package/dist/types/core/default-options.d.ts.map +1 -0
  80. package/dist/types/core/errors.d.ts +142 -0
  81. package/dist/types/core/errors.d.ts.map +1 -0
  82. package/dist/types/core/operation-guard.d.ts +194 -0
  83. package/dist/types/core/operation-guard.d.ts.map +1 -0
  84. package/dist/types/core/public-types.d.ts +788 -0
  85. package/dist/types/core/public-types.d.ts.map +1 -0
  86. package/dist/types/core/state-serializer.d.ts +303 -0
  87. package/dist/types/core/state-serializer.d.ts.map +1 -0
  88. package/dist/types/crop/crop-controller.d.ts +407 -0
  89. package/dist/types/crop/crop-controller.d.ts.map +1 -0
  90. package/dist/types/export/export-format.d.ts +136 -0
  91. package/dist/types/export/export-format.d.ts.map +1 -0
  92. package/dist/types/export/export-service.d.ts +333 -0
  93. package/dist/types/export/export-service.d.ts.map +1 -0
  94. package/dist/types/fabric/fabric-adapter.d.ts +74 -0
  95. package/dist/types/fabric/fabric-adapter.d.ts.map +1 -0
  96. package/dist/types/fabric/fabric-animation.d.ts +141 -0
  97. package/dist/types/fabric/fabric-animation.d.ts.map +1 -0
  98. package/dist/types/history/command.d.ts +16 -0
  99. package/dist/types/history/command.d.ts.map +1 -0
  100. package/dist/types/history/history-manager.d.ts +129 -0
  101. package/dist/types/history/history-manager.d.ts.map +1 -0
  102. package/dist/types/image/image-loader.d.ts +263 -0
  103. package/dist/types/image/image-loader.d.ts.map +1 -0
  104. package/dist/types/image/image-resampler.d.ts +139 -0
  105. package/dist/types/image/image-resampler.d.ts.map +1 -0
  106. package/dist/types/image/layout-manager.d.ts +211 -0
  107. package/dist/types/image/layout-manager.d.ts.map +1 -0
  108. package/dist/types/image/transform-controller.d.ts +286 -0
  109. package/dist/types/image/transform-controller.d.ts.map +1 -0
  110. package/dist/types/image-editor.d.ts +661 -0
  111. package/dist/types/image-editor.d.ts.map +1 -0
  112. package/dist/types/index.d.cts +31 -0
  113. package/dist/types/index.d.cts.map +1 -0
  114. package/dist/types/index.d.ts +31 -0
  115. package/dist/types/index.d.ts.map +1 -0
  116. package/dist/types/mask/mask-factory.d.ts +212 -0
  117. package/dist/types/mask/mask-factory.d.ts.map +1 -0
  118. package/dist/types/mask/mask-label-manager.d.ts +171 -0
  119. package/dist/types/mask/mask-label-manager.d.ts.map +1 -0
  120. package/dist/types/mask/mask-list.d.ts +144 -0
  121. package/dist/types/mask/mask-list.d.ts.map +1 -0
  122. package/dist/types/mask/mask-style.d.ts +338 -0
  123. package/dist/types/mask/mask-style.d.ts.map +1 -0
  124. package/dist/types/mosaic/mosaic-controller.d.ts +82 -0
  125. package/dist/types/mosaic/mosaic-controller.d.ts.map +1 -0
  126. package/dist/types/mosaic/mosaic-geometry.d.ts +29 -0
  127. package/dist/types/mosaic/mosaic-geometry.d.ts.map +1 -0
  128. package/dist/types/mosaic/mosaic-pixelate.d.ts +23 -0
  129. package/dist/types/mosaic/mosaic-pixelate.d.ts.map +1 -0
  130. package/dist/types/ui/dom-bindings.d.ts +105 -0
  131. package/dist/types/ui/dom-bindings.d.ts.map +1 -0
  132. package/dist/types/ui/ui-state.d.ts +112 -0
  133. package/dist/types/ui/ui-state.d.ts.map +1 -0
  134. package/dist/types/ui/visibility-state.d.ts +77 -0
  135. package/dist/types/ui/visibility-state.d.ts.map +1 -0
  136. package/dist/types/utils/canvas-region.d.ts +177 -0
  137. package/dist/types/utils/canvas-region.d.ts.map +1 -0
  138. package/dist/types/utils/dom.d.ts +26 -0
  139. package/dist/types/utils/dom.d.ts.map +1 -0
  140. package/dist/types/utils/file.d.ts +80 -0
  141. package/dist/types/utils/file.d.ts.map +1 -0
  142. package/dist/types/utils/number.d.ts +131 -0
  143. package/dist/types/utils/number.d.ts.map +1 -0
  144. package/dist/types/utils/timeout.d.ts +84 -0
  145. package/dist/types/utils/timeout.d.ts.map +1 -0
  146. package/dist/umd/image-editor.umd.js +2 -0
  147. package/dist/umd/image-editor.umd.js.map +1 -0
  148. package/package.json +72 -66
  149. package/dist/image-editor.cjs +0 -4407
  150. package/dist/image-editor.cjs.map +0 -7
  151. package/dist/image-editor.esm.js +0 -4376
  152. package/dist/image-editor.esm.js.map +0 -7
  153. package/dist/image-editor.esm.min.js +0 -9
  154. package/dist/image-editor.esm.min.js.map +0 -7
  155. package/dist/image-editor.esm.min.mjs +0 -9
  156. package/dist/image-editor.esm.min.mjs.map +0 -7
  157. package/dist/image-editor.esm.mjs +0 -4376
  158. package/dist/image-editor.esm.mjs.map +0 -7
  159. package/dist/image-editor.js +0 -4373
  160. package/dist/image-editor.js.map +0 -7
  161. package/dist/image-editor.min.js +0 -9
  162. package/dist/image-editor.min.js.map +0 -7
  163. package/image-editor.d.ts +0 -271
  164. package/src/browser.js +0 -11
  165. package/src/esm.js +0 -9
  166. package/src/image-editor.js +0 -5013
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-editor.js","sourceRoot":"","sources":["../../src/image-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ImageEditor } from './image-editor.js';
2
+ export { ImageEditor };
3
+ export default ImageEditor;
4
+ export { isMaskObject } from './core/public-types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,356 @@
1
+ import { isMaskObject } from '../core/public-types.js';
2
+ import { reportWarning } from '../core/callback-reporter.js';
3
+ import { attachMaskHoverHandlers, detachMaskHoverHandlers } from './mask-style.js';
4
+ import { coercePoint, resolveNumeric } from '../utils/number.js';
5
+ const POLYGON_AREA_EPSILON = 1e-6;
6
+ function createMaskUid(maskId) {
7
+ return `mask-${maskId}`;
8
+ }
9
+ function isFabricObjectLike(value) {
10
+ if (!value || typeof value !== 'object')
11
+ return false;
12
+ const candidate = value;
13
+ return typeof candidate.set === 'function' && typeof candidate.on === 'function';
14
+ }
15
+ function isStyleObject(value) {
16
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
17
+ }
18
+ function mergeMaskConfig(defaultMaskConfig, config) {
19
+ const safeDefaultConfig = { ...defaultMaskConfig };
20
+ const defaultStyles = safeDefaultConfig.styles;
21
+ delete safeDefaultConfig.onCreate;
22
+ delete safeDefaultConfig.fabricGenerator;
23
+ delete safeDefaultConfig.styles;
24
+ const configStyles = isStyleObject(config.styles) ? config.styles : {};
25
+ const safeDefaultStyles = isStyleObject(defaultStyles) ? defaultStyles : {};
26
+ return {
27
+ ...safeDefaultConfig,
28
+ ...config,
29
+ styles: {
30
+ ...safeDefaultStyles,
31
+ ...configStyles,
32
+ },
33
+ };
34
+ }
35
+ function warnInvalidMask(options, reason) {
36
+ reportWarning(options, null, `createMask skipped: ${reason}.`);
37
+ }
38
+ function isResolvableNumericInput(value) {
39
+ if (value === undefined)
40
+ return true;
41
+ if (typeof value === 'number')
42
+ return Number.isFinite(value);
43
+ if (typeof value === 'function')
44
+ return true;
45
+ if (typeof value === 'string' && value.endsWith('%')) {
46
+ return Number.isFinite(Number.parseFloat(value));
47
+ }
48
+ return false;
49
+ }
50
+ function isFiniteNumber(value) {
51
+ return typeof value === 'number' && Number.isFinite(value);
52
+ }
53
+ function validateFiniteField(options, fieldName, value) {
54
+ if (isFiniteNumber(value))
55
+ return true;
56
+ warnInvalidMask(options, `${fieldName} must resolve to a finite number`);
57
+ return false;
58
+ }
59
+ function validatePositiveField(options, fieldName, value) {
60
+ if (isFiniteNumber(value) && value > 0)
61
+ return true;
62
+ warnInvalidMask(options, `${fieldName} must resolve to a positive number`);
63
+ return false;
64
+ }
65
+ function validateNonNegativeField(options, fieldName, value) {
66
+ if (isFiniteNumber(value) && value >= 0)
67
+ return true;
68
+ warnInvalidMask(options, `${fieldName} must resolve to a non-negative number`);
69
+ return false;
70
+ }
71
+ function validateNumericInputs(options, config) {
72
+ const fields = [
73
+ ['width', config.width],
74
+ ['height', config.height],
75
+ ['rx', config.rx],
76
+ ['ry', config.ry],
77
+ ['radius', config.radius],
78
+ ['left', config.left],
79
+ ['top', config.top],
80
+ ];
81
+ for (const [fieldName, value] of fields) {
82
+ if (!isResolvableNumericInput(value)) {
83
+ warnInvalidMask(options, `${fieldName} is not a supported numeric value`);
84
+ return false;
85
+ }
86
+ }
87
+ return true;
88
+ }
89
+ function resolvePolygonPoints(options, points) {
90
+ if (!Array.isArray(points) || points.length < 3) {
91
+ warnInvalidMask(options, 'polygon masks require at least three points');
92
+ return null;
93
+ }
94
+ const resolvedPoints = points.map(coercePoint);
95
+ const allFinite = resolvedPoints.every((point) => Number.isFinite(point.x) && Number.isFinite(point.y));
96
+ if (!allFinite) {
97
+ warnInvalidMask(options, 'polygon points must contain finite x/y values');
98
+ return null;
99
+ }
100
+ if (polygonArea(resolvedPoints) <= POLYGON_AREA_EPSILON) {
101
+ warnInvalidMask(options, 'polygon points must describe a non-zero area');
102
+ return null;
103
+ }
104
+ return resolvedPoints;
105
+ }
106
+ function polygonArea(points) {
107
+ let area = 0;
108
+ for (let index = 0; index < points.length; index += 1) {
109
+ const current = points[index];
110
+ const next = points[(index + 1) % points.length];
111
+ area += current.x * next.y - next.x * current.y;
112
+ }
113
+ return Math.abs(area) / 2;
114
+ }
115
+ export function createMask(context, config = {}) {
116
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
117
+ const { canvas, options, fabric: fabricModule } = context;
118
+ if (!canvas)
119
+ return null;
120
+ const mergedConfig = mergeMaskConfig(options.defaultMaskConfig, config);
121
+ const shapeType = (_a = mergedConfig.shape) !== null && _a !== void 0 ? _a : 'rect';
122
+ if (!validateNumericInputs(options, mergedConfig))
123
+ return null;
124
+ const resolvedConfig = {
125
+ width: options.defaultMaskWidth,
126
+ height: options.defaultMaskHeight,
127
+ color: 'rgba(0,0,0,0.5)',
128
+ alpha: 0.5,
129
+ gap: 5,
130
+ left: undefined,
131
+ top: undefined,
132
+ angle: 0,
133
+ selectable: true,
134
+ ...mergedConfig,
135
+ shape: shapeType,
136
+ };
137
+ const firstOffset = 10;
138
+ let left;
139
+ let top;
140
+ const previousMask = context.getLastMask();
141
+ if (mergedConfig.left === undefined && previousMask) {
142
+ const previousRight = ((_b = previousMask.left) !== null && _b !== void 0 ? _b : 0) +
143
+ (typeof previousMask.getScaledWidth === 'function'
144
+ ? previousMask.getScaledWidth()
145
+ : ((_c = previousMask.width) !== null && _c !== void 0 ? _c : 0) * ((_d = previousMask.scaleX) !== null && _d !== void 0 ? _d : 1));
146
+ left = Math.round(previousRight + ((_e = resolvedConfig.gap) !== null && _e !== void 0 ? _e : 5));
147
+ top = (_f = previousMask.top) !== null && _f !== void 0 ? _f : firstOffset;
148
+ }
149
+ else {
150
+ left = resolveNumeric(mergedConfig.left, 'x', firstOffset, canvas, options);
151
+ top = resolveNumeric(mergedConfig.top, 'y', firstOffset, canvas, options);
152
+ }
153
+ resolvedConfig.width = resolveNumeric(mergedConfig.width, 'x', options.defaultMaskWidth, canvas, options);
154
+ resolvedConfig.height = resolveNumeric(mergedConfig.height, 'y', options.defaultMaskHeight, canvas, options);
155
+ const rx = mergedConfig.rx !== undefined
156
+ ? resolveNumeric(mergedConfig.rx, 'x', 0, canvas, options)
157
+ : undefined;
158
+ const ry = mergedConfig.ry !== undefined
159
+ ? resolveNumeric(mergedConfig.ry, 'y', 0, canvas, options)
160
+ : undefined;
161
+ const radius = shapeType === 'circle'
162
+ ? resolveNumeric(mergedConfig.radius, 'x', Math.min(resolvedConfig.width, resolvedConfig.height) / 2, canvas, options)
163
+ : undefined;
164
+ const polygonPoints = shapeType === 'polygon' ? resolvePolygonPoints(options, mergedConfig.points) : null;
165
+ if (!validateFiniteField(options, 'left', left) ||
166
+ !validateFiniteField(options, 'top', top) ||
167
+ !validatePositiveField(options, 'width', resolvedConfig.width) ||
168
+ !validatePositiveField(options, 'height', resolvedConfig.height) ||
169
+ !validateFiniteField(options, 'gap', resolvedConfig.gap) ||
170
+ !validateFiniteField(options, 'angle', resolvedConfig.angle) ||
171
+ !validateFiniteField(options, 'alpha', resolvedConfig.alpha)) {
172
+ return null;
173
+ }
174
+ if ((rx !== undefined && !validateNonNegativeField(options, 'rx', rx)) ||
175
+ (ry !== undefined && !validateNonNegativeField(options, 'ry', ry)) ||
176
+ (radius !== undefined && !validatePositiveField(options, 'radius', radius)) ||
177
+ (shapeType === 'polygon' && polygonPoints === null)) {
178
+ return null;
179
+ }
180
+ if (options.layoutMode === 'expand') {
181
+ const requiredWidth = Math.ceil(left + resolvedConfig.width + 10);
182
+ const requiredHeight = Math.ceil(top + resolvedConfig.height + 10);
183
+ const nextWidth = Math.max(canvas.getWidth(), requiredWidth);
184
+ const nextHeight = Math.max(canvas.getHeight(), requiredHeight);
185
+ if (nextWidth !== canvas.getWidth() || nextHeight !== canvas.getHeight()) {
186
+ if (context.expandCanvasIfNeeded) {
187
+ context.expandCanvasIfNeeded(nextWidth, nextHeight);
188
+ }
189
+ else {
190
+ canvas.setDimensions({ width: nextWidth, height: nextHeight });
191
+ }
192
+ }
193
+ }
194
+ let mask;
195
+ if (typeof config.fabricGenerator === 'function') {
196
+ const generated = config.fabricGenerator(resolvedConfig, canvas, options);
197
+ if (!isFabricObjectLike(generated)) {
198
+ reportWarning(options, generated, 'createMask skipped: fabricGenerator did not return a Fabric object.');
199
+ return null;
200
+ }
201
+ mask = generated;
202
+ }
203
+ else {
204
+ const originProps = {
205
+ originX: 'left',
206
+ originY: 'top',
207
+ };
208
+ switch (shapeType) {
209
+ case 'circle':
210
+ mask = new fabricModule.Circle({
211
+ left,
212
+ top,
213
+ ...originProps,
214
+ radius,
215
+ fill: resolvedConfig.color,
216
+ opacity: resolvedConfig.alpha,
217
+ angle: (_g = resolvedConfig.angle) !== null && _g !== void 0 ? _g : 0,
218
+ ...resolvedConfig.styles,
219
+ });
220
+ break;
221
+ case 'ellipse':
222
+ mask = new fabricModule.Ellipse({
223
+ left,
224
+ top,
225
+ ...originProps,
226
+ rx: rx !== null && rx !== void 0 ? rx : resolvedConfig.width / 2,
227
+ ry: ry !== null && ry !== void 0 ? ry : resolvedConfig.height / 2,
228
+ fill: resolvedConfig.color,
229
+ opacity: resolvedConfig.alpha,
230
+ angle: (_h = resolvedConfig.angle) !== null && _h !== void 0 ? _h : 0,
231
+ ...resolvedConfig.styles,
232
+ });
233
+ break;
234
+ case 'polygon': {
235
+ const polygon = new fabricModule.Polygon(polygonPoints, {
236
+ ...originProps,
237
+ fill: resolvedConfig.color,
238
+ opacity: resolvedConfig.alpha,
239
+ angle: (_j = resolvedConfig.angle) !== null && _j !== void 0 ? _j : 0,
240
+ ...resolvedConfig.styles,
241
+ });
242
+ polygon.setCoords();
243
+ const boundingRect = polygon.getBoundingRect();
244
+ const deltaX = left - boundingRect.left;
245
+ const deltaY = top - boundingRect.top;
246
+ polygon.set({
247
+ left: ((_k = polygon.left) !== null && _k !== void 0 ? _k : 0) + deltaX,
248
+ top: ((_l = polygon.top) !== null && _l !== void 0 ? _l : 0) + deltaY,
249
+ });
250
+ polygon.setCoords();
251
+ mask = polygon;
252
+ break;
253
+ }
254
+ case 'rect':
255
+ default:
256
+ mask = new fabricModule.Rect({
257
+ left,
258
+ top,
259
+ ...originProps,
260
+ width: resolvedConfig.width,
261
+ height: resolvedConfig.height,
262
+ fill: resolvedConfig.color,
263
+ opacity: resolvedConfig.alpha,
264
+ angle: (_m = resolvedConfig.angle) !== null && _m !== void 0 ? _m : 0,
265
+ ...(rx !== undefined ? { rx } : {}),
266
+ ...(ry !== undefined ? { ry } : {}),
267
+ ...resolvedConfig.styles,
268
+ });
269
+ }
270
+ }
271
+ const maskObject = mask;
272
+ maskObject.selectable = 'selectable' in mergedConfig ? !!mergedConfig.selectable : true;
273
+ maskObject.evented = 'evented' in mergedConfig ? !!mergedConfig.evented : true;
274
+ maskObject.hasControls = 'hasControls' in mergedConfig ? !!mergedConfig.hasControls : true;
275
+ maskObject.transparentCorners =
276
+ 'transparentCorners' in mergedConfig ? !!mergedConfig.transparentCorners : false;
277
+ maskObject.strokeUniform =
278
+ 'strokeUniform' in mergedConfig ? !!mergedConfig.strokeUniform : true;
279
+ maskObject.lockRotation = !options.maskRotatable;
280
+ maskObject.borderColor = (_o = mergedConfig.borderColor) !== null && _o !== void 0 ? _o : 'red';
281
+ maskObject.cornerColor = (_p = mergedConfig.cornerColor) !== null && _p !== void 0 ? _p : 'black';
282
+ maskObject.cornerSize = (_q = mergedConfig.cornerSize) !== null && _q !== void 0 ? _q : 8;
283
+ const styles = ((_r = resolvedConfig.styles) !== null && _r !== void 0 ? _r : {});
284
+ if ('stroke' in styles) {
285
+ maskObject.stroke = styles.stroke;
286
+ }
287
+ else {
288
+ maskObject.stroke = '#ccc';
289
+ }
290
+ if ('strokeWidth' in styles) {
291
+ maskObject.strokeWidth = styles.strokeWidth;
292
+ }
293
+ else {
294
+ maskObject.strokeWidth = 1;
295
+ }
296
+ if ('strokeDashArray' in styles) {
297
+ maskObject.strokeDashArray = styles.strokeDashArray;
298
+ }
299
+ maskObject.originalAlpha = resolvedConfig.alpha;
300
+ maskObject.originalStroke = maskObject.stroke;
301
+ maskObject.originalStrokeWidth = maskObject.strokeWidth;
302
+ attachMaskHoverHandlers(maskObject);
303
+ const nextId = context.getMaskCounter() + 1;
304
+ context.setMaskCounter(nextId);
305
+ maskObject.maskId = nextId;
306
+ maskObject.maskUid = createMaskUid(nextId);
307
+ maskObject.maskName = `${options.maskName}${nextId}`;
308
+ context.setLastMask(maskObject);
309
+ canvas.add(maskObject);
310
+ canvas.bringObjectToFront(maskObject);
311
+ context.updateMaskList();
312
+ if (resolvedConfig.selectable !== false) {
313
+ canvas.setActiveObject(maskObject);
314
+ }
315
+ canvas.renderAll();
316
+ context.saveCanvasState();
317
+ if (typeof config.onCreate === 'function') {
318
+ try {
319
+ config.onCreate(maskObject, canvas);
320
+ }
321
+ catch (error) {
322
+ reportWarning(options, error, 'createMask onCreate callback threw.');
323
+ }
324
+ }
325
+ return maskObject;
326
+ }
327
+ export function removeSelectedMask(context) {
328
+ const active = context.canvas.getActiveObject();
329
+ if (!active || !isMaskObject(active))
330
+ return;
331
+ context.removeLabelForMask(active);
332
+ detachMaskHoverHandlers(active);
333
+ context.canvas.remove(active);
334
+ context.canvas.discardActiveObject();
335
+ context.updateMaskList();
336
+ context.canvas.renderAll();
337
+ context.saveCanvasState();
338
+ }
339
+ export function removeAllMasks(context, options = {}) {
340
+ const masks = context.canvas.getObjects().filter(isMaskObject);
341
+ if (masks.length === 0)
342
+ return;
343
+ for (const maskObject of masks) {
344
+ context.removeLabelForMask(maskObject);
345
+ detachMaskHoverHandlers(maskObject);
346
+ context.canvas.remove(maskObject);
347
+ }
348
+ context.canvas.discardActiveObject();
349
+ context.setLastMask(null);
350
+ context.updateMaskList();
351
+ context.canvas.renderAll();
352
+ if (options.saveHistory !== false) {
353
+ context.saveCanvasState();
354
+ }
355
+ }
356
+ //# sourceMappingURL=mask-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-factory.js","sourceRoot":"","sources":["../../../src/mask/mask-factory.ts"],"names":[],"mappings":"AAyFA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,SAAS,aAAa,CAAC,MAAc;IACjC,OAAO,QAAQ,MAAM,EAAE,CAAC;AAC5B,CAAC;AAqCD,SAAS,kBAAkB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,SAAS,GAAG,KAGjB,CAAC;IACF,OAAO,OAAO,SAAS,CAAC,GAAG,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC;AACrF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CAAC,iBAAoC,EAAE,MAAkB;IAC7E,MAAM,iBAAiB,GAAG,EAAE,GAAI,iBAA6C,EAAE,CAAC;IAChF,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC/C,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IAClC,OAAO,iBAAiB,CAAC,eAAe,CAAC;IACzC,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAChC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,OAAO;QACH,GAAG,iBAAiB;QACpB,GAAG,MAAM;QACT,MAAM,EAAE;YACJ,GAAG,iBAAiB;YACpB,GAAG,YAAY;SAClB;KACJ,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,OAAwB,EAAE,MAAc;IAC7D,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,uBAAuB,MAAM,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CACxB,OAAwB,EACxB,SAAiB,EACjB,KAAc;IAEd,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,eAAe,CAAC,OAAO,EAAE,GAAG,SAAS,kCAAkC,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAC1B,OAAwB,EACxB,SAAiB,EACjB,KAAc;IAEd,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,eAAe,CAAC,OAAO,EAAE,GAAG,SAAS,oCAAoC,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAC7B,OAAwB,EACxB,SAAiB,EACjB,KAAc;IAEd,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,eAAe,CAAC,OAAO,EAAE,GAAG,SAAS,wCAAwC,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAwB,EAAE,MAAkB;IACvE,MAAM,MAAM,GAA6B;QACrC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACzB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACjB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACjB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QACzB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;KACtB,CAAC;IACF,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,OAAO,EAAE,GAAG,SAAS,mCAAmC,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CACzB,OAAwB,EACxB,MAA4B;IAE5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,eAAe,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAClE,CAAC;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,eAAe,CAAC,OAAO,EAAE,+CAA+C,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACtD,eAAe,CAAC,OAAO,EAAE,8CAA8C,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,MAAuC;IACxD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC;QAClD,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAiCD,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE,SAAqB,EAAE;;IAC1E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAC1D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAA,YAAY,CAAC,KAAK,mCAAI,MAAM,CAAC;IAC/C,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAG/D,MAAM,cAAc,GAAuB;QACvC,KAAK,EAAE,OAAO,CAAC,gBAAgB;QAC/B,MAAM,EAAE,OAAO,CAAC,iBAAiB;QACjC,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,GAAG;QACV,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,IAAI;QAChB,GAAG,YAAY;QACf,KAAK,EAAE,SAAS;KACG,CAAC;IAExB,MAAM,WAAW,GAAG,EAAE,CAAC;IAIvB,IAAI,IAAY,CAAC;IACjB,IAAI,GAAW,CAAC;IAChB,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,EAAE,CAAC;QAClD,MAAM,aAAa,GACf,CAAC,MAAA,YAAY,CAAC,IAAI,mCAAI,CAAC,CAAC;YACxB,CAAC,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU;gBAC9C,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE;gBAC/B,CAAC,CAAC,CAAC,MAAA,YAAY,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,MAAA,cAAc,CAAC,GAAG,mCAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,GAAG,GAAG,MAAA,YAAY,CAAC,GAAG,mCAAI,WAAW,CAAC;IAC1C,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5E,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAGD,cAAc,CAAC,KAAK,GAAG,cAAc,CACjC,YAAY,CAAC,KAAK,EAClB,GAAG,EACH,OAAO,CAAC,gBAAgB,EACxB,MAAM,EACN,OAAO,CACV,CAAC;IACF,cAAc,CAAC,MAAM,GAAG,cAAc,CAClC,YAAY,CAAC,MAAM,EACnB,GAAG,EACH,OAAO,CAAC,iBAAiB,EACzB,MAAM,EACN,OAAO,CACV,CAAC;IAEF,MAAM,EAAE,GACJ,YAAY,CAAC,EAAE,KAAK,SAAS;QACzB,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACpB,MAAM,EAAE,GACJ,YAAY,CAAC,EAAE,KAAK,SAAS;QACzB,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IACpB,MAAM,MAAM,GACR,SAAS,KAAK,QAAQ;QAClB,CAAC,CAAC,cAAc,CACV,YAAY,CAAC,MAAM,EACnB,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EACzD,MAAM,EACN,OAAO,CACV;QACH,CAAC,CAAC,SAAS,CAAC;IACpB,MAAM,aAAa,GACf,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExF,IACI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;QAC3C,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;QACzC,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;QAC9D,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC;QAChE,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;QACxD,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;QAC5D,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,EAC9D,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IACI,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC,SAAS,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,EACrD,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAKD,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,UAAU,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;YACvE,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC;IAGD,IAAI,IAA2B,CAAC;IAEhC,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAY,CAAC;QACrF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,aAAa,CACT,OAAO,EACP,SAAS,EACT,qEAAqE,CACxE,CAAC;YACF,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,GAAG,SAAS,CAAC;IACrB,CAAC;SAAM,CAAC;QAIJ,MAAM,WAAW,GAAG;YAChB,OAAO,EAAE,MAA2B;YACpC,OAAO,EAAE,KAA0B;SACtC,CAAC;QAEF,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,QAAQ;gBACT,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;oBAC3B,IAAI;oBACJ,GAAG;oBACH,GAAG,WAAW;oBACd,MAAM;oBACN,IAAI,EAAE,cAAc,CAAC,KAAK;oBAC1B,OAAO,EAAE,cAAc,CAAC,KAAK;oBAC7B,KAAK,EAAE,MAAA,cAAc,CAAC,KAAK,mCAAI,CAAC;oBAChC,GAAG,cAAc,CAAC,MAAM;iBAC3B,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC;oBAC5B,IAAI;oBACJ,GAAG;oBACH,GAAG,WAAW;oBACd,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,cAAc,CAAC,KAAK,GAAG,CAAC;oBAClC,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,cAAc,CAAC,MAAM,GAAG,CAAC;oBACnC,IAAI,EAAE,cAAc,CAAC,KAAK;oBAC1B,OAAO,EAAE,cAAc,CAAC,KAAK;oBAC7B,KAAK,EAAE,MAAA,cAAc,CAAC,KAAK,mCAAI,CAAC;oBAChC,GAAG,cAAc,CAAC,MAAM;iBAC3B,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,SAAS,CAAC,CAAC,CAAC;gBAiBb,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,aAAc,EAAE;oBACrD,GAAG,WAAW;oBACd,IAAI,EAAE,cAAc,CAAC,KAAK;oBAC1B,OAAO,EAAE,cAAc,CAAC,KAAK;oBAC7B,KAAK,EAAE,MAAA,cAAc,CAAC,KAAK,mCAAI,CAAC;oBAChC,GAAG,cAAc,CAAC,MAAM;iBAC3B,CAAC,CAAC;gBACH,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBACxC,MAAM,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC;oBACR,IAAI,EAAE,CAAC,MAAA,OAAO,CAAC,IAAI,mCAAI,CAAC,CAAC,GAAG,MAAM;oBAClC,GAAG,EAAE,CAAC,MAAA,OAAO,CAAC,GAAG,mCAAI,CAAC,CAAC,GAAG,MAAM;iBACnC,CAAC,CAAC;gBACH,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,GAAG,OAAO,CAAC;gBACf,MAAM;YACV,CAAC;YACD,KAAK,MAAM,CAAC;YACZ;gBACI,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;oBACzB,IAAI;oBACJ,GAAG;oBACH,GAAG,WAAW;oBACd,KAAK,EAAE,cAAc,CAAC,KAAK;oBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,IAAI,EAAE,cAAc,CAAC,KAAK;oBAC1B,OAAO,EAAE,cAAc,CAAC,KAAK;oBAC7B,KAAK,EAAE,MAAA,cAAc,CAAC,KAAK,mCAAI,CAAC;oBAChC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,cAAc,CAAC,MAAM;iBAC3B,CAAC,CAAC;QACX,CAAC;IACL,CAAC;IAMD,MAAM,UAAU,GAAG,IAAkB,CAAC;IACtC,UAAU,CAAC,UAAU,GAAG,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,UAAU,CAAC,OAAO,GAAG,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,UAAU,CAAC,WAAW,GAAG,aAAa,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,UAAU,CAAC,kBAAkB;QACzB,oBAAoB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,UAAU,CAAC,aAAa;QACpB,eAAe,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,UAAU,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IACjD,UAAU,CAAC,WAAW,GAAG,MAAA,YAAY,CAAC,WAAW,mCAAI,KAAK,CAAC;IAC3D,UAAU,CAAC,WAAW,GAAG,MAAA,YAAY,CAAC,WAAW,mCAAI,OAAO,CAAC;IAC7D,UAAU,CAAC,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,CAAC,CAAC;IAKrD,MAAM,MAAM,GAAG,CAAC,MAAA,cAAc,CAAC,MAAM,mCAAI,EAAE,CAAwC,CAAC;IACpF,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACrB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAA0C,CAAC;IAC1E,CAAC;SAAM,CAAC;QACJ,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAqB,CAAC;IAC1D,CAAC;SAAM,CAAC;QACJ,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;QAC9B,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,eAA2B,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;IAChD,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;IAC9C,UAAU,CAAC,mBAAmB,GAAG,UAAU,CAAC,WAAW,CAAC;IACxD,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAGpC,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,UAAU,CAAC,QAAQ,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;IAErD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAIhC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvB,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,CAAC,cAAc,EAAE,CAAC;IAEzB,IAAI,cAAc,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAGtC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAID,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,eAAe,EAAE,CAAC;IAE1B,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAqED,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO;IAC7C,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACnC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,cAAc,EAAE,CAAC;IAGzB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,eAAe,EAAE,CAAC;AAC9B,CAAC;AA0BD,MAAM,UAAU,cAAc,CAC1B,OAA0B,EAC1B,UAAiC,EAAE;IAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACvC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,cAAc,EAAE,CAAC;IAGzB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAI3B,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;AACL,CAAC"}